照相的時候,三維世界映射到二維圖像,丟失了哪些信息?

1.2D攝像頭無法真實的描述世界,那麼2D照相丟失了哪些信息?

2. 3D攝像頭比2D攝像頭 多哪些東西。硬體。、

3.純小白,圖像領域一點不懂。。百度,這些關鍵詞,搜不到什麼。是不是這個問法,這個描述,就有問題。提幾個關鍵詞也很幫忙。

謝謝。


首先沒有3D圖像這一說法,所謂的3D攝像頭,得到的數據只是一張rgb圖,加上一張深度圖像。所以關於這問題,還是2D圖像和真實3D世界的區別。

主要區別在於,3D信息中的幾何關係和2D圖片中的幾何關係大為不同。由此會產生幾個直接的影響:

1. 首先,圖像的色彩信息只是一個表象,它是和相機位置,以及3D物體表面信息直接相關的。你從不同視角看到的色彩不同是由於這些參數導致的; 光照不同時看到的色彩也自然不同,即使場景和相機沒有發生任何變化。最簡單的情況就是當光照發生變化時,相機拍攝得到的圖像色彩也就不同了。比如下圖:

這主要涉及到的photometry的挑戰。

2. 2D圖像中點的幾何關係是與相機參數直接相關的(相機位置,焦距,畸變),點和點之間的相互關係也不是單純的剛性旋轉和平移。比如你在此圖中看到的場景:

這涉及到相機參數的calibration,2D圖像的homography,affine transformation,image warping等等,這些都是減少這一維信息帶來的挑戰。

///////////////////////////////////////////////////////////////////////

本人做的是3D的視覺,對於3D攝像頭,增加一點補充。通用的3D攝像頭,如kinect,每一幀可以返回rgb和depth兩張圖片,雖然不是直接的3D模型,也無法獲得模型的表面參數,但是現在我們可以做到這樣(原圖來自Kintinous):

但本質上還是一個從2D圖片復原3D模型的過程。關於3D物體的表面信息的估算,現在則是另一個非常有挑戰也很有意思的話題。感興趣的話我再繼續補充。


1)一般相機只能定位一個焦平面,於是乎,你對焦之外的信息全沒了

2)簡單點說,這種從3D到2D的投影,理論上說只損失一個Z軸信息,但是實際上並沒有這麼簡單

因為現有的RGBD相機也無法把3D空間重構出來


位相。


一般的照相機(也就是2D的)通常可以簡化成「針孔成像模型」(Pinhole Camera)。

註:圖來自[1]

空間中的點P=left( X,Y,Z 
ight) 經過光心O投影到成像平面Pi 上得到像p=left( x,y 
ight)

其中,x=ffrac{X}{Z} y=ffrac{Y}{Z} (f是焦距,和圖中的d是一回事兒)

在這個式子里你可以看到,2D圖像上同一點p=left( x,y 
ight) 可以對應3D世界中無窮多點——只要這些點的X和Y與Z的比例保持不變(這些點形成了一條直線,即圖中那條射線)。所以一個像素點的「深度」Z是不確定的,這也是成像中丟失的信息(之一)。

想要確定這個深度Z,我們可以用兩個攝像頭對著同一個目標。剛才說到單攝像頭的圖像點對應3D空間中的一條直線,用兩個攝像頭就有兩條直線,直觀上說,這倆直線的交點就是那個點的真實3D坐標!從代數上看,一個攝像頭有2個方程,3個變數(X,Y,Z),有無窮多解;兩個攝像頭有4個方程,3個變數,可能有唯一解(實際上一般會用最小二乘等方法求解)。這是「雙目視覺」的一個非常粗略的解釋,3D攝像機也有很多種。利用雙目的其實是所謂「被動」成像——設備只被動接受信息。Kinect等攝像頭用的是「主動」成像,具體的可以搜索一下。

有很多具體有趣的內容可以看,這兩本也都有中文版可以參考。

[1]Computer Vision: A Modern Approach, by David A. Forsyth and Jean Ponce

[2]Computer Vision: Algorithms and Applications, by Richard Szeliski

另外剛剛搜到這個ppt,裡面的信息對你應該有用:

[3]http://media.cs.tsinghua.edu.cn/~ahz/computervision/CV-contents.ppt


嚴格來說,數字照相機的輸出照片只是一個比較大的矩陣,所以丟失的信息可以說是無窮多。

就算不考慮失真,我們假設有一台理想相機,它也把一個3D的世界壓縮到了2D,丟失的信息也是無窮多的。

但是這又和日常經驗不符,因為我們顯然可以從照片中得到大量的信息。

因為,單從視覺來說,我們的雙眼獲取的也是2D圖像,比普通相機的高明之處是,我們有一雙眼睛。

照片雖然是二維數據,但是由於具有大量的先驗信息,(多數情況下)我們其實丟失的信息並不多。

如果採取雙鏡頭,(單從視覺來講)可以說我們沒有丟失信息。

舉個例子,下面這張圖你看出了什麼?亞洲人,矮個子,成年人等等。我們不會把他當做一個高個子,因為這和我們平時經驗中高個子的身材比例不合;我們也不會把他當做小孩子,因為他的臉與我們經驗中的小孩子臉是不一樣的。

其實相機丟失的信息,我們的眼鏡也會丟失。當遇到與日常經驗不符的現象時,這種丟失就顯現出來了。下圖中的情況,(在固定角度)眼鏡的表現不會比相機更好。

有空補充。


我記得相機記錄的只是光的亮度,丟失的是引起3d效果的相位信息


深度


背面


1.2d圖像只是3維世界在攝影機模型下的一個面上的投影,不同的角度觀測就有不一樣的投影圖像。

並沒有所謂的3維圖像,有的話應該是指空間中所有離散點的3維點雲,點雲中的每一個點都可以用世界坐標(x,y,z,1)來表示

2. kinect等rgbd硬體測量的深度指的是相機到前方測量點的距離,並不是嚴格的3維坐標(當然可以用公式算)

3.如果學機器學習而想用kinect做一些偽3d應用或研究,直接看kinect的文檔就行了。kinect fusion之類的最近很火~

如果是計算機視覺,幾何方面學習推薦 多視圖幾何 這本書,直接看英文即可。

兩者都也要學一些優化的技術,如圖優化,bundle adjustment等等


其實由於照片儲存格式的限制(jpg, png...),真實世界的絕大部分顏色也丟棄了。這也是所謂的low dynamic range(ldr)照片名詞的來源。


推薦閱讀:

請問超像素(Superpixel)的大致原理?
如何將下圖中孔的區域精確的找出來?用圖像處理的方法
萌新初入手圖像處理,想知道feature map 和activation map分別是指什麼?
當前主流的圖像分割研究方向都有哪些?
幾乎無C/C++基礎的前提下,如何去學習OpenCV?

TAG:圖像處理 | 計算機視覺 | 機器視覺 |