《计算机视觉:算法与应用》探索了用于分析和解释图像的各种常用技术,描述了具有一定挑战性的视觉应用方面的成功实例,兼顾专业的医学成像和图像编辑与交织之类有趣的大众应用,以便学生能够将其应用于自己的照片和视频,从中获得成就感和乐趣。本书从科学的角度介绍基本的视觉问题,将成像过程的物理模型公式化,然后在此基础上生成对场景的逼真描述。作者还运用统计模型来分析和运用严格的工程方法来解决这些问题。
《计算机视觉:算法与应用》作为本科生和研究生“计算机视觉”课程的理想教材,适合计算机和电子工程专业学生使用,重点介绍现实中行之有效的基本技术,通过大量应用和练习来鼓励学生大胆创新。此外,本书的精心设计和编排,使其可以作为计算机视觉领域中一本独特的基础技术参考和最新研究成果文献。
作为人,我们可以轻松感知周围的三维世界。相比之下,不管计算机视觉在近年来已经取得多么令人瞩目的成果,但要让计算机能像两岁小孩那样解释和理解图像,却仍然是一个遥不可及的梦想。为什么计算机视觉会成为如此富有挑战性的难题?它当前发展到了哪个阶段? 围绕着这些问题,《计算机视觉:算法与应用》探索了用于分析和解释图像的各种常用方法,描述了42个成功的视觉应用实例,既有医学成像之类的专业应用,又有图像编辑和拼接之类有趣的大众应用。这种精心的编排和设计有利于学生将这些看似高深的技术应用于自己的照片和视频,从而在趣味横生的动手实践中获得成就感。 本书主题和特色: 编排结构有利于活跃课堂气氛,适合面向项目的课程,针对各种特定课程提供了本书使用提示 各章末尾的习题着重强调对算法的测试,重点包含大量针对小型期中课题的建议 附录中提供额外的补充材料和更详细的数学知识介绍,包括线性代数、数值方法和贝叶斯估计理论 完整的参考文献和各章的补充阅读,全面覆盖各个子领域的最新研究进展和成果
序
本书萌芽于2001年,当时,华盛顿大学的Steve Seitz邀我和他一起讲一门课,课程名称是“面向计算机图形学的计算机视觉”。那个时候,计算机图形学领域正在越来越多地使用计算机视觉技术,用它来创建基于图像的真实物体的模型,用于产生视觉效果,用于通过计算摄影学技术来合并真实影像。我们决定聚焦于计算机视觉在若干有趣问题中的应用,例如使用个人照片的图像拼接和基于照片的3D建模等,这一想法引起了学生们的共鸣。
从那时起,华盛顿大学和斯坦福大学就一直使用类似的课程大纲和项目导向的课程结构来进行常规计算机视觉课程的教学(在斯坦福大学,在2003年这门课程由我和David Fleet共同讲授)。类似的课程大纲也被其他很多大学所采用,并被纳入计算摄影学相关的更专业的课程。(有关如何在课程中使用本书的建议,请参见1.4节的表1.1。)
本书还反映了我在企业研究实验室(DEC剑桥研究实验室和微软研究院)这二十年的计算机视觉研究经历。在从事研究的过程中,我主要关注在真实世界中具有实际应用的问题和在实践中行之有效的方法(算法)。因此,本书更强调在真实世界条件下有效的基本方法,而较少关注内在完美但难以实际应用的神秘的数学内容。
本书适用于计算机科学和电子工程专业高年级本科的计算机视觉课程。学生最好已经修过图像处理或计算机图形学课程,这样一来,便可以少花一些时间来学习一般性的数学背景知识,多花一些时间来学习计算机视觉技术。本书也适用于研究生的计算机视觉课程(通过专研更富有挑战性的应用和算法领域),作为基本技术和近期研究文献的参考用书。为此,我尽量尝试引用每个子领域中最新的研究进展,即便其技术细节过于复杂而无法在本书中涉及。
在课程教学过程中,我们发现,要使学生从容应对真实图像及其带来的挑战,让他们尝试实现一些小的课程设计(通常一个建立在另一个基础之上),是很有帮助的。随后,要求学生分成组选择各自的主题,完成最终的课程设计。(有时,这些课程设计甚至能转换为会议论文!)本书各章最后的习题包含有关小型中期课程设计题目的很多建议,也包含一些更开放的问题,这些问题的解决仍然是活跃的研究课题。只要有可能,我都会鼓励学生用他们自己的个人照片来测试他们的算法,因为这可以更好地激发他们的兴趣,往往会产生富有创造性的衍生问题,使他们更熟悉真实影像的多样性和复杂性。
在阐述和解决计算机视觉问题的过程中,我常常发现从三个高层途径获取灵感是有帮助的。
* 科学层面:建立图像形成过程的详细模型,为了恢复感兴趣量而构建其逆过程的数学方法(必要时,做简化假设使其在数学上更容易处理)。
* 统计层面:使用概率模型来量化产生输入图像的未知量先验似然率和噪声测量过程,然后推断所期望量的最可能的估计并分析其结果的不确定程度。使用的推断算法往往与用于逆转(科学的)图像形成过程的优化方法密切相关。
* 工程层面:开发出易于描述和实现且已知在实践中行之有效的方法。测试这些方法,以便于了解其不足和失效模态,及其期望的计算代价(运行时的性能)。
以上这三个途径相互依存,并且贯穿本书始终。
我个人的研究和发展哲学(本书中的习题亦然)非常强调算法测试。在计算机视觉领域,提出一个算法在少数几幅图像上使某件事似乎可以做而不是把某件事做对,这太容易了。要想使算法有效,最理想的途径是使用一种“三部曲”策略。
首先,在干净的合成数据上测试算法,因为已知其精确结果。其次,在该数据上增加噪声,评测性能是怎样作为噪声水平的函数退化的。最后,在真实世界数据上测试算法,优先取自广泛输入源的数据,比如万维网上的照片。只有这样,我们才能确信该算法能够处理真实世界的复杂性,即不符合某种简化模型或假设的图像。
为了在这一过程中帮助学生,本书附带大量补充阅读材料,这些都可以在本书网站找到,网址为http://szeliski.org/Book。具体资源类别(参见附录C的描述)如下:
* 指向万维网上可以找到的问题的常用数据集的链接;
* 指向软件库的链接,可帮助学生从基本任务入手,比如读/写图像或创建和操作图像;
* 与本书素材对应的幻灯片;
* 本书所引用的论文文献列表。
在本领域发表新论文的教师和研究人员可能对后两项资源更感兴趣,但即便是普通学生,迟早也会发现它们是很有用的。有些软件库包含广泛的计算机视觉算法的实现,能帮助你应对更难的项目(征得导师同意的情况下)。
致谢
我要感谢对本书写作有帮助的所有人,他们的研究热情、咨询和鼓励帮助我写就本书。
McGill大学的Steve Zucker是第一个引导我涉足计算机视觉领域的人,他教导我们所有的学生要敢于质疑和辩论研究结果和研究方法,鼓励我攻读这个领域的研究生。
我的博士论文导师,卡内基·梅隆大学的Takeo Kanade(金出武雄)和Geoff Hinton,教给我良好的研究、写作和报告的基本方法。他们激发了我对视觉处理、3D建模和统计方法的兴趣,与此同时,Larry Matthies让我见识了卡尔曼滤波和立体匹配。
Demetri Terzopoulos是我在涉足工业界后从事第一份研究工作的导师,他教给我成功发表论文的方法。Yvan Leclerc和Pascal Fua,我在斯坦福研究院(SRI International)短暂停留期间的同事,在可供选择的计算机视觉研究方法方面给予我新的观点。
在DEC剑桥研究实验室工作的六年里,我有幸与很多同事共同工作,包括Ingrid Carlbom,Gudrun Klinker,Keith Waters,Richard Weiss,Stephane Lavallee和Sing Bing Kang(江胜明),同时也指导了最初的一大批杰出的暑期实习生,包括David Tonnesen,Sing Bing Kang(江胜明),James Coughlan,Harry Shum(沈向洋)。正是在这里,我与Daniel Scharstein就此开始长期合作,他目前在Middlebury学院工作。
在微软研究院,我非常荣幸能和世界上最好的一些计算机视觉与计算机图形学领域的研究员一起工作,他们是:Michael Cohen,Hugues Hoppe,Stephen Gortler,Steve Shafer,Matthew Turk,Harry Shum(沈向洋),Anandan,Phil Torr,Antonio Criminisi,Georg Petschnigg,Kentaro Toyama,Ramin Zabih,Shai Avidan,Sing Bing Kang(江胜明),Matt Uyttendaele,Patrice Simard,Larry Zitnick,Richard Hartley,Simon Winder,Drew Steedly,Chris Pal,Nebojsa Jojic,Patrick Baudisch,Dani Lischinski,Matthew Brown,Simon Baker,Michael Goesele,Eric Stollnitz,David Nistér,Blaise Aguera y Arcas,Sudipta Sinha,Johannes Kopf,Neel Joshi,Krishnan Ramnath。我也非常幸运能有如此杰出的实习生,他们是Polina Golland,Simon Baker,Mei Han(韩玫),Arno Sch?dl,Ron Dror,Ashley Eden,Jinxiang Chai(柴金祥),Rahul Swaminathan,Yanghai Tsin(秦漾海),Sam Hasinoff,Anat Levin,Matthew Brown,Eric Bennett,Vaibhav Vaish,Jan-Michael Frahm,James Diebel,Ce Liu(刘策),Josef Sivic,Grant Schindler,Colin Zheng,Neel Joshi,Sudipta Sinha,Zeev Farbman,Rahul Garg,Tim Cho,Yekeun Jeong,Richard Roberts,Varsha Hedau,Dilip Krishnan。
在微软工作时,我还有机会与在华盛顿大学的杰出的同事合作,我是该校的合聘教授。我要感谢Tony DeRose和David Salesin,是他们最初鼓励我参与华盛顿大学正在进行的研究。我要感谢我的长期合作者Brian Curless,Steve Seitz,Maneesh Agrawala,Sameer Agarwal,Yasu Furukawa。还要感谢我指导且和与我配合很好的学生,他们是:Frederic Pighin,Yung-Yu Chuang,Doug Zongker,Colin Zheng,Aseem Agarwala,Dan Goldman,Noah Snavely,Rahul Garg,Ryan Kaminsky。正如序开始时所提到的,本书发端于Steve Seitz邀请我一起讲授的视觉课程,源于Steve的鼓励、课程笔记和编辑输入。
我还要感谢许多其他的计算机视觉研究人员,他们给了我很多关于本书的建设性建议,包括:Sing Bing Kang(江胜明),他是我的非正式版图书编辑;Vladimir Kolmogorov,他撰写了关于MRF推断的线性规划方法之附录B.5.5;Daniel Scharstein,Richard Hartley,Simon Baker,Noah Snavely,Bill Freeman,Svetlana Lazebnik,Matthew Turk,Jitendra Malik,Alyosha Efros,Michael Black,Brian Curless,Sameer Agarwal,Li Zhang(张力),Deva Ramanan,Olga Veksler,Yuri Boykov,Carsten Rother,Phil Torr,Bill Triggs,Bruce Maxwell,Jana Kosecka,Eero Simoncelli,Aaron Hertzmann,Antonio Torralba,Tomaso Poggio,Theo Pavlidis,Baba Vemuri,Nando de Freitas,Chuck Dyer,Song Yi(宋毅),Falk Schubert,Roman Pflugfelder,Marshall Tappen,James Coughlan,Sammy Rogmans,Klaus Strobel,Shanmuganathan,Andreas Siebert,Yongjun Wu(吴勇军),Fred Pighin,Juan Cockburn,Ronald Mallet,Tim Soper,Georgios Evangelidis,Dwight Fowler,Itzik Bayaz,Daniel O’Connor,Srikrishna Bhat。Shena Deuchers极为出色地完成了本书的排版编辑工作,提出了很多有价值的改进建议。Springer出版社的Wayne Wheeler和Simon Rees在本书整个出版过程中对我帮助很大。Keith Price的“Annotated Computer Vision Bibliography”(注解版计算机视觉参考文献)对追溯参考文献和查找相关工作起着非常重要的作用。
我期望这本书准确、信息可靠和及时,所以如果你有任何改进本书的建议,不妨发电子邮件告诉我。
最后,没有家人难以置信的支持和鼓励,本书不可能问世,或者说不值得费时费力。谨以此书献给我的父母,Zdzis?aw 和 Jadwiga,他们的爱、慷慨和成就总是激励着我;献给我的妹妹Basia,因为她对我所付出的毕生的手足之情;特别献给Lyn,Anne和Stephen,他们在所有事情(包括本书这个项目)上每天都给予我鼓励,使所有事情都有非凡的价值。
Wenatchee湖畔
2010年8月
Richard Szeliski博士计算机视觉领域的大师级人物。Szeliski博士在计算机视觉研究方面有25年以上的丰富经验,先后任职干DEC和微软研究院。1996年,他在微软研究院任职期间,提出一种基于运动的全景图像拼接模型,采用L-M算法,通过求图像间的几何变换关系来进行图像匹配。此方法是图像拼接领域的经典算法,Richard Szeliski也因此成为图像拼接领域的奠基人。
艾海舟博士,清华大学计算机系教授,IEEE高级会员和IEEECS会员。先后于1985年、1988年和1991年获得清华大学工学学士、硕士和博士学位,博士论文荣获“1992年度清华大学优秀博士论文”奖。1994-1996年,在比利时布鲁塞尔自由大学做博士后研究。目前,在清华大学教授“数字图像处理”和“计算机视觉”课程,研究方向为计算机视觉与模式识别。发表学术论文80余篇。
第1章 概述
么是计算机视觉?
简史
本书概述
课程大纲样例
标记法注释
第2章 图像形成
几何基元和变换
光度测定学的图像形成
数字摄像机
第3章 图像处理
点算子
线性滤波
更多的邻域算子
傅里叶变换
金字塔与小波
几何变换
全局优化
第4章 特征检测与匹配
点与块
边缘
线条
第5章 分割
活动轮廓
分裂与归并
均值移位和模态发现
规范图割
图割和基于能量的方法
第6章 基于特征的配准
基于2D和3D特征的配准
姿态估计
几何内参数标定
第7章 由运动到结构
三角测量
二视图由运动到结构
因子分解
光束平差法
限定结构和运动
第8章 稠密运动估计
平移配准
参数化运动
基于样条的运动
光流
层次运动
第9章 图像拼接
运动模型
全局配准
合成
第10章 计算摄影学
光度学标定
高动态范围成像
超分辨率和模糊去除
图像抠图和合成
纹理分析与合成
第11章 立体视觉对应
极线几何学
稀疏对应
稠密对应
局部方法
全局优化
多视图立体视觉
第12章 3D重建
由X到形状
主动距离获取
表面表达
基于点的表达
体积表达
基于模型的重建一恢复纹理映射与反照率
第13章 基于图像的绘制
视图插值
层次深度图像
光场与发光图
环境影像形板
基于视频的绘制
第14章 识别
物体检测
人脸识别
实例识别
类识别
上下文与场景理解
识别数据库与测试集