我正在追踪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
中的其他内容不正确。关于我可能做错了什么的任何线索?
答案 0 :(得分:0)
问题在于类名使用大写字母;将类名(在CLASSES
和注释xml
中更改为所有小写字母即可解决)。不确定这是故意的还是错误的。