Python影像辨識筆記(二十三):NanoDet,可能是目前最輕量化的Object Detection模型

更新

[0]建議使用PyTorch > 1.6版本進行訓練

原作者知乎文章

GitHub連結

官方釋出的對照表

如上圖所示,與YOLO v3/v4系列的Tiny版本相比,NanoDet在416*416的size下,明顯勝過YOLO模型。在Model size只有約略十分之一左右的情況下,AP@0.5:0.95(即圖中的mAP)甚至與YOLOv4-Tiny一模一樣,真的非常強大。

使用方式

本文假設讀者已完成PyTorch的安裝,且不考慮virtual environment使用的情況。因此我們將直接從套件安裝開始

pip install Cython termcolor numpy tensorboard pycocotools matplotlib pyaml opencv-python tqdm

資料集

可以使用get_coco2017.sh來進行資料圖片下載

#!/bin/bash
# Zip coco folder
# zip -r coco.zip coco
# tar -czvf coco.tar.gz coco

Config檔案準備

開啟config/裡面的nanodet-m.yml檔案進行修改

修改save_path路徑到您所指令的位置
修改num_classes到目標class的數量
修改image path and annotation path的路徑到上一個步驟所取得的COCO圖片路徑位置
修改第69行的device,指定第幾顆GPU以及batch size等相關參數
可自己修改total_epochs、lr和lr_schedule來符合自己的需求

訓練

#單顆GPU
python tools/train.py config/nanodet-m.yml

NanoDet的完整架構圖

下載並解壓nanodet_ncnn_model.zip後,可使用Netron開啟nanodet_m.param檔案,呈現如下圖的完整架構

Machine Learning | Deep Learning | https://linktr.ee/yanwei

Machine Learning | Deep Learning | https://linktr.ee/yanwei