電腦視覺

電腦視覺（Computer vision）是一門研究如何使機器「看」的科學，更進一步的說，就是指用攝像機和電腦代替人眼對目標進行識別、跟蹤和測量等機器視覺，並進一步做圖像處理，用電腦處理成為更適合人眼觀察或傳送給儀器檢測的圖像。

作為一門科學學科，電腦視覺研究相關的理論和技術，試圖建立能夠從圖像或者多維數據中獲取「資訊」的人工智慧系統。這裡所指的資訊指香農定義的，可以用來幫助做一個「決定」的資訊。因為感知可以看作是從感官信號中提取資訊，所以電腦視覺也可以看作是研究如何使人工系統從圖像或多維數據中「感知」的科學。

作為一個工程學科，電腦視覺尋求基於相關理論與模型來建立電腦視覺系統。這類系統的組成部分包括：

- 過程控制（例如工業機器人和無人駕駛汽車）
- 事件監測（例如圖像監測）
- 資訊組織（例如圖像資料庫和圖像序列的索引建立）
- 物體與環境建模（例如工業檢查，醫學圖像分析和拓撲建模）
- 交互（如「人機互動的輸入設備」）

電腦視覺同樣可以被看作是生物視覺的一個補充。在生物視覺領域中，人類和各種動物的視覺都得到了研究，從而建立了這些視覺系統感知資訊過程中所使用的物理模型。另一方面，在電腦視覺中，靠軟體和硬體實現的人工智慧系統得到了研究與描述。生物視覺與電腦視覺進行的學科間交流為彼此都帶來了巨大價值。

電腦視覺包含如下一些分支：畫面重建，事件監測，目標跟蹤，目標識別，機器學習，索引建立，圖像恢復等。

電腦視覺是一門通過演算法解析圖像或多維數據，模擬人類視覺感知的科學。其核心任務是實現目標的識別、跟蹤、測量及場景理解，並生成可供決策的資訊（Shannon, 1948）。作為交叉學科，它融合了人工智慧、信號處理、物理學和神經科學等領域的方法論。

## 電腦視覺的發展現狀

<image>

電腦視覺領域的突出特點是其多樣性與不完善性。

這一領域的先驅可追溯到更早的時候，但是直到20世紀70年代後期，當電腦的性能提高到足以處理諸如圖像這樣的大規模數據時，電腦視覺才得到了正式的關注和發展。然而這些發展往往起源於其他不同領域的需要，因而何謂「電腦視覺問題」始終沒有得到正式定義，很自然地，「電腦視覺問題」應當被如何解決也沒有成型的公式。

儘管如此，人們已開始掌握部分解決具體電腦視覺任務的方法，可惜這些方法通常都僅適用於一群狹隘的目標（如：臉孔、指紋、文字等），因而無法被廣泛地應用於不同場合。

對這些方法的應用通常作為某些解決複雜問題的大規模系統的一個組成部分（例如醫學圖像的處理，工業製造中的質量控制與測量）。在電腦視覺的大多數實際應用當中，電腦被預設為解決特定的任務，然而基於機器學習的方法正日漸普及，一旦機器學習的研究進一步發展，未來「泛用型」的電腦視覺應用或許可以成真。

人工智慧所研究的一個主要問題是：如何讓系統具備「計劃」和「決策能力」？從而使之完成特定的技術動作（例如：移動一個機器人通過某種特定環境）。這一問題便與電腦視覺問題息息相關。在這裡，電腦視覺系統作為一個感知器，為決策提供資訊。另外一些研究方向包括模式識別和機器學習（這也隸屬於人工智慧領域，但與電腦視覺有著重要聯繫），也由此，電腦視覺時常被看作人工智慧與電腦科學的一個分支。

物理是與電腦視覺有著重要聯繫的另一領域。

電腦視覺關注的目標在於充分理解電磁波——主要是可見光與紅外線部分——遇到物體表面被反射所形成的圖像，而這一過程便是基於光學物理和固態物理，一些尖端的圖像傳感器甚至會應用到量子力學理論，來解析影像所表示的真實世界。同時，物理學中的很多測量難題也可以通過電腦視覺得到解決，例如流體運動。也由此，電腦視覺同樣可以被看作是物理學的拓展。

另一個具有重要意義的領域是神經生物學，尤其是其中生物視覺系統的部分。

在整個20世紀中，人類對各種動物的眼睛、神經元、以及與視覺刺激相關的腦部組織都進行了廣泛研究，這些研究得出了一些有關「天然的」視覺系統如何運作的描述（儘管仍略嫌粗略），這也形成了電腦視覺中的一個子領域——人們試圖建立人工系統，使之在不同的複雜程度上模擬生物的視覺運作。同時電腦視覺領域中，一些基於機器學習的方法也有參考部分生物機制。

電腦視覺的另一個相關領域是信號處理。很多有關單元變量信號的處理方法，尤其對是時變信號的處理，都可以很自然的被擴展為電腦視覺中對二元變量信號或者多元變量信號的處理方法。但由於圖像數據的特有屬性，很多電腦視覺中發展起來的方法，在單元信號的處理方法中卻找不到對應版本。這類方法的一個主要特徵，便是他們的非線性以及圖像資訊的多維性，以上二點作為電腦視覺的一部分，在信號處理學中形成了一個特殊的研究方向。

除了上面提到的領域，很多研究課題同樣可被當作純粹的數學問題。例如，電腦視覺中的很多問題，其理論基礎便是統計學，最優化理論以及幾何學。

如何使既有方法通過各種軟硬體實現，或說如何對這些方法加以修改，而使之獲得合理的執行速度而又不損失足夠精度，是現今電腦視覺領域的主要課題。

## 相鄰領域的異同

電腦視覺，圖像處理，圖像分析，機器人視覺和機器視覺是彼此緊密關聯的學科。如果你翻開帶有上面這些名字的教材，你會發現在技術和應用領域上他們都有著相當大部分的重疊。這表明這些學科的基礎理論大致是相同的，甚至讓人懷疑他們是同一學科被冠以不同的名稱。

然而，各研究機構，學術期刊，會議及公司往往把自己特別的歸為其中某一個領域，於是各種各樣的用來區分這些學科的特徵便被提了出來。下面將給出一種區分方法，儘管並不能說這一區分方法完全準確。

電腦視覺的研究對象主要是映射到單幅或多幅圖像上的三維場景，例如三維場景的重建。電腦視覺的研究很大程度上針對圖像的內容。

圖像處理與圖像分析的研究對象主要是二維圖像，實現圖像的轉化，尤其針對像素級的操作，例如提高圖像對比度，邊緣提取，去噪聲和幾何變換如圖像旋轉。這一特徵表明無論是圖像處理還是圖像分析其研究內容都和圖像的具體內容無關。

機器視覺主要是指工業領域的視覺研究，例如自主機器人的視覺，用於檢測和測量的視覺。這表明在這一領域通過軟體硬體，圖像感知與控制理論往往與圖像處理得到緊密結合來實現高效的機器人控制或各種實時操作。

模式識別使用各種方法從信號中提取資訊，主要運用統計學的理論。此領域的一個主要方向便是從圖像數據中提取資訊。

還有一個領域被稱為成像技術。這一領域最初的研究內容主要是製作圖像，但有時也涉及到圖像分析和處理。例如，醫學成像就包含大量的醫學領域的圖像分析。

對於所有這些領域，一個可能的過程是你在電腦視覺的實驗室工作，工作中從事著圖象處理，最終解決了機器視覺領域的問題，然後把自己的成果發表在了模式識別的會議上。

與人工智慧的關係：電腦視覺為AI系統提供環境感知能力，尤其在自動駕駛和機器人規劃中。模式識別與機器學習是其關鍵技術支撐。

與物理學的關聯：光的反射模型和傳感器物理特性（如CCD量子效率）直接影響成像質量。

## 電腦視覺的經典問題

幾乎在每個電腦視覺技術的具體應用都要解決一系列相同的問題。這些經典的問題包括：

### 識別

一個電腦視覺，圖像處理和機器視覺所共有的經典問題便是判定一組圖像數據中是否包含某個特定的物體，圖像特徵或運動狀態。這一問題通常可以通過機器自動解決，但是到目前為止，還沒有某個單一的方法能夠廣泛的對各種情況進行判定：在任意環境中識別任意物體。現有技術能夠也只能夠很好地解決特定目標的識別，比如簡單幾何圖形識別，人臉識別，印刷或手寫文件識別或者車輛識別。而且這些識別需要在特定的環境中，具有指定的光照，背景和目標姿態要求。

廣義的識別在不同的場合又演化成了幾個略有差異的概念：

- 識別（狹義的）：對一個或多個經過預先定義或學習的物體或物類進行辨識，通常在辨識過程中還要提供他們的二維位置或三維姿態。
- 鑑別：識別辨認單一物體本身。例如：某一人臉的識別，某一指紋的識別。
- 監測：從圖像中發現特定的情況內容。例如：醫學中對細胞或組織不正常技能的發現，交通監視儀器對過往車輛的發現。監測往往是通過簡單的圖象處理發現圖像中的特殊區域，為後繼更複雜的操作提供起點。

識別的幾個具體應用方向：

- 基於內容的圖像提取：在巨大的圖像集合中尋找包含指定內容的所有圖片。被指定的內容可以是多種形式，比如一個紅色的大致是圓形的圖案，或者一輛自行車。在這裡對後一種內容的尋找顯然要比前一種更複雜，因為前一種描述的是一個低級直觀的視覺特徵，而後者則涉及一個抽象概念（也可以說是高級的視覺特徵），即『自行車』，顯然的一點就是自行車的外觀並不是固定的。
- 姿態評估：對某一物體相對於攝像機的位置或者方向的評估。例如：對機器臂姿態和位置的評估。
- 光學字符識別對圖像中的印刷或手寫文字進行識別鑑別，通常的輸出是將之轉化成易於編輯的文檔形式。

### 運動

基於序列圖像的對物體運動的監測包含多種類型，諸如：

- 自體運動：監測攝像機的三維剛性運動。
- 圖像跟蹤：跟蹤運動的物體。

### 場景重建

給定一個場景的二或多幅圖像或者一段錄像，場景重建尋求為該場景建立一個三維模型。最簡單的情況便是生成一組三維空間中的點。更複雜的情況下會建立起完整的三維表面模型。

### 圖像恢復

圖像恢復的目標在於移除圖像中的噪聲，例如儀器噪聲、動態模糊等。

## 電腦視覺系統

電腦視覺系統的結構形式很大程度上依賴於其具體應用方向。有些是獨立工作的，用於解決具體的測量或檢測問題；也有些作為某個大型複雜系統的組成部分出現，比如和機械控制系統，資料庫系統，人機接口設備協同工作。電腦視覺系統的具體實現方法同時也由其功能決定——是預先固定的抑或是在運行過程中自動學習調整。儘管如此，有些功能卻幾乎是每個電腦系統都需要具備的：

- 圖像獲取：一幅數字圖像是由一個或多個圖像傳感器產生，這裡的傳感器可以是各種光敏攝像機，包括遙感設備，X射線斷層攝影儀，雷達，超聲波接收器等。取決於不同的傳感器，產生的圖片可以是普通的二維圖像，三維圖組或者一個圖像序列。圖片的像素值往往對應於光在一個或多個光譜段上的強度（灰度圖或彩色圖），但也可以是相關的各種物理數據，如聲波，電磁波或核磁共振的深度，吸收度或反射度。
- 預處理：在對圖像實施具體的電腦視覺方法來提取某種特定的資訊前，一種或一些預處理往往被採用來使圖像滿足後繼方法的要求。例如：
- 二次取樣保證圖像坐標的正確
- 平滑去噪來濾除傳感器引入的設備噪聲
- 提高對比度來保證實現相關資訊可以被檢測到
- 調整尺度空間使圖像結構適合局部應用
- 特徵提取：從圖像中提取各種複雜度的特徵。例如：
- 線、邊緣提取和脊偵測
- 局部化的特徵點檢測如邊角檢測、斑點檢測

更複雜的特徵可能與圖像中的紋理形狀或運動有關。

- 檢測/分割：在圖像處理過程中，有時會需要對圖像進行分割來提取有價值的用於後繼處理的部分，例如：
- 篩選特徵點
- 分割一或多幅圖片中含有特定目標的部分
- 高級處理：到了這一步，數據往往具有很小的數量，例如圖像中經先前處理被認為含有目標物體的部分。這時的處理包括：
- 驗證得到的數據是否符合前提要求
- 估測特定係數，比如目標的姿態、體積
- 對目標進行分類

## 影響視覺系統的要件

- 光源佈局影響大需審慎考量。
- 正確的選擇鏡組，考量倍率、空間、尺寸、失真。
- 選擇合適的攝影機（CCD），考量功能、規格、穩定性、耐用。
- 視覺軟體開發需靠經驗累積，多嘗試、思考問題的解決途徑。
- 以創造精度的不斷提升，縮短處理時間為最終目標。

## 外部連結

- Machine Perception of Three-Dimensional Solids - the paper mentioned by Joseph Mundy in the video
- CVonline: The Evolving, Distributed, Non-Proprietary, On-Line Compendium of Computer Vision
- Introduction to computer vision（464KB pdf file）
- CMU's Computer Vision Homepage
- Fudan University's Computer Vision Lab
- Keith Price's Annotated Computer Vision Bibliography and the Official Mirror Site Keith Price's Annotated Computer Vision Bibliography
- HIPR2 image processing teaching package
- USC Iris computer vision conference list
- How to come up with new research ideas in computer vision? (in Chinese)
- People in Computer Vision
- The Computer Vision Genealogy Project