Как создать приложение с Kairos Facial Recognition API в Javascript
Изучив более 30 API-интерфейсов, мы пришли к выводу, что это лучшие API-интерфейсы для обнаружения и распознавания лиц:
- API распознавания лиц Kaiors
- API распознавания лиц Animetrics
- API Лямбда Лабс
- API распознавания лиц Inferdo
- API распознавания лиц Luxand.cloud
- API распознавания лиц EyeRecognize
- API распознавания лиц Face++
- Распознавание лиц Macgyver с API глубокого обучения
- API компьютерного зрения Microsoft
- API для распознавания лиц BetaFace
Кайрос 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, и я надеюсь, что пример приложения показал вам, как сделать что-то еще лучше.
Помните, что все еще существует много этических проблем, связанных с распознаванием лиц, и их следует учитывать, прежде чем создавать что-то, что может поставить под угрозу чью-то безопасность.
При этом я надеюсь, что вы нашли эту статью полезной и оставьте комментарий или вопрос, если хотите!
Welcome
Kairos is the open-source project that simplifies Edge, cloud, and bare metal OS lifecycle management. With a unified Cloud Native API, Kairos is community-driven, open source, and distro agnostic.
Our key features include:
- Immutability: ensure your infrastructure stays consistent with atomic upgrades
- Security: protect your cluster from vulnerabilities and attacks with a read-only system
- Container-based: manage your nodes as apps in containers for maximum flexibility and portability
- P2P Mesh: self-coordinated, automated, no interaction Kubernetes deployments with P2P
- Meta-Distribution, distro agnostic
In this documentation, you will find everything you need to know about Kairos, from installation and configuration, to examples and advanced features.
To get started with Kairos, follow the instructions in the quickstart guide. Then, check out the examples to see how Kairos can be used in real-world scenarios.
For more information, please refer to this documentation. If you have any questions or feedback, feel free to open an issue or join our community forum.
Note
You can also find some good resources on the Media Section
What is Kairos ?
Kairos is a cloud-native meta-Linux distribution that runs on Kubernetes and brings the power of the public cloud to your on-premises environment. With Kairos, you can build your own cloud with complete control and no vendor lock-in.
Here are a few reasons why you should try Kairos:
- Build your own cloud on-premises with complete control and no vendor lock-in
- Provision nodes with your own image or use Kairos releases for added flexibility
- Use Kairos for a wide range of use cases, from Kubernetes applications to appliances and more
- Simple and streamlined day-2 operations (e.g. node upgrades)
What I can do with it ?
With Kairos, you can easily spin up a Kubernetes cluster with the Linux distribution of your choice, and manage the entire cluster lifecycle with Kubernetes. Try Kairos today and experience the benefits of a unified, cloud-native approach to OS management.
With Kairos, you can:
- Spin up a Kubernetes cluster with any Linux distribution in just a few clicks
- Create an immutable infrastructure that stays consistent and free of drift with atomic upgrades
- Manage your cluster’s entire lifecycle with Kubernetes, from building to upgrading
- Automatically create multi-node, single clusters that spans across regions for maximum flexibility and scalability
Try Kairos today and experience the benefits of a unified, cloud-native approach to OS management. Say goodbye to the hassle of managing multiple systems, and hello to a more streamlined and efficient way of working.
Features
- Easily create multi-node Kubernetes clusters with K3s, and enjoy all of K3s’s features
- Upgrade manually via CLI or with Kubernetes, and use container registries for distribution upgrades
- Enjoy the benefits of an immutable distribution that stays configured to your needs
- Configure nodes with a single cloud-init config file for added simplicity
- Upgrade even in airgap environments with in-cluster container registries
- Extend your image at runtime or build time with Kubernetes Native APIs
- Coming soon: CAPI support with full device lifecycle management and more
- Create private virtual network segments with a full-mesh P2P hybrid VPN network that can stretch up to 10000 km
More than a Linux distribution
Kairos is more than just an ISO, qcow2, or Netboot artifact. It allows you to turn any Linux distribution into a uniform and compliant distro with an immutable design. This means that any distro “converted” with Kairos will share the same common feature set and can be managed in the same way using Kubernetes Native API components. Kairos treats all OSes homogeneously and upgrades are distributed via container registries. Installations mediums and other assets required for booting bare metal or edge devices are built dynamically by Kairos’ Kubernetes Native API components.
Goals
The Kairos ultimate goal is to bridge the gap between Cloud and Edge by creating a smooth user experience. There are several areas in the ecosystem that can be improved for edge deployments to make it in pair with the cloud.
The Kairos project encompasses all the tools and architectural pieces needed to fill those gaps. This spans between providing Kubernetes Native API components to assemble OSes, deliver upgrades, and control nodes after deployment.
Kairos is distro-agnostic, and embraces openness: The user can provide their own underlying base image, and Kairos onboards it and takes it over to make it Cloud Native, immutable that plugs into an already rich ecosystem by leveraging containers as distribution medium.
Contribute
Kairos is an open source project, and any contribution is more than welcome! The project is big and narrows to various degrees of complexity and problem space. Feel free to join our chat, discuss in our forums and join us in the Office hours. Check out the contribution guidelines to see how to get started and our governance.
We have an open roadmap, so you can always have a look on what’s going on, and actively contribute to it.
Community
You can find us at:
- #Kairos-io at matrix.org
- IRC #kairos in libera.chat
- GitHub Discussions
Project Office Hours
Project Office Hours is an opportunity for attendees to meet the maintainers of the project, learn more about the project, ask questions, learn about new features and upcoming updates.
Office hours are happening weekly on Wednesday — 5:30 – 6:00pm CEST. Meeting link
Besides, we have monthly meetup to participate actively into the roadmap planning and presentation which takes part during the office hours:
Roadmap planning
We will discuss on agenda items and groom issues, where we plan where they fall into the release timeline.
Occurring: Monthly on the first Wednesday — 5:30 – 6:30pm CEST.
Roadmap presentation
We will discuss the items of the roadmaps and the expected features on the next releases
Occurring: Monthly on the second Wednesday — 5:30pm CEST.
Alternatives
There are other projects that are similar to Kairos which are great and worth to mention, and actually Kairos took to some degree inspiration from. However, Kairos have different goals and takes completely unique approaches to the underlying system, upgrade, and node lifecycle management.
Development
Building Kairos
Requirements: Needs only Docker.
Run ./earthly.sh +all —FLAVOR=opensuse , should produce a Docker image along with a working ISO.
What’s next?
See the quickstart to install Kairos on a VM and create a Kubernetes cluster!
Getting Started
Getting started with Kairos
Installation
Kairos Installation reference
При подготовке материала использовались источники:
https://questu.ru/articles/120717/
https://kairos.io/docs/