韓 明,吳慶祥,2,曾雄軍
1(福建師范大學 光電與信息工程學院,福州 350007)
2(醫學光電科學與技術教育部重點實驗室,福州 350007)
隨著人工智能的不斷發展,人工智能技術被廣泛地應用在各個領域,不斷推進社會的進步[1].其中,深度學習領域的發展,加快了人工智能的步伐.深度學習屬于機器學習領域的一個新的研究分支,該算法可分為監督式學習、非監督式學習、半監督式學習、以及強化學習[2].其中,監督式學習是指通過人工標記的數據來推測出目標函數.目前的分類,目標檢測等任務大多均采取的是監督式的學習方式.基于深度學習算法的Mask R-CNN 網絡亦是通過監督式的學習方式來對網絡權重進行迭代更新.
近年來,針對齒輪齒形缺陷檢測已存在一些檢測方案.2019 年,李凱等通過將齒輪圖像二值化來獲取齒輪中心點坐標,利用中心點坐標構建環形濾波器獲取只含輪齒部分的感興趣區域,最終通過對灰度均值小于閾值的輪齒進行細分來判定該輪齒是否為缺齒[3].2018 年,楊亞等通過檢測得到的關鍵點將標準齒輪與待檢測齒輪進行配準,對配準圖像采用絕對差分的方式得到絕對差分圖像,通過絕對差分圖像判定待檢測齒輪是否存在缺齒[4].2017 年,鄭碩文等構建基于機器視覺與多傳感器的齒輪缺陷檢測系統[5].上述的齒輪缺陷檢測方法以及張鈺婷、李盼等[6,7]更早提出的缺陷檢測方案大多是圍繞傳統的圖像處理算法來進行展開的.采用深度學習算法實現齒輪缺陷檢測的特點在于神經網絡可以自主對齒輪圖像進行特征提取,通過將提取到的低層特征進行組合形成高層具有較深語意的特征,使得網絡模型可以自動學習到從樣本圖像輸入到結果輸出的復雜映射關系[8].鑒于Mask R-CNN[9]網絡具有對微小目標進行有效檢測的優勢,在原網絡基礎上,針對齒輪微小視覺缺陷檢測目標對原網絡進行改進,提高了Mask R-CNN 網絡對于缺齒對象的召回率指標.基于改進的Mask R-CNN 齒輪缺齒檢測方法可應用到對流水線上齒輪視覺缺陷或者類似的產品進行檢測,具有廣闊的應用場景.
Mask R-CNN 架構(見圖1)主要由兩部分構成,第一部分為區域候選網絡,用于獲取候選框.第二部分利用RoIAlign 網絡層對感興趣區域進行池化操作,產生固定尺寸的特征圖,后續網絡層通過對該固定尺寸特征圖進行處理,實現對目標的分類、檢測、以及分割.本文通過理論分析并結合實驗結果對共享特征提取過程進行優化,并針對標注方案中標注框的大小對候選區域網絡中的錨框大小進行重新設計.
(1)共享特征提取網絡
Mask R-CNN 的共享特征提取網絡采用殘差神經網絡與特征金字塔網絡的組合,對輸入圖像進行特征提取.
1)殘差神經網絡
為了盡可能提高網絡的缺齒檢出率,同時兼顧網絡的訓練與檢測速度,應優選一種殘差神經網絡.通用的殘差神經網絡[10]主要有5 種,分別為:ResNet-18、ResNet-34、ResNet-50、ResNet-101、ResNet-152,缺齒檢出率公式表達如下:

在通用的目標檢測評價指標中,一般采用召回率與精確率是兩個指標,計算方法如表1.

圖1 Mask R-CNN 結構

表1 精確率與召回率
表1 中,P表示缺陷輪齒對象,N表示為正常輪齒對象,T與F表示檢測結果是否正確.TP:缺陷輪齒對象被正確識別為缺陷輪齒對象的數量;FP:正常輪齒對象被錯誤識別為缺陷輪齒對象的數量;FN:缺陷輪齒對象被錯誤識別為正常輪齒對象的數量.精確率與召回率表達式如下:

由于檢測目標為缺陷輪齒,故將缺陷輪齒視為正樣本.召回率與缺齒檢出率兩個指標在數值上是完全相等的,其中,TP等于檢出缺齒的總個數,TP與FN之和等于缺齒的總個數.由于訓練的樣本標注類別只有缺齒這一類,因此FP的值將趨近于0,Precision(精確度)將趨近于1 這個常數.故實驗從通用的目標檢測評價指標角度,還可使用召回率來對網絡的檢測效果進行評價.
實驗比較5 種通用殘差神經網絡作為共享特征提取網絡的檢測效果,采用遷移學習方式對Mask RCNN 網絡進行訓練,網絡初始權重為基于coco 數據集訓練得到的權重.訓練集數量為200 張,缺齒標注個數為500 個,測試集的數量為150 張,總齒數為1800 個,缺齒數為280 個,檢測結果如表2.

表2 5 種殘差神經網絡檢測結果比較
由以上檢測結果可以得出,隨著殘差神經網絡深度的增加,召回率表現為遞增,更深的網絡同時需要更多的訓練時間,且測試時間也相應增加.實驗結果顯示,ResNet-101 與ResNet-152 召回率指標的差距相對不是很大,綜合召回率與網絡耗時考量,選擇使用ResNet-101 作為特征提取網絡.
2)特征金字塔網絡
高層特征圖雖然含有較深語意的特征表達,其分辨率卻很低,當對小尺度目標進行特征提取時,重要的特征信息容易丟失.特征金字塔網絡[11]利用自上而下通道以及側向連接將高層高語意低分辨率特征圖與低層低語意高分辨率的特征圖進行融合,從而獲得不同尺度兼具高語意與高分辨率的特征圖.圖像共享特征提取過程如圖2,ResNet-101 具有5 個階段,每個階段是根據輸出特征圖的大小是否改變進行劃分.分別將各個階段最后網絡層輸出的特征圖稱為{C1,C2,C3,C4,C5},圖2 中,C5是經過ResNet-101 第五階段生成的特征圖,也是網絡學習到的具有最深語意的特征圖,該特征圖未進行融合操作,分辨率較低.
特征金字塔網絡將C5進行1×1 卷積操作得到P5,對P5進行上采樣操作與C4經過1×1 卷積得到的特征圖進行融合,得到P4,P4既具有P5的深層語意而且還保留了C4中微小對象較高分辨率特征.P3,P2的獲取方式與P4相同.最后,還需對融合得到的特征圖進行一次3×3 卷積操作,目的是降低對特征圖進行上采樣操作之后的混疊效應.在此,實驗對用于后續網絡進行預測的特征圖進行優化調整,剔除對P5進行的3×3 卷積操作,如圖3,分析如下:①P5并非是經過上采樣與融合得到,既對P5而言不存在混疊效應.② 該3×3 卷積操作采用“padding=same”的方式,即卷積前后特圖的尺寸不發生改變,剔除該3×3 卷積對后續特征圖尺寸匹配不會造成影響.③ 經實驗測試,該3×3 卷積操作的剔除相應地提高了網絡的缺齒檢出率指標.

圖2 圖像特征提取過程

圖3 優化的圖像特征提取過程
(2)候選區域網絡
候選區域網絡[12]實質是一個基于滑窗的無類別目標檢測器.用于生成目標候選框.候選區域網絡始應用于Faster R-CNN 中,作用對象為單尺度特征圖.具體操作:將一個3×3 的滑窗置于單尺度特征圖上進行滑動,在滑窗滑過的位置上以滑窗的中心作為錨點,產生k個錨框.Faster R-CNN 中,k參數為9,以像素為單位,大小為{1282,2562,5122},在該3 種尺寸的基礎上分配{1:2,1:1,2:1}寬高比.通過計算錨框與標注框的IoU值來判斷錨框與標注框的重疊度,數值越大表示重疊度越高,最大值為1,其計算公式如下:

即錨框與標注框交集和錨框與標注框并集的比值.
Mask R-CNN 中候選區域網絡的作用對象為由特征金字塔網絡生成的具有金字塔層次的多尺度特征圖,分別為{P2,P3,P4,P5,P6},其中P6是對P5進行降采樣得到的,尺寸縮小了一倍.與Faster R-CNN 不同的是,對每個層次的特征圖僅分配一種尺寸的錨框,這樣可以有效減少冗余錨框的數量.以像素為單位,Mask RCNN 網絡將{P2,P3,P4,P5,P6}錨框的尺寸分別設置為{322,642,1282,2562,5122},每個尺寸的錨框均分配以{1:2,1:1,2:1}的寬高比,故每個層次特征圖的錨框的尺寸種數為3 種,5 種具有金字塔層次特征圖的錨框尺寸的種數為15 種,采用式(4)來計算錨框與標注框的IoU數值.
實驗檢測對象為有缺陷的輪齒,齒輪樣本如圖4.

圖4 齒輪樣本
當齒輪旋轉以及缺陷存在于輪齒位置的不同使得對有微小缺陷的輪齒進行標注的尺寸會發生改變,即標注框的尺寸發生改變.但無論齒輪轉動多少角度,標注框的尺寸最大值不會超過圖5 中線段1 與線段2 的長度,實際標注框的寬與高最大值分別為線段1、線段2 長度的正弦、余弦值,通過計算得到,以像素為單位,線段1 與線段2 的長度為32 個像素.根據標注框的尺寸,假設各層次特征圖使用錨框的尺寸為{322,642,1282,2562,5122},設標注框的尺寸為最大值32×32,則錨框的尺寸均大于等于標注框的尺寸.當標注框包含于錨框時會有最大IoU值,位置關系如圖6,各尺寸錨框與標注框的最大IoU值如表3.特別地,當錨框尺寸為32×32,錨框與標注框完全重合時,IoU數值取得最大值1.

圖5 標注尺寸波動示意圖

圖6 IoU 達到最大值時錨框與標注框的包含關系

表3 5 種錨框尺寸對應最大IoU 數值
計算各個尺寸錨框與標注框的IoU數值與設定閾值0.7 做比較,IoU數值大于0.7 的錨框被分配一個正標簽,IoU數值小于0.3 的錨框被分配一個負標簽,介于0.3 與0.7 之間的錨框將直接被舍棄.由表3 可得僅有P2特征圖的錨框會被分配正標簽,通過對分配正標簽的錨框進行修正使得訓練候選區域網絡的損失值達到最低.訓練候選區域網絡的損失函數如下:

其中,Lcls表達式如下:

其中,ti代表對錨框進行不斷修正得到的候選框的4 個參數化坐標,pi代表錨框中含有目標的概率或置信度,i代表錨框索引.當錨框被賦予正標簽時,為1,此時Lreg函數值對損失函數值L有效,通過反向傳輸與梯度下降的優化方法,對ti進行不斷修正,最終得到較理想的候選框坐標,使得損失值L降到最低;當錨框均被賦予負標簽時,為0,Lreg函數值對損失函數值L無效,即ti不影響L值,此時將式(6)代入式(5)中得:

式中,Ncls為常數,此時的L隨pi同增同減,為使L優化為最低,pi應為最低,此時錨框i均被視為背景來對候選區域網絡進行訓練.
根據以上推導,針對標注框可能的最大尺度32×32(圖5),僅有尺寸為32×32 的錨框會被分配正標簽,但當標注框的尺寸為圖5 中A 框(20×10)時,此時使用32×32 的錨框得到最大的IoU值為0.4,既A 框中對象即使參與了候選區域網絡的訓練,也是以一種不存在缺齒對象的身份來對候選區域網絡訓練的,這種問題導致的最終結果是造成Mask R-CNN 網絡更高的漏檢率.針對以上問題,將圖5 中標注框A 框的尺寸設為錨框的最小尺寸,將圖5 中線段1 與線段2 的長度設為錨框的最大尺寸,以像素為單位,A 框尺寸近似為為20×10,則以1:1 的錨框寬高比,使用的最小錨框尺寸20×20,最大錨框尺寸為32×32.同樣對每個尺寸的錨框分配{1:2,1:1,2:1}的寬高比,則各個層次特征圖錨框尺寸分配情況如表4,選擇表4 中的錨框尺寸提高了可容忍標注框尺寸的下限,從而實現對候選區域網絡進行更加有效的訓練.

表4 根據標注框尺寸設計相應的錨框尺寸
(3)多任務訓練
采用多任務訓練機制,利用Mask R-CNN 的掩膜分支損失函數,使得微小目標檢測效果更加精確.多任務訓練損失函數公式定義如下:

式中,Lcls為分類損失函數,Lbox為邊框損失函數,Lmask為掩膜損失函數.
(1)數據集制作
目前缺乏公共的齒輪數據集,且數量較少.因此采用數據擴增的手段來建立數據集.采用的數據擴增方式為對缺齒齒輪圖像平移、360 度隨機旋轉、添加隨機椒鹽噪聲.對圖像進行平移與隨機旋轉是為了實現Mask R-CNN 網絡能夠對圖像內任意位置、旋轉任意角度的缺齒齒輪進行有效的檢測,添加隨機椒鹽噪聲是為了提高網絡對含有椒鹽噪聲干擾的齒輪圖像的魯棒性.本實驗齒輪圖像數據集統一為273×265(像素)RGB 圖像,含有缺齒的樣本展示如圖7.

圖7 缺齒樣本展示
(2)標注方案設計
訓練集使用VGG Image Annotator(VIA)進行標注,標注完另存后綴名為json 文件.在進行齒輪圖像標注時,設計兩種標注方案,針對不同的標注方案使用對應的錨框尺寸.方案1:對整個齒輪對象進行標注,然后二分類,既對標注對象分類為合格齒輪與不合格齒輪.不合格的齒輪是指帶有缺齒等缺陷的齒輪(如圖8).方案2:直接對齒輪缺陷部分進行標注(如圖8).方案1的優點在于可忽略具體缺陷類型,分類類別單一,但是利用方案1 訓練得到的Mask R-CNN 網絡在精度判別方面存在一個問題,對于有微小缺陷的齒輪,其判別能力較差.具體來說,一個有幾個像素缺齒的齒輪,其對于整個齒輪而言是微不足道的,從而導致微小缺陷容易被忽略,將不合格齒輪判定為合格.采用方案2 對缺陷部分進行標注,就好比在提醒網絡更應該關注微小缺陷本身,使得處于像素級別缺陷可以被檢測出來.兩種標注方案在設計理念上各有優缺點,只是方案一的標注思路使得帶有像素級別缺齒的齒輪與合格齒輪相比并無明顯差別,召回率較低,且標注工作量更大,而方案2 相對于方案1 而言應當注意的是,當待檢測工件缺陷類型較多時,需要對缺陷類別進行逐一分類,既多分類.綜合樣本標注工作量以及網絡檢測效果考量,針對微小缺陷對象,實驗采用第2 種樣本標注方案.

圖8 缺齒樣本標注
特征提取網絡采用ResNet-101 與FPN 的組合,加載基于coco 數據集預訓練好的網絡模型權重文件,使用經過樣本擴增的齒輪數據集對網絡模型進行遷移學習.實驗訓練集為200 張微小缺齒圖像,圖像規格統一為273×265 的三通道RGB 圖像,每張齒輪圖像至少有一個帶有缺陷的輪齒,同時部分齒輪圖片含有多個不同尺度的微小缺齒,保證訓練得到的模型能同時對多種尺度范圍的微小缺齒進行檢測.
使用顯卡型號為1080Ti 的服務器對Mask RCNN 網絡模型進行訓練,顯卡顯存11 GB.Python 版本3.6.0、Tensorflow-gpu 版本1.6.0、Keras 版本2.1.6.網絡一次迭代訓練讀取兩張圖像,一個epoch 迭代次數為100 次,經過一次epoch 訓練之后,訓練集中的200 張圖像對網絡模型進行了一次完整訓練,參數epoch 設置為500 次,每訓練完一個epoch,便將最后一次迭代訓練得到的損失值保存在日志中,經過500 次epoch 訓練之后,改進的Mask R-CNN 網絡損失值得到有效收斂,使用tensorboard 對損失函數曲線進行顯示,如圖9.

圖9 損失函數曲線
部分檢測結果如圖10,圖中上側為使用未經調整Mask R-CNN 網絡檢測結果,下側為使用經過優化改進之后的Mask R-CNN 網絡檢測結果.從圖10 的檢測結果可以看出,通過對圖像特征提取過程進行優化以及根據標注框的尺寸設置合適的錨框尺寸,可以提高召回率,改善缺齒檢出率指標,實現對采集范圍內任意位置的缺齒進行更加有效地檢測.實驗目標為實現缺齒目標的檢測,故去除掩膜輸出,得到圖11 中的檢測結果.去除掩膜輸出之后更便于對檢測對象進行觀察.Mask R-CNN 網絡改進前與改進后的檢測數據比較如表5.由表5 得出,經過優化的Mask R-CNN 網絡對比未優化Mask R-CNN 網絡,缺齒檢出率提高了5.7%,召回率提高了0.057,召回率與缺齒檢出率分別達到了0.982 與98.2%.利用優化的Mask R-CNN 網絡進行檢測仍存在5 個缺齒漏檢,可對訓練集進一步地擴增,使得缺齒樣本覆蓋更廣的特征空間,進一步提高召回率與缺齒檢出率指標.同時本方法與傳統的圖像處理與機器學習算法[13]進行了比較,識別率提高了0.4 個百分點,比較結果見表6.
采用優化后的Mask R-CNN 目標檢測網絡不僅可以對齒輪微小缺齒進行檢測,譬如齒輪劃痕、齒面腐蝕、齒面污漬等視覺缺陷均可以采用這一方法.通過將優選的殘差神經網絡與對特征提取過程進行優化的特征金子塔網絡進行結合作為共享特征提取網絡,使得整個網絡模型能夠更好地學習到微小對象的特征表達.該方法無需進行大量圖像處理工作,有效的避免了傳統圖像處理方法對微小缺陷圖像進行處理過程中造成的誤差,且可實現對采集范圍內任意位置的齒輪微小缺陷的檢測,提高了檢測手段的智能化水平.該方法具有通用性,無需針對某一特定缺陷設定一個算法去解決.基于分割的樣本標注過程相對比較繁瑣,要求樣本標注精確以避免手工標注帶來的誤差.盡量使用像素比較高的樣本,優質的數據集可以訓練出檢測效果更好網絡模型.

圖11 去除掩膜輸出

表5 檢測結果比較

表6 檢測方法比較
致謝
作者感謝中央引導地方科技發展專項(2017L3009)以及福建省光電傳感工程研究中心對本研究的支持.