用yolov7训练KITTI数据集,前期的数据处理。

一、首先,处理数据集

KITTI数据集的label虽然它是txt形式,但它拥有的独特数据格式不符合YOLO的训练。所以要对其进行处理。原本的标签数据格式是下图:可以看到拥有十多个数字,

 而我们只需要表示目标类别信息的第一列和表示物体所在图象中表示矩形框位置的4个坐标信息共五个参数信息。

第1步:首先在txt格式基础上进行实验所需类别的保留/合并操作,我这里只保留了car、van、及truck3个类别。

# modify_annotations_txt.py
import glob

import string

txt_list = glob.glob('E:/datasets/yolov5-6.0/mydata/labels/train/*.txt') # 存储Labels文件夹所有txt文件路径

print(txt_list)
def show_category(txt_list):
    category_list= []
    for item in txt_list:
        try:
            with open(item) as tdf:
                for each_line in tdf:
                    labeldata = each_line.strip().split(' ') # 去掉前后多余的字符并把其分开
                    category_list.append(labeldata[0]) # 只要第一个字段,即类别
        except IOError as ioerr:
            print('File error:'+str(ioerr))
    print(set(category_list)) # 输出集合

def merge(line):
    each_line=''
    for i in range(len(line)):
        if i!= (len(line)-1):
            each_line=each_line+line[i]+' '
        else:
            each_line=each_line+line[i] # 最后一条字段后面不加空格
    each_line=each_line+'\n'
    return (each_line)

print('before modify categories are:\n')
show_category(txt_list)

for item in txt_list:
    new_txt=[]
    try:
        with open(item, 'r') as r_tdf:
            for each_line in r_tdf:
                labeldata = each_line.strip().split(' ')
                # if labeldata[0] in ['Truck','Van','Tram']: # 合并汽车类
                #     labeldata[0] = labeldata[0].replace(labeldata[0],'Car')
                #if labeldata[0] == 'Person_sitting': # 合并行人类
                 #   labeldata[0] = labeldata[0].replace(labeldata[0],'Pedestrian')
                
                if labeldata[0] == 'DontCare': # 忽略Dontcare类
                    continue

                if labeldata[0] == 'Misc': # 忽略Misc类
                    continue

                if labeldata[0] == 'Tram':

                    continue

                if labeldata[0] == 'Person_sitting':

                    continue

           
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值