季忠源 李丹美
摘?要:為了解決工廠實際中遇到的鋁材表面缺陷問題,本文介紹了基于RCNN上發展的Faster?RCNN與Cascade?RCNN算法,并且簡要概述了利用特征金字塔網絡來解決Faster?RCNN在處理多尺度檢測問題上的不足,還提出了通過改進RPN來加強Faster?RCNN的檢測準確率,利用殘差網絡ResNet50替換了原始網絡,增強其檢測效果。
關鍵詞:深度學習;Faster?RCNN;Cascade?RCNN;瑕疵檢測;殘差網絡
,因為多方因素的干擾,鋁材表面會出現多種缺陷,例如臟點、起坑、噴流等各種表面瑕疵[1],這些表面存在的缺陷會使得鋁材在實際的使用過程中受到不同程度的影響。為了鋁材在工業實際應用中不會出現問題,造成各種事故或者導致各種工程存在缺憾,檢測鋁材表面是否存在明顯瑕疵的需求日益壯大。但是傳統地利用工人肉眼檢查十分費時費力,并且還可能出現錯漏,效率低下的同時還要付出極大的人工成本。所以,各大工廠將目光投向了近幾年技術發展異常迅猛的深度學習領域[2],開展了為數不少的圖像識別競賽,想要將圖像識別項目落實于工廠實際,為工業領域做出貢獻。人工智能領域技術的革新讓不少鋁材商人看到了機會,本文將探討現有的深度學習算法檢測鋁材表面瑕疵的實際過程,并且對現有算法進行一定改進,使得其更貼合于工業實際應用。
1?基于RCNN的目標檢測算法
1.1?Faster?RCNN
Faster?RCNN[3]是目前在目標檢測領域應用十分廣泛并且地位相當高的一種Twostage的目標檢測算法。Faster?RCNN可大致概括為兩個步驟,第一步通過RPN來獲得輸入圖像的感興趣的區域ROI,接著Fast?RCNN網絡會檢測和分類之前初步得到的ROI。相比起一些Onestage的算法,faster?RCNN的檢測效果要更加地精確,但是在檢測速度上可能會落后于一些Onestage的算法。
上圖1為Faster?RCNN的網絡結構,主要由以下四部分組成:(1)對輸入圖片進行特征提取,并且輸出其特征的卷積層。(2)初步劃分設定的感興趣區域,代替了Fast?RCNN中的Selective?Search用于產生建議窗口的RPN網絡。(3)對不同的輸入的圖片進行轉換并且輸出固定大小的ROI?Pooling層。(4)精確定位每個圖像中的候選的特征,輸出特征的類別并且加以定位的分類和回歸層。
1.2?Cascade?RCNN
Cascade?RCNN[4]是近兩年來在RCNN算法的基礎上,加以拓展的用于目標檢測的新算法。其算法的主要思想是利用不斷提高的IoU(intersection?over?union)閾值,在樣本數保持不變的情況下不斷訓練,來得到高精度的檢測器,級聯多個RCNN檢測網絡來達成檢測的目標。這個目標檢測算法還是通過分類與定位兩個步驟來實現檢測。
Cascade?RCNN的網絡結構在Faster?RCNN的網絡結構上進行了延伸,首先是將用于提取候選區域的子網絡H0用于一整張輸入的圖片,然后是用于ROI檢測的網絡H1會得到分類分數和邊界框。Cascade?RCNN中的模型是將前一個步驟中的輸出用來訓練,而不是與之前的Faster?RCNN網絡一樣對最早輸入的圖片數據進行訓練。利用調控不同的IOU閾值來得到想要得到的數據,這是Cascade?RCNN的一大優點。
總的來說,Cascade?RCNN由四個階段組成,分別是一個RPN與三個檢測IOU閾值為0.5、0.6、0.7的網絡。
該網絡的特性可以概括為以下三點:(1)調高IOU閾值的同時,網絡的檢測能力會降低,這是因為提供的訓練樣本數量呈指數減少,導致了過擬合。(2)這是一個極具創新性的級聯RCNN,由一系列的檢測器組成,這些檢測器會隨著IOU閾值的提高而訓練。(3)每一個級聯的RCNN網絡都設有不一樣的IOU閾值,這使得結果精確度得到了提高,并且作為下一級網絡的輸入,來不斷地提升網絡的精確性。
2?改進Faster?RCNN
2.1?重新定義anchor框尺寸
工業中使用的鋁材在多方因素干擾下,會生成較多種類的瑕疵,較容易分辨的分為不導電、擦花、漏底、臟點、起坑、噴流、桔皮、角位漏底、漆泡、雜色共十類瑕疵。每種瑕疵對應的部位、分布面積均有細微差異,而且多種瑕疵密集分布時可能使得檢測框出現重疊情況,導致檢測結果不理想。所以為了能夠適應不同種類瑕疵的檢測情況,我們需要重新設計anchor框的長寬比以及尺寸來產生較為合適的建議區域。
模型中原有的anchor框長寬比固定在2∶1、1∶2、1∶1的比例,但是鋁材中存在桔皮、擦花等大面積不規則瑕疵,例如桔皮瑕疵如果在檢測過程中將anchor框比例設置在5∶1會得到更好的檢測準確度結果。
2.2?使用特征金字塔網絡
在原始的Faster?RCNN網絡中僅僅利用了單個高層特征,即RPN只選擇特征提取網絡中最后一層的特征,這種方式在大目標檢測時有很好地發揮,但是對于像素信息十分少的小型目標來說,其信息在采樣的過程中十分容易丟失,導致檢測精度的減小并且會出現不少檢測錯誤。為了解決檢測小目標困難的問題,常用的辦法是使用圖像金字塔來對多尺度變換進行增強,但是圖像金字塔會使計算量急劇增加,所以文中選擇了特征金字塔網絡結構來改進Faster?RCNN在多尺度變化檢測上的不足。
常見的圖像金字塔結構能夠對輸入的每一尺度的圖像進行特征提取,能夠解決大多數的多尺度變化問題,但是其運行時間過長,而且運行期間會占用大量內存使得它在實際應用中不可行。而SSD中也存在一定的問題,例如網絡中的低層會存在特征圖信息不足,分辨率不高等缺陷。
為了解決這些常見的問題,我們所使用的特征金字塔(FPN)網絡結構中每一層不同尺度的特征圖像都具備足夠的信息。FPN能夠在僅增加較少計算量的同時解決多尺度變化問題。
2.3?利用resnet50替代原始網絡
原始Faster?RCNN采取VGG16網絡為特征提取網絡,在模型訓練期間將網絡中提取到的誤差進行反向傳播從而使權重得到更新,但是這樣的過程在小目標檢測時會產生兩個嚴重的問題:(1)瑕疵檢測中目標瑕疵過小,所攜帶信息容易在特征提取的過程中丟失,導致檢測結果不理想。(2)不斷加深的網絡深度中,會導致反向傳播過程中的梯度發生彌散甚至會使得梯度消失。
為了防止上述的問題出現,本文提出更換特征提取網絡,選擇了另一種resnet50殘差網絡。ResNet利用捷徑連接將輸入與輸出進行跳層連接,將單元的輸入輸出加在一起進行激活,通過這種操作模型會學習到映射后相對于原來的偏差,這種結構可以使小目標缺陷在深度網絡中存活更長時間。
上述為resnet50的網絡結構,由于加入了大量跳層連接,訓練過程中會保留更多的小目標瑕疵信息,在檢測效果上會得到優化。
3?結論
為了加大深度學習算法在檢測鋁材瑕疵的工業實際上得到靈活運用,本文介紹了Faster?RCNN與Cascade?RCNN的基本原理,并且分析了其優劣與網絡結構區別。還在Faster?RCNN的基礎上提出了算法改進,使其能夠更加充分靈活地應用于鋁材這類小目標瑕疵的檢測。
參考文獻:
[1]張旭.基于深度卷積神經網絡的鋁材表面缺陷檢測[D].華東理工大學,2020.
[2]魏若峰.基于深度學習的鋁型材表面瑕疵識別技術研究[D].浙江大學,2019.
[3]Ren?S,He?K,Girshick?R,et?al.Faster?RCNN:Towards?RealTime?Object?Detection?with?Region?Proposal?Networks[J].IEEE?Transactions?on?Pattern?Analysis?&?Machine?Intelligence,2017,39(6):11371149.
[4]Zhao?W,Huang?H,Li?D,et?al.Pointer?Defect?Detection?Based?on?Transfer?Learning?and?Improved?CascadeRCNN[J].Sensors,2020,20(17):4939.
作者簡介:季忠源(1996—?),男,漢族,浙江溫州人,碩士,研究方向:圖像識別。