Перейти к содержимому
Compvision.ru
Live_dumb

Распознавание мимики

Recommended Posts

Привет всем! Мне необходимо разработать программу которая распознает мимику лица. Существует множество шаблонов мимики и следует проверять соответствует ли мимика человека шаблону. Подскажите пожалуйста какие технологии следует использовать в этом случае.

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Соотнести шаблон с данными - это не очень большая проблема. Решается при помощи SVM, регрессии, нейросетей и т.д. всего что способно учиться.

Подаем на вход шаблон - на выход эмоцию, если обучающих пар достаточно, то система обучится.

Более сложной задачей будет точно снять биометрические параметры. Хотя, если вы можете использовать кинект, то

http://www.compvision.ru/forum/index.php?showtopic=926&st=0&p=6683&hl=microsoft&fromsearch=1&#entry6683

думаю то, что Вам нужно.

Либо посмотрите тут: http://www.compvision.ru/forum/index.php?showtopic=15&st=80

,но это не особо гибкая моделька.

Есть еще в этой теме (AAM): http://www.compvision.ru/forum/index.php?showtopic=411

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

google-> emotion recognition

проанализировать подходы или найти готовые решения

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Попробовать можно, но не думаю что будет работать лучше чем при использовании "маски", скорее заметно хуже.

Эта схема позволит распознать разных людей, но нужны-то эмоции, а эмоции это расстояния между вполне определенными точками лица (см. MPEG4 FAPs), а не наличие одинаковых кусочков изображения (дескрипторов) которые разные у разных людей.

PS: Думаю что Вам будет интересна книжка "MPEG-4 Facial Animation: The Standard, Implementation and Applications"

И это посмотрите: http://xface.fbk.eu/

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Есть ГОСТ слизанный с ИСО, больше почти ничего.

http://vsegost.com/Catalog/30/305.shtml

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я уже сказал выше что "маска" здесь жестковата.

Чувствительность будет маленькая.

А что пишет, когда отказывается запускаться?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ft2build.h не находит, что это за библиотека и где скачать всю "пачку" сразу, на сайтах файлы разбросаны.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это FreeType 2, его вроде оттуда можно безболезненно вырезать.

Просто забыл удалить.

Это для вывода текста ttf шрифтами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

в файле asm.cpp идентификатор не найден:

cvCreateSubdivDelaunay2D

cvSubdivDelaunay2DInsert

cvSubdiv2DEdgeOrg

cvSubdiv2DEdgeDst

cvClearSubdivVoronoi2D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Они переехали в legacy.hpp

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Запустилось. Только сразу после запуска вылетает окно с ошибкой "Запуск программы невозможен, так как на компьютере отсутствует opencv_legacy242.dll"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну так надо эту дллину кинуть в папку с экешником, и вообще все длл которые попросит или прописать пути к длл в PATH.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как я понял на вход нужно подать объект типа cvMat предварительно получив его при помощи конвертера из объекта типа .asm, а что это за тип? Объясните пожалуйста

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

asm - это модель активной формы (записанная в формате STASM (софтины с открытым кодом, но работающей заметно хуже этой програмки)).

Русской литературы по этой теме очень мало, можете почитать немного здесь:

http://cgm.computergraphics.ru/content/view/75

В общем случае, формирование новой модели занятие очень трудоемкое, да и не особо нужное, т.к. эта технология вряд ли даст намного более хорошие результаты.

Если коротко, то это статистическая модель.

Среднее (среднее лицо) и матрица ковариации небольшого количества собственных векторов (пространство в котором лицо может меняться).

Эта статистика получается путем обработки нескольких тысяч фотографий, на которых вручную выделяют характерные точки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не могу понять что надо надо на подать на вход программы. Опишите пожалуйста более подробно свою программу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Программе нужны файлы:

Каскад Хаара: \data\haarcascade_frontalface_alt2.xml

Модель лица: bin\Mask1.dat

Изображения лица идут с камеры.

Обработки отсутствия лица в кадре не делал, поэтому при запуске программы, лицо уже должно быть перед камерой (иначе маска свернется в точку).

Вроде больше ничего не нужно.

Что у Вас происходит при запуске, что выводится в консоль?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нарушение прав доступа при чтении, думаю это из-за того что я не подаю на вход файлы)

Где взять каскад Хаара и модель лица?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

они в архиве.

Запустите под отладкой, посмотрите на чем падает.

Немного более современная версия той-же программы:

ASMModel.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В режиме отладки не запускается, пишет "Не удается найти отладочную информацию для main.exe или не найдено соответствие". При запуске без отладки появлялась ошибка "Нарушение прав доступа при чтении" , посмотрел с каким файлом это связано, opencv_core242d.lib. Зашел в свойства и в доп. зависимостях поменял на opencv_core242.lib(без d)

Все запустилось, правда работает ужасно из 20 запусков пару раз нашлось мое лицо а потом сетка убежала, в остальных случаях она по стене бегала) Чем отличается библиотеки с "d" в названии и без нее?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Эта программа, сделана для статических картинок, с камерой она работает, так:

1) ищет лицо 1 раз Хааром.

2) инициализирует модель.

3) апдейтит модель.

Если модель сползает, то программа не пытается ее восстанавливать.

Чтобы работало лучше, нужно проверять корректность детекта, и периодически реинициализировать трекинг (собственно из трекинга там только апдейт модели, а этого явно недостаточно).

Причем, если фон у Вас за спиной имеет много граней, то программа будет еще чаще срываться.

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

Из альтернатив можете попробовать FaceAPI, для некоммерческого использования он бесплатный, но вроде бы там есть ограничения.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Инициализация метод InitModel?

А про более устойчивый вариант можно поподробнее?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×