Прочитайте полную статью здесь (и посмотрите полные фрагменты кода).

TL;DR — Подключитесь к Kairos API здесь

По теме: Как создать приложение/веб-сайт для распознавания лиц с помощью Python и Flask

Что такое лучший API распознавания лиц?

Изучив более 30 API-интерфейсов, мы пришли к выводу, что это лучшие API-интерфейсы для обнаружения и распознавания лиц:

Читать весь пост здесь.

Кайрос API

Kairos – ведущая компания, занимающаяся ИИ для распознавания лиц, которая придерживается этического подхода к идентификации, отражающего разнообразие наших сообществ по всему миру. Благодаря компьютерному зрению и глубокому обучению мы распознаем лица на видео, фотографиях и в реальном мире — наша инновационная платформа API упрощает интеграцию идентификации человека в свое программное обеспечение разработчиками и компаниями. Мы помогаем нашим клиентам бороться с мошенничеством с идентификацией, соблюдать нормативные требования и обеспечивать более выгодное обслуживание клиентов. — Обзор распознавания лиц Kairos

Используя Kairos API, мы избавляемся от необходимости создавать собственную базу данных лиц и разбираться в сложных статистических алгоритмах. Это может сэкономить компании много времени и денег. Кроме того, Kairos прост, а девять конечных точек, перечисленных на панели инструментов легко понять.

С Kairos изображения, содержащие лица (которые вы надеетесь идентифицировать позже), помещаются в галереи. Например, если бы у меня было три фотографии трех разных друзей, я бы добавил каждую из них в галерею «Друзья». Позже я мог использовать разные конечные точки («/узнать», «/проверить»), чтобы идентифицировать своих друзей на групповых фотографиях или разных отдельных фотографиях. Я мог бы проверить все свои галереи или отправить изображение, и API искал бы определенную галерею.

Kairos принимает только несколько параметров на своих конечных точках:

  • "изображение"
  • «галерея_имя»
  • «subject_id»
  • «селектор»

Это означает, что мы можем быстро создавать несложные HTTP-запросы.

Кроме того, параметр «изображение» принимает общедоступный URL-адрес, загрузку файла или фотографию в кодировке base64.

Я надеюсь показать вам, как просто создавать галереи, загружать изображения и распознавать изображения в приведенном ниже примере приложения javascript. Мы создадим интерфейс ReactJS, который позволит пользователям загружать изображения либо в галерею друг, либо в галерею враг. Затем внешний интерфейс отправит данные изображения на наш бэкэнд node.js, который отправит запрос к Kairos API для обработки и вернет данные пользователю во внешнем интерфейсе. Мы зарегистрируем объекты в обеих галереях, а затем определим наших друзей и врагов на более поздних изображениях.

Как создать приложение для распознавания лиц с помощью JavaScript

Предпосылки

Чтобы завершить приложение, необходимо выполнить несколько пунктов.

Во-первых, вам понадобится Учетная запись RapidAPI. Во-вторых, после настройки учетной записи вам нужно будет подписаться на Kairos API. С базовым планом подписки вы получаете 1000 вызовов API в месяц, а после этого каждый запрос стоит 0,0001 доллара США. Этого будет достаточно для нас в этом примере. Далее убедитесь, что у вас есть:

  • Узел ›= 8.10 и npm ›= 5.6 на вашей машине
  • Некоторое знакомство с тем, как открывать и использовать инструмент командной строки
  • Интернет-соединение
  • Редактор кода (рекомендую VS Code)
  • Некоторое знакомство с Javascript, в частности с React и Node.

Я буду использовать терминал bash в macOS, но большинство команд должны быть такими же, как и в командной строке Windows. Нам также понадобится React ›=16.8.0, однако, если вы будете следовать инструкциям, мы будем загружать приемлемую версию в процессе.

Настройка проекта

Прочтите эту настройку здесь.

Настроить экспресс-сервер

Найдите код здесь.

Большая часть кода закомментирована, потому что еще не время для его использования. Блоки кода, которые закомментированы и помечены как «РАЗВЕРТЫВАНИЕ», не будут использоваться в этом приложении, но будут использоваться при развертывании на сервере. Они позволяют экспресс-приложению находить внешний интерфейс React и обслуживать статические файлы.

Пока что в этом файле мы создаем экспресс-приложение, добавляем промежуточное ПО для синтаксического анализа JSON и сообщаем приложению прослушивать запросы на порту 3001. Достаточно просто! Далее мы перейдем к интерфейсу для общей настройки и убедимся, что он может взаимодействовать с нашим сервером.

Настройка внешнего интерфейса

Почитайте об этом разделе здесь.

Ваша страница должна выглядеть так:

Построить форму ввода

Найдите код здесь.

После добавления строки условного ввода ваши формы должны выглядеть так:

Последний ввод — это ввод изображения, но он потребует немного больше работы.

Добавление изображения

Ввод изображения осуществляется в нескольких различных формах. Параметр «изображение» API Kairos принимает общедоступный URL-адрес, загрузку файла или фотографию в кодировке base64. Наша форма загрузит изображение, переведет его в base64 и отправит эту строку, или она примет строку URL и отправит ее в качестве параметра изображения.

Поэтому нам нужны два разных входа. Для этого мы создадим две вкладки в каждом столбце: одну для URL-адресов и одну для загрузки изображений. Затем мы передадим еще один параметр, указывающий, принимает ли форма «файл» или «текст».

Найдите код здесь.

Изображения теперь можно предварительно просмотреть!

Одна из последних вещей, которые необходимо реализовать, — это функция отправки, которая отправляет данные, которые мы добавили, в наш сервер. В настоящее время у нас нет настроенного маршрута на серверной части для получения данных. Тем не менее, мы все еще можем настроить функцию отправки таким образом, чтобы серверная часть получала данные.

Добавить функцию отправки

Найдите код здесь.

Построить маршрут для загрузок

Найдите код здесь.

Добавьте учетные данные RapidAPI и вызовы API в маршрут

Вернувшись на рынок RapidAPI, откройте панель управления Kairos Face Recognition. Найдите две конечные точки, которые мы будем использовать (зарегистрировать и распознать).

Обратите внимание, что заголовки одинаковы в обеих конечных точках. Кроме того, URL-адрес HTTP-запроса в основном такой же, за исключением последнего слова.

Найдите код здесь.

Мы получаем данные из внешнего интерфейса и отправляем их в Kairos API, но не отправляем обратно никакой полезной информации. Мы должны проверить объекты ответа, которые мы получаем от Кайроса.

Создание полезных ответов

Найдите код здесь.

Создайте компонент сообщения во внешнем интерфейсе

Найдите код здесь.

Пришло время добавить наши предметы и протестировать наше приложение!

Завершение формы ImageUploadForm

Последние штрихи к компоненту формы:

  • импортировать компонент сообщения
  • объявить переменную для компонента сообщения
  • установить значение переменной в функции handleSubmit, и;
  • отображать компонент сообщения, когда он имеет значение

Приведенный ниже код - это то, что должен содержать окончательный ImageUploadForm.js.

Найдите код здесь.

Контрольная работа

Время использовать наше приложение! Напомним, что мы будем создавать две галереи с помощью Kairos. Kairos сохраняет имя галереи после ее использования и создает новую галерею, если имя не использовалось. Что хорошо в этом, так это то, что нам не нужна база данных для хранения subject_ids, размеров лица или изображений: Kairos сделает это за нас.

Я собираюсь получить адреса изображений из Google, чтобы протестировать приложение, и проведу тематическое тестирование LOTR.

Во-первых, давайте добавим Голлума в галерею «врагов»:

Во-вторых, загрузите двух друзей, Арагорна и Гэндальфа:

В-третьих, проверьте галерею «враг» с другим изображением, содержащим Голлума:

В-четвертых, проверьте, может ли наше приложение распознать Гэндальфа и Арагорна на другом изображении:

Вывод

Мне было очень весело работать с этим API, и я надеюсь, что пример приложения показал вам, как сделать что-то еще лучше.

Помните, что все еще существует много этических проблем, связанных с распознаванием лиц, и их следует учитывать, прежде чем создавать что-то, что может поставить под угрозу чью-то безопасность.

При этом я надеюсь, что вы нашли эту статью полезной и оставьте комментарий или вопрос, если хотите!

Первоначально опубликовано на https://rapidapi.com 7 февраля 2020 г.