Computer vision 如何将yolo darknet格式转换为.csv文件

Computer vision 如何将yolo darknet格式转换为.csv文件,computer-vision,pytorch,object-detection,detection,yolo,Computer Vision,Pytorch,Object Detection,Detection,Yolo,我有一些最初是YOLO格式的注释。我需要将其转换为yolo csv格式,以便使用我的变形金刚模型进行训练。 我需要的.csv文件示例: csv属性包括:图像id、宽度、高度和图像边界框的坐标。 任何帮助都将不胜感激 首先,我应该说,没有直接的方法将这些格式转换为csv。您应该读取文件并解析它们的数据 步骤1:导入库 我们需要从目录中读取txt文件(yolo标签),并将其保存到csv中。因此,我们需要这些库: import os import glob import pandas as pd i

我有一些最初是YOLO格式的注释。我需要将其转换为yolo csv格式,以便使用我的变形金刚模型进行训练。 我需要的.csv文件示例:

csv属性包括:图像id、宽度、高度和图像边界框的坐标。
任何帮助都将不胜感激

首先,我应该说,没有直接的方法将这些格式转换为csv。您应该读取文件并解析它们的数据

步骤1:导入库

我们需要从目录中读取txt文件(yolo标签),并将其保存到csv中。因此,我们需要这些库:

import os
import glob
import pandas as pd
import numpy as np
步骤2:获取您的YLO标签列表

OS
库打开yolo标签所在的目录,用
glob
读取txt文件:

os.chdir(r'D:\karami\Labeled\train1\labels')
myFiles = glob.glob('*.txt')
我的标签在我的标签文件夹中,所以我将该目录设置为该目录

步骤3:读取行和分割数据 在myFiles变量中有标签列表 您应该对它进行迭代,读取每个文件的第一行并拆分其数据。 在您共享的图像中,我们有边界框的绝对坐标。根据yolo darknet文件,我们有:

对象类x_中心y_中心宽度高度

x_中心、y_中心、宽度、高度-相对于宽度和高度的浮动值 图像的高度,可以在(0.0到1.0)之间相等,例如:=

所以我们需要将坐标乘以图像的宽度和高度

yolo文件不包含图像大小,所以您应该在创建之前定义它们 然后使用拆分的字符串。然后保存数据帧。代码:

width=1024
height=1024
image_id=0
final_df=[]
for item in myFiles:
    row=[]
    bbox_temp=[]
    with open(item, 'rt') as fd:
        first_line = fd.readline()
        splited = first_line.split();
        
        row.append(image_id)
        row.append(width)
        row.append(height)
        try:
            bbox_temp.append(float(splited[1])*width)
            bbox_temp.append(float(splited[2])*height)
            bbox_temp.append(float(splited[3])*width)
            bbox_temp.append(float(splited[4])*height)
            row.append(bbox_temp)
            final_df.append(row)
        except:
            print("file is not in YOLO format!")
df = pd.DataFrame(final_df,columns=['image_id', 'width', 'height','bbox'])
df.to_csv("saved.csv",index=False)
这是我的csv文件:


这对@Markus Khoa有帮助吗?