-
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 других человек.

- ROS-интерфейс
- Взаимодействие посредством конфигурационного файла
- Установка
- Руководства
- Проблемы
- Разработка