Добавление нового класса в существующий класс модели обнаружения объектов Tensorflow

Я пытаюсь добавить новый класс в ms_coco_model (с 90 классами) в модели обнаружения объектов tenorflow и запустить обучающий набор для него. Я использую предварительно обученную контрольную точку модели: "ssd_mobilenet_v1_coco_checkpoint", чтобы ускорить этап обучения.

Я следил за блогом https://towardsdatascience.com/how-to-train-your-own-object-detector-with-tensorflows-object-detector-api-bec72ecfe1d9, и это прекрасно работает. Так как он выполняет этап обучения только для набора данных енота, имеющего 1 класс в файле.pbtxt. Выходы, как и ожидалось, способны определять "только" енота в заданном входном файле.

Чего я хочу добиться, так это уметь обнаруживать енота и другие объекты в данном входном файле. Я придерживался следующего подхода:

  1. Преобразованные аннотации енотов.xml в формат.json (такие же, как набор данных ms_coco)
  2. Добавлены изображения енотов и аннотации в файлы изображений и аннотаций ms_coco
  3. Запустил скрипт create_tfrecord, чтобы сгенерировать tfrecord для объединенных данных ms_coco + raccoon, для этапа обучения
  4. Обновлен файл.pbtxt и добавлен класс енота с идентификатором 91
  5. Начался этап обучения с предварительно обученной моделью ssd_mobilenet_v1_coco_checkpoint

Но даже после прохождения обучения за ~2 000 шагов, я не могу достичь ожидаемого результата.

Правильно ли использовать этот подход для добавления данных нового класса в существующую модель данных? Я что-то здесь упускаю?

0 ответов

Другие вопросы по тегам