Особиста перевірка особи користувача повільно масштабується, коштує дорого та створює великі труднощі для користувачів. Технологія розпізнавання обличчя на базі машинного навчання (ML) може дозволити онлайн-підтвердження особи користувача. Amazon Rekognition пропонує попередньо навчений розпізнавання осіб можливості, які ви можете швидко додати до робочих процесів адаптації та автентифікації користувачів, щоб перевіряти ідентифікаційні дані користувачів, які підключилися до програми онлайн. Експертиза ML не потрібна. За допомогою Amazon Rekognition ви можете зареєструвати та автентифікувати користувачів за лічені секунди, виявляючи шахрайські або дублікати облікових записів. У результаті ви можете швидше розширити кількість користувачів, зменшити кількість шахрайства та знизити витрати на перевірку користувачів.
У цій публікації ми описуємо типовий робочий процес підтвердження особи та показуємо, як створити рішення для підтвердження особи за допомогою різних API Amazon Rekognition. Ми надаємо повний зразок реалізації в нашому GitHub сховище.
Процес реєстрації користувачів
На наступному малюнку показано зразок процесу реєстрації нового користувача. Типові етапи цього процесу:
- Користувач робить селфі та зображення державного документа, що засвідчує особу.
- Перевірка якості селфі зображення та за бажанням виявлення живості обличчя користувача.
- Порівняння зображення селфі із зображенням обличчя в документі, що засвідчує особу.
- Перевірка селфі з базою даних існуючих облич користувачів.
Ви можете налаштувати потік відповідно до бізнес-процесу. Він часто містить деякі або всі кроки, представлені на попередній діаграмі. Ви можете виконати всі кроки синхронно (зачекайте, поки завершиться один крок, перш ніж переходити до наступного). Крім того, ви можете виконати деякі кроки, виділені помаранчевим кольором, асинхронно (не чекайте, поки цей крок завершиться), щоб пришвидшити процес реєстрації користувача та покращити взаємодію з клієнтами. Якщо кроки не вдалися, необхідно відкотити реєстрацію користувача.
На додаток до реєстрації нового користувача, іншим поширеним процесом є вхід існуючого або повторного входу користувача. У цьому потоці виконується перевірка обличчя користувача (селфі) проти попередньо зареєстрованого обличчя. Типові етапи цього процесу включають захоплення обличчя користувача (селфі), перевірку якості зображення селфі, пошук і порівняння селфі з базою даних облич. На наступній діаграмі показано можливий потік.
Ви можете налаштувати етапи процесу відповідно до потреб свого бізнесу та включити або виключити визначення живості.
Огляд рішення
Наведена нижче довідкова архітектура показує, як ви можете використовувати Amazon Rekognition разом з іншими службами AWS для реалізації перевірки ідентичності.
Архітектура включає такі компоненти:
- Програми викликають API -шлюз Amazon направляти запити до правильного AWS Lambda функціонувати залежно від потоку користувачів. У цьому рішенні є чотири основні дії: аутентифікація, реєстрація, реєстрація за допомогою ідентифікаційної картки та оновлення.
- API Gateway використовує інтеграцію служби для запуску Функції кроку AWS швидкий кінцевий автомат, що відповідає конкретному шляху, викликаному зі шлюзу API. На кожному кроці лямбда-функції відповідають за ініціювання правильного набору викликів до та з Amazon DynamoDB та Служба простого зберігання Amazon (Amazon S3), а також відповідні API Amazon Rekognition.
- DynamoDB містить ідентифікатори обличчя (
face-id
), URI шляху S3 та унікальні ідентифікатори (наприклад, номер ідентифікатора співробітника) для кожногоface-id
. Amazon S3 зберігає всі зображення облич. - Останнім основним компонентом рішення є Amazon Rekognition. Кожен потік (автентифікація, реєстрація, реєстрація за допомогою ідентифікаційної картки та оновлення) викликає різні API Amazon Rekognition залежно від завдання.
Перш ніж розгорнути рішення, важливо знати наступні концепції та описи API:
- колекції – Amazon Rekognition зберігає інформацію про виявлені обличчя в серверних контейнерах, відомих як Колекції. Ви можете використовувати інформацію про обличчя, що зберігається в колекції, для пошуку відомих облич у зображеннях, збережених відео та потокових відео. Ви можете використовувати колекції в різних сценаріях. Наприклад, ви можете створити колекцію облич для зберігання відсканованих зображень значків за допомогою
IndexFaces
операція. Коли працівник заходить у будівлю, зображення обличчя працівника фіксується та надсилається доSearchFacesByImage
операція. Якщо відповідність обличчя дає достатньо високий бал подібності (скажімо, 99%), ви можете аутентифікувати співробітника. - API DetectFaces – Цей API виявляє обличчя на зображенні, наданому як вхідні дані, і повертає інформацію про обличчя. У робочому процесі реєстрації користувача ця операція може допомогти вам відобразити зображення перед переходом до наступного кроку. Наприклад, ви можете перевірити, чи містить фотографія обличчя, чи правильно орієнтована ідентифікована особа та чи вона не носить засоби блокування обличчя, наприклад сонцезахисні окуляри чи кепку.
- API IndexFaces – Цей API виявляє обличчя у вхідному зображенні та додає їх до вказаної колекції. Ця операція використовується для додавання екранованого зображення до колекції для майбутніх запитів.
- SearchFacesByImage API – Для даного вхідного зображення API спочатку виявляє найбільше обличчя на зображенні, а потім шукає відповідні обличчя у вказаній колекції. Операція порівнює особливості вхідної грані з рисами обличчя у вказаній колекції.
- API CompareFaces – Цей API порівнює обличчя у вихідному вхідному зображенні з кожним із 100 найбільших облич, виявлених у цільовому вхідному зображенні. Якщо вихідне зображення містить кілька облич, служба виявляє найбільше обличчя та порівнює його з кожним обличчям, виявленим на цільовому зображенні. У нашому випадку використання ми очікуємо, що вихідне і цільове зображення міститиме одне обличчя.
- API DeleteFaces – Цей API видаляє обличчя з колекції. Ви вказуєте ідентифікатор колекції та масив ідентифікаторів обличчя, які потрібно видалити.
Передумови
Перш ніж розпочати, виконайте такі умови:
- Створіть обліковий запис AWS.
- Клонуйте зразок репо на локальній машині:
Ми використовуємо тестовий клієнт у цьому сховищі для тестування різних робочих процесів.
- Встановлювати Python 3.6+ на локальній машині.
Розгорніть рішення
Виберіть відповідний AWS CloudFormation стек, щоб надати рішення у ваш обліковий запис AWS у бажаному регіоні:
Як ми обговорювали раніше, це рішення використовує API Gateway, інтегрований із Step Functions та API Amazon Rekognition для запуску робочих процесів перевірки особи. Щоб перевірити рішення, виконайте кроки в сховище коду використовувати наданий тестовий клієнт.
У наступних розділах описано різні робочі процеси, реалізовані за допомогою покрокових функцій.
Реєстрація нового користувача
На наступному зображенні показано визначення функцій кроку для реєстрації нового користувача. Кроки визначені в register_user.py
файлу.
У цьому робочому процесі викликаються три функції: виявляти обличчя, пошук обличчя та покажчики, виявляти обличчя функція викликає Amazon Rekognition DetectFaces API, щоб визначити, чи виявлено обличчя на зображенні та чи можна його використовувати. Деякі з перевірок якості включають визначення того, що на зображенні присутнє лише обличчя, переконання, що обличчя не закривають сонцезахисні окуляри чи капелюх, і підтвердження того, що обличчя не повернуто за допомогою поза вимір. Якщо зображення проходить перевірку якості, пошук обличчя функція шукає наявне збіг обличчя в колекціях Amazon Rekognition, підтверджуючи FaceMatchThreshold оцінка впевненості відповідає вашій пороговій меті. Для отримання додаткової інформації зверніться до розділу про використання пороги схожості для відповідності облич. Якщо зображення обличчя не існує в колекціях, покажчики функція викликається для індексування обличчя в колекцію. Метадані зображення обличчя зберігаються в таблиці DynamoDB, а зображення обличчя зберігаються у сегменті S3.
Щоб зареєструвати нового користувача, запустіть app.py скрипт (test-client
), виконавши такий код:
Якщо реєстрація нового користувача вдалася, інформація про атрибут зображення обличчя додається в DynamoDB.
Реєстрація нового користувача з ID-карткою
Етапи реєстрації нового користувача за допомогою ID-картки подібні до кроків реєстрації нового користувача. Наступне зображення ілюструє кроки, визначені в register_idcard.py
файлу.
Ті самі три функції, які ми використовували для реєстрації користувача (detect-faces
, search-faces
та index-faces
) викликаються для цього робочого процесу. Спочатку клієнт робить зображення свого посвідчення особи та живе зображення свого обличчя. Зображення обличчя перевіряється на відповідність нашим стандартам якості за допомогою DetectFaces
API. Якщо зображення відповідає стандартам якості, живе зображення обличчя порівнюється з обличчям в ідентифікаторі, щоб визначити, чи збігаються вони. Якщо зображення не збігаються, користувач отримує повідомлення про помилку, і процес завершується. Якщо зображення збігаються, ми перевіряємо, чи обличчя вже існує в колекціях Amazon Rekognition за допомогою SearchFacesByImage
API. Результати пошуку порівнюються з поточним зображенням обличчя користувача. Якщо користувач уже існує, він не зареєстрований. Якщо користувач не існує в колекціях, відповідні властивості витягуються з ідентифікаційної картки. Ви можете витягти пари ключ-значення з документів, що посвідчують особу, за допомогою нещодавно запущеного Текст Amazon AnalyzeID
API. Витягнуті властивості з ідентифікаційної картки об’єднуються, а обличчя користувача індексується в таблиці DynamoDB. Після того як зображення буде проіндексовано, процес реєстрації нового ідентифікатора користувача буде завершено.
Існуюча автентифікація користувача
Наступне зображення ілюструє робочий процес для автентифікації існуючого користувача. Кроки визначені в auth.py
файлу.
Цей робочий процес функції кроку викликає три функції: detect-faces
, compare-faces
та search-faces
. Після detect-faces
функція перевіряє, що зроблене зображення обличчя дійсне, compare-faces
функція перевіряє таблицю DynamoDB на наявність зображення обличчя, яке відповідає існуючому користувачеві. Якщо в DynamoDB знайдено відповідність, користувач успішно проходить автентифікацію. Якщо збіг не знайдено, search-faces
функція викликається для пошуку зображення обличчя в колекціях. Користувач перевіряється, і процес автентифікації завершується, якщо зображення його обличчя існує в колекціях. В іншому випадку користувачеві буде заборонено доступ.
Щоб перевірити автентифікацію існуючого користувача, запустіть app.py
скрипт (test-client
), запустивши такий код::
Логін існуючого користувача із запитом на оновлення фото
На наступному зображенні показано робочий процес для оновлення наявної фотографії користувача. Кроки визначені в update.py
файлу.
Цей робочий процес викликає чотири функції: detect-faces
, compare-faces
, search-faces
та index-faces
. Ці кроки схожі на кроки в існуючому робочому процесі автентифікації користувача. Після того, як користувач зробить зображення свого обличчя та перевірить якість зображення, ми перевіримо наявність відповідного зображення обличчя в DynamoDB за допомогою compare-faces
функція. Якщо збіг для користувача знайдено, його профіль користувача оновлюється, його нове зображення обличчя індексується шляхом виклику index-faces
і процес оновлення буде завершено. Крім того, якщо відповідність не знайдено, для пошуку зображення обличчя в колекціях Amazon Rekognition викликається функція search-faces. Якщо зображення обличчя знайдено в колекції, профіль користувача оновлюється, а його нове зображення обличчя індексується. Користувачеві забороняється доступ, якщо його зображення не знайдено в колекціях.
Щоб оновити фотографію наявного користувача, запустіть app.py скрипт (test-client
), виконавши такий код:
Прибирати
Щоб запобігти накопиченню додаткових витрат у вашому обліковому записі AWS, видаліть ресурси, які ви надали, перейшовши на консоль AWS CloudFormation та видаливши Riv-Prod
стек
Видалення стека не видаляє створене вами сегмент S3. Це відро зберігає всі зображення обличчя. Якщо ви вирішите видалити сегмент S3, перейдіть до консолі Amazon S3, очистіть сегмент і підтвердьте, що хочете остаточно видалити його.
Висновок
Amazon Rekognition дозволяє легко додавати аналіз зображень у ваші програми для перевірки особи, використовуючи перевірену, високомасштабовану технологію глибокого навчання, яка не вимагає досвіду машинного навчання. Надає Amazon Rekognition виявлення та порівняння обличчя можливості. З поєднанням DetectFaces, CompareFaces, IndexFaces та Пошук облич за зображенням API, ви можете реалізувати загальні потоки навколо реєстрації нових користувачів і входу існуючих користувачів.
Колекції Amazon Rekognition забезпечують метод зберігання інформації про виявлені обличчя в серверних контейнерах. Потім ви можете використовувати інформацію про обличчя, збережену в колекції, для пошуку відомих облич на зображеннях. Використовуючи колекції, вам не потрібно зберігати оригінальні фотографії після індексації облич у колекції. Колекції Amazon Rekognition не зберігають реальні зображення. Натомість базовий алгоритм виявлення виявляє обличчя на вхідному зображенні, витягує риси обличчя у вектор ознак для кожного обличчя та зберігає його в колекції.
Щоб розпочати свій шлях до підтвердження особи, відвідайте сторінку Перевірка особи за допомогою Amazon Rekognition.
Про авторів
Нейт Бахмаєр є старшим архітектором рішень AWS, який кочівно досліджує Нью-Йорк, одну хмарну інтеграцію за раз. Він спеціалізується на міграції та модернізації додатків. Крім того, Нейт навчається на денній формі навчання і має двох дітей.
Ентоні Паскуаріелло є архітектором корпоративних рішень у Нью-Йорку. Він надає технічні консультації клієнтам під час їх подорожі хмарою, особливо щодо найкращих методів безпеки. Він має ступінь магістра та бакалавра з електротехніки та комп’ютерної інженерії Бостонського університету. У вільний час він захоплюється раменом, пише нон-фікшн і займається філософією.
Лорен Малленекс є архітектором рішень із Денвера, Колорадо. Вона працює з клієнтами, щоб допомогти їм розробляти рішення на AWS. У вільний час вона любить ходити в походи та готує гавайську кухню.
Аміт Гупта є старшим архітектором рішень AI Services в AWS. Він захоплений тим, щоб надавати клієнтам добре продумані рішення для машинного навчання в масштабі.
- '
- 100
- 107
- 7
- доступ
- рахунки
- Додатковий
- AI
- Послуги ШІ
- алгоритм
- ВСІ
- Amazon
- Amazon Rekognition
- аналіз
- API
- Інтерфейси
- застосування
- архітектура
- навколо
- Authentication
- AWS
- КРАЩЕ
- передового досвіду
- Бостон
- Бостонський університет
- будувати
- Створюємо
- бізнес
- вантажі
- Перевірки
- Місто
- хмара
- код
- Колекції
- загальний
- компонент
- довіра
- Консоль
- Контейнери
- приготування
- витрати
- Поточний
- Досвід клієнтів
- Клієнти
- Database
- глибоке навчання
- Денвер
- Виявлення
- Розмір
- документація
- закінчується
- Машинобудування
- підприємство
- Рішення для підприємств
- Входить
- досвід
- Виписки
- Face
- особи
- розпізнавання осіб
- Технологія розпізнавання обличчя
- особливість
- риси
- Рисунок
- Перший
- потік
- стежити
- шахрайство
- Безкоштовна
- функція
- майбутнє
- Рости
- Високий
- Виділено
- піший туризм
- Як
- How To
- HTTPS
- Особистість
- ідентичність Перевірка
- зображення
- аналіз зображення
- індекс
- інформація
- інтеграція
- IT
- Діти
- вивчення
- місцевий
- навчання за допомогою машини
- основний
- матч
- ML
- MS
- Нью-Йорк
- Нью-Йорк
- Пропозиції
- На борту
- онлайн
- Орегон
- Інше
- філософія
- представити
- профіль
- Python
- якість
- зменшити
- Реєстрація
- ресурси
- результати
- Умови повернення
- Котити
- Маршрут
- прогін
- біг
- шкала
- Екран
- Пошук
- безпеку
- Само
- Послуги
- комплект
- простий
- Рішення
- спеціалізується
- швидкість
- стандартів
- старт
- почалася
- стан
- зберігання
- зберігати
- магазинів
- потоковий
- студент
- успішний
- Мета
- технічний
- Технологія
- тест
- Джерело
- час
- університет
- Оновити
- користувачі
- перевірка
- Відео
- Віргінія
- чекати
- в
- робочий
- працює
- лист