圖像識別、物體檢測、圖像切割(分割)
一、圖像識別
這裏的圖像識別是指給定框好的圖像,然後判斷圖像的類型,屬於圖像分類的問題,或者判斷兩個人臉是否爲同一張人臉等等,
主要涉及深度學習的分類問題,
重點是CNN的幾個經典分類網絡:LeNet、AlexNet、ZFNet、VGG、GoogleNet、ResNet、Densenet,以及人臉識別網絡FaceNet
1.CNN幾個經典網絡介紹:https://blog.csdn.net/gui694278452/article/details/88567689
2.Facenet網絡介紹:https://juejin.im/entry/5b0e0d98f265da092d519b0a
(DLib或者MTCNN進行人臉的檢測,在使用opencv的仿射變換進行人臉的對齊)
二、圖像檢測
圖像檢測是指在圖像中框出物體的位置並識別物體的類別(調用上面說的圖像識別技術)
主要涉及深度學習的模型如下:
RCNN、SPP-Net 、fast-rcnn 、faster-rcnn 、ssd 、yolo以及專門針對人臉的dlib和mtcnn
1.目標檢測rcnn系列:https://blog.csdn.net/linolzhang/article/details/54344350
rcnn SPP-Net fast-rcnn faster-rcnn
rcnn:
(1)Region Proposal提取2k個候選框,歸一化處理(裁剪放大),進入cnn提取特徵,進入分類器分類和邊界迴歸
存在問題:
a.候選框要預先提取,佔空間
b.cnn維度固定,需對圖像裁剪拉伸,導致信息丟失
c.proposal region需要cnn計算,耗時
SPP-Net
(2)取消了crop/warp圖像歸一化過程,解決圖像變形導致的信息丟失以及存儲問題
採用空間金字塔池化替換了全連接層之前的最後一個池化層
a.SPP放在所有的卷積層之後,有效解決了卷積層重複計算的問題
FAST RCNN(首次提出roi,還不是end-to-end)
(1)提出ROI池化層,同時加入了反向傳播
(2)多層Loss,分類和邊界迴歸統一
FASTER RCNN(首個end-to-end)
(1)添加額外的RPN分支,將候選框提取合併到深度網絡中
MASK RCNN(加入物體分隔功能)
(1)將Roi Pooling 層替換成了 RoiAlign
(2)添加並列的FCN層
YOLO(You Only Look Once)
SSD(Single Shot MultiBox Detector)
三、Faster Rcnn詳解
feature map:一次量化
roi pooling:又一次量化
1.Conv layers,提取feature maps,用於後面的rpn和roi層,對所有卷積做了擴邊處理,pad=1,kernel_size=3,pad=1, stride=1,卷積後與原來的位置一一對應。(經典CNN網絡,VGG,inception)原圖:800*600,下采樣16倍,feature map
ceil(800/16) * ceil(600/16)
2.rpn:使用RPN(區域候選網絡)生成檢測框,速度非常快,實現了end-to-end,傳統的滑動窗口和Selective Search很耗時
每個feature map的點有9個anchor,anchor個數=ceil(800/16) * ceil(600/16) * 9
2個loss:分類,softmax,一個是檢測框的迴歸,bounding box regression
anchor:9個規格(每個點都有9個anchor),softmax分background,
3.roi,和feature map結合,rpn輸出不同的proposal boxes,cnn輸入尺寸爲固定值,roi,
4.classification:softmax對proposal進行分類,識別,然後再使用bounding box regression獲取更高精度的
四、Yolo詳解
分成7*7的框,每個框負責中心點落在框的檢測,每個框有兩個檢測框,採用迴歸問題
(檢測框太少,不好檢測小物體)
Yolo2:特徵提取器採用:darknet,13*13(小物體不夠),yolo2採用Multi-scale Training 策略
五、SSD
Yolo:難以檢測小目標、定位不準
(1)採用多尺寸特徵圖用於檢測
(2)
(3)設置先驗框