在没有边界框标注的情况下训练TensorFlow对象检测

我通过将数据集调整为下方展示的PASCAL VOC格式,成功地在自己的数据集上重新训练了对象检测模块

这种格式是基于边界框的,通过查看他们的TFRecords创建脚本,可以看出它确实需要大量的这些真实值来生成相应的TFRecords。

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

经过一番查找,我发现了labelme,它允许你进行形状(点对点)标注,而不仅仅是边界框。下面是生成的标注的简短版本,以及包含结果形状的相应图像。

我的问题是:

  1. 集中在<polygon></polygon>的内容上,对象检测API是否支持点对点标注?

  2. 如果对1的回答是肯定的,我该如何为其创建TFRecords?还需要做哪些其他更改来适应这一点?

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>

点对点标注的快照

这里是完整的标注文件和相应的图像

<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>

回答:

TensorFlow对象检测API仅执行边界框标注。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注