曾永恒,張鵬飛,郭龍龍,臧紹飛
(河南科技大學信息工程學院,河南 洛陽471023)
在紡織生產(chǎn)中,布匹產(chǎn)生瑕疵的原因多種多樣。目前,我國紡織品的瑕疵檢測主要依賴人工,導致存在誤檢率高、成本高、效率低等不足[1]。因此,探尋新的紡織品瑕疵檢測方法對我國紡織業(yè)的發(fā)展有著重要意義。
目前,紡織品瑕疵檢測方法主要分為兩類[2]:一類是傳統(tǒng)圖像處理方法:如基于空間域的統(tǒng)計方法、基于頻率域的譜方法;另一類是基于深度學習的方法,本文方法屬于第二類。當前,基于深度學習的目標檢測算法分為兩類,分別是以YOLO系列為代表的One-stage網(wǎng)絡和以Faster-RCNN為代表的Two-stage網(wǎng)絡[3]。二者相較,One-stage網(wǎng)絡速度更快,但準確性低于Two-stage。
為此,本文提出一種基于樹莓派與深度神經(jīng)網(wǎng)絡的紡織物瑕疵檢測系統(tǒng)。該系統(tǒng)分為軟、硬件兩部分。軟件部分是將YOLOv3算法用于紡織品瑕疵缺陷檢測任務。該算法的輕量級版本與樹莓派相結合,既可兼顧經(jīng)濟性和實用性要求,又可提升紡織物瑕疵檢測精度。硬件部分采用攝像頭結合樹莓派進行實時檢測,既降低技術成本又增強了系統(tǒng)的移動性。
實際應用中,圖像采集、數(shù)據(jù)處理系統(tǒng)通常由工業(yè)相機、采集卡、工控機等組成。本系統(tǒng)硬件部分采用中央處理器、顯示器、攝像頭等構成。樹莓派因功耗低、體積小、成本低和運算能力強等優(yōu)點[4],被選為本系統(tǒng)的嵌入式開發(fā)設備,其參數(shù)如表1所示。攝像頭型號為通用型P5V04A。
表1 樹莓派參數(shù)
文中樹莓派選用Raspbian系統(tǒng)。采用YOLOv3進行瑕疵檢測,由于在訓練過程中會產(chǎn)生大量參數(shù),對計算設備要求較高。因此,選擇先在PC機上離線訓練模型,再將已訓練模型移植嵌入式系統(tǒng),實現(xiàn)檢測任務。
YOLO系列目標檢測具有檢測速度快、魯棒性強、誤判率低等優(yōu)點。YOLOv3[5]是YOLO系列的第三代算法,模型結構如圖1所示。
該算法的主干特征提取網(wǎng)絡為Darknet-53,并引入了殘差結構,既解決了梯度爆炸問題,又可捕捉不同尺度的特征信息,使得特征提取網(wǎng)絡更易訓練與優(yōu)化。
YOLOv3算法的損失函數(shù)由定位損失、置信度損失和分類損失三部分組成。定位損失使用方差函數(shù)計算,目標置信度損失和類別損失都使用二值交叉熵函數(shù)計算,其損失函數(shù)如式(1)。其中,lbox(l,g)為目標定位偏移量損失函數(shù);lobj(o,c)為目標置信度損失函數(shù);lcls(O,C)為目標類別損失函數(shù);λ1、λ2、λ3為平衡權重系數(shù)。
loss=λ1lbox(l,g)+λ2lobj(o,c)+λ3lcls(O,C) .
(1)
圖1 YOLOv3模型結構
為了進一步適應樹莓派,我們選擇YOLOv3的tiny版[6],它具有精簡、實時性高和高檢測精度的特點。該網(wǎng)絡采用7層卷積層和最大池化層的網(wǎng)絡提取特征,在檢測層中將YOLOv3的3個檢測層縮減為了2個,其網(wǎng)絡結構如圖2。
圖2 YOLOv3-tiny模型結構
本實驗的編程環(huán)境為Python3.6,使用深度學習框架Cuda10.1運算平臺和Cudnn8.0加速庫。PC機硬件配置為Intel(R) Core(TM)i7-9750H CPU @ 2.60 GHz、NVIDA GTX1650顯卡、操作系統(tǒng)為Ubuntu16.04。
圖3 數(shù)據(jù)集瑕疵類型
我們采用自己創(chuàng)建的紡織物圖像數(shù)據(jù)集進行實驗,它包含雙緯、竹節(jié)、異纖、拖紗4類瑕疵(如圖3)。使用退化、翻轉、縮放等對數(shù)據(jù)集進行擴展,得到每類圖像1000張,使用Labeling軟件進行圖像標注。采用800張訓練,200張測試。
在模型訓練中,輸入圖像像素為416×416,IOU閾值為0.45,學習率為0.001,迭代次數(shù)為5000,衰減系數(shù)為0.0005。設置batch=128,subdivision=16,batch值與訓練效果成正比關系,subdivision值與內(nèi)存占用成反比關系。
為驗證基于樹莓派進行紡織物瑕疵檢測的可行性,將在PC端訓練后的YOLOv3-tiny算法部署至樹莓派中運行,通過pi相機進行實時檢測,在屏幕上顯示實時目標檢測結果。官方版本YOLOv3-tiny主要通過GPU進行運算,對于樹莓派4B來說運行效果較差,采用darknet-NNPACK神經(jīng)網(wǎng)絡加速庫,可以在樹莓派4B上優(yōu)化到不錯的水平。NNPACK是一個卷積神經(jīng)網(wǎng)絡的加速包,可以在多核CPU的平臺上提高卷積層的計算性能。移植后的樹莓派檢測速率可達2 fps。檢測結果見圖4。
圖4 檢測結果
在該文中,設計了一種基于樹莓派與深度學習的目標檢測算法,實現(xiàn)紡織物瑕疵檢測。該方法采用YOLOv3-tiny進行瑕疵的檢測與識別,并在PC和樹莓派上結合攝像頭進行實時檢測。實驗結果表明,該算法在PC端的運行速度28 fps、準確率達83%,在樹莓派中運行時速度2 fps、準確率達83%。該系統(tǒng)在樹莓派中運行時精度可以滿足要求,但速度較慢。未來會通過對YOLOv3-tiny模型進行壓縮,以提升設計方法在樹莓派運行平臺上的檢測速度,作為新的研究方向。