【图像处理】CV现状——转自知乎https://www.zhihu.com/people/tgis-top

刷知乎看到一篇文章,觉得写的很棒,记录下来作为笔记,作者应该还没有写完,会持续更新。

0.缘起

有一则广为人知的故事,据称它就是计算机视觉的发端,在1966年,MIT的Marvin Minsky让他的本科生Gerald Jay Sussman“在暑假将摄像机连接到计算机上,让计算机来描述它所看到的东西”。这就是人工智能先驱们对“视觉”问题的态度,雄心勃勃又妄自尊大,认为“视觉感知”不过是“人工智能”实现路线上的一个简单步骤,简单到一个本科生用一个暑假的时间就能完成。半个世纪过去了,步履维艰的事实让大家认识到“视觉感知”也许同“人工智能”一样困难。

在卷积神经网络又一次激起人工智能热潮的当下,回望计算机视觉短短五十来年的发展历程,我们就像在重重困难中迷失了一样企图抓住一根救命的稻草一举获得救赎,然而寄希望于一根稻草来挑战造化的神秀注定是徒劳的。不知道是否是因为经受不住失望的打击,在本次热潮当中有些人已然开始实施“精神胜利大法”了,假装“视觉感知”是一个已经解决的问题,开始挑战“图文互转”之类的高峰,开始参与“机器作画”之类的自娱自乐。与其再一次在“视觉感知”的门外游荡或者“自欺欺人”,有必要将磨染的初心捧出来,拂拭拂拭,将向着初心的工作挑拣出来,将无用的包袱丢掉。

还是从那则故事入手,“让计算机来描述它所看到的东西”蕴含了计算机视觉“初心”的全部,人类是人类自身的仰慕者,我们要做的不过是要让计算机像人一样去“看”——得出场景的完整理解。这个“初心”也是将计算机视觉同数字图像处理区别开来的关键目标。要落实到代码上,这个目标仍然过于笼统,对其进行拆分势在必行。首先应该问一句,当我们观察我们生存的环境时,感知到了什么? 通过直觉可以给出回答——目标、目标(和自身)在三维空间中的位置关系、目标的三维形状及其改变、目标的位移、符号。给出这个回答并非是毫无困难的,人类智能所抽象出来的高层次概念会带来严重的干扰,可以想见,即使是这个回答仍然难以获得广泛的认同。但是我并不想陷入计算机视觉基本任务的辩论,那将会是毫无意义并且浪费篇幅的。

在此笔者将结合这五项人类感知到的要素梳理业已提出的算法和他们所基于的假设,并阐明这些算法在达成相应理解中的地位,更重要的要指出在达成“得出场景的完整理解”这个目标过程中的缺失。这五项感知到的要素中的中间三项是和三维感知直接相关的,时至今日三维感知虽然获得了不少进展,但是关于“视觉感知”的研究并不会等到三维感知成熟才开始。因此目前关于视觉感知的成就都是在二维图像上取得的。
 

早期的研究者或许尝试主要通过形状和结构特征来识别目标,提出了很多图像分割的方法,进而在纹理描述和分析方面也做了不少探索。但是纹理描述和分析及图像分割方面的进展甚至不足以产生人能够进行识别的图斑形状,另外形状和结构的描述也没有取得有价值的成果。最后目标识别走向了特征提取和监督分类的路线。

与“目标(和自身)在三维空间中的位置关系”密切相关的就是SLAM了。SLAM中的定位任务主要是为了确定自身的位置,也并不是所有的方案都依赖视觉数据实现的定位。而制图任务与其说是制图毋宁说是三维数据采集,因为制图任务的成果只是大片的三维点云,没能识别到其中的目标,也没有将目标标注到三维空间中。要想真正感知到“目标(和自身)在三维空间中的位置关”,似乎依赖于目标识别的解决。

到目前为止“目标的三维形状及其改变”还没有被定义为计算机视觉中的任务,与此相关的内容则是以其子任务的形式出现的,比如表情识别、姿态识别。因为目标没能被识别并分割出来,形状特征也无法描述,表情识别、姿态识别也采用了特征提取和监督分类的方法。

“跟踪”是感知“目标位移”的解决方案,目前还停留在二维的层面,跟踪到的是目标投影后的二维轨迹。在目前的解决方案中“光流”法运动趋势估计起到了至关重要的作用,其次就是聚类、特征提取、特征匹配。也就是目前的跟踪并不是目标层面的,而是特征层面的和图斑层面的。

符号识别”是否应该纳入计算机视觉的范畴就笔者个人来说也是有疑问的,符号是人类智力创造的抽象产物,似乎不应纳入计算机视觉的范畴。如果不纳入,那么计算机视觉应该为后续符号识别算法提供什么样的输入呢?另外符号识别和目标识别是割裂的还是逐渐过渡的?平面美术作品、儿童简笔画、象形符号、文字等不同抽象程度的对象识别有什么区别呢?虽然这些问题都还没有答案,印刷字符识别已经达到很好的效果了。当然,采用的也是特征提取和监督分类的方案。

目前数字图像处理与计算机视觉作为两个独立的学科已经被普遍接受了,但是所有的计算机视觉研究者同时也是数字图像处理的研究者,数字图像处理的成果在计算机视觉方面发挥了很大的作用。笔者也许会挑一些与计算机视觉强相关的数字图像处理的算法进行介绍。

1.三维感知

首先需要指出的是,对于计算机来说视觉数据的最原始表示是数字图像——栅格(离散)化的三维世界在二维平面的投影,如果要还原三维世界需要经过复杂而耗时的处理过程;对于人眼来说似乎接直接接收到了三维数据。不管事实到底如何,从二维数字图像入手是计算机视觉不得不做出的选择。另外,基于多视几何的从数字图像还原三维世界的技术虽然已经趋于成熟,但是并没有在计算机视觉研究者中获得广泛的关注。 目前各种分割、目标检测、跟踪等算法方面的进展集中于处理二维数字图像,由此即可窥见计算机视觉当前的进展离“得出场景的完整理解”这个目标的巨大距离。还需了解的是,目前基于多视几何的三维重建相关技术的首要目标并没有将“得出场景的完整理解”考虑在内,仅仅是为了建立真实世界的可视化模型——格网贴图模型,其生产过程经历了自动连接点匹配、光速法平差、极(核)线像对生成、密集立体匹配、点云融合、点云构网、纹理贴图。到密集立体匹配这一步才生成了能够代表三维世界的离散点云数据,如果要获得超过一个像对视域范围的点云数据还需要进行点云融合。

【图像处理】CV现状——转自知乎https://www.zhihu.com/people/tgis-top

点云

【图像处理】CV现状——转自知乎https://www.zhihu.com/people/tgis-top

3D格网

考察我们自己理解场景的两种情形,观察真实的三维世界和观察二维图片,都可以感知到其中的三维信息。这仿佛暗示了基于多视几何的三维感知手段对于“得出场景的完整理解”并不是举足轻重的,其意义或许仅仅在于将真实三维环境与三维环境的透视投影图像区分开来,以防自主行使设备尝试走进一副画里。观察二维图片时,是如何感知三维信息的?基于个人的经验,认为利用了推理这种高级智能。在看到二维图片的一瞬间,人类就可以认出其中包含的目标,目标的二维透视投影形状以及目标在一定照明条件下形成的高光、阴影与三维形状有着对应关系,识别出对应关系就还原了三维信息。透视投影的规律是客观的,平行线的切线消失于灭点是每个人潜意思里的常识,它并没有包含在图片当中。也就是说图片自身对于感知图片的三维信息来说并不是完备的,还需要人类智能利用总结出来的规律和常识做出推理。

透视投影的规律是明确的,应该是计算机视觉的一项基本原理,上面的论述或许缺乏说服力。下面将给出另外一个例子,当观察一幅多山的卫星影像时,第一感觉会将稍暗的一面识别为山的南面,稍亮的一面识别为山的北面,然而却有一条流淌在山顶的河流,村庄和城镇都坐落在山峰的两侧,这是多么的诡异!直觉和认知产生了冲突,为什么会如此呢?因为在人类常处于的环境中,看得见的暗处一定是阴影,阴影处一定是前高后低。然而对于北半球上部朝北的卫星影像来说,是由太阳光从南向北照亮的,所以通常卫星影像上稍暗的一面为山的北面,稍亮的一面为山的南面。经过一定的思维训练,再次观看卫星影像时就可以直接感知到正确的三维地形。这是一个利用外部常识推理来进行三维感知出错的例子,因为所利用的外部常识并不是定律而是经常出现的事实——看得见的暗处一定是阴影,阴影处一定是前高后低。幸好还有其它的常识可以用来发现错误,比如江河绝对不会流淌在山顶上,村落和城镇不会坐落在山峰两侧。

【图像处理】CV现状——转自知乎https://www.zhihu.com/people/tgis-top

 在前文中默认了人类通过二维图片感知三维信息时首先识别出了目标,事实是否如此不得而知?至今尚未看到有人开展了相关研究。三维感知与目标识别的关系是什么? 这是本文指出的第一项计算机视觉研究中的缺失。不妨大胆的猜测,三维感知和目标识别同时开始,初始结果的出现各有先后,之后开始相互佐证。 人类在观察真实的三维世界时,是否同时使用了基于多视几何的三维感知手段和基于常识推理的三维感知手段?这两种三维感知手段之间的关系是怎么样的? 还是只能猜测,这两种三维感知手段同时进行,而目标识别则在基于多视几何的三维感知手段之后执行,同样初始结果的出现各有先后,之后开始相互佐证。这是认知心理学的问题,随着本文的展开,将会看到更多与认知心理学相关的缺失。这说起来会有点可笑,毕竟每位计算机视觉的参与者都认为计算机视觉是包含了心理学的综合学科,然而涉及到心理学的问题都是依靠参与者的直觉,更遑论猜测和验证。