训练Tensorflow Obejct检测,无需边框注释

时间:2017-07-12 20:19:24

标签: python machine-learning tensorflow object-detection

我设法在我自己的数据集上重新训练object detection module,将其粘贴到下面显示的PASCAL VOC格式中。

这种格式是面向边界框并窥视其TFRecords creation scripts,它确实需要大量的 groundtruth 值来生成相应的TFRecords。

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

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

我的问题是:

  1. 专注于<polygon></polygon>的内容,Object Detection API支持点是否指向注释?

  2. 如果是1,我该如何为它创建TFRecords?还需要做哪些其他改动才能适应这种情况?

  3. Pascal 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>
    

1 个答案:

答案 0 :(得分:3)

Tensorflow Object Detection API仅执行Bounding Box annoations。