david8862/keras-YOLOv3-model-set

end-to-end YOLOv4/v3/v2 object detection pipeline, implemented on tf.keras with different technologies

解決的問題

本專案提供基於 YOLO(You Only Look Once)系列模型的完整物件檢測流程。透過在 TensorFlow Keras 框架中提供多種預設配置的骨幹網路、檢測頭與損失函數,簡化物件檢測系統的實作、訓練與部署流程。

工作原理

此流程整合了電腦視覺工作流程的多個階段:

  • 模型建構:使用者可自由組合各種骨幹網路(如 CSPDarknet53、MobileNet 或 EfficientNet)與不同 YOLO 檢測頭(v2、v3、v4),建立自訂架構。
  • 資料處理:內建工具可將 Pascal VOC 與 COCO 格式的資料集轉換為自訂標註格式,並支援可視化。
  • 訓練:支援多尺度輸入、Mosaic 資料增強、動態學習率衰減等進階訓練技術。同時支援透過 tf.distribute.MirroredStrategy 實作多 GPU 訓練。
  • 後處理:實作多種邊界框優化技術,包括 SoftNMS、DIoU-NMS 與 Weighted-Boxes-Fusion(WBF)。
  • 部署:支援將 Darknet 權重轉換為 Keras 模型,並導出為 TensorFlow Lite 或 MNN 格式,用於裝置端推論。

適用對象

專為需要靈活、基於 Keras 的 YOLO 物件檢測實作之開發者與研究人員設計,特別適合希望在邊緣裝置上部署模型,或想嘗試不同骨幹網路架構與損失函數的使用者。

主要亮點

  • 廣泛的架構支援:涵蓋大量骨幹網路(如 VGG16、Xception、GhostNet 等)與 YOLO 版本(v2、v3、v4)。
  • 多樣化的損失函數:支援多種定位損失,包括 GIoU、DIoU、CIoU 與 SIoU。
  • 部署就緒:內建支援 TFLite 與 MNN Float32/UInt8 推論。
  • 進階訓練工具:支援 Mosaic 與 GridMask 增強、從 ImageNet 進行遷移學習,以及模型剪枝(適用於 TF 1.x)。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案