OpenCV的未来
第72页
OCR文字识别结果:
过去与未
在第1章中,我们了解了OpencV的过去。随后的第2章~第13章详细介绍了
OpencV现有的功能。现在我们介绍OpencV的未来。计算机视觉应用最近迅速发
,展,从产品检测到互联网图像和视频的检索,一到医学应用至在火星上的局部导
航。OpencV也在成长以适应这些领域里的发展。
OpencV在很长一段时间里一直得到Intel公司的支持,最近得到Willow
Garage(www.willowgarage.com)的支持。Willow Garage是一个新成立的私立机器人
研究所和技术孵化器。Willow Garage将通过开发开放且有支持的硬件和基础软件
来促进民用机器人的迅速发展,基础软件包括但并不仅限于OpencV.这使得
OpencV获得了新的资源,能够更加快速地更新以及提供支持。OpencV的几个原
始开发者愿意继续帮助维护和促进这个库的发展。这些新的资源可以加快代码评估
和集成周期,使得更多的社区贡献代码进入OpencV.
OpencV的一个关键的新领域是机器人感知。OpencV将致力于三维感知。另外,
既然数据类型的混合能够为物体检测、分割和识别提取出更好的特征,那么同样也
会关注二维加三维的物体识别。机器人感知非常依赖于三维传感,所以正在扩展这
些功能摄像机标定、多摄像机的校正和匹配,以及摄像机和激光测距仪的融合
(参考图14-1)。。
®在本书编写过程中,这些方法依然在开发中、尚未进入OpencV.
564第14章
第73页
OCR文字识别结果:
如果商业上有硬件支持,。雷达+摄像机标定。工作将会被推广到一些设备中,如
激光雷达和红外波前设备等。另外还会针对使用结构光或者激光进行三角测量,以
获取精确的深度信息。大部分深度测量方法获得的原始输出都是三维点云。把从三
维深度测量中获得的原始点云转换为三维面片是下一步的工作。三维面片可以用来
获取物体的三维模型,从三维中分割出物体,因此可以让机器人具有理解和处理这
些物体的能力。通过外部三维感知到内部三维图形,机器人能够规划路径,使自己
能够平滑移动1或者让机器人能够识别、处理和移动物体。
摄像机
li»
Scanning Laser
Ip &
园■
图14-1新的三维成像融合方法使用从激光深度扫描仪(右图)返回的深度
信息标定一个摄像机(左图)。(所用图像已获得Hai Nguyen和Willow Garage
许可) [521~ 522]
在探测三维物体的同时,机器人还需要识别三维物体和物体的三维姿态。为了实现
这些功能,将会设计几个可扩展的二维加三维的物体识别方法。要制作强大的机器
人,需要的知识会涵盖计算机视觉和人工智能的大部分领域,从精确的三维重建到
跟踪、识别人的身份、物体识别和图像拼接,以及学习、控制、路径规划和决策。
如果能够迅速并精确的感知深度信息和识别物体,那么任何高层的任务,例如路径
规划,将会变得更容易。在这些领域里,特别是OpencV关注的领域,可以通过
鼓励很多小组贡献和使用更好的方法来解决实际应用中的感知、识别和学习方面的
难题,来实现迅速发展。
OpencV也将会支持许多其他领域的应用,例如网络上的图像和视频索引,安全监
控系统,医学图像分析。整个社区的意愿将会影响OpencV的方向和发展。
发展方向
虽然OpencV关注的不仅仅是实时的算法,但是它将会继续倾向实时处理技术。
OpencV的未来565
第74页
OCR文字识别结果:
没有人能够非常肯定地讲出未来的计划,但是可以提一下下面这些高优先级的
领域。
应用,与底层功能相比,真正可行的应用有更大的需求。例如,更多的人将使
用一个全自动的立体视觉解决方案而不是一个更好的亚像素级角点检测方法。
几个更完整的应用将被加人,例如可扩展的单摄像机到多摄像机标定和校正以
及三维深度显示界面。
三维如前面所述,OpencV中将会有更好的三维深度探测,以及二维摄像机
和三维测量仪器的融合,还会有更好的立体视觉算法。还可能会增加结构光
算法。
·密集光流因为我们想了解整个物体是如何移动的(并部分支持三维),
OpencV一直在计划实现Black的密集光流算法[B1ack96]。
·特征为了能够更好的实现物体识别功能,大家都在期待有一个全功能的工具
套件,这个套件能够有一个好的框架,可以方便的换用各种不同的关键点检测
算法,以及关键点描述算法。这里面将会包含一些流行的特征,如SURF.
HoG. Shape Context. MSER. Geometric Blur. PHOG. PHOW 及其他特征.
二维和三维特征的支持也在计划中。
基础功能将增加一个类封装®,一个好的Python接口,增强的GUI,更好的
文档,更好的错误处理机制,增强对Linux的支持,等等。
摄像机接口正在计划更多摄像机的无缝支持,还有最后可能的宽动态摄像机
的支持。目前大多数摄像机每个颜色通道只支持8位,但是一些新的摄像机可
以支持每个通道10或12位玺。[207]对于物体识别和立体视觉匹配,这些摄像
机的宽动态可以取得更好的结果,因为它能够检测精细的纹理和颜色,而很多
老式的窄动态摄像机却看不到这些。【523】
®Daniel Filip和Google已经为OpencV贡献了一个很快的轻量级图像类封装W「mage,
他们开发这个类用于内部使用。本书出版的时候,该类将进入OpencV,但是目前无
法在本书中给出该类的文档。
回许多昂贵的摄像机宣称能够支持16位,但是作者还没有发现超过]0位的有用分辨
率,其余的数据位为噪声。
566第14章
第75页
OCR文字识别结果:
具体发展方向
计算机视觉的许多物体识别技术需要检测显著区域,显著区域是在不同视图中变化
很小的区域。可以使用一些特征来标记这些显著区域园[271],例如一个显著点周围
的图像梯度方向直方图。虽然本节中提到所有技术都可以使用现有的Opencv函
数来实现,但是OpencV目前缺少流行的感兴趣区域检测和特征描述算法的完整
实现。
OpencV包含一个高效的Harris兴趣角点检测,但是缺少David Lown[Lowe04]设
计的流行的°缩放不变的最大拉普拉斯。检测,最大稳定极值区域
(MSER)[Matas02]检测,以及其他的检测算法。
」虹■
OpencV还缺少许多可以识别显著区域的流行算法,如SURF梯度直方图网格
[Bay06]。另外,我们希望能够包含一些其他的特征,比如梯度方向直方图
(HoG)[Dalai05]、几何模糊[Berg01]和偏移图像块(Torralba07),能够快速计算的密
集高斯尺度变化梯度(DAIS丫)[Tola08],梯度位置和方向直方图
(GLOH)[Miko lajczyk04]$另外,虽然申请了专利,我们仍希望添加尺度不变特征
变换(SIF丁)[Lowe04]描述子作为参考。其他的一些通过学习得到的不错的特征描述
子有学习获取的具有方向的小块[Hinterstoisser08]和学习获得的比例点
[Ozuysa107]。我们也希望能够增加上下文特征或元特征有金字塔匹配一核
[Grauman05],其他特征的金字塔直方图内嵌,PHOW[Bosch07],,Shape
Context[Belongie00:Mori05],或者其他通过统计空间分布来定位特征的方法[Fei一
Fei98]。最后,是一些全局特征,它们可描述整个场景,可以通过上下文来级联识
别[0liva06]。这些有很高的优先级,希望OpencV社区能够为这些功能或其他功能
开发和贡献代码。
通过大数据量学习,使用简单有效的最近邻匹配便可识别出物体,很多研究组在这
个方面获得了令人鼓舞的结果[Nistero6:Philbin07:Torralba08],所以可考虑加入一
个高效的最近邻框架。
对于机器人应用,我们需要物体识别(什么)和物体定位(哪里)。所以需要考虑增加
Shi和Malik的分割方法[Shi00],并可以实现快速算法[Sharon06]。最近一些算法
可以通过学习的方法来同时实现识别和分割[Oppelt08:Schroff08:Sivic08]。光照的
方向[Sun98]和形状信息也可提供很大帮助【Zhang99:PFados05]。
矼)也被称作兴趣点。
OpencV的未来567
第76页
OCR文字识别结果:
除了开发好的特征算法,还要开发三维传感算法,它可以用来实现虚拟测量和虚拟
SLAM(同时定位与构建地图)。如果能够获取足够精确的深度信息以及用于识别的
特征,便可以实现更好的导航和三维物体处理。为了生成更好的三维物体训练数
据,也可创建一个特制的视觉接口,来连接光线跟踪(ray-tracin吕)软件(例如开源的
Manta光线跟踪软件[Manta]]。【524~525】
机器人、安全系统以及网络图像和视频捜索都需要拥有识别物体的能力,所以
OpencV必须优化机器学习库中的模式匹配算法。具体说来,OpencV应该首先简
化学习算法的接口,然后设置好的默认参数,以使得算法易于上手。一些新的学习
算法需要加入,它们中的一些需要能够同时处理两类和多类问题(就像现在
OpencV中的随机森林那样)。另外需要可扩展的识别技术,这样用户就不需要为
每一个类别学习一个全新的模型。还有就是应该设计更多的功能,使得机器学习分
类器能够处理深度信息和三维特征。
在计算机视觉中,马尔可夫随机场(MRFs)和条件随机场(CRFs)正越来越流行。但
这些方法通常仅仅对具体某个问题可用,我们正在尝试让它们能够更灵活地使用。
我们希望开发出能够学习互联网数据库或移动机器人采集的数据库的方法,也许可
以根据Zisserman的建议采用近似最近邻(appro×imate nearest neighbor)技术来处理
百万或数亿个数据样本,这一点在前面提到过。类似地,我们需加速的boosting和
Haar特征训练方法来处理更大的数据库。目前ML部分的几个方法需要把所有数
据放入内存中处理,这严重影响了它们在大数据库上的应用。OpencV需要打破此
类限制。
OpencV也需要比目前更好的文档。当然此书对于丰富文档有帮助,但是OpencV
参考手册需要一次彻底整理,并增加捜索功能。处于高优先级的还有增强Linux支
持,以及更好的外部语言接口——特别是用Python和Numpy方便地进行视觉编
程。我们也要保证机器学习库能够直接从Python直接调用,也能从Python的
Scipy包和Numpy包调用。
为了在开发者社区有更好的互动,也许应该在一个重要的视觉会议上召开开发者研
讨会。另外需要大量的工作来推动。gfand challenge。竞赛,也需要一定数量的
奖金。
OpencV与艺术家
目前有一个世界范围的互动艺术家社区,参观者可以动态地与他(门的作品交互。这
568第14章
第77页
OCR文字识别结果:
一应用最常用的功能是人睑检测、光流和跟踪。我们希望本书能够让艺术家们更好
的理解OpencV,并使用OpencV创作出更好的作品。我们相信以后的好的深度探
测会使用户交互更丰富、更稳定。因为物体能被用于模态控制,更好的物体识别功
能将会产生多种与作品的交互方式。如果能够获取三维网格,那么就可以将参观者
《导人"到艺术作品中,艺术家可以通过识别用户动作获取更好的感觉,同样也可以
用来提升动态交互。在OpencV的未来发展中,将会越来越重视艺术家社区使用
计算机视觉的要求和期望。【525-526]
OpencV的未来569
过去与未来
第78页
OCR文字识别结果:
后记
本书涉及很多理论和很多实际问题,我们也描述了未来的计划。当然当我们开发软
件的时候,硬件也在发展。摄像机现在更便宜了,已经装在手机到交通灯等各种设
备中。一些厂商正在生产手机投影仪,这对机器人是一件好事,因为大部分手机都
很轻且功耗低,手机的电路大都集成了摄像机。手机投影仪可以发射出结构光,
因此可以获取精确的深度图。精确的深度图是操纵机器人和三维物体扫描必不可
少的。
本书的两位作者都参与了斯坦福大学的机器人运动员Stanley的视觉系统的设计,
Stanley曾在2005年DARPA Grand Challenge竞赛中获胜。在Stanley上,视觉系
统与一个激光扫描仪配合,完美地跑完了七个小时的沙漠路程[Dahlkamp06]。这让
我们意识到视觉与其他感知系统结合的力量通过将视觉与其他方式的感知结合,
之前不可解的道路感知问题变成了一个可解问题。通过本书让视觉变得更容易且易
于使用,其他人可以将视觉加入到他们自己的解决问题的工具中,然后发现一个解
决重要问题的新方法,这就是我们的希望。也就是使用普通的摄像机和OpencV,
人们可以解决实际问题,例如汽车倒车安全系统、新游戏控制和新安全系统中使用
的立体视觉。请尽情天马行空地修改代码来解决问题!
计算机视觉未来将大有发展,它看上去似乎是二十一世纪关键技术之一。同样地,
OpencV看上去似乎是(至少部分是)计算机视觉的关键推动力之一。在前方有无尽
的创新和贡献的机会。我们希望本书能够鼓励所有有志加入计算机视觉领域的人,
激发他们的兴趣,让他们加入这令人兴奋的领域。【526】
570第14章