《計算機視覺:算法與應(yīng)用》探索了用于分析和解釋圖像的各種常用技術(shù),描述了具有一定挑戰(zhàn)性的視覺應(yīng)用方面的成功實例,兼顧專業(yè)的醫(yī)學(xué)成像和圖像編輯與交織之類有趣的大眾應(yīng)用,以便學(xué)生能夠?qū)⑵鋺?yīng)用于自己的照片和視頻,從中獲得成就感和樂趣。本書從科學(xué)的角度介紹基本的視覺問題,將成像過程的物理模型公式化,然后在此基礎(chǔ)上生成對場景的逼真描述。作者還運用統(tǒng)計模型來分析和運用嚴(yán)格的工程方法來解決這些問題。
《計算機視覺:算法與應(yīng)用》作為本科生和研究生“計算機視覺”課程的理想教材,適合計算機和電子工程專業(yè)學(xué)生使用,重點介紹現(xiàn)實中行之有效的基本技術(shù),通過大量應(yīng)用和練習(xí)來鼓勵學(xué)生大膽創(chuàng)新。此外,本書的精心設(shè)計和編排,使其可以作為計算機視覺領(lǐng)域中一本獨特的基礎(chǔ)技術(shù)參考和最新研究成果文獻。
作為人,我們可以輕松感知周圍的三維世界。相比之下,不管計算機視覺在近年來已經(jīng)取得多么令人矚目的成果,但要讓計算機能像兩歲小孩那樣解釋和理解圖像,卻仍然是一個遙不可及的夢想。為什么計算機視覺會成為如此富有挑戰(zhàn)性的難題?它當(dāng)前發(fā)展到了哪個階段? 圍繞著這些問題,《計算機視覺:算法與應(yīng)用》探索了用于分析和解釋圖像的各種常用方法,描述了42個成功的視覺應(yīng)用實例,既有醫(yī)學(xué)成像之類的專業(yè)應(yīng)用,又有圖像編輯和拼接之類有趣的大眾應(yīng)用。這種精心的編排和設(shè)計有利于學(xué)生將這些看似高深的技術(shù)應(yīng)用于自己的照片和視頻,從而在趣味橫生的動手實踐中獲得成就感。 本書主題和特色: 編排結(jié)構(gòu)有利于活躍課堂氣氛,適合面向項目的課程,針對各種特定課程提供了本書使用提示 各章末尾的習(xí)題著重強調(diào)對算法的測試,重點包含大量針對小型期中課題的建議 附錄中提供額外的補充材料和更詳細的數(shù)學(xué)知識介紹,包括線性代數(shù)、數(shù)值方法和貝葉斯估計理論 完整的參考文獻和各章的補充閱讀,全面覆蓋各個子領(lǐng)域的最新研究進展和成果
序
本書萌芽于2001年,當(dāng)時,華盛頓大學(xué)的Steve Seitz邀我和他一起講一門課,課程名稱是“面向計算機圖形學(xué)的計算機視覺”。那個時候,計算機圖形學(xué)領(lǐng)域正在越來越多地使用計算機視覺技術(shù),用它來創(chuàng)建基于圖像的真實物體的模型,用于產(chǎn)生視覺效果,用于通過計算攝影學(xué)技術(shù)來合并真實影像。我們決定聚焦于計算機視覺在若干有趣問題中的應(yīng)用,例如使用個人照片的圖像拼接和基于照片的3D建模等,這一想法引起了學(xué)生們的共鳴。
從那時起,華盛頓大學(xué)和斯坦福大學(xué)就一直使用類似的課程大綱和項目導(dǎo)向的課程結(jié)構(gòu)來進行常規(guī)計算機視覺課程的教學(xué)(在斯坦福大學(xué),在2003年這門課程由我和David Fleet共同講授)。類似的課程大綱也被其他很多大學(xué)所采用,并被納入計算攝影學(xué)相關(guān)的更專業(yè)的課程。(有關(guān)如何在課程中使用本書的建議,請參見1.4節(jié)的表1.1。)
本書還反映了我在企業(yè)研究實驗室(DEC劍橋研究實驗室和微軟研究院)這二十年的計算機視覺研究經(jīng)歷。在從事研究的過程中,我主要關(guān)注在真實世界中具有實際應(yīng)用的問題和在實踐中行之有效的方法(算法)。因此,本書更強調(diào)在真實世界條件下有效的基本方法,而較少關(guān)注內(nèi)在完美但難以實際應(yīng)用的神秘的數(shù)學(xué)內(nèi)容。
本書適用于計算機科學(xué)和電子工程專業(yè)高年級本科的計算機視覺課程。學(xué)生最好已經(jīng)修過圖像處理或計算機圖形學(xué)課程,這樣一來,便可以少花一些時間來學(xué)習(xí)一般性的數(shù)學(xué)背景知識,多花一些時間來學(xué)習(xí)計算機視覺技術(shù)。本書也適用于研究生的計算機視覺課程(通過專研更富有挑戰(zhàn)性的應(yīng)用和算法領(lǐng)域),作為基本技術(shù)和近期研究文獻的參考用書。為此,我盡量嘗試引用每個子領(lǐng)域中最新的研究進展,即便其技術(shù)細節(jié)過于復(fù)雜而無法在本書中涉及。
在課程教學(xué)過程中,我們發(fā)現(xiàn),要使學(xué)生從容應(yīng)對真實圖像及其帶來的挑戰(zhàn),讓他們嘗試實現(xiàn)一些小的課程設(shè)計(通常一個建立在另一個基礎(chǔ)之上),是很有幫助的。隨后,要求學(xué)生分成組選擇各自的主題,完成最終的課程設(shè)計。(有時,這些課程設(shè)計甚至能轉(zhuǎn)換為會議論文!)本書各章最后的習(xí)題包含有關(guān)小型中期課程設(shè)計題目的很多建議,也包含一些更開放的問題,這些問題的解決仍然是活躍的研究課題。只要有可能,我都會鼓勵學(xué)生用他們自己的個人照片來測試他們的算法,因為這可以更好地激發(fā)他們的興趣,往往會產(chǎn)生富有創(chuàng)造性的衍生問題,使他們更熟悉真實影像的多樣性和復(fù)雜性。
在闡述和解決計算機視覺問題的過程中,我常常發(fā)現(xiàn)從三個高層途徑獲取靈感是有幫助的。
* 科學(xué)層面:建立圖像形成過程的詳細模型,為了恢復(fù)感興趣量而構(gòu)建其逆過程的數(shù)學(xué)方法(必要時,做簡化假設(shè)使其在數(shù)學(xué)上更容易處理)。
* 統(tǒng)計層面:使用概率模型來量化產(chǎn)生輸入圖像的未知量先驗似然率和噪聲測量過程,然后推斷所期望量的最可能的估計并分析其結(jié)果的不確定程度。使用的推斷算法往往與用于逆轉(zhuǎn)(科學(xué)的)圖像形成過程的優(yōu)化方法密切相關(guān)。
* 工程層面:開發(fā)出易于描述和實現(xiàn)且已知在實踐中行之有效的方法。測試這些方法,以便于了解其不足和失效模態(tài),及其期望的計算代價(運行時的性能)。
以上這三個途徑相互依存,并且貫穿本書始終。
我個人的研究和發(fā)展哲學(xué)(本書中的習(xí)題亦然)非常強調(diào)算法測試。在計算機視覺領(lǐng)域,提出一個算法在少數(shù)幾幅圖像上使某件事似乎可以做而不是把某件事做對,這太容易了。要想使算法有效,最理想的途徑是使用一種“三部曲”策略。
首先,在干凈的合成數(shù)據(jù)上測試算法,因為已知其精確結(jié)果。其次,在該數(shù)據(jù)上增加噪聲,評測性能是怎樣作為噪聲水平的函數(shù)退化的。最后,在真實世界數(shù)據(jù)上測試算法,優(yōu)先取自廣泛輸入源的數(shù)據(jù),比如萬維網(wǎng)上的照片。只有這樣,我們才能確信該算法能夠處理真實世界的復(fù)雜性,即不符合某種簡化模型或假設(shè)的圖像。
為了在這一過程中幫助學(xué)生,本書附帶大量補充閱讀材料,這些都可以在本書網(wǎng)站找到,網(wǎng)址為http://szeliski.org/Book。具體資源類別(參見附錄C的描述)如下:
* 指向萬維網(wǎng)上可以找到的問題的常用數(shù)據(jù)集的鏈接;
* 指向軟件庫的鏈接,可幫助學(xué)生從基本任務(wù)入手,比如讀/寫圖像或創(chuàng)建和操作圖像;
* 與本書素材對應(yīng)的幻燈片;
* 本書所引用的論文文獻列表。
在本領(lǐng)域發(fā)表新論文的教師和研究人員可能對后兩項資源更感興趣,但即便是普通學(xué)生,遲早也會發(fā)現(xiàn)它們是很有用的。有些軟件庫包含廣泛的計算機視覺算法的實現(xiàn),能幫助你應(yīng)對更難的項目(征得導(dǎo)師同意的情況下)。
致謝
我要感謝對本書寫作有幫助的所有人,他們的研究熱情、咨詢和鼓勵幫助我寫就本書。
McGill大學(xué)的Steve Zucker是第一個引導(dǎo)我涉足計算機視覺領(lǐng)域的人,他教導(dǎo)我們所有的學(xué)生要敢于質(zhì)疑和辯論研究結(jié)果和研究方法,鼓勵我攻讀這個領(lǐng)域的研究生。
我的博士論文導(dǎo)師,卡內(nèi)基·梅隆大學(xué)的Takeo Kanade(金出武雄)和Geoff Hinton,教給我良好的研究、寫作和報告的基本方法。他們激發(fā)了我對視覺處理、3D建模和統(tǒng)計方法的興趣,與此同時,Larry Matthies讓我見識了卡爾曼濾波和立體匹配。
Demetri Terzopoulos是我在涉足工業(yè)界后從事第一份研究工作的導(dǎo)師,他教給我成功發(fā)表論文的方法。Yvan Leclerc和Pascal Fua,我在斯坦福研究院(SRI International)短暫停留期間的同事,在可供選擇的計算機視覺研究方法方面給予我新的觀點。
在DEC劍橋研究實驗室工作的六年里,我有幸與很多同事共同工作,包括Ingrid Carlbom,Gudrun Klinker,Keith Waters,Richard Weiss,Stephane Lavallee和Sing Bing Kang(江勝明),同時也指導(dǎo)了最初的一大批杰出的暑期實習(xí)生,包括David Tonnesen,Sing Bing Kang(江勝明),James Coughlan,Harry Shum(沈向洋)。正是在這里,我與Daniel Scharstein就此開始長期合作,他目前在Middlebury學(xué)院工作。
在微軟研究院,我非常榮幸能和世界上最好的一些計算機視覺與計算機圖形學(xué)領(lǐng)域的研究員一起工作,他們是: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。我也非常幸運能有如此杰出的實習(xí)生,他們是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。
在微軟工作時,我還有機會與在華盛頓大學(xué)的杰出的同事合作,我是該校的合聘教授。我要感謝Tony DeRose和David Salesin,是他們最初鼓勵我參與華盛頓大學(xué)正在進行的研究。我要感謝我的長期合作者Brian Curless,Steve Seitz,Maneesh Agrawala,Sameer Agarwal,Yasu Furukawa。還要感謝我指導(dǎo)且和與我配合很好的學(xué)生,他們是:Frederic Pighin,Yung-Yu Chuang,Doug Zongker,Colin Zheng,Aseem Agarwala,Dan Goldman,Noah Snavely,Rahul Garg,Ryan Kaminsky。正如序開始時所提到的,本書發(fā)端于Steve Seitz邀請我一起講授的視覺課程,源于Steve的鼓勵、課程筆記和編輯輸入。
我還要感謝許多其他的計算機視覺研究人員,他們給了我很多關(guān)于本書的建設(shè)性建議,包括:Sing Bing Kang(江勝明),他是我的非正式版圖書編輯;Vladimir Kolmogorov,他撰寫了關(guān)于MRF推斷的線性規(guī)劃方法之附錄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(宋毅),F(xiàn)alk Schubert,Roman Pflugfelder,Marshall Tappen,James Coughlan,Sammy Rogmans,Klaus Strobel,Shanmuganathan,Andreas Siebert,Yongjun Wu(吳勇軍),F(xiàn)red 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在本書整個出版過程中對我?guī)椭艽蟆eith Price的“Annotated Computer Vision Bibliography”(注解版計算機視覺參考文獻)對追溯參考文獻和查找相關(guān)工作起著非常重要的作用。
我期望這本書準(zhǔn)確、信息可靠和及時,所以如果你有任何改進本書的建議,不妨發(fā)電子郵件告訴我。
最后,沒有家人難以置信的支持和鼓勵,本書不可能問世,或者說不值得費時費力。謹(jǐn)以此書獻給我的父母,Zdzis?aw 和 Jadwiga,他們的愛、慷慨和成就總是激勵著我;獻給我的妹妹Basia,因為她對我所付出的畢生的手足之情;特別獻給Lyn,Anne和Stephen,他們在所有事情(包括本書這個項目)上每天都給予我鼓勵,使所有事情都有非凡的價值。
Wenatchee湖畔
2010年8月
Richard Szeliski博士計算機視覺領(lǐng)域的大師級人物。Szeliski博士在計算機視覺研究方面有25年以上的豐富經(jīng)驗,先后任職干DEC和微軟研究院。1996年,他在微軟研究院任職期間,提出一種基于運動的全景圖像拼接模型,采用L-M算法,通過求圖像間的幾何變換關(guān)系來進行圖像匹配。此方法是圖像拼接領(lǐng)域的經(jīng)典算法,Richard Szeliski也因此成為圖像拼接領(lǐng)域的奠基人。
艾海舟博士,清華大學(xué)計算機系教授,IEEE高級會員和IEEECS會員。先后于1985年、1988年和1991年獲得清華大學(xué)工學(xué)學(xué)士、碩士和博士學(xué)位,博士論文榮獲“1992年度清華大學(xué)優(yōu)秀博士論文”獎。1994-1996年,在比利時布魯塞爾自由大學(xué)做博士后研究。目前,在清華大學(xué)教授“數(shù)字圖像處理”和“計算機視覺”課程,研究方向為計算機視覺與模式識別。發(fā)表學(xué)術(shù)論文80余篇。
第1章 概述
么是計算機視覺?
簡史
本書概述
課程大綱樣例
標(biāo)記法注釋
第2章 圖像形成
幾何基元和變換
光度測定學(xué)的圖像形成
數(shù)字?jǐn)z像機
第3章 圖像處理
點算子
線性濾波
更多的鄰域算子
傅里葉變換
金字塔與小波
幾何變換
全局優(yōu)化
第4章 特征檢測與匹配
點與塊
邊緣
線條
第5章 分割
活動輪廓
分裂與歸并
均值移位和模態(tài)發(fā)現(xiàn)
規(guī)范圖割
圖割和基于能量的方法
第6章 基于特征的配準(zhǔn)
基于2D和3D特征的配準(zhǔn)
姿態(tài)估計
幾何內(nèi)參數(shù)標(biāo)定
第7章 由運動到結(jié)構(gòu)
三角測量
二視圖由運動到結(jié)構(gòu)
因子分解
光束平差法
限定結(jié)構(gòu)和運動
第8章 稠密運動估計
平移配準(zhǔn)
參數(shù)化運動
基于樣條的運動
光流
層次運動
第9章 圖像拼接
運動模型
全局配準(zhǔn)
合成
第10章 計算攝影學(xué)
光度學(xué)標(biāo)定
高動態(tài)范圍成像
超分辨率和模糊去除
圖像摳圖和合成
紋理分析與合成
第11章 立體視覺對應(yīng)
極線幾何學(xué)
稀疏對應(yīng)
稠密對應(yīng)
局部方法
全局優(yōu)化
多視圖立體視覺
第12章 3D重建
由X到形狀
主動距離獲取
表面表達
基于點的表達
體積表達
基于模型的重建一恢復(fù)紋理映射與反照率
第13章 基于圖像的繪制
視圖插值
層次深度圖像
光場與發(fā)光圖
環(huán)境影像形板
基于視頻的繪制
第14章 識別
物體檢測
人臉識別
實例識別
類識別
上下文與場景理解
識別數(shù)據(jù)庫與測試集