機器視覺沙龍。
相機標定可以說是計算機視覺和機器視覺的基礎,但對於初學者來說並不容易上手,本文將為讀者梳理一下相機標定的邏輯,並回答文章末尾評論區提出的問題。 分為以下幾類:
相機標定的目的和意義簡化和建模針孔相機模型數學說明標定針孔相機模型的引數 我們生活的世界是三維的,**是二維的,所以我們可以把相機想象成乙個功能,輸入是乙個場景,輸出是乙個灰度圖。 從3D到2D的過程的這個功能是不可逆的。
相機標定的目的是找到乙個合適的數學模型,找到這個模型的引數,這樣我們就可以近似3D到2D的過程,使這個3D到2D過程的函式找到反函式。
這種近似過程稱為相機標定,我們用乙個簡單的數學模型來表示複雜的成像過程,並找到成像的逆過程。 校準後,相機可以重建三維場景,即深度感知,這是計算機視覺的一大分支。
說到相機成像,基本上是在談論相機的鏡頭。 攝像機鏡頭的固定結構決定了一對固定物體影象的共軛關係,所謂共軛,即物體在鏡頭前的某個位置,其影象一定在鏡頭後面的某個位置,這種關係是固定的。 舉個最簡單的例子,無限遠處的物體必然會在鏡頭的焦點處成像。 這裡的固定結構是指鏡頭的固定焦距和光圈。
上圖是佳能EF 85mm F12L II USM,我們可以找到乙個與該透鏡具有相同物像共軛關係的凸透鏡來等價該透鏡,我們稱這個凸透鏡為等效透鏡,用乙個朝外的雙箭頭表示,如下圖所示。
這裡所說的等價性,只是針對物體和影象之間共軛關係的等價性,即光路的等價性,而鏡頭之所以使用不同形狀的透鏡,主要是為了消除各種像差,提高清晰度。 換句話說,等效鏡頭的目的從來不是要在實際應用中取代鏡頭(畢竟乙個鏡頭太貴了),而只是為了幫助我們理解。 這使我們能夠繪製出相機捕捉到的蠟燭燃燒場景的清晰草圖,如下圖所示。
其中,是火焰尖端的物點,是火焰尖端的像點,是蠟燭根的物點,是蠟燭根的像點,是等效透鏡的中心(又稱光中心),紅色虛線表示物點。
到影象點。 其中兩條成像光路,綠色虛線代表物點。
到影象點。 其中兩條成像光路,紅色為CCD表面。
請注意,我們剛才說過,我們正在用相機繪製蠟燭燃燒場景的清晰草圖,該草圖指示了影象點。
就像乙個點。 如果像點沒有落在CCD表面,即CCD拍攝的影象不清晰,我們該如何確定像點的位置?
根據幾何光學製圖方法,焦點由等效透鏡通過。
光和光的中心。
我們可以像點一樣製作的光線。
和。 攝像機的位置,現在我們有了攝像機捕捉到的蠟燭燃燒場景的清晰草圖,也用作圖表,只考慮。
和。 點的物件-影象關係。
這樣,我們可以得到四種成像光路:穿過鏡頭上邊緣的光路、穿過鏡頭下邊緣的光路、穿過等效透鏡焦點的光路和穿過光學中心的光路。 它們都表達了物質的意義。
帶有影象點。 顯然,通過光學中心的光路是最容易建立物像共軛關係的數學模型,因此我們用它來表示成像光路,簡化相機的成像過程。
在這一點上,我們發現簡化相機模型和針孔相機的成像原理非常相似,所以我們稱簡化相機模型為針孔相機模型。 如上圖所示。
是針孔相機型號的焦距,但要注意,這款針孔相機的焦距不是等效的鏡頭焦距,而只是借用了會聚光焦距的焦距,表示了從CCD表面到光學中心的距離。
但是我們要說的是,簡化相機模型和針孔相機的成像原理只是相似,不能等同起來,因為針孔相機的原理是光線沿直線傳播,所以真正的針孔相機沒有焦距的概念,也沒有像差, 並且物件-影象關係沒有一一對應關係,如下圖所示。
因此,準確地說,將相機的成像過程簡化為針孔相機模型,並借用針孔相機中的簡單數學關係來表達一些難以表達的數學關係,大大降低了數學的複雜度,但這種簡化的成本也非常大,它不考慮像差(雖然針孔相機模型補充了去畸變模型), 不考慮景深(針孔相機模型的物像關係沒有一一對應關係,相信一切都總能清晰成像),等效鏡頭假設為薄鏡頭。因此,針孔攝像頭模型只是真實攝像頭成像過程的近似值,甚至可以說這是乙個非常粗略的近似值,這使得模型與針孔攝像頭模型的真實攝像頭模型更加相似,例如網路攝像頭、手機鏡頭、監控探頭等。
我們對相機成像過程進行簡化和建模,得到針孔相機模型,如下圖所示。
首先,我們設定相機坐標系,取光中心。
是坐標系的原點,而 。
方向是CCD畫素排列的水平和垂直方向,方向垂直於CCD平面,建立右坐標系,即為三維坐標系。 其次,我們還需要建立CCD標籤坐標系:以CCD左上角的畫素標籤為原點,CCD畫素排列的水平和垂直方向。
和。 方向,這是乙個二維坐標系。 為了便於描述,我們將對稱翻轉針孔相機模型,如下圖所示,它們在數學上是等價的。
從光軸上的光學中心開始,像平面在 上,即相機的物理焦距(單位:)。 點 在空間中,相機坐標系下的位置是像平面上的點,有兩個等效的位置描述:1相機坐標系中的位置為 ;2.CCD 指示符坐標系中的位置為 。 在沒有鏡頭畸變的情況下,光學中心、點和點在一條直線上。 AND是CCD單個畫素在水平和垂直方向上的大小(單位:畫素),因此焦距定義為(單位:畫素)。 從CCD指示符坐標系的原點到光軸的偏移量為(以畫素為單位)。 基於相似的三角關係,可以得到:(1)二維CCD打標坐標 二維CCD畫素坐標在CCD影象平面上建立點數坐標與物理坐標之間的相關性,可以省略該相關性,因為影象平面位於 上。 (2)影象點的二維畫素坐標 物體點在三維空間中的坐標建立了CCD像平面上影象點的物理坐標與相應三維空間中物體點的坐標之間的相關性。 (3)影象點的二維CCD標記坐標 物體點在三維空間中的坐標連線(1)和(2)的兩個關聯也是實際標定得到的引數,可以從上面三個關聯中得到:像點編號、像點坐標和物體點坐標。 在OpenCV和MATLAB標定工具箱中,直接使用(3)相關性,不需要知道CCD單個畫素的大小,因此在標定過程中無法獲得物理焦距,只能獲得畫素焦距。 很容易發現(3)相關性是無約束的,即針孔相機模型本身是欠確定的,通過照射的CCD畫素,我們只能知道物體點在光線上,而無法確定具體點,所以我們說針孔相機模型是光線方程模型。點的光線方程:上述關係是在無透鏡畸變的條件下建立的,但實際上存在透鏡畸變,可以理解為成像點與物點之間的光線是彎曲的,必須消除畸變才能得到光線模型。(4)補充去畸變模型以影象平面中心的畫素坐標為中心,點到影象平面上中心的距離即為合成畸變 其中:徑向畸變 切向畸變 去畸變模型輔以針孔相機模型,因此將影象點標籤編號影象點坐標物件點坐標修改為: 影象點標籤 影象點坐標 物體點坐標 畸變後的光線方程為:在針孔相機模型中,只要確定了這9個引數,就可以唯一地確定針孔相機模型,這個過程稱為相機標定 前 4 個稱為內部引數,後 5 個稱為畸變引數, 畸變引數用於補充內部引數。所以一旦相機結構固定了,包括鏡頭結構和對焦距離,我們就可以用這9個引數來估算相機了。 這裡說的鏡頭結構固定,按照我個人的理解,除了焦距固定外,還應該包括光圈固定,因為改變光圈的大小,除了景深之外,還可以改變針孔相機型號中光學中心的位置,但影響不是很大。 這意味著,如果校準的相機改變光圈大小,校準誤差會更大,但不應該大得令人無法接受。
對於針孔相機本身,需要擬合的公式如下:
其中。 表示扭曲影象和去扭曲影象之間的轉換。
所以我們現在的任務是找到大量具有對應關係的像點。
和物質的重點。 將模型的 9 個引數訓練為樣本。
那麼這裡就出現了兩個問題:(1)誰是同一對,有這麼多的點和物體?(2)即使我知道物體點在**中,我該如何用相機坐標系來表示物體點的位置?
為了解決以上兩個問題,校準板應運而生。 校準板的第乙個功能是確定物體點與像點之間的對應關係。 這裡用的原理主要是透視不變性,比如如果你近距離看乙個人,從遠處看乙個人,雖然他的鼻子大小變了,鼻子的透視也變了,但拓撲結構一定不能變,你不能把鼻子看成嘴巴。
因此,在校準板中,拓撲結構被印刷化,棋盤格和點網格被廣泛使用,這不僅因為它們的拓撲結構清晰統一,更重要的是檢測其拓撲結構的演算法簡單有效。 棋盤檢測角點,可以通過計算捕獲的棋盤影象的水平和垂直方向的梯度來獲得角點點網格的檢測只需要計算點格圖案的質心。 如果您已經開發了一種非常完美的演算法來檢測面部的所有特徵,則可以將**用作校準板。 根據我的經驗,點網格應該比棋盤格效果更好,因為點質心的透視不變性比棋盤格的角穩定得多。 下圖顯示了棋盤格和相同大小和比例的點在最大重投影誤差下的誤差對比,紅色十字是提取的角質心,綠色圓圈是針孔相機模型計算出的角質心位置。
下圖是棋盤格和點網格之間的重投影誤差示意圖,很明顯,點格重投影誤差的誤差空間較小。
但是,點網格的檢測似乎是HALCON的專利(值得懷疑),因此OpenCV和MATLAB校準工具箱使用棋盤格,您必須編寫自己的演算法才能使用點網格。 下面提到的校準板都是棋盤。
標定板的第二個功能是將標定板的角轉換為相機坐標系中的坐標。
對於校準初學者來說,很容易忽略校準板具有校準板坐標系的事實。 換言之,在校準板坐標系中,標定板中每個角點的位置是確定和已知的。
標定板坐標系到相機坐標系的變換矩陣,我們稱其元素為外部引數,所以在我看來,相機標定的外部引數只是標定內部引數的副產品,會隨著標定板的擺放而有所不同,從標定板坐標系到相機坐標系的變換矩陣可以用下文表示公式:
其中稱為旋轉矩陣,稱為平移矩陣,如下表所示。
代表板到相機。 請注意,此坐標系的變換是線性變換,它反映在物理上,這意味著校準板必須盡可能平坦,如果校準板不平坦,則變換不是線性的。 讓我們把這種轉換帶到我們本來要擬合的等式中:
通過這種方式,我們可以將可以在CCD上拍攝的畫素標記到角落。
以及校準板坐標系中已知的每個角點的坐標。
相應地,所有引數都是通過使用各種姿勢作為樣本來訓練的。
至於引數訓練、最小二乘法、最大似然估計法等方法,很容易找到相關資料,這裡就不再贅述了。 如果使用OpenCV或MATLAB校準工具箱進行校準,則需要給出棋盤的物理尺寸,這實際上是建立校準板坐標系,從測量的角度來看,校準板的精度是相機校準精度的基準,是誤差傳遞鏈中的第乙個環節。 因此,為了使針孔相機模型與真實相機更加相似,校準板的質量有以下要求(按重要性排序):
校驗板平整度高,棋盤成直角;校準板每個晶格尺寸的高度一致性;實際尺寸和標稱尺寸之間的差異很小。 4.向祖先張正友致敬。
本文僅供學術分享,如有侵權,請聯絡刪除文章。