yolo:實時快速目標檢測
yolo詳解
傳統目標檢測系統採用deformable parts models (dpm)方法,通過滑動框方法提出目標區域,然後採用分類器來實現識別。近期的r-cnn類方法採用region proposal methods,首先生成潛在的bounding boxes,然後採用分類器識別這些bounding boxes區域。最後通過post-processing來去除重複bounding boxes來進行優化。這類方法流程複雜,存在速度慢和訓練困難的問題。
yolo採用單個卷積神經網路來**多個bounding boxes和類別概率;yolo將物體檢測作為乙個回歸問題進行求解,輸入影象經過一次inference,便能得到影象中所有物體的位置和其所屬類別及相應的置信概率。而rcnn/fast rcnn/faster rcnn將檢測結果分為兩部分求解:物體類別(分類問題),物體位置即bounding box(回歸問題)。
個人覺得,分析比較faster yolo ssd這幾種演算法,有乙個問題要先回答,yolo ssd為什麼快?最主要的原因還是提proposal(最後輸出將全連線換成全卷積也是一點)。其實總結起來我認為有兩種方式:1.rpn,2. 暴力劃分。rpn的設計相當於是乙個sliding window 對最後的特徵圖每乙個位置都進行了估計,由此找出anchor上面不同變換的proposal,設計非常經典,代價就是sliding window的代價。相比較 yolo比較暴力 ,直接劃為7*7的網格,估計以網格為中心兩個位置也就是總共98個」proposal「。快的很明顯,精度和格仔的大小有關。ssd則是結合:不同layer輸出的輸出的不同尺度的 feature map提出來,劃格仔,多種尺度的格仔,在格仔上提「anchor」。結果顯而易見。還需要說明乙個核心: 目前雖然已經有更多的rcnn,但是faster rcnn當中的rpn仍然是乙個經典的設計。下面來說一下rpn:(當然你也可以將yolo和ssd看作是一種rpn的設計)
簡明一些的解釋
r-cnn估計候選位置資訊,針對所有候選區域的二維特徵圖,逐一執行cnn推演得到類別資訊。
fast r-cnn(重複 r-cnn)估計候選位置資訊,基於候選區域的特徵圖生成一維特徵向量,逐一執行fc推演同時得到類別和位置資訊。
faster r-cnn基於所謂的區域選擇網路估計候選區域,(重複fast r-cnn)基於候選區域的特徵圖生成一維特徵向量,逐一執行fc推演同時得到類別和位置資訊。
fpn與其它模型只用單層特徵相比,fpn將高層特徵圖融合至多個低層特徵圖。即提供具有強壯語義的多層特徵圖,進而增強模型對小目標的處理能力。faster r-cnn 加入 fpn 後,顯著提公升了檢測能力。
ssd不同於其他模型提取候選區域,ssd 使用所謂的錨箱替代區域選擇網路,同時估計目標的類別資訊和位置資訊。
評價這一系列方法
觀察 r-cnn -> fast r-cnn -> faster r-cnn + fpn -> ssd 的發展過程,由直觀但繁瑣的 r-cnn 逐漸發展至可端到端訓練的 faster r-cnn 和 ssd,演算法精度的持續上公升 或 提高檢測速度的過程中,新演算法彌補了上一種演算法中的顯著弱勢。發展趨勢合情合理,卻又讓人覺得精妙稱讚。作為總結,靜心分析已有演算法,有利於了解研究現狀,站在巨人的肩膀上更會產出優秀的成果。
1. [fast r-cnn]
2. [faster r-cnn] towards real-time object detection with region proposal networks
3. [fpn] feature pyramid networks for object detection
4. [ssd] single shot multibox detectior
===
知乎筆記:
rcnn-將cnn引入目標檢測的開山之作
sppnet-引入空間金字塔池化改進rcnn
fast r-cnn
faster r-cnn
**yolo
ssd
yolo2
曉雷機器學習筆記
參考:
[1] r-cnn: girshick r, donahue j, darrell t, et al. rich feature hierarchies for accurate object detection and semantic segmentation[c], cvpr, 2014.
[2] sppnet: he k, zhang x, ren s, et al. spatial pyramid pooling in deep convolutional networks for visual recognition[c], eccv, 2014.
[3] fast-rcnn: girshick r. fast r-cnn[c]. iccv, 2015. [4] fater-rcnn: ren s, he k, girshick r, et al. faster r-cnn: towards real-time object detection with region proposal networks[c]. nips, 2015.
[5] yolo: redmon j, divvala s, girshick r, et al. you only look once: unified, real-time object detection[j]. arxiv preprint arxiv:1506.02640, 2015.
平面物體檢測
這個教程的目標是學習如何使用 features2d 和 calib3d 模組來檢測場景中的已知平面物體。測試資料 資料影象檔案,比如 box.png 或者 box in scene.png 等。建立新的控制台 console 專案。讀入兩個輸入影象。mat img1 imread argv 1 cv...
DPM物體檢測相關
deformable parts model dpm 簡介 dpm deformable part model 模型結構初解 關於dpmv5 deformable part model 演算法中model結構的解釋 把訓練出來的模型檔案.mat格式轉為.txt格式的 hog 用於人體檢測的梯度方向直...
dlib物體檢測開發
一 dlib 動態庫編譯 vim dlib cmakelists.txt 修改部分內容 if dlib iso cpp only option dlib jpeg support off option dlib link with sqlite3 off option dlib use blas o...