1. 程式人生 > >==1==rcnn/fast_rcnn/faster_rcnn/mask_rcnn (目標檢測與目標例項分割 論文理解)

==1==rcnn/fast_rcnn/faster_rcnn/mask_rcnn (目標檢測與目標例項分割 論文理解)

@TOC
原文連結 mask_rcnn paper
原文連結 r_cnn
原文連結 fast_rcnn
原文連結 FPN
opencv 4.0 程式碼-mask_rcnn

深度學習筆記1

R_CNN

在這裡插入圖片描述

說明

Ross Girshick 2014年提出的,第一次用CNN卷積特徵做目標檢測,框圖如上。首先使用ss演算法進行候選框的提取,然後將每個候選框warped(將輸入的候選區尺寸統一為224*224,Alexnet輸入 尺寸要求),然後使用Alexnet CNN網路進行卷積特徵提取,然後進行類別區分與bounding box迴歸。創新點如下:

  1. 遷移學習

    ,這是最震撼我的一種想法,由於標註有位置資訊的資料集很少,PASCAL VOC只有20類,10k的資料量,對於深度學習網路很容易過擬合。
    預訓練:遷移學習的想法就是先用ILSVR 目標識別資料(1000類 100萬的資料量)進行訓練CNN卷積特徵。
    微調:然後在用少量的標有位置資訊的資料集進行訓練後面的FCN層(特定任務層);意思作者認為卷積特徵出來的資料是公用的基礎的資料,作為不同任務的區分層為全連線層。

  2. ss演算法 根據圖片的 顏色 紋理 尺寸大小 吻合度特徵進行融合。在進行ss演算法前圖片先通過圖論的方法預分割成若干的區域。ss演算法的流程
    在這裡插入圖片描述

  3. 問題1 一張圖大概有2000個候選區域,每一個區域都要進行一次CNN卷積,耗時耗記憶體;

  4. 問題2 訓練過程中,目標分類與定位是分開訓練的,先訓練目標分類再訓練目標定位。耗時

  5. 優點 MAP提高到66%,創新了之前一直使用人工提取特徵產生結果的精確度!!!!精確度提升了30%;

fast_rcnn

在這裡插入圖片描述
說明:可以輸入任意尺寸圖片,因為有ROIPOOL layer層。在R_CNN基礎上優化創新的,如上圖結構圖所示,將CNN卷積網路共享了,ss演算法在原圖上進行候選框的提取,在卷積後的特徵圖上進行對映的。對映關係為下采樣率,下采樣率由卷積的步長與池化層的步長決定的。舉例子,假如下采樣率為16則特徵上的一個畫素點對應原圖的16*16的矩陣區域。後續的步驟與R_CNN一致。

下面將闡述與R_CNN的區別:

  1. 線性分類器SVM分類器替換為softmax分類器
    線性分類器SVM在SVM中,稱為Maximum Marginal;在這裡插入圖片描述
    得分函式/score function:將原始資料對映到每個類的打分的函式f(xi,W,b)=Wxi+b
    損失函式/loss function:用於量化模型預測結果和實際結果之間吻合度的函式;
    決策面:Wxi+b=0(H1/H2的平行中間那條)
    決策函式:f(x)=sign(Wxi+b ) 要麼+1 要麼-1 只能判斷是或不是
    softmax:
    logit=W‘x+b
    得分函式:y=softmax(logit)
    決策條件:生成的是一個K維的向量,k為類別數目。K類裡面哪個概率值大則歸為哪類。

  2. 多工loss 訓練一次完成目標檢測與定位多工loss 訓練一次完成目標檢測與定位

  3. ROIPool layer從cnn卷積得到的特徵圖中選出了感興趣區域,又因為後面卷積層共享要將選出的區域進行尺寸統一(用池化的正規化)77;比如特徵圖上大小為2020,縮減為77,則劃分區域邊長為20/7=2(取整),22的區域裡max pool取最大值替代2*2區域
    在這裡插入圖片描述

  4. CNN卷積網路用VGG16替換了原來的Alexnet 卷積層更深,提取更多的語義特徵

  5. 指標整個過程耗時3s左右,ss區域提取就要2-3s(cpu),不能達到實時,但是比R_CNN訓練簡單 時間更短

faster_rcnn

在這裡插入圖片描述
說明:可以輸入任意尺寸圖片,因為有ROIPOOL layer層。論文題目是toward real time 向著實時處理的目標去的,但是是非實時,5PFS。ss提取候選區很耗費時間,所以本文用RPN演算法替換了ss搜尋區域演算法。其他並沒有什麼變化。
闡述一下faster_rcnn的創新點(與fast_rcnn的區別)

RPN:即滑動窗篩選候選區,定義了三種尺寸,三種長寬比,也就是說同一個錨點有9個候選區域。對於mn整幅圖而言就會提取出Mn*9個候選框。sacle表示面積。ratios表示長寬比
在這裡插入圖片描述
在訓練過程中的評價標準
IOU,ground truth 表示訓練過程中的監督樣本
在這裡插入圖片描述

mask_rcnn

在這裡插入圖片描述
說明:mask_rcnn = faster_rcnn+fcn(識別出mask)可以輸入任意尺寸圖片,因為有ROIAlign layer層。

  1. resnet101/resnet50替換了VGG16網路更深,直接好處就是特徵圖語義資訊更多
  2. RoiAligen 替換了 Roi pool 提高了定位精確度 同時給畫素級別的例項分割提供了良好的基礎。在這裡插入圖片描述
    與ROIPool區別是,沒有進行兩次量化,而是保留了小數位,進行插值然後進行池化;
    插值公式如下:由於插值點在正中心 其實公式可以化解為,0.25f1+0.25f2
    +0.25f3+0.25f4
    在這裡插入圖片描述
  3. FPN 低解析度,強語義特徵和高解析度弱語義特徵相結合,可以很好解決小尺寸目標問題(有的目標太小,還沒有步長大,這樣卷積池畫後特徵就消失了)
    在這裡插入圖片描述
    如圖所示,在本論文應用中是從第二階段卷積成對卷積特徵處理,第一階段卷積層太大。前向處理是下采樣過程,然後將最後一層最深語義特徵的特徵圖進行上取樣,每進行一次上取樣輸出大小與其上一層的大小一致,同時將上一層做11的卷積,主要是把通道數(取決於卷積的kenel數)變換為一致,然後才能融合,融合方式為1對1相加。
    在這裡插入圖片描述
    5mask_rcnn fcn
    在這裡插入圖片描述
    在RPN選出的roi上,進行卷積如上圖右邊所示,生成k個M
    M的掩膜,對每一個畫素點應用sigmoid ,然後>0.5歸為前景,反之歸為背景。

在這裡插入圖片描述
loss計算:(平均二值交叉損失熵)
在這裡插入圖片描述
在這裡插入圖片描述