当前位置:   article > 正文

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

dronevehicle

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])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • dataset_dir_vi:用于存放可见光未处理的图像
  • output_dir_vi:用于存放可见光处理后的图像
  • dataset_dir_ir:用于存放红外未处理的图像
  • output_dir_ir:用于存放红外处理后的图像

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

四、XML数据转TXT数据

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

闽ICP备14008679号