袁 野, 胡學(xué)龍*, 陳舒涵, 陳 軍
(1. 揚州大學(xué)信息工程學(xué)院, 江蘇 揚州 225127; 2. 揚州瑞控汽車電子有限公司, 江蘇 揚州 225100)
長焦相機拍攝遠(yuǎn)處景物時具有景深較小、拍攝主體突出和背景干擾小等優(yōu)勢, 因而被廣泛用于計算機視覺領(lǐng)域.相機標(biāo)定技術(shù)能夠為拍攝的二維圖像添加深度信息, 從而進(jìn)行三維場景的重建[1].相機標(biāo)定技術(shù)發(fā)展至今, 主要可以分為相機自標(biāo)定法[2]、主動視覺相機標(biāo)定法[3]和標(biāo)定物標(biāo)定法[4]三類, 其中應(yīng)用最廣泛的是隸屬于標(biāo)定物標(biāo)定法的張正友標(biāo)定法[5].張正友標(biāo)定法的標(biāo)定過程簡單便捷,標(biāo)定精度較高.由于張正友標(biāo)定法的精度很大程度上取決于使用角點檢測算法提取棋盤格內(nèi)角點像素坐標(biāo)的精度, 所以高精度的角點檢測算法是保證張正友標(biāo)定法精度的前提.目前, 基于圖像灰度變化的角點檢測算法因抗噪性能較強和定位性能好而備受關(guān)注, 如Moravec算法[6]、Harris算法[7]、SUSAN算法[8]和BW-Harris[9]等.Harris算法具有計算簡便且性能穩(wěn)定等特點, 在眾多角點檢測算法中脫穎而出.然而, 隨著相機技術(shù)的發(fā)展, Harris算法越來越難以滿足高分辨率圖像的檢測需求, 耗時長、背景干擾、角點冗余及誤角點等問題日益凸顯.近年來, 非極大值抑制目標(biāo)檢測方法被引入Harris算法, 緩解了Harris算法的尷尬處境.陳賢兒等[10]提出將Harris算法與加速魯棒性特征(speeded up robust features, SURF)進(jìn)行融合, 融合后的算法在復(fù)雜背景下的精度較高; Wang等[11]在進(jìn)行Harris角點檢測前使用圓形相移圖案對特征點進(jìn)行編碼, 避免了較多誤角點的出現(xiàn), 從而間接提高了檢測精度; Choi等[12]在 Harris角點檢測中引入魯棒控制點估計方法, 提出一種在圖像高度失真或嚴(yán)重傾斜時依然具有高精度和強可靠性的角點檢測方法.本文擬將能快速處理冗余點的隨機抽樣一致(random sample consensus, RANSAC)算法[13]與Harris角點檢測算法相結(jié)合, 提出一種改進(jìn)的Harris-RANSAC長焦相機標(biāo)定算法.
為了避免圖像背景的干擾, 通過OpenCV庫中findContours函數(shù)提取出棋盤格部分輪廓的像素坐標(biāo), 從而將檢測區(qū)域縮小到棋盤格上會出現(xiàn)角點的黑白格部分, 以大幅縮小待檢測區(qū)域.任意位姿放置的棋盤格圖像經(jīng)findContours輪廓提取的結(jié)果如圖1所示.
圖1 輪廓提取結(jié)果Fig.1 The result of contour extraction
圖2 感興趣區(qū)域及其位置變化示意圖Fig.2 Region of interest and their position changes diagram
Harris算法原理: 設(shè)置一個特征窗口, 若該特征窗口往各方向移動時區(qū)域內(nèi)灰度均無明顯變化, 則判斷算子位于平坦區(qū)域; 若該特征窗口在某一個方向移動時窗口內(nèi)的圖像灰度變化較大, 而在其他方向上均未發(fā)生變化, 則窗口可能位于圖像中物體的邊緣; 若該特征窗口往任意方向移動時窗口內(nèi)圖像的灰度變化都很大, 則判斷該區(qū)域內(nèi)存在角點.
據(jù)Harris算法原理可知, 角點處R值較大, 平坦區(qū)域R值趨近于0, 邊緣區(qū)域R<0且全部候選角點都位于圖像輪廓上.為了降低噪聲的影響, 通常設(shè)置一個較小的正閾值T, 當(dāng)R 傳統(tǒng)Harris算法存在角點冗余、背景角點干擾現(xiàn)象以及耗時長等固有缺陷, 并且對散焦模糊棋盤格圖像角點檢測的精度不夠.針對上述不足, 現(xiàn)對傳統(tǒng)Harris算法進(jìn)行如下調(diào)整: 1) 在對模糊圖像進(jìn)行檢測時, 適當(dāng)增大特征窗口的大?。畬⑻卣鞔翱诔叽缬赡J(rèn)的3×3像素調(diào)整為7×7像素, 以期在不增加算法耗時的情況下保留感興趣區(qū)域內(nèi)的全部候選角點.值得注意的是, 若特征窗口過大會加劇角點冗余, 故本文選擇將特征窗口大小調(diào)整為7×7像素. 2) 由于模糊圖像的角點響應(yīng)值R較小, 故設(shè)置一個較小的閾值T=10-2, 以保證有效角點(即進(jìn)行角點精定位時所需的角點)不丟失. 針對如圖3(a)所示的采用Harris算法對任一棋盤格圖像的感興趣區(qū)域進(jìn)行角點檢測時得到的大量冗余角點, 利用傳統(tǒng)非極大值抑制法剔除冗余角點, 結(jié)果如圖3(b)所示.通過對圖3(b)中局部區(qū)域1,2,3放大后觀察可見非極大值抑制并不能完全解決角點冗余的問題. 圖3 Harris角點檢測非極大值抑制結(jié)果Fig.3 Harris corner detection of non-maximum suppression 由于冗余角點在每個感興趣區(qū)域內(nèi)都圍繞模糊的角點分布,且分布規(guī)律近似一條直線.針對大量呈線狀分布的點集, 本文選擇RANSAC算法[13]替代非極大值抑制以剔除冗余角點,通過直線模型擬合點集數(shù)據(jù), 找出擬合點集最準(zhǔn)確的一條線.RANSAC算法處理冗余角點的耗時較非極大值抑制更短, 在某一角點數(shù)量確定的感興趣區(qū)域內(nèi)可迅速獲得擬合程度滿足容差范圍的若干直線方程, 進(jìn)而通過計算直線附近的灰度梯度即可得到直線上灰度梯度最大的整像素點坐標(biāo)ci(xi,yi).理想情況下, RANSAC算法擬合所得直線方程便包含角點位置. 運用PyThon編程, 實驗平臺為64位Windows 10操作系統(tǒng), PyCharm 2020.3.3(x64), Intel(R) Core(TM) i5-8300H CPU, 內(nèi)存為16 GB, HT-UB500H 100 mm工業(yè)相機.采集如圖4所示的不同背景復(fù)雜度、光照條件、位姿和清晰度下640×480像素的棋盤格圖像進(jìn)行實驗分析. 圖4 長焦相機采集的圖像Fig.4 Image acquired by telephoto camera 為驗證本文算法的有效性, 隨機抽取清晰度和背景復(fù)雜度不同的3幅棋盤格圖像, 分別采用BW-Harris算法[9]、圓形相移圖案改進(jìn)算法[11]以及本文算法進(jìn)行角點檢測, 并以小圓圈標(biāo)注檢測出的角點, 角點提取結(jié)果如圖5所示. 圖5 3種檢測算法下的角點提取結(jié)果Fig.5 Corner extraction results under three detection algorithms 由圖5可見: 文獻(xiàn)[9]算法在提取模糊棋盤格圖像角點時易受背景干擾, 且出現(xiàn)較多冗余角點或發(fā)生角點丟失情況; 文獻(xiàn)[11]算法雖能精準(zhǔn)識別角點位置, 但在圖像清晰度較低的情況下,棋盤格孔洞與手掌陰影處依然會受干擾導(dǎo)致角點誤檢測; 而本文算法進(jìn)行角點檢測時算法定位準(zhǔn)確, 未出現(xiàn)誤檢、漏檢或冗余角點. 表1 本文算法檢測結(jié)果 對采集的棋盤格圖像采用不同角點檢測算法進(jìn)行耗時對比,結(jié)果如表2所示.由表2可見: 本文算法能在較短的時間內(nèi)準(zhǔn)確識別出棋盤格角點.其可能原因是本文Harris-RANSAC算法摒棄了非極大值抑制處理冗余角點的過程, 從而降低了耗時, 而文獻(xiàn)[9]和文獻(xiàn)[11]都在角點檢測過程中采用了非極大值抑制. 表2 幾種算法耗時對比2.2 Harris-RANSAC算法
2.3 亞像素級角點提取
3 實驗結(jié)果與分析