UI.Controls/FaceRecognition
Компонент FaceRecognition используется для работы с решением распознавания лиц, он позволяет создавать новые записи по пользователям, распознавать лица, получать данные от сервера распознавания.
События:
.busy - событие, вызываемое в случае недоступности камеры для взаимодействия с компонентом, например, в случае использовании камеры другими компонентами или сервисами.
Пример использования:
FaceRecognition faceRec
.busy: ()->{
console.log("Камера занята, подождите и попробуйте еще.");
}
.ready - событие, вызываемое в случае готовности камеры к работе после того, как камера освободилась от предыдущего запроса, например, после распознавания лица.
Пример использования:
FaceRecognition faceRec
.ready: ()->{
console.log("Камера готова к использованию.");
}
.badFace - событие, вызываемое если локальный модуль распознавания не определил на полученном изображении лица, например, в случае размытого фото из-за резкого движения головой или если лицо не попало в объектив камеры.
В аргумент "err" записывается строка с сообщением ошибки.
Пример использования:
FaceRecognition faceRec
.badFace: (err)->{
console.log(err); // Выводит ошибку.
}
.trySnapshot - событие, вызываемое сразу после отправки запроса на произведение снимка, например, после вызова методов createPerson() или recognizePerson().
Пример использования:
FaceRecognition faceRec
.trySnapshot: ()->{
console.log("Делаем снимок.");
}
.snapshotTaken - событие, вызываемое сразу после успешного производства снимка.
Пример использования:
FaceRecognition faceRec
.snapshotTaken: ()->{
console.log("Снимок сделан успешно.");
}
.personRecognized - событие, вызываемое после ответа сервера об успешном распознавании лица.
Внимание, событие об успешном распознавании вызывается даже в случае, если схожесть меньше, чем требуется для авторизации или в том случае, если такого лица в базе нет (схожесть близкая к 0).
В аргумент "person" записывается информация о максимально схожем лице в виде объекта с информацией о персоне следующего вида:
{
// ID учетной записи.
id: "c170bd28-4f36-41b2-b2f8-79f75b04de69",
// Переданные при регистрации данные.
name: "ФИО",
// Привязанная к учетной записи фотография в формате IMAGE/JPEG;base64.
photo: "data:IMAGE/JPEG;base64...",
// Процент совпадения от 0 до 1.
similarity: 0.9997082353
}
Пример использования:
FaceRecognition faceRec
.personRecognized: (person)->{
console.log("Успешное распознание.");
}
Методы:
.recognizePerson() - метод, который делает снимок и отправляет на сервер для распознавания. Получение ответа происходит через подписку на событие .personRecognized.
createPerson( String ) - метод, который делает снимок и отправляет его с запросом на создание новой записи в базе данных на сервер распознавания.
Аргумент "String" содержит себе строку для поля "name" в базе данных.
Примеры использования методов:
FaceRecognition faceRec
// В случае распознания лица в логах выводится сообщение "Здравствуйте Иванов Иван Иванович".
.personRecognized: ( person )->{ // объект персоны: id, name, photo, similarity
console.log("Здравствуйте ", person.name);
}
// Кнопка "Найти" в правом нижнем углу экрана вызывает метод recognizePerson().
Button next: Найти
.click: ()->{
faceRec.recognizePerson();
return false;
}
// Кнопка "Сохранить" в левом нижнем углу экрана, вызывает метод createPerson( name ), принимает аргумент в виде строки для поля name записи в базу данных.
Button back: Сохранить
.click: ()->{
faceRec.createPerson( 'Иванов Иван Иванович' );
return false;
}