【问题标题】:How to convert a yolo darknet format into .csv file如何将 yolo 暗网格式转换为 .csv 文件
【发布时间】:2020-12-20 15:05:08
【问题描述】:

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

Sample annotation file in CSV format

csv 属性包括:image_id、width、height 和图像边界框的坐标。 任何帮助将不胜感激!

【问题讨论】:

    标签: computer-vision pytorch object-detection detection yolo


    【解决方案1】:

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

    第 1 步:导入库

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

    import os
    import glob
    import pandas as pd
    import numpy as np
    

    第 2 步:获取 yolo 标签列表

    使用OS 库打开您的yolo 标签并使用glob 读取txt 文件的目录:

    os.chdir(r'D:\karami\Labeled\train1\labels')
    myFiles = glob.glob('*.txt')
    

    我的标签在我的标签文件夹中,所以我将该目录设置为该目录。

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

    对象类 x_center y_center width height

    x_center,y_center,width,height - 相对于宽度的浮点值和 图像的高度,它可以等于(0.0 到 1.0] 例如:= / 或 = /

    你可以在here看到完整的描述

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

    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 ?
    猜你喜欢
    • 2021-01-22
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 2019-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多