王立春,李強(qiáng)懿,阮 航
(南京航空航天大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 211100)
公路破損標(biāo)線的檢測方法,目前仍以人工查看方式為主,相對比較落后。而對于自動化的公路破損標(biāo)線檢測的相關(guān)研究一直在繼續(xù)。Loce R. P.對計算機(jī)視覺技術(shù)在道路交通系統(tǒng)中的應(yīng)用進(jìn)行了總結(jié)[1];陳新波等提出一種利用城市智能監(jiān)控系統(tǒng)采集圖像對道路標(biāo)線進(jìn)行自動化分析的方法[2];李楠利用深度學(xué)習(xí)方法進(jìn)行路面裂縫的識別[3]。
隨著無人機(jī)技術(shù)的成熟,由于無人機(jī)具有飛行靈活、不受時間空間限制等特點,利用無人機(jī)航拍公路圖像并對圖像進(jìn)行自動化分析,無疑將是一種更好的檢測方式[4]。
由于公路標(biāo)線的位置并沒有統(tǒng)一的規(guī)則[5],并且標(biāo)線破損形狀多變,且存在完全磨損掉的可能性,直接對圖像中破損標(biāo)線進(jìn)行檢測分析無法準(zhǔn)確計算出標(biāo)線破損程度并且容易產(chǎn)生漏檢等情況。因此利用圖像匹配技術(shù),首先將航拍公路圖像中的標(biāo)線進(jìn)行一次模板標(biāo)定,然后每次檢測時,將待檢測圖像與已標(biāo)定的模板圖像進(jìn)行匹配,根據(jù)與標(biāo)定模板圖像的對比結(jié)果進(jìn)行破損程度分析,將得到更為準(zhǔn)確的結(jié)果。
目前,圖像匹配技術(shù)在目標(biāo)識別、目標(biāo)跟蹤等領(lǐng)域應(yīng)用廣泛。圖像匹配方法主要有兩類,即基于區(qū)域的方法以及基于特征匹配的方法。基于區(qū)域的方法易受噪聲和光照的影響,適用性較差,而基于特征匹配的方法能夠通過兩幅圖像的共同特征對圖像進(jìn)行匹配,具有更好的穩(wěn)定性。文獻(xiàn)[6]對當(dāng)前局部特征進(jìn)行了總結(jié)。常用的特征檢測算子包括Harris[7]、SIFT[8]、SURF[9]、ORB[10]特征等。文獻(xiàn)[11-12]利用SIFT算法實現(xiàn)圖像目標(biāo)的匹配與定位;文獻(xiàn)[13]利用改進(jìn)的局部不變特征實現(xiàn)興趣點的匹配;文獻(xiàn)[14]改進(jìn)了SIFT算法以實現(xiàn)亞像素級的圖像配準(zhǔn)。
受上述研究啟發(fā),文中提出一種基于圖像匹配的公路破損標(biāo)線檢測方法。該方法利用待檢測圖像與已標(biāo)記的模板圖像進(jìn)行圖像匹配,匹配后根據(jù)與標(biāo)定模板的對比結(jié)果檢測破損標(biāo)線。為進(jìn)一步提高匹配的準(zhǔn)確度,提出一種分區(qū)域特征匹配融合的特征匹配方法,并進(jìn)行了實驗驗證。
SIFT特征是由Lowe等提出的一種穩(wěn)定的特征檢測算子,具有較好的尺度、仿射、光照不變性,在SLAM、人臉識別、目標(biāo)跟蹤等領(lǐng)域應(yīng)用廣泛。
為保證特征的尺度不變性,SIFT算法通過輸入圖像和不同的高斯核做卷積,從而建立不同的尺度空間,并在不同尺度空間中進(jìn)行特征點的檢測和提取。不同尺度空間表示為式1:
L(x,y,σ)=I(x,y)*G(x,y,σ)
(1)
其中,L(x,y,σ)表示不同的尺度空間;I(x,y)表示二維圖像;G(x,y,σ)表示卷積核,見式2:
(2)
其中,σ為尺度空間因子,是高斯正態(tài)分布的標(biāo)準(zhǔn)差。
為得到穩(wěn)定的特征點,Lowe提出建立高斯差分尺度空間,見式3:
D(x,y,σ)=(G(x,y,σ)-G(x,y,σ))*I(x,y)
(3)
其中,D(x,y,σ)為相鄰尺度圖像之差。
在高斯差分空間中,每個點與26個相鄰點進(jìn)行比較,檢測極值點,所有的極值點就構(gòu)成了SIFT候選關(guān)鍵點。
為保證SIFT的旋轉(zhuǎn)不變性,SIFT算法計算每個特征點的主方向,SIFT算法主方向利用關(guān)鍵點鄰域內(nèi)像素的梯度方向分布特性得到。計算主方向后,將坐標(biāo)軸旋轉(zhuǎn)到特征點主方向,然后以特征點為中心取16*16大小鄰域,并將該鄰域劃分為4*4的子區(qū)域,每個區(qū)域統(tǒng)計8個方向的直方圖,最終得到128維的SIFT特征向量。
特征匹配是指在找出圖像特征點之后,找到待匹配圖像中最相似的特征點進(jìn)行匹配。目前主流的匹配方法包括暴力匹配、FLANN匹配、交叉驗證等。為了提高匹配準(zhǔn)確度以及匹配效率,文中采用KNN算法進(jìn)行特征匹配,并利用最優(yōu)節(jié)點優(yōu)先搜索算法[15]進(jìn)行最近鄰特征搜索,該算法是KD樹算法的改進(jìn),可以有效減少高維數(shù)據(jù)的匹配時間,提高匹配效率。在特征點相似性比較算法上,KNN算法通過特征點的最近鄰與次近鄰特征向量的歐氏距離比來確定匹配點對,對于距離比小于閾值σ,認(rèn)為該特征點對匹配,反之為匹配失敗。實驗中閾值取0.6。
采用KNN算法后,仍然存在一定數(shù)量的錯誤匹配,為更好地濾除錯誤的匹配點對,提高匹配準(zhǔn)確度,文中進(jìn)一步采用RANSAC[16-17]方法進(jìn)行錯誤特征匹配的過濾。RANSAC是一種概率模型方法,其通過多次隨機(jī)抽樣,并對參數(shù)進(jìn)行評估,利用評估結(jié)果將樣本分為內(nèi)點和外點,內(nèi)點即在誤差范圍內(nèi)的點給予保留,外點則誤差較大,認(rèn)為是匹配錯誤的點對,進(jìn)行刪除。經(jīng)過RANSAC方法過濾后,特征點匹配的準(zhǔn)確性有較大提升。
在特征匹配之后,便可以利用匹配點對計算出相應(yīng)的透視變換矩陣,將匹配的圖像變換到相同的坐標(biāo)系,實現(xiàn)圖像匹配,進(jìn)而實現(xiàn)標(biāo)線的破損檢測。但在實驗中發(fā)現(xiàn),由于待檢測圖像與模板圖像拍攝時間不同,公路兩側(cè)的植物會因為風(fēng)、季節(jié)等因素發(fā)生一定的變換,對特征點的檢測產(chǎn)生一定的影響,導(dǎo)致圖像匹配之后出現(xiàn)一定程度的畸變。為解決該問題,文中提出一種分區(qū)域特征匹配融合算法。
為驗證兩幅圖像的匹配程度,將變換到相同坐標(biāo)系下的圖像利用模板匹配[18]算法進(jìn)行匹配準(zhǔn)確度檢測。模板匹配算法,利用模板在搜索圖上平移,通過對兩幅圖像進(jìn)行逐像素比較,并根據(jù)像素差值來判斷兩幅圖像的相似性。文中選取已標(biāo)定模板圖像作為模板,待檢測圖像作為搜索圖像,圖像相似性表示見式4:
(4)
為保證較高的匹配效果,文中搜索圖平移范圍設(shè)置為上下左右各200個像素。圖像相似度計算方法為,首先利用模板匹配算法得到匹配結(jié)果,將匹配結(jié)果歸一化到0-1得到歸一化的模板匹配矩陣,在模板匹配矩陣中找到極值點,然后利用周圍像素值分布判斷是否匹配成功,由于匹配成功后,極值點以外點均會小于極值點,匹配矩陣中間會形成亮斑。如果匹配成功,則該極值點對應(yīng)的值作為該圖像匹配的準(zhǔn)確度。
根據(jù)透視變換原理[19],只需兩幅圖像的4對匹配點便可以計算出透視變換矩陣,透視變換公式見式5:
(5)
其中,a,b,c,d,e,f分別為利用4個點對求取的透視變換參數(shù);[x0,y0]T為原坐標(biāo),[x,y]T為變換后的坐標(biāo)。
為提高匹配的準(zhǔn)確度,減少由于綠色植物等特征點變化產(chǎn)生的圖像匹配錯誤,文中提出一種多區(qū)域特征匹配融合算法。該算法選取待檢測圖像的4個頂點以及其在模板圖像上的4個對應(yīng)匹配點作為透視變換的計算點。
首先對圖像進(jìn)行多區(qū)域劃分,劃分后可將4個頂點分別劃分在不同區(qū)域,簡單的劃分方式如:左邊區(qū)域1/2以及右邊區(qū)域1/2、左邊區(qū)域2/3以及右邊區(qū)域2/3等。然后針對每一種劃分方式,分別對不同區(qū)域進(jìn)行特征提取與匹配,計算出不同的透視變換矩陣,進(jìn)而計算出4個頂點所對應(yīng)的匹配點,利用由不同變換矩陣計算出的4個匹配點重新求出新的透視變換矩陣進(jìn)行整張圖像匹配。最后對多種劃分方式,根據(jù)圖像匹配后的匹配度,選取最佳的匹配結(jié)果,作為這張圖像的匹配結(jié)果。具體算法描述如下:
算法1:多區(qū)域特征匹配融合算法。
Step1:采用多種方式對圖像進(jìn)行劃分,實驗選取劃分方式分別為:(1)不劃分;(2)圖像左右各1/2;(3)圖像左邊2/3與右邊2/3部分。
Step2:利用上述特征匹配算法,對Step1中每種劃分方式的各個區(qū)域分別進(jìn)行特征檢測與匹配。
Step3:對每個區(qū)域分別計算透視變換矩陣,根據(jù)4個頂點所在的區(qū)域,利用不同的透視變換矩陣分別求取4個頂點的對應(yīng)點。計算方式為式6:
(6)
Step4:利用Step3計算得到的4個頂點以及匹配后的對應(yīng)點,重新計算透視變換矩陣,對圖像進(jìn)行匹配,計算方式為式7:
(7)
其中,Perspective表示計算透視變換矩陣。
Step5:對不同的劃分方式分別執(zhí)行Step2~Step5,得到每種劃分的匹配結(jié)果,并對每種劃分的匹配結(jié)果進(jìn)行匹配度檢測,找到最佳匹配,作為圖像的最終匹配結(jié)果。
實驗通過無人機(jī)定航線飛行方式[20-21]對多條公路圖像,分別在不同時間采集相同位置圖像,定航線飛行方式可以較好地保證兩次拍攝的圖像差別不大,從而有效提高圖像匹配效率。
實驗首先針對存在匹配畸變的圖像測試分區(qū)域特征匹配算法的效果,驗證算法的有效性。匹配矯正效果如圖1所示。結(jié)果證明,文中算法可以有效矯正由于匹配錯誤造成的圖像畸變,提高匹配準(zhǔn)確率。
圖1 實驗圖像
另外,文中測試采用不同區(qū)域劃分方式的算法準(zhǔn)確度,表1中序號1~4為采用不同區(qū)域劃分的匹配結(jié)果。表中分別采用的是全區(qū)域匹配、圖像左右1/2、圖像左右2/3以及將前面結(jié)合并選取最佳的匹配方式。可以發(fā)現(xiàn)只使用一種劃分方式匹配準(zhǔn)確度相差不大,但是將多種劃分算法融合后,準(zhǔn)確率有了較大提升,使用分區(qū)域特征匹配融合算法,對于提高匹配的準(zhǔn)確度有明顯效果。
表1 采用不同區(qū)域劃分的匹配結(jié)果
另外,分別對比了使用不同檢測算子對匹配準(zhǔn)確率的影響。分別選取SIFT算子、SURF算子、ORB算子進(jìn)行圖像匹配測試實驗,結(jié)果見表1中序號5-7。根據(jù)對比結(jié)果可以證明,SIFT算子的檢測精度比SURF以及ORB算子的匹配準(zhǔn)確度高,故文中算法選取SIFT特征可以達(dá)到最好的匹配效果。
在進(jìn)行圖像匹配之后,便可以根據(jù)模板圖像以及標(biāo)線標(biāo)注圖像進(jìn)行破損標(biāo)線檢測。模板圖像以及標(biāo)線標(biāo)注圖像如圖2所示,其中左圖為模板圖像,右圖為模板圖像對應(yīng)的標(biāo)線標(biāo)注圖像,由于圖像較大,這里只顯示局部圖像。
圖2 模板圖像(左)和標(biāo)線標(biāo)注圖像(右)
由于拍攝的時間不同以及光照等的影響,文中采用局部閾值分割算法作為標(biāo)線的閾值分割算法,并且為防止匹配后圖像并未完全重合,而存在較小的偏移,將每個標(biāo)線模板區(qū)域候選框放大20%,并采用模板匹配方法進(jìn)行破損度的計算。具體破損檢測算法如下:
算法2:破損標(biāo)線檢測算法。
Step1:對每個標(biāo)線,提取模板標(biāo)注圖像中各標(biāo)線區(qū)域的外接矩形,并提取每個標(biāo)線模板圖像。
Step2:將外接矩形長寬各放大20%,提取待檢測圖像中對應(yīng)位置區(qū)域作為檢測破損標(biāo)線的候選區(qū)域。
Step3:對候選區(qū)域,利用大津閾值方法進(jìn)行閾值分割處理,得到待檢測二值圖像。
Step4:利用提取的標(biāo)線模板圖像在待檢測圖上平移,通過對兩幅圖像進(jìn)行逐像素比較,找到差值最小的值,作為當(dāng)前標(biāo)線的破損面積。
Step5:破損面積比例大于閾值σ標(biāo)記為破損標(biāo)線,σ為需要檢測的破損比例。
文中算法的檢測結(jié)果如圖3所示,這里只顯示局部圖像??梢钥闯?,利用模板匹配算法,可以有效減少由于匹配后沒有完全重合而帶來的破損檢測錯誤情況,提高標(biāo)線破損比例的檢測精度以及算法的適用性。
圖3 破損標(biāo)線檢測結(jié)果
本次實驗的測試數(shù)據(jù)采用無人機(jī)定航線飛行方式,分路段采集多條公路圖像,圖像大小為4 000*3 000像素。
為評估算法的有效性和適用性,分別對不同路段測試算法的精度。并且為驗證分區(qū)域特征匹配算法的有效性,對分區(qū)域融合算法前后的破損標(biāo)線檢測精度進(jìn)行對比。選取準(zhǔn)確率以及召回率作為評估算法的檢測精度指標(biāo),公式如下:
(8)
(9)
其中,P表示準(zhǔn)確率;R表示召回率;TP表示真實情況為正例并且預(yù)測結(jié)果也為正例;FN表示真實情況為正例并且預(yù)測結(jié)果為反例;FP表示真實情況為反例預(yù)測結(jié)果為正例;TN表示真實情況為反例預(yù)測結(jié)果為反例。
首先利用文中算法對多條公路進(jìn)行破損標(biāo)線檢測,結(jié)果見表2。由表2可以看出,文中算法的平均檢測準(zhǔn)確率可以達(dá)到96%以上,召回率平均可以達(dá)到97%左右。對漏檢圖像進(jìn)行分析,主要原因為圖像匹配時出現(xiàn)錯誤,導(dǎo)致該圖片被跳過。不過這種情況較少,算法整體準(zhǔn)確度較高。
表2 不同公路破損標(biāo)線檢測精度
同時,對分區(qū)域特征匹配算法使用前后的破損標(biāo)線檢測精度進(jìn)行對比,結(jié)果見表3。由表3可以發(fā)現(xiàn),在未使用分區(qū)域融合特征匹配前,圖像匹配錯誤率較高,導(dǎo)致標(biāo)線檢測召回率偏低,而使用之后,召回率有了明顯的提高。這是因為,當(dāng)匹配錯誤被糾正后,破損標(biāo)線可以正常檢測,進(jìn)而提高了檢測精度。
表3 使用分區(qū)域特征匹配融合算法前后精度對比
綜上分析,文中算法可以有效檢測出破損標(biāo)線,平均檢測精度可以達(dá)到95%以上,并且使用分區(qū)域融合算法可以有效提高圖像匹配準(zhǔn)確度,進(jìn)而提高破損標(biāo)線的檢測精度。
文中研究了一種基于無人機(jī)航拍圖像匹配的破損標(biāo)線檢測方法。該方法利用無人機(jī)航拍公路圖像,自動檢測公路破損標(biāo)線,提高標(biāo)線檢測效率。為了提高圖像匹配的準(zhǔn)確度,提出了一種分區(qū)域融合特征匹配算法。該算法可以有效提高圖像匹配的準(zhǔn)確度,減少匹配過程中發(fā)生的圖像畸變,進(jìn)而提高破損標(biāo)線的檢測精度。雖然該算法可以有效提高圖像的匹配效果,但是仍然存在發(fā)生輕微畸變的可能,進(jìn)而帶來標(biāo)線的錯位,影響檢測效果。因此,下一步的工作是進(jìn)一步提高匹配的效果以及速度,同時針對公路標(biāo)線做匹配的優(yōu)化,使公路的匹配更加準(zhǔn)確;另外,針對公路車輛的干擾,造成的公路標(biāo)線破損檢測錯誤也是下一步工作的重點。