Pull to refresh

Как работает 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/

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.