0

我正在尝试使用自己的数据集进行自己的对象检测。我从google tensorflow object detection api开始了我的第一个机器学习程序,链接在这里:eager_few_shot_od_training_tf2_colab.ipynb

在 colab 教程中,作者使用 javascript 标记图像,结果如下:

 gt_boxes = [
         np.array([[0.436, 0.591, 0.629, 0.712]], dtype=np.float32),
         np.array([[0.539, 0.583, 0.73, 0.71]], dtype=np.float32),
         np.array([[0.464, 0.414, 0.626, 0.548]], dtype=np.float32),
         np.array([[0.313, 0.308, 0.648, 0.526]], dtype=np.float32),
         np.array([[0.256, 0.444, 0.484, 0.629]], dtype=np.float32)

]

当我运行自己的程序时,我使用 labelimg replace to javascript,但数据集不兼容。

现在我有两个问题,第一个是 colab 教程中的数据集类型是什么?coco、yolo、voc 还是其他?第二个是如何在 labelimg 数据和 colab 教程数据之间转换数据集?我的目标是使用 labelimg 标记数据,然后在 colab 教程中替换。

4

1 回答 1

1
  1. “数据类型”只是基于图像高度和宽度的比率值。所以坐标只是边界框开始和结束位置的比率值。由于每个图像都将被预处理,也就是说,当输入模型时,它的尺寸会发生变化(批次、高度、宽度、通道),边界框坐标必须具有正确的比例,因为图像可能会改变其原始尺寸的尺寸。与示例一样,模型期望图像为 640x640。因此,如果您提供 800x600 的图像,则必须调整其大小。现在,如果模型返回 640x640 的坐标 [100,100,150,150],显然这对于​​ 800x600 图像来说是不一样的。但是,要获得这种数据格式,您应该在使用 labelImg 时使用 PascalVOC。

  2. 执行此操作的典型方法是创建 TFRecord 文件并按照训练脚本顺序对其进行解码以创建数据集。但是,您可以自由选择任何您喜欢Tensorflow 数据集的方法来训练您的模型。

希望这回答了你的问题。

于 2021-09-07T08:28:17.537 回答