童 飛
(上海興芯微電子科技有限公司,上海 201203)
圖像處理作為一種高效的信息獲取技術(shù),已滲透到社會生活的方方面面。在硬件技術(shù)和機器視覺技術(shù)的高速發(fā)展下,圖像處理技術(shù)日益融入工業(yè)生產(chǎn)之中[1-3],包括運動跟蹤、物體識別和立體匹配等[4-5]。在立體視覺中,棋盤格角點檢測是攝像機標定的重要步驟[6],對標定結(jié)果有重要影響[7-8]。
棋盤格角點檢測算法從檢測方式上分為3 種[9]。第一種是基于圖像灰度變化的檢測算法,經(jīng)典的檢測方法主要包括Moravec、Harris 和SUSAN 算法。Moravec 算法[10]使用滑動窗口檢測局部灰度變化,進而定位邊緣和角點,成為后續(xù)檢測算法的基礎(chǔ)。Harris 角點檢測算法[1,11-12]根據(jù)角點所在區(qū)域的灰度變化特性,區(qū)別不同類型的點。SU?SAN 角點檢測算法[13-14]檢測角點的相似點數(shù)量變化,增加了對噪聲的抗干擾性。第二種是基于模板的檢測算法,根據(jù)棋盤格角點的對稱性設(shè)計約束,實現(xiàn)對角點的精確檢測。Geiger 等[15]設(shè)計了關(guān)于原點對稱的模板,使用圖像區(qū)域的局部響應(yīng)檢測兩種角度的角點;劉飛飛等[16]設(shè)計了關(guān)于橫軸和縱軸對稱的環(huán)形模板,使用當前區(qū)域內(nèi)的像素跳變次數(shù)檢測角點;伍明等[17]使用圓形模板來定位候選角點集。第三種是基于輪廓曲線的檢測算法。艾裕豐等[18]提出了基于棋盤格邊緣的角點檢測算法,使用5×5 的窗口定位邊緣的法線方向;Zhang 等[4]提出了基于離散曲率的角點檢測算法;王曉輝等[19]將基于圖像灰度和基于模板的方法結(jié)合起來,以提高角點檢測準確性。
目前,獲取亞像素角點位置的常用算法有雙線性插值和二次多項式擬合,根據(jù)角點初始位置,通過插值和擬合方式,獲得亞像素級別的角點坐標。在標定過程中,精確的角點坐標會提升相機標定精度[20-21]。角點檢測作為一個基礎(chǔ)技術(shù),對于機器視覺應(yīng)用非常重要,對角點檢測算法評估具有重要意義。
角點檢測算法評估[9,22]主要分為5 類:①基于人類視覺評估[23];②基于理論分析[24];③基于角點定位精度[25];④基于標定的參考角點[26];⑤基于一致性判斷[27]。Mi?chael 等[23]設(shè)計了基于人類視覺的估計方法,邀請計算機視覺專業(yè)的9 名學(xué)生參與算法效果評估,根據(jù)中心物體的辨識度對算法進行排名,參與人員數(shù)量、分布和主觀喜好會對評估結(jié)果產(chǎn)生影響。Rockettt[26]設(shè)計了一個成像模型,引入了衍射和采樣等物理因素,生成了一組圖像集,用來測試角點檢測算法性能。本文涉及的物理參數(shù)和幾何參數(shù),都可以通過標定獲得,所得真值數(shù)據(jù)更加接近于真實的成像過程。Awrangjeb 等[27]提出了一致性判斷的評估方法,計算仿射變化前后的角點數(shù)量和位置差異,以檢測算法穩(wěn)定性,但該方法無法獲取角點的真值坐標,無法定量評估角點位置的檢測精度。近年來,立體視覺通過重投影誤差定量評估角點檢測算法精度[17,28],該方法排除了人為因素影響,但是受攝像機標定精度影響。駱榮坤等[29]使用Harris 和SUSAN 算法作對比,從漏檢、誤檢和一致性檢測3 個角度評估算法性能。
本文提出了一種定量評估角點檢測精度的方法,主要包括3 點:首先,通過計算機生成棋盤圖像,獲取角點坐標位置的真實值;然后,根據(jù)相機成像模型,使用真實相機參數(shù),對理想的棋盤格圖像進行畸變處理,定位畸變后角點的真值位置;最后,在生成的圖像中,使用現(xiàn)有算法檢測角點,并將實際檢測值與真值進行比較,進而評估算法檢測精度。
本文相機成像模型采用張正友標定模型,通過單應(yīng)性矩陣建立像素坐標系像點和世界坐標系物點之間的轉(zhuǎn)換關(guān)系[1]。本文使用到的基本成像模型如式(1)-式(3)所示。
其中,矩陣M 是相機的內(nèi)參矩陣;fx、fy是水平和豎直方向的等價焦距,是像素坐標系和物理坐標系之間的轉(zhuǎn)換因子;(u0,v0)是主點坐標。
鏡頭成像主要包括3 種類型的畸變:徑向畸變、切向畸變和薄棱鏡畸變。其中,對于普通相機,徑向畸變是最主要的畸變來源[30-31],且三次方項就可以代表主要畸變量[32-34]。因此,本文畸變模型主要考慮徑向畸變,建立畸變模型,如式(4)—式(7)所示。
Fig.1 The values of different distortion coefficient K圖1 不同畸變系數(shù)K 的取值
本文對角點的真值計算過程進行詳細描述。首先,通過計算機生成棋盤格圖像;然后,根據(jù)成像模型,將棋盤格圖像從像素域反投影到空間域;最后,根據(jù)畸變模型,添加徑向畸變,并計算畸變前后棋盤格角點位置。
通過計算機生成棋盤格圖像,記錄角點坐標的真值。構(gòu)建投影和反投影之間的映射模型,從而得到畸變之后角點的真值位置信息。內(nèi)參的逆矩陣用來構(gòu)建反投影公式,如式(8)所示。
其中,[Xc,Yc,1]T是平面Zc=1 上的點,通過式(4)的畸變模型,建立畸變前后模型如式(9)所示。
通過式(9)計算畸變前的像素坐標。由于角點的真值位置是亞像素級別,本文采用雙線性插值算法對其進行恢復(fù)。使用角點檢測算法對得到的畸變圖像進行角點檢測,并通過真值評估算法精度。
算法步驟如下:①標定得到攝像機的內(nèi)部參數(shù);②用計算機生成理想的棋盤圖像;③使用上述方法計算從畸變像素坐標到理想像素坐標的映射;④利用雙線性插值生成畸變圖像;⑤利用算法檢測畸變圖像中的角點;⑥利用式(9)計算畸變像素的真值;⑦使用真值評價角點檢測算法精度。
為了驗證評估方法的可靠性,使用不同的角點檢測算法和不同的參數(shù)對其進行評估。
棋盤格角點檢測算法主要分為兩類:基于角點特征的算法和基于棋盤格特征的算法,前者選取Harris 角點檢測算法,后者選取文獻[7]的方法。將算法檢測結(jié)果與真值進行對比,詳細結(jié)果如圖2 所示(彩圖掃OSID 碼可見)。
實驗參數(shù)設(shè)置如下:棋盤格尺寸為:900*1 200,包括88 個內(nèi)角點,得到的相機內(nèi)參如下:fx=1500,fy=1500,u0=600.5,v0=450.5,k=1.5。
Fig.2 Error analysis of corner detection algorithm圖2 角點檢測算法誤差分析
結(jié)果顯示,兩種算法的檢測誤差關(guān)于主點對稱。選擇棋盤格左上角區(qū)域(見圖3),對檢測結(jié)果進行詳細分析,詳細數(shù)據(jù)如表1 所示,細節(jié)放大效果如圖4 所示(選取區(qū)域內(nèi),紅色標記為角點的真值位置,綠色標記為基于棋盤格特征算法的結(jié)果,藍色標記為基于角點特征算法的結(jié)果)。其中,Error1 是真值和基于棋盤格特征算法檢測結(jié)果的絕對誤差,Error2 是真值和基于角點特征算法檢測結(jié)果的絕對誤差。
Fig.3 Area selection of checkerboard圖3 區(qū)域選擇
圖4 顯示,本文提出的方法能夠非常精確地定位真值坐標,并據(jù)此評估角點檢測算法精度。實驗結(jié)果表明,基于棋盤格特征的角點檢測算法,最大檢測誤差為0.263 像素,平均誤差在水平和豎直方向分別是0.067 71 和0.049 42 像素。該算法在豎直方向檢測精度表現(xiàn)好于水平方向,兩者精度相差0.018 29 像素?;诮屈c特征的角點檢測算法,最大檢測誤差為1.19 像素,平均誤差在水平和豎直方向分別是1.007 88 和1.004 33 像素。該算法在水平和豎直方向的精度非常接近。
Table 1 The ground truth of corner points in selected area,the coordinates of corner points detected by different algorithms and the detection error表1 選擇特定區(qū)域角點的真值位置和不同角點檢測算法檢測的角點位置及絕對誤差
畸變系數(shù)K 和高斯模糊度是影響圖像角點位置的主要因素,選取棋盤格角點檢測值進行實驗。對這兩個變量進行控制實驗,計算結(jié)果的平均絕對誤差(MAE)如表2 所示。
Table 2 Average absolute error表2 平均絕對誤差
其中,Size 和Sigma 的值分別是高斯模糊窗口的大小和高斯函數(shù)的標準差。當K=0.5 時,MAE 在0.07 像素以下,隨著K 的增大,MAE 在0.3 像素以下。當尺寸和Sigma值變化時,MAE 值幾乎沒有發(fā)生變化。因此,本文提出的模型具有較好的魯棒性。
本文方法能夠得到角點的真實位置,用以評估角點檢測精度。角點檢測算法不再局限于主觀評估,可以朝著精確性的方向發(fā)展。兩種角點檢測精度結(jié)果顯示,基于棋盤格特征的角點檢測算法具有更高的準確性,在水平和豎直方向的平均誤差分別達到0.067 71 和0.049 42 像素。使用不同的原始生成圖像,本文方法可以得到多種類型的角點真值。然而,該方法只考慮了徑向畸變,后續(xù)研究需要加入更完整的畸變模型,增強方法的適應(yīng)范圍??梢詮膽?yīng)用角度對角點檢測算法進行分類,然后針對不同類型的真值提出相應(yīng)的解決方案。