計算機視覺
使用計算機及相關設備對生物視覺的模擬
計算機視覺是一門研究如何使機器“看”的科學,更進一步的說,就是是指用攝影機和電腦代替人眼對目標進行識別、跟蹤和測量等機器視覺,並進一步做圖形處理,用電腦處理成為更適合人眼觀察或傳送給儀器檢測的圖像。作為一個科學學科,計算機視覺研究相關的理論和技術,試圖建立能夠從圖像或者多維數據中獲取信息的人工智慧系統。這裡所指的信息指Shannon定義的,可以用來幫助做一個決定的信息。因為感知可以看作是從感官信號中提取信息,所以計算機視覺也可以看作是研究如何使人工系統從圖像或多維數據中感知的科學。
計算機視覺
計算機視覺是一門關於如何運用照相機和計算機來獲取我們所需的,被拍攝對象的數據與信息的學問。形象地說,就是給計算機安裝上眼睛(照相機)和大腦(演演算法),讓計算機能夠感知環境。我們中國人的成語"眼見為實"和西方人常說的"One picture is worth ten thousand words"表達了視覺對人類的重要性。不難想象,具有視覺的機器的應用前景能有多麼地寬廣。
計算機視覺既是工程領域,也是科學領域中的一個富有挑戰性重要研究領域。計算機視覺是一門綜合性的學科,它已經吸引了來自各個學科的研究者參加到對它的研究之中。其中包括計算機科學和工程、信號處理、物理學、應用數學和統計學,神經生理學和認知科學等。
視覺是各個應用領域,如製造業、檢驗、文檔分析、醫療診斷,和軍事等領域中各種智能/自主系統中不可分割的一部分。由於它的重要性,一些先進國家,例如美國把對計算機視覺的 研究列為對經濟和科學有廣泛影響的科學和工程中的重大基本問題,即所謂的重大挑戰(grand challenge)。計算機視覺的挑戰是要為計算機和機器人開發具有與人類水平相當的視覺能力。機器視覺需要圖象信號,紋理和顏色建模,幾何處理和推理,以及物體建模。一個有能力的視覺系統應該把所有這些處理都緊密地集成在一起。作為一門學科,計算機視覺開始於60年代初,但在計算機視覺的基本研究中的許多重要進展是在80年代取得的。計算機視覺與人類視覺密切相關,對人類視覺有一個正確的認識將對計算機視覺的研究非常有益。為此我們將先介紹人類視覺。
計算機視覺
有不少學科的研究目標與計算機視覺相近或與此有關。這些學科中包括圖像處理、模式識別或圖像識別、景物分析、圖象理解等。計算機視覺包括圖像處理和模式識別,除此之外,它還包括空間形狀的描述,幾何建模以及認識過程。實現圖像理解是計算機視覺的終極目標。
圖像處理技術把輸入圖像轉換成具有所希望特性的另一幅圖像。例如,可通過處理使輸出圖象有較高的信-噪比,或通過增強處理突出圖象的細節,以便於操作員的檢驗。在計算機視覺研究中經常利用圖象處理技術進行預處理和特徵抽取。
模式識別技術根據從圖象抽取的統計特性或結構信息,把圖像分成予定的類別。例如,文字識別或指紋識別。在計算機視覺中模式識別技術經常用於對圖象中的某些部分,例如分割區域的識別和分類。
給定一幅圖像,圖象理解程序不僅描述圖象本身,而且描述和解釋圖象所代表的景物,以便對圖像代表的內容作出決定。在人工智慧視覺研究的初期經常使用景物分析這個術語,以強調二維圖象與三維景物之間的區別。圖象理解除了需要複雜的圖象處理以外還需要具有關於景物成象的物理規律的知識以及與景物內容有關的知識。
在建立計算機視覺系統時需要用到上述學科中的有關技術,但計算機視覺研究的內容要比這些學科更為廣泛。計算機視覺的研究與人類視覺的研究密切相關。為實現建立與人的視覺系統相類似的通用計算機視覺系統的目標需要建立人類視覺的計算機理論。
計算機視覺領域的突出特點是其多樣性與不完善性。這一領域的先驅可追溯到更早的時候,但是直到20世紀70年代後期,當計算機的性能提高到足以處理諸如圖像這樣的大規模數據時,計算機視覺才得到了正式的關注和發展。然而這些發展往往起源於其他不同領域的需要,因而何謂“計算機視覺問題”始終沒有得到正式定義,很自然地,“計算機視覺問題”應當被如何解決也沒有成型的公式。
儘管如此,人們已開始掌握部分解決具體計算機視覺任務的方法,可惜這些方法通常都僅適用於一群狹隘的目標(如:臉孔、指紋、文字等),因而無法被廣泛地應用於不同場合。
對這些方法的應用通常作為某些解決複雜問題的大規模系統的一個組成部分(例如醫學圖像的處理,工業製造中的質量控制與測量)。在計算機視覺的大多數實際應用當中,計算機被預設為解決特定的任務,然而基於機器學習的方法正日漸普及,一旦機器學習的研究進一步發展,未來“泛用型”的電腦視覺應用或許可以成真。
人工智慧所研究的一個主要問題是:如何讓系統具備“計劃”和“決策能力”?從而使之完成特定的技術動作(例如:移動一個機器人通過某種特定環境)。這一問題便與計算機視覺問題息息相關。在這裡,計算機視覺系統作為一個感知器,為決策提供信息。另外一些研究方向包括模式識別和機器學習(這也隸屬於人工智慧領域,但與計算機視覺有著重要聯繫),也由此,計算機視覺時常被看作人工智慧與計算機科學的一個分支。
物理是與計算機視覺有著重要聯繫的另一領域。
計算機視覺關注的目標在於充分理解電磁波——主要是可見光與紅外線部分——遇到物體表面被反射所形成的圖像,而這一過程便是基於光學物理和固態物理,一些尖端的圖像感知系統甚至會應用到量子力學理論,來解析影像所表示的真實世界。同時,物理學中的很多測量難題也可以通過計算機視覺得到解決,例如流體運動。也由此,計算機視覺同樣可以被看作是物理學的拓展。
另一個具有重要意義的領域是神經生物學,尤其是其中生物視覺系統的部分。
在整個20世紀中,人類對各種動物的眼睛、神經元、以及與視覺刺激相關的腦部組織都進行了廣泛研究,這些研究得出了一些有關“天然的”視覺系統如何運作的描述(儘管仍略嫌粗略),這也形成了計算機視覺中的一個子領域——人們試圖建立人工系統,使之在不同的複雜程度上模擬生物的視覺運作。同時計算機視覺領域中,一些基於機器學習的方法也有參考部分生物機制。
計算機視覺的另一個相關領域是信號處理。很多有關單元變數信號的處理方法,尤其是對時變信號的處理,都可以很自然的被擴展為計算機視覺中對二元變數信號或者多元變數信號的處理方法。但由於圖像數據的特有屬性,很多計算機視覺中發展起來的方法,在單元信號的處理方法中卻找不到對應版本。這類方法的一個主要特徵,便是他們的非線性以及圖像信息的多維性,以上二點作為計算機視覺的一部分,在信號處理學中形成了一個特殊的研究方向。
除了上面提到的領域,很多研究課題同樣可被當作純粹的數學問題。例如,計算機視覺中的很多問題,其理論基礎便是統計學,最優化理論以及幾何學。
如何使既有方法通過各種軟硬體實現,或說如何對這些方法加以修改,而使之獲得合理的執行速度而又不損失足夠精度,是現今電腦視覺領域的主要課題。
人類正在進入信息時代,計算機將越來越廣泛地進入幾乎所有領域。一方面是更多未經計算機專業訓練的人也需要應用計算機,而另一方面是計算機的功能越來越強,使用方法越來越複雜。這就使人在進行交談和通訊時的靈活性與在使用計算機時所要求的嚴格和死板之間產生了尖銳的矛盾。人可通過視覺和聽覺,語言與外界交換信息,並且可用不同的方式表示相同的含義,而計算機卻要求嚴格按照各種程序語言來編寫程序,只有這樣計算機才能運行。為使更多的人能使用複雜的計算機,必須改變過去的那種讓人來適應計算機,來死記硬背計算機的使用規則的情況。而是反過來讓計算機來適應人的習慣和要求,以人所習慣的方式與人進行信息交換,也就是讓計算機具有視覺、聽覺和說話等能力。這時計算機必須具有邏輯推理和決策的能力。具有上述能力的計算機就是智能計算機。
智能計算機不但使計算機更便於為人們所使用,同時如果用這樣的計算機來控制各種自動化裝置特別是智能機器人,就可以使這些自動化系統和智能機器人具有適應環境,和自主作出決策的能力。這就可以在各種場合取代人的繁重工作,或代替人到各種危險和惡劣環境中完成任務。
應用範圍從任務,比如工業機器視覺系統,比方說,檢查瓶子上的生產線加速通過,研究為人工智慧和計算機或機器人,可以理解他們周圍的世界。計算機視覺和機器視覺領域有顯著的重疊。計算機視覺涉及的被用於許多領域自動化圖像分析的核心技術。機器視覺通常指的是結合自動圖像分析與其他方法和技術,以提供自動檢測和機器人指導在工業應用中的一個過程。在許多計算機視覺應用中,計算機被預編程,以解決特定的任務,但基於學習的方法現在正變得越來越普遍。計算機視覺應用的實例包括用於系統:
(1)控制過程,比如,一個工業機器人;
(2)導航,例如,通過自主汽車或移動機器人;
(3)檢測的事件,如,對視頻監控和人數統計;
(4)組織信息,例如,對於圖像和圖像序列的索引資料庫;
(5)造型對象或環境,如,醫學圖像分析系統或地形模型;
(6)相互作用,例如,當輸入到一個裝置,用於計算機人的交互;
(7)自動檢測,例如,在製造業的應用程序。
其中最突出的應用領域是醫療計算機視覺和醫學圖像處理。這個區域的特徵的信息從圖像數據中提取用於使患者的醫療診斷的目的。通常,圖像數據是在形式顯微鏡圖像,X射線圖像,血管造影圖像,超聲圖像和斷層圖像。的信息,可以從這樣的圖像數據中提取的一個例子是檢測的腫瘤,動脈粥樣硬化或其他惡性變化。它也可以是器官的尺寸,血流量等。這種應用領域還支持通過提供新的信息,醫學研究的測量例如,對腦的結構,或約醫學治療的質量。計算機視覺在醫療領域的應用還包括增強是由人類的解釋,例如超聲圖像或X射線圖像,以降低雜訊的影響的圖像。
第二個應用程序區域中的計算機視覺是在工業,有時也被稱為機器視覺,在那裡信息被提取為支撐的製造工序的目的。一個例子是質量控制,其中的信息或最終產品被以找到缺陷自動檢測。另一個例子是,被拾取的位置和細節取向測量由機器人臂。機器視覺也被大量用於農業的過程,從散裝材料,這個過程被稱為去除不想要的東西,食物的光學分揀。
軍事上的應用很可能是計算機視覺最大的地區之一。最明顯的例子是探測敵方士兵或車輛和導彈制導。更先進的系統為導彈制導發送導彈的區域,而不是一個特定的目標,並且當導彈到達基於本地獲取的圖像數據的區域的目標做出選擇。現代軍事概念,如“戰場感知”,意味著各種感測器,包括圖像感測器,提供了豐富的有關作戰的場景,可用於支持戰略決策的信息。在這種情況下,數據的自動處理,用於減少複雜性和融合來自多個感測器的信息,以提高可靠性。
一個較新的應用領域是自主車,其中包括潛水,陸上車輛(帶輪子,轎車或卡車的小機器人),高空作業車和無人機(UAV)。自主化水平,從完全獨立的(無人)的車輛範圍為汽車,其中基於計算機視覺的系統支持驅動程序或在不同情況下的試驗。完全自主的汽車通常使用計算機視覺進行導航時,即知道它在哪裡,或用於生產的環境(地圖SLAM)和用於檢測障礙物。它也可以被用於檢測特定任務的特定事件,例如,一個UAV尋找森林火災。支承系統的例子是障礙物警報系統中的汽車,以及用於飛行器的自主著陸系統。數家汽車製造商已經證明了系統的汽車自動駕駛,但該技術還沒有達到一定的水平,就可以投放市場。有軍事自主車型,從先進的導彈,無人機的偵察任務或導彈的制導充足的例子。太空探索已經正在使用計算機視覺,自主車比如,美國宇航局的火星探測漫遊者和歐洲航天局的ExoMars火星漫遊者。
其他應用領域包括:
(1)支持視覺特效製作的電影和廣播,例如,攝像頭跟蹤(運動匹配)。
(2)監視。
計算機視覺,圖象處理,圖像分析,機器人視覺和機器視覺是彼此緊密關聯的學科。如果你翻開帶有上面這些名字的教材,你會發現在技術和應用領域上他們都有著相當大部分的重疊。這表明這些學科的基礎理論大致是相同的,甚至讓人懷疑他們是同一學科被冠以不同的名稱。
然而,各研究機構,學術期刊,會議及公司往往把自己特別的歸為其中某一個領域,於是各種各樣的用來區分這些學科的特徵便被提了出來。下面將給出一種區分方法,儘管並不能說這一區分方法完全準確。
計算機視覺的研究對象主要是映射到單幅或多幅圖像上的三維場景,例如三維場景的重建。計算機視覺的研究很大程度上針對圖像的內容。
圖象處理與圖像分析的研究對象主要是二維圖像,實現圖像的轉化,尤其針對像素級的操作,例如提高圖像對比度,邊緣提取,去雜訊和幾何變換如圖像旋轉。這一特徵表明無論是圖像處理還是圖像分析其研究內容都和圖像的具體內容無關。
機器視覺主要是指工業領域的視覺研究,例如自主機器人的視覺,用於檢測和測量的視覺。這表明在這一領域通過軟體硬體,圖像感知與控制理論往往與圖像處理得到緊密結合來實現高效的機器人控制或各種實時操作。
模式識別使用各種方法從信號中提取信息,主要運用統計學的理論。此領域的一個主要方向便是從圖像數據中提取信息。
還有一個領域被稱為成像技術。這一領域最初的研究內容主要是製作圖像,但有時也涉及到圖像分析和處理。例如,醫學成像就包含大量的醫學領域的圖像分析。
對於所有這些領域,一個可能的過程是你在計算機視覺的實驗室工作,工作中從事著圖象處理,最終解決了機器視覺領域的問題,然後把自己的成果發表在了模式識別的會議上。
幾乎在每個計算機視覺技術的具體應用都要解決一系列相同的問題。這些經典的問題包括:
一個計算機視覺,圖像處理和機器視覺所共有的經典問題便是判定一組圖像數據中是否包含某個特定的物體,圖像特徵或運動狀態。這一問題通常可以通過機器自動解決,但是到目前為止,還沒有某個單一的方法能夠廣泛的對各種情況進行判定:在任意環境中識別任意物體。現有技術能夠也只能夠很好地解決特定目標的識別,比如簡單幾何圖形識別,人臉識別,印刷或手寫文件識別或者車輛識別。而且這些識別需要在特定的環境中,具有指定的光照,背景和目標姿態要求。
廣義的識別在不同的場合又演化成了幾個略有差異的概念:
識別(狹義的):對一個或多個經過預先定義或學習的物體或物類進行辨識,通常在辨識過程中還要提供他們的二維位置或三維姿態。
鑒別:識別辨認單一物體本身。例如:某一人臉的識別,某一指紋的識別。
監測:從圖像中發現特定的情況內容。例如:醫學中對細胞或組織不正常技能的發現,交通監視儀器對過往車輛的發現。監測往往是通過簡單的圖象處理髮現圖像中的特殊區域,為後繼更複雜的操作提供起點。
識別的幾個具體應用方向:
基於內容的圖像提取:在巨大的圖像集合中尋找包含指定內容的所有圖片。被指定的內容可以是多種形式,比如一個紅色的大致是圓形的圖案,或者一輛自行車。在這裡對后一種內容的尋找顯然要比前一種更複雜,因為前一種描述的是一個低級直觀的視覺特徵,而後者則涉及一個抽象概念(也可以說是高級的視覺特徵),即‘自行車’,顯然的一點就是自行車的外觀並不是固定的。
姿態評估:對某一物體相對於攝像機的位置或者方向的評估。例如:對機器臂姿態和位置的評估。
光學字元識別對圖像中的印刷或手寫文字進行識別鑒別,通常的輸出是將之轉化成易於編輯的文檔形式。
基於序列圖像的對物體運動的監測包含多種類型,諸如:
自體運動:監測攝像機的三維剛性運動。
圖像跟蹤:跟蹤運動的物體。
給定一個場景的二或多幅圖像或者一段錄像,場景重建尋求為該場景建立一個計算機模型/三維模型。最簡單的情況便是生成一組三維空間中的點。更複雜的情況下會建立起完整的三維表面模型。
圖像恢復的目標在於移除圖像中的雜訊,例如儀器雜訊,模糊等。
計算機視覺系統的結構形式很大程度上依賴於其具體應用方向。有些是獨立工作的,用於解決具體的測量或檢測問題;也有些作為某個大型複雜系統的組成部分出現,比如和機械控制系統,資料庫系統,人機介面設備協同工作。計算機視覺系統的具體實現方法同時也由其功能決定——是預先固定的抑或是在運行過程中自動學習調整。儘管如此,有些功能卻幾乎是每個計算機系統都需要具備的:
一幅數字圖像是由一個或多個圖像感知器產生,這裡的感知器可以是各種光敏攝像機,包括遙感設備,X射線斷層攝影儀,雷達,超聲波接收器等。取決於不同的感知器,產生的圖片可以是普通的二維圖像,三維圖組或者一個圖像序列。圖片的像素值往往對應於光在一個或多個光譜段上的強度(灰度圖或彩色圖),但也可以是相關的各種物理數據,如聲波,電磁波或核磁共振的深度,吸收度或反射度。
在對圖像實施具體的計算機視覺方法來提取某種特定的信息前,一種或一些預處理往往被採用來使圖像滿足後繼方法的要求。例如:
二次取樣保證圖像坐標的正確;
平滑去噪來濾除感知器引入的設備雜訊;
提高對比度來保證實現相關信息可以被檢測到;
調整尺度空間使圖像結構適合局部應用。
從圖像中提取各種複雜度的特徵。例如:
線,邊緣提取;
局部化的特徵點檢測如邊角檢測,斑點檢測;
更複雜的特徵可能與圖像中的紋理形狀或運動有關。
在圖像處理過程中,有時會需要對圖像進行分割來提取有價值的用於後繼處理的部分,例如
篩選特徵點;
分割一或多幅圖片中含有特定目標的部分。
到了這一步,數據往往具有很小的數量,例如圖像中經先前處理被認為含有目標物體的部分。這時的處理包括:
驗證得到的數據是否符合前提要求;
估測特定係數,比如目標的姿態,體積;
對目標進行分類。
高級處理有理解圖像內容的含義,是計算機視覺中的高階處理,主要是在圖像分割的基礎上再經行對分割出的圖像塊進行理解,例如進行識別等操作。
光源布局影響大需審慎考量。
正確的選擇鏡組,考量倍率、空間、尺寸、失真…。
選擇合適的攝影機(CCD),考量功能、規格、穩定性、耐用...。
視覺軟體開發需靠經驗累積,多嘗試、思考問題的解決途徑。
以創造精度的不斷提升,縮短處理時間為最終目標。
end。
ICCV:International Conference on Computer Vision,國際計算機視覺大會
CVPR:International Conference on Computer Vision and Pattern Recognition,國際計算機視覺與模式識別大會
ECCV:European Conference on Computer Vision,歐洲計算機視覺大會
ICIP:International Conference on Image Processing,國際圖像處理大會
BMVC:British Machine Vision Conference,英國機器視覺大會
ICPR:International Conference on Pattern Recognition,國際模式識別大會
ACCV:Asian Conference on Computer Vision,亞洲計算機視覺大會
PAMI:IEEE Transactions on Pattern Analysis and Machine Intelligence,IEEE 模式分析與機器智能雜誌
IJCV:International Journal on Computer Vision,國際計算機視覺雜誌
TIP:IEEE Transactions on Image Processing,IEEE圖像處理雜誌
CVIU:Computer Vision and Image Understanding,計算機視覺與圖像理解
PR:Pattern Recognition,模式識別
PRL:Pattern Recognition Letters,模式識別快報