Создание клона Google Lens с помощью Firebase MLKit

Если вы посещали Google I / O (или смотрели ключевые выступления), вы могли заметить объявление о новом продукте в составе Firebase под названием ML Kit.

Для тех, кто пропустил основной доклад, ML Kit предоставляет API-интерфейсы, которые позволяют привнести мощные функции машинного обучения в ваше приложение, будь то для Android или iOS, независимо от того, являетесь ли вы опытным разработчиком машинного обучения или только начинаете.

Событие, хотя оно и не находится в центре внимания (благодаря Google Duplex), я лично нашел это объявление довольно интересным и определенно могу увидеть некоторые полезные варианты его использования для разработки под Android.

Эта история является первой в серии MLKit для мобильных разработчиков.

Пит-стопы серии

Поэтому я решил поиграть с ним и создал небольшое приложение, которое пытается имитировать Google Lens (почти)!

Вот несколько скриншотов приложения.
Как видите, он пытается идентифицировать объекты по предоставленному изображению.

Аккуратно, не правда ли?
Кроме того, вы также можете использовать это для обнаружения человеческих эмоций, таких как счастье, грусть, злость и т. д., что даже лучше.

Хватит болтать, покажи код !!!!!

Хорошо, хорошо, но давайте сначала быстро рассмотрим некоторые основы.

Всего в ML Kit 5 API, каждый из которых:

  1. Распознавание текста
  2. Распознавание лиц
  3. Сканирование штрих-кода
  4. Маркировка изображений (та, которую мы собираемся использовать)
  5. Признание ориентира

Хотя у каждого из API есть свои варианты использования, в этой статье мы будем использовать API маркировки изображений.
Этот API предоставит нам список объектов, которые были распознаны по изображению: люди, вещи, места, действия и скоро.

Есть еще два подтипа этого API, первый - это API на устройстве, который запускает эту маркировку на самом устройстве. Это бесплатно и охватывает более 400 различных этикеток на изображении.

Во-вторых, это Cloud API, который работает в Google Cloud и охватывает более 10 000 различных ярлыков.
Он платный, но первые 1000 запросов в месяц бесплатны.

В этой статье мы рассмотрим API на устройстве, поскольку он не требует настройки вашего биллинга для Google Cloud.
Но пример кода, который я предоставлю, содержит код для них обоих.

Итак, без лишних слов, приступим.

  • Настройте Firebase в своем проекте и добавьте зависимость видения
    Это очень просто, просто настройте Firebase в своем проекте. Вы можете найти хорошее руководство здесь.
    Чтобы использовать этот API, вам также необходимо добавить соответствующие зависимости.
  • Реализация функций камеры в вашем приложении
    Vision API требует изображения для извлечения данных, поэтому либо создайте приложение, которое позволяет загружать изображения из галереи, либо создайте приложение, использующее камеру API-интерфейсы, позволяющие щелкнуть изображение и использовать его вместо этого.
    Я обнаружил, что эта библиотека довольно удобна и проста в использовании вместо API-интерфейсов камеры фреймворка, так что в конечном итоге я использую именно ее.
  • Используйте растровое изображение для вызова API
    . Если вы использовали указанную выше библиотеку, она напрямую предоставляет вам растровое изображение захваченного изображения, которое вы можете использовать для вызова API.

В приведенном выше фрагменте кода мы сначала создаем FirebaseVisionImage из растрового изображения.
Затем мы создаем экземпляр FirebaseVisionLabelDetector, который проходит через FirebaseVisionImage и находит соответствующие FirebaseVisionLabels (объекты), которые он замечает в предоставленном изображении.

Наконец, мы передаем Image методу detectInImage () и позволяем детектору пометить изображение.

У нас есть обратный вызов успешный и неудачный, который содержит список меток и исключение соответственно.
Вы можете продолжить и просмотреть список, чтобы получить Имя, Уверенность и идентификатор объекта для каждого ярлыка, обнаруженного на изображении.

Как упоминалось ранее, этот API также можно использовать для обнаружения человеческих эмоций на изображении, что можно увидеть на скриншотах ниже:

Код для Cloud API почти очень похож на код, который мы написали для On Device API, с той лишь разницей, что тип обнаружения r и Список ярлыков, которые мы получаем в ответе.

Помимо изменений в коде, вам также необходимо настроить биллинг для вашего проекта Firebase, обновив его до плана Blaze и включив Google Vision API в вашей облачной консоли Google.

Обратите внимание, что API позволяет 1000 бесплатных звонков в месяц, поэтому с вас не будет взиматься плата, если вы просто хотите поиграться с ним.

Если вы хотите поиграть с приложением, показанным на снимках экрана, вы можете создать его здесь, и оно должно хорошо работать после добавления в свой проект Firebase.



Так что на этом все, я буду исследовать другие 4 API ML Kit, и вы можете ожидать статей о моих экспериментах с ними достаточно скоро!

Спасибо за внимание! Если вам понравилась эта история, пожалуйста, нажмите 👏 кнопку и поделитесь, чтобы помочь другим найти ее! Не стесняйтесь оставлять комментарии 💬 ниже.
Хотите оставить отзыв? Давайте подключимся в Твиттере.