1. 程式人生 > >張正友標定(一):為什麼要進行相機標定

張正友標定(一):為什麼要進行相機標定

    關於相機標定的部落格和論文現在已經多到魚龍混雜的層面,多數初學者在眾多資料中翻來翻去,然而對很多的標定細節和原理性知識知之甚少,以致於停留在跑demo的級別。本人在翻看大量的部落格論文基礎上,深感有必要將相機標定的知識進行一些歸納總結。由於才疏學淺,可能會在下面的文章中出現這樣或者那樣的錯誤,懇請大家直接指出錯誤,我一定深刻反思,立即整改。

   談到相機標定,我們首先便會從世界座標系,相機座標系,影象座標系和畫素座標系談起。然而,這其實會讓很多人有一種困惑:為什麼要進行相機標定?

      很多人會回答,因為相機的中存在畸變,主要為徑向畸變

切向畸變;針對雙目相機,還要通過標定獲取兩個相機之間的引數(旋轉和平移)。首先,我們這些順水推舟,主要介紹一下相機的畸變究竟為什麼無法從硬體層面消除,而一定要通過標定演算法。

   相機的主要部件包括鏡頭(Lens)和感光感測器(CMOS/CCD)。相機的成像主要是基於理想的小孔成像模型,但是針孔模型難以收集足夠的光線,保證影象的清晰性。為了保證相機的收集光線的能力,透鏡應運而生,帶著各類畸變而生。很顯然,畸變是相機的與生俱來的東西。

                                                          

   

     其中,徑向畸變主要是由於鏡頭的球形形狀造成,影象畫素點以畸變中心為中心點,沿著徑向產生的位置偏差,從而導致影象中所成的像發生形變。切向畸變主要是由於相機的裝配造成。理想的相機裝配結果是sensor的法線和Lens的主光軸完全重合,Lens的光軸恰好垂直於CMOS的圓心處,但是事與願違,即使最精密的加工精度和裝配精度也無法保證此類狀態。這也就意味著拍攝得到的影象中心不是光軸的中心,光心和影象中心之間存在xshift,yshift,最終導致,實際物體在影象的形狀發生歪曲。綜合以上原因,導致無法建立理想的雙目三角測距模型,更別提準確測距了。

                                               

徑向畸變和切向畸變圖(matlab 老版本工具箱繪製)