王曉輝 李 星
(1.中國飛機強度研究所 西安 710065)(2.中國煤炭科工集團西安研究院 西安 710065)
攝像機標(biāo)定的過程,實際上是計算攝像機成像過程中的相關(guān)參數(shù),對于計算機視覺的實現(xiàn)有重要意義[1]。結(jié)合實際應(yīng)用場合,傳統(tǒng)標(biāo)定方法不適用于在線標(biāo)定和無標(biāo)定物的場合。針對航拍視頻測量系統(tǒng)來說,鑒于無人平臺載荷量的限制,傳統(tǒng)標(biāo)定方法中過大的立體標(biāo)定物顯得很不便攜[2];自標(biāo)定方法雖然簡單靈活,對外界要求較低,可以擺脫標(biāo)定參照物的束縛,但標(biāo)定精度低,可靠性較差,同時由于沒有外部物理數(shù)值的輸入,不能夠直接求解出攝像機的外部參數(shù),無法適用于航拍視頻系統(tǒng)進行空間定位[3~4];而基于主動視覺的標(biāo)定方法需要一定的視覺控制平臺,相比而言價格昂貴,成本[5]。
鑒于此,我們使用平面模板進行攝像機標(biāo)定,通過自適應(yīng)角點檢測方法和改進的攝像機標(biāo)定模型,一方面滿足了視頻系統(tǒng)對標(biāo)定物便攜性的要求,另一方面保證了空間物理信息輸入的準(zhǔn)確性,從而有效地提高了標(biāo)定精度和效率。具體地,本文通過攝像機視場角測量試驗,證明了該方法的可行性、準(zhǔn)確性和有效性。
基于Hessian矩陣角點檢測的思想[6~7],結(jié)合Harris算子提出了一種全新的自適應(yīng)角點檢測方法,主要思想是通過引入圖像形狀算子和圓形對稱模板,動態(tài)、準(zhǔn)確地獲取角點位置坐標(biāo),從而提高了攝像機標(biāo)定輸入信息的準(zhǔn)確性。
通過對圖像I(x,y)進行高斯平滑,得到r(x,y),再利用對稱差分模板對r(x,y)做卷積得到圖像的二次偏導(dǎo)數(shù)rxx,rxy,ryy,具體運算如下:
其中g(shù)(x,y)是方差為σ的高斯函數(shù),圖像的Hessian矩陣為M根據(jù)矩陣M的兩個特征值λ1,λ2(λ1>0,λ2<0)得到棋盤格角點位置的形狀算子S=λ1*λ2,其中S取負(fù)極大值的點(x*,y*)即為像素級角點位置。在實際中,我們?nèi)=-S,使得求解形狀算子的負(fù)極大值轉(zhuǎn)換為求解正極大值,然后在形狀算子圖像S上,依次以每個像素為中心移動局部檢測窗口,只要窗口中心的S等于對應(yīng)窗口內(nèi)的最大屬性值Smax且大于閾值th*,則該中心點初步確定為角點。鑒于固定閾值的缺陷,在此我們采用一種自適應(yīng)閾值法。
首先取S=-S,然后檢測出局部窗口中心點形狀算子大于0且為鄰域最大值的所有像素點,總數(shù)記為n,然后對檢測出的形狀算子進行正向排序,計算兩相鄰形狀算子之差:Sd=(S2-S1,S3-S2,…Sn-Sn-1),其中Sd的最大值對應(yīng)像素點的形狀算子S*,從而取th*=corr0*S*,0<corr0<1。
根據(jù)棋盤格角點的對稱特性[3],采用圓形對稱模板剔除偽角點(如圖1所示)。
圖1 角點特征和圓形對稱模板扇區(qū)編號
具體來說,通過將圓形模板分為10個扇區(qū)并編號,依次累計各個扇區(qū)像素的灰度值,整個模板區(qū)域像素的平均灰度值為Imean,各扇區(qū)的灰度值為Ii。由于棋盤格角點鄰域具有中心對稱性,因此當(dāng)真正的角點位于圓形模板中心時,Ii與Ii+5(i=1,2,…,5)灰度值相近,也就是說(Ii-Imean)與(Ii+5-Imean)同號,即
本文使用的角點檢測算法,同時也結(jié)合了多尺度角點檢測算法,從而最大程度地保證了角點的完整性。具體在作者的文獻[8]中,列舉了大量實驗說明本文檢測算法的優(yōu)越性。
關(guān)于攝像機標(biāo)定原理不再贅述,本文基于張正友的經(jīng)典標(biāo)定模型[2],考慮到時下對于標(biāo)定速度、精度、實時性的要求和現(xiàn)代數(shù)碼產(chǎn)品制造工藝的提升[9],提出了一種改進的三參數(shù)模型,具體在足作者文獻[10]中有所描述,主要按照線性求解內(nèi)外參數(shù),引入畸變量綜合求解,從而實現(xiàn)攝像機的標(biāo)定。在此基礎(chǔ)上可以完成對圖像的畸變校正,從而進行攝像機鏡頭視場角的測量實驗。
基于以上角點檢測算法,在改進模型的基礎(chǔ)上,可以完成標(biāo)定獲得攝像機內(nèi)外參數(shù),其中標(biāo)定過程如圖2所示。
圖2 基于角點檢測的攝像機標(biāo)定過程
根據(jù)以上算法實現(xiàn)機理,基于VC 6.0和OpenCV編程,對此進行了軟件實現(xiàn),并植入到GML Camera calibration toolbox[11]中,整個過程可以實現(xiàn)棋盤格角點的自動檢測、排序和匹配(如圖3所示),并且可以直接作為標(biāo)定的輸入信息,從而使得整個標(biāo)定過程更直觀,更高效(如圖4所示)。
圖3 棋盤格角點自動檢測
圖4 攝像機標(biāo)定結(jié)果
3.2.1 實現(xiàn)方案
將棋盤格模板放置于基準(zhǔn)架前,保持激光測距儀(Insight200)的發(fā)射端口所在平面和棋盤格模板平面相對平行。在實驗中,需要將兩個激光點完全落在攝像頭視場范圍內(nèi)。獲得圖像信息后,通過攝像機標(biāo)定實驗可以得到攝像機的內(nèi)外參數(shù),獲得攝像頭的焦距,同時也可以獲取激光點所在的圖像像素位置,從而利用幾何知識計算出攝像頭視場角,實驗裝置如圖5所示。
圖5 攝像機視場角測量實驗方案圖
實驗中使用JAI公司的CV-A10CL鏡頭,素材是在日光燈下拍攝所得的20幅640×480的棋盤格圖像,其中棋盤格模板是6×7的方格組成,每個方格尺寸35mm(如圖6所示)。
圖6
3.2.2 攝像機標(biāo)定
通過以上方法,完成攝像機標(biāo)定,并且和標(biāo)定工具箱[12]進行了對比,見表1。
表1 攝像機標(biāo)定內(nèi)部參數(shù)
在此CCD像元尺寸(參見文獻[13])dx=dy=5.6μm,可將數(shù)字焦距換算成物理焦距:
誤差分析:
可以看出,本文模型方法對焦距的估計值與標(biāo)準(zhǔn)焦距的相對誤差為0.69%,而原始模型對焦距的估計值與標(biāo)準(zhǔn)焦距的相對誤差為1.36%,兩者相差一倍,從而說明本文方法的有效性和準(zhǔn)確性。
3.2.3 圖像畸變校正
通過攝像機參數(shù),對圖像進行畸變校正[14~15],效果如圖7所示。3.2.4 視場角測量
圖7 圖像畸變校正效果圖
1)通過對校正圖像進行內(nèi)角點檢測,獲得內(nèi)角點的亞像素級坐標(biāo)。計算知圖中方格橫向邊長為dpx=83.9251pixel,縱向邊長為dpy=84.7608pixel,實際方格邊長為d=35mm,從而可知圖像的單元尺度因子:Dx=d/dpx=0.4170,Dy=d/dpy=0.4129。
設(shè)攝像機鏡頭在水平方向的絕對視場角為θx,垂直方向的絕對視場角為θy,從而根據(jù)幾何關(guān)系計算如下:
4)攝像機視場角計算及誤差分析
根據(jù)攝影成像原理,視場角的計算公式如下:
代入理論值和原始模型方法以及本文模型方法下的參考值,計算結(jié)果見表2。
表2 視場角測量結(jié)果誤差分析
可以看出,本文方法模型下對攝像機視場角的測量值更接近理論值,而原始模型方法下對攝像機視場角的測量值相比理論值誤差較大。
本文基于改進的棋盤格角點自適應(yīng)檢測算法和改進的三參數(shù)模型,可以實時動態(tài)地完成對攝像機的標(biāo)定,進而完成了對攝像機視場角的測量實驗,相比標(biāo)定工具箱來說,本文模型方法的測量精度明顯提高,測量誤差縮小一半,從而進一步說明了本文方法的有效性和準(zhǔn)確性,有一定的實用價值。