Я пытаюсь запустить пример обнаружения объекта CNTK в предварительно обученном наборе данных PascalVoc. Я запускаю все необходимые сценарии в fastrcnn и получаю визуальный вывод для тестовых данных, определенных в наборе данных. Теперь я хочу протестировать сеть на собственном образе, как я могу это сделать?
Как протестировать пример обнаружения объекта cntk на пользовательском изображении?
Ответы (2)
Для Fast R-CNN вам понадобится библиотека, которая генерирует потенциальные области интереса (области интереса) для ваших тестовых изображений, например выборочный поиск.
Если вы хотите оценить пакет изображений, вы можете следовать описанию в учебник, чтобы сгенерировать файл тестового сопоставления и координаты области интереса (см. test.txt
и test.rois.txt
в соответствующей подпапке proc
). Если вы хотите оценить сингл, вам нужно будет передать изображение и координаты ROI кандидата в качестве входных данных в cntk eval, аналогично этот пример:
# compute model output
arguments = {loaded_model.arguments[0]: [hwc_format]}
output = loaded_model.eval(arguments)
Для FastRCNN вам необходимо сначала запустить собственное изображение с помощью алгоритма выборочного поиска, чтобы сгенерировать области интереса (области интереса), а затем передать его в вашу модель с помощью такой команды:
output = frcn_eval.eval({image_input: image_file, roi_proposals: roi_proposals})
Вы можете найти более подробную информацию здесь: https://github.com/Microsoft/CNTK/tree/release/latest/Examples/Image/Detection/FastRCNN
В любом случае FastRCNN - не самый эффективный способ сделать это из-за использования выборочного поиска (который здесь является настоящим узким местом). Если вы хотите повысить производительность, вы можете попробовать FasterRCNN, поскольку он избавляется от алгоритма SS и заменяет его сетью региональных предложений, которая работает намного, намного лучше. Если вам интересно, вы можете проверить мое репо на GitHub: https://github.com/karolzak/CNTK-Hotel-pictures-classificator