【目标检测】YOLOv5跑通VisDrone数据集

这篇具有很好参考价值的文章主要介绍了【目标检测】YOLOv5跑通VisDrone数据集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

在YOLOv5官方的6.1版本中,我发现Data目录下多了5种数据集,包括无人机航拍数据集VisDrone和遥感数据集xView,这反映了官方也是在小目标检测中在偷偷发力。
这篇博文就来记录如何用YOLOv5跑通VisDrone数据集。

数据集我已上传到网盘里,有需要的读者可以进行下载:
https://pan.baidu.com/s/1UNQlZGHZlAZs412tbnpAxg?pwd=8888

数据集结构

【目标检测】YOLOv5跑通VisDrone数据集
数据集总共分四个文件:

  • VisDrone2019-DET-train:训练集
  • VisDrone2019-DET-val:验证集
  • VisDrone2019-DET-test-dev:测试集(带标签)
  • VisDrone2019-DET-test-challenge:测试集(不带标签)

不带标签的测试集是用于VisDrone2021挑战赛的,不参加竞赛就暂时不需要用到。

数据集处理

和VOC数据集一样,VisDrone的数据标注是xml形式,需要把它转换成YOLOv5所需的txt格式
在官方提供的VisDrone.yaml下方,已经提供了数据处理的脚本,以它为基础进行简单修改。
在根目录下创建visdrone2yolo.py

from utils.general import download, os, Path


def visdrone2yolo(dir):
    from PIL import Image
    from tqdm import tqdm

    def convert_box(size, box):
        # Convert VisDrone box to YOLO xywh box
        dw = 1. / size[0]
        dh = 1. / size[1]
        return (box[0] + box[2] / 2) * dw, (box[1] + box[3] / 2) * dh, box[2] * dw, box[3] * dh

    (dir / 'labels').mkdir(parents=True, exist_ok=True)  # make labels directory
    pbar = tqdm((dir / 'annotations').glob('*.txt'), desc=f'Converting {dir}')
    for f in pbar:
        img_size = Image.open((dir / 'images' / f.name).with_suffix('.jpg')).size
        lines = []
        with open(f, 'r') as file:  # read annotation.txt
            for row in [x.split(',') for x in file.read().strip().splitlines()]:
                if row[4] == '0':  # VisDrone 'ignored regions' class 0
                    continue
                cls = int(row[5]) - 1  # 类别号-1
                box = convert_box(img_size, tuple(map(int, row[:4])))
                lines.append(f"{cls} {' '.join(f'{x:.6f}' for x in box)}\n")
                with open(str(f).replace(os.sep + 'annotations' + os.sep, os.sep + 'labels' + os.sep), 'w') as fl:
                    fl.writelines(lines)  # write label.txt


dir = Path('D:/Desktop/Work/Dataset/VisDrone')  # datasets文件夹下Visdrone2019文件夹目录
# Convert
for d in 'VisDrone2019-DET-train', 'VisDrone2019-DET-val', 'VisDrone2019-DET-test-dev':
    visdrone2yolo(dir / d)  # convert VisDrone annotations to YOLO labels

运行完之后,可以看到在每个数据集下生成了和images对应的labels

【目标检测】YOLOv5跑通VisDrone数据集

创建自己的数据路径文件

在data下面创建mydata.yaml(也可以直接修改VisDrone.yaml)
输入下面内容:

train: D:/Dataset/VisDrone/VisDrone2019-DET-train/images  # train images (relative to 'path')  6471 images
val: D:/Dataset/VisDrone/VisDrone2019-DET-val/images  # val images (relative to 'path')  548 images
test: D:/Dataset/VisDrone/VisDrone2019-DET-test-dev/images   # test images (optional)  1610 images

# Classes
nc: 10  # number of classes
names: [ 'pedestrian', 'people', 'bicycle', 'car', 'van', 'truck', 'tricycle', 'awning-tricycle', 'bus', 'motor' ]

注:这里的路径替换成自己的路径即可。

开始训练

在train.py中,主要需要修改下方红框框出来的几个量。
batch-size和workers两个参数根据自己的电脑配置灵活选取。
值得注意的是YOLOv5 5.0版本的输入图片默认尺寸大小是640,在YOLOv5 6.1版本中,默认尺寸修改成了960,这也反映了官方应对小目标检测的策略。
【目标检测】YOLOv5跑通VisDrone数据集
设置完之后,开始训练即可。

视频检测

模型训练完之后,运行detect.py可以对图片或视频进行检测。
使用时,主要修改前三个参数,意义和train.py中类似。
【目标检测】YOLOv5跑通VisDrone数据集
另外,对于密集的小目标,输出的时候默认生成数据标签和置信度可能会对目标产生遮挡,影响观感。
可以修改下方hide-labelshide-conf两个属性,这样就可以把标签和置信度进行隐藏。

Enjoy yourself!文章来源地址https://www.toymoban.com/news/detail-439598.html

到了这里,关于【目标检测】YOLOv5跑通VisDrone数据集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (1)VisDrone无人机目标检测数据集介绍

    官网:http://aiskyeye.com/ VisDrone数据集,包含了10个类(即行人、人、汽车、面包车、公共汽车、卡车、汽车、自行车、遮阳三轮车和三轮车) 无人机计算机视觉相关检测和跟踪( Vision Meets Drones)作为近年来的研究热点之一,受到了广泛关注,这两年在各大会议上都有相关文章

    2024年02月11日
    浏览(31)
  • 【Yolov5+Deepsort】训练自己的数据集(1)| 目标检测&追踪 | 轨迹绘制

    📢前言: 本篇是关于 如何使用YoloV5+Deepsort训练自己的数据集 ,从而实现目标检测与目标追踪,并绘制出物体的运动轨迹。本章讲解的为第一个内容:简单介绍YoloV5+Deepsort中所用到的 目标检测,追踪及sortDeppsort算法。 本文中用到的数据集均为自采,实验动物为斑马鱼。 文尾

    2024年02月14日
    浏览(41)
  • 目标检测笔记(十二):如何通过界面化操作YOLOv5完成数据集的自动标注

    通过界面化操作YOLOv5完成数据集的自动标注的意义在于简化数据标注的流程,提高标注的效率和准确性。 传统的数据集标注通常需要手动绘制边界框或标记关键点,这个过程费时费力且容易出错。而通过界面化操作YOLOv5完成数据集的自动标注,可以实现自动识别目标并生成标

    2024年02月11日
    浏览(27)
  • 手把手教你用YOLOv5算法训练数据和检测目标(不会你捶我)

    本人从一个小白,一路走来,已能够熟练使用YOLOv5算法来帮助自己解决一些问题,早就想分析一下自己的学习心得,一直没有时间,最近工作暂时告一段落,今天抽空写点东西,一是为自己积累一些学习笔记,二是可以为一些刚接触YOLOv5算法的小白们提供一些参考,希望大家

    2024年02月01日
    浏览(41)
  • 【目标检测】基于yolov5的交通标志检测和识别(可识别58种类别,附代码和数据集)

    写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 (专栏订阅用户订阅专栏后免费提供数据集和源码一份,超级VIP用户不在服务范围之内,不想订阅专栏的

    2024年02月12日
    浏览(32)
  • YOLOv5目标检测:ubuntu1804从零开始使用YOLOv5训练自己的数据集(亲测有效,一步一步来一定行)

    (1)首先需要安装Anaconda,这个网上教程太多了,下载最新版本就行,在这里就不在赘述了。 (2)安装Pytorch 1. 首先创建python3.6以上版本的conda环境,在这里我用的是python3.8,环境名称为mypytorch 2. 激活创建好的conda环境 3.在PyTorch官网上选择指定版本安装Pytorch Install PyTorch: h

    2024年02月19日
    浏览(47)
  • 【Yolov5+Deepsort】训练自己的数据集(3)| 目标检测&追踪 | 轨迹绘制 | 报错分析&解决

    📢前言: 本篇是关于 如何使用YoloV5+Deepsort训练自己的数据集 ,从而实现目标检测与目标追踪,并绘制出物体的运动轨迹。本章讲解的为第三部分内容:数据集的制作、Deepsort模型的训练以及动物运动轨迹的绘制。本文中用到的数据集均为自采,实验动物为斑马鱼。 💻环境

    2024年02月10日
    浏览(39)
  • 深度学习目标检测数据VisDrone2019(to yolo / voc / coco)---MMDetection数据篇

    配备摄像头的无人机(或通用无人机)已被快速部署到广泛的应用领域,包括农业、航空摄影、快速交付和监视。因此,从这些平台上收集的视觉数据的自动理解要求越来越高,这使得计算机视觉与无人机的关系越来越密切。我们很高兴为各种重要的计算机视觉任务展示一个大

    2024年02月04日
    浏览(35)
  • 基于Kitti数据集的智能驾驶目标检测系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于Kitti数据集的智能驾驶目标检测系统可用于日常生活中检测与定位行人(Pedestrian)、面包车(Van)、坐着的人(Person Sitting)、汽车(Car)、卡车(Truck)、骑自行车的人(Cyclist)、有轨电车(Tram)以及其他目标(Misc),利用深度学习算法可实现图片、视频、摄像

    2024年02月16日
    浏览(28)
  • YOLOv5目标检测实验

    最近在用YOLOv5跑一些目标检测的东西,这是自己日常学习的一些总结!后期会继续更新!有问题也欢迎批评指正!如果雷同请见谅! 创建数据集是在detect.py里面的create_dataloader,并在主函数里面调用 yolov5在计算资源的调用上采用了torch.nn.parallel.DistributedDataParallel(DDP,多张显卡

    2024年02月07日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包