1. 程式人生 > >計算機視覺簡介:歷史、現狀和發展趨勢

計算機視覺簡介:歷史、現狀和發展趨勢

【導讀】本文由中國科學院自動化研究所模式識別國家重點實驗室胡佔義研究員撰寫,對計算機視覺40多年的發展歷程進行了簡要總結,包括:馬爾計算視覺理論,主動視覺與目的視覺,多視幾何與攝像機自標定,以及基於學習的視覺。在此基礎上,對計算機視覺的未來發展趨勢給出了一些展望。

原文連結

1.1 什麼是計算機視覺

正像其它學科一樣,一個大量人員研究了多年的學科,卻很難給出一個嚴格的定義,模式識別如此,目前火熱的人工智慧如此,計算機視覺亦如此。與計算機視覺密切相關的概念有視覺感知(visual perception),視覺認知(visual cognition),影象和視訊理解( image and video understanding). 這些概念有一些共性之處,也有本質不同。從廣義上說,計算機視覺就是“賦予機器自然視覺能力”的學科。自然視覺能力,就是指生物視覺系統體現的視覺能力。一則生物自然視覺無法嚴格定義,在加上這種廣義視覺定義又“包羅永珍”,同時也不太符合40多年來計算機視覺的研究狀況,所以這種“廣義計算機視覺定義”,雖無可挑剔,但也缺乏實質性內容,不過是一種“迴圈式遊戲定義”而已。實際上,計算機視覺本質上就是研究視覺感知問題。視覺感知,根據維科百基(Wikipedia)的定義, 是指對“環境表達和理解中,對視覺資訊的組織、識別和解釋的過程”。根據這種定義,計算機視覺的目標是對環境的表達和理解,核心問題是研究如何對輸入的影象資訊進行組織,對物體和場景進行識別,進而對影象內容給予解釋。

計算機視覺與人工智慧有密切聯絡,但也有本質的不同。人工智慧更強調推理和決策,但至少計算機視覺目前還主要停留在影象資訊表達和物體識別階段。“物體識別和場景理解”也涉及從影象特徵的推理與決策,但與人工智慧的推理和決策有本質區別。應該沒有一個嚴肅的計算機視覺研究人員會認為AlphaGo, AlphaZero 是計算機視覺,但都會認為它們是典型的人工智慧內容。

簡言之,計算機視覺是以影象(視訊)為輸入,以對環境的表達(representation)和理解為目標,研究影象資訊組織、物體和場景識別、進而對事件給予解釋的學科。從目前的研究現狀看,目前還主要聚焦在影象資訊的組織和識別階段,對事件解釋還鮮有涉及,至少還處於非常初級的階段。

這裡需要強調的是,每個人由於背景不同,偏好不同,知識面不同,對同一問題的觀點亦會不同,甚至出現大相徑庭的局面。上面為筆者對計算機視覺的理解,也許是片面或錯誤的。如不少人認為“紋理分析”是計算機視覺的一個重要研究方向,筆者不敢苟同。另外,很多場合,人們把“影象處理”也認為是“計算機視覺”,這也是不恰當的。影象處理是一門獨立的學科,影象處理研究影象去噪、影象增強等內容,輸入為影象,輸出也是影象。計算機視覺利用影象處理技術進行影象預處理,但影象處理本身構不成計算機視覺的核心內容。

這裡順便說一下,目前很多人對“感知”和“認知”不加區分,給讀者帶來不必要的困惑和誤解。在不少場合下,經常會見到有些“視覺專家”把“認知”和“推理與決策”(reasoning and decision)作為平行概念使用,這事實上是不太嚴謹的。根據“維基百科”,“認知”是指通過感覺(senses)、經歷 (experience)和思考(thoughts)來獲取知識(knowledge)和進行理解(understanding)的思維過程(mental process)。認知包括:知識形成(knowledge),注視(attention),記憶(memory),推理(reasoning),問題求解(problem solving)、決策( decision making)以及語言生成(language production)等。所以,“感知”與“認知”有區別,推理和決策是典型的認知過程,是認知的重要組成部分,它們之間是包含關係,不是平行關係。

1.2 計算機視覺發展的四個主要階段

儘管人們對計算機視覺這門學科的起始時間和發展歷史有不同的看法,但應該說, 1982年馬爾( David Marr )《視覺》(Marr, 1982)一書的問世,標誌著計算機視覺成為了一門獨立學科。計算機視覺的研究內容,大體可以分為物體視覺(object vision)和空間視覺(spatial vision)二大部分. 物體視覺在於對物體進行精細分類和鑑別,而空間視覺在於確定物體的位置和形狀,為“動作(action)” 服務。正像著名的認知心理學家J.J. Gibson 所言,視覺的主要功能在於“適應外界環境,控制自身運動”。 適應外界環境和控制自身運動,是生物生存的需求,這些功能的實現需要靠物體視覺和空間視覺協調完成。

計算機視覺40多年的發展中,儘管人們提出了大量的理論和方法,但總體上說,計算機視覺經歷了4個主要歷程。即: 馬爾計算視覺、主動和目的視覺、多視幾何與分層三維重建和基於學習的視覺。下面將對這4項主要內容進行簡要介紹。

1.2.1 馬爾計算視覺(Computational Vision)

現在很多計算機視覺的研究人員,恐怕對“馬爾計算視覺”根本不瞭解,這不能不說是一件非常遺憾的事。目前,在計算機上調“深度網路”來提高物體識別的精度似乎就等於從事“視覺研究”。事實上,馬爾的計算視覺的提出,不論在理論上還是研究視覺的方法論上,均具有劃時代的意義。

馬爾的計算視覺分為三個層次: 計算理論、表達和演算法以及演算法實現。由於馬爾認為演算法實現並不影響演算法的功能和效果,所以,馬爾計算視覺理論主要討論“計算理論”和“表達與演算法”二部分內容。馬爾認為,大腦的神經計算和計算機的數值計算沒有本質區別,所以馬爾沒有對“演算法實現”進行任何探討。從現在神經科學的進展看,“神經計算”與數值計算在有些情況下會產生本質區別,如目前興起的神經形態計算( Neuromorphological computing),但總體上說,“數值計算”可以“模擬神經計算”。至少從現在看,“演算法的不同實現途徑”,並不影響馬爾計算視覺理論的本質屬性。

1)計算理論(Computational Theory)
計算理論需要明確視覺目的, 或視覺的主要功能是什麼。上世紀70年代,人們對大腦的認識還非常粗淺,目前普遍使用的非創傷型成像手段,如功能核磁共振(FMRI)等,還沒有普及。所以,人們主要靠病理學和心理學結果來推斷生理功能。即使目前,人們對“視覺的主要功能”到底是什麼,也仍然沒有定論。如最近幾年,MIT的 DiCarlo等人提出了所謂的“目標驅動的感知資訊建模”方法(Yamins &DiCarlo et al. 2016a)。他們猜測,猴子IT區(IT: interiortemporal cortex, 物體識別區)的神經元對物體的響應(neuronal responses)“可以通過層次化的卷積神經網路”(HCNN: Hierarchical Convolutional Neural Networks )來建模。他們認為,只要對HCNN在影象物體分類任務下進行訓練,則訓練好的HCNN 可以很好定量預測IT 區神經元的響應(Yamins et al. 2014, 2016b)。由於僅僅“控制影象分類效能”對IT神經元響應(群體神經元對某一輸入影象物體的響應,就是神經元對該物體的表達或編碼)進行定量預測,所以他們將這種框架稱之為“目標驅動的框架”。目標驅動的框架提供了一種新的比較通用的建模群體神經元編碼的途徑,但也存在很大的不足。能否真正像作者所言的那樣,僅僅靠“訓練影象分類的HCNN”就可以定量預測神經元對影象物體的響應,仍是一個有待進一步深入研究的課題。

馬爾認為視覺不管有多少功能,主要功能在於“從視網膜成像的二維影象來恢復空間物體的可見三維表面形狀”,稱之為“三維重建”(3D reconstruction)。而且,馬爾認為,這種重建過程不是天生就有的,而是可以通過計算完成的。J.J. Gibson 等心理學家,包括格式塔心裡學學派( Gestalt psychology),認為視覺的很多功能是天生就有的。可以想想,如果一種視覺功能與生具有,不可建模,就談不上計算,也許就不存在今天的“計算機視覺”這門學科了。

那麼,馬爾的計算理論是什麼呢?這一方面,馬爾在其書中似乎並不是介紹得特別具體。他舉了一個購買商品的例子,說明計算理論的重要性。如商店結賬要用加法而不是乘法。試想如果用乘法結賬,每個商品1元錢,則不管你購買多少件商品,你僅僅需要付一元錢。

馬爾的計算理論認為,影象是物理空間在視網膜上的投影,所以影象資訊蘊含了物理空間的內在資訊,因此,任何計算視覺計算理論和方法都應該從影象出發,充分挖掘影象所蘊含的對應物理空間的內在屬性。也就是說,馬爾的視覺計算理論就是要“挖掘關於成像物理場景的內在屬性來完成相應的視覺問題計算”。因為從數學的觀點看,僅僅從影象出發,很多視覺問題具有“歧義性”,如典型的左右眼影象之間的對應問題。如果沒有任何先驗知識,影象點對應關係不能唯一確定。不管任何動物或人,生活的環境都不是隨機的,不管有意識或無意識,時時刻刻都在利用這些先驗知識,來解釋看到的場景和指導日常的行為和行動。如桌子上放一個水杯的場景,人們會正確地解釋為桌子上放了一個水杯,而不把他們看作一個新物體。當然,人類也會經常出錯,如大量錯覺現象。從這個意義上來說,讓計算機來模仿人類視覺是否一定是一條好的途徑也是一個未知的命題。飛機的飛行需要藉助空氣動力學知識,而不是機械地模仿鳥如何飛。

2)表達和演算法(Representationand Algorithm)
識別物體之前,不管是計算機還是人,大腦(或計算機記憶體)中事先要有對該物體的儲存形式,稱之為物體表達(object representation). 馬爾視覺計算理論認為,物體的表達形式為該物體的三維幾何形狀。馬爾當時猜測,由於人在識別物體時與觀察物體的視角無關,而不同視角下同一物體在視網膜上的成像又不同,所以物體在大腦中的表達不可能是二維的,可能是三維形狀,因為三維形狀不依賴於觀察視角。另外,當時病理學研究發現,有些病人無法辨認“茶杯”,但可以毫無困難地畫出茶杯的形狀,因此馬爾覺得,這些病人也佐證了他的猜測。從目前對大腦的研究看,大腦的功能是分割槽的。物體的“幾何形狀”和“語義”儲存在不同的腦區。另外,物體識別也不是絕對地與視角無關,僅僅在一個比較小的變化範圍內與視角無關。所以,從當前的研究看,馬爾的物體的“三維表達”猜測基本上是不正確的,至少是不完全正確的,但馬爾的計算理論仍具有重要的理論意義和應用價值。

簡言之,馬爾視覺計算理論的“物體表達”,是指“物體座標系下的三維形狀表達”。注意,從數學上來說,一個三維幾何形狀,選取的座標系不同,表達函式亦不同。如一個球體,如果以球心為座標原點,則球面可以簡單表達為:x^2+y^2+z^2=1。 但如果觀測者在x軸上2倍半徑處觀測,則可見球面部分在觀測者座標系下的方程為:x=2-sqrt(1-y^2-z^2)。由此可見,同一物體,選用的座標系不同,表達方式亦不同。馬爾將“觀測者座標系下的三維幾何形狀表達”稱之為“2.5維表達”,物體座標系下的表達為“三維表達”。所以,在後續的演算法部分,馬爾重點研究瞭如何從影象先計算“2.5維表達”,然後轉化為“三維表達”的計算方法和過程。

演算法部分是馬爾計算視覺的主體內容。馬爾認為,從影象到三維表達,要經過三個計算層次:首先從影象得到一些基元(primal sketch), 然後通過立體視覺(stereopsis)等模組將基元提升到2.5維表達,最後提升到三維表達。

下圖總結給出了馬爾視覺計算理論的演算法流程:

這裡寫圖片描述

由上圖所示,首先從影象提取邊緣資訊(二階導數的過零點),然後提取點狀基元(blob, 線狀基元(edge)和桿狀基元 (bar), 進而對這些初級基元(raw primal sketch)組合形成完整基元(full primal sketch),上述過程為視覺計算理論的特徵提取階段。在此基礎上,通過立體視覺和運動視覺等模組,將基元提升到2.5維表達。最後,將2.5維表達提升到三維表達。在馬爾的《視覺》一書中,重點介紹了特徵提取和2.5維表達對應的計算方法。在2.5維表達部分,也僅僅重點介紹了立體視覺和運動視覺部分。由於當雙眼(左右相機)的相互位置已知時(計算機視覺中稱之為相機外引數),立體視覺就轉化為“左右影象點的對應問題”(image point correspondence), 所以,馬爾在立體視覺部分重點介紹了影象點之間的匹配問題,即如何剔除誤匹配,並給出了對應演算法。

立體視覺等計算得到的三維空間點僅僅是在“觀測者座標系下的座標”,是物體的2.5維表示。如何進一步提升到物體座標系下的三維表示,馬爾給出了一些思路,但這方面都很粗泛。如確定物體的旋轉主軸等等,這部分內容,類似於後來人們提出的“骨架模型”(skeleton model)構造.

需要指出的是,馬爾的視覺計算理論是一種理論體系。在此體系下,可以進一步豐富具體的計算模組,構建“通用性視覺系統”(general vision system)。只可惜馬爾(Jan.15,1945 ~ Nov.17,1980 )1980年底就因白血病去世,包括他的《視覺》一書,也是他去世後出版的。馬爾的英年早逝,不能說不是計算機視覺界的一大損失。由於馬爾的貢獻,所以二年一度的國際計算機視覺大會(ICCV: International Conference on Computer Vision)設有馬爾獎(MarrPrize),作為會議的最佳論文獎。另外,在認知科學領域,也設有馬爾獎,因為馬爾對認知科學也有巨大的貢獻。以同一人名在不同領域設立獎項,實屬罕見,可見馬爾對計算機視覺的影響有多深遠。正如S. Edelman 和 L. M. Vaina 在《 International Encyclopedia of the Social & Behavioral Sciences 》中對馬爾的評價那樣,“馬爾前期給出的整合數學和神經生物學對大腦理解的三項工作,已足以使他在任何情況下在英國經驗主義二個半世紀的科學殿堂中佔有重要的一席,…, 然而,他進一步提出了更加有影響的計算視覺理論”。所以,從事計算機視覺研究的人員對馬爾計算視覺不瞭解,實在是一件比較遺憾的事。

1.2.2 曇花一現的主動和目的視覺

很多人介紹計算機視覺時,將這部分內容不作為一個單獨部分加以介紹,主要是因為“主動視覺和目的視覺”並沒有對計算機視覺後續研究形成持續影響。但作為計算機視覺發展的一個重要階段,這裡還是有必要予以介紹一下。

上世紀80年代初馬爾視覺計算理論提出後,學術界興起了“計算機視覺”的熱潮。人們想到的這種理論的一種直接應用就是給工業機器人賦予視覺能力,典型的系統就是所謂的“基於部件的系統”(parts-based system)。然而,10多年的研究,使人們認識到,儘管馬爾計算視覺理論非常優美,但“魯棒性”(Robustness)不夠,很難想人們預想的那樣在工業界得到廣泛應用。這樣,人們開始質疑這種理論的合理性,甚至提出了尖銳的批評。

對馬爾計算視覺理論提出批評最多的有二點:一是認為這種三維重建過程是“純粹自底向上的過程”(pure bottom-up process),缺乏高層反饋(top-down feedback);二是“重建”缺乏“目的性和主動性”。由於不同的用途,要求重建的精度不同,而不考慮具體任務,僅僅“盲目地重建一個適合任何任務的三維模型”似乎不合理。

對馬爾視覺計算理論提出批評的代表性人物有:馬里蘭大學的 J. Y. Aloimonos;賓夕法尼亞大學的R. Bajcsy和密西根州立大學的A. K. Jaini。 Bajcsy 認為,視覺過程必然存在人與環境的互動,提出了主動視覺的概念(active vision). Aloimonos認為視覺要有目的性,且在很多應用,不需要嚴格三維重建,提出了“目的和定性視覺”(purpose and qualitative vision) 的概念。 Jain 認為應該重點強調應用,提出了“應用視覺”( practicing vision)的概念。上世紀80年代末到90年代初,可以說是計算機視覺領域的“彷徨”階段。真有點“批評之聲不絕,視覺之路茫茫”之勢。

針對這種情況,當時視覺領域的一個著名刊物(CVGIP: Image Understanding)於1994年組織了一期專刊對計算視覺理論進行了辯論。首先由耶魯大學的M. J. Tarr和布朗大學的M. J.Black寫了一篇非常有爭議性的觀點文章(Tarr & Black, 1994),認為馬爾的計算視覺並不排斥主動性,但把馬爾的“通用視覺理論”(general vision)過分地強調“應用視覺”是“短見”(myopic)之舉。通用視覺儘管無法給出嚴格定義,但“人類視覺”是最好的樣板。這篇觀點文章發表後,國際上20多位著名的視覺專家也發表了他們的觀點和評論。大家普遍的觀點是,“主動性”“目的性”是合理的,但問題是如何給出新的理論和方法。而當時提出的一些主動視覺方法,一則僅僅是演算法層次上的改進,缺乏理論框架上的創新,另外,這些內容也完全可以納入到馬爾計算視覺框架下。所以,從1994年這場視覺大辯論後,主動視覺在計算機視覺界基本沒有太多實質性進展。這段“彷徨階段”持續不長,對後續計算機視覺的發展產生的影響不大,猶如“曇花一現”之狀。

值得指出的是,“主動視覺”應該是一個非常好的概念,但困難在於“如何計算”。 主動視覺往往需要“視覺注視”(visual attention),需要研究腦皮層(cerebral cortex)高層區域到低層區域的反饋機制,這些問題,即使腦科學和神經科學已經較20年前取得了巨大進展的今天,仍缺乏“計算層次上的進展”可為計算機視覺研究人員提供實質性的參考和借鑑。近年來,各種腦成像手段的發展,特別是 “連線組學”(Connectomics)的進展,可望為計算機視覺人員研究大腦反饋機制提供“反饋途徑和連線強度”提供一些借鑑。

1.2.3 多視幾何和分層三維重建(Multiple View Geometry and Stratified 3D Reconstruction)

上世紀90年代初計算機視覺從“蕭條”走向進一步“繁榮”,主要得益於以下二方面的因素:首先,瞄準的應用領域從精度和魯棒性要求太高的“工業應用”轉到要求不太高,特別是僅僅需要“視覺效果”的應用領域,如遠端視訊會議(teleconference),考古,虛擬現實,視訊監控等。另一方面,人們發現,多視幾何理論下的分層三維重建能有效提高三維重建的魯棒性和精度。

多視幾何的代表性人物首數法國INRIA的O. Faugeras ( Faugeras O, 1993), 美國GE 研究院的R.Hartely (現已回到了澳大利亞國立大學)和英國牛津大學的 A. Zisserman。應該說,多視幾何的理論於2000年已基本完善。 2000 年Hartley 和Zisserman 合著的書 (Hartley & Zisserman 2000) 對這方面的內容給出了比較系統的總結,而後這方面的工作主要集中在如何提高“大資料下魯棒性重建的計算效率”。大資料需要全自動重建,而全自動重建需要反覆優化,而反覆優化需要花費大量計算資源。所以,如何在保證魯棒性的前提下快速進行大場景的三維重建是後期研究的重點。舉一個簡單例子,假如要三維重建北京中關村地區,為了保證重建的完整性,需要獲取大量的地面和無人機影象。假如獲取了1萬幅地面高解析度影象(4000×3000),5 千幅高解析度無人機影象(8000×7000)(這樣的影象規模是當前的典型規模),三維重建要匹配這些影象,從中選取合適的影象集,然後對相機位置資訊進行標定並重建出場景的三維結構,如此大的資料量,人工干預是不可能的,所以整個三維重建流程必須全自動進行。這樣需要重建演算法和系統具有非常高的魯棒性,否則根本無法全自動三維重建。在魯棒性保證的情況下,三維重建效率也是一個巨大的挑戰。所以,目前在這方面的研究重點是如何快速、魯棒地重建大場景。

1)多視幾何( Multiple View Geometry)
由於影象的成像過程是一箇中心投影過程(perspective projection),所以“多視幾何”本質上就是研究射影變換下影象對應點之間以及空間點與其投影的影象點之間的約束理論和計算方法的學科(注意:針孔成像模型(The pinhole camera model)是一種中心投影, 當相機有畸變時,需要將畸變後的影象點先校正到無畸變後才可以使用多視幾何理論)。計算機視覺領域,多視幾何主要研究二幅影象對應點之間的對極幾何約束(epipolar geometry), 三幅影象對應點之間的三焦張量約束(tri-focal tensor),空間平面點到影象點,或空間點為平面點投影的多幅影象點之間的單應約束(homography)等。在多視幾何中,射影變換下的不變數,如絕對二次曲線的像(The image of the absolute conic),絕對二次曲面的像(Theimage of the absolute quadric), 無窮遠平面的單應矩陣(infinite homography),是非常重要的概念,是攝像機能夠自標定的“參照物”。由於這些量是無窮遠處“參照物”在影象上的投影,所以這些量與相機的位置和運動無關(原則上任何有限的運動不會影響無限遠處的物體的性質),所以可以用這些“射影不變數”來自標定攝像機。關於多視幾何和攝像機自標定的詳細內容,可參閱Hartley 和Zisserman 合著的書(Hartley & Zisserman,2000).

總體上說,多視幾何就其理論而言,在射影幾何中不能算新內容。Hartley, Faugeras, Zissermann等將多視幾何理論引入到計算機視覺中,提出了分層三維重建理論和攝像機自標定理論,豐富了馬爾三維重建理論,提高了三維重建的魯棒性和對大資料的適應性,有力推動了三維重建的應用範圍。所以,計算機視覺中的多視幾何研究,是計算機視覺發展歷程中的一個重要階段和事件。
多視幾何需要射影幾何(projectivegeometry)的數學基礎。射影幾何是非歐幾何,涉及平行直線相交,平行平面相交等抽象概念,表達和計算要在“齊次座標”(homogeneous coordinates)下進行,這給“工科學生”帶來不小的困難。所以,大家要從事這方面的研究,一定要先打好基礎,至少要具備必要的射影幾何知識。否則,做這方面的工作,無異於浪費時間。

2)分層三維重建( Stratified 3D Reconstruction)
所謂的分層三維重建,如下圖所示,就是指從多幅二維影象恢復歐幾里德空間的三維結構時,不是從影象一步到歐幾里德空間下的三維結構,而是分步分層地進行。即先從多幅影象的對應點重建射影空間下的對應空間點(即射影重建:projective reconstruction),然後把射影空間下重建的點提升到仿射空間下(即仿射重建:affine reconstruction),最後把仿射空間下重建的點再提升到歐幾里德空間(或度量空間: metric reconstruction)(注:度量空間與歐幾里德空間差一個常數因子。由於分層三維重建僅僅靠影象進行空間點重建,沒有已知的“絕對尺度”,如“窗戶的長為1米”等,所以從影象僅僅能夠把空間點恢復到度量空間)。

這裡寫圖片描述

這裡有幾個概念需要解釋一下。以空間三維點的三維重建為例,所謂的“射影重建”,是指重建的點的座標與該點在歐幾里德空間下的座標差一個“射影變換”。所謂的“仿射重建”,是指重建的點的座標與該點在歐幾里德空間下的座標差一個“仿射變換”。所謂的“度量重建”,是指重建的點的座標與該點在歐幾里德空間下的座標差一個“相似變換”。

由於任何一個視覺問題最終都可以轉化為一個多引數下的非線性優化問題,而非線性優化的困難在於找到一個合理的初值。由於待優化的引數越多,一般來說解空間越複雜,尋找合適的初值越困難,所以,如果一個優化問題如能將引數分組分步優化,則一般可以大大簡化優化問題的難度。分層三維重建計算上的合理性正是利用了這種“分組分步”的優化策略。以三幅影象為例,直接從影象對應點重建度量空間的三維點需要非線性優化16個引數(假定相機內參數不變,5個相機內參數,第二幅和第三幅影象相對於第一幅影象的相機的旋轉和平移引數,去掉一個常數因子,所以5+2×(3+3)-1=16), 這是一個非常困難的優化問題。但從影象對應點到射影重建需要“線性”估計22個引數,由於是線性優化,所以優化問題並不困難。從射影重建提升到仿射重建需要“非線性”優化三個引數(無窮遠平面的3個平面引數),而從仿射重建提升到度量重建需要“非線性”優化5個引數(攝像機的5個內參數)。因此,分層三維重建僅僅需要分步優化3個和5個引數的非線性優化問題,從而大大減小了三維重建的計算複雜度。

分層三維重建的另一個特點是其理論的優美性。射影重建下,空間直線的投影仍為直線,二條相交直線其投影直線仍相交,但空間直線之間的平行性和垂直性不再保持。仿射重建下可以保持直線的平行性,但不能保持直線的垂直性。度量重建既可以保持直線之間的平行線,也可以保持垂直性。在具體應用中,可以利用這些性質逐級提升重建結果。

分層三維重建理論可以說是計算機視覺界繼馬爾計算視覺理論提出後又一個最重要和最具有影響力的理論。目前很多大公司的三維視覺應用,如蘋果公司的三維地圖,百度公司的三維地圖,諾基亞的Streetview, 微軟的虛擬地球,其後臺核心支撐技術的一項重要技術就是分層三維重建技術。

3)攝像機自標定(Cameraself-calibration)
所謂攝像機標定,狹義上講,就是確定攝像機內部機械和光電引數的過程,如焦距,光軸與像平面的交點等。儘管相機出廠時都標有一些標準引數,但這些引數一般不夠精確,很難直接在三維重建和視覺測量中應用。所以,為了提高三維重建的精度,需要對這些相機內參數(intrinsic parameters)進行估計。估計相機的內參數的過程,稱為相機標定。在文獻中,有時把估計相機在給定物體座標系下的座標,或相機之間相互之間的位置關係,稱為相機外引數(extrinsic parameters)標定。但一般無明確指定時,相機標定就是指對相機內參數的標定。

相機標定包含二方面的內容:“成像模型選擇”和“模型引數估計”。相機標定時首先需要確定“合理的相機成像模型”,如是不是針孔模型,有沒有畸變等。目前關於相機模型選擇方面,沒有太好的指導理論,只能根據具體相機和具體應用確定。隨著相機加工工藝的提高,一般來說,普通相機(非魚眼或大廣角鏡頭等特殊相機)一般使用針孔成像模型(加一階或二階徑向畸變)就足以了。其它畸變很小,可以不加考慮。當相機成像模型確定後,進一步需要估計對應的模型引數。文獻中人們往往將成像模型引數估計簡單地認為就是相機標定,是不全面的。事實上,相機模型選擇是相機標定最關鍵的步驟。一種相機如果無畸變而在標定時考慮了畸變,或有畸變而未加考慮,都會產生大的誤差。視覺應用人員應該特別關注“相機模型選擇”問題。

相機引數估計原則上均需要一個“已知三維結構”的“標定參考物”,如平面棋盤格,立體塊等。所謂相機標定,就是利用已知標定參考物和其投影影象,在已知成像模型下建立模型引數的約束方程,進而估計模型引數的過程。所謂“自標定”,就是指“僅僅利用影象特徵點之間的對應關係,不需要藉助具體物理標定參考物,進行模型引數估計的過程”。“傳統標定”需要使用加工尺寸已知的標定參考物,自標定不需要這類物理標定物,正像前面多視幾何部分所言,使用的是抽象的無窮遠平面上的“絕對二次曲線”和“絕對二次曲面”。從這個意義上來說,自標定也需要參考物,僅僅是“虛擬的無窮遠處的參考物”而已。

攝像機自標定需要用到兩幅影象之間的約束,如基礎矩陣(fundamental matrix), 本質矩陣(essential matrix), 以及三幅影象之間的三焦張量約束等。另外,Kruppa 方程也是一個重要的概念。這些內容是多視幾何的重要內容,後續章節將進行詳細介紹。

1.2.4 基於學習的視覺(Learning based vision)

基於學習的視覺,是指以機器學習為主要技術手段的計算機視覺研究。基於學習的視覺研究,文獻中大體上分為二個階段:本世紀初的以流形學習( manifold Learning)為代表的子空間法( subspace method)和目前以深度神經網路和深度學習(deep neural networks and deep learning)為代表的視覺方法。

1)流形學習(Manifold Learning)
正像前面所指出的,物體表達是物體識別的核心問題。給定影象物體,如人臉影象,不同的表達,物體的分類和識別率不同。另外,直接將影象畫素作為表達是一種“過表達”,也不是一種好的表達。流形學習理論認為,一種影象物體存在其“內在流形”(intrinsic manifold), 這種內在流形是該物體的一種優質表達。所以,流形學習就是從影象表達學習其內在流形表達的過程,這種內在流形的學習過程一般是一種非線性優化過程。

流形學習始於2000年在Science 上發表的二篇文章( Tenenbaum et al., 2000) (Roweis & Lawrence 2000)。流形學習一個困難的問題是沒有嚴格的理論來確定內在流形的維度。人們發現,很多情況下流形學習的結果還不如傳統的PCA (Principal Component Analysis),LDA( linear DiscriminantAnalysis ), MDS( Multidimensional Scaling)等. 流形學習的代表方法有:LLE(Locally Linear Embedding )(Roweis & Lawrence 2000),Isomap ( Tenenbaum et al., 2000), Laplacian Eigenmaps (Belkin & Niyogi, 2001)等。

2)深度學習(Deep Learning)
深度學習( LeCunet al. 2015) 的成功,主要得益於資料積累和計算能力的提高。深度網路的概念上世紀80年代就已提出來了,只是因為當時發現“深度網路”效能還不如“淺層網路”,所以沒有得到大的發展。目前似乎有點計算機視覺就是深度學習的應用之勢,這可以從計算機視覺的三大國際會議:國際計算機視覺會議(ICCV),歐洲計算機視覺會議(ECCV)和計算機視覺和模式識別會議(CVPR),上近年來發表的論文可見一般。目前的基本狀況是,人們都在利用深度學習來“取代”計算機視覺中的傳統方法。“研究人員”成了“調程式的機器”,這實在是一種不正常的“群眾式運動”。牛頓的萬有引力定律,麥克斯韋的電磁方程,愛因斯坦的質能方程,量子力學中的薛定諤方程,似乎還是人們應該追求的目標。

關於深度網路和深度學習,詳細內容可參閱相關文獻,這裡僅僅強調以下幾點:

(1)深度學習在物體視覺方面較傳統方法體現了巨大優勢,但在空間視覺,如三維重建,物體定位方面,仍無法與基於幾何的方法相媲美。這主要是因為深度學習很難處理影象特徵之間的誤匹配現象。在基於幾何的三維重建中,RANSAC (Random Sample Consensus)等魯棒外點(誤匹配點)剔除模組可以反覆呼叫,而在深度學習中,目前還很難整合諸如RANSAC等外點剔除機制。筆者認為,如果深度網路不能很好地整合外點剔除模組,深度學習在三維重建中將很難與基於幾何的方法相媲美,甚至很難在空間視覺中得到有效應用;

(2) 深度學習在靜態影象物體識別方面已經成熟,這也是為什麼在ImageNet上的物體分類競賽已不再舉行的緣故;

(3) 目前的深度網路,基本上是前饋網路(feedforwardNetworks).不同網路主要體現在使用的代價函式不同。下一步預計要探索具有“反饋機制”的層次化網路。反饋機制,需要借鑑腦神經網路機制,特別是連線組學的成果。

(4) 目前對視訊的處理,人們提出了RCNN (Recurrent Neural Networks). 迴圈( recurrent) 是一種有效的同層作用機制,但不能代替反饋。大腦皮層遠距離的反饋(將在生物視覺簡介一章介紹)可能是形成大腦皮層不同區域具有不同特定功能的神經基礎。所以,研究反饋機制,特別具有“長距離反饋”(跨多層之間)的深度網路, 將是今後研究影象理解的一個重要方向;

(5)儘管深度學習和深度網路在影象物體識別方面取得了“變革性”成果,但為什麼“深度學習”會取得如此好的結果目前仍然缺乏堅實的理論基礎。目前已有一些這方面的研究,但仍缺乏系統性的理論。事實上,“層次化”是本質,不僅深度網路,其它層次化模型,如Hmax 模型(Riesenhuber & Poggio,1999) HTM (Hierarchical Temporal memory)模型(George & Hawkins, 2009)存在同樣的理論困惑。為什麼“層次化結構”( hierarchical structure )具有優勢仍是一個巨大的迷。

1.3 計算機視覺的若干發展趨勢

資訊科學發展之迅速,對未來10年的發展趨勢進行預測,有點“算命”的感覺。 對計算機視覺而言,筆者有以下幾點對未來發展的展望:

(1) 基於學習的物體視覺和基於幾何的空間視覺繼續“相互獨立”進行。深度學習在短時期內很難代替幾何視覺。在深度網路中如何引入“魯棒外點剔除模組”將是一個探索方向,但短時間內估計很難有實質性進展;

(2) 基於視覺的定位將更加趨向“應用性研究”,特別是多感測器融合的視覺定位技術。

(3) 三維點雲重建技術已經比較成熟,如何從“點雲”到“語義”是未來研究重點。“語義重建”將點雲重建、物體分割和物體識別同時進行,是三維重建走向實用的前提。

(4)對室外場景的三維重建,如何重建符合“城市管理規範”的模型是一個有待解決的問題。室內場景重建估計最大的潛在應用是“家庭服務機器人”。 鑑於室內重建的應用還缺乏非常具體的應用需求和驅動,在加上室內環境的複雜性,估計在3-5年內很難有突破性進展。

(5)對物體識別而言,基於深度學習的物體識別估計將從“通用識別”向“特定領域物體的識別”發展。“特定領域”可以提供更加明確和具體的先驗資訊,可以有效提高識別的精度和效率,更加具有實用性;

(6)目前基於RCNN 對視訊理解的趨勢將會持續;

(7) 解析深度網路機理的工作具有重大的理論意義和挑戰性,鑑於深度網路的複雜性,估計近期很難取得突破性進展;

(8)具有“反饋機制”的深度網路結構(architecture)研究必將是下一個研究熱點。

1.4 幾種典型的物體表達理論(Object representation theories)

正像前面所述,物體表達是計算機視覺的一個核心科學問題。這裡,“物體表達理論”與“物體表達模型”需要加以區別。“表達理論”是指文獻中大家比較認可的方法。“表達模型”容易誤解為“數學上對物體的某種描述”。計算機視覺領域,比較著名的物體表達理論有以下三種:

1)馬爾的三維物體表達
前面已經介紹過,馬爾視覺計算理論認為物體的表達是物體座標系下的三維表達

2)基於二維影象的物體表達(View-basedobject representation)
儘管理論上一個三維物體可以成像為無限多不同的二維影象,但人的視覺系統僅僅可以識別“有限個影象”。鑑於神經科學對於猴子腹部通道(ventral pathway)(注:腹部通道認為是物體識別通道)的研究進展,T. Poggio 等提出了基於影象的物體表達(Poggio & Bizzi, 2004),即對一個三維物體的表達是該物體的一組典型的二維影象(view)。目前,也有人認為 Poggio等的”view”不能狹義地理解為二維影象,也包含以觀測者為座標系下的三維表示,即馬爾的2.5維表示(Anzai & DeAngelis,2010)。

3)逆生成模型表達(Inversegenerative model representation )
長期以來,人們認為物體識別模型為“鑑別模型”( discriminative model),而不是“生成模型”( generative model )。近期對猴子腹部通道的物體識別研究表明,猴子大腦皮層的IT 區( Inferior Temporal: 物體表達區域)可能在於編碼物體及其成像引數(如光照和姿態,幾何形狀,紋理等)(Yildirim et al. 2015)(Yamins &DiCarlo,2016b.)。由於已知這些引數就可以生成對應影象,所以對這些引數的編碼可以認為是逆生成模型表達。逆生成模型表達可以解釋為什麼深度學習中的Encoder-decoder 網路結( Badrinarayanan et al. 2015) 可以取得比較好的效果,因為Encoder本質上就是影象的逆生成模型。另外,深度學習中提出的“逆圖形學”概念( Inverse Graphic)( Kulkarniet al. 2015),從原理上也是一種逆生成模型。逆圖形學是指先從影象學習到影象生成引數,然後把同一物體在不同引數下的影象歸類為同一物體,通過這種“等變物體識別”(Equivariant recognition) 來達到最終的“不變物體識別”(invariantrecognition)。

總之,本文對計算機視覺的理論、現狀和未來發展趨勢進行了一些總結和展望,希望能給讀者瞭解該領域提供一些幫助。特別需要指出的是,這裡很多內容也僅僅是筆者的一些“個人觀點”和“個人偏好”下總結的一些內容,以期對讀者有所幫助但不引起誤導。另外,筆者始終認為,任何一門學科的核心關鍵文獻並不多,為了讀者閱讀方便,所以本文也僅僅給出了一些必要的代表性文獻。

參考文獻

  1. MarrD (1982), Vision: A computational investigation into the human representationand processing of visual information, W.H. Freeman and Company.
  2. YaminsD. L K. & DiCarlo J.J (2016a),Using goal-driven deep learning models tounderstand sensory cortex, Nature Neuroscience,Perspective, Vol. 19, No.3, pp.356-365..
  3. YaminsD. L. K et al.(2014), Performance-optimized hierarchical models predict neuralresponses in higher visual cortex, PNAS, Vol.111, No.23, pp.8619-8624.
  4. Yamins D. L. K & DiCarlo J. J. (2016b). Explicit Information for category-orthogonalobject properties increases along the ventral stream, Nature Neuroscience,Vo.19, No.4, pp.613-622.
  5. Edelman.S & Vaina L. (2015). Marr, David (1945–80),International Encyclopedia of the Social & BehavioralSciences (Second Edition), pp. 596-598
  6. Tarr.M & Black M. (1994). A computational and Evolutionary Perspective on theRole of Representation in Vision, CVGIP: Image Understanding, Vol.60, No.1,pp.65-73.
  7. HartleyR & Zisserman A.(2000). Multiple View Geometry in Computer Vision,Cambridge University Press.
  8. FaugerasO (1993). Three-Dimensional Computer Vision: A geometric Viewpoint, MIT Press.
  9. TenenbaumJ. B. et al. (2000). A Global Geometric Framework for Nonlinear DimensionalityReduction, Science, Vol. 290, No.5500, pp.2319–2323.
  10. Roweis.S&Saul. L(2000). Nonlinear Dimensionality Reduction by Locally LinearEmbedding, Science, Vol.290, No.5500, pp.2323—2326.
  11. Belkin.M& Niyogi.P.(2001). Laplacian Eigenmaps and Spectral Techniques for Embeddingand Clustering, Advances in Neural Information Processing Systems 14, pp.586–691, MIT Press
  12. LeCun.Y et al. (2015). Deep Learning, Nature, Vol.521 , pp.436-444.
  13. Riesenhuber.M. & Poggio. T.(1999). Hierarchical Models of Object Recognition in Cortex, Nature Neuroscience 2:1019-1025.
  14. GeorgeD & Hawkins J (2009). Towards a mathematical theory of cortical micro-circuits,PloS Computational Biology, Vol.5, No.10, pp.1-26.
  15. Poggio.T & Bizzi. E(2004). Generalization in vision and motor control, Nature 431,Vol.14, pp.768-774.
  16. Anzai.A & DeAngelis. G (2010). Neural computations underlying depth perception,Curr Opin Neurobiol., Vol.20,No.3, pp. 367–375.
  17. Yildirim.I et al. (2015). Efficient analysis-by-synthesis in vision: A computationalframework, behavioral tests, and comparison with neural representations. InProceedings of the 37th Annual Cognitive Science Society.
  18. Badrinarayanan.V et al. (2015). Segnet: A deep convolutional encoder-decoder architecture forimage segmentation, arXiv:1511.00561.
  19. KulkarniT. D. et al.(2015). Deep ConvolutionalInverse Graphics Network, NIPS 2015.