yolo5(s)实现目标检测,训练自己的数据集

所需代码和达标软件可以查看博主资源,如

https://download.csdn.net/download/weixin_42715977/86538920icon-default.png?t=N2N8https://download.csdn.net/download/weixin_42715977/86538920

一、运用vott软件对自己的数据进行打标,获得voc格式的文件,只要Annotations文件夹和JPEGImage文件夹。

 二、yolov5数据集制作

2.1 在yolov5-master/data 文件夹下创建Annotations、ImageSets、JPEGImages三个文件夹

2.2 将所有图片放到JPEGImages文件夹下,将所有一中Annotation里voc格式的xml文件放入到yolov5-master/data下的Annotations下。
2.3 在根目录下(yolov5-master)运行python make_txt.py 。

 2.4运行代码后ImageSets下生成数据集分类txt文件,test.txt、train.txt、trainval.txt、val.txt。

 2.5修改根目录下(yolov5-master)中的voc_label.py文件,将第七行的classes改成你数据集的类别,之后在根目录下(yolov5-master)运行python voc_label.py 。

 2.6运行voc_label.py后生成voc格式的标签文件labels(显示数据集的具体标注数据),并且在data文件夹下生成了train、val、test的txt文件,其保存了图片的路径。

2.7 至此,自己的数据集格式都转换完成,还需最后一步,将原本的data/路径下的JPEGImgaes文件夹名称改为images,此时可以进行下一步。

 三、修改配置文件

3.1修改myvoc.yaml文件:找到yolov5-master/data 下的myvoc.yaml文件打开

 修改train、val(voc_label.py生成的txt文件)的路径,最好是绝对路径,不容易出错;
修改nc种类个数,我这只有一类人,所以为1;
修改names种类名称,我这里是person,保存即可。

3.2修改model.yaml文件,到yolov5-master/models路径下,models下有五个模型,smnlx需要的训练时间依次增加,我们一般修改yolov5s.yaml文件。

这里修改yolov5s.yaml,只需将nc的类别数修改为自己种类数即可。

四、训练模型train.py

在根目录下(yolov5-master)打开命令行运行train.py,具体如下:

python train.py --data data/myvoc.yaml --cfg models/yolov5s.yaml --weight models/yolov5s.pt --batch-size 32 --epoch 300

 --data 为我们创建的myvoc.yaml文件路径 
--cfg 为我们调用yolov5s模型的yaml文件路径
--weights 为我们采用的预训练模型权重pt文件路径
--batch-size和--epochs可以根据自己实际需求修改

成功开始训练如果出现下图情况,可以等待30秒或者选择3,继续训练。

 五、测试模型detect.py

在根目录下(yolov5-master)打开命令行运行detect.py,具体如下:

测试图片

python detect.py --weights runs/train/person/weights/best.pt --source 1.jpg

--weights 为你训练好权重的路径 --source 为你需要测试的图片路径

测试视频

python detect.py --weights runs/train/person/weights/best.pt --source person.mp4

 --weights 为你训练好权重的路径 --source 为你需要测试的图片路径

--source 当测试图片时写img.jpg,测试视频时写vid.mp4

训练结束去所保存的路径看测试结果

测试结果就保存在所提示的路径,找到相应的路径进行查看。

猜你喜欢

转载自blog.csdn.net/weixin_42715977/article/details/129860661