《OpenCV 4计算机视觉项目实战 》 —1.2 人类如何理解图像内容
1.2 人类如何理解图像内容
如果环顾四周,你会看到很多对象。你每天都会遇到很多不同的对象,你几乎可以毫不费力地认出它们。当看到一把椅子,你不会等几分钟才意识到它实际上是一把椅子。你立即就会知道它是一把椅子。
另一方面,计算机执行这项任务却非常困难。研究人员多年来一直在研究为什么计算机在这方面没有我们做得好。
为了得到这个问题的答案,我们需要了解人类是如何做到的。视觉数据的处理发生在腹侧视觉流中。这个腹侧视觉流是指我们的视觉系统中与对象识别相关的路径。它基本上是我们大脑中的一个区域层次结构,可以帮助我们识别对象。
人类可以毫不费力地识别不同的对象,并且可以将类似的对象聚集在一起。我们之所以能够这样做,是因为我们已经对同一类对象产生了某种不变性。观察对象时,我们的大脑会以某种方式提取特征点,这种方式与方向、大小、视角和照明等因素无关。
一把比正常尺寸大一倍并且旋转45度的椅子仍然是一把椅子。正是由于这种处理方式,我们才能够轻松识别它。机器并不能这么容易地做到这一点。人类倾向于根据其形状和重要特征记住一个对象。无论对象如何放置,我们仍然能够识别它。
在我们的视觉系统中,建立起了关于位置、比例和视角等层次的不变性,这有助于我们变得非常强大。如果你深入了解我们的系统,就会发现人类的视觉皮层中有些细胞可以响应曲线和线条等形状。
如果沿着腹侧流进一步移动,我们将会看到更复杂的细胞,这些细胞经过训练,可以响应更复杂的对象,如树木、大门等。腹侧流中的神经元往往表现出接受区大小的增加,而神经元偏爱的刺激的复杂性也会同时增加。
为什么机器难以理解图像内容
我们已经知道视觉数据是如何进入人类视觉系统,以及我们的系统是如何处理这些数据的。问题是我们仍然不能完全理解大脑如何识别和组织这些视觉数据。在机器学习中,我们只是从图像中提取一些特征,并要求计算机使用算法来学习它们。这些变化仍然存在,例如形状、大小、视角、角度、照明、遮挡等。
例如,对于机器来说,当从侧面观察时,同一把椅子看起来就非常不同。人类很容易识别出它是一把椅子,无论它是如何呈现给我们的。那么,我们如何向机器解释这一点?
一种方法是存储对象的所有不同的变化,包括大小、角度、视角等。但是这个过程既麻烦又耗时。而且,实际上不可能收集到包含每一个变化的数据。机器将会消耗掉大量内存,并且需要大量时间来构建可以识别这些对象的模型。
即便如此,如果某个对象有一部分被遮挡,计算机仍然无法识别它。因为它们会认为这是一个新对象。因此,当我们构建计算机视觉库时,就需要构建底层功能块,这些功能块可以按多种不同方式组合以形成复杂的算法。
OpenCV提供了很多这样的功能,并且它们经过了高度优化。因此,一旦了解了OpenCV的功能,就可以有效地使用它来构建有趣的应用程序。
让我们在下一节继续探讨这个问题。
- 点赞
- 收藏
- 关注作者
评论(0)