Ответ 1
Как правило, поддержка Vector Machine (SVM) используется для распознавания лиц, таких как гнев, улыбка, сюрприз и т.д., где происходит активное развитие. Googling дает вам много работ по этой теме (даже один из моих сокурсников сделал это в качестве своего последнего проекта). Для этого сначала вам нужно обучить SVM и сделать это, вам нужны образцы изображений зевок и нормальных лиц.
Зияние почти похоже на удивление, когда рот открыт в обоих случаях. Я рекомендую вам посмотреть страницу 3 ниже документа: Распознавание лица в реальном времени в видео используя поддерживающие векторные машины (если вы не можете получить доступ к ссылке, google по имени бумаги)
В документе (даже мой одноклассник) использовался вектор перемещения черт лица. Для этого вы найдете некоторые особенности на лице. Например, в этой статье они использовали глазный зрачок, крайние точки крышек, наконечник носа, крайние точки рта (губы) и т.д. Затем они непрерывно отслеживают местоположение объектов и находят эвклидовое расстояние между ними. Они используются для обучения СВМ.
Посмотрите ниже две статьи:
Выделение Feature Points из Faces
Посмотрите изображение ниже, что я имею в виду по пунктам функции на лице:
В вашем случае, я думаю, что вы реализуете его в iPhone в режиме реального времени. Так может быть, вы можете избежать признаков в глазах (хотя это не очень хорошая идея, поскольку, когда вы зеваете, глаза становятся маленькими по размеру). Но по сравнению с ним, особенности точек на губах показывает больше вариаций и преобладает. Таким образом, внедрение только на губе может сэкономить время. (Ну, все зависит от вас).
Сегментация губ. Он уже обсуждается в SOF и проверяет этот вопрос: Сегментация Lip OpenCV
И, наконец, я уверен, что вы можете найти много подробностей о googling, потому что это активная область разработки, и там много бумаг.
Другой вариант:
Другой вариант в этой области, который я слышал несколько раз, - Active Appearance Model
. Но я ничего не знаю об этом. Google это самостоятельно.