王詩宇, 林 滸, 孫一蘭, 尹震宇
?
一種改進的Canny算子在機器人視覺系統(tǒng)中的應(yīng)用①
王詩宇1,2, 林 滸1, 孫一蘭3, 尹震宇1
1(中國科學(xué)院沈陽計算技術(shù)研究所, 沈陽 110168)2(中國科學(xué)院大學(xué), 北京 100049)3(沈陽高精數(shù)控技術(shù)有限公司, 沈陽 110168)
在對傳統(tǒng)Canny邊緣檢測算子深入分析的基礎(chǔ)上, 利用統(tǒng)計原理研究和分析圖像灰度值數(shù)據(jù), 提出一種改進型Canny算子. 與傳統(tǒng)的Canny邊緣檢測算子相比, 改進型的Canny算子將邊緣點鄰域內(nèi)灰度相似的像素點的灰度平均值代替原灰度值, 并引進一種自適應(yīng)的閾值確定方法, 根據(jù)灰度值信息確定高低閾值, 在保持邊緣提取準(zhǔn)確性的同時增加了雙閾值設(shè)置的自適應(yīng)性. 最后將改進型的Canny算子應(yīng)用于工業(yè)機器人視覺系統(tǒng)中, 并與傳統(tǒng)的Canny算子的實驗結(jié)果進行比對分析. 實驗結(jié)果表明, 改進型的Canny算子更好的權(quán)衡了噪聲和邊緣之間的關(guān)系, 對待測物體的邊緣提取效果更好.
機器人視覺; 邊緣檢測; Canny算子
圖像的邊緣指的是圖像中灰度值有突變的地方, 是待測工件與背景圖樣的分界線. 邊緣的獲取是機器人視覺系統(tǒng)中的一個重要環(huán)節(jié). 圖像的邊緣包含了待測工件的大量信息, 是圖像最基本的特征之一. 邊緣提取的效果直接關(guān)系到后續(xù)圖像處理中的擬合、分類和識別過程. 在工程應(yīng)用中, 圖像的邊緣也常被作為人們檢測工件缺陷、定義工件尺寸以及定位工件的識別依據(jù). 因此準(zhǔn)確提取工件邊緣信息對于整個視覺系統(tǒng)來說至關(guān)重要[1,2].
Canny邊緣檢測算子[3]是John F. Canny于1986年提出的一個多級邊緣檢測算子. 更為重要的是, Canny創(chuàng)立了邊緣檢測計算理論來解釋Canny算子的工作流程. Canny算子首次建立了邊緣檢測的數(shù)學(xué)模型, 將圖像的邊緣檢測轉(zhuǎn)化為檢測單位函數(shù)極大值問題, 并依據(jù)好的邊緣檢測算子應(yīng)有的指標(biāo)提出來判定邊緣檢測算子的三個準(zhǔn)則. 因此, Canny算子具有高信噪比和高檢測精度等優(yōu)點, 在工程實踐中被廣泛的應(yīng)用. 但是, Canny算子依然存在一定的不足之處, 由于經(jīng)典的Canny算子選用高斯濾波器來對圖像進行平滑處理, 其平滑參數(shù)的選取對濾波效果起到了決定性的影響. 除此之外, 雖然經(jīng)典的Canny算子采用高低兩個閾值來提取邊緣, 相比于單閾值的方式雖然更加靈活, 但依然存在閾值分割的共性問題.
在傳統(tǒng)Canny算子的基礎(chǔ)上, 本文從圖像中邊緣處灰度值近似度角度入手, 引入灰度權(quán)重參數(shù)σ, 有效的權(quán)衡了噪聲和邊緣之間的關(guān)系. 同時將最大類間方差法引入Canny算子, 使其在邊緣連接環(huán)節(jié)中的閾值設(shè)置上有較好的自適應(yīng)性. 最后將其運用到機器人視覺系統(tǒng)中, 可以精確地提取目標(biāo)邊緣, 為后續(xù)的定位、分揀匹配等過程提供有價值的信息.
通??梢詫⑦吘墮z測的算法分為兩類, 分別為基于查找的算法和基于零穿越的算法, 除此之外還有統(tǒng)計判別法以及接下來我們要介紹的Canny邊緣檢測算法.
2.1 三個評判準(zhǔn)則
Canny算子是一種基于優(yōu)化思想的方法, 其目標(biāo)是找到一個最優(yōu)的邊緣檢測算法, 因此它提出了三個評判邊緣檢測性能的準(zhǔn)則[3]:
1) 低錯誤率準(zhǔn)則, 就是要盡可能的標(biāo)識出實際邊緣, 同時減少噪聲產(chǎn)生的誤報, Canny算子認(rèn)為當(dāng)信噪比達(dá)到最高時, 邊緣提取的質(zhì)量最優(yōu). 信息處理中信噪比常用來表示, Canny算子中的()定義如下:
其中()為高斯濾波器,H為濾波器處理后的響應(yīng)函數(shù),H為對應(yīng)的噪聲響應(yīng)函數(shù).
2) 高定位性準(zhǔn)則, 就是標(biāo)識出的邊緣要與圖像中的邊緣盡可能的接近, 即檢測出的邊緣與實際邊緣點的距離最小.
3) 單邊緣響應(yīng)準(zhǔn)則, 即圖像中的邊緣只能被標(biāo)記一次, 并且要最大限度地抑制虛假邊緣的出現(xiàn).
2.2 Canny算子的實現(xiàn)
Canny算子本身是一個多階段的優(yōu)化算子, 因此相比于其他經(jīng)典的梯度邊緣檢測算子的效果都要好, Canny算子的流程如圖1所示[4].
圖1 Canny算子流程圖
Canny算子屬于先平滑后微分的方式. 為了降低計算強度, 提高圖像處理速度, 將要使用的二維高斯函數(shù)(,)分解為兩個一維高斯函數(shù)()和(), 分別對原始圖像的方向和方向進行卷積操作, 得到平滑后的圖像(,).
Canny算子在梯度矢量的計算上不同于傳統(tǒng)的邊緣提取算法, Canny算子采用2×2偏導(dǎo)的有限差分計算平滑后的圖像.
(6)
E和E是濾波器沿和方向作用的結(jié)果, 梯度幅值(,)和梯度方向(,)為:
(7)
(8)
在計算過梯度的幅值和方向后, 要對梯度向量進行“非極大值抑制”, 目的是找到圖像中所有像素點的局部極大值, Canny算子采用3×3口對(,)的8個鄰域方向的所有元素進行梯度插值, 將(,)與梯度方向上的插值結(jié)果進行比較, 如果小于梯度插值結(jié)果則將(,)對應(yīng)的邊緣標(biāo)志位賦0值.
傳統(tǒng)的梯度邊緣檢測算法使用單閾值分割的方式, 不能保證誤檢率與錯檢率同時最小, 而且提取邊緣的連續(xù)上也有一定缺陷, Canny算子采取雙閾值分割, 對圖像的邊緣灰度信息進行統(tǒng)計分析, 將高于高閾值的像素全部提取保留為邊緣像素, 低于低閾值的像素直接排除, 對于介于高低閾值之間的像素點, 僅僅當(dāng)像素與高于高閾值點的像素連接在一起時才會被保留為邊緣像素.
2.3 Canny算子的缺陷分析
經(jīng)典的Canny算子在對圖像進行處理之前使用高斯濾波器對圖像進行平滑處理, 高斯濾波[5-7]是一種線性平滑濾波, 二維高斯濾波器如圖2所示.
圖2 高斯濾波器
由圖2可知, 參數(shù)的選取影響著高斯濾波器的寬度, 因此也決定著圖像的平滑程度. 當(dāng)選取的參數(shù)較大時, 雖然提高了高斯濾波器的降噪效果, 但也會明顯的模糊圖像的邊緣, 對高頻細(xì)節(jié)的保護并不明顯, 增加了錯檢率. 而選取較小的參數(shù)時, 對噪音的抑制效果便有所降低, 同時也會降低邊緣的定位精度[8,9].
除此之外, Canny算子的雙閾值對邊緣的提取更加靈活. 對于一幅圖像, 高閾值負(fù)責(zé)排除因噪聲產(chǎn)生的虛假邊緣, 低閾值則作為判斷邊緣是否連接的判別條件. 高閾值設(shè)置的較低無法有效的去除虛假邊緣, 過高雖然可以濾除多數(shù)的假邊緣, 但也會使邊緣丟失更多的信息. 低閾值設(shè)置的較低雖然能夠使連接較多的邊緣, 但也會產(chǎn)生較多的虛假邊緣, 過高則會使圖像包含的邊緣信息減少, 造成圖像邊緣的不連續(xù).
高斯濾波器的平滑參數(shù)以及Canny算子高低雙閾值的選擇很難做到相互兼顧, 同時, 一組固定的參數(shù)也很難滿足所有的圖像. 這也成為了傳統(tǒng)Canny算子中的一種適應(yīng)性缺陷.
針對經(jīng)典Canny算子中的不足, 我們采用統(tǒng)計理論將圖像邊緣與其他像素分離開來, 因為圖像的邊緣是指圖像中灰度值顯著變化的區(qū)域, 因此我們根據(jù)直方圖統(tǒng)計法就可以大體確定圖像的邊緣信息. 這樣, 在圖像邊緣處, 我們就可以利用灰度值權(quán)重來代替高斯濾波中的距離權(quán)重來去除圖像噪聲, 而在非邊緣處, 我們繼續(xù)運用去噪效果較好的高斯濾波器, 這樣就可以在較為準(zhǔn)確的保護圖像邊緣信息的同時, 達(dá)到了圖像平滑的效果. 此外, 我們將一種自適應(yīng)的閾值確定方法引入到Canny算子中, 使Canny算子在面對圖像變化的情況下依然能夠獲得理想的效果, 排除因閾值設(shè)置的不合理而造成的虛假邊緣或邊緣不連續(xù)等問題.
3.1 圖像的灰度直方圖統(tǒng)計
直方圖廣泛運用于很多的計算機視覺應(yīng)用中, 簡單來說, 直方圖就是對圖像數(shù)據(jù)進行統(tǒng)計的一種方法. 從數(shù)學(xué)的角度來說, 直方圖描述圖像中各個灰度級的統(tǒng)計特征, 可以將它看作是圖像灰度值得統(tǒng)計函數(shù), 統(tǒng)計采集到的圖像中各個灰度級的出現(xiàn)次數(shù)或頻率.
灰度直方圖是一個二維圖, 橫坐標(biāo)為圖像中各個像素點的灰度級別, 縱坐標(biāo)表示具有各個灰度級別的像素在圖像中出現(xiàn)的次數(shù)或概率, 這樣, 通過直方圖我們就可以大致確定出圖像邊緣周圍的灰度值分布. 如圖3中所示為實驗采集到的圖片的灰度圖和其灰度值統(tǒng)計, 我們根據(jù)直方圖中波谷和拐點的變化關(guān)系來獲取邊緣處的灰度信息.
3.2 基于灰度值的邊緣平滑原理
在圖像邊緣檢測中有兩個關(guān)鍵點[10], 一是要有效的減少噪聲的影響, 二是要盡量精確確定邊緣的位置, 為了同時滿足上述兩點要求, 在圖像平滑階段就需要采用不同的濾波方式. 在圖像變化平緩的區(qū)域, 一定鄰域內(nèi)的像素灰度值非常接近, 因此經(jīng)典的Canny算子中的高斯濾波器可以有效的去除噪聲, 作為低通濾波器來消除由噪聲產(chǎn)生的相關(guān)度較弱的像素; 在圖像變化劇烈的區(qū)域, 我們將邊緣點鄰域內(nèi)灰度相似的像素點的灰度平均值代替原灰度值, 這樣就使得圖像邊緣不模糊受損, 這就保證了圖像在高效高斯平滑的同時又確保了對圖像邊緣的保護[11,12].
算法改進后, 圖像輸出像素的值依賴于像素值的加權(quán)值組合:
加權(quán)系數(shù)(,,,)取決于定義域核和值域核的組合:
其中, (,)表示當(dāng)前的像素點, (,)表示鄰域點,(?)表示對應(yīng)像素點的灰度值,σ是空域濾波器標(biāo)準(zhǔn)差,σ是灰度濾波器標(biāo)準(zhǔn)差.
在對圖像卷積的過程中, 我們根據(jù)直方圖來設(shè)置幾個區(qū)域閾值, 在平滑的非邊緣區(qū)域我們運用經(jīng)典Canny算子中的高斯濾器對圖像進行平滑處理, 在邊緣附近的區(qū)域, 我們則采用將邊緣點鄰域內(nèi)灰度相似的像素點的灰度平均值代替原灰度值的方法, 來去除邊緣附近的噪聲. 這樣就克服了經(jīng)典Canny算子中高斯平滑過程對于圖像邊緣信息的破壞.
3.3 一種自適應(yīng)的閾值設(shè)置方法
這里我們可以將一種自適應(yīng)的閾值確定方法, 即最大類間方差法引進到Canny算子中. 最大類間差法的原理就是依據(jù)圖像中背景和目標(biāo)的灰度特性差別, 當(dāng)它們的差別越大時, 其類間方差也越大, 進而通過求取類間方差的最大值來獲取使背景和目標(biāo)兩部分錯分的概率最小的閾值[13,14].
如圖3中的(b)圖所示, 雙峰分別代表了圖像中目標(biāo)和背景兩部分灰度的分布情況. 這里假設(shè)分割圖像目標(biāo)和背景的閾值為, 圖像中目標(biāo)像素和背景像素的數(shù)量分別為1和2, 像素總數(shù)為1和2之和; 目標(biāo)像素和背景像素所占比重分別為1和2, 平均灰度值分別為為1和2, 圖像總的平均灰度值為, 因此它們滿足如下關(guān)系:
最后通過法遍歷求出使最大的閾值.對應(yīng)灰度圖像雙峰之間的谷底部分的灰度值, 將此時的作為滯后閾值的高閾值, 再通過一定比例系數(shù)求取出滯后閾值的低閾值. 為了精確的檢測到圖像的邊緣信息, 排除虛假邊緣的影響, 并保證圖像邊緣的連續(xù)性, 我們將在對梯度進行非極大值抑制后引入上述方法. 這樣就使得Canny算子可以根據(jù)圖像的變化自適應(yīng)的確定合適的高低閾值.
3.4 改進后的Canny算子流程
改進后的Canny算子如圖4所示. 首先通過分析圖像的灰度分布情況來判斷當(dāng)前點大致的區(qū)域信息, 若在邊緣附近, 則將邊緣點鄰域內(nèi)灰度相似的像素點的灰度平均值代替原灰度值; 在圖像變化平緩的區(qū)域, 采用高斯濾波器對圖像進行噪聲的抑制. 最后為了準(zhǔn)確的連接圖像的邊緣, 在對圖像進行非極大值抑制后使用最大類間差法來確定最優(yōu)的高低閾值, 最后檢測到連續(xù)的且含有較少假邊緣的圖像邊緣.
圖4 改進后的Canny算子流程圖
改進后的Canny算子克服了經(jīng)典Canny算子中對圖像邊緣信息完整性以及對滯后高低閾值選取上的局限性, 兼顧了整個邊緣提取過程中邊緣完整性、假邊緣以及邊緣連續(xù)性等主要方面.
實際的機器人視覺系統(tǒng)中, 邊緣的提取在工件識別、檢測和定位的過程中都有廣泛的應(yīng)用, 我們列舉以下兩種不同材質(zhì)的實驗工件, 結(jié)合OpenCV開源視覺庫[15]來進行仿真實驗.
在物流分揀領(lǐng)域, 經(jīng)常根據(jù)不同的品牌對商品進行分類, 這就需要視覺系統(tǒng)可以有效的識別出商品的標(biāo)識, 這里以某種飲品的瓶蓋為待測目標(biāo), 實驗結(jié)果如圖6所示.
(a) 原始圖像 (b) 經(jīng)典Canny算子處理(較大平滑參數(shù))
(c) 經(jīng)典Canny算子 (d)改進Canny算子處理(較小平滑參數(shù))
圖5 瓶蓋實驗效果
圖5中(a)圖是相機獲取到的原始圖像, (b)和(c)是使用經(jīng)典Canny算子處理后的效果, 但是分別使用了不同的平滑參數(shù), 其中(b)圖使用了較大的平滑參數(shù), 從圖中也可以看出, (b)圖的去噪效果最好, 但是犧牲了圖像部分的邊緣信息. (c)圖與(b)圖相反, 將平滑參數(shù)調(diào)小后得到如圖所示的處理效果, 可以看到雖然獲取了圖像完整的邊緣信息, 但是對噪聲的抑制作用并不十分理想. (d)圖是采用改進后的Canny算子處理后的效果圖, 通過判斷對應(yīng)點像素灰度值所處的閾值范圍來選取不同的處理方式, 使得要獲取的圖像邊緣被較為完整的提取出來, 同時對噪聲的抑制效果以及邊緣的連續(xù)性也比較理想.
邊緣的提取也經(jīng)常被應(yīng)用于電子元器件的檢測, 通過視覺技術(shù)可以判定PCB電路板上相應(yīng)芯片等器件的位置, 電路的布線以及芯片型號等信息. 為了獲取更清晰的處理效果, 圖6截取了一整塊PCB電路板上的部分圖像.
(a) 原始圖像 (b) 經(jīng)典Canny算子處理(較大平滑參數(shù))
(c) 經(jīng)典Canny算子 (d)改進Canny算子處理(較小平滑參數(shù))
圖6 PCB板實驗效果
與上一個實例相同, (a)圖是相機獲取到的原始圖像, (b)和(c)分別是經(jīng)典Canny算子采用較大的平滑參數(shù)和較小的平滑參數(shù)處理后的效果圖, (d)圖則是采用改進后的Canny算子處理過的結(jié)果. (b)圖中雖然對噪聲的抑制取得了不錯的效果, 但是從圖中可以看出芯片邊緣的電路排線受到了較大程度的模糊, (c)圖的邊緣信息雖然得到了較完整的保留, 但是在噪聲抑制的環(huán)節(jié)表現(xiàn)并不夠理想, (d)圖采用改進后的算法取得了更好的效果.
改進后的Canny算子主要思想是通過分析采集到的圖像的灰度值關(guān)系來進一步確定對應(yīng)像素點所處的區(qū)域, 進而采用不同的濾波方式來對圖像進行平滑處理, 并在對梯度進行非極大值抑制后通過引入最大類間方差法, 使Canny算子能夠合理的設(shè)置滯后閾值. 這樣可以保證在濾波階段既能有效的抑制噪聲, 又能很好的保護圖像邊緣的信息. 傳統(tǒng)的高斯濾波僅考慮了像素間空間位置上的關(guān)系, 而灰度值的變化往往比像素空間位置關(guān)系更能影響圖像的邊緣細(xì)節(jié), 因此高斯濾波必須要在噪聲和邊緣之間做出選擇. 而本文通過統(tǒng)計方法對圖像中的邊緣信息進行了判斷, 并引入了基于像素間相似程度考量的權(quán)重系數(shù), 保持了原高斯濾波器的去噪優(yōu)勢, 也保護了圖像的邊緣細(xì)節(jié), 形成了一種結(jié)合空間鄰近度和像素值相近度的處理方法, 同時引入最大類間方差法來確定Canny算子的高低閾值, 使得邊緣有更好的連續(xù)性, 并且排除了多數(shù)的假邊緣.
本文從理論入手, 在深入研究傳統(tǒng)Canny邊緣檢測算子的基礎(chǔ)上, 通過統(tǒng)計圖像灰度值分布情況來分離邊緣像素, 引入基于鄰域間像素灰度值的權(quán)重參數(shù)σ, 從而在濾波環(huán)節(jié)構(gòu)成兩種互補的濾波方式, 并在對梯度進行非極大值抑制后引入最大類間方差法設(shè)置高低閾值, 使Canny算子在面對圖像變化的情況下具有自適應(yīng)性. 改進后的Canny算子克服了經(jīng)典Canny算子在邊緣完整性、連續(xù)性以及假邊緣排除等方面的束縛. 在此基礎(chǔ)上, 進行實驗仿真, 通過對比經(jīng)典Canny算子的處理效果, 改進型的算子取得了良好的實驗效果, 在圖像處理過程中更具靈活性, 可以在許多依托于工業(yè)機器人視覺系統(tǒng)的領(lǐng)域內(nèi)廣泛應(yīng)用, 具有良好的實際應(yīng)用價值.
1 張少偉.基于機器視覺的邊緣檢測算法研究與應(yīng)用[碩士學(xué)位論文].上海:上海交通大學(xué),2013.
2 曾俊.圖像邊緣檢測技術(shù)及其應(yīng)用研究[博士學(xué)位論文].武漢:華中科技大學(xué),2011.
3 Canny J. A computational approach to edge detection. IEEE Trans. on Pattern Analysis & Machine Intelligence, 1986, PAMI-8(6): 679–698.
4 王小俊,劉旭敏,關(guān)永.基于改進Canny算子的圖像邊緣檢測算法.計算機工程,2012,38(14):196–198.
5 張錚.數(shù)字圖像處理與機器視覺.北京:人民郵電出版社, 2014.
6 Marr D, Hildreth E. Theory of edge detection. Royal Society of London Proceedings, 1980, 207(1167): 187–217.
7 王蓉.圖像增強算法實現(xiàn)[碩士學(xué)位論文].荊州:長江大學(xué), 2014.
8 王貴彬.基于Canny算子與形態(tài)學(xué)融合的邊緣檢測算法[碩士學(xué)位論文].哈爾濱:哈爾濱理工大學(xué),2014.
9 許宏科,秦嚴(yán)嚴(yán),陳會茹.一種基于改進Canny的邊緣檢測算法.紅外技術(shù),2014,(3):210–214.
10 Furukawa Y, Ponce J. Carved visual hulls for image-based modeling. International Journal of Computer Vision, 2009, 81(1): 53–67.
11 楊學(xué)志,徐勇,方靜,等.結(jié)合區(qū)域分割和雙邊濾波的圖像去噪新算法.中國圖象圖形學(xué)報,2012,17(1).
12 王波.濾波算法在圖像增強中的應(yīng)用研究.計算機仿真, 2013,30(3):364–367.
13 李寶順,王瑋,包亞萍,等.一種鄰域均值加權(quán)最大類間方差的閾值分割法.小型微型計算機系統(tǒng),2014,(6):1368–1372.
14 賀建峰,符增,相艷,等.基于灰度空間相關(guān)性最大類間方差的圖像分割.計算機工程,2015,41(11):280–286.
15 毛星云,冷雪飛.OpenCV3編程入門.北京:電子工業(yè)出版社, 2015.
Improved Canny Operator in the Application of Robot Vision System
WANG Shi-Yu1,2, LIN Hu1, SUN Yi-Lan3, YIN Zhen-Yu1
1(Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168, China)2(University of Chinese Academy of Sciences, Beijing 100049, China)3(Shenyang Golding NC Tech. Co., Ltd., Shenyang 110168, China)
An improved Canny operator is proposed through researching and analyzing the data of the grey image with statistical principle on the basis of deep analysis of traditional Canny edge detection operator. Compared with the traditional Canny edge detection operator, improved Canny operator replaces the original grey value of pixels with average value of similar gray level around the edge points and introduces a kind of adaptive method to determine the high and low threshold value. Applying the improved Canny operators to the robot vision system. The experimental results show that the improved Canny operator can balance the relationship between noise and edge information and extract the edges of the measured object better over the traditional Canny operator.
robot vision; edge detection; Canny operator
國家科技重大專項(2014ZX04009031)
2016-06-17;
2016-07-25
[10.15888/j.cnki.csa.005635]