YOLOv1解讀筆記

2021-10-18 11:48:38 字數 1859 閱讀 8812

當前最好系統相比,yolo目標區域定位誤差更大,但是背景**的假陽性優於當前最好的方法.

注1:bounding box是怎麼來的呢?其實是在檢測每個grid cell時,若檢測到目標,則會將其標出來(圖中的紅色框)。這就是bounding box。

注2:設定多個anchor boxes幹嘛呢? 是這樣的,當有目標時,還要計算bounding box分別與各個anchor boxes的iou(交並比函式),並選擇iou最大的那個anchor box。這樣的話,bounding box的位置引數就儲存在那個anchor box對應的(pc,bx,by,bh,bw,c1,c2,c3)中啦。

最後,由於grid cells是3*3的,所以最後輸出的y的shape為(3, 3, 2, 8),這些數字的意義對應為(numbers of grid cells, numbers of grid cells, numbers of anchor boxes, numbers of classes + 5)。

anchor box

相當於對對乙個中心點,取不同的視窗,從而用來檢測重疊在一起的多個目標量。

首先我們需要知道anchor的本質是什麼,本質是spp(spatial pyramid pooling)思想的逆向。而spp本身是做什麼的呢,就是將不同尺寸的輸入resize成為相同尺寸的輸出。所以spp的逆向就是,將相同尺寸的輸出,倒推得到不同尺寸的輸入。

接下來是anchor的視窗尺寸,這個不難理解,三個面積尺寸(1282,2562,512^2),然後在每個面積尺寸下,取三種不同的長寬比例(1:1,1:2,2:1).這樣一來,我們得到了一共9種面積尺寸各異的anchor。示意圖如下:

我們將目標檢測統一到乙個神經網路。我們的網路使用整個影象中的特徵來**每個邊界框。 它也是同時**影象的所有類的所有邊界框。 這意味著我們的網路學習到的完整影象和圖中所有的物件.yolo設計可實現端到端訓練和實時的速度,同時保持較高的平均精度。

(1)yolo首先將影象分為s×s的格仔。圖中分為7x7個。如果乙個目標的中心落入格仔,該格仔就負責檢測該目標。每乙個網格中**b個bounding box 和置信值(confidence score)。這些置信度分數反映了該模型對盒子是否包含目標的信心,以及它**盒子的準確程度。然後,我們定義置信值為:

(2)每乙個bounding box包含5個值:x,y,w,h和confidence。(x,y)座標表示邊界框相對於網格單元邊界框的中心。寬度和高度是相對於整張影象**的。confidence表示**的box與實際邊界框之間的iou。每個網格單元還**c個條件類別概率:

(3)在測試時,我們乘以條件類概率和單個盒子的置信度**:

這兒的b應該就是anchor box。

模型:我們的系統將檢測建模為回歸問題。它將影象分成sxs的網路,並且每個網格單元**b個邊界框,這些邊界框的置信度以及c個類別概率,這些**被編碼為sxsx(b*5+c)的張量。

我們的網路架構受到googlenet影象分類模型的啟發。我們的網路有24個卷積層,後面是2個全連線層。我們使用1x1降維層,後面是3x3卷積層,這與lin等人類似,而不是googlenet使用的inception模組。我們在imagenet分類任務上以一半的解析度(224x224的輸入影象)預訓練卷積層,然後將解析度加倍來進行檢測。完整的網路如圖所示。

YOLOv1學習筆記

大部分內容 補充 核心思想 rcnn系列核心思想是proposal 建議區域 分類 yolo系列核心思想是直接在輸出層回歸bounding box位置和bounding box的所屬類別 大致流程 resize resize成448 448,分割成7 7網格的cell cnn提取特徵和 卷積負責提取...

目標檢測之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 乙個單一的神經網路在一次檢測中直接從完整的影象 邊界框和類別概率 單一的...