第 6 课 “AI”看世界
我们是怎样看见世界的
光通过折光系统在视网膜上成像,经视神经传入大脑视觉中枢,从而分辨看到的物体,很多生物以此获得对自身生存具有重要意义的各种信息。
视觉对人类非常重要,至少80%的外界信息是通过眼睛获得的。观察物体的形状、大小、颜色、亮度……将这些信息交由大脑处理,人们就能判断环境是否危险、食物是否好吃、今天是不是要下雨并决定要不要带上一把伞。
我们人类通过眼睛观察世界,根据我们的生活经验去判断所获得的信息,从而指引我们的行为。但是,有时候我们看到的或许不一定是信息的全部,也或者,我们判断有误,所以会导致信息传递过程中会出现纰漏甚至错误。比如我们常会玩到的游戏——你来比划我来猜。就会出现在观察与传播信息的过程中出错。
什么是计算机视觉
“计算机视觉”(Computer Vision),是指用摄像机和计算机替代人眼对目标进行识别、跟踪和测量等,并进一步做图形处理,使之成为适合人眼观察或传送给仪器检测的图像。
总而言之,计算机视觉就是研究如何让机器“看”的科学。
要让机器“看”,第一步是“看见”。对于机器来说图像是通过“像素”存储的。“像素”是一个个存储着色彩数值的小格子,规规矩矩地排列着。像素的行数与列数被称为“分辨率”,“1920x1280”代表着图像是由 1920行、1280列像素组成的。
将小格子的数值转换为对应的颜色,并在屏幕上显示出来,就是我们看到的图像。我们能从中看到花鸟鱼虫,机器也能从这些数值中,“看见”我们所看到的丰富世界。
除了看见,我们还希望机器能“看懂”。就像出门前看见乌云,我们就会拿起一把伞。乌云预示着下雨,让我们做出“带伞”的决束。我们看懂了云,我们希望机器也能看懂云。
人类是如何认识猫咪的
与人类相比,机器特别擅长存储大量信息,也就是拥有不会出错的“记忆力”。
可就算机器的“记忆力”再强,也很难记住“猫”是什么,由于拍摄角度、猫咪动作以及光线的变化,就算是同一只猫也会表现出不同的样子。我们没办法让机器记住一只猫的所有样子,也没办法让它记住世界上所有猫的样子。
猫有圆圆的脸、尖尖的耳朵、明亮的圆眼睛……最开始人们用这种分割结构的方法教机器认识世界。这种方法用在结构清晰的事物上表现很好,比如人脸、手部等。但面对动物等结构没那么清晰的事物,依然一筹莫展。
接着人们发现了SVM(也就是支持向量机)方法,即利用图像的数学特征来区分事物。比如花瓣的长度、宽度或是色彩会影响它的品种分类,我们就用这些特征去预测图像中存在的是哪种花。
这种方法诚然有着不错的效果,不过随着机器运算能力的提升,人们转向了效果更好的方法--深度学习(Deep Learning)。
大家也可以试着在下面的图片里找出哪一些是西红柿,并且说说你是根据什么来判断它是西红柿的。
这些共同的特征就是——“红色”,这就是我们自发产生的学习行为。
在找西红柿的实验中,我们通过判断西红柿的一些独有特征来辨别西红柿。那么我们在寻找西红柿的过程中,发现其中有一些图片都有一个共同的特征。
从“看见”到“看懂”
有了方法,我们就要一步步有的放失地解决问题
让机器看见世界有4个阶段,也是计算机视觉的4个核心任务:图像分类(Image classification)、物体检测(Object Recognition)、语义分割(Semantic Segmentation)和视频分析(Video Analysis)
图像分类,即为不同的图片打上对应标签。
两只动物
物体检测,即找到图像中物体的位置,并认出它们是什么。
猫和老鼠
语义分割,即找到物体的精确位置以及物体之间的关系。
老鼠在猫的前面
视频分析,即看懂视频中的内容。对于机器来说,视频是一连串图片在时间上的排列,如果能理解图片中的事物并把握时间的概念,机器就能理解视频中的内容。
一只猫正在抓一只老鼠
前两者帮助机器“看见”世界,后两者可以帮助机器“看懂”世界。我们在4个任务上都有不小的进步,不过离让机器看懂世界这个目标,依然很遥远。
除了4个核心任务,计算机视觉领域内还有很多有趣的课题。
你会用计算机视觉实现一个什么应用呢?