《OpenCV 4计算机视觉项目实战 》 —1.2 人类如何理解图像内容

举报
华章计算机 发表于 2019/11/09 22:41:48 2019/11/09
【摘要】 本节书摘来自华章计算机《OpenCV 4计算机视觉项目实战》 一书中第一章,第1.2节,作者[西班牙]大卫·米兰·埃斯克里瓦(David Millán Escrivá)[西班牙]维尼休斯·G.门东萨(Vinícius G. Mendon。

1.2 人类如何理解图像内容

如果环顾四周,你会看到很多对象。你每天都会遇到很多不同的对象,你几乎可以毫不费力地认出它们。当看到一把椅子,你不会等几分钟才意识到它实际上是一把椅子。你立即就会知道它是一把椅子。

另一方面,计算机执行这项任务却非常困难。研究人员多年来一直在研究为什么计算机在这方面没有我们做得好。

为了得到这个问题的答案,我们需要了解人类是如何做到的。视觉数据的处理发生在腹侧视觉流中。这个腹侧视觉流是指我们的视觉系统中与对象识别相关的路径。它基本上是我们大脑中的一个区域层次结构,可以帮助我们识别对象。

人类可以毫不费力地识别不同的对象,并且可以将类似的对象聚集在一起。我们之所以能够这样做,是因为我们已经对同一类对象产生了某种不变性。观察对象时,我们的大脑会以某种方式提取特征点,这种方式与方向、大小、视角和照明等因素无关。

一把比正常尺寸大一倍并且旋转45度的椅子仍然是一把椅子。正是由于这种处理方式,我们才能够轻松识别它。机器并不能这么容易地做到这一点。人类倾向于根据其形状和重要特征记住一个对象。无论对象如何放置,我们仍然能够识别它。

在我们的视觉系统中,建立起了关于位置、比例和视角等层次的不变性,这有助于我们变得非常强大。如果你深入了解我们的系统,就会发现人类的视觉皮层中有些细胞可以响应曲线和线条等形状。

如果沿着腹侧流进一步移动,我们将会看到更复杂的细胞,这些细胞经过训练,可以响应更复杂的对象,如树木、大门等。腹侧流中的神经元往往表现出接受区大小的增加,而神经元偏爱的刺激的复杂性也会同时增加。

为什么机器难以理解图像内容

我们已经知道视觉数据是如何进入人类视觉系统,以及我们的系统是如何处理这些数据的。问题是我们仍然不能完全理解大脑如何识别和组织这些视觉数据。在机器学习中,我们只是从图像中提取一些特征,并要求计算机使用算法来学习它们。这些变化仍然存在,例如形状、大小、视角、角度、照明、遮挡等。

例如,对于机器来说,当从侧面观察时,同一把椅子看起来就非常不同。人类很容易识别出它是一把椅子,无论它是如何呈现给我们的。那么,我们如何向机器解释这一点?

一种方法是存储对象的所有不同的变化,包括大小、角度、视角等。但是这个过程既麻烦又耗时。而且,实际上不可能收集到包含每一个变化的数据。机器将会消耗掉大量内存,并且需要大量时间来构建可以识别这些对象的模型。

即便如此,如果某个对象有一部分被遮挡,计算机仍然无法识别它。因为它们会认为这是一个新对象。因此,当我们构建计算机视觉库时,就需要构建底层功能块,这些功能块可以按多种不同方式组合以形成复杂的算法。

OpenCV提供了很多这样的功能,并且它们经过了高度优化。因此,一旦了解了OpenCV的功能,就可以有效地使用它来构建有趣的应用程序。

让我们在下一节继续探讨这个问题。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。