将.csv文件转换为yolo darknet格式

时间:2020-10-07 06:48:56

标签: object-detection yolo darknet

我有一些最初是.csv格式的注释。我需要将其转换为yolo darknet格式,以便使用yolov4训练我的模型。

我的.csv文件: enter image description here

YOLO格式为:对象类x y宽度高度

从我的.csv格式知道object_class,widht,height。但是找到x,y会令人困惑。请注意,x和y是矩形的中心(不是左上角)。

任何帮助将不胜感激:)

1 个答案:

答案 0 :(得分:1)

您可以使用此功能将边界框转换为yolo格式。当然,您将需要编写一些代码来读取csv。只需将此功能用作满足您需求的模板即可。

此功能是从labelimg应用程序提取的: https://github.com/tzutalin/labelImg/blob/master/libs/yolo_io.py

    def BndBox2YoloLine(self, box, classList=[]):
        xmin = box['xmin']
        xmax = box['xmax']
        ymin = box['ymin']
        ymax = box['ymax']

        xcen = float((xmin + xmax)) / 2 / self.imgSize[1]
        ycen = float((ymin + ymax)) / 2 / self.imgSize[0]

        w = float((xmax - xmin)) / self.imgSize[1]
        h = float((ymax - ymin)) / self.imgSize[0]

        # PR387
        boxName = box['name']
        if boxName not in classList:
            classList.append(boxName)

        classIndex = classList.index(boxName)

        return classIndex, xcen, ycen, w, h