劉 霖 陳 祥 劉娟秀 羅 穎 凌 云 黃 田 易茂麗
?
二維光電影像測量儀系統(tǒng)攝像機標定技術
劉 霖 陳 祥 劉娟秀 羅 穎 凌 云 黃 田 易茂麗
本文針對二維光電影像測量儀中的攝像機標定,提出一種基于張正友標定算法的改進攝像機標定方法。該方法通過人工選點,得到需要檢測的角點區(qū)域,接著利用Harris算子得到待測角點的初始位置,再根據(jù)灰度矩對所有角點進一步精確定位。最后利用張正友平面標定方法進行標定。實驗表明,該方法對棋盤格角點位置定位較傳統(tǒng)方法要好,最后標定的數(shù)值精確度較高,在二維光電影像測量系統(tǒng)中具有很高的實用性。
隨著工業(yè)生產力的不斷發(fā)展,對產品質量的追求也越來越高。如何快速準確地檢測產品的質量已經是很多企業(yè)正面臨的問題?;诠怆妶D像處理的影像測量儀由于其具有非接觸、自動化、可測微小物體、精度高等優(yōu)點,使其成為裝備制造業(yè)中質量控制中不可或缺的配套儀器。
二維光電影像測量系統(tǒng)主要建立在機器視覺檢測技術基礎上。攝像機標定是光電影像測量儀中一個重要的研究課題。相機標定就是根據(jù)一組已經空間位置的點與其圖像對應點求解相機參數(shù)的過程。攝像機標定是計算機視覺系統(tǒng)實現(xiàn)的前提和基礎。它是影像測量儀進行物體測量的首要步驟,是二維圖像獲取三維空間信息的關鍵和必要步驟。在影像測量儀系統(tǒng)乃至其他圖像測量或者機器視覺應用中,攝像機參數(shù)的標定都是非常關鍵的環(huán)節(jié),其標定結果的精度及算法的穩(wěn)定性直接影響攝像機工作產生結果的準確性。
攝像機標定一直以來受到國內外學者的關注。傳統(tǒng)的方法有DLT方法(直接線性變換方法),R.Tsai的RAC方法,張正友的平面標定方法,孟曉橋、胡占義的圓標定方法,吳毅紅等的平行圓標定方法等。不依賴標定參照物的攝像機標定方法稱為自標定方法。自標定方法非常靈活,但并不成熟,很難得到穩(wěn)定的結果,在需要較高精度的應用場合應用較少。張正友的平面標定方法是介于傳統(tǒng)標定方法和自標定方法之間的一種方法。它既避免了傳統(tǒng)方法設備要求高,操作繁瑣等缺點,比自標定方法精度高,目前得到廣泛的應用。
在使用張正友標定法進行標定過程中,對棋盤格角點的檢測是至關重要的一步,現(xiàn)在也有很多角點檢測方法如Moravec角點檢測算法、FAST角點檢測算法、Harris角點檢測、Shi-Tomasi算法。傳統(tǒng)意義上的角點檢測因為受圖像數(shù)字特性影響,只能有一個像素的精度。這樣的精度不能滿足影響測量儀對精度的要求。為了提高角點檢測的精度,往往還需要在像素級別的角點上對角點進行進一步亞像素定位。本文在張正友角點檢測算法基礎上,利用Harris算子和灰度矩相結合方法改進角點的檢測精度,使整個標定過程精度得到提高。
攝像機模型
攝像機模型一般采用針孔模型。在攝像機成像過程中,通常涉及到多個坐標系。它們分別是世界坐標系、攝像機坐標系和圖像坐標系,圖像坐標系又分為圖像物理坐標系和圖像像素坐標系。最后的成像公式可變?yōu)椋?/p>
圖1 攝像機成像模型
其中,[Xw,Yw, Zw,1]為P點在世界坐標系下的齊次坐標,[u,v,1]為投影點p在圖像坐標系下的齊次坐標,s為一任意非零尺度的比例因子,旋轉矩陣R與平移向量t稱為攝像機的外部參數(shù)矩陣,A為攝像機內部參數(shù)矩陣:
圖2 本文所用標定板
其中,(u0,v0)為圖像中心點在圖像坐標系中的坐標,α與β分別為圖像坐標系中水平與垂直方向上的尺度因子,γ為兩個坐標軸的不垂直因子理想情況下攝像機定標就是要求解這內外總共11個未知量。
角點綜合檢測方法
本文采用張正友平面標定方法,所用標定板為棋盤格標定板,如圖2所示。要進行精確標定,需要對角點進行精確檢測。
算法的第一步是用人工選點的方法確定待測角點的區(qū)域。
Harris角點算子
Harris算子是C Harris和M J Stephens在1988年提出的一種基于信號的點特征提取算子。這種算子受信號處理中自相關函數(shù)的啟發(fā), 出與自相關函數(shù)相聯(lián)系的矩陣M。M矩陣的特征值是自相關函數(shù)的一階曲率,如果兩個曲率值都高,那么就認為該點是點特征。Harris算子的使用和證明已在文獻中介紹。
Harris算子是一種有效的點特征提取算子,其優(yōu)點有計算簡單、提取的點特征均勻且合理、穩(wěn)定。在角點檢測中大量使用。但其只能獲得像素級的坐標值。
本文對由人工點選得到的圖像矩陣,通過Harris角點檢測算子,可以得到角點的像素級坐標值,記為(u0, v0)。
灰度矩精確定位算法原理
灰度矩是由Tabatabai首先提出,最初用于邊緣定位。其基本原理就是假設實際圖像中的實際邊緣分布與理想階躍邊緣模型的灰度矩保持一致,即矩不變性。在進行角點檢測時,灰度矩角點定位原理與灰度矩邊緣定位類似。即假設實際圖像的實際角點與理想角點模型的灰度矩保持一致。
圖3 角點近似模型
圖4 二維理想角點模型
對于本文所要研究的數(shù)字圖像I(i,j)來說,圖像中目標區(qū)域S的p階灰度矩的定義為:
式中,n為區(qū)域S中的像素點數(shù)
根據(jù)算子計算效率和精度,本文采用5x5的模型。圖3為經過Harris算子檢測到的角點近似模型,在圖中,標號為a13的點檢測到的角點。其精確度為1個像素。根據(jù)灰度矩近似原理,可以得到如圖4的理想階躍模型。設其真實角點位于(u,v)處,其中(u,v)的位置在a13這個像素內,為亞像素角點。根據(jù)棋盤格特點,整個模型將會被角點分為4個區(qū)域。整個模型可用4個參數(shù)表示,角點橫坐標u,角點縱坐標v,區(qū)域1和區(qū)域3的灰度值h1,區(qū)域2和區(qū)域4的灰度值h2,即:
設每個像素點的單位長為d=1,則模型整個區(qū)域在(0,0)到(5,5)范圍內。則理想階躍模型中灰度矩可以表示為:
一共有4個未知數(shù):u,v,h1,h2聯(lián)立求解下列方程組:
圖5 真實圖像角點模型
圖6 二維理想角點模型
可以求得h1,h2,和S。
得到S時,我們可以得到關于橫坐標u和縱坐標v的關系式,即:
其中2<u<3,2<v<3。在這條曲線上的點都滿足兩種模型的灰度矩相等,都可以滿足一定的數(shù)值精度。
為了進一步確定u和v的具體數(shù)值,得需一個約束條件。本文采用在一維上的灰度矩平衡來確定橫坐標u。取5x1的理想階躍模型,如圖5、圖6所示。
類似以上分析,整個模型可用3個參數(shù)表示,角點橫坐標u,u左邊區(qū)域灰度值h3,u右邊區(qū)域的灰度值h4,即:
由式12可得其灰度矩方程:
解方程組,可以得到u。
最后,將所解得的u代入式(13),可以得到精確的角點坐標(u,v)。注意這只是在理想模型的角點坐標。要得到在圖像坐標系的坐標,有以下變換:
其中(u0, v0)為Harris算子得出的角點坐標。(u,v)為在灰度矩理想階躍模型下的坐標,(u', v')為最后得到的精確坐標值。
標定模型
本文采用的攝像機標定模板為平面模板,如圖2所示,模板為棋盤格。對任意的三維點,可以假設平面模板位于世界坐標系的x o y平面,即z=0。
設平面靶標上的每個特征點的坐標為(xwi,ywi,zwi),在攝像機坐標系下的坐標為(xci,yci,zci),記圖像坐標為(ui, vi),令z=0有:
其中,s 為常數(shù),Min是攝像機的五參數(shù)內參矩陣,精簡上式為:
式中,Ii=(ui, vi,1)為點Pi的圖像坐標,Pi=(xwi,ywi,1)為點Pi在靶標坐標系下的坐標,[h1h2h3]是從笛卡爾坐標到圖像坐標的單應性矩陣。
參數(shù)求解
由式(13),利用旋轉矩陣的特性得到如下式(14)和式(15)兩個約束方程:
對于采集到的N幅圖像,得到N組方程,可以聯(lián)立2N個方程。從而求出內外參數(shù)。
標定過程總結
張正友標定的過程如下:
(1)在未畸變模型下,對內參數(shù)的5個參數(shù)標定獲得線性初值;
(2)利用獲得的線性初值對畸變系數(shù)進行標定;
(3)利用標定出來的非線性參數(shù)重新進行線性標定;
(4)重復第二步到第三步的步驟,直到線性參數(shù)和非線性參數(shù)收斂為止。
第一步進行標定時,因為攝像機的畸變未能納入考慮范圍,得到的結果精度較低,而第二步標定出來的非線性參數(shù)的精度也不能達到要求,只有對標定出來的線性參數(shù)進行非線性計算,直到線性和非線性參數(shù)都收斂才能得到最精確的值。
為了驗證本文方法的正確性和有效性,文中采用C++進行界面編程,對算法進行驗證。驗證步驟如下:
(1)選定相機和鏡頭,在不同的角度對同一棋盤格拍圖;
(2)用人工選點的方法得到待檢測的角點區(qū)域。利用Harris算法進行角點檢測。得到角點的初始位置;
(3)針對初始位置,用灰度矩算法對角點進行亞像素定位。得到角點的亞像素坐標;
(4)用得到的亞像素角點數(shù)據(jù)進行張正友相機標定。得到相機標定結果。
在本次實驗中,相機分辨率為2590 × 1942。棋盤格標定板中一個格子的邊長設計為20mm。為了結果的準確性,一共標記20張圖。如圖7所示。
圖7 標記圖像所用的20張圖
根據(jù)半自動角點檢測步驟,人工選定棋盤格角點外接矩形中兩個方向的格子數(shù)分別為9和7。然后進行Harris角點檢測和灰度矩角點亞像素定位,圖8為其中一張圖采集到的棋盤格圖像角點的檢測結果。可以看出,檢測結果非常接近實際角點位置。
圖9為角點局部放大的圖像。圖中每一個方格代表一個像素點。十字交點為通過本文方法檢測到的角點。該角點位置位于一個像素內,精度為亞0.01個像素??梢钥闯觯瑑?yōu)化后的結果比Harris算子得到的像素級別角點位置更接近實際角點的位置。
更多的角點變化結果,見表1。可以看到,Harris算子得到的角點坐標為像素級別,精度為1像素,本文中利用灰度矩改進算法得到的坐標為亞像素級別,精度為0.01像素。本文方法更能體現(xiàn)角點的實際位置。
表1 不同算法對應的角點坐標對比
最后,利用角點數(shù)據(jù)進行張正友標定結果如表2所示。
表2 不同標定方法算法標定結果比較
根據(jù)官方給的相機資料,相機的焦距為3730mm。可見,用灰度矩算出的角點位置更符合實際情況,得到的相機參數(shù)也更準確。
在本文研究的標定中,使用半自動的角點檢測方法,手動框選角點范圍,然后使用Harris算子進行角點初步定位,接著利用灰度矩算法對角點位置進行優(yōu)化,得到亞像素級別的角點位置,最后利用張正友標定法進行標定。實驗表明,將灰度矩應用于相機標定中,可以得到比較好的角點檢測效果,最后得到的標定結果的精度較高,滿足在影像測量儀中對各個參數(shù)要求高的這一需求。
圖8 角點檢測結果圖
圖9 角點局部放大圖
劉 霖1,2陳 祥2劉娟秀1,2羅 穎1凌 云1黃 田1易茂麗1
1.東莞成電術有精密技術有限公司;2.電子科技大學光電信息學院
10.3969/j.issn.1001-8972.2016.11.002