Обнаружение 3D-объектов-Opencv

Я попытался распознать лицо с помощью OpenCV, используя документацию, представленную в их вики. Он работает отлично, и он может обнаруживать несколько лиц. Однако на сайте нет данных о обнаружении 3D-объектов или отслеживании головы. Ссылки на код и вики приведены ниже:

Распознавание лиц

Каскадный классификатор

В то время как вики действительно предоставляют достаточную информацию об обнаружении лица, как вы могли бы найти, методы распознавания лиц 3D не предоставляются.

Я хотел знать о проектах, связанных с распознаванием и отслеживанием 3D-лиц, чтобы я мог видеть исходный код и пытаться сделать проект таким же.

Ответ 1

Это может зайти поздно, но у ива гараж имеет еще один проект под названием Point Cloud Library (PCL), который полностью сосредоточен на задачах обработки 3D-данных. Распознавание лиц - это один из вариантов использования рекламы для проекта. Конечно, все это бесплатно...

http://pointclouds.org

Ответ 2

Существует много методов. Я просто могу указать вам в правильном направлении. Примеры распознавания лиц обычно обеспечивают суб-обнаружение глаз. Так что на самом деле вы знаете расположение лица и глаз. Подобным или другим способом вы также можете обнаружить губы. Теперь, когда у вас есть как минимум три точки объекта (лицо в этот раз), вы можете рассчитать его 3D-положение в комнате с помощью триангуляции. Эта часть примера существует в find_obj.cpp, которая поставляется в качестве примера с OpenCV. Только этот пример использует x точек из SURF и рисует прямоугольник на основе этой информации. Проверьте также что-нибудь еще с CvFindHomography.

Ответ 3

Начиная с OpenCV 2.4.2, был файл заголовка для обнаружения лица и: opencv2/contrib/detect_based_tracker.hpp

Файл заголовка определяет класс, называемый DetectionBasedTracker. Механизм отслеживания, который он определяет, использует каскады haar в фоновом режиме для обнаружения объектов. Отслеживание намного быстрее, чем реализация OpenCV Haar (однако некоторые считают, что он менее точен). Я лично нашел, что он очень хорошо работает на устройстве Android. Пример кода, реализующего обнаружение и отслеживание лица, можно найти здесь: http://bytesandlogics.wordpress.com/2012/08/23/detectionbasedtracker-opencv-implementation/

Ответ 4

Вы должны взглянуть на Активные модели фигур и Active Appearance Models, которые относятся к задаче, которую вы описываете. OpenCV предоставляет вам только методы 2D-обнаружения, а методы в ссылке (теперь очень популярны в поле) отслеживают набор трехмерных точек, распределенных на лице, плюс текстуру для описания ее внешнего вида.

Страницы Википедии предоставят вам некоторые ссылки на реализации указанных методов.

Если вы хотите знать 3D-параметры головы в мировых координатах (например, для обнаружения взгляда), вам следует указать Google для ключевых слов "3D-отслеживание головы" и "оценка позывы головы".