目標檢測 YOLO v1(CVPR 2016)

2021-10-07 21:53:18 字數 2532 閱讀 3666

yolo由24層convnet和2層fcs組成。其核心思想是將均勻劃分為多個grid cell,每個grid cell產生兩個bbox和grid cell中如果存在物件,物件是各類的概率,每個bbox由5個引數組成,xywh和confidence,confidence是bbox中存在物件的概率,將兩概率相乘即可表示grid cell存在某類物件的概率。

yolo的損失函式是全文重點。通過損失函式,使得模型更關注包含物件的bbox。

但也因為網路本身的設定,使得yolo無法對多個相鄰小物體進行識別,並且對定位和大小物體偏差的錯誤也沒能通過微調損失函式解決。

目錄

introduction

unified detection

network design

limitations of yolo

目前大多數檢測系統是將影象分類任務轉換為影象檢測任務。yolo將目標檢測問題轉換為回歸問題。使用乙個網路從完整中**bounding boxes和class probabilities。因為整個檢測流程是乙個單一網路,所以它能夠被端到端的優化。相較於最有目標檢測演算法,yolo存在更多的定位錯誤

將輸入分割為s x s網格。如果乙個目標的中心在某個網格中,這個網格就負責檢測這個目標。每個網格**b個bounding boxes和對應的confidence scores。confidence scores反應了模型對box包含目標的confident以及**目標的accurate。定義confidence:

如果沒有目標存在,則confidence scores應該為0。另外,我們希望confidence scores等於predicted box和ground truth的iou。每乙個bounding box包含5個值:x, y, w, h, confidence。(x, y)表示box中心相對於網格單元的座標;w, h是相對於整個的寬高;因此x, y, w, h的值都在[0, 1]之間。confidence prediction代表predicted box和ground truth box間的iou。

每個網格也**c個類條件概率:

這個概率是網格包含目標情況下的。每個網格只**一組類條件概率,與bbox數量b無關。測試時:

這樣我們就獲得了每個box的class-specific confidence score。

引數設定:對於voc資料集,s = 7,b = 2,c = 20。

24卷積層+2全連線層。卷積層從中提取特徵,全連線層**概率和座標。fast yolo使用9個卷積層以及更少的卷積核。使用前20層卷積層在imagenet上訓練。之後增加了4層卷積層和2層全連線層,並加大了的解析度,以滿足檢測對細紋理的要求。最後一層使用linear啟用函式,其餘使用leaky rectified linear啟用函式:

損失函式原型是模型輸出的sum-squared error,但存在兩個問題:

它平均的考慮了定位error和分類error,這不太理想。

許多網格並不包含任何目標,這使得這些網格的confidence scores向著0,導致模型不穩定,出現偏差。

為解決這些問題,我們增加了bounding box座標**損失的影響,並且減少不包含目標box的confidence造成的損失。我們使用λcoord和λnobj來調解他們的影響,設定λcoord=5、λnobj = 0.5。

sum-squared error同時也均衡了大小box的loss。相對於大box中的deviation,小box的deviation更應該被loss function注意。為解決這個,我們將對寬高的**替換為寬高平方根。

yolo在每個網格中**多個bbox,訓練時,對每個目標,我們只希望有乙個去bbox負責。我們指定bbox的原則是,與ground truth有最高iou的bbox。這使得每個predictor在對某個目標的size, aspect ratio, class有著更好的表現,改善整體的召回率。訓練時,我們最優化一下loss function:

如果乙個物件出現在那個網格中,損失函式只懲罰分類錯誤。如果網格有某個predictor具有最高的iou,對那個ground-truth box負責,損失函式只懲罰bounding box座標錯誤。

因為每個網格只有兩個bbox,只對乙個目標負責,yolo這種對bbox**的空間限制導致網路無法對過多相鄰目標**。尤其是對鳥群等小目標檢測不強。

因為模型從資料中學習**bbox,導致他很難拓展到有新的、不尋常aspect ratio和其他引數的目標上。

錯誤的主要原因在於錯誤的定位。loss function同等對待小bbox和大bbox中的錯誤,但小bbox的錯誤會對iou有更大的影響。

目標檢測之YOLOv1

you only look once unified,real time object detection yolo 一體化的,實時的物體檢測 翻譯 詳解 1 2 1 yolov1框架 步驟 1 resize成448 448,分割得到7 7網格 cell 2 cnn提取特徵和 卷積層負責提取特徵。全...

目標檢測 YOLOv1總結

yolov1筆記 faster rcnn筆記 還存在什麼問題?yolov1檢測精度低於當時的先進網路演算法 yolov1容易產生物體定位錯誤 yolov1對小目標的檢測效果不好 每網格只能 兩個物體 概述 1.abstract 乙個單一的神經網路在一次檢測中直接從完整的影象 邊界框和類別概率 單一的...

2017cvpr 目標檢測

1 speed accuracy trade offs for modern convolutional object detectors 其主要考慮三種檢測器 faster rcnn,r fcn,ssd 作為元結構,三種cnn網路 vgg,inception,resnet 作為特徵提取器,變化其他...