熊昊,石紅瑞
(東華大學(xué),上海 201600)
布料缺陷檢測(cè)對(duì)紡織品質(zhì)量檢測(cè)與控制而言相當(dāng)重要。生成布料瑕疵的物質(zhì)因素很多,面料織造環(huán)節(jié)、紡織技術(shù)因素,以及其他環(huán)境因素都有可能引起布料表面產(chǎn)生瑕疵[1]。在自動(dòng)化或半自動(dòng)化生產(chǎn)過(guò)程中,必不可少的一個(gè)環(huán)節(jié)便是對(duì)成品的缺陷檢測(cè),以提高良品率。在紡織行業(yè),由于出現(xiàn)的故障導(dǎo)致產(chǎn)生量的廢布使得廠家支出更大的成本而苦不堪言。在布料制造過(guò)程中,隨著加工層次的增加,發(fā)生缺陷的幾率也就隨之升高,面對(duì)種類(lèi)繁多的缺陷,如何將其高效且準(zhǔn)確地檢測(cè)出來(lái)是一個(gè)難題。
傳統(tǒng)的布料檢測(cè)方式大致可以分為兩種:第一種檢測(cè)方式是在布料織造的同時(shí)由工人檢查是否產(chǎn)生了缺陷;第二種檢測(cè)方式是由工人將做已經(jīng)做好的布料送至驗(yàn)布機(jī)進(jìn)行檢測(cè),對(duì)缺陷處進(jìn)行識(shí)別和記錄,并將產(chǎn)生的缺陷記錄下來(lái)反饋到有關(guān)部門(mén),以便對(duì)織機(jī)進(jìn)行調(diào)整。傳統(tǒng)的人工檢測(cè)方式容易受到各種因素的影響,從而產(chǎn)生各種缺點(diǎn)與不足。從學(xué)習(xí)缺陷類(lèi)別到操作檢測(cè),從生疏到熟練,從新手到熟練工,都需要時(shí)間的沉淀。而且即便是進(jìn)階到了熟練工,也敵不過(guò)生理、心理上的疲勞,致使檢測(cè)效率大打折扣,人工成本較高的同時(shí)往往也無(wú)法取得較為理想的檢測(cè)結(jié)果。
隨著圖像處理技術(shù)、模式識(shí)別技術(shù)和計(jì)算機(jī)硬件條件的高速發(fā)展,越來(lái)越多的企業(yè)選擇用計(jì)算機(jī)視覺(jué)代替人工對(duì)產(chǎn)品的尺寸進(jìn)行測(cè)量、產(chǎn)品的質(zhì)量進(jìn)行檢測(cè)。和傳統(tǒng)肉眼檢測(cè)相比,通過(guò)計(jì)算機(jī)視覺(jué)檢測(cè)對(duì)產(chǎn)品進(jìn)行檢測(cè),不僅能夠達(dá)到較高的檢測(cè)精度,而且具有較快的檢測(cè)速度?,F(xiàn)在計(jì)算機(jī)視覺(jué)技術(shù)在產(chǎn)品缺陷檢測(cè)方面已經(jīng)得到國(guó)內(nèi)外專(zhuān)家、學(xué)者的普遍關(guān)注和認(rèn)可。
在深度學(xué)習(xí)算法普遍適用之前,視覺(jué)算法可以分為五個(gè)階段:特征識(shí)別、圖像預(yù)處理、特征提取、特征過(guò)濾、推理預(yù)測(cè)和識(shí)別。傳統(tǒng)的計(jì)算機(jī)視覺(jué)識(shí)別方法是單獨(dú)設(shè)計(jì)特征提取和分類(lèi)器,然后在應(yīng)用時(shí)結(jié)合。也就是說(shuō),對(duì)于輸入圖像,需要先執(zhí)行特征表示或特征提取過(guò)程,然后將表示或提取的特征放入學(xué)習(xí)算法中進(jìn)行分類(lèi),如圖1所示。
圖1 傳統(tǒng)計(jì)算機(jī)視覺(jué)算法分類(lèi)識(shí)別過(guò)程
上述的傳統(tǒng)檢測(cè)算法在一部分特定的應(yīng)用場(chǎng)景中已經(jīng)取得了不錯(cuò)的效果,但是依然存在著諸多不足之處,包括:圖像預(yù)處理階段步驟繁多,沒(méi)有較強(qiáng)的針對(duì)性,魯棒性較差、混合多種算法計(jì)算量較大,無(wú)法較為精確地對(duì)表面缺陷的形狀與大小進(jìn)行檢測(cè)。
如今,計(jì)算機(jī)視覺(jué)已經(jīng)成為深度學(xué)習(xí)技術(shù)的一個(gè)重要領(lǐng)域,隨著計(jì)算資源的不斷加速和成本的降低以及深度學(xué)習(xí)研究人員的不斷努力,它已經(jīng)取得了相當(dāng)顯著的成就。1998年,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network)模型[2]被提出。在缺陷檢測(cè)算法方面,卷積神經(jīng)網(wǎng)絡(luò)針對(duì)傳統(tǒng)算法存在的一部分問(wèn)題給出了有效的解決方案,該算法具有強(qiáng)大的數(shù)據(jù)表達(dá)能力,可用于輸入圖像,其不需要輸入分類(lèi)特征,而是由圖像數(shù)據(jù)集本身直接驅(qū)動(dòng)其自身對(duì)特征與表達(dá)關(guān)系的深度學(xué)習(xí),同時(shí)又具有訓(xùn)練參數(shù)少,模型構(gòu)建過(guò)程簡(jiǎn)單,分類(lèi)消耗時(shí)間短,準(zhǔn)確性高等優(yōu)點(diǎn)。
目前經(jīng)典的目標(biāo)檢測(cè)算法網(wǎng)絡(luò)模型大致可分為兩大類(lèi):一類(lèi)是單階段(one-stage)算法,代表算法有YOLO、SSD等算法;另一類(lèi)是雙階段(two-stage)算法,代表算法有R-CNN、Fast R-CNN、Faster R-CNN等算法。單階段(one-stage)算法雖然在檢測(cè)速度上優(yōu)于雙階段(two-stage)算法,但由于不包含區(qū)域建議的模塊,在檢測(cè)的準(zhǔn)確率方面會(huì)處于劣勢(shì)。
雖然深度學(xué)習(xí)的檢測(cè)方法在布料缺陷檢測(cè)方面的效果有所提升,但是布料圖像的復(fù)雜程度、缺陷處尺度較小以及缺陷形狀不規(guī)則等因素都會(huì)影響模型檢測(cè)的準(zhǔn)確率。
選用性能較為優(yōu)秀的Cascade R-CNN網(wǎng)絡(luò)模型,對(duì)布料圖像數(shù)據(jù)集進(jìn)行深度訓(xùn)練,調(diào)整檢測(cè)網(wǎng)絡(luò)的結(jié)構(gòu)與參數(shù),經(jīng)過(guò)多輪迭代,檢驗(yàn)?zāi)P偷男阅?,最終得出準(zhǔn)確率較高的檢測(cè)模型。
Cascade R-CNN算法[3]是基于Faster R-CNN算法[4]改進(jìn)的一種目標(biāo)檢測(cè)算法,其為了不斷優(yōu)化預(yù)測(cè)結(jié)果,級(jí)聯(lián)了多個(gè)檢測(cè)網(wǎng)絡(luò)。Cascade R-CNN的一大亮點(diǎn)在于,其與普通級(jí)聯(lián)有所區(qū)別,該算法的幾個(gè)檢測(cè)網(wǎng)絡(luò)是在根據(jù)不相同的IoU閾值所確定的正負(fù)樣本上訓(xùn)練所得到的。
Faster R-CNN算法在訓(xùn)練階段,RPN網(wǎng)絡(luò)會(huì)提出約兩千個(gè)的區(qū)域建議,這些區(qū)域建議被送入到Fast R-CNN結(jié)構(gòu)中,在Fast R-CNN結(jié)構(gòu)中,首先計(jì)算每個(gè)區(qū)域建議和gt之間的IoU,通過(guò)人為的設(shè)定一個(gè)IoU閾值(通常為0.5),把這些區(qū)域建議分為正樣本(前景)和負(fù)樣本(背景),并對(duì)這些正負(fù)樣本采樣,使得他們之間的比例盡量滿足1 ∶3,之后這些區(qū)域建議被送入到ROI池中,最后進(jìn)行分類(lèi)判別和box回歸。
在推理階段,RPN網(wǎng)絡(luò)提出了約三百個(gè)區(qū)域建議,這些區(qū)域建議被送入到Fast R-CNN結(jié)構(gòu)中,和訓(xùn)練階段不同的是,推理階段沒(méi)有辦法對(duì)這些區(qū)域建議采樣,因此它們直接進(jìn)入ROI池,之后進(jìn)行分類(lèi)判別和box回歸。
為了提高檢測(cè)的精確度,換句話說(shuō)就是要產(chǎn)生更高精度的box,那么我們可以提高產(chǎn)生正樣本的IoU閾值,這樣后面的檢測(cè)器接收到了更高精度的建議,自然能產(chǎn)生高精度box。但是這樣就會(huì)產(chǎn)生兩個(gè)問(wèn)題:第一,過(guò)擬合問(wèn)題:提高了IoU閾值,滿足這個(gè)閾值條件的區(qū)域建議必然比之前少了,容易導(dǎo)致過(guò)擬合。第二,更嚴(yán)重的mismatch問(wèn)題:R-CNN結(jié)構(gòu)自身就存在這個(gè)問(wèn)題,IoU閾值再提的更高,這個(gè)問(wèn)題就會(huì)更加嚴(yán)重。
在訓(xùn)練與推理兩個(gè)階段中,bbox回歸器的輸入分布是不一樣的,訓(xùn)練階段的輸入建議由于被采樣過(guò),IoU大于所設(shè)閾值,往往質(zhì)量更高,而推理階段的輸入建議由于沒(méi)有被采樣過(guò),可能包括很多IoU小于所設(shè)閾值的建議,一般質(zhì)量相對(duì)會(huì)差一些,這就是上文提到mismatch問(wèn)題,這個(gè)問(wèn)題是固有存在的,通常閾值取0.5時(shí),mismatch問(wèn)題還不會(huì)很?chē)?yán)重。因此,IoU閾值越高,mismatch的問(wèn)題就越凸顯了,更嚴(yán)重了。
由于單一閾值訓(xùn)練出的檢測(cè)器效果有限,因此Cascade R-CNN采用multi-stage的結(jié)構(gòu),每個(gè)階段都有一個(gè)不同的IoU閾值,其結(jié)構(gòu)如圖2所示。
圖2 Cascade R-CNN結(jié)構(gòu)圖
大多數(shù)RPN所提出的建議質(zhì)量較低,不能直接用于高閾值檢測(cè)器,而該算法的重采樣機(jī)制使用Cascade回歸,使每個(gè)階段的建議IoU閾值都得到提高,允許在前一階段重新采用該建議,以適應(yīng)更高的閾值。
特征圖金字塔網(wǎng)絡(luò)FPN(Feature Pyramid Networks)[5]通過(guò)簡(jiǎn)單地改變網(wǎng)絡(luò)連接來(lái)解決目標(biāo)檢測(cè)中的多尺度問(wèn)題,其大大提升了小目標(biāo)檢測(cè)的性能,并且原有模型的計(jì)算量基本沒(méi)有增加。FPN算法的大體結(jié)構(gòu)是:一條自下而上的線路,一條自上而下的線路,橫向連接(lateral connection)。1×1卷積核的主要作用是減少卷積核的數(shù)量,即在不改變特征圖大小的情況下減少特征圖的數(shù)量。FPN網(wǎng)絡(luò)放入?yún)^(qū)域建議網(wǎng)絡(luò)RPN(Region Proposal Network)中用于生成建議,之前生成建議都是在某一個(gè)特征圖中生成。如今在FPN中的每一層都可以生成不同尺度的建議。FPN算法同時(shí)利用低層特征高分辨率和高層特征的高語(yǔ)義信息,通過(guò)融合這些不同層的特征達(dá)到預(yù)測(cè)的效果。并且預(yù)測(cè)是在每個(gè)融合后的特征層上單獨(dú)進(jìn)行的,效果甚佳。
目標(biāo)識(shí)別領(lǐng)域一直有一個(gè)關(guān)鍵性的挑戰(zhàn),即在識(shí)別過(guò)程中如何適應(yīng)目標(biāo)尺寸、姿態(tài)和部件變形等幾何變化。而卷積神經(jīng)網(wǎng)絡(luò)模塊固定的幾何結(jié)構(gòu)缺乏處理幾何變換的內(nèi)部機(jī)制。可變形卷積DCN(Deformable Convolutional Networks)[6]使用額外的偏移來(lái)增強(qiáng)模塊中的空間采樣位置,并在沒(méi)有額外監(jiān)督的情況下從目標(biāo)任務(wù)中學(xué)習(xí)該偏移。它對(duì)標(biāo)準(zhǔn)的卷積中的感受野中,增加了2D的offsets,使得采樣的grid變形。這個(gè)offset通過(guò)增加額外的卷積層,從之前的特征圖中學(xué)習(xí)到。offsets是通過(guò)在特征圖上增加一個(gè)卷積層來(lái)得到的。這個(gè)卷積核的尺寸與可變形卷積的尺寸一致。輸出的offset fields有著與輸入特征圖一樣的尺寸,通道維度2N與N個(gè)2D的offsets相關(guān)聯(lián)。新的模塊可以很容易地取代現(xiàn)有卷積神經(jīng)網(wǎng)絡(luò)中的對(duì)應(yīng)模塊,并且很容易使用反向傳播端到端訓(xùn)練來(lái)形成新的可變形卷積網(wǎng)絡(luò)。
本文使用加入了FPN與DCN的改進(jìn)Cascade R-CNN算法,主干網(wǎng)絡(luò)為ResNet-50,編程語(yǔ)言為Python,在單卡NVIDIA Tesla V100(32GB顯存)的設(shè)備上進(jìn)行模型訓(xùn)練,batch size設(shè)置為22,迭代60000輪。與原本的Cascade R-CNN模型相比,改進(jìn)后的模型在預(yù)測(cè)速度上有了明顯的提升。模型訓(xùn)練的loss曲線如圖3。
圖3 模型loss曲線
模型的預(yù)測(cè)效果如圖4。
圖4 模型預(yù)測(cè)效果
為了提高對(duì)于布料表面缺陷的檢測(cè)能力,本文以Cascade R-CNN 模型為基礎(chǔ),提出加入FPN特征金字塔與DCN可變形卷積的改進(jìn),大大提高缺陷檢測(cè)的精準(zhǔn)度,并且提高了檢測(cè)速度,模型綜合性能不錯(cuò)。利用先進(jìn)的人工智能之深度學(xué)習(xí)技術(shù),設(shè)計(jì)和實(shí)現(xiàn)了一種針對(duì)布料表面缺陷檢測(cè)的解決方案,可有效提高企業(yè)的生產(chǎn)效率,節(jié)約企業(yè)的用工成本。但是,本文所使用的布料圖像數(shù)據(jù)集背景較為單一,基本均為純色背景,后續(xù)可以使用帶有花紋背景的布料圖像數(shù)據(jù)集進(jìn)行模型的訓(xùn)練,提高檢測(cè)模型的泛化能力,以便更好地適應(yīng)工業(yè)應(yīng)用場(chǎng)景。