金怡君,李振宇,楊絮
(1.常州大學(xué)懷德學(xué)院,江蘇 靖江 214500;2.江南大學(xué),江蘇 無錫 214122;3.南京理工大學(xué),南京 210014)
啤酒瓶金屬蓋是酒品包裝中重要組成部分,金屬蓋圖案與結(jié)構(gòu)的完整性,是消費(fèi)者對產(chǎn)品質(zhì)量的直觀判別依據(jù)之一。但受瓶蓋制造設(shè)備以及工藝等因素的制約,成品蓋往往會包含一些缺陷,如:污漬、劃痕、破損、形變等[1-2]。若含有包裝缺陷的產(chǎn)品進(jìn)入流通環(huán)節(jié),勢必會造成品牌形象下滑,加大企業(yè)的維護(hù)投入[3]。因而需借助缺陷檢測手段對金屬蓋表面進(jìn)行檢測,確保產(chǎn)品包裝的完整性,提高產(chǎn)品的競爭力。
目前,瓶蓋缺陷檢測多采用傳統(tǒng)人工和機(jī)器視覺2 種方式。人工方式工作強(qiáng)度大、檢測效率偏低且成本較高,無法滿足自動化快速檢測的需求[4]?;跈C(jī)器視覺的檢測技術(shù)不僅能夠彌補(bǔ)人工檢測方式的不足,缺陷檢測的準(zhǔn)確性和效率有了一定的提升,但其檢測部分所用的算法模型仍存在一些不足,如:計(jì)算量大,參數(shù)較多,模型結(jié)構(gòu)靈活性差[5];大規(guī)模訓(xùn)練樣本難以實(shí)施,不適合規(guī)?;I(yè)使用[6];小目標(biāo)檢測精度較低[7],導(dǎo)致整體識別準(zhǔn)確率不高,無法滿足實(shí)際檢測需求?;诖耍疚倪\(yùn)用機(jī)器視覺技術(shù),通過改進(jìn)YOLO–v5 模型來完成啤酒金屬蓋表面缺陷的檢測,從而實(shí)現(xiàn)缺陷目標(biāo)的快速精準(zhǔn)定位,以期進(jìn)一步提升缺陷檢測的效率。
根據(jù)金屬蓋內(nèi)表面的缺陷類型、檢測的精度和時間要求,設(shè)計(jì)了基于機(jī)器視覺的檢測框架。結(jié)構(gòu)如圖1 所示。
圖1 基于機(jī)器視覺的金屬蓋缺陷檢測框架Fig.1 Defect detection framework for metal cover based on machine vision
金屬蓋缺陷檢測主要由圖像采集、缺陷檢測以及殘次品剔除等部分構(gòu)成。由采集部分的CCD 高速相機(jī)獲取傳輸皮帶上的金屬蓋圖像,通過千兆網(wǎng)絡(luò)將圖像傳輸至缺陷檢測檢測模塊。圖像經(jīng)平滑降噪等處理后,輸入至YOLO–v5 檢測模型,對金屬蓋表面缺陷的檢測和識別。最終,工控機(jī)輸出相應(yīng)的信號控制剔除裝置對殘次品進(jìn)行分流處理。
平滑降噪處理的目的是降低噪聲對圖像的干擾,避免由于圖像質(zhì)量偏低導(dǎo)致后續(xù)檢測過程計(jì)算量的增加[8]??紤]到采集圖像中易產(chǎn)生椒鹽噪聲以及邊緣模糊現(xiàn)象,采用自適應(yīng)中值濾波器來抑制圖像噪聲以及散斑,并利用高反差保留算法來強(qiáng)化圖片的細(xì)節(jié)信息與邊緣值,確保圖像的感興趣區(qū)域更為突出[9]。圖2 為金屬蓋圖像預(yù)處理結(jié)果。
圖2 圖像預(yù)處理結(jié)果Fig.2 Image preprocessing results
1.3.1 YOLO–v5 網(wǎng)絡(luò)
YOLO–v5 屬于一種單階段目標(biāo)檢測模型,主要包含輸入端、Backbone 網(wǎng)絡(luò)、Neck 端、Head 預(yù)測端等部分構(gòu)成。網(wǎng)絡(luò)的輸入端設(shè)置有圖像處理過程,用以完成圖像的縮放和歸一化等操作[10]。Backbone 部分采用CSPDarknet53+Focus 結(jié)構(gòu)來提取高中低層的圖像特征,有助于提升小目標(biāo)特征信息的提取能力,還能夠降低網(wǎng)格的敏感性。Neck 端將各層次的特征進(jìn)行融合并提取出大中小的特征圖,確保特征的多樣性和魯棒性。Head 預(yù)測端包含有一個分類分支和一個回歸分支,通過在特征圖上應(yīng)用錨定框,利用GIOU Loss 反向傳播更新模型的參數(shù),最終生成包含類概率、包圍框以及對象得分的輸出向量[11]。YOLO–v5網(wǎng)絡(luò)結(jié)構(gòu)如圖3 所示。
圖3 YOLO–v5 網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 YOLO-v5 network structure
YOLO–v5 網(wǎng)絡(luò)初始輸入為640 像素×640 像素的圖像,經(jīng)切片操作和卷積操作后,分別生成320×320×12 和320×320×32 的特征圖。為了較好地保留圖像的特征信息,卷積過程中特征圖的H和W信息被集中到通道上,分別進(jìn)行32 倍、16 倍和8 倍的下采樣,以獲取不同層次的特征圖[12]。最后利用上采樣和張量拼接的方式將不同層次特征圖融合轉(zhuǎn)化為維度相同的特征圖。由于網(wǎng)絡(luò)梯度的變化一直被集成在特征圖中,避免了梯度信息的重復(fù)使用情況,使得模型參數(shù)量與FLOPS 數(shù)值有了較大幅度的降低,能夠在保證識別準(zhǔn)確率的同時,降低模型計(jì)算量,提高收斂速度。考慮到啤酒瓶金屬蓋存在多種尺度的表面缺陷,將像素為13×13、26×26、52×52 的特征圖作為不同尺度目標(biāo)回歸檢測的依據(jù)。
1.3.2 改進(jìn)YOLO–v5 的檢測模型
在實(shí)際情況中,YOLO–v5 模型對小型缺陷檢測的準(zhǔn)確率和速度并不理想。通過在主干網(wǎng)絡(luò)Backbone 中添加注意力機(jī)制SE 模塊,來抑制圖像中的不重要特征,提升網(wǎng)絡(luò)的表征能力[13]。同時,對模型的CIOU_Loss損失函數(shù)和預(yù)測框篩選方式進(jìn)行改進(jìn),進(jìn)一步提升小目標(biāo)檢測的準(zhǔn)確率和模型的特征提取能力。
1)注意力機(jī)制SE 模塊。注意力機(jī)制 SE 模塊內(nèi)部結(jié)構(gòu)如圖4 所示。
圖4 SE 模塊內(nèi)部結(jié)構(gòu)Fig.4 Internal structure of SE module
操作步驟如下:1)利用Global pooling 層對特征圖(h,b,C)進(jìn)行降維操作,以減少參數(shù)數(shù)量和計(jì)算量,并輸出大小為1×1×C的特征圖。
2)將特征圖輸入到包含有C/12 個神經(jīng)元的FC1層進(jìn)行線性變換,將特征空間映射到樣本標(biāo)記空間,并利用ReLU 激活函數(shù)將部分神經(jīng)元的輸出為0,使網(wǎng)絡(luò)具備稀疏性,減少模型參數(shù)的相互依存關(guān)系[14]。特征z經(jīng)全連接層FC2 變換以及Sigmoid 函數(shù)激活后,可得到大小為1×1×C的歸一化權(quán)重因子s,其表達(dá)式見式(1)。
式中:σ為Sigmoid 激活函數(shù);δ為ReLU 激活函數(shù)。
3)利用權(quán)重因子計(jì)算原始特征圖各通道J= [j1,j2,…,jc]的 權(quán) 重 ,對 應(yīng) 的 輸 出 為Y= [y1,y2,…,yc]。元素yc的計(jì)算表達(dá)式見式(2)。
輸出特征所對應(yīng)的權(quán)重值表達(dá)了不同通道的重要程度。模型訓(xùn)練過程中,通過注意力機(jī)制SE 模塊來加大重要特征通道的權(quán)值,減小非重要特征通道的權(quán)值,從而來提升模型的特征表達(dá)能力和圖像識別準(zhǔn)確率。
2)改進(jìn)損失函數(shù)。YOLO–v5 采用GIoU Loss 損失函數(shù)來計(jì)算預(yù)測框(Predicted Box,PB)和真實(shí)框(Ground Truth,GT)之間的距離。GIoU Loss 具備尺度不變性的特點(diǎn),不再考慮兩矩形框相似性與空間尺度之間的關(guān)系,解決了不重疊條件下兩框距離遠(yuǎn)近的判斷問題[15]。當(dāng)預(yù)測框或真實(shí)框被對方覆蓋時,GIoU Loss 則會退化為IoU Loss,計(jì)算過程過于依賴IoU 項(xiàng),致使模型的收斂速度變慢,預(yù)測精度偏低。CIoU Loss 函數(shù)由于考慮了矩形框的相對比例、IoU以及中心點(diǎn)距離等多項(xiàng)指標(biāo),不僅能夠處理兩矩形框距離遠(yuǎn)近的問題,還能夠避免GIoU Loss 可能發(fā)生的退化問題。因此,文中的YOLO–v5 檢測模型選用CIoU Loss 作為損失函數(shù)。圖5 為CIoU 示意圖。
圖5 CIoU Loss 邊框示意圖Fig.5 Diagram of CIoU Loss border
CIoU Loss 中的相對比例指標(biāo)用于懲罰預(yù)測結(jié)果與真實(shí)框不一致的情況。該懲罰項(xiàng)的定義見式(3)。
則CIoU 損失可表達(dá)為式(4)。
式中:κ2()表示求歐式距離;U為交并比;e、e′分別為 PB 框和 GT 框的中心點(diǎn);c為兩矩形框閉包區(qū)域的對角線長度;a為權(quán)重系數(shù);μ為兩矩形框長寬比的一致性參數(shù),包含了要預(yù)測的b和h。a、μ的計(jì)算表達(dá)式見式(5)。
式中:b、h為PB 框的寬和高;b′、h′為GT 框的寬和高。
3)GA–Kmeans 算法調(diào)整錨框大小。卷積神經(jīng)網(wǎng)絡(luò)的特征圖感受野隨網(wǎng)絡(luò)深度的增加而逐漸變大,其內(nèi)部的像素點(diǎn)直接影響特征信息的輸出。選擇大小合理的Anchor 可有效提升模型檢測召回率[16],如圖6 所示。
圖6 不同特征層感受野對比Fig.6 Comparison of receptive fields in different feature layers
Anchor 通過計(jì)算Bboxes 與Anchor 之間平均歐氏距離而得出。YOLO–v5 模型設(shè)計(jì)有多個不同大小和寬高比的Anchor,對各特征層級上不同尺度目標(biāo)進(jìn)行定位,但這些依靠人工設(shè)計(jì)的Anchor 無法保證很好地適應(yīng)數(shù)據(jù)集。當(dāng)Anchor 框的大小與目標(biāo)尺寸存在較大差異時,會導(dǎo)致模型計(jì)算量增加,檢測準(zhǔn)確率偏低[17]。因此,本文采用GA–Kmeans 算法對訓(xùn)練集的Bounding box 進(jìn)行聚類,繼而自動生成一組更為適應(yīng)當(dāng)前數(shù)據(jù)集的Anchor,以確保網(wǎng)絡(luò)具備更好的檢測效果。
GA–Kmeans 聚類過程如下:
1)提取所有Bounding box 坐標(biāo),并將坐標(biāo)數(shù)據(jù)轉(zhuǎn)換為框的寬高大小。
2)隨機(jī)選取k個Bounding box 作為Anchor 的初始簇中心,運(yùn)用 1–IOU(Bboxes, Anchors)方法計(jì)算Bboxes 與每個簇之間的距離,并分配至距離它最近的簇中。
3)根據(jù)簇中的Anchors 數(shù)量,利用中值方法重新計(jì)算每個簇中的中心。
4)重復(fù)第2 步和第3 步操作,一直到各簇中的元素不再發(fā)生改變,即可獲取k個寬、高組合的Anchor boxes。
5)運(yùn)用GA 算法對Anchors 的高、寬進(jìn)行變異操作。對變異后的Anchors 進(jìn)行適應(yīng)度評估,若變得更好,則將變異后的結(jié)果賦值給Anchors。反之,則跳過。
6)將變異操作得出的最優(yōu)Anchors 按面積進(jìn)行排序并返回。當(dāng)k=3 時,Anchors 聚類過程如圖7所示。
圖7 Anchors 聚類過程Fig.7 Anchors clustering process
2.1.1 運(yùn)行環(huán)境及參數(shù)設(shè)置
使用Pytorch 深度學(xué)習(xí)平臺來完成改進(jìn)YOLO–v5網(wǎng)絡(luò)的訓(xùn)練和測試,測試平臺:酷睿?I9–12900K 中央處理器,美國INTEL 公司;GeFORCE RTX3090TI顯卡,美國NVIDIA 公司;DDR5 5200 32G×2 內(nèi)存,美國Kingston 公司;操作系統(tǒng)Ubuntu22.04,編程語言Python。為確保實(shí)驗(yàn)過程的合理性,將COCO 數(shù)據(jù)集上的預(yù)訓(xùn)練結(jié)果作為檢測模型的初始化參數(shù),配置情況如表1 所示。
表1 訓(xùn)練參數(shù)及設(shè)置Tab.1 Training parameters and settings
2.1.2 樣本集和評估指標(biāo)
在某啤酒加工廠采集了2 595 張金屬蓋圖像,經(jīng)Labelimg 工具標(biāo)注后,得到包含正常、污漬、破損、形變、劃痕等5 種特征的樣本集,并按8∶2 的比例隨機(jī)劃分為訓(xùn)練集和測試集。部分缺陷樣本如圖8 所示。樣本劃分情況見表2。
表2 金屬蓋樣本數(shù)據(jù)劃分Tab.2 Metal cap sample data division
圖8 部分包含缺陷的數(shù)據(jù)樣本Fig.8 Data samples partially containing defects
為了確定最優(yōu)模型,將查準(zhǔn)率(Precision)、召回率(Rcall)、平均檢測精度(mAP)作為目標(biāo)檢測模型性能的評估依據(jù),并將缺陷檢測的準(zhǔn)確率和用時作為整套方案的評價(jià)標(biāo)準(zhǔn)。
為了驗(yàn)證文中針對YOLO–v5 改進(jìn)項(xiàng)的有效性,利用數(shù)據(jù)集展開消融實(shí)驗(yàn)。在初始YOLO–v5 的基礎(chǔ)上,通過使用CIoU Loss 函數(shù),添加注意力機(jī)制SE模塊以及經(jīng)過GA–Kmeans 調(diào)整后的錨框逐步替代原網(wǎng)絡(luò)的相關(guān)項(xiàng),以檢驗(yàn)各改進(jìn)項(xiàng)對網(wǎng)絡(luò)性能的影響。圖9 為消融試驗(yàn)可視化結(jié)果的對比情況。
圖9 消融試驗(yàn)可視化對比Fig.9 Visual comparison of ablation tests
由表3 可知,未改進(jìn)YOLO–v5 模型的Precision、Rcall 以及mAP 指標(biāo)相對較低。在修改損失函數(shù)并添加注意力機(jī)制SE 模塊后,各項(xiàng)指標(biāo)均有了一定的提升。但相較于SE 模塊,CIoU Loss 的目的是提升預(yù)測框回歸的速度和精度,對各項(xiàng)指標(biāo)的提升較小。添加SE 模塊目的在于進(jìn)一步提升模型對特征的提取能力,因而各項(xiàng)指標(biāo)提升較為明顯。最終改進(jìn)后模型的Precision、Rcall以及mAP 指標(biāo)較于改進(jìn)前分別提高了3.20%、2.31%、3.67%,表明文中改進(jìn)項(xiàng)具備一定的合理性和有效性。
表3 多改進(jìn)消融實(shí)驗(yàn)結(jié)果Tab.3 Result of multiple improvement ablation tests
為了進(jìn)一步驗(yàn)證文中檢測模型的性能,分別選用Faster R–CNN、文獻(xiàn)[5]、文獻(xiàn)[6]的檢測模型以及YOLO 系列模型分別在同一數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)。對比各模型的檢測精度、檢測速度以及準(zhǔn)確率。圖10 為各模型可視化結(jié)果。
圖10 不同模型檢測結(jié)果對比Fig.10 Comparison of different model test results
由圖10 可看出,改進(jìn)的YOLO–v5 模型具備良好的特征提取能力,多目標(biāo)檢測能力突出,尤其在面對形變和破損缺陷時,檢測精度較高,而其他檢測模型的精度相對較低,存在目標(biāo)特征提取不完整和部分缺陷無法檢測的情況。表4 和表5 分別為不同模型的檢測速度、平均精度以及缺陷識別的準(zhǔn)確率情況。
表4 不同模型性能對比Tab.4 Performance comparison of different models
表5 檢測準(zhǔn)確率對比結(jié)果Tab.5 Detection accuracy comparison results
綜合表4 和表5 可知,本文改進(jìn)的YOLO–v5 模型各項(xiàng)性能指標(biāo)均優(yōu)于其他目標(biāo)檢測模型,檢測速度達(dá)到了294 張/min,mPA 值相較于Faster R–CNN、文獻(xiàn)[5]、文獻(xiàn)[6]、YOLO–v4、YOLO–v5 等模型分別提升了13.95%、4.78%、3.87%、7.13%、5.19%。同時,改進(jìn)后的YOLO–v5 模型針對不同類型的缺陷,均有較高的檢測準(zhǔn)確率。表明經(jīng)改進(jìn)后的YOLO–v5模型具備較高的檢測精度,且漏檢率較低,能夠進(jìn)一步提升金屬蓋表面缺陷的識別準(zhǔn)確率。
1)設(shè)計(jì)了基于機(jī)器視覺的缺陷檢測框架,通過添加注意力機(jī)制SE 模塊、改進(jìn)損失函數(shù)和預(yù)測框篩選方式等技術(shù)手段對原YOLO–v5 模型進(jìn)行優(yōu)化。消融實(shí)驗(yàn)結(jié)果表明,改進(jìn)后檢測模型的Precision、Rcall以及mAP 指標(biāo)相較于改進(jìn)前分別提升了3.20%、2.31%、3.67%;小目標(biāo)漏檢率較低,整體識別準(zhǔn)確率提升明顯。
2)優(yōu)化的YOLO–v5 模型各項(xiàng)性能指標(biāo)均和識別準(zhǔn)確率均優(yōu)于目前常用的檢測模型,檢測速度為294 張/min,滿足實(shí)時檢測需求;mPA 指標(biāo)相較于Faster R–CNN、文獻(xiàn)[5]、文獻(xiàn)[6]、YOLO–v4 和YOLO–v5 等模型分別提升了 13.95%、4.78%、3.87%、7.13%、5.19%,模型的檢測精度較高;模型體積僅為61.08 MB,具備良好的移植潛力。
3)針對瓶蓋污漬、破損、形變、劃痕等不同類型的缺陷,所設(shè)計(jì)模型的檢測準(zhǔn)確率分別93.18%、94.24%、93.39%、87.97%,能夠滿足實(shí)際生產(chǎn)過程中的檢測需求。