Abstract
- 之前的物體檢測的方法是使用分類器來進行檢測。
- 相反,本論文將對象檢測作爲空間分離的邊界框和相關類概率的迴歸問題。
- 本論文的YOLO模型能達到45fps的實時圖像處理效果。
- Fast YOLO:小型的網絡版本,可達到155fps。
- 與目前的檢測系統相比,YOLO會產生更多的定位錯誤,但是會更少的去在背景中產生false positive。
Introduction
DPM: use a sliding window approach where the classifier is run at evenly spaced locations over the entire image.
R-CNN: use region proposal methods to first generate potential bounding boxes in an image and then run a classifier on these proposed boxes. 具有slow和hard to optimize的缺點。
本論文將目標檢測問題重新組織成single regression problem. 從圖像像素轉爲bounding box coordinates和class probabilities.
YOLO框架:
- A single convolutional network simultaneously predicts multiple bounding boxes and class probabilities for those boxes.
- YOLO trains on full images and directly optimizes detection performance.
YOLO模型的優勢:
- First, YOLO is extremely fast.
- regression problem.
- no batch processing on a Titan X.
- Second, YOLO reasons globally about the image when making predictions.
- YOLO makes less than half the number of background errors compared to Fast R-CNN.
- Third, YOLO learns generalizable representations of objects.
YOLO在準確性方面依舊落後與其他先進的檢測系統,但是可以快速的標註圖片中的物體,特別是小物體。
Unified Detection
本論文將物體檢測中單獨的組件統一到一個單一的神經網絡中。網絡利用整個圖像的各個特徵來預測每一個BB。而且同時爲一張圖片中所有的類預測所用的BB。
YOLO可以end-to-end來訓練,而且能在保持高平均準確率的同時達到實時要求。
系統將輸入圖片分爲
S∗S 的網格單元。如果物體的中心落入某個格子,那麼這個格子將會用來檢測這個物體。每個網格單元會預測B個bounding box以及這些框的置信值。
每個bounding box會有5個預測值:
x,y,w,h 和置信值confidence,confidence=Pr(Object)∗IOUtruthpred .每個網格單元也預測C個條件類概率,
Pr(Classi|Object) ,在一個網格單元包含一個物體的前提下,它屬於某個類的概率。我們只爲每個網格單元預測一組類概率,而不考慮框B的數量。在測試的時候,通過如下公式來給出對某一個box來說某一類的confidence score:
Pr(Classi|Object)∗Pr(Object)∗IOUtruthpred=Pr(Classi)∗IOUtruthpred Model示例:
每個grid cell預測B個bounding boxes,每個框的confidence和C個類概率。
Network Design
YOLO網絡結構圖:
起初的卷積層用來從圖像中提取特徵。
全連接層用來預測輸出的概率和座標。
24個卷積層,之後跟着2個全連接層
最終輸出是7 x 7 x 30的張量。
Fast YOLO和YOLO之間所有的訓練和測試參數一樣。
在ImageNet上進行卷積層的預訓練。
Training
在ImageNet上預訓練卷積層。預訓練前20層卷積層,之後跟隨者一個average-pooling layer和一個fully connected layer.
將預訓練的模型用來檢測,論文Ren et al.顯示給與訓練好的模型添加捲積和連接層能夠提高性能。所以添加了額外的4個卷積層和2個全連接層,其權值隨機初始化。
將像素從224x224提升到448x448。
最後一層同時預測class probabilities和bounding box coordinates. 其中涉及到BB的長寬規範化。
由於sum-squared error的缺點,增加邊界框座標預測的損失,並減少對不包含對象的框的置信度預測的損失。
large boxes中的偏差matter less than 與small boxes中的偏差。
YOLO爲每一個網格單元預測多個BB,但是在測試期間,我們只想每一個物體有一個BB預測框來做響應,我們選擇具有最高IOU的BB來作爲響應框。
總的loss function:
135 epochs
batch size:64
動量:0.9
decay:0.0005
爲防止過擬合,我們使用dropout和extensive data augmentation技術。
Inference
- 在測試圖像中預測檢測只需要一個網絡評估,與一般的classifier-based methods不同。
- Non-maximal suppression可以用來修復multiple detections。
Comparison to Other Detection Systems
- 檢測流水線往往開始於提取健壯特徵集(Haar, SIFT, HOG, convolutional features),然後分類器或者定位器用來識別特徵空間的物體,這些分類器或者定位器往往在整個圖像上或者在圖像的子區域中滑動窗口。
- 與DPM的比較。
- 與R-CNN的比較。每個圖片值預測98個bounding boxes。
- 與其他快速檢測器的比較。相比於單類檢測器,YOLO可以同時檢測多種物體。
- 與Deep MultiBox的比較。YOLO是一個完整的檢測系統。
- 與OverFeat的比較。OverFeat是一個disjoint的系統,OverFeat優化定位,而非檢測性能。需要大量的後處理。
- 與MultiGrasp的比較。執行比目標檢測更簡單的任務。