小孩儿都能看懂的人工智能:图像识别
小朋友们你们好!现在,老师在黑板上写几个数字,你能告诉老师写的是几吗?
https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/7bac7f4538c0419dbefc6125d999daa8~tplv-tt-large.image?x-expires=1986257334&x-signature=pLZ1HxRKUSaCAMePn%2BSSMfbmp3U%3D
咱们从小就学过一首儿歌:1像铅笔能写字,2像鸭子水中游,3像耳朵能听话,4像红旗随风飘,5像秤钩挂东西,6像口哨能吹响,7像镰刀能割草,8像葫芦藤上挂,9像勺子能盛饭,0像鸡蛋营养高。
我们根据这些数字的样子就能认出它是几。这叫数字识别。
小朋友们,你们看,现在老师手里拿着几张卡片,下面大家看看都是什么动物呀?
https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/719dac27f9cb45a38c088a8508c7f3e1~tplv-tt-large.image?x-expires=1986257334&x-signature=7Ff303BZnuW0xsDzPk1CdpEros0%3D
https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/7012a31adada4ff5972f5473651bc661~tplv-tt-large.image?x-expires=1986257334&x-signature=GXe0%2Ffej6OpE0FnW7UjIjVklmJE%3D
哎!对了,第一张呢是一只可爱的小狗狗;第二张是一只小猫咪;第三张呢是一个大公鸡;最后一张啊是一个大白鹅。
小朋友们,你们能通过看图片认出来图片上这些小动物是什么,这个呀就叫图像识别。
你们是怎么样认出这些小动物的呀?是你们的妈妈告诉过你,这个叫大公鸡,以后看到长成这样的就是大公鸡,那个叫大白鹅,长成那个样子的就是大白鹅对吗?
每种小动物长的都不一样,小狗长着扁扁的鼻子,两只黑眼睛象两颗宝石,显得非常机灵;小花猫的脑袋圆圆的,顶着一对尖尖的小耳朵,那大大的绿眼睛瞪得圆圆的,三角嘴两边分别长着又长又硬的胡子。大公鸡呢长着红红的鸡冠,象一团火焰,身上的羽毛象五彩的战袍;大白鹅长着长长的脖子,一身洁白的羽毛,红红的鹅冠象一只小帽子。我们根据它们的长相就可以认出来它们是谁对吧!
再比方说:放学了,你们的妈妈来校门口接你们,在那么多的小朋友的妈妈当中,你一眼就能找到你的妈妈,因为什么呀?是因为你的妈妈和其他小朋友的妈妈长得不一样对吧。
现在小朋友想一想,如何让电脑也能认出这些这些数字是几呢?如何让电脑也能认出这些小动物是什么呢?
1 数字识别很简单
电脑可没有小朋友们聪明,它是这么做的,首先,考虑到0~9这十个数字,本身也是存在各种笔画的,那我们就拆解开来,看每个数字里,有多少横竖撇捺,弯弯曲曲。
看下面这个表:表的左边竖着的一列是我们学过的数字,上方横着的红色的部分是把这些数字拆开的笔画,用这个表格,来统计每个字符里有多少个相应的笔画。
https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/ffda7827a9594ec69572cb477780cf21~tplv-tt-large.image?x-expires=1986257334&x-signature=LqDx%2FK3dseyjjrowRPz45%2BiBmzM%3D
现在,我们来写一些新的数字,然后数一数,这些新写的数字里,有多少个红色的笔画,和上方的表格对比一下,就能判断出这些新写的数字是几了。
https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/abea1a7f407e4c628e61a0d76af3608e~tplv-tt-large.image?x-expires=1986257334&x-signature=jes6uCQxxy%2FPli0cmSSsBPwO6MM%3D
比如,第一个数字里,有一个“丨”,我们发现有这种特征的,是“1”这个数字,而且完全符合,那第一个数字就是“1”。
第二个数字,上下左右半圆各有2个,比较之下,会发现上表中的数字“8”有8个笔画符合,那么这第二个数字就是“8”。
看懂这一步,那恭喜你已经明白了世界上最简单的数字识别了。
2、汉字就是图像
我们的汉字是象形文字,如图:所以我们可以把汉字看成一张图片。
https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/97df9f05338c412d85aef3409489ae90~tplv-tt-large.image?x-expires=1986257334&x-signature=C0h4SLFiLpQs7Uqa%2FBVO984WOCk%3D
我们可以把汉字看成一串横竖的格子里,笔画通过的地方(白色部分)用1来表示,没有笔画的地方(黑色部分)用0来表示。这样电脑能看懂汉字了,因为电脑只认识两个数(0和1)。如图:
https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/865a7943f664490ca8ced15b89027fc0~tplv-tt-large.image?x-expires=1986257334&x-signature=d9Ikm%2FUXcD7m42joLNr94rCltig%3D
对于电脑来说,每张图片都是细微的点(学名叫像素)组成的,这些像素排列成方形格子,每个格子一个颜色,拼起来便是一副图像。比如下图右边这些黑黑绿绿的格子,你缩小来看,其实它是左边一张卡通昆虫图片的一部分。
https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/cb73d41ff6d840b2a2a24ce545d64442~tplv-tt-large.image?x-expires=1986257334&x-signature=mHXkXu433E7C%2BdUq0AwpicHWSjw%3D
再如:樱桃小丸子的图片:
https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/c8dcde05117e4a59864fadd9e2820485~tplv-tt-large.image?x-expires=1986257334&x-signature=DXhc0HPH9rgzzLZ1YudOMuipJ9I%3D
对于电脑来说,颜色也是用数表示的,有多少种颜色,就可以用多少个数来表示,比如上面的“你”字,只有黑白两种颜色,就可以用最小的两个数“0”和“1”来表示,如果颜色的种类更多,我们就可以用更多的数字表示。比如在黑白之间还有254种不同深浅的灰色,我们就可以0表示纯黑色,255表示纯白色(255是一个十进制数,可以变成电脑认识的二进制数11111111),两者中间的数则是灰色,数字越小颜色越深,数字越大颜色越浅。
https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/ee8370d0839c42bd9a3adf2c4625d318~tplv-tt-large.image?x-expires=1986257334&x-signature=aGg2nL0RutI2iQGewcybJ3wChrA%3D
所以,看这个数字8,一共28行28列,784个格子,没有笔画的黑色格子就是0,有笔画的部分,笔画中心是更浅的白色,数字在一两百左右,笔画边缘则是灰色,数字只有几十,这就构成了这个数字8的电脑表示方法。
https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/63bb89ad3d264a2480556c66c8c83b46~tplv-tt-large.image?x-expires=1986257334&x-signature=mgKivaDrrvffEf71D5i00mZU3vU%3D
彩色也一样,我们知道,彩色的颜色是由红、绿、蓝这三种基本的颜色(我们叫三原色)混合而成,如图:
https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/4bf804032de14d9b9e4bf474d5ad5c86~tplv-tt-large.image?x-expires=1986257334&x-signature=cROoG7IWHB5gbGsG3Q1tDhpS0KU%3D
每种基本颜色各自有一个数,跟黑白之间的表示一样,我们就可以0表示纯黑色,255表示纯色,所以,表示一个彩色的颜色总共三个数;
https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/cc8fcfb6fd5f4ee888fa621517477833~tplv-tt-large.image?x-expires=1986257334&x-signature=lf4%2B4vmaKxzT8grz8N2zvpi6m0U%3D
比如:豆沙绿的颜色就可以用(204,232,207)表达。这是什么意思呢?红(204)表示不是纯红,绿(232)表示不是纯绿,蓝(207)表示不是纯蓝,由这三种颜色等比例混合以后,搅拌均匀就是豆沙绿的颜色。如图:
https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/749f166aa8954b76b11ee6bf27c6aeac~tplv-tt-large.image?x-expires=1986257334&x-signature=ogHX1LZn1d0Q%2Bzp6YKvC0kk3Bls%3D
3、过滤
现在,我们知道了图片的每个像素格子都是数字,但如何找出这些数字中的笔画呢?
科学家就在前面用数字表示的图像上加一个过滤器,把没有笔画的部分过滤掉,留下有笔画的部分。
过滤器就像下面这个玩具一样,识别出图案的轮廓,如果轮廓匹配,就可以放进盒子里,轮廓不匹配,那就放不进去,三角形的过滤器匹配三角形的木块,正方形的过滤器匹配正方形的木块
https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/d83160bc56b1471ebfae5b1b5c26cbdb~tplv-tt-large.image?x-expires=1986257334&x-signature=4Mv2Py7MtnEdvZWWoEiCEDMM%2FEM%3D
4、多次重复、独立过滤
为了提高准确性,只要把前一次过滤的图像再拿来过滤,用的过滤器越多,过滤的次数越多,结果越准确。为了让过滤出来的笔画更清晰,需要不断创建新的、更精确的过滤器。
过滤器每一次过滤的过程都是独立的,而且每次过滤互不干扰。这样,经过多次的过滤,我们就能把每个小动物的特征过滤出来。
5、特征分割
当我们把每个小动物的特征过滤出来以后,我们就可以把每个动物的特征象分割上面数字笔画一样分割开来,然后象前面一样特征放进一个表格里,如下表:
https://p3-sign.toutiaoimg.com/tos-cn-i-qvj2lq49k0/a7eba54456484a91b2d89744f9a0c024~tplv-tt-large.image?x-expires=1986257334&x-signature=csJrkQeMsgRgjxh%2FB5p0zNiP7xc%3D
6、识别
现在,我们拿来一些新的图片,用前面所说的方法,先把图片进行过滤,在进行分割这张图片的特征,然后与表格里面的动物特征向比较,看与哪个动物相像,就能判断出这张图片上的动物是什么了。
页:
[1]