周虹
摘? 要:圖像特征具有低對(duì)比度、平滑梯度的產(chǎn)品表面缺陷,與表面背景圖案和污漬十分接近,這對(duì)基于機(jī)器視覺(jué)的缺陷識(shí)別和檢測(cè)帶來(lái)嚴(yán)重干擾。該文提出一種改進(jìn)SIFT算子的特征識(shí)別方法,用分?jǐn)?shù)階微分代替高斯差分算子,再利用圖像局部梯度和信息熵,自適應(yīng)生成分?jǐn)?shù)階微分次數(shù),有效克服SIFT無(wú)法有效提取污漬、紋理等低對(duì)比度特征的缺陷。實(shí)踐證明,該方法能在復(fù)雜干擾環(huán)境下實(shí)現(xiàn)對(duì)特定缺陷的識(shí)別,且具有較高的檢出速度、檢出率以及工程實(shí)用價(jià)值。
關(guān)鍵詞:SIFT? 表面檢測(cè)? 分?jǐn)?shù)階微分? 缺陷識(shí)別
中國(guó)分類(lèi)號(hào):TB486;TQ174.76;TP391.41 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1672-3791(2021)01(c)-0010-05
Abstract: The image features have low contrast, smooth gradient of the product surface defects, and the surface background patterns and stains are very close, which brings serious interference to machine vision based defect recognition and detection. This paper proposes an improved feature recognition method for SIFT operators, which uses fractional differential instead of gaussian differential operator, and then uses image local gradient and information entropy to generate fractional differential times in an adaptive way to effectively overcomes the defects SIFT can not effectively extract low contrast features such as stains and textures. Practice has proved that this method can realize the identification of specific defects in complex interference environment and has high detection speed, detection rate and engineering practical value.
Key Words: SIFT; Surface detection; Fraction differential; Defect recognition
表面缺陷是影響產(chǎn)品品質(zhì)的重要指標(biāo)之一,主要包括裂紋、針孔、印刷缺陷、斑點(diǎn)等。
近年來(lái),基于機(jī)器視覺(jué)的表面缺陷自動(dòng)檢測(cè)研究越來(lái)越受關(guān)注,并取得了一定的進(jìn)展[1-3],文獻(xiàn)[1]利用陰極銅板的缺陷顏色和背景有較大差別,設(shè)計(jì)了一種基于彩色空間的聚類(lèi)方法以實(shí)現(xiàn)快速區(qū)分缺陷的目的,但該方法受光照影響大,且無(wú)法有效利用基于灰度空間的大量成熟算法,計(jì)算效率低;文獻(xiàn)[2]介紹了一種基于頻域?yàn)V波的方法,對(duì)裂紋檢測(cè)取得了較好效果,但此方法在有干擾的情況下無(wú)法拓展到其他缺陷檢測(cè);文獻(xiàn)[3]利用多特征融合以及卷積神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)了金屬板帶材表面缺陷的檢測(cè),但該方法同樣只適用于無(wú)干擾的情況下。
目前,陶瓷料、木料等產(chǎn)品表面缺陷的視覺(jué)檢測(cè)在生產(chǎn)實(shí)際中應(yīng)用依然較少,這主要是因?yàn)樯a(chǎn)環(huán)境中的干擾因素比實(shí)驗(yàn)室要多。以瓷磚為例,一是瓷磚表面缺陷形態(tài)各異,沒(méi)有統(tǒng)一的形狀和尺寸作為模板;二是瓷磚表面留下的水漬、碎石、手印等,和缺釉、斑點(diǎn)在圖像上非常相似,會(huì)對(duì)視覺(jué)檢測(cè)帶來(lái)嚴(yán)重干擾,對(duì)于中小企業(yè)而言,這些干擾又很難在視覺(jué)檢測(cè)前徹底清除。此外,位置變化、光照不均等因素也會(huì)影響缺陷的檢測(cè)。在這樣復(fù)雜干擾環(huán)境下,傳統(tǒng)的基于顏色信息統(tǒng)計(jì)或者基于標(biāo)準(zhǔn)模板對(duì)比的簡(jiǎn)單視覺(jué)檢測(cè)方法往往都得不到理想的效果。
基于SIFT特征點(diǎn)匹配的缺陷識(shí)別算法,可以有效克服以上不足,在復(fù)雜干擾環(huán)境下能實(shí)現(xiàn)快速、準(zhǔn)確識(shí)別缺陷的目的。文獻(xiàn)[4]成功運(yùn)用SIFT對(duì)中厚板的表面缺陷進(jìn)行了檢測(cè),識(shí)別準(zhǔn)確率達(dá)到95%;文獻(xiàn)[5]將SIFT算法用于藥用玻璃瓶印刷字缺陷的檢測(cè),并取得了較好的檢測(cè)結(jié)果;文獻(xiàn)[6]在汽車(chē)保險(xiǎn)盒的在線缺陷檢測(cè)中,成功運(yùn)用了SIFT算法,并得到了理想的實(shí)驗(yàn)結(jié)果。
1? 基于分?jǐn)?shù)階微分的改進(jìn)SIFT算子
近年來(lái),分?jǐn)?shù)階微分(Fraction differential)在圖像處理上的應(yīng)用越來(lái)越受到關(guān)注。分?jǐn)?shù)階微分能利用非局部信息來(lái)計(jì)算像素微分,在低對(duì)比度邊緣和紋理邊緣識(shí)別中具有優(yōu)越的性能。
目前,典型的分?jǐn)?shù)階微分定義主要有兩種,一種是G-L(Grunwald-Letnikov)方程,另一種是R-L(Riemann-Liouville)方程。R-L方程更適合于數(shù)值計(jì)算,因此該文采用R-L方程結(jié)合SIFT算子進(jìn)行研究[7]。
R-L分?jǐn)?shù)階微分方程定義如下:
式中,I為分?jǐn)?shù)階微分代號(hào),[g,h]為自變量t的取值范圍,α為微分次數(shù),Γ(α)為伽馬函數(shù),定義如下:
對(duì)于圖像的邊緣等高頻部分,1~2階之間的分?jǐn)?shù)階微分算子對(duì)輪廓的提取雖不及2階微分算子強(qiáng),但比1階微分的增強(qiáng)效果要好。而對(duì)于紋理、水漬等圖像低頻部分,0~1階分?jǐn)?shù)階微分有效改善了1階微分對(duì)于邊緣信息衰減嚴(yán)重的問(wèn)題。因此,分?jǐn)?shù)階微分提高了高頻信息,而且沒(méi)有使中低頻圖像信息過(guò)分衰減,從而改善了SIFT提取圖像紋理和低對(duì)比度細(xì)節(jié)信息的能力[8-9]。
基于分?jǐn)?shù)階微分的特點(diǎn),理想的微分次數(shù)應(yīng)該是:對(duì)于高頻圖像特征,次數(shù)接近2,對(duì)于低頻特征,次數(shù)接近0。如果能讓次數(shù)α自適應(yīng)變化,則能具備最佳特征提取效果。接下來(lái)的問(wèn)題是如何判斷圖像區(qū)域是邊緣區(qū)域還是紋理或者平滑區(qū)域。
梯度具有判別邊緣的能力,而信息熵具有判別紋理的能力,于是我們的辦法是結(jié)合梯度和信息熵來(lái)進(jìn)行判斷。
最后分析分?jǐn)?shù)階微分次數(shù)與綜合判別因子之間的關(guān)系。從前面的分析可以得出α的范圍是[0,2],且趨勢(shì)是逐漸接近。于是該文采用反正切函數(shù)來(lái)擬合這個(gè)關(guān)系。并且,綜合判定因子雖然綜合了梯度和信息熵,但是梯度占主要部分,因此綜合判定因子也就用頻率來(lái)近似。
經(jīng)過(guò)反復(fù)實(shí)驗(yàn),我們得到α和f的函數(shù)關(guān)系為:
2? 基于改進(jìn)SIFT算子的瓷磚表面缺陷檢測(cè)
SIFT算子的關(guān)鍵在于特征點(diǎn)選取,由于充分考慮了縮放、尺度、旋轉(zhuǎn)等因素影響,從而可以實(shí)現(xiàn)有干擾的環(huán)境下準(zhǔn)確地識(shí)別出缺陷。但該算法計(jì)算流程復(fù)雜、數(shù)據(jù)處理量大、檢測(cè)耗時(shí)較長(zhǎng)的缺點(diǎn),導(dǎo)致其在實(shí)時(shí)檢測(cè)場(chǎng)合的應(yīng)用受限。直接的解決思路是在保證檢測(cè)精度的前提下,盡可能減少特征點(diǎn)的數(shù)量,從而有效壓縮最終的特征描述矩陣。而減少特征點(diǎn)數(shù)量的有效辦法是針對(duì)具體應(yīng)用場(chǎng)景優(yōu)化SIFT算子的各個(gè)參數(shù)。
2.1 圖像金字塔組數(shù)的確定
關(guān)于組數(shù)(Octave)的確定,Lowe在其論文中給出了一個(gè)經(jīng)驗(yàn)公式[7]:
式中,p為待求組數(shù);m,n為圖像尺寸大小;a為修正值,取值范圍為[0-p],具體可根據(jù)金字塔圖像的尺寸范圍來(lái)確定。
以瓷磚表面缺陷檢測(cè)為例,按照國(guó)家標(biāo)準(zhǔn),瓷磚表面缺陷的檢測(cè)要求是在距離1 m的瓷磚上方觀察,不能發(fā)現(xiàn)有缺陷。為獲得更準(zhǔn)確的機(jī)器視覺(jué)測(cè)量數(shù)據(jù),該實(shí)驗(yàn)系統(tǒng)能呈現(xiàn)所有表面缺陷的最大圖像尺寸為512×512。再將圖像不斷縮小,直到所有缺陷都無(wú)法辨別,得到最小圖像尺寸為20×20。按照SIFT圖像金字塔的生成原理,按照1/2不斷縮小,從512縮小到20,至少要迭代5次。因此,按照公式(1),a取4,得到金字塔最小組數(shù)p為5。
2.2 尺度空間的初始值
尺度空間用來(lái)不斷地對(duì)圖像進(jìn)行高斯模糊,從而達(dá)到忽略細(xì)節(jié),保留輪廓的目的。高斯模糊參數(shù)δ(尺度空間)的計(jì)算公式如下:
式中,o為圖像所在的組,s為圖像所在的層,δ0為初始的尺度,S為每組的層數(shù)。對(duì)于生活圖像的檢測(cè)和識(shí)別應(yīng)用[7],Lowe給出了以上參數(shù)的參考值,取δ0=1.6,S=3。
研究發(fā)現(xiàn),在基于SIFT的工業(yè)視覺(jué)檢測(cè)中,δ0的取值非常重要。如果取值太小,則會(huì)導(dǎo)致特征點(diǎn)過(guò)多,后續(xù)計(jì)算量過(guò)大,影響實(shí)時(shí)檢測(cè)的速度。反之如果太大,則會(huì)忽略掉圖像小的細(xì)節(jié),導(dǎo)致特征點(diǎn)過(guò)少,影響檢測(cè)精度。經(jīng)反復(fù)實(shí)驗(yàn)發(fā)現(xiàn),δ0的取值可以參考一下經(jīng)驗(yàn)公式:
式中,k為圖像中待檢測(cè)部分的最小尺寸。在該項(xiàng)目中,瓷磚圖像的表面缺陷的最小尺寸約為2像素,因此,δ0取值0.7。
2.3 對(duì)比度閾值的確定
確定好金字塔的組數(shù)以及尺度空間的參數(shù),就可以得到圖像金字塔的尺度空間組,再計(jì)算出高斯差分組。
利用尺度空間組的圖像,可以找出所有的極值點(diǎn),查找的原理是以某點(diǎn)為中心,以所在圖像及所在組的上下兩層圖像的3×3區(qū)域?yàn)猷徲?,?6點(diǎn)進(jìn)行比較,如果該點(diǎn)比領(lǐng)域值都大或者都小,則判斷為極值點(diǎn)。
以上求得的極值點(diǎn)是在離散圖像上獲取的,并不一定是真正的極值點(diǎn)。為了找到準(zhǔn)確的極值點(diǎn),我們?cè)O(shè)從離散極值點(diǎn)到真實(shí)極值點(diǎn)的偏差為Δx,用泰勒公式展開(kāi)可以得到擬合公式(4)。
計(jì)算出精確的極值點(diǎn)后,接下來(lái)還需要對(duì)這些極值點(diǎn)進(jìn)行過(guò)濾。首先是篩選掉低對(duì)比度的極值點(diǎn),同樣的,通過(guò)設(shè)定一個(gè)對(duì)比度閾值CT來(lái)過(guò)濾。Lowe給出了CT的建議值是0.04。
在工業(yè)檢測(cè)的應(yīng)用中,該值的選取也具有一定的靈活性。一般來(lái)說(shuō),物體輪廓特征點(diǎn)的對(duì)比度比紋理等局部特征點(diǎn)要大。因此,如果只想提出物體的輪廓特征來(lái)實(shí)現(xiàn)識(shí)別的目的,則可以將閾值T適當(dāng)增大,否則可以適當(dāng)減小,以得到更多局部特征點(diǎn)。
除此之外,還可根據(jù)高斯差分空間的高斯核大小來(lái)分析CT的取值。對(duì)于歸一化的圖像,如果方差δ0取0.7,則模糊核的中心最大值約為0.32,因此,可以估計(jì)出高斯差分圖像DOG的最大差值在0.32左右。若保留70%以上對(duì)比度的關(guān)鍵點(diǎn),則可以設(shè)CT為0.2.
2.4 圖像邊框極值點(diǎn)閾值確定
剔除完低對(duì)比度極值點(diǎn)后,接下來(lái)的工作是篩選掉多余的圖像邊框極值點(diǎn)。SIFT在計(jì)算圖像極值點(diǎn)時(shí),很容易將邊框點(diǎn)包括在內(nèi)。一來(lái)這些點(diǎn)并不表示圖像內(nèi)容的任何信息,二來(lái)如果保留過(guò)多邊框點(diǎn),也會(huì)嚴(yán)重影響計(jì)算速度,所以要盡可能過(guò)濾掉。
剔除的原理是通過(guò)求極值點(diǎn)水平方向x和垂直方向y的梯度變化比值ET來(lái)衡量,如果梯度變化過(guò)大,則可以認(rèn)定是邊框點(diǎn),予以剔除。否則,則認(rèn)為不是邊框點(diǎn),保留下來(lái)。
Lowe給出了ET的建議值是10,在工業(yè)實(shí)際檢測(cè)中,為了得到更快的檢測(cè)速度,要盡可能減小該閾值,以減少邊框極值點(diǎn)。但該值減少得太多,又會(huì)導(dǎo)致誤判其他非邊框極值點(diǎn)而剔除。應(yīng)該根據(jù)圖像特征區(qū)域和邊框梯度的變化范圍來(lái)合理確定閾值。在瓷磚的表面缺陷檢測(cè)中,ET設(shè)置為3是最合適的。
3? 實(shí)驗(yàn)
經(jīng)過(guò)上述分析和設(shè)置,SIFT算法完成了最主要的工作,在圖像上找出了經(jīng)過(guò)優(yōu)化和篩選的極值點(diǎn),這些留下來(lái)的極值點(diǎn)作為最終缺陷識(shí)別的特征點(diǎn)。
實(shí)驗(yàn)系統(tǒng)的主要環(huán)境配置為:操作系統(tǒng)Ubuntu18.4,編譯器為Python6.5,圖像處理軟件為OpenCV3.4,GPU圖像處理加速器為GeForce-GTX-1060。
實(shí)驗(yàn)用的圖像為帶碎石和手印干擾的瓷磚缺陷照片,過(guò)程包括兩個(gè)環(huán)節(jié),分別是缺陷檢出率對(duì)比驗(yàn)證,和缺陷誤檢率對(duì)比驗(yàn)證。對(duì)比的檢測(cè)算法包括3種,分別是論文中提到的傳統(tǒng)基于圖案顏色統(tǒng)計(jì)算法MatchTemplate、基于SIFT算子算法和基于卷積神經(jīng)網(wǎng)絡(luò)的TensorFlow-CNN深度學(xué)習(xí)算法[2]。
表1列出了3種算法的檢出率和平均耗時(shí)對(duì)比??梢钥闯觯兇獾膱D案對(duì)比方法MatchTemplate對(duì)3種缺陷的檢測(cè)效果都不佳,主要原因在于缺陷圖像的形態(tài)變化較大,縮放、旋轉(zhuǎn)、不同區(qū)域的亮度變化等,都很容易導(dǎo)致圖案匹配算法MatchTemplate失敗。而SIFT算法充分考慮了環(huán)境因素的變化,因此具有良好的抗干擾能力。TensorFlow-CNN在裂紋識(shí)別上具有一定的優(yōu)勢(shì),而在凹釉和斑點(diǎn)的缺陷檢測(cè)上檢出率不高,究其原因是受到碎石和污漬等干擾因素的影響,它們的圖像和斑點(diǎn)、凹釉圖像類(lèi)似,和裂紋差距較大。
表2列出了3種算法的誤檢率和平均耗時(shí)對(duì)比。MatchTemplate對(duì)模板圖案高度依賴,因此其誤檢率和檢出率一樣不高。TensorFlow-CNN具有一定的適應(yīng)變化能力,但其對(duì)圖像的縮放、光照變化等綜合影響因素適應(yīng)能力,以及對(duì)碎石、污漬等干擾因素的區(qū)分能力并不強(qiáng),導(dǎo)致其誤檢率也偏高。而SIFT算法利用的信息較多,充分考慮了環(huán)境因素的變化,因此其誤檢率也較低。
另外,從檢測(cè)時(shí)間上來(lái)看,圖案比較MatchTemplate算法的原理簡(jiǎn)單、計(jì)算量較小,速度最快,耗時(shí)最短。而基于深度學(xué)習(xí)的TensorFlow-CNN算法結(jié)構(gòu)復(fù)雜,神經(jīng)網(wǎng)絡(luò)訓(xùn)練和使用過(guò)程計(jì)算量巨大,耗時(shí)長(zhǎng),不太適合工業(yè)實(shí)時(shí)控制要求。而SIFT算法耗時(shí)僅比圖案比較算法略長(zhǎng),實(shí)際應(yīng)用時(shí),能達(dá)到每秒3塊瓷磚的檢測(cè)速度,完全可以滿足一般生產(chǎn)線的要求。
4? 結(jié)論
該文闡述了SIFT算法用于缺陷檢測(cè)的基本原理,并提出了自適應(yīng)分?jǐn)?shù)階微分的改進(jìn)算法。
(1)SIFT算法的關(guān)鍵是通過(guò)圖像特征點(diǎn)及其鄰域信息來(lái)描述特定圖案,分?jǐn)?shù)階微分可顯著提高平滑區(qū)域特征點(diǎn)的提取,提高缺陷識(shí)別率。
(2)通過(guò)減少SIFT特征點(diǎn)數(shù)量,可以顯著減少計(jì)算量,提高處理速度。而通過(guò)優(yōu)化SIFT算法的相關(guān)參數(shù),圖像金字塔組數(shù)、尺度空間大小、對(duì)比度閾值和邊框極值點(diǎn)閾值,可以實(shí)現(xiàn)SIFT檢測(cè)速度和檢測(cè)精度的平衡。
(3)相對(duì)于傳統(tǒng)算法和人工智能算法,改進(jìn)SIFT算法有更高的檢測(cè)精度和更快的檢測(cè)速度。
參考文獻(xiàn)
[1] 馬美榮,李東喜.基于RetinaNet的手機(jī)主板缺陷檢測(cè)研究[J].計(jì)算機(jī)工程與科學(xué),2020,42(4):673-682.
[2] 金昊,康宇哲,齊希陽(yáng),等.基于FasterR-CNN的高壓電線缺陷檢測(cè)方法[J].計(jì)算機(jī)應(yīng)用,2019,39(S2):97-102.
[3] 趙艷,左保齊.機(jī)器視覺(jué)在織物疵點(diǎn)檢測(cè)上的應(yīng)用研究綜述[J].計(jì)算機(jī)工程與應(yīng)用,2020,56(2):11-17.
[4] 周鵬,徐科,楊朝霖.基于SIFT的中厚板表面缺陷識(shí)別方法[J].清華大學(xué)學(xué)報(bào):自然科學(xué)版,2018,58(10):881-887.
[5] 張俞晴,何寧,魏潤(rùn)辰.基于卷積神經(jīng)網(wǎng)絡(luò)融合SIFT特征的人臉表情識(shí)別[J].計(jì)算機(jī)應(yīng)用與軟件,2019,36(11):161-167.
[6] 曾瑞篷.基于機(jī)器視覺(jué)的汽車(chē)保險(xiǎn)盒缺陷在線自動(dòng)檢測(cè)系統(tǒng)研究[D].南京航空航天大學(xué),2017.
[7] 張桂梅,郭黎娟,熊邦書(shū),等.基于多分辨率和自適應(yīng)分?jǐn)?shù)階的ActiveDemons算法[J].計(jì)算機(jī)研究與發(fā)展,2018,55(12):2753-2763.
[8] 向雨晴,楊曉梅.基于分?jǐn)?shù)階和非局部全變差模型的圖像去模糊[J].計(jì)算機(jī)工程與設(shè)計(jì),2018,39(7):2002-2007.
[9] Rabha W. Ibrahim. A new image denoising model utilizing the conformable fractional calculus for multiplicative noise[J]. SN Applied Sciences,2019,2(1):1718-1720.