Использование OpenCV DNN Detection для изображений размером более 300x300
Я здесь, потому что мне нужен какой-то совет...
Я работаю с распознаванием лиц. Я уже пробовал некоторые методы, такие как de DLIB Detector, HoG и другие...
На данный момент я начал использовать OpenCV DNN Detection, основанный на ResNet.caffemodel, но после многих попыток я понимаю, что эта модель не очень хороша для изображений размером более 300x300 (HxW).
Обратите внимание, что мои изображения 1520x2592 (HxW). Когда я применяю изменение размера, почти вся информация о лицах теряется, потому что лица в исходном изображении имеют размер около 150x150 пикселей, а при изменении размера для обнаружения с использованием DNN их размер составляет около 30x20 (приблиз.).
Некоторые подходы, которые я уже пробовал: - Разделить фигуру на подсигуры - Вычитание фона
Что мне нужно для достижения: - Быстрое обнаружение - Уменьшить количество потерянных лиц (не обнаружено)
Задача: - большое изображение с маленькими лицами в нем - большая часть изображения не используется (но я не могу изменить местоположение камеры)
1 ответ
Сети на основе SSD являются полностью сверточными, что означает, что вы можете варьировать размер ввода. Попробуйте передать входные данные разных размеров и выбрать тот, который дает удовлетворительную производительность и точность. Здесь есть пример: http://answers.opencv.org/question/202995/dnn-module-face-detection-poor-results-open-cv-343/
input = blobFromImage(img, 1.0, Size(1296, 760)); // x0.5
или жеinput = blobFromImage(img, 1.0, Size(648, 380)); // x0.25