李浩誼 馬春庭
(中國(guó)人民解放軍陸軍工程大學(xué)石家莊校區(qū)火炮工程系 石家莊 050003)
在相機(jī)的標(biāo)定過(guò)程中,需要對(duì)目標(biāo)靶圖像進(jìn)行信息的快速提取,邊緣檢測(cè)是相機(jī)標(biāo)定過(guò)程中的一項(xiàng)重要步驟[1]。最常用的相機(jī)標(biāo)定方法是張正友標(biāo)定法,使用的目標(biāo)靶是單平面棋盤格。但由于噪聲的存在會(huì)使圖像產(chǎn)生光斑、邊緣不連續(xù)等不良影響,容易產(chǎn)生偽邊緣并且增加檢測(cè)時(shí)間,因此,提高邊緣檢測(cè)的準(zhǔn)確性和實(shí)時(shí)性具有十分重要的意義[2]。
目前采用的一階邊緣檢測(cè)算子有Sobel算子、Prewitt算子、Robert算子等,實(shí)時(shí)性較好,但檢測(cè)的邊緣比較粗糙,反映色邊界信息較??;二階邊緣檢測(cè)算子有Canny算子、LOG算子和Laplician算子等,反映的邊界信息包括了許多的細(xì)節(jié)信息,但準(zhǔn)確性不理想,容易受到噪聲的干擾[3]。張宇偉等[4]提出了一種結(jié)合Sobel算子和小波變換的圖像邊緣檢測(cè)方法,但是該方法運(yùn)算量大,實(shí)時(shí)性較低。李俊山等[5]提出了一種改進(jìn)的Canny圖像邊緣檢測(cè)方法,但是該方法對(duì)沖擊噪聲比較敏感,容易檢測(cè)出偽邊緣,導(dǎo)致邊緣的信噪比變小,當(dāng)噪聲密度較大時(shí),容易出現(xiàn)噪聲像素統(tǒng)計(jì)為弱邊緣現(xiàn)象。
圖像的邊緣是灰度值波動(dòng)較大的區(qū)域,局部方差表示數(shù)據(jù)的波動(dòng)程度,因此能夠作為邊緣檢測(cè)的依據(jù)[6]。本文提出一種基于遞歸細(xì)化和局部方差的目標(biāo)靶邊緣快速檢測(cè)。結(jié)果顯示:相比其他常用算法,本文算法能在邊緣檢測(cè)準(zhǔn)確性和實(shí)時(shí)性上均獲得良好性能。
對(duì) σ2(x ,y)進(jìn)行量化處理,量化步階為2-L,并將處理后的σ2(x ,y)稱為圖像的局部方差圖。在局部方差圖中,灰度值大的像素點(diǎn)對(duì)應(yīng)著原圖中的邊緣和噪聲。
根據(jù)式(3),通過(guò)閾值的設(shè)定[7],在局部方差圖中得到二值化圖像。
閾值T的計(jì)算公式如式(4)所示:
圖像的局部方法計(jì)算復(fù)雜,耗時(shí)長(zhǎng),實(shí)用性低,因此,本文利用積分圖像降低計(jì)算局部方差的時(shí)間復(fù)雜度,并采用Otsu方法計(jì)算閾值,顯著地降低時(shí)間復(fù)雜度。
2.2.1 結(jié)合積分圖像的局部方差快速算法
結(jié)合式(1)、(2),得到式(5)
圖像中共M×N個(gè)像素點(diǎn),每個(gè)局部區(qū)域共有k2個(gè)像素點(diǎn),傳統(tǒng)方法的時(shí)間復(fù)雜度為而利用積分圖像計(jì)算局部方差的時(shí)間復(fù)雜度為O(M ×N ),時(shí)間復(fù)雜度明顯減小。
2.2.2 Otsu方法
假定 pr(rq)為局部方差圖中灰度值為rq的像素出現(xiàn)的概率,即:
n為圖像的像素總數(shù),nq為灰度值為rq的像素?cái)?shù)目,L為圖像中所有可能的灰度級(jí)數(shù)。
閾值k使得圖像分成兩類,即C0是一組灰度級(jí)為{0 ,1,2,k-1} 的像素,C1是一組灰度級(jí)為的像素。設(shè)表示閾值為k時(shí)的類間方差,則最佳閾值可以通過(guò)求的最大值而得到,即:
根據(jù)式(8),通過(guò)閾值的設(shè)定,在局部方差圖中得到二值化圖像。
如圖1所示分別利用傳統(tǒng)的基于局部方差的邊緣檢測(cè)算法和基于積分圖像和Otsu方法的局部方差的邊緣快速檢測(cè)算法進(jìn)行邊緣檢測(cè),可以看出兩種算法處理效果基本一致,檢測(cè)出的邊緣效果理想。表1給出了不同邊緣檢測(cè)算法處理不同總像素?cái)?shù)圖像所需時(shí)間,由結(jié)果可以看出,隨著總像素?cái)?shù)的增加,本文算法比傳統(tǒng)的基于局部方差的邊緣檢測(cè)算法更快,所需時(shí)間在一階檢測(cè)算子與二階檢測(cè)算子之間,滿足實(shí)際工作要求。
圖1 傳統(tǒng)的基于局部方差的邊緣檢測(cè)算法與本文算法處理效果
表1 不同邊緣檢測(cè)算法處理不同總像素?cái)?shù)圖像所需時(shí)間(s)
通過(guò)上文算法的邊緣檢測(cè),可以得到強(qiáng)邊緣的位置,即圖1(c)中白色像素點(diǎn)的位置,從而可以在局部方差圖中進(jìn)行強(qiáng)邊緣寬度的計(jì)算[8]。
結(jié)合文獻(xiàn)[9]的方法和本文以圖像局部方差作為邊緣位置定位的依據(jù),定義強(qiáng)邊緣寬度的計(jì)算。
圖2 局部方差圖的一行
對(duì)于豎直方向強(qiáng)邊緣上的某一點(diǎn),在局部方差圖中找到該點(diǎn)水平方向上最接近該點(diǎn)的左右局部方差極值點(diǎn)。這兩極值點(diǎn)可以認(rèn)為是邊緣的起始點(diǎn)和結(jié)束點(diǎn),因而兩極值點(diǎn)位置差即為該點(diǎn)所求得的強(qiáng)邊緣寬度。如圖2所示,PA與PB為檢測(cè)到的強(qiáng)邊緣上的像素點(diǎn),PA1為極大值點(diǎn)的橫坐標(biāo),PA2為極小值點(diǎn)的橫坐標(biāo),則PA所對(duì)應(yīng)的強(qiáng)邊緣寬度為PA1-PA2;PB1為極大值點(diǎn)的橫坐標(biāo),PB2為極小值點(diǎn)的橫坐標(biāo),則PB所對(duì)應(yīng)的強(qiáng)邊緣寬度為PB2-PB1。對(duì)所有豎直方向上的強(qiáng)邊緣點(diǎn)進(jìn)行相同計(jì)算可以得到該方向上強(qiáng)邊緣的所有寬度。
對(duì)于水平方向強(qiáng)邊緣的寬度計(jì)算也是類似,它求取的是邊緣點(diǎn)豎直方向上最接近該點(diǎn)的上下局部方差極值點(diǎn),從而得到水平方向強(qiáng)邊緣的寬度。
由于在棋盤格靶板中,直線為主要的幾何元素,可以認(rèn)為直線的寬度出現(xiàn)的概率是最大的,即在圖3強(qiáng)邊緣寬度-頻數(shù)圖中,峰值部分所對(duì)應(yīng)的強(qiáng)邊緣寬度即為直線寬度。
圖3 強(qiáng)邊緣寬度-頻數(shù)圖
二值化圖像由一系列離散的像素組成,像素值是0或1,顯示的直線會(huì)出現(xiàn)鋸齒形成或臺(tái)階狀的邊緣,如圖4所示。這種用離散量表示連接量所造成的失真效果,稱為走樣[10]。
圖4 二值化圖像中直線走樣
結(jié)合文獻(xiàn)[11],本文設(shè)定直線最小寬度為2個(gè)像素點(diǎn),并提出如下的判斷直線寬度是否滿足條件的判據(jù):若直線在垂直方向和水平方向的強(qiáng)邊緣寬度都不大于直線最小寬度,則認(rèn)為邊緣檢測(cè)符合要求;否則對(duì)原始圖像中強(qiáng)邊緣位置點(diǎn)進(jìn)行下文的遍歷八方向的直線細(xì)化處理。
根據(jù)圖像的相關(guān)性,一個(gè)沒(méi)有受到噪聲污染的像素點(diǎn)一定會(huì)與其周圍某個(gè)鄰域內(nèi)的統(tǒng)計(jì)特性相關(guān),表現(xiàn)在圖像上就是其灰度級(jí)一定會(huì)與其周圍某個(gè)鄰域的灰度級(jí)接近,除非該奇異點(diǎn)出乎意料的表示了有用信息而非噪聲的小概率事件的發(fā)生[12]。若強(qiáng)邊緣寬度不滿足上文的判據(jù),表示邊緣存在噪聲或其他因素導(dǎo)致該處局部方差值過(guò)大,因此對(duì)強(qiáng)邊緣點(diǎn)進(jìn)行下列處理。
圖5 點(diǎn)f(i ,j) 的5×5鄰域矩陣
當(dāng)遍歷八方向法的直線細(xì)化處理完成時(shí),再使用基于積分圖像和Otsu方法的局部方差的邊緣快速檢測(cè)算法對(duì)原圖像進(jìn)行處理,判斷直線寬度是否滿足條件,遞歸循環(huán)直至直線的寬度符合條件。算法流程圖如圖6所示。
為了驗(yàn)證本文算法的性能,設(shè)計(jì)了3個(gè)實(shí)驗(yàn):實(shí)驗(yàn)1為本文算法的處理效果;實(shí)驗(yàn)2為驗(yàn)證本文算法的抗噪能力;實(shí)驗(yàn)3為本文算法的邊緣細(xì)化效果。
仿真實(shí)驗(yàn)在MatlabR2016a環(huán)境下,Intel?Core?i5-6500 CPU 3.20GHz/8.00GB內(nèi)存的機(jī)器上進(jìn)行。
為了驗(yàn)證本文算法的處理效果,選取不同角度下的目標(biāo)靶圖像,分別采用Sobel算法、Canny算法和本文算法對(duì)圖像進(jìn)行邊緣檢測(cè)并進(jìn)行主觀分析和客觀評(píng)價(jià),邊緣檢測(cè)結(jié)果如圖7所示。其中,圖7從上往下分別為目標(biāo)靶圖像的正視圖、斜視圖和旋轉(zhuǎn)圖。
圖6 本文算法流程
圖7 本文算法與常用邊緣檢測(cè)算法對(duì)比
1)主觀分析
觀察圖7,Sobel算法檢測(cè)出的結(jié)果邊緣連續(xù),直線寬度滿足條件,但容易受噪聲的影響,在噪聲影響區(qū)域效果不理想;Canny算法檢測(cè)到的邊緣存在虛假邊緣,直線交點(diǎn)處過(guò)渡不自然;本文算法檢測(cè)到的邊緣連續(xù)較細(xì),準(zhǔn)確性較高,抗噪能力較強(qiáng)。
2)客觀評(píng)價(jià)
為了更客觀地對(duì)圖像邊緣檢測(cè)的結(jié)果進(jìn)行評(píng)價(jià),本文采用了文獻(xiàn)[13]提出來(lái)的邊緣檢測(cè)性能品質(zhì)因數(shù)進(jìn)行評(píng)價(jià),評(píng)價(jià)公式為
其中m是理想狀態(tài)下邊緣點(diǎn)數(shù)目,n是檢測(cè)出的邊緣點(diǎn)數(shù)目,α為比例系數(shù),當(dāng)檢測(cè)出的邊緣點(diǎn)是主邊緣線上的點(diǎn)時(shí),α=1,d(i)表示實(shí)際邊緣與檢測(cè)到的邊緣的距離,F(xiàn)的值在0到1之間,當(dāng)F=1時(shí)是檢測(cè)的理想狀態(tài),其值越大,說(shuō)明邊緣檢測(cè)效果越好,準(zhǔn)確性越好。本文算法與對(duì)比算法得到的品質(zhì)因數(shù)見(jiàn)表2。
表2 各邊緣檢測(cè)算法FOM值
實(shí)驗(yàn)結(jié)果表明,本文算法的FOM值均比其他算法接近1,則本文算法邊緣檢測(cè)效果較好。
為了驗(yàn)證本文算法的抗干擾能力,本文實(shí)驗(yàn)采取具有不同噪聲水平的目標(biāo)靶像進(jìn)行邊緣檢測(cè)并進(jìn)行對(duì)比。噪聲通過(guò)手動(dòng)疊加不同噪聲水平的高斯白噪聲組成,噪聲水平由噪聲的標(biāo)準(zhǔn)差控制,不同噪聲水平的圖像邊緣檢測(cè)結(jié)果如圖8所示。
從圖8可以看出,隨著高斯白噪聲水平的逐漸增加,圖像的污染程度越嚴(yán)重。但是本文算法的邊緣檢測(cè)仍能得到很好的效果,這說(shuō)明本文算法的抗噪能力很好。
圖8 不同高斯噪聲水平下的邊緣檢測(cè)結(jié)果(左邊為帶有噪聲的原圖像,右邊為邊緣檢測(cè)結(jié)果)
為了驗(yàn)證本文算法的邊緣細(xì)化能力,本文實(shí)驗(yàn)采取模糊的目標(biāo)靶圖像進(jìn)行邊緣檢測(cè),記錄遞歸細(xì)化算法的次數(shù)并對(duì)實(shí)驗(yàn)結(jié)果在相同位置進(jìn)行放大和對(duì)比,邊緣檢測(cè)結(jié)果如圖9所示。其中,圖9(a)為模糊圖像,圖9(b)為沒(méi)有進(jìn)行直線細(xì)化處理(n=0)的局部放大圖像,圖9(c)為進(jìn)行了一次直線細(xì)化處理(n=1)的局部放大圖像,圖9(d)為進(jìn)行了兩次直線細(xì)化處理(n=2)的局部放大圖像。
圖9 直線細(xì)化不同次數(shù)的效果對(duì)比
觀察比較圖9(b)、(c)、(d),對(duì)于模糊圖像,檢測(cè)的直線寬度必然增加,隨著細(xì)化次數(shù)的增加,直線的寬度減少,效果顯著。這說(shuō)明本文的直線細(xì)化處理效果明顯,能有效減少檢測(cè)直線的寬度,提高準(zhǔn)確度。
本文通過(guò)積分圖像的特性加快局部方差的計(jì)算時(shí)間,結(jié)合圖像的相關(guān)性利用遞歸循環(huán)的方法細(xì)化邊緣直線,完成目標(biāo)靶的邊緣檢測(cè)。實(shí)驗(yàn)結(jié)果表明,該算法比傳統(tǒng)的基于局部方差的邊緣檢測(cè)算法耗時(shí)小,計(jì)算量大大減少;比常用的一階和二階邊緣檢測(cè)算法效果好,檢測(cè)到的邊緣連續(xù)清晰、邊緣寬度合適。因此本文算法具有較好的準(zhǔn)確性和實(shí)時(shí)性,為以后在亞像素精度上定位直線的研究提供了新的途徑。