当前位置:   article > 正文

YOLOv7训练VisDrone数据集_visdrone数据集下载

visdrone数据集下载

1.进入官网下载VisDrone数据集

官网地址:https://github.com/VisDrone/VisDrone-Dataset  进入官网后下载train,val,test数据集。

 下载完成,解压之后为下图

每个文件夹下的目录为下图 

annotations下的标签文件格式,如下图 

 

要想使用YOLO来训练数据,必须将标签文件转换为YOLO格式,如下图,每张image对应一个label

 

YOLOv7目录下新建一个文件夹存放VisDrone数据集

 

 2.将数据集转换为YOLO格式

 在YOLOv7目录下新建一个visdrone2yolov7.py文件夹,如下图所示

visdrone2yolov7.py文件内容为 ,将29行的目录改为自己visdrone数据集的位置,运行该代码。

  1. from utils.general import os, Path
  2. def visdrone2yolo(dir):
  3. from PIL import Image
  4. from tqdm import tqdm
  5. def convert_box(size, box):
  6. # Convert VisDrone box to YOLO xywh box
  7. dw = 1. / size[0]
  8. dh = 1. / size[1]
  9. return (box[0] + box[2] / 2) * dw, (box[1] + box[3] / 2) * dh, box[2] * dw, box[3] * dh
  10. (dir / 'labels').mkdir(parents=True, exist_ok=True) # make labels directory
  11. pbar = tqdm((dir / 'annotations').glob('*.txt'), desc=f'Converting {dir}')
  12. for f in pbar:
  13. img_size = Image.open((dir / 'images' / f.name).with_suffix('.jpg')).size
  14. lines = []
  15. with open(f, 'r') as file: # read annotation.txt
  16. for row in [x.split(',') for x in file.read().strip().splitlines()]:
  17. if row[4] == '0': # VisDrone 'ignored regions' class 0
  18. continue
  19. cls = int(row[5]) - 1
  20. box = convert_box(img_size, tuple(map(int, row[:4])))
  21. lines.append(f"{cls} {' '.join(f'{x:.6f}' for x in box)}\n")
  22. with open(str(f).replace(os.sep + 'annotations' + os.sep, os.sep + 'labels' + os.sep), 'w') as fl:
  23. fl.writelines(lines) # write label.txt
  24. dir = Path('H:\\wenjian\\yolov7\\yolov7-main\\visdrone') # dataset文件夹下Visdrone2019文件夹路径
  25. # Convert
  26. for d in 'VisDrone2019-DET-train', 'VisDrone2019-DET-val', 'VisDrone2019-DET-test-dev':
  27. visdrone2yolo(dir / d) # convert VisDrone annotations to YOLO labels

运行结束后,如图所示

VisDrone数据集下就会生成相应的label文件,这里的cache.label是train.py文件运行之后才生成的,这里不用管。

3.训练VisDrone数据集 

在YOLOv7目录下的data目录下新建visdrone.yaml文件,代码如下。将

  1. # COCO 2017 dataset http://cocodataset.org
  2. # download command/URL (optional)
  3. download: bash ./scripts/get_coco.sh
  4. # train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/]
  5. train: H:\wenjian\yolov7\yolov7-main\mydata\visdrone\VisDrone2019-DET-train\images # 118287 images
  6. val: H:\wenjian\yolov7\yolov7-main\mydata\visdrone\VisDrone2019-DET-val\images # 5000 images
  7. test: H:\wenjian\yolov7\yolov7-main\mydata\visdrone\VisDrone2019-DET-test-dev\images # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794
  8. # number of classes
  9. nc: 11
  10. # class names
  11. names: [ 'pedestrian', 'people', 'bicycle', 'car', 'van','truck', 'tricycle', 'awning-tricycle', 'bus', 'motor', 'others']

将第7,8,9行分别换为自己的路径。然后在train.py文件相应位置替换为自己的路径,即可训练

最后,开始训练。有四个标签转换有问题的图片,训练时会忽略,不用管。结束。 

 第一次写博客,小白一个,大佬轻喷。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/452508
推荐阅读
相关标签
  

闽ICP备14008679号