国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

改進(jìn)Canny 算法在編織布疵點(diǎn)邊緣檢測(cè)中的應(yīng)用

2021-04-08 10:27:28閆偉偉孫宏昌張樹剛田東閣蔣永翔
關(guān)鍵詞:像素點(diǎn)算子灰度

閆偉偉,孫宏昌,張 廷,張樹剛,田東閣,蔣永翔

(1.天津職業(yè)技術(shù)師范大學(xué)機(jī)器人及智能裝備研究所,天津 300222;2.呼倫貝爾職業(yè)技術(shù)學(xué)院,呼倫貝爾 021000;3.天津亞?wèn)|智鑫科技有限公司,天津 300380)

塑料編織袋廣泛應(yīng)用于各行各業(yè),因其具有較好的拉伸性能,可承載并有效保護(hù)質(zhì)量較大的產(chǎn)品,滿足了消費(fèi)者的使用需求。目前,傳統(tǒng)的編織布原料破損檢測(cè)主要依靠人工識(shí)別[1],檢測(cè)效率低下、誤判率高,檢測(cè)人員長(zhǎng)期視力集中易導(dǎo)致眼睛疲勞以及引發(fā)職業(yè)病。因此,在編織布檢測(cè)流程中應(yīng)用機(jī)器視覺檢測(cè)技術(shù)十分必要。

破損編織布圖像中背景與缺陷邊緣、缺陷與缺陷邊緣特征是檢測(cè)破損的關(guān)鍵特征[2],因此在機(jī)器視覺技術(shù)中通常會(huì)引入圖像邊緣檢測(cè)技術(shù)。在圖像邊緣檢測(cè)中常用的一階邊緣檢測(cè)算子有:Roberts 算子[3]、Prewitt 算子[4]、Sobel 算子[5]、Scharr 算子[6]等;二階的邊緣檢測(cè)算子有:Laplacian 算子[7]、LoG 算子[8]、Canny 算子[9]等,這些算子的原理都是將圖像與特定大小的模板進(jìn)行卷積處理。上述算法簡(jiǎn)單,實(shí)用性強(qiáng),其中Canny 算子因其檢測(cè)精度高、信噪比高等優(yōu)勢(shì)在圖像處理領(lǐng)域中應(yīng)用廣泛。但由于Canny 算子中的高低閾值需要人為設(shè)定,過(guò)高的高閾值會(huì)導(dǎo)致邊緣斷裂,出現(xiàn)邊界不連續(xù)的情況而丟失邊緣細(xì)節(jié)信息;反之,過(guò)低的低閾值會(huì)出現(xiàn)偽邊緣。當(dāng)圖像光照情況發(fā)生變化時(shí),圖像整體灰度分布隨之變化,導(dǎo)致高低閾值需進(jìn)行相應(yīng)地修改,因此傳統(tǒng)Canny 算子在閾值的確定上缺乏實(shí)時(shí)性和自適應(yīng)性[10]。針對(duì)上述問(wèn)題,文獻(xiàn)[11]提出了結(jié)合雙重Otsu 方法進(jìn)行高低閾值確定的算法,文獻(xiàn)[12]使用迭代閾值分割法和改進(jìn)Otsu 算法以選取高低閾值,實(shí)現(xiàn)邊緣檢測(cè)連接,文獻(xiàn)[13]利用梯度直方圖選取閾值。以上方法雖然提高了邊緣提取的檢測(cè)精度,但并沒有改善算法的自適應(yīng)性。本文提出一種改進(jìn)Canny 算法,旨在提高Canny 算子在織物疵點(diǎn)邊緣檢測(cè)中的準(zhǔn)確性和自適應(yīng)性。

1 Canny 邊緣檢測(cè)算法

傳統(tǒng)的Canny 邊緣檢測(cè)算法最初由John F.Canny提出,并設(shè)定了信噪比準(zhǔn)則、定位精度準(zhǔn)則、單一邊緣響應(yīng)準(zhǔn)則[14]來(lái)提高邊緣檢測(cè)精度。為滿足這3 條準(zhǔn)則,John F.Canny 在一階微分算子的基礎(chǔ)上,增加了2 項(xiàng)改進(jìn),即非極大值抑制和雙閾值。多邊緣響應(yīng)、邊緣的定位精度利用非極大值抑制來(lái)控制;雙閾值能減少邊緣的漏檢率。其檢測(cè)流程如圖1 所示。

圖1 傳統(tǒng)Canny 邊緣檢測(cè)算法流程

(1)利用二維線性高斯濾波器對(duì)目標(biāo)圖像進(jìn)行去噪。二維高斯函數(shù)與圖像進(jìn)行卷積處理以達(dá)到平滑圖像的效果,二維高斯函數(shù) G(x,y)為

高斯函數(shù)與目標(biāo)圖像卷積公式為

式中:σ 為高斯函數(shù)的標(biāo)準(zhǔn)差,其大小可以控制圖像的平滑程度;R(x,y)為高斯函數(shù)與輸入圖像進(jìn)行卷積處理之后的圖像;f(x,y)為輸入圖像;“*”代表卷積運(yùn)算。

為提高運(yùn)算效率,可以將高斯函數(shù)轉(zhuǎn)化為高斯濾波模板[15],再與輸入圖像做卷積運(yùn)算得到平滑后的圖像。

(2)計(jì)算梯度幅值和方向,利用Sobel 梯度模板[16]分別計(jì)算去噪后的圖像在像素點(diǎn)(x,y)處x 和y 方向上的偏導(dǎo)數(shù)。

其在x 方向上的偏導(dǎo)數(shù)Ix為

在y 方向上的偏導(dǎo)數(shù)Iy為

式中:R(x,y)為像素點(diǎn)(x,y)處的像素值。

則利用二范數(shù)計(jì)算其梯度幅值O 所得

其梯度方向?yàn)?/p>

(3)非極大值抑制(NMS)[17]旨在盡可能保留圖像灰度梯度幅值變化最大的點(diǎn),盡可能地抑制該范圍內(nèi)的干擾值,提高邊緣定位的準(zhǔn)確度。非極大值抑制的具體實(shí)現(xiàn)方法為:遍歷圖像的每一個(gè)像素點(diǎn),如果像素點(diǎn)R(x,y)處像素的梯度值不大于該梯度方向上相鄰2 個(gè)像素點(diǎn)的梯度值,則把點(diǎn)R(x,y)標(biāo)記為非邊緣點(diǎn);反之,像素點(diǎn)R(x,y)則被標(biāo)記為候選邊緣點(diǎn)。

(4)滯后閾值化,人工確定1 個(gè)高閾值Th和1 個(gè)低閾值Tl,分別對(duì)經(jīng)過(guò)非極大值抑制處理之后的梯度圖做二值化處理,然后對(duì)邊緣點(diǎn)進(jìn)行選取和連接,具體方法為:掃描圖像的像素點(diǎn)(x,y),如果該點(diǎn)像素梯度值大于高閾值,則點(diǎn)(x,y)為邊緣像素;如果該點(diǎn)像素梯度值小于低閾值,則該點(diǎn)認(rèn)定為非邊緣點(diǎn);若像素點(diǎn)的梯度值處于高、低閾值之間,則進(jìn)一步檢查像素點(diǎn)(x,y)的 3 × 3 鄰域,如果在像素 3 × 3 的鄰域內(nèi)有梯度大于 Th的像素(x,y),則(x,y)為邊緣像素點(diǎn),否則視為非邊緣像素。

2 改進(jìn)的Canny 邊緣檢測(cè)算法

從上述Canny 邊緣檢測(cè)算子的檢測(cè)流程可以看出,由于進(jìn)行邊緣檢測(cè)和連接時(shí)所依據(jù)的高低閾值是人工設(shè)定的,因此對(duì)整幅編織布圖像進(jìn)行邊緣檢測(cè)時(shí)無(wú)法估計(jì)局部特征信息,隨著設(shè)定值的不同,所檢測(cè)物體的輪廓信息出現(xiàn)檢測(cè)出假邊緣或邊緣斷裂等情況,無(wú)法實(shí)現(xiàn)自適應(yīng)。另外,人工設(shè)定閾值會(huì)因經(jīng)驗(yàn)不同而產(chǎn)生誤差。針對(duì)傳統(tǒng)Canny 算子存在的不足,本文運(yùn)用雙重基本全局閾值分割算法[18],根據(jù)實(shí)時(shí)的光照環(huán)境變化自適應(yīng)地確定合適的高閾值和低閾值。改進(jìn)后的Canny 算法流程如圖2 所示。

圖2 改進(jìn)Canny 算法流程

2.1 基本全局閾值分割算法

在一個(gè)灰度等級(jí)為L(zhǎng)(一般L=256)的圖像中,設(shè)有nm個(gè)灰度值為m 的像素,n 表示像素總個(gè)數(shù),其中n=n0+n1+…+nL-1,灰度圖像中灰度值m 像素點(diǎn)出現(xiàn)的概率用 p(m)表示,則

其中,p(0)+p(1)+ … +p(L-1)=1,用初始閾值T0將圖像中的像素灰度值分成C0和C1兩大類,即C0={0,1,...,T0},C1={T0+1,T0+2…,L-1}。

對(duì)于初始閾值T0的設(shè)置,可以先找出圖像中灰度最大的值hmax和灰度最小的值hmin,令T0為灰度最大的值hmax和灰度最小的值hmin的均值,這樣可以減少計(jì)算量,則有

則C0和C1的分布概率分別為ω0和ω1

式中:ω0為 C0的分布概率;ω1為 C1的分布概率,且ω0+ω1=1。

C0部分像素點(diǎn)的灰度均值φ0(T)為

C1部分像素點(diǎn)的灰度均值φ1(T)為

對(duì)φ0(T)與φ1(T)求均值,有

其中,T1是經(jīng)過(guò)一次迭代所得的一個(gè)閾值。

2.2 Canny算子結(jié)合雙重基本全局閾值分割算法

由上述對(duì)基本全局閾值分割算法的介紹可知,雙重基本全局閾值分割算法是先對(duì)梯度圖像賦予一個(gè)初始閾值T0,第一步使用上述方法獲取一個(gè)新的閾值T1,然后將T0和T1進(jìn)行比較,如果二者相等或是二者之差在一個(gè)允許的范圍內(nèi),返回T1,此時(shí)所得到的新閾值T1即為最優(yōu)閾值,將其設(shè)置為高閾值Th;否則繼續(xù)進(jìn)行迭代,直到相鄰2 次得到的閾值之差為0 或者在一個(gè)允許的范圍時(shí),終止迭代,最終得到最優(yōu)閾值。第二步在[0,Th]之間再次使用全局閾值分割法得到另一個(gè)最優(yōu)閾值,將其設(shè)置為低閾值,此時(shí)得到的高閾值和低閾值即可作為滯后閾值化操作所需的閾值。

3 實(shí)驗(yàn)結(jié)果與分析

為驗(yàn)證上述理論分析的可行性和有效性,在Python 3.7.0 環(huán)境下配置開源計(jì)算機(jī)視覺函數(shù)庫(kù)OpenCV4.2.0版本進(jìn)行測(cè)試。傳統(tǒng)Canny 檢測(cè)算法直接調(diào)用edge=cv2.Canny(image,threshold1,threshold2),image 為經(jīng)過(guò)灰度變換后的灰度圖像,threshold1、threshold2 分別為設(shè)定的低閾值和高閾值,edge 為檢測(cè)出的圖像邊緣二值圖。改進(jìn)后的算子中的高低閾值是經(jīng)過(guò)2 次全局閾值分割方法多次迭代得到的,不需人為設(shè)定。

選取多幅不同缺陷類型的圖像對(duì)本文改進(jìn)算子和傳統(tǒng)算子的檢測(cè)效果進(jìn)行對(duì)比,其中傳統(tǒng)算法與改進(jìn)算法所用的高斯濾波模板大小均為3×3,標(biāo)準(zhǔn)差σ=1.4,計(jì)算梯度用一階Sobel 梯度模板,由于圖像整體灰度較低,傳統(tǒng)算法雙閾值中高閾值選擇為30,低閾值為15。

圖3 為有瑕疵編織布的原圖,改進(jìn)算法所得閾值與傳統(tǒng)方法確定的閾值對(duì)比結(jié)果如表1 所示。從表1可以看出,改進(jìn)Canny 算法確定的閾值能根據(jù)圖像灰度分布自適應(yīng)確定高低閾值,提高了算法的自適應(yīng)性。兩種算法在處理同一幅圖像時(shí),采用改進(jìn)的方法多于傳統(tǒng)方法,這是因?yàn)樵诖_定Canny 算子的最優(yōu)閾值時(shí)需要額外的計(jì)算量,這就使得算法在時(shí)間復(fù)雜度上有一定的提高。

圖3 瑕疵編織布原始圖像

表1 編織布圖閾值比較

采用改進(jìn)Canny 算法和傳統(tǒng)Canny 算法分別對(duì)其處理后,編織布圖檢測(cè)出的瑕疵邊緣像素占圖像整體像素比例情況如表2 所示。從表2 可以看出,改進(jìn)的Canny 邊緣檢測(cè)算法能檢測(cè)出更多的瑕疵邊緣像素。

表2 編織布圖檢出邊緣像素占比 %

傳統(tǒng)Canny 算法和改進(jìn)Canny 算法的檢測(cè)結(jié)果分別如圖 4 和圖 5 所示。由圖 4(a)、圖 5(a)中的標(biāo)記處可以看出,改進(jìn)方法檢測(cè)出破損編織布瑕疵的邊緣細(xì)節(jié)更多。由圖4(b)、圖5(b)小破損瑕疵可以看到,傳統(tǒng)算法對(duì)于編織布小破損情況下的檢測(cè)情況明顯不如改進(jìn)后的算法。圖5 中的打結(jié)和跳線瑕疵圖可以看出,改進(jìn)的算法邊緣檢測(cè)和連接的效果更好,這也為后續(xù)疵點(diǎn)檢測(cè)和打標(biāo)機(jī)標(biāo)記瑕疵布料提供了依據(jù)。

圖4 傳統(tǒng)Canny 算法檢測(cè)圖

圖5 改進(jìn)Canny 算法檢測(cè)圖

4 結(jié) 語(yǔ)

本文在傳統(tǒng)Canny 算子確定高閾值和低閾值的步驟中應(yīng)用2 次全局閾值分割方法,解決了其邊緣檢測(cè)算子在確定高低閾值方面自適應(yīng)能力差的問(wèn)題。該算法能夠根據(jù)圖像整體灰度分布自適應(yīng)地確定合適的閾值,無(wú)需人為操作。實(shí)驗(yàn)結(jié)果表明,本算法檢測(cè)出的邊緣像素明顯增多,在邊緣像素連接方面的效果更好,而且能在一定程度上抑制假邊緣,提高了Canny算子在織物疵點(diǎn)邊緣檢測(cè)上的自適應(yīng)性。同時(shí),由于低閾值也是由算法根據(jù)圖像灰度分布計(jì)算得到的,因此能夠減少偽邊緣的產(chǎn)生,保證了后續(xù)疵點(diǎn)檢測(cè)和標(biāo)記的準(zhǔn)確性。本文的算法在自適應(yīng)性、邊緣檢測(cè)和連接方面相比傳統(tǒng)算法具有一定的優(yōu)勢(shì),但在檢測(cè)時(shí)間方面耗時(shí)比傳統(tǒng)算法長(zhǎng),對(duì)檢測(cè)效率有一定的影響,今后仍需進(jìn)一步研究。

猜你喜歡
像素點(diǎn)算子灰度
采用改進(jìn)導(dǎo)重法的拓?fù)浣Y(jié)構(gòu)灰度單元過(guò)濾技術(shù)
擬微分算子在Hp(ω)上的有界性
基于灰度拉伸的圖像水位識(shí)別方法研究
各向異性次Laplace算子和擬p-次Laplace算子的Picone恒等式及其應(yīng)用
一類Markov模算子半群與相應(yīng)的算子值Dirichlet型刻畫
基于canvas的前端數(shù)據(jù)加密
基于最大加權(quán)投影求解的彩色圖像灰度化對(duì)比度保留算法
基于逐像素點(diǎn)深度卷積網(wǎng)絡(luò)分割模型的上皮和間質(zhì)組織分割
Roper-Suffridge延拓算子與Loewner鏈
基于灰度線性建模的亞像素圖像抖動(dòng)量計(jì)算
乌兰浩特市| 滨州市| 华安县| 嘉禾县| 泰州市| 乌兰浩特市| 迁安市| 大渡口区| 简阳市| 青河县| 和硕县| 新龙县| 玛多县| 霍邱县| 德庆县| 宕昌县| 饶阳县| 金乡县| 惠东县| 郁南县| 长沙市| 柳江县| 怀宁县| 交口县| 吐鲁番市| 尼木县| 九寨沟县| 乌兰县| 兴国县| 徐州市| 攀枝花市| 鹤岗市| 丹巴县| 呼伦贝尔市| 施甸县| 安丘市| 达州市| 屏东县| 土默特右旗| 荆门市| 新野县|