任 貝, 韓 飛, 吳 堅
(吉林大學(xué) 汽車動態(tài)仿真與控制國家重點實驗室, 長春 130022)
目前, 攝像機標(biāo)定的方法已經(jīng)有很多。但傳統(tǒng)攝像機標(biāo)定法的精度較低, 而攝像機自標(biāo)定法對實驗設(shè)備要求較高, 且方法過于繁瑣, 運行速度較慢。筆者應(yīng)用文獻[1]提出的攝像機標(biāo)定方法計算出多組內(nèi)參矩陣、 畸變矩陣及外參矩陣, 并利用遺傳算法對這些矩陣進行優(yōu)化, 可在對實驗設(shè)備要求不高的情況下, 較快地對攝像機參數(shù)進行計算, 并通過優(yōu)化算法得到更高的精度。
為描述攝像機的成像模型, 需要建立世界坐標(biāo)系、 攝像機坐標(biāo)系、 實際圖像坐標(biāo)系和像素圖像坐標(biāo)系[1,2](見圖1)。
圖1 攝像機成像模型
圖1中, 世界坐標(biāo)系(OwXwYwZw)、 攝像機坐標(biāo)系(ocxcyczc)、 像素圖像坐標(biāo)系(uv)、 實際圖像坐標(biāo)系(O1XY)之間的幾何關(guān)系所示如下
(1)
圖2 徑向畸變與切向畸變示意圖
在實際成像系統(tǒng)中, 由于鏡頭和電荷耦合元件(CCD: Chavge-Coupled Device)感光原件等加工和裝配誤差以及透視過程中造成的失真等影響, 必將引起投影點距投影幾何中心位置存在偏差, 這種偏差則稱為畸變, 主要可分為徑向畸變(k1,k2,k3)、 切向畸變(p1,p2)和非正交畸變(b1,b2)[5](見圖2)。
綜上所述, 需要對以下攝像機內(nèi)參數(shù)進行標(biāo)定求解(見表1)。
表1 攝像機標(biāo)定參數(shù)
在圖像中, 通常把邊緣、 角點、 圓形中心等具有鮮明特征的點或形狀作為視覺圖像的特征信息。攝像機標(biāo)定就是通過這些圖像的特征信息在像平面的坐標(biāo)與其三維空間中的坐標(biāo)的映射關(guān)系計算攝像機成像模型[6]。
筆者采用Harris角點檢測法對棋盤格角點進行提取, 并對其結(jié)果進行亞像素級角點提取[7,8], 最后根據(jù)角點的提取對攝像機參數(shù)進行標(biāo)定, 具體步驟如下。
1) 利用高斯函數(shù)窗口代替二值窗口函數(shù)進行平滑濾波, 對離中心點近的像素賦予較大的權(quán)重, 以減少噪聲影響。
2) 利用Harris角點檢測法對棋盤格各角點在圖像坐標(biāo)系中的位置進行檢測與提取。
3) 對提取的像素級角點進行亞像素級優(yōu)化。理論上從角點處q到其鄰域內(nèi)任意一點p的向量與p點處的圖像梯度正交, 而實際中, 向量的點積存在一定的誤差εi(見圖3)。
圖3 角點與邊緣點向量積誤差示意圖
圖4 攝像機標(biāo)定流程圖
誤差可表示如下
εi=
(2)
其中q′=[xq,yq]T表示通過Harris算法提取出的角點坐標(biāo);pi表示在q′的小鄰域內(nèi)的點pi(i=1,…,n);Ipi=表示pi處的沿x、y方向的梯度。亞像素級角點定位通過對向量正交性的迭代求解實現(xiàn), 則可對q′鄰域內(nèi)所有pi點的梯度的點積累加聯(lián)立構(gòu)建多約束方程, 然后通過最小二乘法求解精確的角點坐標(biāo)qx和qy, 即得到一點q*, 使所有點向量點積誤差∑εi最小。
4) 利用上述方法提取的角點坐標(biāo)根據(jù)如圖4所示流程圖對攝像機參數(shù)進行計算。
遺傳算法是一種如同生物學(xué)上生物遺傳進化過程的計算方法, 以一個初始值為起點, 在其領(lǐng)域內(nèi)產(chǎn)生多個隨機點作為候選個體構(gòu)成遺傳算法的種群, 對個體進行編碼, 形成染色體即數(shù)學(xué)上的可行解。將這些染色體置于“環(huán)境”中, 以適者生存的原則選擇更適應(yīng)環(huán)境的新一代染色體, 經(jīng)過這樣一代一代地進化, 最終收斂得到一個最適應(yīng)環(huán)境的染色體, 即最優(yōu)解[9]。在進化過程中, 對染色體的遺傳操作主要包括選擇、 交叉和變異等方法, 控制參數(shù)主要包括種群大小、 交叉概率以及最大進化代數(shù)等。
筆者采用遺傳算法對上述攝像機內(nèi)參數(shù)標(biāo)定的結(jié)果進行優(yōu)化, 算法如圖5所示。
圖5 遺傳算法優(yōu)化流程圖
1) 染色體矢量定義。本文中包括3種主要畸變的攝像機內(nèi)參數(shù)(共11個)作為染色體基因, 采用浮點編碼策略對其進行編碼, 則染色體變量θ可表示為
θ={αx,αy,u0,v0,k1,k2,k3,p1,p2,b1,b2}={θ1,θ2,…,θ11}
(3)
將上述方法所得到的攝像機參數(shù)作為初始值{ax,ay,u0,v0}, 在其鄰域內(nèi)隨機生成多個染色體, 組成初始種群, 構(gòu)建染色體結(jié)構(gòu)空間。
(4)
3) 算子設(shè)計。選擇算子應(yīng)用Michalewicz提出的線性排序的選擇概率公式[11]
pi=c(1-c)i-1
(5)
其中pi為第i個個體的選擇概率,c為排序第1的個體的選擇概率。該選擇方法可避免遺傳算法收斂過早的缺點; 交叉算子采用基于方向的交叉方法以符合浮點編碼策略, 即根據(jù)父輩的加權(quán)平均值計算子輩, 表示如下
(6)
(7)
4) 終止條件。這里規(guī)定當(dāng)以下條件中的任意一條滿足時, 遺傳算法即終止:
① 當(dāng)前運行代數(shù)G大于最大運行代數(shù)Gmax;
② 當(dāng)G 其中ε為終止準(zhǔn)則最小值。設(shè)N為第G進化代的個體數(shù), 設(shè) (8) 筆者的攝像機標(biāo)定采用基于棋盤格標(biāo)定模板的標(biāo)定方法, 即標(biāo)定模板是由尺寸相同的黑白小方格交錯拼接而成的棋盤狀模板, 共有49個角點, 各角點間距離相等, 每格寬度為24 mm, 貼在平整的木板上(保證所有點共面), 令其左上角第1個內(nèi)角點作為世界坐標(biāo)系原點。攝像機從不同方向拍攝8組靜態(tài)圖像(320×240像素)。經(jīng)過上述過程, 得到攝像機標(biāo)定初始結(jié)果如表2所示(由于外參數(shù)各幅圖像均不相同, 此處僅給出內(nèi)參數(shù))。 表2 攝像機內(nèi)參數(shù)標(biāo)定初始值 通過遺傳算法, 對表2的攝像機內(nèi)參數(shù)標(biāo)定初始值進行優(yōu)化, 遺傳算法參數(shù)設(shè)置如表3所示。 表3 遺傳算法優(yōu)化程序的參數(shù)設(shè)置 表4 攝像機內(nèi)參數(shù)標(biāo)定最優(yōu)值 表5 投影誤差對比 筆者提出了一種基于遺傳算法的攝像機內(nèi)參數(shù)標(biāo)定方法。通過誤差分析顯示參與驗證計算的特征點的投影平均絕對誤差為0.255 9像素, 標(biāo)準(zhǔn)差為0.139 3像素, 相比于初始值以及L-M優(yōu)化結(jié)果有更好的精度, 投影誤差得到了顯著的抑制, 而且避免了傳統(tǒng)的非線性優(yōu)化易于過早收斂等缺點, 可以有效地提高攝像機內(nèi)參數(shù)標(biāo)定精度, 具有一定的實用價值。該方法已經(jīng)成功應(yīng)用在汽車智能輔助駕駛系統(tǒng)中, 通過對攝像機參數(shù)的標(biāo)定, 能從車載攝像機中通過圖像處理算法得到比較準(zhǔn)確的距離。 參考文獻: [1]馬頌德, 張正友. 計算機視覺-計算理論與實踐 [M]. 北京: 科學(xué)出版社, 1998. MA Song-de, ZHANG Zheng-you. Computer Vision-Computer Theory and Practice [M]. Beijing: Science Press, 1998. [2]張廣軍. 機器視覺 [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]. 控制與決策, 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]. 計算機應(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算法的攝像機自標(biāo)定方法 [J]. 南京郵電大學(xué)學(xué)報: 自然科學(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]韓嘯. 基于遺傳算法的攝像機內(nèi)參數(shù)標(biāo)定研究[D]. 長春: 吉林大學(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 仿真過程及結(jié)果分析
5 結(jié) 語