目标检测算法发展综述
目標(biāo)檢測算法
- 一、目標(biāo)檢測算法
- 二、目標(biāo)檢測算法存在的問題
- 三、目標(biāo)檢測算法的基本流程
- 四、傳統(tǒng)的目標(biāo)檢測算法
- 1.Viola-Jones(VJ人臉檢測算法)
- 2.HOG + SVM(行人檢測,使用Opencv實現(xiàn))
- 3.DPM(物體檢測)
- 補(bǔ)充——NMS
- 五、基于深度學(xué)習(xí)的目標(biāo)檢測算法
- 1.Two-Stage算法(段到段)
- 2.One-Stage算法(端到端)
- 3.對比
一、目標(biāo)檢測算法
主流的目標(biāo)檢測算法大致分為one-stage與two-stage。
two-stage算法代表有R-CNN系列,one-stage算法代表有Yolo系列。自己理解,two-stage算法將步驟一與步驟二分開執(zhí)行,輸入圖像先經(jīng)過候選框生成網(wǎng)絡(luò)(例如faster rcnn中的RPN網(wǎng)絡(luò)),再經(jīng)過分類網(wǎng)絡(luò),對候選框的內(nèi)容進(jìn)行分類;one-stage算法將步驟一與步驟二同時執(zhí)行,輸入圖像只經(jīng)過一個網(wǎng)絡(luò),生成的結(jié)果中同時包含位置與類別信息。two-stage與one-stage相比,精度高,但是計算量更大,所以運(yùn)算較慢。
簡單時間線:
目標(biāo)檢測算法分類:
二、目標(biāo)檢測算法存在的問題
1.目標(biāo)種類與數(shù)量問題:同一幅圖下要識別的物體類別和數(shù)量可能同時存在多個,在要識別的目標(biāo)密度非常大時就可能出現(xiàn)像相互遮擋的問題。
2.目標(biāo)尺度問題:同一幅圖下同一類別的物體可能因為透視原理的印象,變得有大有小。尤其是有時候目標(biāo)的大小可能會變得非常小。
3.外在環(huán)境干擾問題:由于光照等問題引起的圖片質(zhì)量問題。
4.目標(biāo)檢測和目標(biāo)分割:目標(biāo)識別、目標(biāo)檢測、語義劃分、實例檢測
三、目標(biāo)檢測算法的基本流程
候選框的選擇是依靠滑動窗口來選擇的。
四、傳統(tǒng)的目標(biāo)檢測算法
1.Viola-Jones(VJ人臉檢測算法)
- Haar特征抽取(Opencv中有這個特征提取包)
- 訓(xùn)練人臉分類器(Adaboost算法)
- 滑動窗口選取候選框
2.HOG + SVM(行人檢測,使用Opencv實現(xiàn))
- 提取HOG特征
- 訓(xùn)練SVM分類器
這里的SVM是二分類分類法。(我們會使用現(xiàn)成的包就好,不一定需要自己去實現(xiàn),最好自己手動寫一下。)
SVM又叫支持向量機(jī),所謂支持向量正是圖中所畫的虛線上的點,他們對最后分類的結(jié)果影響較大。
- 利用滑動窗口提取目標(biāo)區(qū)域,進(jìn)行分類判斷
- NMS
- 輸出檢測結(jié)果
3.DPM(物體檢測)
- DPM特征提取
- HOG的擴(kuò)展
- 使用SVM訓(xùn)練得到物體的梯度
補(bǔ)充——NMS
五、基于深度學(xué)習(xí)的目標(biāo)檢測算法
1.Two-Stage算法(段到段)
- 使用各種CNN卷積神經(jīng)網(wǎng)絡(luò)作為backbone主干網(wǎng)絡(luò),進(jìn)行特征提取
- 然后進(jìn)行一步粗分類(區(qū)分前景和后景)和粗定位(anchor),也就是說在上圖的“產(chǎn)生候選區(qū)域CNN特征”之前還應(yīng)該有一個框“使用RPN網(wǎng)絡(luò)產(chǎn)生候選區(qū)CNN特征”
- 段到段的目標(biāo)檢測
- 準(zhǔn)確度高但速度較one-stage慢
2.One-Stage算法(端到端)
- 使用CNN卷積特征
- 直接回歸物體的類別概率和位置坐標(biāo)值
- 準(zhǔn)確率低但速度快
3.對比
- 雙階段精度高但速度慢,單精度速度快但精度稍遜。
- 雙階段目標(biāo)檢測器采用了兩段結(jié)構(gòu)采樣來處理類別不均衡的問題(意思就是在同一張圖片中需要進(jìn)行檢測的目標(biāo)太少,不需要檢測的背景信息太多),一階段中:rpn使正負(fù)樣本更加均衡(先粗分類,區(qū)分前后景),再粗回歸,使用Anchor來擬合bbox,然后再二階段精調(diào)。
- One stage detector 的一個通病就是既要做定位又要做classification。最后幾層1x1 conv layer的loss混在一起,并沒有什么專門做detection或者專門做bbox regression的參數(shù),那每個參數(shù)的學(xué)習(xí)難度就大一點。
- Two stage detector 的第一個stage相當(dāng)于先拿一個one stage detector來做一次前景后景的classification + detection。這個任務(wù)比 one stage detector 的直接上手N class classification + detection要簡單很多。有了前景后景,就可以選擇性的挑選樣本使得正負(fù)樣本更加均衡,然后拿著一些參數(shù)重點訓(xùn)練classification。訓(xùn)練classification的難度也比直接做混合的classification和regression 簡單很多。
- 雙階段其實就是把一個復(fù)雜的大問題拆分成更為簡單的小問題。各個參數(shù)有專攻,Two Stage Detector 在這個方面是有優(yōu)勢的。但one stage detector 里如果用了 focal loss 和 separate detection/classification head 那效果跟 two stage detector 應(yīng)該是一樣的。
總結(jié)
以上是生活随笔為你收集整理的目标检测算法发展综述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: armbian ubuntu 桌面_香蕉
- 下一篇: Windows 10彻底关闭window