Обнаружение волос на портретном изображении?
Каков наилучший подход для обнаружения и удаления волос человека на простом портретном изображении? Какие-нибудь полезные библиотеки алгоритмов? Я просматривал openCV, который выглядит так, как будто он может быть полезен
3 ответа
Вы имеете дело с двумя разными проблемами здесь:
- определить, есть ли у лица на портрете волосы
- "удаление" волос
Первое разрешимо довольно легко:
- Отделите лицо от фона (как вы упомянули "простое портретное изображение", это не должно быть слишком сложно).
- Преобразуйте ваше изображение в цветовое пространство Y'CbCr
- Кожа человека имеет довольно узкий диапазон значений цветности, независимо от расы. Проверьте эту бумагу для деталей.
- Приведенный выше подход поможет вам отделить участки кожи лица от участков без кожи
- Предположим, что участки без кожи состоят из волос. Обратите внимание, что волосы на лице также будут восприниматься как не кожа.
Что касается второй проблемы, вам нужно уточнить, что именно вы имеете в виду под "удалением":
- Вы просто вырезаете ту часть портрета, на которой есть волосы? В этом случае решение следует непосредственно из метода обнаружения выше.
- Вы пытаетесь заставить его выглядеть так, будто у него вообще нет волос (например, он лысый, чисто выбритый?). В этом случае все будет намного сложнее - есть причина, по которой профессиональным фотоманипуляторам платят хорошо.
Я думаю, что это трудная проблема - рассмотрим обнаружение и удаление волос в этом случае:
Я нашел несколько работ, возможно, они вам помогут:
- Обнаружение и анализ волос
- Dullrazor®: программный подход к удалению волос с изображений
- Исследование экспрессии волос в компьютерной анимации
Ура!
Попробуйте это http://betaface.com/demo.html. Цвет, информация о волосах и многое другое. улыбка, возраст, глаза и т.д..