張小玉,宮 賀,齊 琦
(北方工業(yè)大學(xué) 信息工程學(xué)院,北京 100144)
計(jì)算機(jī)視覺的基本任務(wù)之一是從攝像機(jī)拍攝到的圖像信息來還原空間中物體的幾何信息。而空間物體表面某點(diǎn)的三維幾何位置與其在圖像中對(duì)應(yīng)點(diǎn)之間的關(guān)系是由攝像機(jī)成像的幾何模型決定的。攝像機(jī)標(biāo)定的目的就是確定幾何模型參數(shù)即攝像機(jī)參數(shù)[1]。攝像機(jī)標(biāo)定技術(shù)在立體視覺研究中占有非常重要的地位。一個(gè)完整的計(jì)算機(jī)視覺系統(tǒng)通常可以分為圖像獲取、攝像機(jī)標(biāo)定、特征提取、立體匹配、深度確定及內(nèi)插等6個(gè)部分[2]。精確標(biāo)定攝像機(jī)內(nèi)外參數(shù)不僅可以直接提高測(cè)量精度,而且可以為后繼的立體圖像匹配與三維重建奠定良好的基礎(chǔ)[3-4]。
目前通常使用的標(biāo)定方法是以“兩步法”[5-8]為基礎(chǔ)的傳統(tǒng)攝像機(jī)標(biāo)定方法,與其他標(biāo)定方法相比(如主動(dòng)視覺攝像機(jī)標(biāo)定方法、攝像機(jī)自標(biāo)定方法等),該標(biāo)定方法標(biāo)定精度高,而且標(biāo)定過程簡單,經(jīng)過多年的研究,已發(fā)展的比較成熟,魯棒性高。 OpenCV(Intel open source computer vision)是Intel開放計(jì)算機(jī)視覺函數(shù)庫,它由一系列C函數(shù)和少量C++類構(gòu)成,對(duì)圖像處理和計(jì)算機(jī)視覺方面的很多通用算法進(jìn)行了實(shí)現(xiàn),具有強(qiáng)大的圖像和矩陣運(yùn)算能力。該函數(shù)庫中實(shí)現(xiàn)的攝像機(jī)標(biāo)定方法采用的是張正友提出的標(biāo)定方法。
在攝像機(jī)標(biāo)定中通常使用已知形狀和尺寸大小的標(biāo)定模板來進(jìn)行標(biāo)定,如棋盤格、十字架等。但由于長波紅外攝像機(jī)不能像可見光像機(jī)那樣,直接獲取普通光學(xué)系統(tǒng)標(biāo)定板的紋理,因而無法用普通攝像機(jī)的標(biāo)定板對(duì)長波紅外攝像機(jī)進(jìn)行標(biāo)定。所以,需要對(duì)長波紅外攝像機(jī)設(shè)計(jì)特定的標(biāo)定裝置。
長波紅外攝像機(jī)只能感受到溫度信息,而不能獲取普通光學(xué)系統(tǒng)標(biāo)定板的紋理,因此必須設(shè)計(jì)一個(gè)適用于長波紅外攝像機(jī)標(biāo)定的標(biāo)定裝置。
本標(biāo)定裝置是基于前板帶有標(biāo)志圓孔的標(biāo)定箱,其結(jié)構(gòu)示意圖如下圖1(a)。圖1(a)中1是標(biāo)定箱的前板,作為標(biāo)定箱標(biāo)定數(shù)據(jù)的靶面,一般為熱的良導(dǎo)體,其上設(shè)有若干個(gè)直徑大小一致,形狀規(guī)則的標(biāo)志圓孔,且標(biāo)志圓孔在靶面上以矩形陣列分布。為了區(qū)分方向性及標(biāo)定的準(zhǔn)確性,圓孔陣列的行列數(shù)不相等。圖1(a)中3,4分別為標(biāo)定箱的箱體和后板,是熱的不良導(dǎo)體且具有隔斷長波紅外線的功能。一般情況下,可以用紙質(zhì)、木質(zhì)或則塑料材質(zhì)的密封箱體,在前板用打孔機(jī)打上圓孔矩形陣列,可根據(jù)研究的需要對(duì)圓孔數(shù)量進(jìn)行設(shè)定。使用時(shí),只要將標(biāo)定箱放入長波紅外攝像機(jī)視場(chǎng)后,用加熱器對(duì)標(biāo)定箱前板進(jìn)行均勻加熱,然后拍攝標(biāo)定箱前板圖像即可。為了增強(qiáng)對(duì)比性,前板要均勻的加熱一段時(shí)間,確保靶面和后板的有一定的溫差,從而使標(biāo)靶圖像中圓孔特征更容易提取,使標(biāo)定數(shù)據(jù)更準(zhǔn)確。對(duì)于精度較高的應(yīng)用場(chǎng)合,則點(diǎn)間距需要事先精確測(cè)定。
圖1 標(biāo)定裝置原理圖及紅外像機(jī)拍攝的標(biāo)定板效果圖Fig.1 The schematic diagram of calibration device and the calibration board effect chart of infrared cameras
本研究中,使用的是紙質(zhì)的標(biāo)定箱,在其前板設(shè)有8行6列的標(biāo)志圓孔矩形陣列,圖1(b)為紅外像機(jī)實(shí)際拍攝的前板靶面的效果圖??梢钥闯觯河捎跇?biāo)靶表面加熱,溫度比標(biāo)志圓孔區(qū)域高,標(biāo)志圓孔區(qū)域灰度值較小,標(biāo)靶表面灰度值較大。
紅外像機(jī)拍攝的標(biāo)定板圖像中,以標(biāo)志圓孔重心坐標(biāo)作為特征點(diǎn)像素坐標(biāo)。特征點(diǎn)坐標(biāo)提取算法的流程圖如圖2。
圖2 特征點(diǎn)坐標(biāo)提取流程圖Fig.2 The flow chart of coordinate extraction from Feature points
先對(duì)長波紅外相機(jī)拍攝到的標(biāo)定板圖像進(jìn)行感興趣區(qū)提取,中值濾波,Retinex圖像增強(qiáng)以及二值化等處理,以便對(duì)標(biāo)定板圖像標(biāo)志圓孔坐標(biāo)的準(zhǔn)確求取。然后對(duì)二值化標(biāo)定板圖像中標(biāo)志圓孔進(jìn)行重心坐標(biāo)計(jì)算,作為紅外相機(jī)標(biāo)定的特征點(diǎn)坐標(biāo)。圖3是按照?qǐng)D2流程圖對(duì)紅外像機(jī)拍攝到的標(biāo)靶圖像進(jìn)行圖像處理后的結(jié)果圖。
中值濾波的基本原理是把數(shù)字圖像或數(shù)字序列中某一點(diǎn)的值用該點(diǎn)的周圍一個(gè)鄰域中各點(diǎn)值的中間值代替,讓周圍的像素值接近的真實(shí)值,從而消除孤立的噪聲點(diǎn)。
圖3 對(duì)紅外像機(jī)拍攝到的標(biāo)定板圖像進(jìn)行特征點(diǎn)提取Fig.3 The extraction of feature point on the calibration plate image through the infrared cameras
Retinex圖像增強(qiáng)的原理是利用原始圖像估計(jì)背景噪聲圖像,再用原始圖像減去背景噪聲,得到不受光照影響的圖像(噪聲圖像),利于對(duì)圖像特征的提取。
二值化:將256個(gè)亮度等級(jí)的灰度圖像通過適當(dāng)?shù)拈撝颠x取而獲得仍然可以反映圖像整體和局部特征的二值化圖像。圖像的二值化有利于圖像的進(jìn)一步處理,使圖像變得簡單,而且數(shù)據(jù)量減小,能凸顯出感興趣的目標(biāo)的輪廓。
灰度重心法:用圖像的灰度值作為權(quán)值的加權(quán)形心法?;叶葓D像 I(x,y)中目標(biāo) S 的灰度重心坐標(biāo)(x0,y0)為:
圖3中,(a)是原始標(biāo)定板圖像的感興趣區(qū)域,(b)是采用8*8模板中值濾波之后的背景圖像,(c)是原始圖像(a)減去背景圖像(b)之后的差值圖像,(d)是差值圖像(c)的二值化圖像,(e)是對(duì)(d)進(jìn)行重心求取并標(biāo)出重心坐標(biāo)的圖像。
攝像機(jī)標(biāo)定首先要選擇合適的攝像機(jī)模型,確定內(nèi)外部參數(shù)。內(nèi)部參數(shù)是用來描述攝像機(jī)的幾何特性與內(nèi)部光學(xué)的參數(shù),包括圖像中心、焦距、鏡頭畸變和比例因子等;而外部參數(shù)就是相對(duì)于世界坐標(biāo)系的攝像機(jī)坐標(biāo)的三維位置和方向。OpenCV標(biāo)定算法中的攝像機(jī)模型是在針孔模型的基礎(chǔ)上,考慮了透鏡的徑向畸變和切向畸變的影響。相比于只引入一階徑向畸變的Tasi模型和針孔模型,該模型更能真實(shí)的反映透鏡實(shí)際的畸變情況。
將三維空間點(diǎn) P在世界坐標(biāo)系中的坐標(biāo)值 Pw(Xw,Yw,Zw)變換為圖像平面上像素坐標(biāo)系中坐標(biāo)值P(u,v)的過程可分為下述的4步變換[5]。
1)世界坐標(biāo)系中坐標(biāo) Pw(Xw,Yw,Zw)轉(zhuǎn)換為攝像機(jī)坐標(biāo)系中坐標(biāo) Pc(Xc,Yc,Zc)
式中:R是一個(gè)3x3的旋轉(zhuǎn)矩陣,t是一個(gè)平移向量。
2)將坐標(biāo)值 Pc(Xc,Yc,Zc)在針孔模型中進(jìn)行規(guī)范化投影,得到圖像平面坐標(biāo)系中物理坐標(biāo)P(x,y)為
3)引入透鏡的徑向畸變,和切向畸變,P(x,y)轉(zhuǎn)換為P(xd,yd)
算式中 k1和k2是徑向畸變系數(shù),k3和k4是切向畸變系數(shù)。
4)圖像平面坐標(biāo)系中物理坐標(biāo)P(xd,yd)轉(zhuǎn)換為像素坐標(biāo)P(u,v)
式中f是攝像機(jī)的有效焦距;s是比例因子,用來適應(yīng)在計(jì)算機(jī)圖像(幀存)水平方向上取樣帶來的種種不確定因素;Δx是計(jì)算機(jī)圖像在水平方向(x方向上)相鄰兩像素之間的有效距離(mm/pixel),Δy是計(jì)算機(jī)圖像在垂直方向(y方向)上相鄰兩像素之間的有效距離(mm/pixel);(u0,v0)是基準(zhǔn)點(diǎn),通常在圖像的中心。綜合上述公式可得到如下等價(jià)表達(dá)式:
式(5)中 P=(u,v,1)T為圖像像素點(diǎn)的齊次坐標(biāo),P=(X,Y,Z,1)T是空間點(diǎn)2的齊次坐標(biāo),A是攝像機(jī)內(nèi)參矩陣,(R|t)為外參矩陣,(5)式給出了一個(gè)圖像點(diǎn)和空間點(diǎn)之間的映射關(guān)系。
標(biāo)定過程分為線性計(jì)算和非線性計(jì)算優(yōu)化兩個(gè)步驟:1)不考慮畸變,直接在針孔模型的基礎(chǔ)上利用直接線性變換(DLT變換)方法計(jì)算出攝像機(jī)的內(nèi)部和外部參數(shù)的初值[6]。該步驟的計(jì)算過程都是求解線性方程,求解速度快。但是因?yàn)闆]有考慮透鏡畸變的影響,得到的參數(shù)值并不準(zhǔn)確。2)考慮畸變的情況,以步驟。3)中求得的參數(shù)為初始值,利用Levenberg-Marquardt算法對(duì)圖像點(diǎn)與投影點(diǎn)間的距離之和進(jìn)行非線性最小優(yōu)化,得到一組精度更高的值。
基于OpenCV的標(biāo)定流程模塊如圖4所示。
圖4 標(biāo)定流程模塊圖Fig.4 The block diagram of calibration procedures
1)讀取標(biāo)定用的一組標(biāo)靶圖像(如圖5所示)。
圖5 輸入的3張紅外像機(jī)拍攝的標(biāo)靶圖像Fig.5 Three inputted target image from the infrared camera
2)按照本文2中方法,對(duì)標(biāo)靶圖像進(jìn)行標(biāo)志圓孔重心坐標(biāo)提取,此坐標(biāo)即為特征點(diǎn)在圖像坐標(biāo)系中的坐標(biāo)。
3)初始化所有的輸入?yún)?shù)之后,將特征點(diǎn)在世界坐標(biāo)系中的坐標(biāo)值以及在圖像坐標(biāo)系中的坐標(biāo)值代入cv Cali brate Camera2,最后得到攝像機(jī)的內(nèi)參數(shù)矩陣,畸變系數(shù)向量、圖像的旋轉(zhuǎn)向量、圖像的平移向量。
4)計(jì)算外參矩陣:利用c)中得到的內(nèi)參數(shù)矩陣和畸變系數(shù)向量,用函數(shù)cvFindExtrinsicCameraParams計(jì)算各幅圖像的外參數(shù)(旋轉(zhuǎn)向量和平移向量)。
5)分析實(shí)驗(yàn)結(jié)果:先用cvProjectPoints2計(jì)算出三維特征點(diǎn)坐標(biāo)的投影坐標(biāo),再用函數(shù)cvNorm比較計(jì)算出的投影坐標(biāo)與通過特征點(diǎn)提取到的投影坐標(biāo),從而得到一個(gè)誤差值。最后注意要用cvReleaseMat函數(shù)釋放掉cvCreateMat函數(shù)分配的內(nèi)存空間,防止內(nèi)存泄露。
根據(jù)上述步驟和原理,本文在Windows XP系統(tǒng)下用VS2008編寫了一個(gè)基于OpenCV1.0的紅外攝像機(jī)標(biāo)定程序,程序界面如圖6所示。程序輸入三張或多張標(biāo)靶圖像,輸出是長波紅外像機(jī)的內(nèi)外參數(shù)、畸變系數(shù),以及畸變矯正后的圖像。程序較好的實(shí)現(xiàn)了長波紅外像機(jī)的幾何標(biāo)定,已被應(yīng)用到某銅廠的紅外像機(jī)溫度變化檢測(cè)項(xiàng)目中。
研究中,采用紅外像機(jī)拍攝到3張不同角度的標(biāo)靶圖像,該圖像為640*320像素。程序通過計(jì)算特征點(diǎn)像素坐標(biāo),從而計(jì)算出紅外攝像機(jī)內(nèi)外參數(shù),畸變系數(shù)。利用紅外像機(jī)內(nèi)外參數(shù),可求得紅外像機(jī)的畸變映射,從而實(shí)現(xiàn)對(duì)畸變圖像進(jìn)行畸變恢復(fù)。圖7是用紅外像機(jī)拍攝的銅電解槽的畸變圖像和畸變恢復(fù)后的對(duì)比圖。由對(duì)比圖可以看出,畸變恢復(fù)效果較好,表明利用本文中的紅外像機(jī)標(biāo)定軟件標(biāo)定能很好的實(shí)現(xiàn)紅外攝像機(jī)的幾何標(biāo)定。
圖6 標(biāo)定程序界面Fig.6 The interface of calibration procedures
圖7 銅廠電解槽熱紅外圖像畸變恢復(fù)對(duì)比圖Fig.7 The comparison chart of distortion restoration from thermal infrared image in the electrolytic tank
標(biāo)定出的紅外攝像機(jī)參數(shù)如下:內(nèi)參矩陣:畸變系數(shù):[-0.389 570 0.003 941-0.001 758-0.003 108]誤差 err:0.162 705
本研究設(shè)計(jì)了一個(gè)能用于標(biāo)定紅外攝像機(jī)的標(biāo)定板,并利用圖像處理算法實(shí)現(xiàn)了標(biāo)定板特征點(diǎn)坐標(biāo)的提取。在標(biāo)定時(shí),利用紅外像機(jī)拍攝3張或多張標(biāo)定板圖像,輸入基于OpenCV的紅外像機(jī)標(biāo)定程序,計(jì)算出紅外像機(jī)的內(nèi)外參數(shù),同時(shí)利用求得的畸變系數(shù),對(duì)畸變圖像進(jìn)行了較好的恢復(fù)。
OpenCV中的攝像機(jī)標(biāo)定模塊為用戶提供了良好的接口,有效的提高了開發(fā)效率,并且執(zhí)行速度快,具有良好的跨平臺(tái)移植性,因此被廣泛應(yīng)用于攝像機(jī)標(biāo)定程序的開發(fā)中。OpenCV開發(fā)的攝像機(jī)標(biāo)定程序可以有效地應(yīng)用于需要計(jì)算機(jī)視覺系統(tǒng)的各個(gè)領(lǐng)域。
[1]邱茂林,馬頌德,李毅.計(jì)算機(jī)視覺中攝像機(jī)定標(biāo)綜述[J].自動(dòng)化學(xué)報(bào),2000,26(1):43-55.QIU Mao-lin,MA Song-de,LI Yi.Overview of camera calibration for computer vision[J].Journal of Automation,2000,26(1):43-55.
[2]David A Forsyth,Jean Ponce.計(jì)算機(jī)視覺—一種現(xiàn)代方法[M].北京:電子工業(yè)出版社,2004.
[3]Rashmi Sundareswara,Schrater P R.Bayesian modeling of camera calibration and reconstruction[C].Processings Fifth International Conferenceon3-DDigital Imagingand Modeling,2005:394-401.
[4]Rodriguez T,Sturm P,Wilczkowiak M,et al.VISIRE:Photorealistic 3D reconstruction from video sequences[C].Proceedings International Conference on Image Processing(03CH37429),2003.
[5]Jean-Yves Bouguet.Camera calibration toolbox for Matlab[DB/OL].(2004).http://www.vision.caltech.edu/Bouguetj/calibdoc.
[6]ZHANGZ.A flexible new technique for camera calibration[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2000,22(11):1330-1334.
[7]趙小松.攝像機(jī)標(biāo)定技術(shù)的研究[J].機(jī)械工程學(xué)報(bào),2002,38(3):149-151.ZHAO Xiao-song.Study on camera calibration technology[J].Chinese Journal of Me-chanical Engineeri-ng,2002,38(3):149-151.
[8]毛劍飛,鄒細(xì)勇,諸靜.改進(jìn)的平面模板兩步法標(biāo)定攝像機(jī)[J].中國圖像圖形學(xué)報(bào),2004,9(7):846-852.MAO Jian-fei,ZOU Xi-yong,ZHU Jing.Planar template improved twostep cameracalibration[J].China Journal of image and graphics,2004,9(7):846-852.