馬原東, 倪照風, 徐 斌, 崔 瀟, 楊秀璋, 羅子江*
(1.貴州財經(jīng)大學(xué)信息學(xué)院, 貴陽 550025; 2.北京盛開互動科技有限公司, 北京 100089)
紡織工業(yè)作為中國傳統(tǒng)的民生產(chǎn)業(yè),是中國國民經(jīng)濟發(fā)展的支柱,也是中國在國際環(huán)境下的優(yōu)勢產(chǎn)業(yè),為增強紡織工業(yè)在國際環(huán)境中的競爭力,確保紡織品質(zhì)量已成為紡織產(chǎn)業(yè)發(fā)展的重中之重。布匹疵點檢測是紡織品質(zhì)量保障的重要環(huán)節(jié),通常這種高度重復(fù)性和不確定性的檢測工作需依靠人工完成。據(jù)統(tǒng)計檢驗員采用傳統(tǒng)人工目測方式一小時內(nèi)最多發(fā)現(xiàn)300個疵點,且極易產(chǎn)生疲勞,檢驗結(jié)果極易受主觀因素影響,并對細微疵點檢測率極低。因此,迫切需要一種高效率布匹疵點檢測系統(tǒng)來替代傳統(tǒng)人工目測方式。
疵點檢測作為基于機器學(xué)習(xí)的檢測方法之一,其核心在于特征提取算法。目前,布料疵點特征提取的諸多方法主要有:①基于模型的方法,包括馬爾科夫隨機場法[1]、自回歸模型[2]、灰度直方統(tǒng)計法[3],此類方法對紋理布料有較好檢測效果,但計算量大,對細微疵點識別率極低;②基于頻域的方法,包括二維傅里葉變換法[4]、基于Gabor變換法[5]及小波變換法[6]等,此方法可從布料大環(huán)境確定疵點位置,但對復(fù)雜紋理布料檢測率很低;③基于空間域的統(tǒng)計方法,包括灰度共生矩陣法[7]、基于pulse coupled neural network(PCNN)的檢測法[8]以及數(shù)學(xué)形態(tài)法[9]等,此類方法極易受噪聲影響,對細微疵點存在嚴重漏檢;④基于視覺譜分析的方法,包括采用Wiener反卷積濾波器方法[10]、基于L0范數(shù)視覺顯著性算法[11]等,此類方法能夠有效檢測高緯度特征空間瑕疵,但參數(shù)極難優(yōu)化且計算量較大。此外還有學(xué)者對帶圖案織物疵點檢測做特定研究:包括圖像分解算法[12]、最大閾值算法[13]、LBP(local binary pattern)算法[14]、紋理結(jié)構(gòu)算法[15-17]等結(jié)合的疵點混合算法?,F(xiàn)有的檢測算法相比傳統(tǒng)人工目測方法,在檢測精度、檢測速度及效率上有很大的提高,但難以將檢測速度、檢測精度及系統(tǒng)成本兼顧,無法有效解決紋理不統(tǒng)一、光照不均勻、細微疵點檢測難等問題。因此提出一種基于特定卷積模型的布料疵點檢測算法,并在某布料生產(chǎn)企業(yè)采集的數(shù)據(jù)集上進行檢測,實際檢測結(jié)果表明,本算法能夠在提高檢測速度、檢測精度的同時,兼顧實用性,對不同類型、不同大小的疵點都有較理想的檢測結(jié)果。
基于卷積神經(jīng)網(wǎng)絡(luò)的布料疵點檢測過程主要包括3個階段:①對采集的數(shù)據(jù)集進行預(yù)處理;②構(gòu)建卷積神經(jīng)網(wǎng)絡(luò),確定卷積模型并獲取卷積權(quán)值;③利用改進的非極大值抑制(non-maximum suppression,NMS)算法進行候選框分類,實現(xiàn)缺陷檢測。算法流程如圖1所示。
圖1 卷積神經(jīng)網(wǎng)絡(luò)布料疵點檢測算法流程圖Fig.1 Flow chart of convolutional neural network fabric defect detection algorithm
現(xiàn)有的布料疵點檢測裝置多采用黑白工業(yè)線陣相機運用暗場照明方式突出布料邊緣和輪廓信息,這類方法將導(dǎo)致圖像模糊,嚴重影響疵點檢測結(jié)果?,F(xiàn)采用6 000×4 000的高性能攝像機,該相機可清晰拍攝布料細節(jié)紋理,首先將圖像預(yù)處理分塊為128×128大小的待測圖像塊,并對圖像塊進行人工標記,采取縮放、高斯模糊、顏色增強等變換擴充數(shù)據(jù)集;并直接通過紋理學(xué)習(xí)過濾背景圖片塊,而部分圖像塊包含布料邊緣信息,該類圖像塊破壞布料紋理結(jié)構(gòu)無法準確識別,采用三原色紅綠藍(red-green-blue,RGB)均值法將RGB轉(zhuǎn)換色度飽和度純度色彩模型(hue-saturation-value,HSV)求得圖像塊對應(yīng)四角的色度(hue,H)均值,根據(jù)均值差有效提取此類圖像塊,并將提取后的布料圖像塊和含邊緣信息圖像塊送入卷積網(wǎng)絡(luò)。
傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)模型[18]由輸入層、卷積層、池化層、全連接層和激活函數(shù)層組成。其中,卷積層用于特征提取,公式為
(1)
(1)通過大量的對比實驗發(fā)現(xiàn),淺層卷積可更高效的實現(xiàn)疵點檢測。如圖2所示,采用同一數(shù)據(jù)集對不同網(wǎng)絡(luò)結(jié)構(gòu)進行對比測試,實驗結(jié)果表明,7層卷積網(wǎng)絡(luò)可同時兼顧檢測速度與檢測精度,效率明顯優(yōu)于其他網(wǎng)絡(luò)模型。
(2)檢測中為各網(wǎng)絡(luò)層設(shè)計合適參數(shù)(卷積步長和卷積核數(shù)量),可降低網(wǎng)絡(luò)模型占用空間,提高檢測速度。
圖2 不同卷積下的檢測速度和檢測精度對比Fig.2 Comparison of detection speed and detection accuracy under different convolutions
(3)卷積過程中為避免全連接層對模型效率的影響,可直接采用卷積操作對輸入圖像進行特征提取,優(yōu)化網(wǎng)絡(luò)模型,提高網(wǎng)絡(luò)分類能力。
基于以上三點,設(shè)計一種包含7個卷積層、6個激活函數(shù)層,1個softmax層的卷積網(wǎng)絡(luò)結(jié)構(gòu),如表1所示,其中前6個卷積層每層接一個激勵函數(shù),卷積層之間采用反向傳播梯度下降算法[19-20]進行權(quán)值更新,Conv_7層與改進的NMS算法通過交叉熵損失函數(shù)連接。此網(wǎng)絡(luò)模型通過加深特征提取深度取代池化層;并且全連接層參數(shù)量較大,在進行參數(shù)優(yōu)化和權(quán)值裁剪時,通過卷積方式直接進行特征映射。
表1 卷積神經(jīng)網(wǎng)絡(luò)模型設(shè)計Table 1 Design of convolution neural network model
實際網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,利用6 000×4 000像素的高清攝像機拍攝獲取布料疵點圖像,采用滑動步長為16(網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計而來)像素為128×128的滑動窗口采集圖像信息。將采集后的圖像送入卷積網(wǎng)絡(luò)進行構(gòu)建:前4層卷積網(wǎng)絡(luò)步長為2,為保證布料數(shù)據(jù)完整性,通道數(shù)隨卷積層數(shù)逐層成倍增加;第5、6層卷積網(wǎng)絡(luò)步長為1,通道數(shù)分別為256、512;第7層網(wǎng)絡(luò)步長為1并輸出兩個高維特征。
圖3 網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Network structure
通過卷積計算獲取圖像高維特征后,送入softmax損失函數(shù)求解特征概率,公式為
(2)
傳統(tǒng)NMS算法運用交并比(interection-cover-union,IOU)進行多框合并,保留最優(yōu)框,如式(3)所示:
(3)
式(3)中:A、B代表兩個檢測框面積;若存在單個置信度較高的誤檢框,傳統(tǒng)NMS算法無法準確判定。針對這一問題,提出一種改進的NMS算法,采用多框合并的方式過濾疵點,減少誤檢:首先將所有判斷為疵點的候選框保留并進行置信度降序排列,選取最大置信度候選框Pi,并將該框與剩余框進行交并比計算;然后統(tǒng)計與最大框交并比大于閾值的數(shù)量N,并將此類候選框送入特定集合H中,對該集合求平均置信度P(average probability),公式為
(4)
獲取概率閾值M(概率閾值通過測試集測試結(jié)果統(tǒng)計獲得):①若C>M,即確定最終候選框位置,并顯示為紅色,如圖4所示;②若C 圖4 確定疵點圖像Fig.4 Determining the defect image 圖5 誤檢疵點圖像Fig.5 False detection of defect image 為使本文算法適用于實際生產(chǎn)中各類生產(chǎn)線,并且讓模型脫離圖形處理器(graphics processing unit,GPU)顯存限制,能夠在普通設(shè)備中高速運行,提出一種特征圖分割算法:將原始圖像分割為多塊,并行運行。具體公式如下: X=(6 000+px*s-1)/(px*s) (5) Y=(4 000+py*s-1)/(py*s) (6) 式中:6 000×4 000為輸入待測圖像素大小;px、py分別為水平和垂直方向切分數(shù)量;s為滑動窗口步長,通過取整操作“/”獲取水平方向和垂直方向的滑動次數(shù)X、Y。本文在實際分割中以步長為16,像素大小為128×128的滑動窗口遍歷整個待測圖,為避免切分塊邊長與步長無法整除造成邊緣特征遺漏,將原始圖像擴充為W、H,具體求取公式如下: W=(px*s)X+112 (7) H=(py*s)Y+112 (8) 式中:W、H分別為擴充后圖像的長和寬,此時除最后一組分塊外其余每個塊的長、寬分別為步長s與水平和垂直方向滑動次數(shù)X、Y的乘積,保證每一個分塊邊長都為s倍數(shù),避免特征遺漏;并且對水平和垂直方向上的最后一組分塊補112的邊緣框(根據(jù)滑動窗口與步長差值設(shè)定),避免原始圖邊緣信息遺漏,具體邊緣添加方式與卷積中補padding相同。實際生產(chǎn)線中根據(jù)GPU顯存大小確定分塊數(shù)量,在滿足設(shè)備硬件要求的情況下,有效提升模型檢測速度和檢測精度,實驗結(jié)果表明該算法可使每張圖片檢測時間縮減120 ms左右。 試驗中使用準確率A(accuracy)作為網(wǎng)絡(luò)模型評判的總指標,表示檢測正確布料疵點的樣本數(shù)占總樣本的比值,它是對檢測結(jié)果做客觀的評判,公式為 A=(TP+TN)/(TP+TN+FP+FN) (9) 式(9)中:TP(true positive)表示將正類預(yù)測為正類數(shù),結(jié)果為真;TN(true negtive)表示將負類預(yù)測為負類數(shù),結(jié)果為真;FP(false positive)表示將負類預(yù)測為正類數(shù),結(jié)果為假,屬誤報;FN(false negative)表示將正類預(yù)測為負類數(shù),結(jié)果為假,屬漏報。 圖像采集過程中使用6 000×4 000的高性能攝像機,該相機可清晰拍攝布料細節(jié)紋理;與補光燈組成硬件裝置,運用紅外裝置檢測目標是否處于待測狀態(tài),標志物離開自動進行圖像采集。以某布料生產(chǎn)企業(yè)生產(chǎn)線上的7種顏色(包括藏藍色、金灰色、暗紅色、粉紅色、暗紫色、淺黃色、灰白色)多紋理布料為采集對象,疵點包括不同顏色(黑色、粉色、紅色、紫色、棕色、青色、白色、藏藍色)、形狀(包括臟污、刮紗、織稀、跳花)、大小(直徑大小涉及0.2 mm 及以上不等);與正常無疵點圖像建立數(shù)據(jù)集。其中正樣本如圖6所示,為150萬數(shù)據(jù)集;負樣本如圖7所示,為150萬數(shù)據(jù)集;由于細微疵點形態(tài)大小各異本研究增加35萬困難樣本如圖8所示。 圖6 布料紋理圖Fig.6 Fabric texture map 圖7 疵點樣式圖Fig.7 Defect pattern 圖8 困難樣本圖Fig.8 Difficult sample map 原始數(shù)據(jù)集采集的疵點圖像尺寸較大,且數(shù)據(jù)集數(shù)量不充分,疵點類別不均衡,因此,對數(shù)據(jù)集做預(yù)處理,進行數(shù)據(jù)擴充。為改善采集過程中受拍攝角度、光照環(huán)境、光線等因素影響,對所有布料進行多次采樣,再將采集的圖像分為多個子圖,人工標記子圖瑕疵類別,最后對不同類別疵點進行縮放、高斯模糊、顏色增強等變換。 為減少疵點誤檢,提出一種改進的NMS算法,在私有數(shù)據(jù)集中隨機選取1 000(共3 124個疵點)張待測布料圖片進行測試,對傳統(tǒng)的NMS算法與改進后的NMS算法進行對比,結(jié)果如表2所示,改進后的NMS在疵點檢測率基本不變的前提下有效減少誤檢情況。 訓(xùn)練實驗建立在Win7系統(tǒng),i7處理器,顯卡NVIDIA GTX 1080Ti上,最大迭代次數(shù)為10 000,初始學(xué)習(xí)率為0.02,權(quán)重衰減系數(shù)為0.000 5,布料疵點檢測結(jié)果顯示在設(shè)計的用戶界面(user interface,UI)。 實際檢測結(jié)果如表3所示,給出7種顏色布料的檢測準確率,每種顏色含4種形狀的疵點(疵點包含不同大小、顏色),可確保測試集的充分性和實驗結(jié)果的可靠性。實驗結(jié)果表明,該網(wǎng)絡(luò)對不同顏色的布料都有較理想的檢測效果,且對于各類布料中位置和形狀難以觀察的細微疵點都有較高準確率。 表2 NMS算法性能比較 表3 布料疵點檢測準確率 將本文采用的基于卷積神經(jīng)網(wǎng)絡(luò)的布料疵點檢測算法與傳統(tǒng)的織物檢測算法做比較。尤其在檢測速度,檢測精度,檢測效率及其適用性上進行對比,結(jié)果如表4所示,其中,基于卷積神經(jīng)網(wǎng)絡(luò)的算法有效改善已有算法存在的缺陷,在兼顧檢測速度與檢測精度的同時,可適用于更大范圍布料,綜合效率明顯高于已有方法。 針對傳統(tǒng)布料檢測方法誤檢、漏檢較多等問題,提出基于卷積神經(jīng)網(wǎng)絡(luò)的疵點檢測方法,顯著提高疵點檢測效率。其中,數(shù)據(jù)預(yù)處理階段根據(jù)實地工廠調(diào)研結(jié)果采集缺陷樣本,并進行數(shù)據(jù)標記、擴充;將預(yù)處理后的樣本送入卷積神經(jīng)網(wǎng)絡(luò)進行構(gòu)建,并利用反向傳播算法調(diào)整參數(shù);緊接著采用改進的NMS算法,多框合并,過濾誤檢;為使網(wǎng)絡(luò)模型具有更強魯棒性,最后提出特征圖分割算法。實驗結(jié)果驗證了算法有效性,針對測試集疵點平均識別率可達99.6%,檢測速度可達3 f/s,算法適用性較強,能夠?qū)崿F(xiàn)工業(yè)生產(chǎn)中對布料的檢測要求,并且該算法硬件要求較低,可實現(xiàn)批量化生產(chǎn)。 表4 織物疵點檢測中幾種典型算法比較1.3 特征圖分割算法
2 實驗結(jié)果與分析
2.1 評估指標
2.2 建立布料疵點數(shù)據(jù)集
2.3 改進的NMS性能比較
2.4 訓(xùn)練結(jié)果分析
3 結(jié)論