目標檢測(Object Detection)

2021-09-24 21:01:46 字數 2778 閱讀 1091

計算機視覺包括影象分類、物體檢測識別、語義分割、例項分割4個基本任務

其中1)影象分類:一張影象中是否包含某種物體

2)物體檢測識別:分為目標檢測和目標識別兩個部分,首先檢測出影象中某一塊存在的目標和位置,然後識別出該影象屬於的類別

3)語義分割:根據影象的內容進行分割,分割的依據是內容。

4)例項分割:按照物件的個體進行分割

如下圖所示:

目標檢測的基本思路:同時解決定位(localization) + 檢測(detection)。 

候選區域是對某個指定的區域進行判斷分類。最簡單的方法就是滑窗法。但region proposal的區域大小不固定,使用滑窗法需要遍歷所有的視窗,用不同大小的視窗在整個影象上進行滑動判斷。雖然說方法很簡單,但是消耗太大。

候選區域的生成演算法通常是基於影象的顏色、紋理、面積、位置等合併相似的畫素,最終形成一系列的矩陣。常用的演算法有selective search(ss)edgeboxes

預先劃分的區域什麼大小的都有,滿足了目標的多尺度要求。對過分割(把本來屬於乙個整體的目標分成了多個)的區域有乙個合併的過程(區域的層次聚類)。對這些已經過濾一遍的候選區域進行後續的識別等處理,這樣可以大大減少候選區域的資料,也提高了演算法的速度。

演算法

step 1:首選生成區域集r。

step 2:計算r中每個相鄰區域的相似度s=

step 3:找到相鄰區間中相似度最高的兩個區域,並將它們合併成乙個新的區域,新增至r

step 5:重新計算新集合中所有子集的相似度。

step 6:重複step 3,直至s為null結束。

r-cnn將檢測抽象為兩個過程。1)提取出若干個region proposal。例如ss演算法。2)在這些區域上找出每個區域物體的類別。

但是通過ss方法提取的若干個區域,對每乙個區域進行特徵的提取和分類是非常判斷。基於這一問題提出了spp-net(空間金字塔池化)。這樣不同尺寸的region通過不同金字塔池化層,從而得到統一維度的輸出,加速演算法同時,兼顧了尺度問題。輸入整張影象,提取出整張影象的特徵圖,然後利用空間關係從整張影象的特徵圖中,在spatial pyramid pooling layer提取各個region proposal的特徵。

r-cnn的高階版fast r-cnn就是在r-cnn的基礎上採納了spp net方法,對rcnn作了改進,使得效能進一步提高。

fast r-cnn借鑑了spp-net的做法,提取整個影象的特徵圖,然後採用rol-poolingregion of interest pooling)得到定長的特徵向量。就是不管視窗的大小,都轉換成7x7這麼大(舉例)

roi pooling 是對輸入r-cnn子網路的資料進行準備的關鍵操作。通常得到的區域有不同的大小,在對映到feature map上之後,會得到不同大小的特徵張量。roi pooling先將roi等分成目標個數的網格,再在每個網格上進行max pooling,就得到等長的roi feature vector。 rol可與region proposal混用。

faster r-cnn提出的rpn網路(region proposal network)取代selective search演算法使得檢測任務可以由神經網路端到端地完成。

候選框提取不一定要在原圖上做,特徵圖上同樣可以,低解析度特徵圖意味著更少的計算量,基於這個假設,提rpn(regionproposal network)。

rpn引入了所謂anchor box的設計(anchor box的概念,是為了解決同乙個網格中有多個目標物件的情況。現實情況中,你的網格劃分越細,比如將3x3的網格變為10x10,這種同乙個網格中有多個目標物件的情況就越少)。

faster r-cnn對小物體識別還存在一些問題,所以產生了ssd(single shot multibox detector)。

ssd演算法是一種直接**目標類別和bounding box的多目標檢測演算法。與faster rcnn相比,該演算法沒有生成 proposal 的過程,這樣就可以提高速度。針對不同大小的目標檢測,傳統的做法是先將影象轉換成不同大小(影象金字塔),然後分別檢測,最後將結果綜合起來(nms)。而ssd演算法則利用不同卷積層的 feature map 進行綜合也能達到同樣的效果。

sdd網路結構

對於給定的輸入影象,yolo都劃分出7x7的網格,也就是得到49個視窗,然後在每個視窗中去**兩個矩形框。這個**是通過全連線層來完成的,yolo會**每個矩形框的4個引數和其包含物體的信度,以及其屬於每個物體類別的概率。

處理步驟為:把輸入縮放到448×448大小;執行卷積網路;對模型置信度卡閾值,得到目標位置與類別。對voc資料集來說,yolo就是把統一縮放到448×448,然後每張圖平均劃分為7×7=49個小格仔,每個格仔**2個矩形框及其置信度,以及20種類別的概率。捨棄了region proposal階段,加快了速度,但是定位精度比較低,與此同時帶來的問題是,分類的精度也比較低。在各類資料集上的平均表現大概為54.5%map。

yolo網路結構

目標檢測 目標檢測通用框架總結

目標檢測框架個人總結 以下是筆記中包含的內容 目標檢測網路框架總結 yolov4中有圖 從最開始的神經網路到現在深度更深,模組更多的目標檢測深度學習神經網路,如今大致可以分為two stage detector 典型的為rcnn系列 和 one stage detector 典型為yolo系列 每個...

目標檢測入門 目標檢測基本概念

目標檢測關注影象中特定的物體目標,要求同時獲得這一目標的類別資訊和位置資訊。檢測給出的是對前景和背景的理解,需要從背景中分離出感興趣的目標,並確定這一目標的描述 類別和位置,常用檢測框表示 與影象分類的區別,目標檢測更具難度 影象分類只需要判斷輸入的影象中是否包含感興趣物體,而不需要定位具體位置 如...

運動目標檢測

目錄 檢測方法 背景模型 目標檢測 後處理 檢測方法 基於統計背景模型的運動目標檢測方法 問題 1 背景獲取 需要在場景存在運動目標的情況下獲得背景影象 2 背景擾動 背景中可以含有輕微擾動的物件,如樹枝 樹葉的搖動,擾動部分不應該被看做是前景運動目標 3 外界光照變化 一天中不同時間段光線 天氣等...