張正友標(biāo)定算法原理詳解

Version:1.0StartHTML:000000220EndHTML:000477285StartFragment:000079865EndFragment:000477212StartSelection:000079865EndSelection:000477212SourceURL:https://blog.csdn.net/u010128736/article/details/52860364

張正友標(biāo)定算法原理詳解

本人郵箱:sylvester0510@163.com纵苛,歡迎交流討論恨诱,

歡迎轉(zhuǎn)載甲锡,轉(zhuǎn)載請注明網(wǎng)址http://blog.csdn.net/u010128736/

一、背景

??”張正友標(biāo)定”是指張正友教授1998年提出的單平面棋盤格的攝像機標(biāo)定方法[1]卖局。文中提出的方法介于傳統(tǒng)標(biāo)定法和自標(biāo)定法之間,但克服了傳統(tǒng)標(biāo)定法需要的高精度標(biāo)定物的缺點茅坛,而僅需使用一個打印出來的棋盤格就可以案怯。同時也相對于自標(biāo)定而言,提高了精度江场,便于操作纺酸。因此張氏標(biāo)定法被廣泛應(yīng)用于計算機視覺方面。

二址否、計算內(nèi)參和外參的初值

1餐蔬、計算單應(yīng)性矩陣H

根據(jù)之前博客介紹的攝像機模型碎紊,設(shè)三維世界坐標(biāo)的點為X=[X,Y,Z,1]TX=[X,Y,Z,1]TX=[X,Y,Z,1]^T,二維相機平面像素坐標(biāo)為m=[u,v,1]Tm=[u,v,1]Tm=[u,v,1]^T樊诺,所以標(biāo)定用的棋盤格平面到圖像平面的單應(yīng)性關(guān)系為:

s0m=K[R,T]Xs0m=K[R,T]X

s_0m = K[R, T]X

其中s為尺度因子仗考,K為攝像機內(nèi)參數(shù),R為旋轉(zhuǎn)矩陣词爬,T為平移向量秃嗜。令

K=???α00γβ0u0v01???K=[αγu00βv0001]

K=\left[ \begin{array}{ccc}

\alpha & \gamma & u_0 \\

0 & \beta & v_0 \\

0 & 0 & 1

\end{array}

\right]

注意,s對于齊次坐標(biāo)來說顿膨,不會改變齊次坐標(biāo)值锅锨。張氏標(biāo)定法中,將世界坐標(biāo)系狗仔在棋盤格平面上恋沃,令棋盤格平面為Z=0的平面必搞。則可得

s???uv1???=K[r1r2r3t]?????XY01?????=K[r1r2t]???XY1???s[uv1]=K[r1r2r3t][XY01]=K[r1r2t][XY1]

s\left[ \begin{array}{c} u \\ v \\ 1 \end{array} \right] = K\left[

\begin{array}{cccc} r_1 & r_2 & r_3 & t

\end{array}

\right]

\left[

\begin{array}{c}

X \\

Y \\

0 \\

1

\end{array}

\right]=K

\left[

\begin{array}{cccc} r_1 & r_2 & t

\end{array}

\right]

\left[

\begin{array}{c}

X \\

Y \\

1

\end{array}

\right]

我們把K[r1, r2, t]叫做單應(yīng)性矩陣H,即

s???uv1???=H???XY1???H=[h1?h2?h3]=λK[r1?r2?t]s[uv1]=H[XY1]H=[h1?h2?h3]=λK[r1?r2?t]

s \left[

\begin{array}{c}

u \\

v \\

1

\end{array}

\right]=

H

\left[

\begin{array}{c}

X \\

Y \\

1

\end{array}

\right]\\

H=[h_1\ h_2\ h3] = \lambda K[r_1\ r_2\ t]

H是一個齊次矩陣囊咏,所以有8個未知數(shù)恕洲,至少需要8個方程,每對對應(yīng)點能提供兩個方程梅割,所以至少需要四個對應(yīng)點霜第,就可以算出世界平面到圖像平面的單應(yīng)性矩陣H。

2炮捧、計算內(nèi)參數(shù)矩陣

由上式可得

λ=1sr1=1λK?1h1r2=1λK?1h2λ=1sr1=1λK?1h1r2=1λK?1h2

\lambda = \frac{1}{s} \\

r_1=\frac{1}{\lambda}K^{-1}h_1? \\

r_2=\frac{1}{\lambda}K^{-1}h_2?

由于旋轉(zhuǎn)矩陣是個酉矩陣,r1和r2正交惦银,可得

rT1r2=0||r1||=||r2||=1r1Tr2=0||r1||=||r2||=1

r_1^Tr_2=0 \\

||r_1||=||r_2||=1

代入可得:

hT1K?TK?1h2=0hT1K?TK?1h1=hT2K?TK?1h2h1TK?TK?1h2=0h1TK?TK?1h1=h2TK?TK?1h2

h_1^TK^{-T}K^{-1}h_2=0 \\

h_1^TK^{-T}K^{-1}h_1 = h_2^TK^{-T}K^{-1}h_2

即每個單應(yīng)性矩陣能提供兩個方程咆课,而內(nèi)參數(shù)矩陣包含5個參數(shù),要求解扯俱,至少需要3個單應(yīng)性矩陣书蚪。為了得到三個不同的單應(yīng)性矩陣,我們使用至少三幅棋盤格平面的圖片進行標(biāo)定迅栅。通過改變相機與標(biāo)定板之間的相對位置來得到三個不同的圖片殊校。為了方便計算,定義如下:

B=K?TK?1=???B11B21B31B12B22B32B13B23B33???=???????1α2?γα2βv0γ?u0βα2β?γα2βγ2α2β2+1β2?γ(v0γ?u0β)α2β2?v0β2v0γ?u0βα2β?γ(v0γ?u0β)α2β2?v0β2(v0γ?u0β)2α2β2+v0β2+1???????B=K?TK?1=[B11B12B13B21B22B23B31B32B33]=[1α2?γα2βv0γ?u0βα2β?γα2βγ2α2β2+1β2?γ(v0γ?u0β)α2β2?v0β2v0γ?u0βα2β?γ(v0γ?u0β)α2β2?v0β2(v0γ?u0β)2α2β2+v0β2+1]

B=K^{-T}K^{-1}=

\left[

\begin{array}{ccc}

B_{11} & B_{12} & B_{13} \\

B_{21} & B_{22} & B_{23} \\

B_{31} & B_{32} & B_{33}

\end{array}

\right]=

\left[

\begin{array}{ccc}

\frac{1}{\alpha^2} & -\frac{\gamma}{\alpha^2\beta} & \frac{v_0\gamma-u_0\beta}{\alpha^2\beta} \\

-\frac{\gamma}{\alpha^2\beta} & \frac{\gamma^2}{\alpha^2\beta^2}+\frac{1}{\beta^2} & -\frac{\gamma(v_0\gamma-u_0\beta)}{\alpha^2\beta^2}-\frac{v_0}{\beta^2} \\

\frac{v_0\gamma-u_0\beta}{\alpha^2\beta} & -\frac{\gamma(v_0\gamma-u_0\beta)}{\alpha^2\beta^2}-\frac{v_0}{\beta^2} & \frac{(v_0\gamma-u_0\beta)^2}{\alpha^2\beta^2}+\frac{v_0}{\beta^2}+1

\end{array}

\right]

可以看到读存,B是一個對稱陣为流,所以B的有效元素為六個,讓這六個元素寫成向量b让簿,即

b=[B11B12B22B13B23B33]Tb=[B11B12B22B13B23B33]T

b=\left[ \begin{array}{cccccc} B_{11} & B_{12} & B_{22} & B_{13} & B_{23} & B_{33} \end{array} \right]^T

可以推導(dǎo)得到

hTiBhj=vTijbvij=[hi1hj1hi1hj2+hi2hj1hi2hj2hi3hj1+hi1hj3hi3hj2+hi2hj3hi3hj3]ThiTBhj=vijTbvij=[hi1hj1hi1hj2+hi2hj1hi2hj2hi3hj1+hi1hj3hi3hj2+hi2hj3hi3hj3]T

h_i^TBh_j = v^T_{ij}b \\

v_{ij}=\left[ \begin{array}{cccccc} h_{i1}h_{j1} & h_{i1}h_{j2}+h_{i2}h_{j1} & h_{i2}h_{j2} & h_{i3}h_{j1}+h_{i1}h_{j3} & h_{i3}h_{j2}+h_{i2}h_{j3} & h_{i3}h_{j3} \end{array} \right]^T

利用約束條件可以得到:

[vT12(v11?v22)T]b=0[v12T(v11?v22)T]b=0

\left[ \begin{array}{c} v^T_{12} \\ (v_{11}-v_{22})^T \end{array} \right]b=0

通過上式敬察,我們至少需要三幅包含棋盤格的圖像,可以計算得到B尔当,然后通過cholesky分解莲祸,得到相機的內(nèi)參數(shù)矩陣K。

3、計算外參數(shù)矩陣

由之前的推導(dǎo)锐帜,可得

λ=1s=1∥A?1h1∥=1∥A?1h2∥r1=1λK?1h1r2=1λK?1h2r3=r1×r2t=λK?1h3λ=1s=1‖A?1h1‖=1‖A?1h2‖r1=1λK?1h1r2=1λK?1h2r3=r1×r2t=λK?1h3

\lambda = \frac{1}{s}=\frac{1}{\|A^{-1}h_1\|}=\frac{1}{\|A^{-1}h_2\|} \\

r_1=\frac{1}{\lambda}K^{-1}h_1? \\

r_2=\frac{1}{\lambda}K^{-1}h_2? \\

r_3 = r_1 \times r_2 \\

t=\lambda K^{-1}h_3

三田盈、最大似然估計

上述的推導(dǎo)結(jié)果是基于理想情況下的解,但由于可能存在高斯噪聲缴阎,所以使用最大似然估計進行優(yōu)化允瞧。設(shè)我們采集了n副包含棋盤格的圖像進行定標(biāo),每個圖像里有棋盤格角點m個药蜻。令第i副圖像上的角點Mj在上述計算得到的攝像機矩陣下圖像上的投影點為:

m^(K,Ri,ti,Mij)=K[R|t]Mijm^(K,Ri,ti,Mij)=K[R|t]Mij

\hat{m}(K,R_i,t_i,M_{ij}) = K[R|t]M_{ij}

其中Ri和ti是第i副圖對應(yīng)的旋轉(zhuǎn)矩陣和平移向量瓷式,K是內(nèi)參數(shù)矩陣。則角點mij的概率密度函數(shù)為:

f(mij)=12π??√e?(m^(K,Ri,ti,Mij)?mij)2σ2f(mij)=12πe?(m^(K,Ri,ti,Mij)?mij)2σ2

f(m_{ij})=\frac{1}{\sqrt{2\pi}}e^{\frac{-(\hat{m}(K,R_i,t_i,M_{ij})-m_{ij})^2}{\sigma^2}}

構(gòu)造似然函數(shù):

L(A,Ri,ti,Mij)=∏i=1,j=1n,mf(mij)=12π??√e?∑ni=1∑mj=1(m^(K,Ri,ti,Mij)?mij)2σ2L(A,Ri,ti,Mij)=∏i=1,j=1n,mf(mij)=12πe?∑i=1n∑j=1m(m^(K,Ri,ti,Mij)?mij)2σ2

L(A,R_i,t_i,M_{ij}) = \prod^{n,m}_{i=1,j=1}f(m_{ij})=\frac{1}{\sqrt{2\pi}}e^{\frac{-\sum^n_{i=1}\sum^m_{j=1}(\hat{m}(K,R_i,t_i,M_{ij})-m_{ij})^2}{\sigma^2}}

讓L取得最大值语泽,即讓下面式子最小贸典。這里使用的是多參數(shù)非線性系統(tǒng)優(yōu)化問題的Levenberg-Marquardt算法[2]進行迭代求最優(yōu)解。

∑i=1n∑j=1m∥m^(K,Ri,ti,Mij)?mij∥2∑i=1n∑j=1m‖m^(K,Ri,ti,Mij)?mij‖2

\sum^n_{i=1}\sum^m_{j=1} \| \hat{m}(K,R_i,t_i,M_{ij})-m_{ij} \|^2

四踱卵、徑向畸變估計

張氏標(biāo)定法只關(guān)注了影響最大的徑向畸變廊驼。則數(shù)學(xué)表達式為:

u^=u+(u?u0)[k1(x2+y2)+k2(x2+y2)2]v^=v+(v?v0)[k1(x2+y2)+k2(x2+y2)2]u^=u+(u?u0)[k1(x2+y2)+k2(x2+y2)2]v^=v+(v?v0)[k1(x2+y2)+k2(x2+y2)2]

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

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

其中,(u,v)是理想無畸變的像素坐標(biāo)惋砂,(u^,v^)(u^,v^)(\hat u, \hat v)是實際畸變后的像素坐標(biāo)妒挎。(u0,v0)代表主點,(x,y)是理想無畸變的連續(xù)圖像坐標(biāo)西饵,(x^,y^)(x^,y^)(\hat x, \hat y)是實際畸變后的連續(xù)圖像坐標(biāo)酝掩。k1和k2為前兩階的畸變參數(shù)。

u^=u0+αx^+γy^v^=v0+βy^u^=u0+αx^+γy^v^=v0+βy^

\hat u = u_0 + \alpha \hat x + \gamma \hat y \\

\hat v = v_0 + \beta \hat y

化作矩陣形式:

[(u?u0)(x2+y2)(v?v0)(x2+y2)(u?u0)(x2+y2)2(v?v0)(x2+y2)2][k1k2]=[u^?uv^?v][(u?u0)(x2+y2)(u?u0)(x2+y2)2(v?v0)(x2+y2)(v?v0)(x2+y2)2][k1k2]=[u^?uv^?v]

\left[

\begin{array}{cc}

(u-u_0)(x^2+y^2) & (u-u_0)(x^2+y^2)^2 \\

(v-v_0)(x^2+y^2) & (v-v_0)(x^2+y^2)^2

\end{array}

\right]

\left[

\begin{array}{c}

k_1 \\ k_2

\end{array}

\right]=

\left[

\begin{array}{c}

\hat u -u \\ \hat v -v

\end{array}

\right]

記做:

Dk=dDk=d

Dk=d

則可得:

k=[k1?k2]T=(DTD)?1DTdk=[k1?k2]T=(DTD)?1DTd

k=[k_1\ k_2]^T = (D^TD)^{-1}D^Td

計算得到畸變系數(shù)k眷柔。

使用最大似然的思想優(yōu)化得到的結(jié)果期虾,即像上一步一樣,LM法計算下列函數(shù)值最小的參數(shù)值:

∑i=1n∑j=1m∥m^(K,k1,k2,Ri,ti,Mij)?mij∥2∑i=1n∑j=1m‖m^(K,k1,k2,Ri,ti,Mij)?mij‖2

\sum^n_{i=1}\sum^m_{j=1} \| \hat{m}(K,k_1,k_2,R_i,t_i,M_{ij})-m_{ij} \|^2

到此驯嘱,張氏標(biāo)定法介紹完畢镶苞。我們也得到了相機內(nèi)參、外參和畸變系數(shù)鞠评。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末茂蚓,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子剃幌,更是在濱河造成了極大的恐慌聋涨,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件负乡,死亡現(xiàn)場離奇詭異牛郑,居然都是意外死亡,警方通過查閱死者的電腦和手機敬鬓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門淹朋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來笙各,“玉大人,你說我怎么就攤上這事础芍¤厩溃” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵仑性,是天一觀的道長惶楼。 經(jīng)常有香客問我,道長诊杆,這世上最難降的妖魔是什么歼捐? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮晨汹,結(jié)果婚禮上豹储,老公的妹妹穿的比我還像新娘。我一直安慰自己淘这,他們只是感情好剥扣,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著铝穷,像睡著了一般钠怯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上曙聂,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天晦炊,我揣著相機與錄音,去河邊找鬼宁脊。 笑死断国,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的朦佩。 我是一名探鬼主播并思,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼庐氮,長吁一口氣:“原來是場噩夢啊……” “哼语稠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起弄砍,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤仙畦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后音婶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體慨畸,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年衣式,在試婚紗的時候發(fā)現(xiàn)自己被綠了寸士。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片檐什。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖弱卡,靈堂內(nèi)的尸體忽然破棺而出乃正,到底是詐尸還是另有隱情,我是刑警寧澤婶博,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布瓮具,位于F島的核電站,受9級特大地震影響凡人,放射性物質(zhì)發(fā)生泄漏名党。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一挠轴、第九天 我趴在偏房一處隱蔽的房頂上張望传睹。 院中可真熱鬧,春花似錦忠荞、人聲如沸蒋歌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽堂油。三九已至,卻和暖如春碧绞,著一層夾襖步出監(jiān)牢的瞬間府框,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工讥邻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留迫靖,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓兴使,卻偏偏與公主長得像系宜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子发魄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

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