目標檢測筆記(一)綜述

2021-09-03 02:07:50 字數 2250 閱讀 4346

顧名思義,即從一張中,檢測出有哪些想要知道的物體,同時給出目標所在的位置資訊。在深度學習影象處理研究方面,主要分為兩類----分類和檢測,當然也包括影象合成等其他方面。分類相對簡單,通常一張輸入對應於乙個類。分類的特點就是輸入場景單一,一張屬於乙個類別,在分類方面也有很多經典的網路,例如alexnet、vggnet、resnet等等,現在的準確率也是越來越高。物體檢測(目標檢測 object detection)相對於分類來說比較複雜,因為一張裡面可能存在屬於多個類的多個物體,不僅僅要檢測出多少個目標、每個目標屬於什麼類別,還要確定每個目標的位置(bounding boxes)或者輪廓(影象分割),並且目標的分布存在方向不定、大小不定、位置不定、形狀不定、相互交叉重疊等情況,比較常用的場景有行人檢測、車輛檢測、文字檢測等場景,在應用領域主要包括無人駕駛、安全保障、醫療、農業、生產等領域。

在傳統視覺領域,目標檢測就是乙個非常熱門的研究方向。傳統的目標檢測一般使用滑動視窗的框架,主要包括三個步驟:

1、利用不同尺寸的滑動視窗框住圖中的某一部分作為候選區域;

2、提取候選區域相關的視覺特徵。比如人臉檢測常用的harr特徵;行人檢測和普通目標檢測常用的hog特徵等;

3、利用分類器進行識別,比如常用的svm模型。

傳統的目標檢測中,非常經典的是多尺度形變部件模型dpm(deformable part model),連續獲得voc 2007到2009的檢測冠軍,2023年其作者felzenszwalb pedro被voc授予」終身成就獎」。dpm把物體看成了多個組成的部件(比如人臉的鼻子、嘴巴等),用部件間的關係來描述物體,這個特性非常符合自然界很多物體的非剛體特徵。dpm可以看做是hog+svm的擴充套件,很好的繼承了兩者的優點,在人臉檢測、行人檢測等任務上取得了不錯的效果,但這種特徵提取方式存在明顯的侷限性,首先,dpm特徵計算複雜,計算速度慢;其次,人工特徵對於旋轉、拉伸、視角變化的物體檢測效果差。這些弊端很大程度上限制了演算法的應用場景。正當大家熱火朝天改進dpm效能的時候,基於深度學習的目標檢測橫空出世,迅速蓋過了dpm的風頭,很多之前研究傳統目標檢測演算法的研究者也開始轉向深度學習。

目前目標檢測領域的深度學習方法主要分為兩類:two stage的目標檢測演算法,這類演算法的典型代表是基於region proposal的r-cnn系演算法,如r-cnn,fast r-cnn,faster r-cnn等;one stage的目標檢測演算法,比較典型的演算法如yolo和ssd。前者是先由演算法生成一系列作為樣本的候選框,再通過卷積神經網路進行樣本分類;後者則不用產生候選框,直接將目標邊框定位的問題轉化為回歸問題處理。正是由於兩種方法的差異,在效能上也有不同,前者在檢測準確率和定位精度上佔優,後者在演算法速度上佔優。

pascal voc:

pascal voc對比:

imagenet:

ms coco:

open images:

cifar:

mnist:

kitti(自動駕駛): 

cityscapes(自動駕駛):

lfw(人臉檢測):

nuscenes(自動駕駛):

在目標檢測領域,也有一些特殊的概念和評價標準,主要有:

1. iou

當模型檢測出目標的位置(bbox)時,我們應該怎麼判斷識別的是否正確呢?不同於物體分類可以精確地定義正負,目標檢測幾乎很難做到輸出的目標位置和實際框定的目標一絲不差,一般我們會按照識別結果和實際位置的重合度來判斷正負,比如如果模型輸出的bbox和實際的bbox重合度在50%以上,我們就認為輸出正確。那麼這個重合度是怎麼計算的呢?

iou定義了兩個bounding box的重疊度,如圖2所示,iou=(a∩b)/(a∪b),就是矩形框a、b的重疊面積佔a、b並集的面積比例。在實際中,我們也常設定乙個iou閾值來判斷識別正誤。

2. 非極大值抑制(nms)

如圖3,定位乙個車輛,最後演算法可能找出了一堆的方框,有些是比較合理的,有些可能只包含了一部分,我們需要判別哪些矩形框是沒用的。先假設有6個矩形框,根據分類器類別分類概率做排序,從小到大分別屬於車輛的概率分別為a、b、c、d、e、f。

非極大值抑制(nms)非極大值抑制顧名思義就是抑制不是極大值的元素,搜尋區域性的極大值。

目標檢測演算法綜述筆記

主要參考兩篇綜述 object detection in 20 years a survey recent advances in deep learning for object detection csdn上有翻譯版,對照這翻譯版,能夠更快的理解,注意如果是菜鳥,最好review三遍,三遍是我從...

目標檢測演算法綜述

1.傳統的目標檢測框架,主要包括三個步驟 1 利用不同尺寸的滑動視窗框住圖中的某一部分作為候選區域 2 提取候選區域相關的視覺特徵。比如人臉檢測常用的harr特徵 行人檢測和普通目標檢測常用的hog特徵等 3 利用分類器進行識別,比如常用的svm模型 2.目標檢測領域的深度學習方法主要分為兩類 對於...

傳統目標檢測演算法綜述

一 viola jones 人臉檢測 1.haar特徵抽取 初始化樣本的權重w,樣本權重之和為1 訓練弱分類器 更新樣本權重 迴圈第二步 結合做個分類器結果,進行投票 2.訓練人臉分類器 3.滑動視窗 二 hog svm 行人檢測,opencv實現 1.提取hog特徵 hog特徵 2.訓練svm分類...