Проблема с созданием пользовательского набора данных в формате Pascal VOC для модели SSD - PullRequest
0 голосов
/ 04 декабря 2018

Я следую этому примеру , чтобы использовать свой собственный набор данных для использования в модели 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 голосов
/ 06 декабря 2018

Проблема заключалась в том, что имена классов имели заглавные буквы;изменение имен классов (в CLASSES и в аннотации xml) на все строчные буквы исправило это.Не уверен, является ли это намерением или является ошибкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...