相機畸變與標定


相機畸變與標定

一、相機畸變

定義:相機鏡頭的畸變實際上是光學透鏡固有的透視失真的總稱。

相機畸變的分類:

1、枕形畸變:又稱鞍形形變,視野中邊緣區域的放大率遠大於光軸中心區域的放大率,常用在遠攝鏡頭中(下圖左);

2、桶形畸變,與枕形畸變相反,視野中光軸中心區域的放大率遠大於邊緣區域的放大率,常出現在廣角鏡頭和魚眼鏡頭中(下圖中);

3、線性畸變:光軸與相機所拍攝的諸如建築物類的物體的垂平面不正交,則原本應該平行的遠端一側和近端一側,以不相同的角度匯聚產生畸變。這種畸變本質上是一種透視變換,即在某一特定角度,任何鏡頭都會產生相似的畸變(下圖右)。

 

 二、相機的畸變模型

相機的針孔模型,只是真實相機的一個近似,由於存在各種鏡頭的畸變和變形,所以真實的相機要比模型復雜的多。在引入各種非線性的畸變修正之后,就形成看復雜的非線性成像模型。鏡頭的畸變主要分為徑向畸變、離心畸變和薄棱鏡畸變三類。

 2.1 徑向畸變

定義:使像點產生徑向位置的偏差。徑向畸變又分為正向畸變和負向畸變,正向畸變稱為枕形畸變,負向畸變稱為桶形畸變;

特點:由鏡頭的形狀缺陷所造成的畸變,關於相機主光軸對稱。

其中,為像點到中心店的距離;為徑向畸變系數。

2.2 離心畸變

定義:光學系統的光學中心和幾何中心不一致(鏡頭各器件的光學中心)所造成的畸變;

特點:既包含徑向畸變,又包含鏡頭主光軸不對稱多造成的切向畸變。

2.3 薄棱鏡畸變

定義:鏡頭設計缺陷與加工安裝誤差所造成;

特點:同時引起徑向畸變和切向畸變,高價位鏡頭可以忽略薄棱鏡畸變。

三.相機畸變矯正

在用相機進行單目測距時,需要用到一個叫相機內參的東西,而這需要靠相機標定來得到。這些大概要從相機模型說起了:

小孔成像模型就是最簡單通用的一種相機模型,這個模型用下面一個圖說明一下。

 

 其中f為熟知的相機參數——焦距,而光軸與成像平面的交點稱為主點,X表示箭頭長度,Z是相機到箭頭的距離。在上圖這個簡單且理想的小孔成像"相機"中,可以輕松的寫出黃色箭頭在現實世界坐標系與成像平面坐標系之間的轉換關系。

 

 但是在實際相機中,成像平面就是相機感光芯片,針孔就是透鏡,然而主點卻並不再在成像平面的中心了(也就是透鏡光軸與感光芯片中心並不在一條線上了),因為在實際制作中是無法做到將相機里面的成像裝置以微米級別的精度進行安裝的,因此需要引入兩個新的參數Cx和Cy,來對硬件的偏移進行矯正。

 

 上式中引入了兩個不同的焦距fx和fy,這是因為單個像素在低價成像裝置上是矩形而不是正方形。其中,fx是透鏡的物理焦距長度與成像裝置的每個單元尺寸Sx的乘積。

通過上式可以知道 相機內參的四個參數了,分別是fx,fy,Cx,Cy。但在計算中,常通過一些數學技巧來進行一定的變換,從而得到下式。

其中:

 

 通過上面的式子,可以將空間中的點和圖片中的點一一對應起來。式中的矩陣M就是常聽說的相機 內參矩陣了。

四.相機外參

而有相機內參,就有相機外參了,相機外參來源於相機自身的畸變,畸變可以分為徑向畸變(有透鏡的形狀造成)和切向畸變(由整個相機自身的安裝過程造成)。 

 

 鏡像畸變是由凸透鏡本身形狀引起的,好的透鏡,經過一些精密處理,畸變並不明顯,但在普通網絡相機上畸變顯得特別突出。可以把畸變看作r=0附近的泰勒奇數展開的前幾項來便是。一般為前兩項 k1 , k2,對於魚眼透鏡 ,會用前三項 k3 。成像裝置上某點的徑向位置可以根據以下等式進行調整,這時便有了3個或2個的未知變量。

這里(x,y)是成像裝置上畸變點的原始位置,(Xcorrected,Ycorrected)是矯正后的新位置。 

 

 切向畸變是由於制造上的缺陷使透鏡不與成像平面平行而產生的。切向畸變可以用兩個參數p1 和 p2 來表示:

至此,得到了共五個參數: K1 K2 K3 P1 P2,這五個參數是消除畸變所必須的,稱為畸變向量,也叫相機外參。

五.相機標定

在上文,相機內參加上相機外參一共有至少8個參數,而要想消除相機的畸變,就要靠相機標定來求解這8個未知參數。

說完相機模型,又要說一下相機標定了,相機標定是為了求解上面這8個參數的,那求解出這8個參數可以干什么呢?可以進行軟件消除畸變,也就是在得知上面8個參數后,利用上面羅列的數學計算式,將每個偏移的像素點歸位。

標定需要用到一個叫 標定板的東西,有很多種類,但常用的大概就是棋盤圖了, 棋盤要求精度需要很高,格子是正方形,買一張標定板很貴的,在csdn上下棋盤圖也要畫好多c幣,所以大家可以用word畫一張,很簡單的,只要做一個5列7行的表格,拉大到全頁,再設置每個格子的寬高來將它設為正方形再塗色就可以了。這張圖里有符號,但打印出來就沒有了,建議大家自己畫一張就OK了。

 

 標定過程是就不在這里說了,CSDN上的教程一抓一大把,在完成標定后會返回相機的內參和外參。有了相機內參外參后,就可以進行相機消畸變了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM