數據的準備其實是最花功夫和時間的晤碘,度過了上一個階段后枯跑,就進入激動的模型訓練階段了恼除,首先簡要聊聊我對Mask RCNN算法的理解:
MaskRCNN是何凱明大神基于FastRCNN的改進璃谨,2018年初在tensorflow上實現了該模型算法芽狗。在原有FastRCNN的基礎上,將ROIPooling部分調整為ROIAlign庶橱,同時增加mask值描述分類贮勃。我對整個Mask RCNN的理解如下:
MaskRCNN 是一種two stage圖像檢測方法,追求精度和識別效果苏章,所謂two stage寂嘉,就是說第一步先要對圖像進行掃描,然后生成目標區(qū)域,認為里面有東西垫释;第二部再進行圖片分類以及生成界限框(矩形框rois)和mask丝格。與yolo和視網膜等追求速度的one stage算法不一樣。
下面一步一步說棵譬,first stage:
圖像進來首先是卷積層:這是一個標準的殘差網显蝌,代碼使用的是ResNet101網絡作為特征抽取器,前面的幾層可以檢測低層次的特征订咸,比如邊緣和邊角曼尊,后面的層次可以檢測一些高級特征,具體汽車脏嚷、人骆撇、天空等等,通過這個backbone網絡父叙,圖片會被提取出32*32的特征圖 共計2048個神郊。這些特征圖會進入下一個stage
在殘差網絡生成特征的同時,FPN特征金字塔也能更好識別物體的多重尺度上的特征趾唱,它將不同層級的特征可以自由的傳遞涌乳。雖然最后一層的feature maps 語義強,但是位置和分辨率都比較低甜癞,容易檢測不到比較小的物體夕晓。FPN的功能就是融合了底層到高層的feature maps ,從而充分的利用了提取到的各個階段的特征(ResNet中的C2-C5? ? 悠咱,參閱https://blog.csdn.net/remanented/article/details/79564045)蒸辆。
這里再說說高層上采樣:為了在圖像分辨率高的時候看見小東西,就要把后面分辨率低的特征拿到前面分辨率高的圖樣里融合成新的特征析既。繞嘴躬贡。。眼坏。
這段代碼能看出先生成上層特征逗宜,再生成下層特征 ,upsampling即是上采樣空骚。原代碼將FPN放在RPN網絡中用于生成proposal,原來的RPN網絡是以主網絡的某個卷積層輸出的feature map作為輸入擂仍,簡單講就是只用這一個尺度的feature map囤屹。但是現在要將FPN嵌在RPN網絡中,生成不同尺度特征并融合作為RPN網絡的輸入逢渔。(參閱https://blog.csdn.net/u014380165/article/details/72890275)
好了肋坚,下面談談對second stage的理解。
RPN 區(qū)域推薦的網絡,用于幫助網絡推薦感興趣的區(qū)域智厌,首先是來自FPN輸出的特征P2到P5诲泌,即conv feature map
獲得窗口坐標和前后景置信度
接下來就是RoIAlign了,這也是MaskRCNN的重點改進
可以看出來铣鹏,兩者最大的區(qū)別就是ROIPooling做了2次取整敷扫,從圖片到特征圖,又從特征圖到ROI池化層诚卸,這對于圖像分割會產生很大的誤差葵第。RoiAlign采用雙線性插值來得到固定四個點坐標的像素值。得到固定的7*7的區(qū)域特征圖
這些搞定了合溺,就可以開始分類和mask了:包括了物體檢測最終的classes和bounding boxes卒密。該部分是利用了之前檢測到了ROI進行分類和回歸(是分別對每一個ROI進行);mask的預測也是在ROI之后的棠赛,通過全連接層來進行的哮奇。因為每個ROI只對應一個物體,只需對其進行語義分割就好睛约,相當于了實例分割了(? 在訓練的時候鼎俘,二者都是同時進行的;在預測的時候痰腮,先得到分類的結果而芥,然后再把此結果傳入到mask預測中得到mask)
---------------------------------------------------------------------------------------------------------------------------
以上是模型的預測原理,下面談談實際的訓練膀值,訓練的時候要先注明是訓練的哪一個部分:
我這里采用的是訓練頭部70 epoch棍丐,訓練resnet stage 5+ 20epoch,總計訓練90epoch沧踏,step設置為100.
STEPS_PER_EPOCH 要在config類里面事先說明歌逢。
整整跑了130小時翘狱。秘案。阱高。
mAP的計算可以調用util的方法赤惊,實際上圈暗,我們發(fā)現關于臟點類的識別,在系統(tǒng)的總體loss值下降到.5以內既可以滿足要求卧斟。
另外通過visualize里的方法,可以實現豐富的圖像識別效果
以下為臟點類瑕疵的識別效果:
對于鋼板擦痕和劃痕的識別效果比較奇怪珍语,超過一定訓練輪數后,會出現過擬合現象竖幔。有點進一步研究:
具體識別規(guī)律必須要實際確認板乙,loss和mAP只能算作輔助吧,訓練不一定越多越好拳氢,這就是本次”煉丹“的體會吧募逞。