Ubuntu18.04环境
- cuda10.2
- cudnn8.2.0
- opencv 3.4.10
1. Rosbag生成本地图像
使用我的程序,参考https://gitee.com/myboyhood/tools.git
2. LebelImg标注图像
参考我的LabelImg仓库
建议使用conda,在我的电脑上步骤如下:
conda activate label-studio
python3 labelImg.py
3. darknet配置
注意:
- 记得在
Makefile
中使用GPU - 如果是通道为1的灰度图像,需要修改源文件和cfg文件,见博客
4. 准备训练程序,数据集,并训练
4.1 Yolov4训练程序
见我的仓库,可直接训练对无人机target的Yolov4-tiny模型 myboyhood yolov4
Yolov4训练文件下载 百度云 秘钥: trdv
4.2 准备数据集并训练
详细步骤 可以参考博客。
简要步骤 博客中摘抄重要部分,若已配置好各类参数,仅需要更换标注图像时,可以直接参考以下命令。
- 准备图片和标注文件
将labelImg
得到的.jpg
图片都放入JPEGImages
文件夹中,将.xml
都放入Annotations
文件夹中。
清空之前的标注文件labels
文件夹,清空存放之权重文件的backup
文件夹。 - 生成训练和测试集
此时会在当前训练文件夹生成文本文件train.txt和test.txtpython3 gen_files.py
- 聚类分析
修改cfg文件中的先验框大小,./darknet detector calc_anchors data/train.data -num_of_clusters 6 -width 416 -height 416
cfg
文件中的anchors位置的几个数字 - 开始训练
./darknet detector train data/train.data data/yolov4-tiny-target-outdoor.cfg yolov4-tiny.conv.29 -map
注意:
- 拷贝的
darknet
可执行文件是和编译环境有关的,必须是本机编译出来的darknet
在本机使用。
5. 测试yolov4-tiny的效果
- 调整cfg文件中
batch=1
subdivisions=1
然后运行
./darknet detector test data/train.data data/yolov4-tiny-target-test.cfg backup/yolov4-tiny-target_final.weights JPEGImages/258_1677587722_099249.jpg