- 前言:接續連兩篇的YOLO簡介
tags: 六角學院
主題:雜亂大全26-YOLOv3程式碼解析
本篇重點:
- 學習YOLOv3的程式碼解析
了解YOLOv3程式碼(1)-detect_image
參考資料
yolov3 keras版本yolo.py函式解析
https://blog.csdn.net/qq_43211132/article/details/102988139
<參考運作流程>
def detect_image(self, image):(重要)
開始計時->
①調用letterbox_image函數,即:先生成一個用“絕對灰”R128-G128-B128填充的416×416新圖片,然後用按比例縮放(採樣方式:BICUBIC)後的輸入圖片粘貼,粘貼不到的部分保留為灰色。
②model_image_size定義的寬和高必須是32的倍數;若沒有定義model_image_size,將輸入的尺寸調整為32的倍數,並調用letterbox_image函數進行縮放。
③將縮放後的圖片數值除以255,做歸一化。
④將(416,416,3)數組調整為(1,416,416,3),滿足網絡輸入的張量格式:image_data。
->
①運行self.sess.run()輸入參數:輸入圖片416×416,學習模式0測試/1訓練。 self.yolo_model.input: image_data,self.input_image_shape: [image.size[1], image.size[0]],K.learning_phase(): 0。
②self.generate(),讀取:model路徑、anchor box、coco類別、加載模型yolo.h5.,對於80中coco目標,確定每一種目標框的繪製顏色,即:將(x/80,1.0 ,1.0)的顏色轉換為RGB格式,並隨機調整顏色一遍肉眼識別,其中:一個1.0表示飽和度,一個1.0表示亮度。
->
①yolo_eval(self.yolo_model.output),max_boxes=20,
每張圖沒類最多檢測20個框。
②將anchor_box分為3組,分別分配給三個尺度,
yolo_model輸出的feature map
③特徵圖越小,感受野越大,對大目標越敏感,
選大的anchor box->分別對三個feature map運行
out_boxes, out_scores, out_classes,
返回boxes、scores、classes。
yolo.py 內的 detect_image()
請參考前兩篇的github位置
1 | #請參考註解 |
了解YOLOv3程式碼(2)-detect_video
- yolo.py 內的 detect_video( )
1 | #請參考註解 |
- 若有任何問題↓
- 請聯繫我:
liao86221@gmail.com
- 或填表: https://forms.gle/4FB5Tmtd9A7XcXjF8