VisDrone2019-DET数据集转yolo格式

VisDrone2019-DET数据集为无人机视觉数据集
内部图片为行人与车辆的合集,内部有不少拍摄模糊的照片
对内部文件进行查看,很多小型行人也做了标注,看着密密麻麻的,估计对后续训练应该增加不少难度
大部分数据标注还是比较准确的,有个别行人有漏标注的情况

因为使用中主要是yolo方面的训练,所以对其数据进行转换,另外使用中只需要其带有行人标注的数据集,所以使用代码进行统一处理和筛选,新建train文件夹,拷贝下面代码为py文件后运行(保留第二类和第三类,然后统一更改为自己使用的第一类)

import os
from pathlib import Path
from PIL import Image
import csv
import shutil

def convert(size, box):
    dw = 1. / size[0]
    dh = 1. / size[1]
    x = (box[0] + box[2] / 2) * dw
    y = (box[1] + box[3] / 2) * dh
    w = box[2] * dw
    h = box[3] * dh
    return (x, y, w, h)
            
wd = os.getcwd()

anns = os.listdir('annotations')
for ann in anns:
    ans = ''
    outpath = wd + '/train/' + ann
    if ann[-3:] != 'txt':
        continue
    with Image.open(wd + '/images/' + ann[:-3] + 'jpg') as Img:
        img_size = Img.size
    with open(wd + '/Annotations/' + ann, newline='') as csvfile:
        spamreader = csv.reader(csvfile)
        for row in spamreader:
            if row[4] == '0':
                continue
            if row[5] == '1' or row[5] =='2':
            print(row[0],row[1],row[2],row[3],row[4],row[5])
            bb = convert(img_size, tuple(map(int, row[:4])))
            ans = ans + '1' + ' ' + ' '.join(str(a) for a in bb) + '\n'
            with open(outpath, 'w') as outfile:
                outfile.write(ans)
            shutil.copy(wd + '/images/' + ann[:-3] + 'jpg',wd + '/train/' + ann[:-3] + 'jpg')

操作完成之后,发现有很多图像文件里只有很少的行人标注,而且都是很小的地方,这个还真是难为提供数据集的大拿,很多行人不仔细找都找不到,他们都标出了,不过由于标注太小,训练难度太大,对不清晰,太少标注的train内图片进行删除,然后对数据集进行清理,建立train1文件夹,代码如下

import os
from pathlib import Path
from PIL import Image
import csv
import shutil
       
wd = os.getcwd()

anns = os.listdir('train')
for ann in anns:
    if ann[-3:] != 'jpg':
        continue
    shutil.copy(wd + '/train/' + ann[:-3] + 'jpg',wd + '/train1/' + ann[:-3] + 'jpg')
    shutil.copy(wd + '/train/' + ann[:-3] + 'txt',wd + '/train1/' + ann[:-3] + 'txt')
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wukongxuetang

如果文章对你的工作有帮助就鼓励

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

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

打赏作者

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

抵扣说明:

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

余额充值