UAVDT目标检测数据集格式转化以及训练集验证集划分教程(原格式转化为Json(COCO)格式)

本教程详细介绍了如何将UAVDT目标检测数据集从原始格式转换为COCO JSON格式,并进行训练集与验证集的划分。首先,下载并理解数据集格式,然后编写Python脚本重命名图片并将其放入统一文件夹。接着,创建txt2json脚本生成JSON标签文件。最后,通过随机划分图片创建训练集和验证集,并更新标签脚本以匹配新的图片路径。
摘要由CSDN通过智能技术生成

UAVDT目标检测数据集格式转化教程(原格式转化为Json(COCO)格式)

无人机目标检测数据集目前主要有两个,一个是VisDrone19/18,还有一个就是UAVDT。
UAVDT数据集不是COCO格式的,但是目标检测一般使用COCO或者VOC格式的。
我找了一圈,博客和Github上都没有相关的转化数据集代码。(以前转数据集网上一搜都有别人提供的,但是这个数据集可能用的人少吧,我没找到)。所以只能自己来写了。以后其他人用这个数据集需要转化格式的时候就可以参考了。

1、下载数据集,了解数据集格式。
官网是这个:UAVDT官网
里面的图片类似这样。
在这里插入图片描述
UAVDT还包括了目标跟踪。其实它主要是目标跟踪。里面的目标检测也只是把视频里的东西逐帧提取,然后打上相应的标签。

下载下来后我们主要用这两个文件。
在这里插入图片描述
第一个就是图片,里面有子文件夹,子文件夹中就是那一段视频的每一帧的图片。
第二个文件夹就是GT标签,其中有README文件,里面有详细的格式说明。
README文件
标签是这样的
在这里插入图片描述
也就是类似yolo的txt格式。每一列它都有说明了。

2、先处理图片,把图片重命名放入到一个文件夹中。
COCO格式中图片都是放入到单独一个文件夹中的。
这个数据集一个文件夹下又有好多文件夹,这样不太好,我们可以把图片重命名后放入一个文件夹。

这里可以写一个简单的Python脚本。就叫imagescopy2onedir.py吧

import os
import shutil


multidirpath = 'D:/07_codeD/datasets/UAV/UAV-benchmark-M'
outdir = 'D:/07_codeD/datasets/UAV/uavdtallimages_rename'
# os.mkdir((outdir))

filenames = os.listdir(multidirpath)
# print(filenames)
for file in filenames:
    wholefile = multidirpath + '/' + file
    filenextname = os.listdir(wholefile)
    # print(filenextname)
    for filenext in filenextname:
        pathall = multidirpath + '/' + file + '/' + filenext
        # print(pathall)
        str1 = str(file)
        outpath = outdir + '/' + str1 + '_' + filenext[-10:]
        # print(outpath)
        shutil.copyfile(pathall,outpath)

改变路径就可以在你自己的电脑上运行了。
这是我们重新命名的图片。
在这里插入图片描述
3、接下来就是写一个txt2json的python脚本了。

import json
import pandas as pd
import os



classList = ["car", "truck", "bus"]
# By default, coco dataset starts index of categories from 1
PRE_DEFINE_CATEGORIES = {
   key: idx + 1 for idx, key in enumerate(classList)}
# print(PRE_DEFINE_CATEGORIES)


txtdir = 'D:/07_codeD/datasets/UAV/UAV-benchmark-MOTD_v1.0/GT'
out_json_file = "out.json"

json_dict = {
   "images": [], "type": "instances", "annotations": [],
             "categories": []}
# json格式如下,我们要写这总的4个部分,先把最简单的categories写了吧
# {"images": [], "type": "instances", "annotations": [], "categories": []}

# 先把categories部分写完
for cate, cid in PRE_DEFINE_CATEGORIES.items():
    cat = {
   'supercategory': cate, 'id': cid, 'name': cate}
    json_dict['categories'].append(cat)

def get_annot_data(txt_file):
    '''Read annotation into a Pandas dataframe'''
    annot_data =  pd.read_csv(txt_file, delimiter=',', names=['<frame_index>','<target_id>','<bbox_left>','<bbox_top>','<bbox_width>','<bbox_height>','<out-of-view>','<occlusion>','<object_category>'])
    return annot_data



# 记录键值对为后面id进行使用
dict_imagename2id = {
   }

# 先实现images部分
# begin
imageid
UAVDT目标检测数据集是一个用于无人机目标检测和跟踪的数据集。它包含了无人机在不同场景下的图像和视频,并提供了相应的标签信息。该数据集主要用于目标跟踪任务,而目标检测只是将视频中的物体逐帧提取并打上标签。\[1\] UAVDT数据集格式与常见的COCO或VOC格式不同,因此需要进行格式转换才能在目标检测任务中使用。目前,尚未找到相关的转换数据集代码,因此需要自己编写转换代码。\[2\] 转换UAVDT数据集为MOT数据集的步骤如下: 1. 创建相应的文件夹路径。 2. 操作数据集并生成gt.txt、seqinfo.ini等文件。具体的代码可以参考相关文章或教程。\[3\] 通过以上步骤,可以将UAVDT数据集转化为MOT数据集格式,以便在目标检测任务中使用。 #### 引用[.reference_title] - *1* *2* [UAVDT目标检测数据集格式转化以及训练集验证集划分教程(格式转化Json(COCO)格式)](https://blog.csdn.net/qq_42597373/article/details/119004668)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [UAVDT数据集转化为MOT数据集(用作MOTR模型训练)](https://blog.csdn.net/qq_44824148/article/details/127902687)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 56
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值