У різних галузях, таких як фінансові послуги, телекомунікації та охорона здоров’я, клієнти використовують процес цифрової ідентифікації, який зазвичай включає кілька кроків для перевірки кінцевих користувачів під час онлайн-реєстрації або посиленої автентифікації. Прикладом одного кроку, який можна використати, є пошук обличчя, який може допомогти визначити, чи збігається обличчя нового кінцевого користувача з обличчям, пов’язаним із існуючим обліковим записом.
Побудова точної системи пошуку облич складається з кількох кроків. Система повинна мати можливість виявляти людські обличчя на зображеннях, витягувати обличчя у векторні представлення, зберігати вектори облич у базі даних і порівнювати нові обличчя з наявними записами. Amazon Rekognition полегшує це, надаючи вам попередньо навчені моделі, які викликаються через прості виклики API.
Amazon Rekognition дозволяє досягти дуже високої точності пошуку обличчя за допомогою одного зображення обличчя. У деяких випадках ви можете використовувати кілька зображень обличчя однієї людини, щоб створити користувацькі вектори та ще більше підвищити точність. Це особливо корисно, коли зображення мають різне освітлення, пози та вигляд.
У цій публікації ми демонструємо, як використовувати API пошуку облич Amazon Rekognition із векторами користувачів, щоб підвищити оцінку схожості для справжніх збігів і зменшити оцінку схожості для справжніх невідповідностей.
Ми порівнюємо результати виконання зіставлення облич з векторами користувача та без них.
Зіставлення обличчя Amazon Rekognition
Зіставлення облич Amazon Rekognition дає змогу вимірювати подібність вектора обличчя, отриманого з одного зображення, до вектора обличчя, витягнутого з іншого зображення. Кажуть, що пара зображень обличчя є a справжній збіг якщо обидва зображення містять обличчя однієї людини, і a справжній невідповідність інакше. Amazon Rekognition повертає оцінку схожості вихідного та цільового облич. Мінімальна оцінка подібності становить 0, тобто дуже мала схожість, а максимальна — 100.
Для порівняння вихідного обличчя з колекцією цільових облич (відповідність 1:N) Amazon Rekognition дозволяє створити об’єкт Collection і заповнити його обличчями із зображень за допомогою викликів API.
Під час додавання обличчя до колекції Amazon Rekognition зберігає не фактичне зображення обличчя, а вектор обличчя, математичне представлення обличчя. З SearchFaces API, ви можете порівняти вихідне обличчя з однією чи кількома колекціями цільових облич.
У червні 2023, AWS запустила вектори користувача, нову можливість, яка значно покращує точність пошуку облич за допомогою кількох зображень обличчя користувача. Тепер ви можете створювати вектори користувачів, які об’єднують кілька векторів обличчя одного користувача. Вектори користувача пропонують вищу точність пошуку обличчя з більш надійними зображеннями, оскільки вони містять різні ступені освітлення, різкості, пози, зовнішнього вигляду тощо. Це покращує точність порівняно з пошуком за окремими векторами обличчя.
У наступних розділах ми описуємо процес використання векторів користувача Amazon Rekognition. Ми допоможемо вам створити колекцію, зберегти вектори облич у цій колекції, об’єднати ці вектори облич у вектори користувача, а потім порівняти результати пошуку з цими індивідуальними векторами облич і векторами користувача.
Огляд рішення
Для цього рішення ми використовуємо колекцію користувачів Amazon Rekognition, кожна зі своїми пов’язаними індексованими векторами облич із кількох різних зображень облич для кожного користувача.
Давайте розглянемо робочий процес для створення колекції з користувачами та обличчями:
- Створіть колекцію Amazon Rekognition.
- Для кожного користувача створіть користувача в колекції.
- Для кожного зображення користувача додайте обличчя до колекції (IndexFaces, який повертає ідентифікатор обличчя, що відповідає кожному вектору обличчя).
- Пов’яжіть усі проіндексовані ідентифікатори обличчя з користувачем (це необхідно для векторів користувача).
Потім ми порівняємо такі робочі процеси:
Пошук за новим заданим вхідним зображенням на окремих векторах обличчя в нашій колекції:
- Отримати всі обличчя із зображення (DetectFaces).
- Для кожного обличчя порівняйте з окремими обличчями в нашій колекції (Пошук облич за зображенням).
Пошук за новим заданим вхідним зображенням у векторах користувача в нашій колекції:
- Отримати всі обличчя із зображення (DetectFaces).
- Для кожного обличчя порівняйте з вектором користувача (SearchUsersByImage).
Тепер опишемо рішення докладніше.
Передумови
Додайте наступну політику до своєї Управління ідентифікацією та доступом AWS (IAM) користувач або роль. Політика надає вам дозвіл на відповідні API Amazon Rekognition і дозволяє доступ до Служба простого зберігання Amazon (Amazon S3) відро для зберігання зображень:
Створіть колекцію Amazon Rekognition і додайте користувачів і обличчя
Спочатку ми створюємо відро S3 для зберігання зображень користувачів. Ми організовуємо відро, створюючи папку для кожного користувача, яка містить їхні особисті зображення. наш папку зображень виглядає такою структурою:
Наше відро S3 має каталог для кожного користувача, у якому зберігаються їхні зображення. Зараз є дві папки, кожна з яких містить кілька зображень. Ви можете додати більше папок для своїх користувачів, кожна з яких містить одне або кілька зображень для індексування.
Далі ми створюємо колекцію Amazon Rekognition. Ми поставили helpers.py, який містить різні методи, які ми використовуємо:
- create_collection – Створити нову колекцію
- delete_collection – Видалити колекцію
- create_user – Створення нового користувача в колекції
- add_faces_to_collection – Додати обличчя до колекції
- associate_faces – Пов’яжіть face_ids з користувачем у колекції
- get_subdirs – Отримати всі підкаталоги під префіксом S3
- get_files – Отримати всі файли під префіксом S3
Нижче наведено приклад методу створення колекції Amazon Rekognition:
Створіть колекцію за допомогою такого коду:
Далі додамо вектори облич до нашої колекції та об’єднаємо їх у вектори користувача.
Для кожного користувача в каталозі S3 ми створюємо вектор користувача в колекції. Потім ми індексуємо зображення облич кожного користувача в колекцію як індивідуальні вектори облич, що генерує ідентифікатори облич. Нарешті, ми пов’язуємо ідентифікатори обличчя з відповідним вектором користувача.
Це створює два типи векторів у нашій колекції:
- Індивідуальні вектори обличчя
- Вектори користувача, які будуються на основі ідентифікаторів векторів обличчя, наданих за допомогою методу
associate_faces
Дивіться наступний код:
Ми використовуємо такі методи:
- get_subdirs – Повертає список усіх каталогів користувачів. У нашому прикладі значення [Swami,Werner].
- get_files – Повертає всі файли зображень під префіксом S3 для користувача.
- face_ids – Це список, що містить усі ідентифікатори обличчя, що належать користувачу. Ми використовуємо цей список, коли телефонуємо до AssociateFaces API.
Як пояснювалося раніше, ви можете додати більше користувачів, додавши для них папки (папка диктує ідентифікатор користувача) і додайте свої зображення в цю папку (упорядкування файлів не потрібне).
Тепер, коли наше середовище налаштовано та ми маємо як індивідуальні вектори облич, так і вектори користувачів, давайте порівняємо якість пошуку з кожним із них. Для цього ми використовуємо нову фотографію з кількома людьми та намагаємося зіставити їхні обличчя з нашою колекцією, спочатку з індивідуальними векторами облич, а потім із векторами користувачів.
Пошук обличчя за зображенням у колекції окремих векторів обличчя
Для пошуку за нашими індивідуальними векторами обличчя ми використовуємо Amazon Rekognition Пошук облич за зображенням API. Ця функція використовує вихідне зображення обличчя для пошуку за окремими векторами обличчя в нашій колекції та повертає обличчя, які відповідають визначеному порогу оцінки подібності.
Важливим моментом є те, що SearchFacesByImage
API працюватиме лише з найбільшим обличчям, виявленим на зображенні. Якщо наявні кілька облич, потрібно обрізати кожне окреме обличчя та окремо передати його методу для ідентифікації.
Для вилучення деталей облич із зображення (наприклад, їх розташування на зображенні) ми використовуємо Amazon Rekognition DetectFaces API.
Наступні виявити_обличчя_на_зображенні метод визначає обличчя на зображенні. Для кожного обличчя він виконує такі дії:
- Надрукуйте розташування обмежувальної рамки
- Обріжте обличчя із зображення та перевірте, чи існує таке обличчя в колекції, і надрукуйте користувача або «Невідомий»
- Роздрукуйте оцінку подібності
Приклад коду Python використовує Подушка бібліотека для виконання маніпуляцій із зображеннями (таких як друк, малювання та кадрування).
Ми використовуємо порогове значення оцінки подібності 99%, що є загальним параметром для випадків використання підтвердження особи.
Запустіть наступний код:
file_key
це ключ об’єкта S3, який ми хочемо порівняти з нашою колекцією. Ми надали приклад зображення (photo.jpeg
) у папці зображень.
На наступному зображенні показано наші результати.
Використовуючи поріг у 99%, було ідентифіковано лише одну особу. Доктор Вернер Фогельс був позначений як Невідомий. Якщо ми запустимо той самий код, використовуючи нижнє порогове значення 90 (встановлене порогове значення=90), ми отримаємо такі результати.
Тепер ми бачимо, що обличчя доктора Вернера Фогеля має показник схожості 96.86%. Далі перевіримо, чи можемо ми отримати оцінку схожості вище визначеного порогу за допомогою векторів користувача.
Пошук обличчя зображення проти колекції векторів користувача
Для пошуку за векторами наших користувачів ми використовуємо Amazon Rekognition SearchUsersByImage API. Ця функція використовує вихідне зображення обличчя для пошуку за векторами користувачів у нашій колекції та повертає користувачів, які відповідають нашому визначеному порогу подібності.
Те саме міркування актуальне і тут – SearchUsersByImage
API працюватиме лише з найбільшим обличчям, виявленим на зображенні. Якщо присутні кілька облич, вам потрібно обрізати кожне окреме обличчя та передати його окремо в метод ідентифікації.
Для вилучення деталей облич із зображення (наприклад, їх розташування на зображенні) ми використовуємо Amazon Rekognition DetectFaces API.
Наступні виявити_користувачів_в_зображенні метод визначає обличчя на зображенні. Для кожного обличчя він виконує такі дії:
- Надрукуйте розташування обмежувальної рамки
- Обріжте обличчя із зображення та перевірте, чи існує таке обличчя користувача в нашій колекції, і надрукуйте користувача або «Невідомий»
- Роздрукуйте оцінку подібності
Дивіться наступний код:
Функція повертає змінене зображення з результатами, які можна зберегти в Amazon S3 або роздрукувати. Функція також виводить на термінал статистику про приблизний вік облич.
Запустіть наступний код:
На наступному зображенні показано наші результати.
Користувачів, які є в нашій колекції, було правильно ідентифіковано з високою схожістю (понад 99%).
Ми змогли збільшити оцінку схожості, використовуючи три вектори обличчя на вектор користувача. Оскільки ми збільшуємо кількість використаних векторів обличчя, ми очікуємо, що показник схожості для справжніх збігів також зросте. Ви можете використовувати до 100 векторів обличчя для кожного вектора користувача.
Приклад наскрізного коду можна знайти в GitHub сховище. Він містить детальну інформацію Блокнот Юпітера на якому можна бігати Студія Amazon SageMaker (або інші альтернативи).
Прибирати
Щоб видалити колекцію, використовуйте такий код:
Висновок
У цій публікації ми показали, як використовувати вектори користувачів Amazon Rekognition для реалізації пошуку облич за колекцією облич користувачів. Ми продемонстрували, як підвищити точність пошуку обличчя за допомогою кількох зображень обличчя на користувача, і порівняли це з окремими векторами обличчя. Крім того, ми описали, як ви можете використовувати різні API Amazon Rekognition для виявлення облич. Наданий приклад коду служить міцною основою для побудови функціональної системи пошуку обличчя.
Додаткову інформацію про вектори користувачів Amazon Rekognition див Пошук облич у колекції. Якщо ви новачок у Amazon Rekognition, ви можете скористатися нашим безкоштовним рівнем, який триває 12 місяців і включає обробку 5,000 зображень на місяць і зберігання 1,000 векторних об’єктів користувача на місяць.
Про авторів
Арік Порат є старшим архітектором рішень для стартапів у Amazon Web Services. Він працює зі стартапами, щоб допомогти їм створити та розробити свої рішення в хмарі, і захоплюється машинним навчанням і рішеннями на основі контейнерів. У вільний час Арік любить грати в шахи та відеоігри.
Еліран Ефрон є архітектором рішень для стартапів у Amazon Web Services. Еліран — ентузіаст даних і обчислень, який допомагає стартапам розробляти архітектури їхніх систем. У вільний час Еліран любить будувати та брати участь у перегонах Touring та створювати пристрої IoT.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/improve-accuracy-of-amazon-rekognition-face-search-with-user-vectors/
- : має
- :є
- $UP
- 000
- 1
- 10
- 100
- 12
- 12 місяців
- 17
- 2023
- 28
- 30
- 7
- 9
- a
- Здатний
- МЕНЮ
- вище
- доступ
- рахунки
- точність
- точний
- Achieve
- дію
- дії
- фактичний
- додавати
- додати
- Додатково
- проти
- Століття
- сукупність
- агрегуючий
- ВСІ
- дозволяти
- дозволяє
- вже
- Також
- альтернативи
- Amazon
- Amazon Rekognition
- Amazon Web Services
- an
- та
- Інший
- API
- Інтерфейси
- зовнішній вигляд
- виступи
- відповідний
- архітектури
- ЕСТЬ
- масив
- AS
- допомагати
- Юрист
- асоційований
- At
- спроба
- Authentication
- AWS
- заснований
- BE
- оскільки
- належність
- між
- тіло
- обидва
- Box
- коробки
- будувати
- побудований
- але
- by
- обчислювати
- call
- покликання
- Виклики
- CAN
- Може отримати
- можливості
- автомобілів
- випадків
- перевірка
- Chess
- клієнт
- хмара
- код
- збір
- Колекції
- загальний
- порівняти
- порівняний
- порівняння
- обчислення
- розгляду
- будівництво
- містити
- містить
- конвертувати
- правильно
- Відповідний
- створювати
- створює
- створення
- урожай
- В даний час
- Клієнти
- дані
- Database
- зменшити
- певний
- демонструвати
- продемонстрований
- описувати
- описаний
- дизайн
- проектування
- докладно
- деталі
- виявляти
- виявлено
- Визначати
- прилади
- диктує
- різний
- цифровий
- цифрова ідентифікація
- каталоги
- каталог
- дисплей
- do
- Ні
- справи
- зроблений
- dr
- малювати
- малювання
- під час
- кожен
- Раніше
- ефект
- без зусиль
- ще
- дозволяє
- кінець в кінець
- ентузіаст
- Навколишнє середовище
- особливо
- оцінка
- Навіть
- приклад
- Крім
- існувати
- існуючий
- існує
- виходи
- очікувати
- пояснені
- витяг
- Face
- особи
- Файли
- фінансовий
- фінансові послуги
- знайти
- Перший
- позначений прапором
- Поплавок
- після
- для
- формат
- знайдений
- фонд
- Безкоштовна
- від
- функція
- функціональний
- далі
- Games
- генерує
- отримати
- даний
- дає
- гранти
- керівництво
- Мати
- he
- охорона здоров'я
- висота
- допомога
- помічників
- корисний
- тут
- Високий
- вище
- його
- Як
- How To
- HTML
- HTTP
- HTTPS
- людина
- ID
- Ідентифікація
- ідентифікований
- Особистість
- ідентичність Перевірка
- ідентифікатори
- if
- зображення
- зображень
- здійснювати
- імпорт
- важливо
- удосконалювати
- поліпшується
- in
- includes
- Augmenter
- індекс
- індексований
- індивідуальний
- промисловості
- інформація
- вхід
- в
- викликали
- включає в себе
- КАТО
- прилади іоту
- IT
- ЙОГО
- JPEG
- червень
- ключ
- найбільших
- нарешті
- запущений
- вивчення
- залишити
- бібліотека
- Освітлення
- як
- Сподобалося
- список
- трохи
- загрузка
- розташування
- подивитися
- ВИГЛЯДИ
- низький
- знизити
- машина
- навчання за допомогою машини
- РОБОТИ
- маніпуляції
- матч
- сірники
- узгодження
- математики
- математичний
- максимальний
- вимір
- метод
- методика
- мінімальний
- Моделі
- модифікований
- місяць
- місяців
- більше
- множинний
- повинен
- ім'я
- необхідно
- Необхідність
- Нові
- наступний
- немає
- зараз
- номер
- об'єкт
- об'єкти
- of
- пропонувати
- Старий
- on
- На борту
- ONE
- онлайн
- тільки
- працювати
- or
- Інше
- інакше
- наші
- план
- виходи
- над
- пара
- проходити
- пристрасний
- Люди
- для
- виконанні
- виступає
- дозвіл
- людина
- персонал
- фото
- plato
- Інформація про дані Платона
- PlatoData
- Play
- точок
- політика
- поза
- позах
- пошта
- представити
- представлений
- друк
- друк
- процес
- обробка
- за умови
- Python
- якість
- Гонки
- скачки
- швидше
- послатися
- доречний
- подання
- вимагається
- ресурс
- відповідь
- результати
- повертати
- Умови повернення
- міцний
- Роль
- прогін
- мудрець
- Зазначений
- то ж
- зберігаються
- рахунок
- Пошук
- Грати короля карти - безкоштовно Nijumi логічна гра гри
- розділам
- побачити
- старший
- служить
- Послуги
- Сесія
- комплект
- установка
- кілька
- Шоу
- істотно
- простий
- один
- Розмір
- solid
- рішення
- Рішення
- деякі
- Source
- Стартапи
- Заява
- статистика
- Статус
- Крок
- заходи
- зберігання
- зберігати
- магазинів
- зберігання
- потік
- структура
- такі
- поставляється
- система
- Мета
- зв'язок
- термінал
- Що
- Команда
- Джерело
- їх
- Їх
- потім
- Там.
- вони
- це
- ті
- три
- поріг
- через
- ярус
- час
- до
- топ
- гастролі
- правда
- намагатися
- два
- Типи
- при
- невідомий
- використання
- використовуваний
- користувач
- користувачі
- використовує
- використання
- зазвичай
- значення
- варіації
- різний
- різний
- перевірка
- перевірити
- версія
- дуже
- через
- Відео
- відеоігри
- хотіти
- було
- we
- Web
- веб-сервіси
- були
- коли
- Чи
- який
- ширина
- волі
- з
- без
- робочий
- Робочі процеси
- працює
- б
- років
- Ти
- вашу
- зефірнет