object detection目標檢測閱讀記錄

2021-09-12 11:12:16 字數 2546 閱讀 4448

1,一開始,利用神經網路以滑動視窗的形式對進行目標檢測,如overfeat。其原理即是用不同大小的視窗在上滑動,每個視窗對應乙個待檢測類別元素的正確率。

2,接下來的方法是rcnn方法,此方法先利用傳統的影象分割技術對影象進行輪廓分割,再對每個分割出的部分用神經網路進行計算其正確率,此方法大部分**對其的指責就是其執行速度太慢。

比如目前有乙個,中有乙個目標和把目標框柱的矩形,此矩形稱為bounding box,有可能rcnn用的region proposed方法給出的矩形大小和位置不是最優的框柱目標的矩形,因此我們需要調整這個矩形以便更好的框柱目標,那麼rcnn就是利用cnn輸出的feature-map作為輸入,當然還有矩形的原位置,計算出偏移量,調整矩形。

3,yolo方法:

假如說你都可以直接**盒子的位置的偏移量了,那麼為什麼我不可以首先假定裡有乙個矩形,然後我計算這個矩形內有目標的可能性、還有這個盒子往**偏移會得到更好的位置。

比如說乙個100x100的,現在我關注的就是以30x30為中心,邊長為10的正方形裡面是否有乙個目標,我如何修改這個正方形可以更好的框住目標?那麼因此我就訓練乙個深度學習網路,這個網路可以判斷正方形裡有各個種類目標的概率,計算是否有目標存在的概率,計算假定有目標存在那麼如何偏移修改這個正方形可以得到最優的矩形框住目標的矩形。

那麼假設我已經訓練得到這個網路,那麼以後給我一張我就可以判斷以30x30為中心,邊長為10的正方形那裡有沒有目標了。

而對上面進一步改進,我現在不僅要判斷那乙個正方形,我要一次性判斷許多許多個正方形,而yolo就是這樣,他預先將乙個分成7、7、49個矩形,然後分別計算這49個矩形裡是否框住目標的可能性、框住的目標是什麼種類的目標、如何調整正方形才能更好的框住目標?

4,faster rcnn

我認為faster rcnn和yolo本質原理其實是差不多的,主要說一些細節上的差別:

(1)有漏是將特徵圖的所有作為輸入,而超快網是僅僅在特徵圖的3x3大小作為乙個計算box的輸入。

(2)有漏每個**的cell**兩個預設是和cell一樣的框,而超快網則是每乙個3x3大小的cell**3個不同大小、3個不同寬高比的一共是9個框。

(3)超快網9個框對應9個全連線網路與卷積核,並且這9個全連線網路對應每個cell是相同的

超快網的一些細節:

(1)盒子之間會有cross-boundary(交界),乙個1000x600的一般會產生60x40x9=20000個box,而去掉有交界的以後就變成大約6000個來訓練

(2)每次訓練只用一張,從一張中選取出一半的正例anchor,和一半的反例,比如126個正例和反例,若正例不夠用反例來補

5,yolov2

關於有漏1的改進有以下:

(1)為了增加recall率:recall率就是要提供多一些的用來**的box,因此借鑑快速網。有漏1的最後輸出是特徵圖層連乙個全連線層,最後輸出7x7x(class數量+2x5)。而改進後那就是用快速網的rpn結構來連特徵圖。

(2)同樣的有漏1只會對每個cell進行分辨類別是啥,而改進後就是對每個box都要計算每個box是哪個類別。

(3)與快速網每個cell**9個不同大小形狀的盒子不同,**中進行改進就是求解出到底**幾個盒子,盒子的形狀的比例最好是什麼樣子的,最後**採用5個盒子,偏向於高瘦的矩形。

(4)有漏1計算box位置是:首先假如影象是448x448,最後變成7x7個cell,那麼每個cell的大小就是64x64,因此盒子的中心座標偏移就是cell的中心加上乙個0-1之間的數乘以64。反正yolo2採用的是這種計算方法,雖然**裡說這種方法和快速網不同,但是我認為兩者都一樣。

(5)yolo2採用的是darknet,基本結構就是最新的1x1網路增維降維的那種,具體見原**

(6)採用多尺度訓練,因為快速網都是卷積的操作,所以多大的都可以,因此在訓練時對訓練可以改變大小也沒事。

(7)fine-grained features:沒看懂,抄別人的

yolov2的輸入大小為 416*416 ,經過5次maxpooling之後得到 13*13 大小的特徵圖,並以此特徵圖採用卷積做**。 13*13 大小的特徵圖對檢測大物體是足夠了,但是對於小物體還需要更精細的特徵圖(fine-grained features)。因此ssd使用了多尺度的特徵圖來分別檢測不同大小的物體,前面更精細的特徵圖可以用來**小物體。yolov2提出了一種passthrough層來利用更精細的特徵圖。

yolov2所利用的fine-grained features是 26*26 大小的特徵圖(最後乙個maxpooling層的輸入),對於darknet-19模型來說就是大小為 26*26*512 的特徵圖。passthrough層與resnet網路的shortcut類似,以前面更高解析度的特徵圖為輸入,然後將其連線到後面的低解析度特徵圖上。前面的特徵圖維度是後面的特徵圖的2倍,passthrough層抽取前面層的每個 2*2 的區域性區域,然後將其轉化為channel維度,對於 26*26*512 的特徵圖,經passthrough層處理之後就變成了 13*13*2048 的新特徵圖(特徵圖大小降低4倍,而channles增加4倍),這樣就可以與後面的 13*13*1024 特徵圖連線在一起形成 13*13*3072 大小的特徵圖,然後在此特徵圖基礎上卷積做**。在yolo的c原始碼中,passthrough層稱為reorg layer。

目標檢測 Object Detection

目標檢測 object detection 的任務是找出影象中所有感興趣的目標 物體 確定它們的類別和位置,是計算機視覺領域的核心問題之一。由於各類物體有不同的外觀,形狀,姿態,加上成像時光照,遮擋等因素的干擾,目標檢測一直是計算機視覺領域最具有挑戰性的問題。計算機視覺中關於影象識別有四大類任務 定...

目標檢測(Object Detection)

目錄 目標檢測 object detection 目標檢測演算法分類?1.two stage目標檢測演算法 2.one stage目標檢測演算法 目標檢測 object detection 的任務是找出影象中所有感興趣的目標 物體 確定它們的類別和位置,是計算機視覺領域的核心問題之一。由於各類物體有...

目標檢測(Object Detection)

計算機視覺包括影象分類 物體檢測識別 語義分割 例項分割4個基本任務 其中1 影象分類 一張影象中是否包含某種物體 2 物體檢測識別 分為目標檢測和目標識別兩個部分,首先檢測出影象中某一塊存在的目標和位置,然後識別出該影象屬於的類別 3 語義分割 根據影象的內容進行分割,分割的依據是內容。4 例項分...