2016-06-27 2 views
0

Интересно, как я могу манипулировать/получать доступ к ориентирам точки dlib. Я запускаю код на предварительном просмотре камеры с намерением обнаружить определенные эмоции. Я хотел бы проверить, как, например, расстояние между веками или как меняется положение губ во времени и т. Д.Как манипулировать памятными точками dlib

+1

Вы можете получить все точки и оценить выражения, используя расстояние от точек губ. Для этого вам нужно изучить выражение лица из dlib, вы можете получить только ориентиры. – Mavie

ответ

2

Для Python API - попробуйте эту ссылку (https://matthewearl.github.io/2015/07/28/switching-eds-with-python/)

Для C++ - http://dlib.net/train_shape_predictor_ex.cpp.html образца имеет код для оценки межглазного расстояния:

double interocular_distance (
    const full_object_detection& det 
) 
{ 
    dlib::vector<double,2> l, r; 
    double cnt = 0; 
    // Find the center of the left eye by averaging the points around 
    // the eye. 
    for (unsigned long i = 36; i <= 41; ++i) 
    { 
     l += det.part(i); 
     ++cnt; 
    } 
    l /= cnt; 

    // Find the center of the right eye by averaging the points around 
    // the eye. 
    cnt = 0; 
    for (unsigned long i = 42; i <= 47; ++i) 
    { 
     r += det.part(i); 
     ++cnt; 
    } 
    r /= cnt; 

    // Now return the distance between the centers of the eyes 
    return length(l-r); 
} 

Таким же образом вы можете получить доступ черты лица Подробной информации о номера функций можно найти в dlib/image_processing/render_face_detections.h

+0

Спасибо, я посмотрю вариант C++. :) –

Смежные вопросы