飞道的博客

YOLOv7(目标检测)数据集、训练、推理过程

657人阅读  评论(0)

项目地址https://github.com/WongKinYiu/yolov7

一、环境安装:

pip install -r requirements.txt
pip install torch==1.8.2+cu111 torchvision==0.9.2+cu111 torchaudio===0.8.2 -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html -i  https://pypi.tuna.tsinghua.edu.cn/simple

二、修改配置环境

直接看下面链接的“四.Train(训练)”:

修改配置的时候“train” 和“val”设置为一样的就行

YOLOv7(目标检测)入门教程详解---检测,推理,训练_螺丝工人的博客-CSDN博客

这里的train的cmd我使用的是:

python train.py --workers 0 --device 0 --batch-size 16 --data data/mol.yaml --img 256 256 --cfg cfg/training/mol.yaml --weights '' --name yolov7_mol --hyp data/hyp.scratch.p5.yaml
python train.py --workers 0 --device 0 --batch-size 16 --data data/mol.yaml --img 256 256 --cfg cfg/training/mol.yaml --weights weights/yolov7_training.pt --name yolov7_mol --hyp data/hyp.scratch.p5.yaml

其中

train.txt  val.txt,这两个文件分为写入所有images中train和val中的照片路径:

使用这个代码就可以了:


  
  1. # -*- coding: utf-8 -*-
  2. # 生成文件夹中所有文件的路径到txt
  3. import os
  4. def listdir( path, list_name): # 传入存储的list
  5. for file in os.listdir(path):
  6. file_path = os.path.join(path, file)
  7. if os.path.isdir(file_path):
  8. listdir(file_path, list_name)
  9. else:
  10. list_name.append(file_path)
  11. list_name = []
  12. path = 'D:/Pycharm_workspace/molec_recognition/yolov7/datasets/molecular/images/train' # 文件夹路径
  13. listdir(path, list_name)
  14. print(list_name)
  15. with open( './train_list.txt', 'w') as f: # 要存入的txt
  16. write = ''
  17. for i in list_name:
  18. write = write + str(i) + '\n'
  19. f.write(write)

1)标签工具的使用:

目标检测使用LabelImg标注VOC数据格式和YOLO数据格式——LabelImg使用详细教程_点亮~黑夜的博客-CSDN博客_labelimg yolo格式

直接看“2 LabelImg的使用

注意:第一次我直接点的文件夹啥的这种操作,第二次的时候却出现了“IndexError: list index out of range”错误:

这里就直接使用命令打开就不出错了:

labelimg D:/Pycharm_workspace/molec_recognition/yolov7/datasets/molecular/images/train D:/Pycharm_workspace/molec_recognition/yolov7/datasets/molecular/labels/train/classes.txt

三、推理

python detect.py --weights weights/best.pt --source datasets/molecular/test_mol_images --device 0

一些其他问题

我第一次标注了数据集后,然后修改了下面的文件,同时也修改了配置上的文件路径,但是第二次训练的时候我把这些全都换了,却还是按照第一次训练的时候的数据集训练,

后来我才发现原来是这些cache的问题,你更换数据源以及配置的时候,要把相应的datasets下面的cache文件删除,这样才可以按照新的数据集进行训练

YOLOv7(目标检测)入门教程详解---检测,推理,训练_螺丝工人的博客-CSDN博客


转载:https://blog.csdn.net/weixin_43135178/article/details/128127666
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场