任 貝, 韓 飛, 吳 堅(jiān)
(吉林大學(xué) 汽車(chē)動(dòng)態(tài)仿真與控制國(guó)家重點(diǎn)實(shí)驗(yàn)室, 長(zhǎng)春 130022)
目前, 攝像機(jī)標(biāo)定的方法已經(jīng)有很多。但傳統(tǒng)攝像機(jī)標(biāo)定法的精度較低, 而攝像機(jī)自標(biāo)定法對(duì)實(shí)驗(yàn)設(shè)備要求較高, 且方法過(guò)于繁瑣, 運(yùn)行速度較慢。筆者應(yīng)用文獻(xiàn)[1]提出的攝像機(jī)標(biāo)定方法計(jì)算出多組內(nèi)參矩陣、 畸變矩陣及外參矩陣, 并利用遺傳算法對(duì)這些矩陣進(jìn)行優(yōu)化, 可在對(duì)實(shí)驗(yàn)設(shè)備要求不高的情況下, 較快地對(duì)攝像機(jī)參數(shù)進(jìn)行計(jì)算, 并通過(guò)優(yōu)化算法得到更高的精度。
為描述攝像機(jī)的成像模型, 需要建立世界坐標(biāo)系、 攝像機(jī)坐標(biāo)系、 實(shí)際圖像坐標(biāo)系和像素圖像坐標(biāo)系[1,2](見(jiàn)圖1)。
圖1 攝像機(jī)成像模型
圖1中, 世界坐標(biāo)系(OwXwYwZw)、 攝像機(jī)坐標(biāo)系(ocxcyczc)、 像素圖像坐標(biāo)系(uv)、 實(shí)際圖像坐標(biāo)系(O1XY)之間的幾何關(guān)系所示如下
(1)
圖2 徑向畸變與切向畸變示意圖
在實(shí)際成像系統(tǒng)中, 由于鏡頭和電荷耦合元件(CCD: Chavge-Coupled Device)感光原件等加工和裝配誤差以及透視過(guò)程中造成的失真等影響, 必將引起投影點(diǎn)距投影幾何中心位置存在偏差, 這種偏差則稱(chēng)為畸變, 主要可分為徑向畸變(k1,k2,k3)、 切向畸變(p1,p2)和非正交畸變(b1,b2)[5](見(jiàn)圖2)。
綜上所述, 需要對(duì)以下攝像機(jī)內(nèi)參數(shù)進(jìn)行標(biāo)定求解(見(jiàn)表1)。
表1 攝像機(jī)標(biāo)定參數(shù)
在圖像中, 通常把邊緣、 角點(diǎn)、 圓形中心等具有鮮明特征的點(diǎn)或形狀作為視覺(jué)圖像的特征信息。攝像機(jī)標(biāo)定就是通過(guò)這些圖像的特征信息在像平面的坐標(biāo)與其三維空間中的坐標(biāo)的映射關(guān)系計(jì)算攝像機(jī)成像模型[6]。
筆者采用Harris角點(diǎn)檢測(cè)法對(duì)棋盤(pán)格角點(diǎn)進(jìn)行提取, 并對(duì)其結(jié)果進(jìn)行亞像素級(jí)角點(diǎn)提取[7,8], 最后根據(jù)角點(diǎn)的提取對(duì)攝像機(jī)參數(shù)進(jìn)行標(biāo)定, 具體步驟如下。
1) 利用高斯函數(shù)窗口代替二值窗口函數(shù)進(jìn)行平滑濾波, 對(duì)離中心點(diǎn)近的像素賦予較大的權(quán)重, 以減少噪聲影響。
2) 利用Harris角點(diǎn)檢測(cè)法對(duì)棋盤(pán)格各角點(diǎn)在圖像坐標(biāo)系中的位置進(jìn)行檢測(cè)與提取。
3) 對(duì)提取的像素級(jí)角點(diǎn)進(jìn)行亞像素級(jí)優(yōu)化。理論上從角點(diǎn)處q到其鄰域內(nèi)任意一點(diǎn)p的向量與p點(diǎn)處的圖像梯度正交, 而實(shí)際中, 向量的點(diǎn)積存在一定的誤差εi(見(jiàn)圖3)。
圖3 角點(diǎn)與邊緣點(diǎn)向量積誤差示意圖
圖4 攝像機(jī)標(biāo)定流程圖
誤差可表示如下
εi=
(2)
其中q′=[xq,yq]T表示通過(guò)Harris算法提取出的角點(diǎn)坐標(biāo);pi表示在q′的小鄰域內(nèi)的點(diǎn)pi(i=1,…,n);Ipi=表示pi處的沿x、y方向的梯度。亞像素級(jí)角點(diǎn)定位通過(guò)對(duì)向量正交性的迭代求解實(shí)現(xiàn), 則可對(duì)q′鄰域內(nèi)所有pi點(diǎn)的梯度的點(diǎn)積累加聯(lián)立構(gòu)建多約束方程, 然后通過(guò)最小二乘法求解精確的角點(diǎn)坐標(biāo)qx和qy, 即得到一點(diǎn)q*, 使所有點(diǎn)向量點(diǎn)積誤差∑εi最小。
4) 利用上述方法提取的角點(diǎn)坐標(biāo)根據(jù)如圖4所示流程圖對(duì)攝像機(jī)參數(shù)進(jìn)行計(jì)算。
遺傳算法是一種如同生物學(xué)上生物遺傳進(jìn)化過(guò)程的計(jì)算方法, 以一個(gè)初始值為起點(diǎn), 在其領(lǐng)域內(nèi)產(chǎn)生多個(gè)隨機(jī)點(diǎn)作為候選個(gè)體構(gòu)成遺傳算法的種群, 對(duì)個(gè)體進(jìn)行編碼, 形成染色體即數(shù)學(xué)上的可行解。將這些染色體置于“環(huán)境”中, 以適者生存的原則選擇更適應(yīng)環(huán)境的新一代染色體, 經(jīng)過(guò)這樣一代一代地進(jìn)化, 最終收斂得到一個(gè)最適應(yīng)環(huán)境的染色體, 即最優(yōu)解[9]。在進(jìn)化過(guò)程中, 對(duì)染色體的遺傳操作主要包括選擇、 交叉和變異等方法, 控制參數(shù)主要包括種群大小、 交叉概率以及最大進(jìn)化代數(shù)等。
筆者采用遺傳算法對(duì)上述攝像機(jī)內(nèi)參數(shù)標(biāo)定的結(jié)果進(jìn)行優(yōu)化, 算法如圖5所示。
圖5 遺傳算法優(yōu)化流程圖
1) 染色體矢量定義。本文中包括3種主要畸變的攝像機(jī)內(nèi)參數(shù)(共11個(gè))作為染色體基因, 采用浮點(diǎn)編碼策略對(duì)其進(jìn)行編碼, 則染色體變量θ可表示為
θ={αx,αy,u0,v0,k1,k2,k3,p1,p2,b1,b2}={θ1,θ2,…,θ11}
(3)
將上述方法所得到的攝像機(jī)參數(shù)作為初始值{ax,ay,u0,v0}, 在其鄰域內(nèi)隨機(jī)生成多個(gè)染色體, 組成初始種群, 構(gòu)建染色體結(jié)構(gòu)空間。
(4)
3) 算子設(shè)計(jì)。選擇算子應(yīng)用Michalewicz提出的線性排序的選擇概率公式[11]
pi=c(1-c)i-1
(5)
其中pi為第i個(gè)個(gè)體的選擇概率,c為排序第1的個(gè)體的選擇概率。該選擇方法可避免遺傳算法收斂過(guò)早的缺點(diǎn); 交叉算子采用基于方向的交叉方法以符合浮點(diǎn)編碼策略, 即根據(jù)父輩的加權(quán)平均值計(jì)算子輩, 表示如下
(6)
(7)
4) 終止條件。這里規(guī)定當(dāng)以下條件中的任意一條滿足時(shí), 遺傳算法即終止:
① 當(dāng)前運(yùn)行代數(shù)G大于最大運(yùn)行代數(shù)Gmax;
② 當(dāng)G 其中ε為終止準(zhǔn)則最小值。設(shè)N為第G進(jìn)化代的個(gè)體數(shù), 設(shè) (8) 筆者的攝像機(jī)標(biāo)定采用基于棋盤(pán)格標(biāo)定模板的標(biāo)定方法, 即標(biāo)定模板是由尺寸相同的黑白小方格交錯(cuò)拼接而成的棋盤(pán)狀模板, 共有49個(gè)角點(diǎn), 各角點(diǎn)間距離相等, 每格寬度為24 mm, 貼在平整的木板上(保證所有點(diǎn)共面), 令其左上角第1個(gè)內(nèi)角點(diǎn)作為世界坐標(biāo)系原點(diǎn)。攝像機(jī)從不同方向拍攝8組靜態(tài)圖像(320×240像素)。經(jīng)過(guò)上述過(guò)程, 得到攝像機(jī)標(biāo)定初始結(jié)果如表2所示(由于外參數(shù)各幅圖像均不相同, 此處僅給出內(nèi)參數(shù))。 表2 攝像機(jī)內(nèi)參數(shù)標(biāo)定初始值 通過(guò)遺傳算法, 對(duì)表2的攝像機(jī)內(nèi)參數(shù)標(biāo)定初始值進(jìn)行優(yōu)化, 遺傳算法參數(shù)設(shè)置如表3所示。 表3 遺傳算法優(yōu)化程序的參數(shù)設(shè)置 表4 攝像機(jī)內(nèi)參數(shù)標(biāo)定最優(yōu)值 表5 投影誤差對(duì)比 筆者提出了一種基于遺傳算法的攝像機(jī)內(nèi)參數(shù)標(biāo)定方法。通過(guò)誤差分析顯示參與驗(yàn)證計(jì)算的特征點(diǎn)的投影平均絕對(duì)誤差為0.255 9像素, 標(biāo)準(zhǔn)差為0.139 3像素, 相比于初始值以及L-M優(yōu)化結(jié)果有更好的精度, 投影誤差得到了顯著的抑制, 而且避免了傳統(tǒng)的非線性優(yōu)化易于過(guò)早收斂等缺點(diǎn), 可以有效地提高攝像機(jī)內(nèi)參數(shù)標(biāo)定精度, 具有一定的實(shí)用價(jià)值。該方法已經(jīng)成功應(yīng)用在汽車(chē)智能輔助駕駛系統(tǒng)中, 通過(guò)對(duì)攝像機(jī)參數(shù)的標(biāo)定, 能從車(chē)載攝像機(jī)中通過(guò)圖像處理算法得到比較準(zhǔn)確的距離。 參考文獻(xiàn): [1]馬頌德, 張正友. 計(jì)算機(jī)視覺(jué)-計(jì)算理論與實(shí)踐 [M]. 北京: 科學(xué)出版社, 1998. MA Song-de, ZHANG Zheng-you. Computer Vision-Computer Theory and Practice [M]. Beijing: Science Press, 1998. [2]張廣軍. 機(jī)器視覺(jué) [M]. 北京: 科學(xué)出版社, 2005. ZHANG Guang-jun. Machine Vision [M]. Beijing: Science Press, 2005. [3]XU Qiao-yu, YE Dong, CHE Ren-sheng, et al. Accurate Camera Calibration with New Minimizing Function [C]∥International Conference on Robotics and Biomimetics. Kunming: [s.n.], 2006: 779-784. [4]ANKUR DATTA, JUN-SIK KIM, TAKEO KANADE. Accurate Camera Calibration Using Iterative Refinement of Control Points [C]∥IEEE International Conference on Computer Vision Workshops. Kyoto: [s.n.], 2009: 1201-1208. [5]陳天飛, 馬孜, 吳翔, 等. 攝像機(jī)鏡頭畸變的魯棒矯正 [J]. 控制與決策, 2013, 28(3): 461-465. CHEN Tian-fei, MA Zi, WU Xiang, et al. Robust Correction Method for Camera Lens Distortion [J]. Control and Decision, 2013, 28(3): 461-465. [6]ZHANG Zheng-you. A Flexible New Technique for Camera Callibration [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11): 1330-1334. [7]FENG Chun, WU Hong-tao, QIAO Bing, et al. Combining Camera Calibration with Hand-Eye Calibration and Using in Monocular Vision [C]∥2010 International Conference on Computer, Mechatronics, Control and Electronic Engineering. Changchun, China: [s.n.], 2010: 21-24. [8]AZRA FETIC, DAVOR JURIC, DINKO OSMANKOVIC. The Procedure of a Camera Calibration Using Camera Calibration Toolbox for MATLAB [C]∥MIPRO 2012. Opatija, Croatia: [s.n.], 2012: 1752-1757. [9]吉根林. 遺傳算法研究綜述 [J]. 計(jì)算機(jī)應(yīng)用與軟件, 2004(2): 69-73. JI Gen-lin. Review of Research on Genetic Algorithm [J]. Computer Applications and Software, 2004(2): 69-73. [10]范晶晶, 劉峰, 徐瓊. 一種結(jié)合遺傳算法和LM算法的攝像機(jī)自標(biāo)定方法 [J]. 南京郵電大學(xué)學(xué)報(bào): 自然科學(xué)版, 2011, 31(5): 23-32. FAN Jing-jing, LIU Feng, XU Qiong. A Camera Self-Calibration Method Based on Genetic Algorithm and LM Algorithm [J]. Journal of Nanjing University of Posts and Telecommunications: Natural Science, 2011, 31(5): 23-32. [11]韓嘯. 基于遺傳算法的攝像機(jī)內(nèi)參數(shù)標(biāo)定研究[D]. 長(zhǎng)春: 吉林大學(xué)儀器科學(xué)與電氣工程學(xué)院, 2008. HAN Xiao. The Study of Camera Intrinsic Parameters Calibration Using Genetic Algorithms [D]. Changchun: College of Instrumentation & Electrical Engineering, Jilin University, 2008. [12]XIONG Zhen, ZHANG Yun. Bundle Adjustment with Rational Polynomial Camera Models Based on Generic Method [J]. IEEE Transactions on Geoscience and Remote Sensing, 2011, 49(1): 190-202.4 仿真過(guò)程及結(jié)果分析
5 結(jié) 語(yǔ)