【问题标题】:Train Tensorflow Obejct Detection without bounding boxes annotations在没有边界框注释的情况下训练 Tensorflow 对象检测
【发布时间】:2017-12-17 10:05:13
【问题描述】:

我设法在我自己的数据集上重新训练object detection module,方法是将其遵循如下所示的 PASCAL VOC 格式。

这种格式以边界框为导向并窥视其TFRecords creation scripts,它确实期望大量这些groundtruth值生成相应的TFRecords。

边界框的问题在于它为您提供了近似值,并且注释旋转的图像可能相当具有挑战性。

环顾四周后,我遇到了labelme,它允许您执行形状(点对点)注释,而不仅仅是边界框。下面是生成的注释的简短版本以及由结果形状组成的结果图像。

我的问题是:

  1. 专注<polygon></polygon>的内容,Object Detection API是否支持点对点注解?

  2. 如果 1 为“是”,我该如何为其创建 TFRecords?需要进行哪些其他更改才能适应这种情况?

帕斯卡 VOC 格式

<annotation verified="no">
  <folder>VOC2012</folder>
  <filename>pic.jpg</filename>
  <source>
    <database>Unknown</database>
  </source>
  <size>
    <width>214</width>
    <height>300</height>
    <depth>3</depth>
  </size>
  <segmented>0</segmented>
  <object>
    <name>sample</name>
    <pose>Unspecified</pose>
    <truncated>0</truncated>
    <difficult>0</difficult>
    <bndbox>
      <xmin>32</xmin>
      <ymin>37</ymin>
      <xmax>180</xmax>
      <ymax>268</ymax>
    </bndbox>
  </object>
</annotation>

点对点注释快照

Here's完整的注解文件和对应的image

<annotation>
    <filename>ipad.jpg</filename>
    <folder>sample</folder>
    <source>
    <submittedBy>username</submittedBy>
    </source>
    <imagesize>
        <nrows>450</nrows>
        <ncols>800</ncols>
    </imagesize>
    <object>
        <name>ipad</name>
        <deleted>0</deleted><verified>0</verified><occluded>no</occluded>
        <attributes></attributes>
        <parts>
            <hasparts></hasparts>
            <ispartof></ispartof>
        </parts>
        <date>12-Jul-2017 19:20:22</date><id>0</id>
        <polygon>
            <username>anonymous</username>
            <pt><x>40</x><y>76</y></pt>
            <pt><x>435</x><y>11</y></pt>
            <pt><x>472</x><y>311</y></pt>
            <pt><x>94</x><y>418</y></pt>
        </polygon>
    </object>
    <object>
        <name>screen</name>
        <deleted>0</deleted>
        <verified>0</verified>
        <occluded>no</occluded>
        <attributes></attributes>
        <parts>
            <hasparts></hasparts>
            <ispartof></ispartof>
        </parts>
        <date>12-Jul-2017 19:20:48</date><id>1</id>
        <polygon>
            <username>anonymous</username>
            <pt><x>75</x><y>89</y></pt>
            <pt><x>118</x><y>397</y></pt>
            <pt><x>447</x><y>308</y></pt>
            <pt><x>421</x><y>30</y></pt>
        </polygon>
    </object>
</annotation>

【问题讨论】:

    标签: python machine-learning tensorflow object-detection


    【解决方案1】:

    Tensorflow Object Detection API 只执行边界框注解。

    【讨论】:

    • 感谢您的回复。你会如何建议处理轮换呢?嗯,点对点注释训练对于 ML 中的对象定位是否可行?
    • 当前状态只允许边界框。当您有多边形或其他形状时,您必须在训练之前将它们转移到边界框。 Facebook 的 Multipathnet 可以在多边形上进行训练。
    • 如何将多边形转换为边界框格式?有什么已知的方法吗?或者可能编写脚本来获取多边形的极端角。
    • 正如 Derek 所说,该 api 仅用于执行边界框注释,它现在虽然使用 MASK RCNN,但现在支持遮罩,github.com/tensorflow/models/blob/master/research/…
    • 这个答案是错误的。您可以通过将空列表传递给 tfrecord 生产者来将不带 bbox 的图像传递给 tf od
    猜你喜欢
    • 2017-12-23
    • 2023-01-04
    • 2021-08-15
    • 2014-04-30
    • 2020-07-14
    • 2018-12-07
    • 1970-01-01
    • 2018-05-15
    • 2018-01-01
    相关资源
    最近更新 更多