annotations - 将 Yolov5 bbox 导出为 Pascal 格式

标签 annotations object-detection data-conversion yolov5

之前已经有一些类似风格的问题问过(12)但是,没有人提到新的 Yolov5 风格注释。

是否有一个简单的函数接受规范化 Yolov5 边界框,例如:-

test = [0.436523 0.535156 0.587891 0.484375]

def some_function(test):
    ...
    return pascal_coords

并以 Pascal-VOC 格式返回?

I have tried plenty of online scripts - like https://dbuscombe-usgs.github.io/MLMONDAYS/blog/2020/08/17/blog-post and https://blog.roboflow.com/how-to-convert-annotations-from-pascal-voc-to-yolo-darknet/

但他们的目标是完整的数据集转换,包括 xml,有些不接受规范化框

这是格式:-

Yolov5 [<x-center> <y-center> <width> <height>]

|---> Converted to <-----|

Pascal VOC [x-top-left, y-top-left, x-bottom-right, y-bottom-right]

我只是想要转换后的边界框 :) TIA!

最佳答案

没有直接的方法将标准化的 Yolo 格式转换为另一种格式,如 Pascal VOC,因为您需要知道图像的大小才能进行转换。 (就像您首先需要知道图像的大小才能将其转换为规范化的 yolo 格式一样。)您还需要提供一些映射以将类号转换为类名。

我正在开发一个名为 PyLabel 的 Python 包来简化这些类型的转换。我有一个示例笔记本,可在此处将 Yolo v5 注释转换为 VOC 格式 https://github.com/pylabel-project/samples/blob/main/yolo2voc.ipynb .您可以使用 this link 在 Colab 中打开它.

核心代码是这样的:

from pylabel import importer
dataset = importer.ImportYoloV5(path=path_to_annotations, path_to_images=path_to_images)
dataset.export.ExportToVoc(output_path=output_path)

希望对您有所帮助。如果您有任何反馈或需要帮助,请随时与我联系。

关于annotations - 将 Yolov5 bbox 导出为 Pascal 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69994481/

相关文章:

java - @ParametersAreNonnullByDefault 是否也适用于方法返回值?

python - 有效地从二维似然矩阵(numpy 数组)中提取局部最大值(坐标)

opencv - opencv中类cv::KeyPoint的类成员class_id的含义和用途是什么?

Java - 从变量中删除 "Optional"(转换)

ruby - 当字符串包含数字时,为什么 Ruby 的 String#to_i 有时会返回 0?

python - 如何将回溯对象( sys.exc_info()[2] ,与 sys.exc_traceback 相同)作为字符串获取?

java - 如何将值传递给自定义注释?

jenkins - 为 Jenkins 构建启用 Checkstyle 注释处理

php - 在 ZF2 中使用表单注释和 DoctrineORM 在 composedObject 中呈现值

deep-learning - 逐帧处理视频时出现对象检测 "consistency"