這幾天一直有在看YOLO,並且試著把YOLO做出來,但是比想像中困難多了,從data的處理到loss function我都不太會寫,常常寫到很迷茫,然後有在網路上找別人的code來看,可怕的是看不懂別人的code...發現自己程度真的很差,連開始訓練都不行...我想真的從頭來再看一次原理吧,然後好好思考怎麼做...加油!
YOLO是一種object detection的方法,比起region proposal的R-CNN那類的方法速度快上許多,但是犧牲了一些準確度.
RCNN V.S YOLO在Pascal 2007 mAP = 66:69. Speed = 0.5FPS:45FPS
可以發現YOLO速度是多令人驚豔.
YOLO將影像分成7x7方格(cell),每一方格都會預測boxes(2個)和confidences.
confidence公式:
IOU定義:
7x7方格:
同時每一個方格也會預測一個Class probability.
結合boxes prediction和class prediction
使用NMS 與 threshold選出最好的box
因此每一個cell predict 2個boxes,每一個box包含x y w h + confidence共5個number.
output為:7x7cell x (2 boxes x 5number + 16class) = 7x7x26 = 1274
Training流程圖:
Loss function:
大致上細節如此,但究竟該怎麼寫成code實做出來是我目前碰到的難題之一,需要再想看看,或者請教人。加油不要放棄!