Последняя версия OpenCV включает модуль Deep Neural Network (DNN), который поставляется с хорошей предварительно обученной сверточной нейронной сетью (CNN) для обнаружения лиц. Новая модель повышает производительность распознавания лиц по сравнению с традиционными моделями, такими как Haar. Фреймворк, используемый для обучения новой модели, - Caffe. Однако некоторые люди столкнулись с трудностями при попытке использовать эту предварительно обученную модель в других местах, например, запустить ее на нейронной вычислительной палке Intel, преобразовать ее в модели в других фреймворках и т. Д. Причина в основном в том, что Caffe довольно сильно изменился. много, так как модель была обучена, что делает предварительно обученную модель несовместимой с последней версией Caffe. В этом посте я покажу вам быстрый и простой способ переноса модели в последнюю версию Caffe путем извлечения всех предварительно обученных коэффициентов нейронной сети.

Основная идея состоит из двух шагов:

1. Извлечь коэффициенты для всех слоев нейронной сети внутри детектора лиц OpenCV DNN.

2. Создайте новую нейронную сеть, используя последнюю версию Caffe, вставьте в нее извлеченные коэффициенты и сохраните новую модель.

Шаг 1 можно выполнить с помощью следующего сценария.

В приведенном выше сценарии opencv_face_detector.prototxt - это файл конфигурации модели, а opencv_face_detector_model.caffemodel - это фактический файл модели с обученными коэффициентами. Подробные объяснения можно найти в официальном репозитории OpenCV на Github.

Шаг 2 можно выполнить с помощью следующего сценария.

После сохранения модели с использованием нового Caffe она теперь совместима с новым Caffe.

Надеюсь, этот быстрый трюк вам поможет.