1. 准备训练的数据
train 和 valid 下的两个子目录分别存放训练集和验证集的图片和xml文件(注意图片和标签一一对应)
2. 建立config yaml文件
源码下载:
git clone https://github.com/RangiLyu/nanodet.git
参考https://github.com/RangiLyu/nanodet/blob/main/config/nanodet_custom_xml_dataset.yml
在config文件夹下建立自己的yml文件:
(1)修改训练结果的保存路径
(2)修改自训练类别数量
(3)修改自训练类别标签
(4)修改训练集和验证集的文件夹路径
(5)修改训练的循环次数
3. 配置nanodet环境
(1)Create a conda virtual environment and then activate it.
conda create -n nanodet python=3.8 -y
conda activate nanodet
(2)Install pytorch
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116
(3)Install requirements
pip install -r requirement.txt
pip install pytorch_lightning
pip install termcolor
pip install opencv-python-headless
(4)Setup NanoDet
cd nanodet
python setup.py develop
4. 训练
python ./tools/train.py ./config/mydata.yml
5. 模型转为onnx
使用nanodet源码提供的转换脚本
python ./tools/export_onnx.py --cfg_path ./config/mydata.yml --model_path./workspace/nanodet_m_ws/model_best/nanodet_model_best.pth --out_path ./workspace/nanodet_m_ws/model_best/nanodet_m_ws.onnx
6. 模型转为mnn
MNN版本2.0.0,MNN_BUILD_CONVERTER 设置为true,编译模型转换工具,使用以下命令将onnx转为mnn:
./MNNConvert -f ONNX --modelFile xxx.onnx --MNNModel xxx.mnn --bizCode MNN