发出以Pascal VOC格式为SSD模型创建自定义数据集的问题

时间:2018-12-04 06:55:38

标签: python computer-vision

我正在追踪this example,以将自己的数据集用于SSD模型。我已经按照规定的格式准备了目录/文件。但是,这似乎对我不起作用,并且给了我非常奇怪的结果。

from gluoncv.data import VOCDetection
class VOCLike(VOCDetection):
    CLASSES = ['Class0', 'Class1', 'Class2']
    def __init__(self, root, splits, transform=None, index_map=None, preload_label=True):
        super(VOCLike, self).__init__(root, splits, transform, index_map, preload_label)


dataset = VOCLike(root='VOCtemplate_2', splits=((2018, 'train'),))
print('length of dataset:', len(dataset))
print('label example:')
print(dataset[0][1])

输出:

length of dataset: 138
label example:
[]

[[[178 240 255]
  [176 238 253]
  [177 236 252]
  ...
  [134 107 176]
  [143 107 179]
  [152 112 185]]

 [[178 240 255]
  [176 238 253]
  [177 236 252]
  ...
  [140 113 180]
  [143 110 179]
  [147 110 180]]

 [[180 239 255]
  [178 237 253]
  [178 237 253]
  ...
  [148 124 186]
  [147 117 179]
  [147 112 176]]

 ...

 [[173 188 231]
  [174 189 232]
  [175 190 233]
  ...
  [174 145 147]
  [172 146 147]
  [172 146 147]]

 [[174 189 232]
  [175 190 233]
  [176 191 234]
  ...
  [177 148 150]
  [174 148 149]
  [172 148 148]]

 [[173 188 231]
  [175 190 233]
  [175 190 233]
  ...
  [176 150 151]
  [176 150 151]
  [173 149 149]]]
<NDArray 1520x2688x3 @cpu(0)>
(1520, 2688, 3)

注释文件的外观如下(使用labelImg工具创建):

<annotation>
    <folder>Class0</folder>
    <filename>20180403-203558.jpg</filename>
    <path>/some/file/path/20180403-203558.jpg</path>
    <source>
        <database>Unknown</database>
    </source>
    <size>
        <width>2688</width>
        <height>1520</height>
        <depth>3</depth>
    </size>
    <segmented>0</segmented>
    <object>
        <name>Class0</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>489</xmin>
            <ymin>1020</ymin>
            <xmax>1514</xmax>
            <ymax>1355</ymax>
        </bndbox>
    </object>
</annotation>

数据集的长度正确,但dataset中的其他内容不正确。关于我可能做错了什么的任何线索?

1 个答案:

答案 0 :(得分:0)

问题在于类名使用大写字母;将类名(在CLASSES和注释xml中更改为所有小写字母即可解决)。不确定这是故意的还是错误的。