1. 程式人生 > >YOLO 物體檢測

YOLO 物體檢測

YouOnly Look Once:

Unified,Real-Time Object Detection

YOLO(You only look once):將物體檢測重新繪製作為一個簡單的迴歸問題,直接從影象畫素生成bounding box的座標和類的預測。Using our system, you only look once at an image to predict whatobjects are present and where they are.

YOLO: 一個簡單的卷積網路,同時預測多個boundingboxes和這些boxes所屬的類。

YOLO trains on full images and directlyoptimizes detection performance.

YOLO在準確性方面仍落後於最先進的檢測系統。 雖然它可以快速識別影象中的物體,但它正努力精確定位某些物體,尤其是小物體。我們在實驗中進一步檢查了這些折衷。

YOLO使用整幅影象的特徵去預測每個boundingbox,並且同時它也預測影象中所有bounding boxes中所有類別。

YOLO將影象劃分成S*S的網格,每個網格預測B個boundingboxes和boxes的confidence scores。這個confidence scores反映出box包含物體的自信和box被預測的精度,confidence的定義為Pr(Object)*IOU,如果bounding box內沒有object則confidence等於0,否則,讓confidence等於IOU。每個bounding box包括5個預測引數,(x,y,w,h,confidence)。此外,每個網格也能預測C個類的條件概率(條件是網格內包含一個物體)。每個網格給出一個類概率。由此,YOLO將生成S*S*(B*5+C)個張量,其中將B個bounding boxes的預測過程也加到了訓練過程中。不用像silding window型別的Deformable parts models(DPB)和R_CNN型別通過RPN生成anchors,從而加快了網路的訓練速度。

YOLO在訓練的過程中,同樣需要預訓練模型,使用ImageNet資料集。在訓練中的啟用函式是一個leaky Relu.目標函式是對預測到的x,y,w,h,C與groud truth中x,y,w,h,C歐氏距離(平方和誤差)的優化。儘管該優化目標實現較為簡單,但是不能符合最大平均精度的目標,並且分類錯誤與定位錯誤的權重是等效的,從而會導致模型的不穩定。為了解決這個問題,文中增加bounding box loss和減少confidence預測loss。此外,對大box和小box也給出了權值的平衡。

其中,懲罰項包括兩個,一個是classification error(物體在網格內的),另一個是bounding box coordinate error(選取有最大IOU的網格,預測的網格與真實的網格重疊面積最大)

由於YOLO從資料中預測邊界框且預測邊界框的特徵較為粗糙。此外,分塊對空間特徵的約束,以及損失函式中對large bounding boxes 和small bounding boxes具有相同的loss,但是往往小的邊界框對模型的影響更大。因此,YOLO是有限的檢測模型。