張正友棋盤格相機(jī)標(biāo)定方法

我發(fā)現(xiàn)認(rèn)識的大佬都有寫博客的習(xí)慣,今天我建立了這個文集帖蔓,從現(xiàn)在開始我也開始對機(jī)器視覺及相關(guān)領(lǐng)域的學(xué)習(xí)過程做一些筆記和整理,同時記下自己的心得體會瞳脓,作為記錄塑娇,同時也分享給大家。

本文按照張正友的原文順序劫侧,進(jìn)行一些解讀或筆記記錄埋酬。

第一部分:相機(jī)標(biāo)定的動機(jī)

相機(jī)標(biāo)定在3D視覺中是非常重要的一個步驟,因?yàn)槲覀円獜囊恍?D圖像中獲取待測物的3D信息烧栋。目前的相機(jī)標(biāo)定方法大致可以分為兩大類:

① 攝影測量標(biāo)定:此類方法一般需要通過觀察三維尺寸已知且精度非常高的待測物來實(shí)現(xiàn)写妥,一般情況下該方法的待測物包含了兩個或三個相互正交的平面,有時候平面還需要進(jìn)行精度較高的變換劲弦。這類方法標(biāo)定效率高耳标,但成本也高。

② 相機(jī)自檢校標(biāo)定法:這類方法不需要任何標(biāo)定物邑跪,只需要調(diào)整相機(jī)次坡,從不同角度取拍攝某靜態(tài)畫面呼猪,此畫面一般能提供2個相機(jī)內(nèi)參解析的約束條件。如果相機(jī)內(nèi)參不變砸琅,那么三幅畫面就可以讓我們同時解得相機(jī)內(nèi)參和用于3D重構(gòu)的外參宋距。這類方法非常靈活,但是不夠成熟症脂。

第二部分:基本方程

2.1 相機(jī)針孔模型回顧

在另一篇文章中我會對針孔模型進(jìn)行詳細(xì)的講解谚赎,這里只作簡要回顧。針孔模型鏈接:

根據(jù)相機(jī)針孔原理诱篷,可以推導(dǎo)出空間3D點(diǎn)M的坐標(biāo)和它的像素坐標(biāo)之間的關(guān)系如下所示

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? s\tilde{m}=A[R\vert t] \tilde{M}? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1)

式中:\tilde{m} =[u,v,1]^T 壶唤,表示像素坐標(biāo)系下的坐標(biāo);\tilde{M} =[X,Y,Z,1]^T 棕所,表示世界坐標(biāo)系下的坐標(biāo)闸盔;s為尺度因子;R為世界坐標(biāo)系與圖像坐標(biāo)系的旋轉(zhuǎn)矩陣琳省,t為世界坐標(biāo)系與圖像坐標(biāo)系的平移向量迎吵,R和t中的參數(shù)均被稱為相機(jī)的外部參數(shù),簡稱外參针贬;矩陣A被稱為內(nèi)參矩陣击费,如下所示:

矩陣A中,(u_{0} ,v_{0})為光軸與像平面焦點(diǎn)在像素坐標(biāo)系下的坐標(biāo)桦他,將它成為主點(diǎn)蔫巩;α和β是圖像u軸和v軸上的尺度因子,γ為像素兩軸非正交項(xiàng)快压。

2.2 模型平面和像面之間的單應(yīng)性矩陣 Homography?

OK批幌,單應(yīng)性什么意思呢?這里對單應(yīng)性做一丟丟的解釋:Homography其實(shí)就是一個變換(3*3矩陣)嗓节,目的是將一張圖中的點(diǎn)映射到另一張圖中對應(yīng)的點(diǎn),單應(yīng)性變換是對齊次坐標(biāo)下點(diǎn)的線性變換皆警,單應(yīng)性矩陣約束強(qiáng)拦宣,是點(diǎn)到點(diǎn)的一一對應(yīng)

假設(shè)待測平面是在世界坐標(biāo)系Z=0處信姓,那么通過(1)式可以得到:

因此可以得到鸵隧,世界坐標(biāo)系(Z=0)平面下的點(diǎn)M及其在像平面中的像坐標(biāo)關(guān)系可以用如下的單應(yīng)性矩陣H聯(lián)系起來:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? s\tilde{m}=H\tilde{M}? ? 其中,H=A[r_{1}, r_{2},t]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)

2.3 相機(jī)內(nèi)參約束條件

若給定模型平面(即世界坐標(biāo)系下Z=0的平面)下的一幅圖像意推,那么對應(yīng)的單應(yīng)性矩陣就可以被寫出來豆瘫,將該單應(yīng)性矩陣設(shè)為H=[h_{1}, h_{2},h_{3}],從(2)式可以得到:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [h_{1}, h_{2},h_{3}]=\lambda A[r_{1}, r_{2},t]

其中λ為任意實(shí)數(shù)赡茸。(為什么這里λ可以為任意實(shí)數(shù)仍秤?主要是因?yàn)辇R次坐標(biāo)有規(guī)模不變性。這就要從齊次坐標(biāo)講起了,后面我會寫一篇專門說說其次坐標(biāo)和歐氏空間的關(guān)系)

由于旋轉(zhuǎn)矩陣的三個向量具有空間正交特性贺拣,且任意一行或一列對應(yīng)的向量模都為1,因此可以得到:r_{1}^T r_{2}=0矗愧,r_{1}^T r_{1}=r_{2}^T r_{2}=1御吞,而[h_{1}, h_{2}]=\lambda A[r_{1}, r_{2}](此處令λ=1),因此可以得到下式:

上述兩個式子即為給定一個單應(yīng)性矩陣瓦哎,針對相機(jī)內(nèi)參的兩個約束條件砸喻。由于一個單應(yīng)性矩陣包含了8個變量(由于齊次坐標(biāo)的規(guī)模不變性,可以任意設(shè)置(2)中尺度參數(shù)s=h_{33} 蒋譬,那么矩陣H中的參數(shù)可以由9個變?yōu)?個)割岛,并且待求的外部參數(shù)一共有6個(3個旋轉(zhuǎn)和三個平移),因此我們只能得到2個內(nèi)參的約束條件犯助。

2.4 幾何解釋

先請移步看一下這一小節(jié)的基礎(chǔ):絕對圓錐曲線~~

模型平面在相機(jī)坐標(biāo)系下可以寫為(這里還沒明白癣漆,請各路大神明白了幫忙補(bǔ)充~):

當(dāng)w=0時,表示無窮遠(yuǎn)處的點(diǎn)也切;w=1時與之相反扑媚。此平面與無窮遠(yuǎn)處的平面相交為一條線。由于r_{1} /r_{2} /r_{3} 相互正交雷恃,因此r_{31} r_{11} +r_{32} r_{12} +r_{33} r_{13} =0疆股,r_{31} r_{21} +r_{32} r_{22} +r_{33} r_{23} =0,又因?yàn)闊o窮遠(yuǎn)處w=0倒槐,因此可以很容易看出點(diǎn)[r_{11},r_{12},r_{13},0 ]^T [r_{21},r_{22},r_{23},0 ]^T 都在這條無窮遠(yuǎn)處的相交線上旬痹。并且任意一個在該線上的點(diǎn)都可以用這兩個點(diǎn)的線性組合來表示,如下:

接下來計(jì)算絕對圓錐曲線和該交線的交點(diǎn)讨越,根據(jù)定義两残,無窮遠(yuǎn)處絕對圓錐曲線上的點(diǎn)x_{∞} 滿足:x_{∞} ^T x_{∞}=0,即a^2 +b^2=0把跨,則b=±ai人弓,那么交線與絕對圓錐曲線的交點(diǎn)為:

這兩個點(diǎn)的像點(diǎn)為:

由于無窮遠(yuǎn)交線是在相機(jī)坐標(biāo)系下表示的,個人理解該交線是以相機(jī)主點(diǎn)為圓心的弧線着逐,因此無窮遠(yuǎn)處的點(diǎn)在像平面上的投影只與相機(jī)內(nèi)參(含尺度因子崔赌,只不過由于齊次坐標(biāo),尺度因子的值不影響結(jié)果)有關(guān)耸别,旋轉(zhuǎn)矩陣為單位矩陣健芭,即不發(fā)生旋轉(zhuǎn),r_{1} =[1,0,0]秀姐,r_{2} =[0,1,0]慈迈,而平面在世界坐標(biāo)系Z=0處,根據(jù)(2)式省有,[r_{1}, r_{2},t]沒有對世界坐標(biāo)起作用痒留,因此可以省略谴麦,那么(2)可以寫為:

并且已經(jīng)知道\tilde{m} _{∞} ^TA^{-T}A^{-1}\tilde{m} _{∞} =0,因此:

展開后為:

(h_1^TA^{-T}A^{-1}h_1\mp? h_2^TA^{-T}A^{-1}h_2)\pm i(h_2^TA^{-T}A^{-1}h_1\pm h_1^TA^{-T}A^{-1}h_2)=0

這個式子中的實(shí)部和虛部都必須為0狭瞎,因此可以得到(3)和(4)式细移。(why只有一組,不應(yīng)該還有一組么....有誰明白的幫忙解釋一下......)

3 解決相機(jī)標(biāo)定問題

這一小節(jié)主要詳細(xì)講解如何實(shí)現(xiàn)對相機(jī)的標(biāo)定熊锭。

3.1 閉合解

令:

矩陣B是對稱矩陣弧轧,其中有6個參數(shù):

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? b=[B_{11},B_{12},B_{22},B_{13},B_{23},B_{33}]^T

假設(shè)H的第i列為:h_i=[h_{i1},h_{i2},h_{i3}]^T,那么可以得到:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {h_i}^Tbh_j={v_{ij}}^Tb

其中:

【這個過程可以用maple去驗(yàn)證~】

再把前文的2個約束條件拿出來看一下:

那么這兩個式子可以簡潔地寫為:

若我們有n幅圖像碗殷,那么一共就有2n個方程精绎。

如果n=1,就只能得到2個方程锌妻,此時只能假設(shè)主點(diǎn)坐標(biāo)已知代乃,且γ=0,來求解α和β仿粹;如果n=2搁吓,那么就能得到4個方程,但是相機(jī)內(nèi)參A中有5個參數(shù)吭历,此時可以令γ=0堕仔,從而求解其他四個主要參數(shù);如果n≥3晌区,我們就可以解得b中的所有參數(shù)摩骨。

一旦b確定下來,就能夠解得矩陣A中的所有相機(jī)內(nèi)參朗若。

A已知后恼五,每幅圖像的外參也就能同時確定下來。

其中:

3.2 最大似然估計(jì)

假設(shè)我們獲取了n幅標(biāo)定板圖像哭懈,每個圖像上有m個點(diǎn)灾馒,那么可以獲取下式的極小值得到最大似然估計(jì):

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \sum_{i=1}^n \sum_{j=1}^m\vert \vert m_{ij} -\hat{m} (A,R_i,t_i,M_j)\vert \vert^2

其中,\hat{m} (A,R_i,t_i,M_j)為點(diǎn)M_j在第i幅圖像的投影點(diǎn)遣总。

首先要獲得A的估計(jì)值你虹,然后利用上面的描述的求解方法,獲得R_i,t_i彤避,然后利用LM迭代優(yōu)化方法,使得上式最小化夯辖。

3.3 徑向畸變

假設(shè)理想狀態(tài)下琉预,像素坐標(biāo)為(u,v),對應(yīng)的實(shí)際坐標(biāo)為(\check{u} ,\check{v} )蒿褂,理想狀態(tài)下的坐標(biāo)為相機(jī)針孔模型得到的坐標(biāo)圆米。其對應(yīng)的圖像坐標(biāo)為(x,y)和(\check{x} ,\check{y} )卒暂。那么根據(jù)畸變:

\check{x} =x+x[k_1(x^2+y^2)+k_2(x^2+y^2)^2]

\check{y} =y+y[k_1(x^2+y^2)+k_2(x^2+y^2)^2]

\check{u} =u_0+\alpha \check{x}+\gamma \check{y}(令γ=0)和\check{v} =v_0+\beta \check{y}帶入可以得到:

\check{u} =u+(u-u_0)[k_1(x^2+y^2)+k_2(x^2+y^2)^2]

\check{v} =v+(v-v_0)[k_1(x^2+y^2)+k_2(x^2+y^2)^2]

對于每個圖像上的每個點(diǎn),可以寫為:

在已經(jīng)估計(jì)出A中的參數(shù)后娄帖,我們可以獲得理性情況下的坐標(biāo)(u,v)也祠,然后我們就可以用上式來估計(jì)畸變參數(shù)k1和k2。

如果有n幅圖像近速,每幅圖像上有m個點(diǎn)诈嘿,那么總共能獲得2mn個方程:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Dk=d

其中D為2mn*2的矩陣。k=[k_1,k_2]^T削葱。其最小二乘解為:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? k=(D^TD)^{-1}D^Td

當(dāng)畸變參數(shù)估計(jì)完成后奖亚,我們就可以將非線性優(yōu)化調(diào)整為:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \sum_{i=1}^n \sum_{j=1}^m\vert \vert m_{ij} -\hat{m} (A,k_1,k_2,R_i,t_i,M_j)\vert \vert^2

標(biāo)定流程:

1 打印出一張標(biāo)定圖并貼到一個平面上; 2 通過移動相機(jī)或者標(biāo)定平面采集不同位置析砸、不同方向的標(biāo)定板圖像昔字;3 特征點(diǎn)檢測;4 估算內(nèi)參首繁,然后得到外參作郭;5 估算畸變系數(shù);6 優(yōu)化所有參數(shù)弦疮。

Matlab有自帶的CameraCalibration標(biāo)定工具箱夹攒,可以直接用,很方便挂捅。

本文有很多內(nèi)容都是基于本人的理解芹助,若理解有誤,歡迎指正闲先!

原文出處:A flexible new technique for camera calibration - IEEE Journals & Magazine

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末状土,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子伺糠,更是在濱河造成了極大的恐慌蒙谓,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件训桶,死亡現(xiàn)場離奇詭異累驮,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)舵揭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進(jìn)店門谤专,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人午绳,你說我怎么就攤上這事置侍。” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵蜡坊,是天一觀的道長杠输。 經(jīng)常有香客問我,道長秕衙,這世上最難降的妖魔是什么蠢甲? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮据忘,結(jié)果婚禮上鹦牛,老公的妹妹穿的比我還像新娘。我一直安慰自己若河,他們只是感情好能岩,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著萧福,像睡著了一般拉鹃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鲫忍,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天膏燕,我揣著相機(jī)與錄音,去河邊找鬼悟民。 笑死坝辫,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的射亏。 我是一名探鬼主播近忙,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼智润!你這毒婦竟也來了及舍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤窟绷,失蹤者是張志新(化名)和其女友劉穎锯玛,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體兼蜈,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡攘残,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了为狸。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片歼郭。...
    茶點(diǎn)故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖辐棒,靈堂內(nèi)的尸體忽然破棺而出病曾,到底是詐尸還是另有隱情姊途,我是刑警寧澤,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布知态,位于F島的核電站,受9級特大地震影響立叛,放射性物質(zhì)發(fā)生泄漏负敏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一秘蛇、第九天 我趴在偏房一處隱蔽的房頂上張望其做。 院中可真熱鬧,春花似錦赁还、人聲如沸妖泄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蹈胡。三九已至,卻和暖如春朋蔫,著一層夾襖步出監(jiān)牢的瞬間罚渐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工驯妄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留荷并,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓青扔,卻偏偏與公主長得像源织,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子微猖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容