YOLOv1的檢測原理是什麼

問題1:YOLOv1的檢測原理是什麼?

      將圖片分成S×S(論文中是7×7)的網格(grid),每一個具體的網格塊(grid cell)就負責檢測一個物體(object),所以YOLOv1在每張圖片中最多能檢測到S×S(論文中是49)個物體。對於大多數圖片來說,這已經足夠,通常在一張圖片中能夠有10個以上的主要目標就已經不常見了,但對於比較密集的人羣或畜羣來說,YOLOv1的檢測能力就比較差。

      每個網格塊(grid cell)都對物體預測了B(論文中是2)個矩形邊框(bounding boxes),這個邊框的大小是可以超出當前網格範圍的,而且大部分情況下都是這樣。對於每個邊框都預測了(predictions)5個參數,分別是x,y,w,h,confidence.

      其中,(x,y,w,h)決定邊框在圖片中的位置,(x,y)表示邊框的中心位置座標,(w,h)則表示邊框的寬度和高度,這4個參數值一旦確定,就可以在圖中唯一地畫出一個邊框。confidence則是對每個邊框預測的一個置信度分數(scores),代表這個邊框預測的準確程度。

     對於confidence參數的含義,原文表述如下:These confidence scores reflect how confident the model is that the box contains an object and also how accurate it thinks the box is that it predicts.

       從圖中看起來就會發現,有一些預測的邊框比較細,另外一些則比較粗,但其實每一個邊框的粗細都是一樣的,出現這種情況的原因就是有多個網格塊都預測到了這個物體,預測的邊框重合之後看起來就比較粗。      

目標檢測的任務分爲兩塊,定位(在哪兒)與識別(是什麼)。邊框的預測只是解決了定位的問題,還需要對物體進行識別,也就是分類。

       YOLOv1採用的數據集爲PASCAL VOC,這個數據集中一共有20個類別的物體,YOLOv1對每個類別都預測了一個條件概率(conditional class probabilities),一共有C(論文中爲20,因爲數據集有20個類別)個參數值,也就是在檢測到物體的情況下,這個物體是數據集中每一個類別的概率爲多大。

上圖中一共有5種不同的顏色,代表一個預測到了5個不同的類別,相同的顏色代表一個類別。    

綜上,對於每一個網格塊(grid cell),YOLOv1的輸出是S×S×(B*5+C)個張量(tensor),論文中的輸出就是7×7×30的張 量。

YOLOv1的網絡結構

 

網絡的輸入是448×448×3的彩色圖片,輸出就是7×7×30的張量

 

YOLOv1的檢測結果如下:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章