王理順 鐘勇 李振東 賀宜龍
摘 要:織物缺陷在線檢測(cè)是紡織行業(yè)面臨的重大難題,針對(duì)當(dāng)前織物缺陷檢測(cè)中存在的誤檢率高、漏檢率高、實(shí)時(shí)性不強(qiáng)等問(wèn)題,提出了一種基于深度學(xué)習(xí)的織物缺陷在線檢測(cè)算法。首先基于GoogLeNet網(wǎng)絡(luò)架構(gòu),并參考其他分類模型的經(jīng)典算法,搭建出適用于實(shí)際生產(chǎn)環(huán)境的織物缺陷分類模型;其次利用質(zhì)檢人員標(biāo)注的不同種類織物圖片組建織物缺陷數(shù)據(jù)庫(kù),并用該數(shù)據(jù)庫(kù)對(duì)織物缺陷分類模型進(jìn)行訓(xùn)練;最后對(duì)高清相機(jī)在織物驗(yàn)布機(jī)上采集的圖片進(jìn)行分割,并將分割后的小圖以批量的方式傳入訓(xùn)練好的分類模型,實(shí)現(xiàn)對(duì)每張小圖的分類,以此來(lái)檢測(cè)缺陷并確定其位置。對(duì)該模型在織物缺陷數(shù)據(jù)庫(kù)上進(jìn)行了驗(yàn)證。實(shí)驗(yàn)結(jié)果表明:織物缺陷分類模型平均每張小圖的測(cè)試時(shí)間為0.37ms,平均測(cè)試時(shí)間比GoogLeNet減少了67%,比ResNet-50減少了93%;同時(shí)模型在測(cè)試集上的正確率達(dá)到99.99%。說(shuō)明其準(zhǔn)確率與實(shí)時(shí)性均滿足實(shí)際工業(yè)需求。
關(guān)鍵詞:圖像處理;深度學(xué)習(xí);卷積神經(jīng)網(wǎng)絡(luò);缺陷檢測(cè)
Abstract:On-line detection of fabric defects is a major problem faced by textile industry. Aiming at the problems such as high false positive rate, high false negative rate and low real-time in the existing detection of fabric defects, an on-line detection algorithm for fabric defects based on deep learning was proposed. Firstly, based on GoogLeNet network architecture, and referring to classical algorithm of other classification models, a fabric defect classification model suitable for actual production environment was constructed. Secondly, a fabric defect database was set up by using different kinds of fabric pictures marked by quality inspectors, and the database was used to train the fabric defect classification model. Finally, the images collected by high-definition camera on fabric inspection machine were segmented, and the segmented small images were sent to the trained classification model in batches to realize the classification of each small image. Thereby the defects were detected and their positions were determined. The model was validated on a fabric defect database. The experimental results show that the average test time of each small picture is 0.37ms by this proposed model, which is 67% lower than that by GoogLeNet, 93% lower than that by ResNet-50, and the accuracy of the proposed model is 99.99% on test set, which shows that its accuracy and real-time performance meet actual industrial demands.
Key words: image processing; deep learning; convolutional neural network; defect detection
0 引言
實(shí)現(xiàn)織物缺陷在線實(shí)時(shí)檢測(cè)對(duì)于加速紡織行業(yè)自動(dòng)化改造、節(jié)約生產(chǎn)成本、提高生產(chǎn)效率、實(shí)現(xiàn)產(chǎn)業(yè)升級(jí)具有重要意義。目前織物缺陷檢測(cè)主要有人工檢測(cè)和基于紋理分析方式檢測(cè)。其中人工檢測(cè)方式存在高成本、低效率且高誤檢率、高漏檢率等一系列問(wèn)題。基于紋理分析方式檢測(cè)的方法主要有Haralick等[1]提出的基于二階灰度統(tǒng)計(jì)特征的共生矩陣方法、在頻率域提取特征的小波變換法[2]、基于模型算法的馬爾可夫隨機(jī)場(chǎng)法[3],這些方法為實(shí)現(xiàn)織物缺陷自動(dòng)檢測(cè)作出重要貢獻(xiàn),但由于實(shí)際生產(chǎn)環(huán)境中的織物種類多,缺陷類型變化大,基于紋理分析檢測(cè)缺陷的方法由人工設(shè)計(jì)的特征不能完全覆蓋所有缺陷的特點(diǎn),因此,這些模型的準(zhǔn)確率和泛化能力較弱,很難滿足實(shí)際工業(yè)要求。
近年來(lái)隨著深度學(xué)習(xí)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)在圖像識(shí)別[4]、目標(biāo)檢測(cè)[5]、目標(biāo)分割[6]上取得了一系列重大進(jìn)展,其中有代表性的圖像識(shí)別網(wǎng)絡(luò)主要有Alex網(wǎng)絡(luò)(Alex Networking, AlexNet)[7]、視覺(jué)幾何組網(wǎng)絡(luò)(Visual Geometry Group Networking, VGGNet)[8]、Google網(wǎng)絡(luò)(GoogLe Networking, GoogLeNet)[9]、殘差網(wǎng)絡(luò)(Residential Networking, ResNet)[10]。這些經(jīng)典分類模型在ImageNet大規(guī)模視覺(jué)識(shí)別挑戰(zhàn)賽(ImageNet Large Scale Visual Recognition Challenge, ILSVRC)上獲得極大成功,其中ResNet-152[10]網(wǎng)絡(luò)更是在該挑戰(zhàn)賽上獲得了4.49%的Top5錯(cuò)誤率。由于神經(jīng)網(wǎng)絡(luò)無(wú)需手工設(shè)計(jì)特征,且具有特征提取能力強(qiáng)、分類準(zhǔn)確率高等特點(diǎn),因此本文提出了一種基于深度學(xué)習(xí)的織物缺陷在線檢測(cè)算法。傳統(tǒng)的經(jīng)典分類網(wǎng)絡(luò)算法雖然有著較高的分類準(zhǔn)確率,但其模型復(fù)雜度高、參數(shù)量大,網(wǎng)絡(luò)的實(shí)時(shí)性較差,很難滿足實(shí)際工業(yè)需求。本文基于GoogLeNet網(wǎng)絡(luò)架構(gòu),并綜合其他分類模型的一些經(jīng)典思想算法,不斷對(duì)原模型進(jìn)行改進(jìn)與優(yōu)化,搭建出一個(gè)適用于實(shí)際工業(yè)需求的織物缺陷分類模型。最后進(jìn)行工程優(yōu)化,以批量測(cè)試的方法對(duì)圖片進(jìn)行分類預(yù)測(cè),模型的準(zhǔn)確率與實(shí)時(shí)性均達(dá)到實(shí)際工業(yè)需求。
1 深度卷積神經(jīng)網(wǎng)絡(luò)
卷積神經(jīng)網(wǎng)絡(luò)最早由LeCun在1989年提出,即LeNet網(wǎng)絡(luò)[11]的最初版本,后對(duì)該網(wǎng)絡(luò)經(jīng)過(guò)不斷改進(jìn)與優(yōu)化,誕生了LeNet-5網(wǎng)絡(luò),成功應(yīng)用于手寫數(shù)字集MNIST(Mixed National Institute of Standards and Technology)識(shí)別上。該網(wǎng)絡(luò)包含兩個(gè)卷積層、兩個(gè)池化層和三個(gè)全鏈接層,激活函數(shù)為Sigmoid函數(shù),通過(guò)反向傳播對(duì)模型進(jìn)行訓(xùn)練,通過(guò)卷積層實(shí)現(xiàn)局部連接和權(quán)值共享,通過(guò)池化層實(shí)現(xiàn)了局部平移不變性。通過(guò)這些方法,有效降低了模型復(fù)雜度,提高了模型的準(zhǔn)確率與泛化能力。目前經(jīng)典的目標(biāo)識(shí)別網(wǎng)絡(luò),如VGGNet系列、GoogLeNet系列、ResNet系列均借鑒這一基本思想,同時(shí)這幾個(gè)系列的網(wǎng)絡(luò)也常常作為目標(biāo)檢測(cè)、目標(biāo)分割的基礎(chǔ)網(wǎng)絡(luò)。表1對(duì)比了目前幾個(gè)經(jīng)典分類網(wǎng)絡(luò),其中VGGNet網(wǎng)絡(luò)結(jié)構(gòu)用的是特別小的3×3的卷積核,首次將卷積層提升到卷積塊,同時(shí)多次使用線性整流函數(shù)(Rectified Linear Unit, ReLU)[12]作為激活函數(shù)替代Sigmoid函數(shù),一定程度上防止了梯度消失,但其參數(shù)量巨大,需要很大的存儲(chǔ)空間。GoogLeNet提出了Inception模塊,如圖1所示,能夠在一個(gè)網(wǎng)絡(luò)層提取出不同尺度特征,在增加網(wǎng)絡(luò)寬度與深度的同時(shí),減少了模型參數(shù),降低了模型復(fù)雜度,充分利用了計(jì)算資源,同時(shí)加入局部響應(yīng)歸一化層(Local Response Normalization, LRN)和Dropout層,有效避免了模型過(guò)擬合現(xiàn)象,另外GoogLeNet還借鑒了NIN(Network in Network)網(wǎng)絡(luò)[13]中bottleneck思想,并用全局平均池化層代替全鏈接層,進(jìn)一步降低了模型復(fù)雜度,減少了模型參數(shù)。ResNet提出殘差結(jié)構(gòu),如圖2所示,使得訓(xùn)練超級(jí)深的網(wǎng)絡(luò)成為可能,避免了網(wǎng)絡(luò)加深到一定程度準(zhǔn)確率達(dá)到飽和的現(xiàn)象,網(wǎng)絡(luò)層數(shù)可以增加到1000層[14]以上,同時(shí)整個(gè)網(wǎng)絡(luò)只需要學(xué)習(xí)殘差,降低了學(xué)習(xí)難度。
2 基于深度學(xué)習(xí)的織物缺陷檢測(cè)算法
2.1 基于深度學(xué)習(xí)的織物缺陷檢測(cè)算法流程
本文所提出的基于深度學(xué)習(xí)的織物缺陷檢測(cè)算法由三部分構(gòu)成,如圖3所示。首先由于在織物驗(yàn)布機(jī)上采集的圖片大小為4032×4928,而缺陷分類網(wǎng)絡(luò)輸入大小為224×224,為了實(shí)現(xiàn)全覆蓋檢測(cè),本文將每張采集圖片分割出396張小圖,并記好每張分割圖片在原圖中相對(duì)位置;然后將分割后的圖片傳入訓(xùn)練好的缺陷分類模型,對(duì)所有圖片進(jìn)行分類;最后將有缺陷的圖片依據(jù)相對(duì)位置在原圖上進(jìn)行定位,以此來(lái)找出缺陷并確定其位置。其中分割部分僅僅是將采集大圖的內(nèi)存數(shù)據(jù)按分類網(wǎng)絡(luò)輸入大小進(jìn)行邏輯切分,然后以多線程的方式讀入分類網(wǎng)絡(luò),由于大圖數(shù)據(jù)位于內(nèi)存,且采用多線程方式進(jìn)行讀取,分割部分耗時(shí)相對(duì)于分類部分耗時(shí)可忽略不計(jì),本文主要對(duì)缺陷分類網(wǎng)絡(luò)進(jìn)行優(yōu)化。
2.2 缺陷分類模型
本文模型主要參考GoogLeNet網(wǎng)絡(luò)架構(gòu),考慮到工業(yè)對(duì)于實(shí)時(shí)性與準(zhǔn)確率的要求,本文綜合其他分類模型的一些經(jīng)典思想算法,對(duì)模型進(jìn)行了改進(jìn)與優(yōu)化,使模型在保證準(zhǔn)確率的同時(shí),實(shí)時(shí)性能達(dá)到工業(yè)要求。改進(jìn)后的模型如圖4所示。
網(wǎng)絡(luò)由兩個(gè)卷積層、三個(gè)池化層、一個(gè)Inception層和一個(gè)全鏈接層組成,最后用Softmax函數(shù)進(jìn)行分類。輸入圖像大小為224×224的灰度圖像,第一層有32個(gè)7×7的卷積核,滑動(dòng)步長(zhǎng)為2,padding為3,輸出32個(gè)大小為112×112的特征圖,后接一個(gè)滑動(dòng)步長(zhǎng)為2、核大小為2×2最大池化層,特征圖大小變?yōu)?6×56;第二層有32×64個(gè)3×3的卷積核,滑動(dòng)步長(zhǎng)為1,padding為1,輸出64個(gè)大小為56×56的特征圖,后接一個(gè)滑動(dòng)步長(zhǎng)為2、核大小為2×2的最大池化層,特征圖大小變?yōu)?8×28;第三層為一個(gè)Inception層,最后輸出224個(gè)大小為28×28的特征圖,后接一個(gè)滑動(dòng)步長(zhǎng)為1、核大小為28×28的全局平均池化層,輸出224個(gè)1×1的特征圖。由于只需要找出缺陷相對(duì)位置,本文為降低模型復(fù)雜度,提高模型準(zhǔn)確率,將所有缺陷樣本歸為一類。最后通過(guò)Softmax函數(shù)對(duì)圖像進(jìn)行正負(fù)樣本劃分。除池化層外,每層網(wǎng)絡(luò)后面都添加一個(gè)BatchNorm層[15]作歸一化處理,以加速收斂,提高模型泛化能力。激活函數(shù)為ReLU函數(shù),同時(shí)去掉了GoogLeNet網(wǎng)絡(luò)中的LRN層與dropout層,并直接減少網(wǎng)絡(luò)層數(shù)和每層的卷積核數(shù),減輕降低了模型的復(fù)雜度,提高了模型的處理速度。
2.3 數(shù)據(jù)增強(qiáng)
更多的數(shù)據(jù)有利于提高模型的泛化能力。本文所有數(shù)據(jù)均來(lái)源于織物驗(yàn)布機(jī)上的實(shí)時(shí)高清圖,所有缺陷均由經(jīng)驗(yàn)豐富的質(zhì)檢人員進(jìn)行標(biāo)注。但由于每種缺陷采集的圖片相對(duì)較少,為了不讓模型出現(xiàn)過(guò)擬合現(xiàn)象,本文使用數(shù)據(jù)增強(qiáng)技術(shù)來(lái)擴(kuò)充現(xiàn)有數(shù)據(jù)集,以此來(lái)提高模型的泛化能力。數(shù)據(jù)增強(qiáng)的方式有很多,通過(guò)對(duì)數(shù)據(jù)集的分析,本研究發(fā)現(xiàn)部分缺陷相對(duì)較小,圖像縮放很有可能導(dǎo)致這些缺陷丟失,因此在擴(kuò)充數(shù)據(jù)時(shí)沒(méi)有對(duì)圖片進(jìn)行縮放。最終擴(kuò)充數(shù)據(jù)集的方式主要有:隨機(jī)左右翻轉(zhuǎn),隨機(jī)旋轉(zhuǎn)90°、180°,隨機(jī)亮度變化。部分缺陷預(yù)處理效果如圖5所示。
3 實(shí)驗(yàn)與結(jié)果分析
3.1 實(shí)驗(yàn)環(huán)境
本實(shí)驗(yàn)數(shù)據(jù)集共有30000張大小為224×224的灰度圖片,數(shù)據(jù)集基本包含所有紋理織物正樣本及其缺陷樣本。其中正樣本20000張,負(fù)樣本10000張,正負(fù)樣本各按4∶1的比例將圖片隨機(jī)劃分為訓(xùn)練集、測(cè)試集。本實(shí)驗(yàn)環(huán)境為Windows 7操作系統(tǒng),16GB內(nèi)存,NVIDIA GeForce GTX 1080ti顯卡,最終在Visual Studio 2013上用Caffe深度學(xué)習(xí)框架進(jìn)行訓(xùn)練。
3.2 訓(xùn)練
本實(shí)驗(yàn)采用隨機(jī)梯度下降(Stochastic Gradient Descent, SGD)[16]方法進(jìn)行訓(xùn)練,每次隨機(jī)選取一個(gè)batch的圖片對(duì)模型進(jìn)行訓(xùn)練。最后的分類結(jié)果采用Softmax函數(shù)進(jìn)行計(jì)算:
其中:ai為網(wǎng)絡(luò)輸出結(jié)果為類別i的概率,xi為網(wǎng)絡(luò)最后一層第i個(gè)節(jié)點(diǎn)的輸出值,n為劃分類別總數(shù)。
損失函數(shù)為交叉熵?fù)p失函數(shù):
其中yi為類別i的真實(shí)標(biāo)簽。當(dāng)類別為i時(shí),yi等于1;否則yi等于0。
為加速收斂,減少模型收斂過(guò)程中的震蕩,本文算法加入了動(dòng)量(momentum)因子[17],最終模型權(quán)重更新策略為:
其中:wt為權(quán)重;vt為每次權(quán)重更新量;dw為梯度方向;momentum為動(dòng)量因子,本實(shí)驗(yàn)設(shè)置為0.9;η為初始化學(xué)習(xí)率,本實(shí)驗(yàn)設(shè)為0.0001,為使模型收斂,每迭代400次,就對(duì)學(xué)習(xí)率進(jìn)行一定程度的衰減,學(xué)習(xí)率衰減過(guò)程如圖6所示。
3.3 結(jié)果與分析
最終本研究在數(shù)據(jù)集上分別對(duì)GoogLeNet、ResNet-50和本文模型(LocalModel)進(jìn)行訓(xùn)練,各個(gè)網(wǎng)絡(luò)的收斂速度和準(zhǔn)確率如圖7、圖8所示。從圖7、圖8可以看出600s時(shí)本文模型損失率下降到0.032,準(zhǔn)確率達(dá)到99.99%。同時(shí)準(zhǔn)確率有隨著損失率的下降而升高的趨勢(shì),說(shuō)明模型并沒(méi)有出現(xiàn)過(guò)擬合現(xiàn)象,泛化能力較強(qiáng)。另外,從圖8可以看出,本文模型收斂速度明顯高于GoogLeNet和ResNet-50這兩個(gè)經(jīng)典分類模型;從圖7可以看出,在較短訓(xùn)練時(shí)間內(nèi),本文模型的準(zhǔn)確率也明顯高于其他兩個(gè)經(jīng)典分類模型。
為提高預(yù)測(cè)速度,充分利用顯存資源。本文采用批量(batch)測(cè)試的方法。如表2所示,由于每個(gè)模型所需內(nèi)存大小不同,各個(gè)模型的batch大小也有所差異。實(shí)驗(yàn)表明,LocalModel、GoogLeNet、ResNet-50的最佳batch大小分別為100,30,20。通過(guò)批量測(cè)試的方法,本文模型每張小圖的平均測(cè)試時(shí)間為0.37ms,每張小圖的平均測(cè)試時(shí)間比GoogLeNet減少了67%,比ResNet-50減少了93%。
實(shí)驗(yàn)結(jié)果表明,本文所提出的基于深度學(xué)習(xí)的織物缺陷檢測(cè)模型,通過(guò)融合幾個(gè)經(jīng)典分類網(wǎng)絡(luò)思想方法,不斷優(yōu)化網(wǎng)絡(luò),在保證分類準(zhǔn)確率的同時(shí),提高了模型的實(shí)時(shí)性,最終達(dá)到工業(yè)對(duì)準(zhǔn)確率和實(shí)時(shí)性的要求。
4 結(jié)語(yǔ)
本文通過(guò)對(duì)驗(yàn)布機(jī)上獲取的織物樣本進(jìn)行分析,對(duì)幾個(gè)經(jīng)典的分類神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn)融合,最終提出了一種能滿足實(shí)際工業(yè)需求的神經(jīng)網(wǎng)絡(luò)分類模型,經(jīng)過(guò)實(shí)驗(yàn)對(duì)比,模型的時(shí)間復(fù)雜度、空間復(fù)雜度均低于傳統(tǒng)的幾個(gè)經(jīng)典分類模型;同時(shí)模型具有收斂速度快、泛化能力強(qiáng)等優(yōu)點(diǎn)。最后通過(guò)工程優(yōu)化,充分利用顯卡資源,實(shí)現(xiàn)批量測(cè)試,極大提高了模型的單張圖片平均測(cè)試時(shí)間,準(zhǔn)確率和實(shí)時(shí)性均達(dá)到實(shí)際工業(yè)要求,為傳統(tǒng)紡織行業(yè)實(shí)現(xiàn)工業(yè)升級(jí)提供堅(jiān)實(shí)技術(shù)保障。雖然模型將傳統(tǒng)的經(jīng)典分類網(wǎng)絡(luò)作了極大優(yōu)化,但模型的計(jì)算復(fù)雜度仍然很高,需要在高速顯卡上才能完成快速實(shí)時(shí)計(jì)算,以此來(lái)保證實(shí)時(shí)性。未來(lái)還可以通過(guò)模型壓縮等方法進(jìn)一步優(yōu)化模型,減少模型占用空間,提高模型處理速度。
參考文獻(xiàn) (References)
[1] HARALICK R M, SHANGMUGAN K, DINSTEIN I. Textural features for image classification[J]. IEEE Transactions on Systems, Man, and Cybernetics, 1973, 3(6): 610-621.
[2] NGAN H Y T, PANG G K H, YUNG S P, et al. Wavelet based methods on patterned fabric defect detection[J]. Pattern Recognition, 2005, 38(4): 559-576.
[3] 張楊,蔣高明,姚君洲,等.基于MRF層次模型的賈失經(jīng)編針織物圖像分割技術(shù)[J].紡織學(xué)報(bào),2012,33(12):102-106.(ZHANG Y, JIANG G M, YAO J Z, et al. Segmentation of jacquard warp-knitted fabric image based on hierarchical Markov random field model[J]. Journal of Textile Research, 2013, 33(12): 102-106.)
[4] SZEGEDY C, IOFFE S, VANHOUCKE V, et al. Inception-v4, Inception-ResNet and the impact of residual connections on learning [EB/OL] (2016-08-23) [2018-10-15]. https://arxiv.org/pdf/1602.07261.pdf.
[5] LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot multibox detector [EB/OL]. [2018-10-15] https://arxiv.org/pdf/1512.02325.pdf.
[6] CHEN L C, PAPANDREOU G, KOKKINOS I, et al. DeepLab: semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected CRFs[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2016, 40(4): 834-848.
[7] KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks[C]// Proceedings of the 9th International Conference on Neural Information Processing Systems. Berlin: Springer, 2012: 1097-1105.
[8] SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition [EB/OL]. (2015-04-10) [2018-10-15]. https://arxiv.org/abs/1409.1556.
[9] SZEGEDY C, LIU W, JIA Y, et al. Going deeper with convolutions [EB/OL]. (2014-07-17) [2016-12-10]. https://arxiv.org/abs/1409.4842.
[10] HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition[EB/OL]. (2015-12-10) [2018-10-15]. https://arxiv.org/abs/1512.03-385.
[11] LeCUN Y, BOTTOU I, BENGIO Y, et al. Gradient-based learning applied do document recognition [J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324.
[12] JARRETT K, KAVUKCUOGLU K, RANZATO M, et al. What is the best multi-stage architecture for object recognition? [EB/OL] [2018-10-15]. http://yann.lecun.com/exdb/publis/orig/jarrett-iccv-09.pdf.
[13] LIN M, CHEN Q, YAN S. Network in network[EB/OL]. (2014-03-04) [2018-10-15]. https://arxiv.org/abs/1312.4400.
[14] HE K, ZHANG X, REN S, et al. Identity mappings in deep residual networks [EB/OL]. (2016-07-25) [2018-10-15]. http://arxiv.org/obs/1603.05027.
[15] IOFFE S, SZEGEDY C. Batch normalization: accelerating deep network training by reducing internal covariate shift [EB/OL]. [2018-10-15]. http//arxiv.org/pdf/1502.03167.pdf.
[16] BOTTOU L. Large-scale machine learning with stochastic gradient descent [C]// Proceedings of the 19th International Conference on Computational Statistics. Berlin: Springer, 2010: 177-186.
[17] RUDER S. An overview of gradient descent optimization algorithms [EB/OL]. (2017-06-15) [2018-10-15]. https://arxiv.org/abs/1609.04747.