“工欲善其事,必先利其器”,我总结了一些模型训练和部署相关的代码。一方面加深自己对于模型的理解,另一方面也为日常工作提供一些便利。
推荐使用docker镜像tedder/deploy:23.03。 需要准备数据集(Kitti, COCO, CULane, nuscenes),存储结构类似下图:
容器启动命令:
- dt (容器名称 $1)
- tedder/deploy:23.03 (镜像名称 $2)
- path_to_datasets (datasets目录 $3)
docker/launch.sh dt tedder/deploy:23.03 path_to_datasets
部署代码编译:
cd trt/src
cmake -B build
cmake --build build
个人最爱的单阶段检测模型,使用kitti数据集,检测汽车,行人,自行车三个类别。
- kitti数据集转coco格式
python datasets/COCO/kitti_to_coco.py --kitti /workspace/datasets/kitti --output data/RetinaNet
- 训练
- 单机单卡
python3 train.py --config configs/RetinaNet/kitti_mobilenetv3_bifpn.yaml
- 单机单卡
- 部署(相关c++代码位于trt目录下,使用cmake进行编译)
- 导出onnx文件
python exports/ReitnaNet/export.py --config configs/RetinaNet/kitti_mobilenetv3_bifpn.yaml\ --ckpt 'RetinaNet_checkpoint_AP=0.4705.pt' -o retinanet.onnx
- build trt engine
- c++ demo
- 导出onnx文件
当下最流行检测模型,使用kitti数据集,检测汽车,行人,自行车三个类别。
- kitti数据集转coco格式
基于检测的车道线模型,使用CULane数据集。
激光雷达点云检测入门模型,使用kitti数据集。
transformer架构检测模型,使用coco数据集。
优雅的全景分割模型,使用coco数据集。