我参加NVIDIASkyHackathon---Yolov5环境配置-创新互联
Yolov5 环境配置完成后配置练习文件以及练习数据注意事项
创新互联-专业网站定制、快速模板网站建设、高性价比达日网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式达日网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖达日地区。费用合理售后完善,10多年实体公司更值得信赖。参考https://blog.csdn.net/qq_36756866/article/details/109111065
1)准备自己的数据集
- 在yolov5目录下创建 yolo_1文件夹(名字可以自定义),目录结构如下,将之前labelImg标注好的xml文件和图片放到对应目录下 yolo_1
…images # 存放图片
…Annotations # 存放图片对应的xml文件
…ImageSets/Main #之后会在Main文件夹内自动生成train.txt,val.txt,test.txt和trainval.txt四个文件,存放训练集、验证集、测试集图片的名字(无后缀.jpg)
示例如下:
如果生成的是xml文件是以下的步骤(txt生成的在下面
开始{
yolo_1文件夹下内容如下:
Annotations文件夹下面为xml文件(标注工具采用labelImage),内容如下:
images为VOC数据集格式中的JPEGImages,内容如下:
脚本内容在
脚本功能:ImageSets文件夹下面有个Main子文件夹,其下面存放训练集、验证集、测试集的划分,通过脚本生成,可以创建randomfile_xmlstep1一个文件
运行代码后,在Main文件夹下生成下面四个txt文档:
2.接下来准备labels,把数据集格式转换成yolo_txt格式,即将每个xml标注提取bbox信息为txt格式(这种数据集格式成为yolo_txt格式),每个图像对应一个txt文件,文件每一行为一个目标的信息,包括class, x_center, y_center, width, height格式。格式如下:
创建labels
创建 脚本,将训练集、验证集、测试集生成label标签(训练中要用到),同时将数据集路径导入txt文件中
运行后会生成如下laels文件夹和三个包含数据集的txt文件,其中labels中为不同图像的标注文件,train.txt等txt文件为划分后图像所在位置的绝对路径,如train.txt就含有所有训练集图像的绝对路径。
运行voc_label.py时报错“ZeroDivisionError: float division by zero”的原因是:标注文件中存在width为0或者height为0的数据,检查修改后可解决。
三个txt文件里面的内容如下:
}结束
如果生成的是txt文件是以下的步骤
开始{
运行生成ImageSets内容的脚本
脚本内容在
脚本功能:ImageSets文件夹下面有个Main子文件夹,其下面存放训练集、验证集、测试集的划分,通过脚本生成,可以创建randomfile_xmlstep1一个文件
运行代码后,在Main文件夹下生成下面四个txt文档:
2.接下来准备labels,把数据集格式转换成yolo_txt格式,即将每个xml标注提取bbox信息为txt格式(这种数据集格式成为yolo_txt格式),每个图像对应一个txt文件,文件每一行为一个目标的信息,包括class, x_center, y_center, width, height格式。格式如下:
创建labels
创建 脚本,将训练集、验证集、测试集生成label标签(训练中要用到),同时将数据集路径导入txt文件中
运行后会生成如下labels文件夹和三个包含数据集的txt文件,其中labels中为不同图像的标注文件,train.txt等txt文件为划分后图像所在位置的绝对路径,如train.txt就含有所有训练集图像的绝对路径。
运行voc_label.py时报错“ZeroDivisionError: float division by zero”的原因是:标注文件中存在width为0或者height为0的数据,检查修改后可解决。
三个txt文件里面的内容如下:
}结束 调用脚本的时候需要更改其中的相关路径
3配置文件
1)数据集的配置
在yolov5目录下的data文件夹下新建一个ab.yaml文件(可以自定义命名),用来存放训练集和验证集的划分文件(train.txt和val.txt),这两个文件是通过运行voc_label.py代码生成的,然后是目标的类别数目和具体类别列表
疑问:ab.yaml文件中train和val通过train.txt和val.txt指定,我在训练时报错会提示datasets文件找不到 说明路径设置的不对 脚本生成的文本路径也会影响
2)模型训练
源码中在yolov5目录下的weights文件夹下提供了下载四种预训练模型的脚本----download_weights.sh
2.训练
在train.py进行以下几个修改:
以上参数解释如下:
epochs:指的就是训练过程中整个数据集将被迭代多少次,显卡不行你就调小点。
batch-size:一次看完多少张图片才进行权重更新,梯度下降的mini-batch,显卡不行你就调小点。
cfg:存储模型结构的配置文件
data:存储训练、测试数据的文件
img-size:输入图片宽高,显卡不行你就调小点。
rect:进行矩形训练
resume:恢复最近保存的模型开始训练
nosave:仅保存最终checkpoint
notest:仅测试最后的epoch
evolve:进化超参数
bucket:gsutil bucket
cache-images:缓存图像以加快训练速度
weights:权重文件路径
name: 重命名results.txt to results_name.txt
device:cuda device, i.e. 0 or 0,1,2,3 or cpu
adam:使用adam优化
multi-scale:多尺度训练,img-size +/- 50%
single-cls:单类别的训练集
之后运行训练命令如下:
python train_1.py --img 640 --batch 8 --epochs 300 --data data/ab.yaml --weights yolov5x.pt
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享文章:我参加NVIDIASkyHackathon---Yolov5环境配置-创新互联
分享URL:http://pwwzsj.com/article/pcide.html