DeepLabV3, сегментация и классификация / обнаружение на кораллах - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь использовать DeepLabV3 для сегментации изображения и обнаружения / классификации объектов на Коралле.

Мне удалось успешно запустить пример semantic_segmentation.py, используя DeepLabV3 на коралле, но это показывает только изображение с объект сегментирован.

Я вижу, что он присваивает метки цветам - как мне связать созданный мной файл label.txt на основе информации меток модели с этими цветами? (как я узнаю, какой цвет соответствует какой метке).

Когда я пытаюсь запустить двигатель = DetectionEngine (args.model)

с использованием модели Deeplab, я получаю ошибку

ValueError: В модели Dectection должно быть 4 выходных тензора! Эта модель имеет 1.

Я полагаю, что это неправильный подход?

Спасибо!

1 Ответ

1 голос
/ 27 апреля 2020

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

"Модель обнаружения обычно имеет 4 выходных тензора для указания местоположений, классов, баллов, количества и обнаружений. Подробнее об этом можно прочитать здесь. Напротив, модель сегментации имеет только один выходной тензор, поэтому, если вы будете обращаться с ним одинаково, вы, скорее всего, будете пытаться получить доступ к неправильному региону памяти. Если вы хотите выполнить все три задачи на одном изображении, мой мы предлагаем создать 3 разных движка и подать изображение в каждый из них. Единственная проблема заключается в том, что при каждом переключении модели, скорее всего, будет узкое место передачи данных для загрузки модели в TPU. У нас есть пример о том, как вы можете запускать 2 модели на одном TPU, вы можете изменить его, чтобы он занимал 3 модели. "

На последнем замечании я только что увидел, что вы добавили:

как мне связать созданный мной файл label.txt на основе информации метки модели с этими цветами

Я просто не думаю, что это то, что вы можете сделать для модели сегментации, но, может быть, я просто запутался в вашем запросе?

Возьмем, например, модель обнаружения объектов, есть 4 выходных тензора второй тензор дает вам массив идентификаторов, ассоциированных с определенным классом, который вы можете сопоставить с файлом метки. Модели сегментации дают только пиксель, окружающий объекты.

[РЕДАКТИРОВАТЬ] Извинение, похоже, я один запутался в моделях сегментации. Цитата из моего колледжа :) "Вам интересно знать название метки, вы можете найти соответствующее целое число для этой метки из массива результатов в Semantic_segmentation.py. Где результат - данные классификации каждого пикселя.

Например,

, если вы напечатаете массив результатов в файле с bird.jpg в качестве входных данных, вы найдете значение нескольких пикселей как 3, что соответствует 4-й метке в pascal_voc_segmentation_labels.txt (поскольку индексирование начинается с 0). "

...