呂開旺,王明睿,田 禛,曹 翀,蘇 贊
(1.北京機械工業自動化研究所,北京 100120;2.北京機械工業自動化研究所有限公司,北京 100120)
隨著計算機視覺和工業智能的不斷發展,產品成像已成為收集生產信息、質量監測,產品回溯的重要方法。計算機視覺技術越來越受到工業專家的關注,高精度、實時的視覺檢測系統得到了廣泛的研究。在工業檢測領域,多采用研究人員手工設計的特征提取器來提取輪廓特征。然后,根據提取的特征,使用支持向量機等分類器對目標進行檢測[1]。但由于手工設計的特征提取器特性不完善,泛化能力較差,難以適應工藝技術的復雜變化,不利于其在實際工業場景中的應用。
目標檢測是計算機視覺的一個子領域,在目標檢測領域,基于深度學習的方法正逐漸顯露出它的優勢,開始徹底改變計算機視覺識別事物的方式。自引入神經網絡以來,目標檢測的速度和精度均有了顯著的提升,已經成為從圖像中提取特征的有效方法[2]。當前,目標檢測算法主要可分為兩類:基于區域建議的算法識別精度較高,如R-CNN,Fast R-CNN和Faster R-CNN等,而基于回歸網絡的算法在識別速度上有很大的優勢,典型的如SSD和YOLO算法[3]。雖然R-CNN系列算法的檢測精度比較準確,但該算法通常需要高性能的計算單元來進行推理,無法達到實時處理分析的速度,對于典型的工業生產場景并不實用。通用目標檢測應該是快速、準確的,并且能夠方便的部署到工業設備中。
本文應用了目前實時處理速度最快的目標檢測算法YOLO,基于激光焊接數據集進行訓練,對訓練好的算法模型進行驗證,通過量化和剪枝等操作,將模型壓縮轉化后,部署到移動端設備,對預測結果進行了檢驗,檢測精度幾乎沒有損失,實時性較高,對于工業場景的部署有一定的借鑒價值。
YOLO算法在2015年被Joseph提出,它將目標檢測重新定義為一個單一的回歸問題,直接從圖像像素數據提取出目標的邊界框坐標和類概率。使用訓練完成的YOLO算法模型,只需“看”一次圖像就可以預測出物體的位置。YOLO算法非常簡單,單個卷積網絡可以同時預測多個邊界框和這些框的類概率。YOLO算法不同于R-CNN系列,采用回歸網絡直接進行預測,它將輸入圖像進行柵格化處理,分成相等大小的多個區域,若被檢測物體的中心包含于某個網格區域中,則該區域的邊界框負責預測物體的位置[4]。
由于YOLO算法將整個圖像作為整體預測,因此它的輸出結果是根據圖像中的全局特征語義信息而來的,降低了將背景誤檢測為目標的概率。此外,YOLO算法還采用單個網絡評估進行預測,這與R-CNN等算法不同,該方法大大減少了數據需求量和訓練輪數,加快了網絡訓練效率[5]。
目前Joseph已經將算法更新到YOLOv3版本,該算法構思可分為產生候選區域和提取特征兩個部分[6]:
1)算法按設定好的規則在圖像上產生多個備選區域,根據目標實際標注框對這些區域進行判別比對,與實際標注框距離足夠接近的作為正樣本,偏離值較大的作為負樣本,負樣本不參與預測和標注過程[7]。
2)采用神經網絡對輸入圖像進行特征提取,對算法判別為正樣本的備選區域進行預測和標注,結合目標真實的標注框和類別,建立損失函數[8]。
算法訓練流程如圖1所示。

圖1 訓練流程圖
YOLOv3的主干網絡為Darknet53,算法通過主干網絡進行一系列的卷積操作提取圖像特征,引入殘差網絡Residual,有利于深層次的特征提取[9]??紤]到在不斷卷積的過程中,雖然提取了更多的特征信息,但損失了目標的位置信息。因此YOLOv3將三層特征層進行輸出,對不同的特征層進行堆疊拼接,用于構建特征金字塔FPN,從而整合不同層次的語義信息,進而更有效的提取特征[10]。網絡結構如圖2所示:

圖2 YOLOv3網絡結構
由于YOLO算法發明者Joseph擔心算法被用于軍事或其他危害到人類的研究中,帶來不好的影響,因此停止了對于該算法的研究。目前的研究成果都是其他研究人員在YOLOv3的基礎上提出了自己的改進思路,每年都有更好、更新,更先進的目標檢測器被發布,但由于這些檢測器是針對通用數據集(如COCO數據集)進行訓練的,因此在激光焊接數據的目標模型上無法展示出最好效果,還存在著很大的提升空間。
本文主要研究焊接質量檢測問題,焊接缺陷具有小目標的特征,而且在移動端設備部署需要考慮實時性和算力問題[11],因此需要對原檢測模型進行針對性的改進,本文從錨定框,特征層卷積核和多尺度特征等方向進行了改進。
設置適合的錨定框有助于提高算法對數據集目標匹配的準確性[12]。對于不同的數據集,需要重新設定錨定框的大小,使其更有效的對目標進行檢測。YOLOv3中直接估計錨定框中的四個參數值:位置x、y,高度h和寬度w,就是把四個參數當作分散的自變量來處理,實際上并沒有考慮到不同變量之間的關聯性。計算公式如下:


本文選用了聯合標定框方法(UnitBox),它采用了一種新穎的損失函數來預測錨定框[13]。IoU損失直接計算預測的錨定框與真實標注框的最大重疊率,它將邊界框定義為一個四維的向量,將所有邊界變量作為一個整體回歸,不斷迭代,最終得到適合數據的錨定框。
損失計算公式如下:

其中X=(XL,XR,XT,XB),Y=(YL,YR,YT,YB),具體參數如圖3所示。

圖3 圖像標注框的損失計算
圖中紅框為真實標注框,綠框為預測框。其中O點為目標中心點,每個框的四個參數為目標中心點到邊框上、下、左、右的距離。
如圖4所示,輸入圖像在經過YOLO卷積特征提取后,最終輸出預測對象的特征張量,原YOLOv3是針對COCO數據集的卷積計算,共輸出3×(80+4+1)=255個特征信息[14]。特征信息可分為三個邊界框的信息,每個邊界框的85個特征信息為4個坐標信息:位置x、y,高h和寬w,邊界框中是否含有目標,以及預測目標屬于80個類別的概率。

圖4 輸入圖像特征卷積
本文焊接數據的類有6個:完好、焊偏、未焊滿、氣孔、夾渣和裂紋,故可以調整YOLOv3卷積層的卷積核為:3×(6+4+1)=33。
信息在神經網絡中的傳播方式是非常重要的,原YOLOv3算法中采用多尺度特征構建特征金字塔FPN,但不同層次之間的特征關聯路徑較長,增加了獲取精確定位信息的難度[15]。為了解決這個缺陷,路徑聚合網絡PANet設計了簡單而有效的組件來增強特征網絡中的信息傳播,整體框架如圖5所示[16]。

圖5 PANet框架圖
其中圖5(a)為FPN骨干網絡,圖5(b)為路徑擴展,圖5(c)為特征融合,圖5(d)為特征輸出。
PANet對路徑進行了擴展,可以有效利用底層位置特征信息,對比于FPN,PANet縮短了特征關聯路徑,增強了多尺度特征信息的整合,且對計算的影響很小,故本文采用PANet來構建特征金字塔,用于提升算法識別目標的準確性。
檢測系統的搭建流程圖如圖6所示。

圖6 檢測系統部署
檢測系統的搭建包含四個重要節點:制作數據集,模型訓練,模型壓縮和移動端部署,其中制作數據集和模型壓縮最為關鍵。
數據集對于模型的訓練效果是極為重要的,但在工業生產中,缺陷樣本相對于正常樣本的數據量較少,不利于算法訓練提取特征,故可以采用數據增強的方式擴展數據集,增加輸入圖像的可變性,也有利于提高算法模型的穩定性。常見的數據增強方式有光學失真和幾何失真兩種[17]。
光學失真包括:改變圖像的亮度、色溫、飽和度、對比度和增加噪點等。

圖7 光學失真示例
幾何失真包括:旋轉圖片、翻轉、裁剪和縮放等。

圖8 幾何失真示例
本研究通過對現場的焊接圖片進行采集,篩選適合深度學習的圖片,根據不同的缺陷類型進行劃分,并對其進行數據增強操作,各種缺陷的樣本數量盡量保持均等,最終制作好的數據集分布如表1所示。

表1 數據集分布
部署于工業環境下,要為低功耗的嵌入式系統對模型進行壓縮。對模型壓縮的方法有定點量化,網絡剪枝和知識蒸餾等操作[18]。
定點量化是將精度較高的浮點數轉化為精度較低的定點數[19]。使用定點量化的計算有助于降低計算所需的資源,加快模型的運行速度,也有助于減少存儲占用,降低功耗。
網絡剪枝的方式是去除神經網絡中不重要的部分和多余的權重值。
知識蒸餾是通過引入復雜但計算精確的網絡來監督訓練精簡的神經網絡,實現知識遷移。知識蒸餾有助于以更小的模型完成復雜模型的輸出。
以上三種方式都有助于減少算法對于高性能計算單元的依賴,使得模型可以在硬件配置較低的移動端運行。
本文采用5000張焊接圖片,訓練輪數為50000。在測試數據集上對比了原YOLOv3算法和改進的算法的效果,然后在整個數據集上測試了移動端部署檢測系統的準確率,數據如下所示。
從表中數據可以看出,在平均精度指標AP中,T-YOLOv3算法為89.4%高于YOLOv3算法的83.6%,在不同尺度下的精度指標也均優于原YOLOv3算法。在召回率指標AR中,YOLOv3為59.9%低于改進的算法的67.3%。在檢測速度上,本文所述算法T-YOLOv3也優于經典YOLOv3算法。
對于不同的缺陷類型,兩種算法的識別情況如表3所示。

表2 兩種算法準確性對比

表3 五種缺陷算法準確性對比
由圖9中數據可以看出,改進后的算法在檢測缺陷上的準確度均有不同程度的提升。在特征比較明顯的焊偏和未焊滿上,算法的識別準確度最高,較小的特征點如氣孔,識別準確度也提升到80%以上。

圖9 兩種算法目標檢測結果
本文基于YOLOv3算法,提出了一種針對于焊接質量檢測的改進算法,對算法的錨定框,特征層卷積核和多尺度特征進行了改變,增加了檢測小目標焊接缺陷的成功率。將訓練好的模型進行壓縮轉化后,最終在移動端進行部署,驗證了算法的準確性和實時性。采用深度學習算法,訓練出的檢測模型泛化能力強,可以適應工業靈活的生產方式。對模型進行壓縮,避免了對高性能計算單元的依賴,轉化為對應環境的可執行文件,可以方便快速的在工業場景中部署。
本文檢測系統仍存在一些不足之處,距離真正的實時分析處理還有差距。如何更好的優化網絡,降低模型大小,減少計算量,提高實時檢測速度,是未來學習的主要研究方向。