區別和聯繫:
精簡的概括
- Computer Graphics和Computer Vision是同一過程的兩個方向,Computer Graphics將抽象的語義信息轉化成圖像
- Computer Vision從圖像中提取抽象的語義信息。
- Image Processing探索的是從一個圖像或者一組圖像之間的互相轉化和關係,與語義信息無關。
從輸入輸出角度看
(1) 區別
Computer Graphics,簡稱 CG 。輸入的是對虛擬場景的描述,通常爲多邊形數組,而每個多邊形由三個頂點組成,每個頂點包括三維座標、貼圖座標、rgb 顏色等。輸出的是圖像,即二維像素數組。
Computer Vision,簡稱 CV。輸入的是圖像或圖像序列,通常來自相機、攝像頭或視頻文件。輸出的是對於圖像序列對應的真實世界的理解,比如檢測人臉、識別車牌。
Digital Image Processing,簡稱 DIP。輸入的是圖像,輸出的也是圖像。Photoshop 中對一副圖像應用濾鏡就是典型的一種圖像處理。常見操作有模糊、灰度化、增強對比度等。
(2)聯繫
CG 中也會用到 DIP,現今的三維遊戲爲了增加表現力都會疊加全屏的後期特效,原理就是 DIP,只是將計算量放在了顯卡端。
CV 更是大量依賴 DIP 來打雜活,比如對需要識別的照片進行預處理。
最後還要提到近年來的熱點——增強現實(AR),它既需要 CG,又需要 CV,當然也不會漏掉 DIP。它用 DIP 進行預處理,用 CV 進行跟蹤物體的識別與姿態獲取,用 CG 進行虛擬三維物體的疊加。
(3) 圖解
這裏還有一張圖,簡明地表達了CV、CG、DIP和AI的區別和聯繫。
從問題本身看
(1)區別
從問題本身來說,這三者主要以兩類問題區分:是根據狀態模擬觀測環境,還是根據觀測的環境來推測狀態。假設觀測是Z,狀態是X:Computer Graphics是一個Forwad Problem (Z|X): 給你光源的位置,物體形狀,物體表面信息,你如何根據已有的變量的狀態模擬出一個環境出來。
Computer Vision正好相反,是一個Inverse Problem (X|Z):你所有能得到的都是觀測信息(measurements), 根據得到的每一個Pixel的信息(顏色,深度),我要來估計物體環境的特徵和狀態出來,比如物體運動(Tracking),三維結構(SFM),物體類別(Classification and Segmentation)等等。
對於Image Processing來說,它恰好介於兩者之間,兩種問題都有。但對於State-of-art的研究來說,Image Processing更偏於Computer Vision, 或者看上去更像Computer Vision的子類。儘管這三類研究中,隨着CV領域的不斷進步,以及越來越高級相機傳感器出現(Depth Camera, Event Camera),很多算法都被互相用到,但是從Motivation來看,並沒有太大變化。
(2)聯繫
得益於這幾個領域的共同進步,所以你能看到Graphics和Computer Vision現在出現越來越多的交集。如果根據觀測量(圖片),Computer Vision可以越來越準確的估計出越來越多的變量,那麼這些變量套到Graphics算法中,就可以模擬出一個跟真實環境一樣的場景出來。
與此同時,Graphics需要構建更真實的場景,也希望能夠將變量更加接機與實際,或者通過算法估計出來,這就引入了Vision的動機。這也是近年來三維重建算法,同時大量發表在Graphics和Vision的會議的原因。隨着CV從2D向3D發展,以後兩者的交集會越來越大,除了learning以外的其他很多問題融合併到一個領域我也不會奇怪。