0

所以这是我的第一个问题。我正在准备一个用于对象检测的数据集。到目前为止,我做了以下事情:

  1. 我有一张原始图片(尺寸 w4000 x h3000)。
  2. 我使用标注平台Roboflow将其标注为COCO格式,图中近250个物体。
  3. Roboflow 返回了一张缩小的图片 (2048x1536),其中包含一个带有 COCO 格式注释的相应 json 文件。
  4. 然后,为了从我的原始图片中获取数据集(因为我有很多对象并且图片足够大),我决定将原始图片平铺成 224x224 的补丁。为此,我放大了一点 (4032x3136) 以便能够正确切片,获得 252 张图片。

问题

  1. 如何将 Roboflow 2048x1536 图片的边界框调整为原始图片 (4032x3136)?

  2. 一旦 b.boxes 被调整为我的原始大小图片,我如何再次调整它们的大小,使大小适应通过切片原始图片创建的每个补丁 (224x224)?

谢谢!!

4

1 回答 1

1

听起来最终目标是从源 4032x3136 图像中平铺 224x224 图像,并正确更新边界框。

至少在 Roboflow 中,您可以将平铺作为预处理步骤添加到原始 4032x3136 图像中。图像将分解为您选择的图块数量(2x2、3x3、NxY)。边界框将被正确更新以覆盖每个单独的图块上的对象。

要根据您描述的内容重新实现代码,您需要:

  1. 将您的 2048x1536 图像放大到 4032x3136
  2. 相应地缩放边界框
  3. 使用 Pil 之类的工具将图像分解为 224x224 的图块
  4. 更新要分解为各个图块上的坐标的注释;每个图块一个注释
于 2021-06-09T11:57:11.890 回答