黃林彩 王智文 符曉彪 劉美珍
摘? 要:圖像邊緣包含大量信息,提取這些圖像邊緣在圖像處理和目標(biāo)識(shí)別等計(jì)算機(jī)視覺方面有著重要作用。針對(duì)傳統(tǒng)Canny算法在提取圖像邊緣時(shí)存在抗噪能力弱、梯度信息提取不全面造成邊緣缺失等問(wèn)題,提出基于多方向和最佳閾值的Canny算法手勢(shì)圖像邊緣檢測(cè)。采用中值濾波和雙邊濾波作為混合濾波器代替高斯濾波,采用八方向模板的Sobel算子計(jì)算梯度幅值,用迭代法選取最佳閾值檢測(cè)和連接邊緣。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的Canny算法提取的手勢(shì)圖像邊緣自適應(yīng)性強(qiáng),邊緣定位準(zhǔn)確,抗噪性能好,為手勢(shì)識(shí)別提供了保障。
關(guān)鍵詞:圖像邊緣檢測(cè);Canny算法;Sobel算子;混合濾波器;八方向模板;閾值
中圖分類號(hào):TP391.4? ? ? ? ? ?DOI:10.16375/j.cnki.cn45-1395/t.2022.01.011
0? ? 引言
隨著科技進(jìn)步和智能識(shí)別的發(fā)展,人與計(jì)算機(jī)的交互逐漸成為研究熱點(diǎn),如手勢(shì)姿勢(shì)識(shí)別、人體運(yùn)動(dòng)姿勢(shì)識(shí)別、行人走路姿勢(shì)識(shí)別等[1]。動(dòng)作姿勢(shì)有著豐富的語(yǔ)義信息,計(jì)算機(jī)可以通過(guò)傳遞的語(yǔ)義信息做出相應(yīng)的動(dòng)作,以滿足人類的需求,因此,對(duì)于姿勢(shì)的識(shí)別尤為重要[2]。在姿勢(shì)識(shí)別過(guò)程中,姿勢(shì)的邊緣檢測(cè)也是研究的重點(diǎn),具備抗噪能力、定位準(zhǔn)確、適應(yīng)性強(qiáng)的邊緣檢測(cè)算法成為眾多學(xué)者的研究目標(biāo)。
在邊緣檢測(cè)算子中,一階導(dǎo)數(shù)邊緣檢測(cè)算子通過(guò)模板與圖像進(jìn)行卷積,使用閾值提取圖像邊緣,常用的有Roberts算子和Sobel算子。二階導(dǎo)數(shù)邊緣檢測(cè)算子如Laplace算子,其特點(diǎn)是對(duì)噪聲敏感,適用于無(wú)噪聲的圖像。而Canny算子結(jié)合了高斯函數(shù)、一階導(dǎo)數(shù)和雙閾值來(lái)提取圖像邊緣,邊緣檢測(cè)效果突出,得到了廣泛的應(yīng)用。Canny算子有3條關(guān)于邊緣檢測(cè)的準(zhǔn)則:1)盡可能找到較多的邊緣點(diǎn),達(dá)到較低的誤檢率;2)檢測(cè)出的邊緣定位準(zhǔn)確,與實(shí)際邊緣點(diǎn)間的差距較小;3)檢測(cè)到的邊緣點(diǎn)具有單一性,不存在偽邊緣的情況。為提高Canny算子的邊緣檢測(cè)精度,學(xué)者們做了許多改進(jìn)。文獻(xiàn)[3]為去除圖像中無(wú)用的信息,減少干擾,提出結(jié)合形態(tài)學(xué)的操作去除噪聲,并且使用Otsu算法自適應(yīng)確定雙閾值。文獻(xiàn)[4]中的閾值分割方法是通過(guò)梯度方差對(duì)圖像進(jìn)行分塊,提高了邊緣檢測(cè)的精度和準(zhǔn)確度。文獻(xiàn)[5]提出融合Canny自適應(yīng)算法和小波模極大值法,使提取的邊緣較連續(xù)和完整。文獻(xiàn)[6]在去除噪聲中采用自適應(yīng)的中值濾波和雙邊濾波相結(jié)合,通過(guò)最大熵自適應(yīng)選取閾值,采用霍夫變換與像素點(diǎn)的梯度方向相結(jié)合進(jìn)行檢測(cè),連接邊緣,改進(jìn)后的算法不僅噪聲去除效果好,而且邊緣連續(xù)性強(qiáng)。
本文在前人的基礎(chǔ)上,通過(guò)總結(jié)和分析圖像的濾波算法和邊緣檢測(cè)算子[7],提出了一種改進(jìn)的Canny算法并將其應(yīng)用于手勢(shì)圖像的邊緣檢測(cè)。針對(duì)高斯濾波會(huì)模糊圖像邊緣且去除椒鹽噪聲效果差的情況,使用中值濾波和雙邊濾波作為混合濾波器來(lái)代替高斯濾波;增加Sobel方向模板來(lái)計(jì)算圖像梯度;對(duì)于人工設(shè)定的高低閾值,使用迭代最佳閾值實(shí)現(xiàn)雙閾值的確定。
1? ? 傳統(tǒng)Canny圖像邊緣檢測(cè)算法
Canny圖像邊緣檢測(cè)算法于1986年由Canny[8]提出并一直沿用至今,主要有4個(gè)步驟。
Step 1? ?設(shè)計(jì)高斯濾波器。使用高斯濾波器對(duì)原始圖像進(jìn)行濾波,高斯濾波器可以用式(1)來(lái)? ?設(shè)計(jì):
[H(x, y)=12πσ2exp-x2+y22σ2],? ? ? ? ? ? ? ? (1)
式(1)中:[H(x, y)]表示高斯濾波器,[σ]表示高斯函數(shù)的分布參數(shù)。噪聲抑制能力隨著[σ]減小而減小,邊緣定位精度隨著[σ]減小而增大。因此,[σ]的取值大小決定了圖像的去噪能力。
Step 2? ?計(jì)算圖像的梯度幅值和方向。Sobel算子是通過(guò)0°和90° 2個(gè)角度方向來(lái)計(jì)算圖像梯度幅值[9]。梯度幅值[g]和方向[θ]分別用式(2)和式(3)? ? 計(jì)算:
[g=g2x+g2y],? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (2)
[θ=arctangygx].? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)
Step 3? ?對(duì)圖像邊緣進(jìn)行非極大值抑制。根據(jù)梯度運(yùn)算計(jì)算出每個(gè)像素點(diǎn)的梯度方向和大小之后,對(duì)圖像邊緣進(jìn)行提取,就是要找出圖像中變化最明顯的地方,抑制不是極大值的點(diǎn),排除干擾。即中心點(diǎn)與所屬方向上的像素點(diǎn)進(jìn)行幅值比較,當(dāng)大于該方向上的所有像素點(diǎn)的梯度幅值時(shí),該灰度值為幅值,否則灰度值為0。
Step 4? ?采用高低閾值對(duì)圖像進(jìn)行邊緣檢測(cè)和連接。在非極大值抑制后,通過(guò)設(shè)定的高低閾值來(lái)進(jìn)一步確定圖像邊緣,消除虛假邊緣[10]。當(dāng)圖像某一點(diǎn)的像素灰度值大于所設(shè)定的高閾值,則確定為邊緣點(diǎn),灰度值歸為255進(jìn)行保留;小于低閾值的像素點(diǎn)判定為背景,灰度值作為0處理;處于高低閾值中間的像素點(diǎn),則根據(jù)其鄰域像素值來(lái)確定。
2? ? 改進(jìn)的Canny算法
傳統(tǒng)的Canny算法利用高斯濾波來(lái)平滑噪聲,去噪效果不強(qiáng),不能很好地保護(hù)圖像邊緣,導(dǎo)致邊緣細(xì)節(jié)缺失,而中值濾波能平滑椒鹽噪聲。雙邊濾波與高斯濾波的原理相似,它的優(yōu)點(diǎn)是保護(hù)圖像邊緣。因此,本文設(shè)計(jì)了結(jié)合中值濾波和雙邊濾波優(yōu)點(diǎn)的混合濾波器。為提取到更全面的圖像梯度信息,提高邊緣的定位精度,根據(jù)文獻(xiàn)[11],采用八方向梯度模板的Sobel算子。傳統(tǒng)的Canny算法需要手動(dòng)設(shè)定高低閾值,沒(méi)有根據(jù)圖像的特征來(lái)選取,缺少普遍的適應(yīng)性,存在圖像邊緣漏檢和誤檢的情況。根據(jù)文獻(xiàn)[12],采用迭代最佳閾值算法選擇最優(yōu)的高低閾值,實(shí)現(xiàn)對(duì)手勢(shì)圖像的邊緣檢測(cè)和連接,其算法流程圖如圖1所示。