当前位置:   article > 正文

YOLOV7训练自己的数据集_yolov7 vid_writer.write(im0) 文件损坏

yolov7 vid_writer.write(im0) 文件损坏

第一步:

文件格式照代码官网按如下分布,建议记录文件路径名字的txt文件(test_list.txt、train_list.txt)也放这个大文件下。划分的图片和标签数据集一定要按该目录形式存放,即images下为训练、测试、验证的图片,labels下为相对应的txt标签。存放后建议检查下数量是否一一对应。

第二步:

***_list.txt文件下保存的是images下对应图片的路径名,用在yaml文件中。

 

第三步:

修改/cfg/training/目录下所使用的预训练权重对应的yaml文件,这里使用的yolov7x,所以修改对应的yaml文件,只需改nc预测的数目即可。

 第四步:

修改--weights、--cfg、--data为所需使用的文件或路径,给定--epochs和--batch-size。

 就可以开始训练了,报错大概率是第一步文件不对或文件存放格式不对。

 第一步用到的相关代码:

获取文件夹下文件和目录的路径名称并写入txt文件

  1. import os
  2. def listdir(path, list_name): # 传入存储的list
  3. for file in os.listdir(path):
  4. file_path = os.path.join(path, file)
  5. if os.path.isdir(file_path):
  6. listdir(file_path, list_name)
  7. else:
  8. list_name.append(file_path)
  9. if __name__ == '__main__':
  10. list_name = []
  11. path = '/home/king/Projects/lwf/yolov7-main/apple/datasets/images/val/' # 文件夹路径
  12. listdir(path, list_name)
  13. # print(list_name)
  14. with open('/home/king/Projects/lwf/yolov7-main/apple/datasets/val_list.txt', 'w') as f: # 要存入的txt
  15. write = ''
  16. for i in list_name:
  17. write = write + str(i) + '\n'
  18. f.write(write)

对数据集进行随机划分,训练验证:测试=9:1,并将划分后的路径写入对应txt文件下:

  1. import os
  2. import random
  3. trainval_percent = 0.9
  4. train_percent = 0.9
  5. xmlfilepath = '/home/king/Projects/lwf/yolov7-main/apple/苹果数据集/txt'
  6. txtsavepath = '/home/king/Projects/lwf/yolov7-main/apple/苹果数据集/JPEGImages'
  7. total_xml = os.listdir(xmlfilepath)
  8. total_img = os.listdir(txtsavepath)
  9. num = len(total_xml)
  10. list = range(num)
  11. tv = int(num * trainval_percent)
  12. tr = int(tv * train_percent)
  13. trainval = random.sample(list, tv)
  14. train = random.sample(trainval, tr)
  15. ftrainval = open('/home/king/Projects/lwf/yolov7-main/apple/苹果数据集/trainval.txt', 'w')
  16. ftest = open('/home/king/Projects/lwf/yolov7-main/apple/苹果数据集/test.txt', 'w')
  17. ftrain = open('/home/king/Projects/lwf/yolov7-main/apple/苹果数据集/train.txt', 'w')
  18. fval = open('/home/king/Projects/lwf/yolov7-main/apple/苹果数据集/val.txt', 'w')
  19. for i in list:
  20. name = txtsavepath + '/' + total_img[i] + '\n'
  21. if i in trainval:
  22. ftrainval.write(name)
  23. if i in train:
  24. ftrain.write(name)
  25. else:
  26. fval.write(name)
  27. else:
  28. ftest.write(name)
  29. ftrainval.close()
  30. ftrain.close()
  31. fval.close()
  32. ftest.close()

参考博文:

YOLOv7训练自己的数据集(超详细)_Mr Dinosaur的博客-CSDN博客_yolo官方数据集

YOLOv7训练自己的数据集_氯化氢323的博客-CSDN博客_yolov 训练

YoloV7:训练自己得数据集详细教程_曲末寒的博客-CSDN博客_yolo 数据集

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号