Как стать автором
Поиск
Написать публикацию
Обновить

Как работает FACE ID. Сделаем за 2 минуты

Я часто слышу много информации о Face ID и искусственном интеллекте.
Интересно, как это работает на моем телефоне. Думаю, как мне самому сделать эту фичу.
Что, если мы попытаемся создать какой-то хеш из изображения. Если хеш слишком длинный, мы можем сократить его с помощью md5. Поскольку сумма md5 мала, у нас может быть только 32 символа.
Если мы сделаем 32 изображения вашего лица в разных положениях, этого достаточно, чтобы лицо получилось во всех положениях.


Капаясь в недрах NPM, я нашел интересный пакет: https://www.npmjs.com/package/image-hash.

Этот пакет может сжимать изображение в строку нужного размера.
Тестируя пакет, я решил, что 8 символов достаточно для создания общей группы хешей.

Захожу в Google и набираю «Сделать фото онлайн».
Первая позиция, и я нашел https://www.pixect.com/

Для большей уверенности я сделал 17 фотографий. Чтобы сделать этот квест быстрее, я решил назвать картинки от 1.jpg, 2.jpg до 17.jpg.

Создадим директорию под наши тесты, а в директории создадим файл faceid.js.
Добавим нужные пакеты.

npm init && npm install lodash image-hash

Открываем faceid.js и пишем код

const _ = require('lodash/array')
const { imageHash }= require('image-hash');

async function getUniqHashes(amount_images) {
    var hashes = [];
    for(i = 1; i <=amount_images; i++) {
		await new Promise((resolve, reject) => {
	    imageHash(`/Users/my_user/Downloads/${i}.jpg`, 8, true, (error, data) => { // repleace the path !!!
			if (error) return reject(error);
				hashes.push(data);
				resolve();
    	});
    	    
			})
    }
    console.log(hashes.length, 'Total hashes. ', _.uniq(hashes).length,' uniq hashes');
}

getUniqHasnode(17);

Сохраните код в faceid.js и исполните

node faceid.js

Я получил результаты:

17 Total hashes. 9 uniq hashes.

Прекрасно! 9 уникальных хэшей из 17. Уникальные хэши образуют Face ID.

Но сделать 17 фото это очень сложно.
Да, теперь мы можем попробовать использовать запись видео. Я считаю, что 10-20 секунд достаточно, чтобы собрать необходимый набор изображений. Сохраните видео и извлеките оттуда все изображения. Мы можем хранить копию хэшей в key-value хранилище и сразу же сопоставлять ключи.

Никакого искусственного интеллекта нет. Простое дело логики.

Вот кстати фоточки которые я сделал.

Понравилась статья? Подписывайтесь на мой телеграм канал:

https://t.me/itsitdude

Мой LinkedIn: https://www.linkedin.com/in/chukhlov/

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.