- 
                Notifications
    You must be signed in to change notification settings 
- Fork 6
FaceDlibAttribute
Признак детектирования лица, с возможностью идентификации. Используется библиотека dlib. Для использования требуется её установка.
| Режимы | Оценка точности | 3D-перенос | 3D-поворот | Определение контура | Извлекаемая информация | 
|---|---|---|---|---|---|
| DE | DE | ❌ | ❌ | ❌ | <Attribute_name>:face_label | 
Определяет лица на изображении средствами dlib. Если предоставлена база с лицами, предиткор формы и модель идентификации, то сразу способен выполнеть идентификацию лица.
Не реализовано.
Сравнивает распознанное лицо с предоставленной базой лиц находя максимально похожее лицо, расстояние между векторами которых менее 1-Probability. Идентификация доступна в отдельном режиме, если требуется использовать другой детектор лиц.
- Name (string, must be set) уникальное имя признака
- Type (string, must be "FaceDlib") тип признака
- Weight (double, default: 1) вес признака
- Probability (double, default: 0.75) допустимая точность идентификации, распознанному лицу будет назначен лейбл, только если расстояние между ним и лицом из базы меньше 1-Probability. Если признак используется только как детектор, то не используется
- Contour (bool, default: true) Не используется для данного признака
Если планируется использовать признак только в режиме детектирования лица, то параметры ниже не требуются
Если любой из параметров ниже начинается с символа /, то путь считается глобальным, если нет, то относительным от директории с конфигурационным файлом
- base_dir_path (string, default: "") Путь до директории с лицами. Файлы в директории должны быть в формате .jpeg, .jpg, .png. Имя файла будет соотвествоать возвращаемому лейблу. Если на изображении в базе детектор определяет более одного лица, то они не добавляются в базу. При старте узла создается набор векторов, кодирующих лица, это может быть длительной операцией, поэтому рекомендуется воспользоваться утилитой и заранее подготовить файл, уже с закодированными лицами, который можно передать признаку параметром base_file_path.
- base_file_path (string, default: "") Путь до файла, уже с посчитанными векторами лиц. Если передан путь к файлу и к директории то используется файл. Создать файл можно при помощи утилиты face_dlib_descriptors_extractor.
- sp_path (string, default: "") Путь к предиктору формы лица, используется, чтобы "нормировать" лицо в фас. Можно скачать с сайта dlib http://dlib.net/files/shape_predictor_5_face_landmarks.dat.bz2 и разархивировать в нужную папку.
- net_path (string, default: "") Путь к обученной модели распознавания лиц, можно скачать с сайта dlib http://dlib.net/files/dlib_face_recognition_resnet_model_v1.dat.bz2 и разархивировать в нужную папку.
Ниже показано два варианта работы признака, самостоятельный и с каскадом Хаара в качестве детектора лица.
<?xml version="1.0" ?>
<AttributeLib>
    <Attribute Name="HaarFace" Type="HaarCascade" Cascade="cascades/mallick_haarcascade_frontalface_default.xml"/>
    <Attribute Name="DlibFace" Type="FaceDlib" Probability="0.4" base_file_path="face_recognition/base_faces.db" base_dir_path="face_recognition/base_faces/" sp_path="face_recognition/shape_predictor_5_face_landmarks.dat" net_path="face_recognition/dlib_face_recognition_resnet_model_v1.dat"/>
    
</AttributeLib>
<SimpleObjectBase>       
    
    <SimpleObject Name="FaceRecognition1" ID="12">                      
        <Attribute Type="Detect">DlibFace</Attribute>        
    </SimpleObject>
    
    <SimpleObject Name="FaceRecognition2" ID="13">              
        <Attribute Type="Detect">HaarFace</Attribute>        
        <Attribute Type="Extract">DlibFace</Attribute>            
    </SimpleObject>
    
</SimpleObjectBase>
 
 Как можно наблюдать признак добавляет распознанного лица. В случае когда с заданным порогом нет подходящего лица, то добавляется лейбл Unknown и вклад признака становится 0.
В качестве опорного изображения использовалось следующее с именем Moscowsky.jpg которое было подано с лицами 8 других человек.
Как можно наблюдать признак добавляет распознанного лица. В случае когда с заданным порогом нет подходящего лица, то добавляется лейбл Unknown и вклад признака становится 0.
В качестве опорного изображения использовалось следующее с именем Moscowsky.jpg которое было подано с лицами 8 других человек.
 
              - ROS-интерфейс
- Взаимодействие посредством конфигурационного файла
- Установка
- Руководства
- Проблемы
- Разработка