For interview:電池項目

項目目的:針對有缺陷電池圖片,確定缺陷的位置和類別,進行電池質量檢測。

缺陷類別:劃痕、凹點、褶皺

圖片大小:3800(高)*2800(寬) 30M左右每張

數據集大小:1400張左右的圖片 每一類缺陷的數量?

數據指標:

(1)map

首先介紹ap的概念:PR曲線下的面積,是一個綜合計算了精確度和召回率的指標。map是所有類別的ap平均。注意,這裏要與roc指標作區分,roc指標以真正例(召回率)作爲縱軸,以賈正例作爲橫軸,pr曲線以precision作爲縱軸,recall作爲橫軸。

(2)自己定義的指標

次品檢測率:92.96%  準確識別出存在缺陷的圖片的比例

 

第一版本的模型:

採用faster rcnn模型進行缺陷檢測,得到

map=39.93%

precision=42.01%

recall=39.93%

第二版本的模型:

由於模型效果呈現出在凹點缺陷出現了多個框的特徵,且凹點這種小特徵的識別效果不好,因此

對faster rcnn進行調參,針對凹點缺陷較小的特徵,修改了NMS閾值,修改了圖片輸入resize的比例(修改爲了多少?)(原本是將短邊縮短到600像素,如果縮短後長邊依然大於1000像素,則按將長邊縮短至1000像素的比例進行放縮),修改了anchor的比例和個數(修改爲了多少)

效果:一個缺陷多個框的現象減少了,小目標的檢測召回率有所提升,但依然漏檢率較高

第三版的模型:

小目標檢測在深度學習卷積神經網絡模型中一直是一個難題。早期的目標檢測框架(R-CNN、YOLO系列)對於小目標檢測的效果都不甚良好。

閱讀大量小目標檢測文獻:

小目標檢測調研:

  • 圖像金字塔:較早提出對訓練圖片上採樣出多尺度的圖像金字塔。通過上採樣能夠加強小目標的細粒度特徵,在理論上能夠優化小目標檢測的定位和識別效果。但基於圖像金字塔訓練卷積神經網絡模型對計算機算力和內存都有非常高的要求。計算機硬件發展至今也難有勝任。故該方法在實際應用中極少
  • 特徵金字塔:參考多尺度特徵圖的特徵信息,同時兼顧了較強的語義特徵和位置特徵。該方法的優勢在於,多尺度特徵圖是卷積神經網絡中固有的過渡模塊,堆疊多尺度特徵圖對於算法複雜度的增加微乎其微。

總結下來思路基本上就是提取多個特徵圖的特徵進行綜合預測,這個的好處在於

(1)將淺層信息和深層信息結合起來,深層信息提供了語義信息,也就是類別信息,淺層信息提供了較爲精確的位置信息

(2)由於在cnn訓練過程中,每一層都會產生特徵圖,因此增加的工作量很小

然後我們選擇了使用FPN進行模型的改進。

FPN的主要思想如下:

(1)將得到的卷積特徵圖進行自上而下的融合,融合方法:將上層特徵圖下采樣、下層特徵圖通過1*1的卷積更改維度、將維度和大小都相同的兩個特徵圖相加、再對相加後的特徵圖進行3*3卷積以消除上採樣的混淆效應。如此我們可以得到很多個混合後的特徵圖。

(2)在faster rcnn網絡中可以分爲兩個部分,分別是rpn'和fast rcnn,這兩個部分的修改都採用了fpn的思想。

在rpn中,需要根據vgg得到的特徵圖確定anchor,進而對anchor進行分類和位置調整,從而得到預測的proposal。加入fpn的思想,首先這裏將vgg改成了resnet,其次是在每一層特徵圖上都確定anchor,在較淺層的特徵圖上的anchor面積較小,是32^2,在高層特徵圖上的anchor較大,是512^2,比例依然是三種。這樣的話,在卷積神經網絡中,我們可以確定15個anchor。相比於根據vgg確定的9個anchor,這裏不僅i利用了更加精確的特徵信息(主要是淺層位置信息),而且針對不同的特徵圖,我們採用不同的anchor大小,可以更精準的識別小目標物體。

在fast rcnn中,原始模型是根據vgg提供的特徵信息,以及rpn提供的位置信息和類別信息,進行分類和位置修偏。但是加入fpn之後,我們就得到了不止一張特徵圖,如何對這些特徵圖都進行利用呢?我們已經獲得了不同的proposal以及五張不同層次的特徵圖,在進行roi pooling時,可以針對不同大小的proposal,採用不同的特徵圖進行roi pooling,從而利用到不同的信息。

以上就是faster rcnn是如何將fpn結合進去的。

採用detectron平臺的faster_rcnn_R-50-FPN模型進行訓練。

模型效果:??

 

rcnn系列三個模型對比

rcnn:selective search+cnn+svm+線性迴歸

selective search 將圖像劃分爲小區域-->將小區域根據相似度進行合併-->得到一些可能的區域

將區域resize-->cnn對這些區域分別進行特徵提取(存在冗餘)

利用svm進行分類、利用線性迴歸進行位置預測(對每一類訓練一個迴歸模型進行ss的位置修正)

 

fast:(1)將原圖輸入cnn而不是每個區域輸入cnn(2)引入roi pooling層,將ss提取的位置的相應特徵進行resize(3)位置確定還是使用的selective search(4)將分類和位置迴歸放入網絡中

faster:引入rpn網絡代替ss,大規模提升速度

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章