Существуют ли методы выравнивания лица с использованием псевдо-трехмерных ориентиров?

Есть несколько способов выполнить выравнивание лица с помощью двухмерных ключевых точек для двухмерных изображений. Представьте, что есть два кадра, один с правильным лицом, назовите его «оригинальным». И немного изменено другое, например, есть немного вращения головы или движения учеников, назовем это «повернутым». Обычный трубопровод для выравнивания:

  1. Обнаружить лицо и получить прямоугольник (например, dlib.get_frontal_face_detector())
  2. Найдите ключевые точки (например, cv2.AKAZE_create().detectAndCompute()) на "исходном" и "повернутом"
  3. Сопоставить их.
  4. Выполнять cv2.warpAffine() или же cv2.warpPerspective() преобразование "повернутого" изображения, чтобы подогнать его к "исходному"

Мне нужно такое выравнивание, чтобы стабилизировать видео. Учитывая два кадра с небольшими различиями, мне нужно быстро и хорошо выровнять их.

Из-за того, что грани не плоские, этот метод не может достичь желаемого преобразования. Голова может быть помещена в то же место, но все равно повернута. Интересно, есть ли способ вместо этого использовать псевдо-трехмерные ориентиры лица?

0 ответов

Другие вопросы по тегам