【数据集处理】DroneVehicle数据集处理方法

本文介绍了DroneVehicle数据集的详细信息,包括图像数量和类别注释,并阐述了数据集处理的两个目标:去除图像周围100像素的白色边框以及将XML标注转换为TXT格式。提供了处理前后图像和标注的对比,并展示了TXT数据可视化的效果。
摘要由CSDN通过智能技术生成

DroneVenicle数据集是由天津大学收集、标注的大型无人机航拍车辆数据集。
DroneVenicle训练集下载地址:https://pan.baidu.com/s/1ptZCJ1mKYqFnMnsgqEyoGg(密码:ngar)
DroneVenicle验证集下载地址:https://pan.baidu.com/s/1e6e9mESZecpME4IEdU8t3Q(密码:jnj6)
DroneVenicle测试集下载地址:https://pan.baidu.com/s/1JlXO4jEUQgkR1Vco1hfKhg(密码:tqwc)

一、数据集介绍

DroneVehicle数据集由无人机采集的56,878张图像组成,其中一半是RGB图像,其余为红外图像。

作者为这五个类别制作了带有定向边界框的丰富注释。其中,汽车(car)有389,779个RGB图像注释,428,086个红外图像注释,卡车(truck)有22,123个RGB图像注释,25,960个红外图像注释,公共汽车(bus)有15,333个RGB图像注释,红外图像有16,590个注释,面包车(van)有11,935个RGB图像注释,红外图像有12,708个注释,货车(freight car)有13,400个RGB图像注释,和17,173个红外图像注释。

在DroneVehicle中,为了在图像边界处标注对象,作者在每张图像的顶部、底部、左侧和右侧设置了一个宽度为100像素的白色边框,因此下载的图像比例为840 x 712,去除周围的白色边框并将图像比例更改为640 x 512。

二、数据集处理目标

数据集处理的目标有两个:

  1. 由于DroneVehicle数据集中的每张图像的顶部、底部、左侧和右侧设置了一个宽度为100像素的白色边框,因此需要生成去除周围白色边框的图像。
  2. 由于DroneVehicle数据集的标注采用XML格式进行保存,实验需要TXT格式的标注,因此需要对相关数据进行合理转化。

三、去除周围白色边框部分

import numpy as np
import cv2
import os
from tqdm import tqdm


def create_file(output_dir_vi, output_dir_ir):
    if not os.path.exists(output_dir_vi):
        os.makedirs(output_dir_vi)
    if not os.path.exists(output_dir_ir):
        os.makedirs(output_dir_ir)
    print(f'Created folder:({
     output_dir_vi}); ({
     output_dir_ir})')


def update(input_img_path, output_img_path):
    image = cv2.imread(input_img_path)
    cropped = image[100:612, 100:740]  # 裁剪坐标为[y0:y1, x0:x1]
    cv2.imwrite(output_img_path, cropped)


dataset_dir_vi = './data/val/valimg'
output_dir_vi = './data/dataset/valimg_cropped'
dataset_dir_ir = './data/val/valimgr'
output_dir_ir = './data/dataset/valimgr_cropped'

# 检查文件夹是否存在,如果不存在则创建
create_file(output_dir_vi, output_dir_ir)
# 获得需要转化的图片路径并生成目标路径
image_filenames_vi = [(os.path.join(dataset_dir_vi, x), os.path.join(output_dir_vi, x))
                      for x in os.listdir(dataset_dir_vi)]

image_filenames_ir = [(os.path.join(dataset_dir_ir, x), os.path.join(output_dir_ir, x))
                      for x in os.listdir(dataset_dir_ir)]
# 转化所有图片
print('Start transforming vision images...')
for path in tqdm(image_filenames_vi):
    update(path[0], path[1])


print('Start transforming infrared images...')
for path in tqdm(image_filenames_ir):
    update(path[0], path[1])
  • dataset_dir_vi:用于存放可见光未处理的图像
  • output_dir_vi:用于存放可见光处理后的图像
  • dataset_dir_ir:用于存放红外未处理的图像
  • output_dir_ir:用于存放红外处理后的图像

处理前的图像(带白色边框)
处理前的图像(带白色边框)
***处理后的图像(不带白色边框)***处理后的图像(不带白色边框)

四、XML数据转TXT数据

import os
import xml.etree.ElementTree as ET
YOLOv5是一个基于深度学习的目标检测算法,在训练时可以用于识别和定位无人机(Drone)车辆。在使用YOLOv5训练Drone Vehicle的任务中,我们需要采取以下步骤: 1. 数据收集:为了训练一个准确的Drone Vehicle检测器,我们需要收集大量的包含无人机车辆的图像和视频数据。这些数据应该包括各种场景和角度下的无人机车辆,以便模型可以学习不同背景和环境中的识别能力。 2. 数据标注:收集到的数据需要进行标注,以便告诉模型每个图像中的无人机车辆的位置和类别。标注可以通过绘制框来实现,其中包含无人机车辆的边界框,并分配一个唯一的类别标签。 3. 模型配置:在训练之前,我们需要配置YOLOv5模型。这包括选择适当的网络架构和参数设置,以及设置训练数据集和验证数据集的路径。 4. 训练网络:使用配置好的模型和标注数据,我们可以开始训练网络。在训练期间,YOLOv5将通过反向传播算法不断优化网络权重,使其能够更好地识别和定位无人机车辆。 5. 模型评估:训练完成后,我们需要对模型进行评估以确定其性能。这可以通过使用已标注的测试数据集来计算模型的准确率、召回率和F1得分等指标来完成。 6. 模型优化:如果模型的性能不尽人意,我们可以通过调整网络的超参数、增加训练数据量或使用数据增强等技术来进一步优化模型。 总体而言,使用YOLOv5训练Drone Vehicle的过程涉及数据收集、标注、模型配置、训练、评估和优化等步骤。通过不断迭代和调整,我们可以得到一个准确且高效的无人机车辆检测器。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bxc.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值