專利名稱:簡易線性廣角鏡頭的校正法的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于攝像機(jī)技術(shù)領(lǐng)域,涉及廣角攝像機(jī)的標(biāo)定和校正技術(shù)。
背景技術(shù):
很多攝像機(jī)鏡頭都產(chǎn)生畸變,尤其是廣角鏡頭的畸變更大。廣角鏡 頭攝像機(jī)包括反射折射、魚眼等等攝像機(jī)。廣角攝像機(jī)立體視覺系統(tǒng)在 微小型機(jī)器人視覺導(dǎo)航和近距離大視場物體識別與定位中有著廣泛的應(yīng) 用。它在視覺監(jiān)控、跟蹤和機(jī)器人導(dǎo)航中,具有獨特的寬闊視野,可以 彌補標(biāo)準(zhǔn)鏡頭視場較窄的缺點。但是,廣角鏡頭具有一個很大的缺點就 是所拍攝的圖像存在非常嚴(yán)重的變形,這對基于廣角鏡頭的視頻裝置直 接進(jìn)行監(jiān)控、跟蹤帶來非常大的困難。因此,在利用魚眼(或廣角)鏡 頭的監(jiān)控技術(shù)中,很重要的一步就是如何通過采集獲取的廣角圖像對廣 角鏡頭進(jìn)行校正。在前人提出的校正方法中,需要曲線擬合,由于曲線
是很小段的曲線,擬合結(jié)果對于后續(xù)的校正帶來很大的不穩(wěn)定性;而有 些方法過于復(fù)雜,很難運用于實際。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)的問題,本發(fā)明的目的是便于工程計算和實施, 同時在精度要求不高的情況下完全能滿足工程需要,為此而提出一種簡 易線性廣角鏡頭的校正方法。
為實現(xiàn)上述目的,簡易線性廣角鏡頭的校正法包括步驟
1) .攝取含有直線場景的圖像,用直線檢測算法來提取直線,再提
取來自圖像直線上的圖像點;
2) .對來自同一直線上的圖像點進(jìn)行三點組合;
3) .應(yīng)用廣義除式模型,基于每個組合,建立一個畸變參數(shù)的線性 方程為
4(w3 [m,m2m。] — m2 [11^1113111。] +m, [11121113111。])、 十(v, [m,m2m。]-^[11^1113111。] +、2[11121113111。])^:2
+ (w3v3[m1m2m。] — "2v2[m1m3m。] +wv![m2m3m。])A:3 —[11^11121113] = 0:
式中m。表示畸變中心的齊次坐標(biāo),是以圖像中心作為初始值,m,, m2, 1113表示直線圖像上三個點的齊次坐標(biāo),(",,v,)為m,.-m。前兩個坐標(biāo)對應(yīng) 的值;
4) .對上述線性方程進(jìn)行求解,將計算結(jié)果作為畸變參數(shù)^ &、 ^的 初始值;
5) .應(yīng)用最小二乘準(zhǔn)則,使用計算結(jié)果誤差最小的準(zhǔn)則進(jìn)行優(yōu)化對畸 變參數(shù)A、 &、 /^進(jìn)行優(yōu)化;
6) .應(yīng)用求解的畸變參數(shù)4、 &、 ^對鏡頭進(jìn)行校正 是根據(jù)畸變參數(shù)V &、 ^求解攝像機(jī)的內(nèi)參數(shù)為
內(nèi)參數(shù)是指鏡頭成像模型與鏡頭本身有關(guān)的參數(shù),準(zhǔn)確計算出這些 參數(shù)后,就能對圖像的畸變進(jìn)行校正。
本發(fā)明提供的方法完全是線性的,不需要進(jìn)行曲線擬和,所以簡便、 實用。本發(fā)明的方法可以方便的應(yīng)用于工程計算和工程實施,完全能夠 滿足精度要求不高的工程需要。在精度要求很高的情況下,可以作為高 精度算法的初始值進(jìn)一步優(yōu)化,而且所采用的廣義除式模型考慮的畸變 參數(shù)更全面,從而測量精度能滿足通常的需要,具有魯棒性好、穩(wěn)定性 高等特點。本發(fā)明使得廣角鏡頭校正走向?qū)嵱没?、簡便化?br>
圖l (a)是一幅廣角Sigma-F3.4魚眼鏡頭所拍攝的室內(nèi)圖像;(b)
是應(yīng)用本方法校正的結(jié)果。
圖2 (a)是一幅廣角FC-E8魚眼鏡頭所拍攝的室外圖像;(b)是
應(yīng)用本方法校正的結(jié)果。
圖3 (a)是一幅廣角FC-E8魚眼鏡頭所拍攝的室外圖像;(b)是
5應(yīng)用本方法校正的結(jié)果。
圖4為本發(fā)明的流程圖。
具體實施例方式
下面結(jié)合附圖詳細(xì)說明本發(fā)明技術(shù)方案中所涉及的各個細(xì)節(jié)問題。 應(yīng)指出的是,所描述的實施例僅旨在便于對本發(fā)明的理解,而對其不起 任何限定作用。
為了實現(xiàn)本發(fā)明的方法,實施時采用一臺CPU是1. 6G,內(nèi)存是512M, 硬盤80G的計算機(jī)或其他類型的計算機(jī),在計算機(jī)上采用Matlab編制相 關(guān)程序,現(xiàn)面請參見圖4本發(fā)明方法的流程圖,本發(fā)明方法的具體實施 步驟如下
1. 直線圖像點提取
對包含直線的場景,進(jìn)行圖像拍攝。現(xiàn)實生活中,大量的場景都包 含直線,如辦公室內(nèi)的天花板上逐個排列成直線,地板往往也是。對于 等大小的天花板和地板,采用四方板上的角點為直線點的話,可以很好 的確定直線點的相互位置,因為都是等間隔大小。在室外場景中,也包 含大量的直線場景,如同一層樓逐次排列的窗戶。對拍攝的圖像,用成 熟的直線檢測算法如哈夫變換(houghtransform)來提取直線,再提取直 線的圖像點,也可以采取人機(jī)交互的方法,直接用鼠標(biāo)選取圖像的,然 后計算機(jī)記錄選取點的位置提取圖像點。利用拍攝的場景中有1條或1 條以上的直線,對直線上的圖像點進(jìn)行提取。理論上來說, 一條直線上 的點足以計算出攝像機(jī)鏡頭的畸變參數(shù),如果使用很多條直線圖像,將 增加計算結(jié)果的穩(wěn)定性,因為直線越多,所得到的方程越多,所以可以 是方程解算的結(jié)果總體誤差最小,從而是解算結(jié)果不依賴于某一條直線。 設(shè)圖像場景中提取出iV條直線,在每條直線圖像上提取的點組成一個序 列用M,來表示,hl,...,iV。
2. 點組生成
對每一個直線圖像點序列M,,用S,A,A表示起始點,中間點,和最 后一個點。除去這三點,",為中其余的點集用i 戶表示。用i 戶中尸,,尸2鄰 閾外的點分別與(《,^)進(jìn)行組合,從而形成不同的三元組。對(P,,A)禾口
6( 2,戶3)都重復(fù)這樣的過程。所有的三元點集記作集合G。點組的選取使得 一個點組包括三個點,三個點來自同一條直線,無需對提取的點組進(jìn)行 任何線的擬合。采用這種方法生成點組的目的是為了使得選取的每個三 元組中的三個點都保持一定的距離。這是應(yīng)為我們要校正畸變,所以盡 量保持三個點之間有很大畸變,如果三個點靠得很近,就會使得三個圖 像點接近成一條直線,這會使得計算結(jié)果對誤差很敏感,所以盡量讓選 取的點保持一定距離。
3. 基于廣義除式模型建立方程 對G中的每個三元組(m,, m2, m3),建立下列方程
(w32 [m' m 2m 。 ] - M, [m !1113111 。 ] + M, [m 2m3m 。肌 + (v32 [m' m 2m 。 ] — v〗[m'n^m q ] + vf [m 2m 3m 。 ])&2
+ ("3v3[mim2mQ] —"2v2[niim3m。] +w,v,[ni2m3m。])/t3 —[miii^nig ] = 0,
其中/t,人A為畸變參數(shù),m。表示畸變中心的齊次坐標(biāo)(以圖像中心作為初 始值),m,, m2, m3表示直線圖像上三個點的齊次坐標(biāo),(",,v,)為m,-m。 前兩個坐標(biāo)對應(yīng)的值??梢钥闯鲆陨戏匠剃P(guān)于畸變參數(shù)是完全線性的。 線性方程的好處是易于求解,且求解的結(jié)果比較穩(wěn)定。依次對G中的每個 三元組,建立相應(yīng)的線性方程,這樣就建立了大量的線性方程,線性方 程數(shù)量越多,求解的結(jié)果就會越魯棒。
4. 畸變參數(shù)計算
基于2)與3),對每個點組都建立相應(yīng)的一個線性方程,對多個圖像點 選取多個圖像點組,從而建立多個線性方程,然后根據(jù)多個線性方程應(yīng) 用奇異值分解(sigular value decomposition,SVD)方法解算出畸變參數(shù) (^太人),對上述線性方程進(jìn)行求解,求解結(jié)果作為畸變參數(shù)(&入,&) 的初始值。SVD分解對解線性方程非常有效,能保證求解的結(jié)果比較可 罪。
5. 畸變參數(shù)優(yōu)化
應(yīng)用最小二乘準(zhǔn)則,使用計算結(jié)果誤差最小的準(zhǔn)則進(jìn)行優(yōu)化對畸變 參數(shù)、,&^進(jìn)行優(yōu)化。優(yōu)化的代價函數(shù)為步驟3中(^入人)結(jié)果加權(quán) 的殘差平方和?;?)對畸變參數(shù)進(jìn)行最小平方差優(yōu)化,由于基于點點
7的信息,所包含的信息多,優(yōu)化結(jié)果很魯棒。參數(shù)優(yōu)化的目的是為了是 結(jié)果的總體誤差最小,這樣得到的結(jié)果也是最合理的。
6.應(yīng)用求解的畸變參數(shù)H&對鏡頭進(jìn)行校正
根據(jù)畸變參數(shù)求解攝像機(jī)的內(nèi)參數(shù)/:、 乂、 S為
<formula>formula see original document page 8</formula>
其中記K:<formula>formula see original document page 8</formula>
利用公式K、^m-m。)對圖像點m進(jìn)行校正,
<formula>formula see original document page 8</formula>
(W, V)為m的坐標(biāo);/ 為焦距與像素點在水平方向?qū)挾鹊谋戎?,X為焦 距與像素點在垂直方向?qū)挾鹊谋戎?,s為圖像平面不垂直光軸產(chǎn)生的畸變
因子,K,v。)為光軸與圖像平面交點坐標(biāo),這些參數(shù)組成攝像機(jī)的內(nèi)參數(shù) 矩陣K。 ^指矩陣K中根據(jù)m算出的H直。
圖l內(nèi)容為辦公室場景圖像,圖2為室外場景一建筑物側(cè)面圖像, 圖3為室外場景一建筑物正面圖像。
圖l(a)為Nikon D40攝像機(jī)加Sigma-F3.4魚眼鏡頭拍攝的室內(nèi)圖 像。圖2(a),圖3(a)為NIKON COOLPIX990攝像機(jī)加FC-E8魚眼鏡頭所 拍攝的室外圖像。首先對拍攝的圖像進(jìn)行直線圖像點提取,從提取的結(jié) 果組和點,然后公式解算,優(yōu)化參數(shù)?;趫Dl(a),圖2(a),圖3(a)的畸 變參數(shù)求解結(jié)果分別為
^ =6.8875*10-6,A:2 =6.7741 "(J-6 ,& = 1.3896 "(T8。 & =7.5997*10—6, A;2 =7.5997 *10_6, 、=-8.9696 * 10一7 。 & =7.6471*10—6 , 、 =7.6471 *10_6, 、 = —1.1138 * 10一7 。 應(yīng)用這些求解參數(shù)對圖像進(jìn)行校正,校正結(jié)果分別如圖l(b),圖2(b),圖 3(b)所示。以上所述,僅為本發(fā)明中的具體實施方式
,但本發(fā)明的保護(hù)范圍并 不局限于此,任何熟悉該技術(shù)的人在本發(fā)明所揭露的技術(shù)范圍內(nèi),可理 解想到的變換或替換,都應(yīng)涵蓋在本發(fā)明的包含范圍之內(nèi),因此,本發(fā) 明的保護(hù)范圍應(yīng)該以權(quán)利要求書的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.簡易線性廣角鏡頭校正法,包括步驟如下步驟S1攝取含有直線場景的圖像,用直線檢測算法提取直線,再提取來自圖像直線上的圖像點;步驟S2對來自同一直線上的圖像點進(jìn)行三點組組合;步驟S3應(yīng)用廣義除式模型,基于每個組合,建立一個畸變參數(shù)的線性方程為<maths id="math0001" num="0001" ><math><![CDATA[ <mrow><mrow> <mo>(</mo> <msubsup><mi>u</mi><mn>3</mn><mn>2</mn> </msubsup> <mo>[</mo> <msub><mi>m</mi><mn>1</mn> </msub> <msub><mi>m</mi><mn>2</mn> </msub> <msub><mi>m</mi><mn>0</mn> </msub> <mo>]</mo> <mo>-</mo> <msubsup><mi>u</mi><mn>2</mn><mn>2</mn> </msubsup> <mo>[</mo> <msub><mi>m</mi><mn>1</mn> </msub> <msub><mi>m</mi><mn>3</mn> </msub> <msub><mi>m</mi><mn>0</mn> </msub> <mo>]</mo> <mo>+</mo> <msubsup><mi>u</mi><mn>1</mn><mn>2</mn> </msubsup> <mo>[</mo> <msub><mi>m</mi><mn>2</mn> </msub> <msub><mi>m</mi><mn>3</mn> </msub> <msub><mi>m</mi><mn>0</mn> </msub> <mo>]</mo> <mo>)</mo></mrow><msub> <mi>k</mi> <mn>1</mn></msub> </mrow>]]></math></maths><maths id="math0002" num="0002" ><math><![CDATA[ <mrow><mo>+</mo><mrow> <mo>(</mo> <msubsup><mi>v</mi><mn>3</mn><mrow> <mn>2</mn></mrow> </msubsup> <mo>[</mo> <msub><mi>m</mi><mn>1</mn> </msub> <msub><mi>m</mi><mn>2</mn> </msub> <msub><mi>m</mi><mn>0</mn> </msub> <mo>]</mo> <mo>-</mo> <msubsup><mi>v</mi><mn>2</mn><mn>2</mn> </msubsup> <mo>[</mo> <msub><mi>m</mi><mn>1</mn> </msub> <msub><mi>m</mi><mn>3</mn> </msub> <msub><mi>m</mi><mn>0</mn> </msub> <mo>]</mo> <mo>+</mo> <msubsup><mi>v</mi><mn>1</mn><mn>2</mn> </msubsup> <mo>[</mo> <msub><mi>m</mi><mn>2</mn> </msub> <msub><mi>m</mi><mn>3</mn> </msub> <msub><mi>m</mi><mn>0</mn> </msub> <mo>]</mo> <mo>)</mo></mrow><msub> <mi>k</mi> <mn>2</mn></msub> </mrow>]]></math></maths><maths id="math0003" num="0003" ><math><![CDATA[ <mrow><mo>+</mo><mrow> <mo>(</mo> <msub><mi>u</mi><mn>3</mn> </msub> <msub><mi>v</mi><mn>2</mn> </msub> <mo>[</mo> <msub><mi>m</mi><mn>1</mn> </msub> <msub><mi>m</mi><mn>2</mn> </msub> <msub><mi>m</mi><mn>0</mn> </msub> <mo>]</mo> <mo>-</mo> <msub><mi>u</mi><mn>2</mn> </msub> <msub><mi>v</mi><mn>2</mn> </msub> <mo>[</mo> <msub><mi>m</mi><mn>1</mn> </msub> <msub><mi>m</mi><mn>3</mn> </msub> <msub><mi>m</mi><mn>0</mn> </msub> <mo>]</mo> <mo>+</mo> <msub><mi>u</mi><mn>1</mn> </msub> <msub><mi>v</mi><mn>1</mn> </msub> <mo>[</mo> <msub><mi>m</mi><mn>2</mn> </msub> <msub><mi>m</mi><mn>3</mn> </msub> <msub><mi>m</mi><mn>0</mn> </msub> <mo>]</mo> <mo>)</mo></mrow><msub> <mi>k</mi> <mn>3</mn></msub><mo>-</mo><mo>[</mo><msub> <mi>m</mi> <mn>1</mn></msub><msub> <mi>m</mi> <mn>2</mn></msub><msub> <mi>m</mi> <mn>3</mn></msub><mo>]</mo><mo>=</mo><mn>0</mn><mo>,</mo> </mrow>]]></math></maths>式中m0表示畸變中心的齊次坐標(biāo),是以圖像中心作為初始值,m1,m2,m3表示直線圖像上三個點的齊次坐標(biāo),(ui,vi)為mi-m0前兩個坐標(biāo)對應(yīng)的值;步驟S4對上述線性方程進(jìn)行求解,將計算結(jié)果作為畸變參數(shù)k1、k2、k3的初始值;步驟S5應(yīng)用最小二乘準(zhǔn)則,使用計算結(jié)果誤差最小的準(zhǔn)則對畸變參數(shù)k1、k2、k3進(jìn)行優(yōu)化;步驟S6根據(jù)畸變參數(shù)k1、k2、k3求解攝像機(jī)鏡頭的內(nèi)參數(shù)為<maths id="math0004" num="0004" ><math><![CDATA[ <mrow><msub> <mi>f</mi> <mi>u</mi></msub><mo>=</mo><mfrac> <mn>1</mn> <msqrt><msub> <mi>k</mi> <mn>1</mn></msub> </msqrt></mfrac><mo>,</mo> </mrow>]]></math> id="icf0004" file="A2008102227730002C4.tif" wi="18" he="10" top= "186" left = "24" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths><maths id="math0005" num="0005" ><math><![CDATA[ <mrow><msub> <mi>f</mi> <mi>v</mi></msub><mo>=</mo><msqrt> <mfrac><msub> <mi>k</mi> <mn>1</mn></msub><mrow> <msub><mi>k</mi><mn>1</mn> </msub> <msub><mi>k</mi><mn>2</mn> </msub> <mo>-</mo> <mfrac><msubsup> <mi>k</mi> <mn>3</mn> <mn>2</mn></msubsup><mn>4</mn> </mfrac></mrow> </mfrac></msqrt><mo>,</mo> </mrow>]]></math> id="icf0005" file="A2008102227730002C5.tif" wi="31" he="17" top= "184" left = "46" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths><maths id="math0006" num="0006" ><math><![CDATA[ <mrow><mi>s</mi><mo>=</mo><mo>-</mo><mfrac> <msub><mi>k</mi><mn>3</mn> </msub> <mrow><mn>2</mn><msub> <mi>k</mi> <mn>1</mn></msub> </mrow></mfrac><msub> <mi>f</mi> <mi>v</mi></msub><mo>,</mo> </mrow>]]></math> id="icf0006" file="A2008102227730002C6.tif" wi="21" he="10" top= "185" left = "82" img-content="drawing" img-format="tif" orientation="portrait" inline="yes"/></maths>利用鏡頭成像模型與鏡頭本身有關(guān)的內(nèi)參數(shù),準(zhǔn)確計算出內(nèi)參數(shù)后,完成對圖像的畸變進(jìn)行校正。
2. 按權(quán)利要求1所述的簡易廣角鏡頭校正法,其特征在于,利用拍 攝的場景中有l(wèi)條或l條以上的直線,提取直線上的圖像點。
3. 按權(quán)利要求1所述的簡易廣角鏡頭校正法,其特征在于,對每個 點組建立相應(yīng)的一個線性方程,對多個圖像點選取多個圖像點組,從而 建立多個線性方程,然后根據(jù)多個方程用奇異值分解方法解算出畸變參數(shù)。
4.按權(quán)利要求1所述的簡易廣角鏡頭校正法,其特征在于,對畸變 參數(shù)A、 &、 ^進(jìn)行最小平方差優(yōu)化,使用大量的圖像點建立多個方程,基 于點點的信息,獲得魯棒優(yōu)化結(jié)果。
全文摘要
本發(fā)明為一種簡易線性廣角鏡頭校正法,包括攝取含有直線場景的照像,用直線檢測算法提取直線,再提取來自直線上的圖像點;對來自同一直線上的圖像點進(jìn)行三點組合;應(yīng)用廣義除式模型,基于每個組合,建立一個畸變參數(shù)的線性方程,計算畸變參數(shù),對畸變參數(shù)優(yōu)化;應(yīng)用求解的攝像機(jī)鏡頭的內(nèi)參數(shù)對鏡頭進(jìn)行校正。本發(fā)明提供的方法完全是線性的,不需要進(jìn)行曲線擬和,所以簡便、實用。而且所采用的廣義除式模型考慮的畸變參數(shù)更全面,從而測量精度能滿足通常的需要,具有魯棒性好、穩(wěn)定性高等特點。本發(fā)明使得廣角鏡頭校正走向?qū)嵱没?、簡便化?br>
文檔編號G06T5/00GK101685532SQ20081022277
公開日2010年3月31日 申請日期2008年9月24日 優(yōu)先權(quán)日2008年9月24日
發(fā)明者吳毅紅, 戴志軍, 胡占義 申請人:中國科學(xué)院自動化研究所