鄧秋菊,張振龍
(重慶移通學院,合川 401520)
隨著制造業的迅速發展以及現代化車床的廣泛應用,工業制造生產效率得到了巨大的提升,在生產效率提升的同時伴隨出現了生產缺陷的問題,例如洗衣機外殼鈑金沖孔是否按標準模板進行沖壓,一旦沖孔出錯,將會造成批量問題產品。對于工廠來說,缺陷檢測是至關重要的一項工作,然而人工進行工業鈑金的缺陷檢測費時費力,且長時間高強度檢測作業時誤判率較高,亟需一種自動化的檢測系統來進行高效、準確的工業鈑金缺陷檢測[1]。得益于人工智能技術的日益發展,由機器視覺+深度學習的技術檢測組合在現代化工業生產線上得以應用。
本文針對洗衣機鈑金沖孔的缺陷檢測問題,基于U-net 圖像分割算法和mmdetection 框架下的FCOS 算 法(FCOS: Fully Convolutional One-Stage Object Detection),該算法以逐像素預測的方式解決目標檢測問題,類似于語義分割,最終實現了鈑金缺陷檢測的效率和準確性的提升。
U-net 網絡是一種圖像語義分割網絡,計算機根據圖像的語義對圖像中的每一個像素點進行分類,再根據像素點的類別進行區域的劃分,從而可以實現在復雜環境的圖片中對特定目標進行指定分割的功能。
U-net 網絡結構如同一個字母U,如圖1 所示,U-net網絡的左側對圖像進行特征提取,隨著網絡層的加深,圖像將會變小,提取的圖像特征也會越精確。在特征提取的過程中可能會出現部分圖像信息的丟失,U-net網絡的右側部分將會對圖像特征進行還原,加入對應的丟失部分的圖像信息。

圖1 U-net網絡結構
U-net 的工作原理如下,針對一張待處理的圖片,U-net會將圖像的識別區域轉化為不同類別的標簽,每一個需要識別的物體都需要一個對應的通道,所有物體通道的疊加就是整張圖片最后得到的分割結果[2]。
one-stage 和two-stage 目標檢測算法作為兩種被廣泛使用的經典目標檢測算法,one-stage目標檢測算法以算法結構簡單、運行速度快作為其特點,具有代表性的one-stage 目標檢測算法 有RetinaNet、YOLOv3、CenterNet、SSD 等。這類算法能夠直接對圖像進行檢測處理來實現實時圖像檢測,例如鈑金孔洞的缺陷檢測就是one-stage 目標檢測算法的典型應用場景,但one-stage 算法對細小目標和復雜場景下的目標檢測精度較低,這一問題在two-stage 目標檢測算法內得到解決。得益于two-stage 目標檢測算法先提取候選區,使用該類算法能夠最大化地學習到目標的特征,其檢測精度相較于onestage 檢測算法有極大的提升,但其網絡結構較為復雜,獲取候選框時計算量較大[2],two-stage目標檢測算法的檢測速度較慢,無法滿足實時檢測功能的需求,典型的two-stage 目標檢測算法有Faster R-CNN、TridentNet 以及Cascade RCNN等。
相較于經典的one-stage 和two-stage 檢測算法,FCOS 的核心思想是預測輸入圖像中每個點所屬的目標類別和目標框,由此FCOS 擺脫了對錨框(anchor box)的依賴[2],對于不同的任務,FCOS 算法不再需要重新配置anchor box 的參數,因此FCOS 具有很好的普適性。此外,在訓練模型時大量的anchor box 會造成正負樣本間的不平衡,并且計算這些anchor box 與真實框的交互比(IOU)需要消耗大量的內存和時間[3]。
FCOS 在網絡結構上大體與FCN 一致,其關鍵點在于圖2中的虛線框內的預測層。

圖2 FCOS網絡結構
FCOS 的預測層由分類支路、Centerness 和回歸支路三部分組成[3]:
(1)分類支路,主要功能是將特征上的位置坐標(x,y)轉換成輸入圖像的位置,圖2 中C表示類別數,H*W則表示特征的大小。
(2)Centerness,負責計算每個點到目標中心點的距離,去除距離目標中心點較遠的點。
(3)回歸支路,將會由(l,t,r,b)4 個值分別表示目標框內一點距離上下左右邊框的距離。
總結FCOS算法的實現步驟,可分為4步:
(1)圖片預處理操作。
(2)在backbone 網絡結構中獲取原圖片的特征圖,在特征圖中的每一點執行回歸操作,不斷訓練獲取網絡模型。
(3)將測試集內的圖片輸入到訓練出的網絡模型進行測試,獲得多個預測結果。
(4)使用NMS 等后處理操作獲得最后的結果。
洗衣機外殼鈑金孔洞缺陷檢測系統能夠在不同的生產線環境下保持較高精度完成鈑金的缺陷檢測任務,關鍵得益于采取了U-net圖像分割算法+FCOS目標檢測算法對待測目標進行處理。
洗衣機外殼鈑金孔洞缺陷檢測系統的其中一個難點問題在于,應用到不同環境的生產線時檢測結果仍要保持高精確度。在不同的生產線中,例如燈光照明強度、可支持拍攝角度、照明的穩定性、鈑金位置的一致性等環境因素,通過搭建暗箱能夠有效解決外界自然光照影響。對不同鈑金如何選擇合適的模型且保證最終檢測的高精度,對于此問題,通過引入U-net圖像分割算法根據圖像的語義對逐個像素點進行分類和區域劃分,在進行鈑金檢測時對缺陷檢測區域進行像素級的區域劃分,從而達到對檢測目標與無關背景區域的明確區分。后續在對目標特征的進一步提取過程中,目標特征的準確度將會進一步提高,增強提取到特征的魯棒性,并且U-net算法對于圖像特征的還原功能能夠保障隨著網絡層加深,目標特征提取精確度不會出現下降的現象[4]。
另外,我們還要面對的兩個主要問題分別是:
(1)針對不同的鈑金生產線,其鈑金大小和具體特征也不盡相同,洗衣機外殼鈑金孔洞缺陷檢測系統要保證應用于不同鈑金生產線時具有普適性,而不是針對不同生產線每次都要對檢測器進行重新調整。
(2)部分鈑金存在檢測點相鄰過密的問題,出現重疊區域,對目標檢測造成了干擾。
為了解決以上兩個問題,我們采用了FCOS目標檢測算法。作為Anchor-Free 的目標檢測算法,在對不同生產線的鈑金進行目標檢測時FCOS算法會對錨框(anchor box)進行預測,無需對錨框進行重新設置,對應用于不同生產線的普適性問題得以解決。
在目標檢測當中存在一種重疊現象,例如:第一張圖片中是一個人手持一部手機,第二張圖片中是一對戀人擁抱,此時算法對這兩種圖片進行預測時就會發生人和手機、人和人兩兩預測框重疊的現象,結果會造成第一張圖片預測結果受到干擾,第二張圖片出現重復標記的現象。
鈑金孔洞檢測區域的重疊現象是無法避免的,我們檢測的鈑金當中,如果出現一個較大的孔洞有一個或多個較小的螺絲時,就可能會被認定為包含關系從而產生重疊,FCOS 算法引入特征參數Pi為特征層i的最大距離,由此來對負樣本進行過濾,減少重疊區域,判斷是否滿足為負樣本的公式為

或

其中Pi設置為0,64,128,256,+∞,形成5個層來限制尺寸以減少重疊區域。
對于正樣本的檢測,FCOS 采用了Centerness來進行優化,公式為

當損失l越小時,Centerness越接近于1,說明該預測框的中心距離GT Box 的中心越近,這樣的樣本則作為正樣本加入到后續的回歸工作中[5]。運用了FCOS 算法后的目標檢測效果,如圖3所示。

圖3 引入FCOS目標檢測算法后的檢測結果
在檢測系統中挑選了兩組樣本進行檢測,引入了FCOS 目標檢測算法后的缺陷檢測結果如表1所示。

表1 引入后檢測結果
引入FCOS 目標檢測算法前同樣的兩組樣本缺陷檢測結果如表2所示。

表2 引入前檢測結果
通過上述兩組樣本在引入FCOS目標檢測算法前后的檢測結果對比,引入后的漏檢數和誤檢數顯著降低,整體準確度也達到了98.5%以上。
(1)本文設計了基于U-net 圖像分割算法和FCOS 目標檢測算法的洗衣機外殼鈑金孔洞缺陷檢測系統,解決了應對不同生產線環境下對洗衣機外殼鈑金孔洞缺陷檢測的高精確度問題,使得本系統具有普適性和高精度的優點。
(2)通過對檢測結果的統計分析發現,對目標檢測影響較大的是因目標重疊而造成的包含或遮擋問題,設計時應引起注意,選擇合適的算法來使目標重疊對檢測結果影響最小化。