【YOLOv7】使用 YOLOv7 做目标检测 (使用自己的数据集 + 图解超详细)

YOLOv7

论文+源码

论文链接:https://arxiv.org/abs/2207.02696

GitHub 链接:https://github.com/WongKinYiu/yolov7

环境搭建

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/

模型训练

修改YOLOV7配置

data.yaml

新建data.yaml文件,配置yolov7的数据集,数据集为 YOLO格式

train: D:\pythonProjects\datasets2\train  
val: D:\pythonProjects\datasets2\val 
test: D:\pythonProjects\datasets2\test

# number of classes
nc: 20

# class names
names: ["Akita_Dog", "Basset_Hound", "Beagle_Dog", "Border_Collie", "Chinese_Shar-pei", "Corgi","English_Cocker_Spaniel","English_Sheepdog","German_Shepherd_Dog","Golden_Hair","Labrador","Pomeranian","Redbone_Coonhound","Saint_Bernard","Samoyed","Schnauzer","Schnauzer","Siberian_Husky","Springer_Spaniel","Tibetan_Mastiff"]

weights

新建weights文件夹,下载yolov7.pt https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7.pt

train.py

修改如下的参数,其中batch-size根据自己GPU的算力进行修改。

在这里插入图片描述

开始训练

运行train.py,然后就可以进行训练了。

但是在训练过程中,我们会看到需要登录wandb的官网进行注册,比较麻烦,我们可以注释掉。

路径在 yolov7-main/utils/wandb_logging/wandb_utils.py ,进行如下的修改。

# try:
#     import wandb
#     from wandb import init, finish
# except ImportError:
#     wandb = None

wandb = None

模型测试

测试自己的数据集

python test.py --data data/data.yaml --img 640 --batch 8 --conf 0.001 --iou 0.65 --device 0 --weights ./runs/train/exp5/weights/best.pt --name yolov7_val

AttributeError: ‘int’ object has no attribute ‘lower’

解决方法:将torch_utils.py中的select_device()中的cpu直接初始化为0.
在这里插入图片描述

测试单张图片

python detect.py --weights ./runs/train/exp5/weights/best.pt --conf 0.25 --img-size 640 --source ./inference/images_test/Corgi1.jpg

任何问题,均可评论区留言。

猜你喜欢

转载自blog.csdn.net/qq_44824148/article/details/125736620