在Docker环境下用yolov4训练自己的数据集
默认你已经有的环境和代码
Centos
Python
带有opencv,gpu,cuda 的docker镜像 (在后面命名为yolov4)
下载源码或者你修改过的yolov4代码,你需要修改的参数有以下几处
1、在darknet目录下make makefile文件
2、构建数据集文件夹
3、生成训练集,验证集,测试集以及包含各个数据集图片的路径的txt文件
源码默认已经划分好的数据集,如果你的数据集没有划分,需要自己找个划分数据集代码;
然后更改voc_label.py代码
改成自己的数据集个数,以及自己数据集的样本类别
最后两段代码可以注释掉也可以根据前面你划分的数据集修改
执行voc_label.py,在根目录下将会生成训练需要的文件,即各个训练集中包含图像的路径
4、修改配置文件
① 第一个要修改的配置文件voc.data或coco.data,本文选了voc.data
注意修改的内容,特别是目录,目录结果是与后面你docker 镜像挂载的目录有关,后面docker 命令中有所体现。
对比项目的根目录
详细解释每个文件夹代表含义
② 第二个要修改的网络模型参数yolov4-custom.cfg文件
根据我的注释和你自己的需求更改参数
③ 最后需要修改的是类别具体名称 voc.name
5、在docker里面训练
你预先要有完整的训练yolo4训练环境的镜像
① 将你的代码和数据集拷贝到服务器(相当于宿主机)中
② 如果你没有事先运行划分数据集代码,可以先在服务器(宿主机)中划分数据集,因为数据集太大,放在自己电脑下划分有点慢
cd命令切换到服务器代码目录下,运行你的划分数据集代码
③ 启动镜像,生成一个容器
④ 检查容器挂载目录是否符合你的目标
⑤ 进入容器后,cd到项目目录下,运行voc_label.py生成图片路径txt文件
⑥ 训练命令