我们的眼睛是如何看到颜色的?为什么能分别猫和狗?机器行吗?

在理解传统计算机视觉算法之前,了解人类视觉系统的工作原理是很重要的,因为只有这样才能够开发出正确的算法。

计算机视觉算法的目的是理解图像和视频的内容,人类似乎可以毫不费力的做到这一点。那么,如何使机器也能够做到这一点呢?

一、理解人类视觉系统

人类视觉系统中大概有6百万至7百万个视锥细胞,但按类别只分为3种,分别对应三种不同颜色的感应:65%的红色+33%的绿色+2%的蓝色,蓝色虽然数量最少, 但却是最敏感的。

不同的色光作用于视网膜时,3种视锥细胞产生了不同程度的兴奋,这样兴奋信息经处理后转化为不同组合的视神经冲动,传到大脑皮层就产生不同的色觉。

因此在缤纷的世界中,失去了视觉细胞,即使面对似锦的繁花,我们也可能犹如色盲,常常对一些色彩“视而不见”。

PS:鸟类独特的视觉系统,拥有4种视锥细胞,能辨别出更多色彩,看见的世界也更加绚丽多彩,远远超越了人类。

我们的眼睛是如何看到颜色的?为什么能分别猫和狗?机器行吗?

人类的眼睛会同时捕获色彩、形状、亮度等信息。看到东西后,人眼捕获了这个主体的所有信息,并以某种方式将它们存储起来。一旦明白了人类的视觉系统是如何工作的,我们就可以利用这个来实现预期结果。下面有几件事情需要知道:

人类视觉系统对低频内容敏感程度高于高频内容。低频内容是指像素值不迅速改变的平面区域,高频内容是指像素值波动很大的角落和边缘地区。你可能已经注意到,如果在平坦的表面有斑点,就可以很容易地被发现,但是如果在质地不平的表面就很难被发现。

人眼对亮度的变化敏感程度高于颜色的变化

人类视觉系统对运动的事物很敏感。如果有东西在视野中移动,即使人们没有直视它,也能很快地意识到。

人们往往会用心记住视野内突出的点

。下面来想象一下,有一个白色的桌子,它的四条腿是黑色的,并且表面的某个角落上有一个红点。当看着这张桌子时,你会立即记住表面和腿有对立的颜色,并且其中一个角落有一个红点。人类大脑是很聪明的!它会立即做这些,以便下次遇到的时候能够对其进行快速识别。

二、人类是怎么理解图像内容的

作为自认为心智健全的成年人,环顾我们的四周,会看到很多对象。每天可能都会遇到各种各样的对象,但你会毫不费劲地一眼识别出它们。事实上,当看到一张椅子,你不会等待几分钟才意识到那是张椅子,而你会立马意识到那是张椅子。

实际上从另一方面说,计算机很难做好这件事。研究者们进行了多年研究才找出为什么计算机不擅长做这种人类相对相当擅长的事情。为了得到这个问题的答案,首先要理解人们是怎么做到的。

视觉数据的处理发生在腹侧视觉通路,这个腹侧视觉通路涉及与对象识别相关联的人类视觉系统回路。

我们的眼睛是如何看到颜色的?为什么能分别猫和狗?机器行吗?

科普讲台:

视觉皮层两条通路的理论最早是在1983年被提出的,该理论将视觉皮层分为知觉形状的腹侧通路和知觉空间位置的背侧通路,曾被广泛地接受并被认为是早期认知神经科学的一大成就。


腹侧通路(Ventral Stream):通向背腹沿,着大脑皮层的枕颞叶分布,包括纹状体皮层、前纹状体皮层和下颞叶,主要功能是物体的识别;


背侧通路(Dorsal Stream):通向背侧,沿着枕顶叶分布,包括纹状体皮层、前纹状体皮层和下顶叶,主要功能是空间位置和运动的识别。


科学家提出:在这两条分离的视知觉通路上,如何重新整合物体的信息将是未来研究的一个重要问题。

从上面补充的小知识可以知道,腹侧视觉通路是人类大脑中一块区域的基本层次结构,它会有助于

对象识别。人们可以毫不费劲地认知不同事物,并且还可以将相似的对象归类成组。

之所以可以做到这个,是因为人类开发对相同类别对象的不变性排序。当人们观察某个对象时,他们的大脑提取了一些特征点,例如方向、尺寸、观点以及不要紧的光照等因素。

比正常大一倍尺寸并且倾斜45度角放着的椅子仍然是一张椅子,因为处理方式的原因,我们可以很轻松地识别出它。机器反而不能轻松处理好这样的情况。人们趋向于通过形状和一些重要的特征记忆一个对象,不管这个对象是如何摆放的,人们仍然可以认出它。


在人类视觉系统中,大脑创建了可以帮助我们的稳健有关位置、缩放和角度方面的不变性层次结构。

我们的眼睛是如何看到颜色的?为什么能分别猫和狗?机器行吗?

人类腹面通路中的神经元会在感觉域上显示尺寸增长,这也与加上它们首选的刺激的复杂性地增加的事实相关联。

三、为什么机器很难理解图像内容

现在,我们理解了视觉数据是怎么进入人类视觉系统,以及人类视觉系统怎么处理它。目前的问题是还没理解透彻人类大脑如何识别和组织这些视觉数据。

人们仅从图像中提取出一些特征,并且要求计算机通过机器学习算法学习人类。仍有很多变化例如形状、尺寸、观点、角度、光照、遮挡等。例如,在机器眼里,同样的椅子从侧面看起来不一样。不管它如何呈现,人们可以很容易地识别出它是一张椅子。但是应该如何给计算机解释这个呢?

一种处理方法是将一个对象不同的变化存储起来,包括大小、角度、光照等。但是这样处理过于麻烦又太耗时。而且事实上,它不能将能遇到的每一种变化数据收集起来。为了识别出这些对象,计算机会消耗大量内存和时间去构建模型。即使能满足所有这些,当存在特殊遮挡的,计算机仍不能够识别出它,因为计算机会认为它是一个新事物。

所以,提取出目标物体的基本具有代表性的特征,就显得对目标对象的识别显得尤为重要。在构建一个计算机视觉库时,就是在构建这种包罗万千对象的基本功能块,那样就可以在各种各样的情况下结合成复杂的算法,以不变应万变的方式来对世间万物进行特征描述。

但是,物体与物体之间存在着较大的差异,但是又存在明显的相似之处。比如风扇与人、波斯猫与英短猫。

我们的眼睛是如何看到颜色的?为什么能分别猫和狗?机器行吗?

上面我们考虑的东西可能比较的杂,这也正是在日常生活中所最常见的一批事务,也正是现阶段语义分割、自动驾驶所面临的最大困难:目标对象繁而复杂,不可以预料的因素太多。

就像美国佛罗里达州特斯拉撞车事故中,驾驶员以及Autopilot(Tesla的自动驾驶系统)都未对该卡车进行有效的反应(转向或减速),以至于Model S直接撞上了拖挂卡车的侧面并且从卡车下面钻了过去。

我们的眼睛是如何看到颜色的?为什么能分别猫和狗?机器行吗?

事后有人在博客中提及了非常多的细节,包括蓝天背景加上白色卡车容易被识别为云彩,并且拖挂卡车侧面从Tesla Autopilot的视角看是悬浮在地面上的,这种非常少见的情况导致了Autoplot系统的漏检。
其实这正是计算机视觉主要的工作,和所面临的最大的挑战。尽管自动驾驶领域都采用了机器学习(深度学习),归根结底还是在寻找特征。

总结

今天我们从人类视觉系统、人类理解图像和机器理解图像三个方面对计算机视觉的基础内容做了介绍,也就算是科普了,希望能对小伙伴们的日常思考有所启发。

尽管现在图像处理的第三方开源库和深度学习在计算机视觉领域都得到了最大化的应用,但在工业落地和算法研发等方面仍然存在着较多的问题需要解决。革命尚未成功,同志仍需努力。(ps,部分图像来源于网络,若存在侵权,请联系删除)

往期回顾


分享到:


相關文章: