1. 程式人生 > 其它 >C++ 有向圖最短路徑之Dijkstra演算法 - 第2次改動

C++ 有向圖最短路徑之Dijkstra演算法 - 第2次改動

YOLO V1簡介

1、將一幅圖分成S*S的網格,如果某個object落在這幅圖片的中心,那麼就讓這個網格負責這個object!!

2、每一個網格都要負責預測B個bounding box,每個bounding box除了要預測位置之外,還是需要預測confident的值。除此之外每一個網格還需要預測C個類別的分數

例如在Pascal voc資料集上,我們取B = 2,這個資料集的種類是20個,則我們需要預測的類別個數為20,即C=20

最後,我們預測的向量維數為:7*7*30    :

7*7是S的值,也就是圖片被分割的個數值;30 = (4+1)*2+20

4+1 : 4為bounding box的個數,1為confident值

20:為物體的類別

每一個bounding box 都有5個值,分別是(x,y,w,h)+ confident值(x,y為中心座標);(w,h為長和寬)---->四組資料表明了一個bounding box

confident = (如果box中確實有object就為1)*IOU(true,union)

IOU = 交併比(相交的資料)/ (相併集的資料)

損失函式:

目標邊界框的損失計算;confidence 損失;classes 損失

為什麼要對bounding box進行開方處理,

對於不同尺度的IOU,對於不同尺寸的圖片損失都是不同的

偏移相同的距離,尺寸較大的圖片,IOU值比較大!!,尺寸較小的圖片IOU小

YOLOV1 缺點:

1、對群體性的小目標,預測性很差!!!,因為在YOLOV1中,每一個cell只預測兩次,所以如果是很小的object那麼IOU必然就會很小,那麼損失函式必然會很大,因為損失函式很大之後,可能會被當作誤差,被正則函式清理掉了!!!

2、當同一個物體出現了新的大小的時候,預測效果會比較的差!! ---> 主要來自於定位不準確!