可以用官网给的数据集,跑通训练yolo权重文件
一、训练环境
需要ubuntu系统环境,然后安装上nvidia的显卡驱动,cuda,cudnn,darknet
在另一篇文章已讲述
二、标注数据集
1. 制作VOC数据集,就是一个这种格式的文件夹
2.将要标注的图片放在JPEGImage
3.下载labelImg
pip install labelimg
启动:labelimg
4.通过Open Dir打开图片存放的路径
按 ‘w’键,进行标注
按‘save’键,进行保存,生成xml文件
5.标注完成后,将JEPGImg文件夹下标注生成xml文件,剪切放在Annotations文件夹下
6. 在VOC2007 文件夹下, 创建text.py文件【windows上操作完成了】
7.将VOCdevdit整个文件夹拷贝到ubuntu环境下,darknet/script 目录下
初始的样子/
三、划分数据集
1. 运行text.py 就会在imageSets/Main目录下,生成四个txt文件
【这步操作为什么在官网上,没有呢】
python3 test.py
2. 格式转换,运行darknet/srcipts文件夹下面,voc_label.py
【运行之前,需要在voc_label.py 第九行,修改自己的类别名称】
【运行之前,需要看自己的voc数据是几几年的,在sets那里改成自己的】
因为VOC数据集还不能直接用于YOLO训练
python3 voc_label.py
就会
在VOC2007 生成labels文件夹
在scripts文件夹下,生成2007_train.txt和2007_val.txt
四、训练数据集
1. 在data下创建names的文件,可以将原来的voc.names进行复制,重命名为voc_dp.names。里面的内容是训练的类别
2. 在cfg创建data的文件,可以将原来的voc.data进行复制,重命名为voc_dp.data。
3. 在cfg创建cfg文件,可以复制yolov3-tiny.cfg,重命名为yolov3-tiny-dp.cfg
yolov3-tiny.cfg是用于网络参数配置的文件,它比yolov3.cfg网络层数交,占用资源少
1 训练时候,就把“Testing”下面的 batch和subdivisions注释,“Training”下面的batch和subdivsions取消注释。 测试时候相反
2 训练时候,batch=64,subdivsions=16
3 修改[yolo]层的classes,改成实际类别数目
4! max_batches 是训练最大次数,一般设置为 类别*2000。如果类别是5,那就设置成10000。
5 !setps设置成max_batches的80%和90%
前三个必改,后两个看情况
4. 在darknet目录,下载预训练权重文件
网上找找 darknet53.conv.74
5.开始训练
在darknet目录下,打开终端
./darknet detector train cfg/voc_dp.data cfg/yolov3-tiny-dp.cfg darknet53.conv.74 > log.txt -map
五、在ros中使用
使用remmina 连接jetson盒子