1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Создание Android приложения для обнаружения лиц в режиме реального времени с использованием Firebase ML Kit

Содержание

Информационный портал по безопасности

Информационный портал по безопасности » Программирование » Создание Android приложения для обнаружения лиц в режиме реального времени с использованием Firebase ML Kit

Создание Android приложения для обнаружения лиц в режиме реального времени с использованием Firebase ML Kit

Автор: admin от 3-09-2018, 23:25, посмотрело: 138

В начале этого года Google представил новый продукт: Firebase Machine Learning Kit. ML Kit позволяет эффективно использовать возможности машинного обучения в Android и iOS приложениях. В этом посте я буду рассказывать о том, как с его помощью создать Android приложение для обнаружения лиц в реальном времени.

Однако, реализовать детектор лиц в собственном приложении по-прежнему нелегко. Нужно понять, как работает API, какую информацию он предоставляет, как её обрабатывать и использовать, учитывая ориентацию устройства, источник камеры и выбранную камеру (переднюю или заднюю).

В идеале мы должны получить код вроде этого:

Основные компоненты здесь — это camera, frame, faceDetector. Прежде чем разобраться с каждым из них, предположим, что наш layout содержит сам компонент камеры и некий оверлей, на котором мы будем рисовать квадратики вокруг обнаруженных лиц.

Камера (Camera)

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

Кадр (Frame)

Кадр представляет собой информацию, предоставленную камерой, для обнаружения лиц. Он должен содержать всё, что требуется детектору лиц для их обнаружения. Эта необходимая информация определяется ниже:

  • data — массив байтов, содержащий информацию о том, что камера отображает;
  • rotation — ориентация устройства;
  • size — ширина и высота предпросмотра камеры;
  • format — формат кодирования кадров;
  • isCameraFacingBack — указывает, используется ли передняя камера или задняя.

Детектор лиц (Face Detector)

Детектор лиц является самым важным компонентом — он берёт кадр, обрабатывает его и затем выводит результаты пользователю. Таким образом, детектор лиц использует экземпляр FirebaseVisionFaceDetector для обработки входящих кадров с камеры. Он также должен знать ориентацию камеры и её направление (передняя или задняя). Наконец, он должен знать на каком оверлее будут отображаться результаты. Скелет класса FaceDetector выглядит так:

Оверлей (Overlay)

Оверлей — это View-компонент, который находится поверх камеры. Он отображает рамки (или границы) вокруг обнаруженных лиц. Он должен знать ориентацию устройства, направление камеры (передняя или задняя) и размеры камеры (ширина и высота). Эта информация помогает определить, как рисовать границы вокруг обнаруженного лица, как масштабировать границы и следует ли их отражать.

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

Создание приложения для обнаружения лиц в реальном времени за 3 шага

Используя библиотеку для обнаружения лиц (которая содержит код, описанный выше), создание приложения становится довольно простым.

В этом примере я выбрал следующую библиотеку камеры.

Шаг 1. Добавьте FaceBoundsOverlay поверх камеры.

Шаг 2. Определите экземпляр FaceDetection и подключите его к камере.

Заключение

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

Скоро в Ml Kit планируют добавить новую функцию — распознавание контура лица. С её помощью можно будет обнаруживать более 100 точек вокруг лица и быстро обрабатывать их. Это потенциально может быть полезно в приложениях с использованием объектов дополненной реальности или виртуальных стикеров (таких как Snapchat). Вместе функционалом обнаружения лиц можно будет создать много интересных приложений.

Google представила ML Kit для внедрения нейросетей в мобильные приложения

Google представила ML Kit для внедрения нейросетей в мобильные приложения

  • Новости , 9 мая 2018 в 14:55
  • Тимур Кондратьев

8 мая 2018 года, в первый день конференции Google I/O 2018, компания рассказала о новом наборе инструментов (SDK) для внедрения функций машинного обучения и нейронных сетей в мобильные приложения — ML Kit. Важной особенностью является то, что нейросети могут работать как онлайн, базируясь в облаке, так и офлайн, используя мощности устройства. SDK бесплатно доступен разработчикам на Android и iOS. Вместе с анонсом компания выложила видео, представляющее новый инструмент:

Ключевые возможности ML Kit

На момент написания материала в набор входят следующие функции:

  • распознавание текста;
  • сканирование лица;
  • чтение штрихкодов;
  • маркировка объектов на снимке;
  • распознавание достопримечательностей.

В течение нескольких месяцев Google планирует расширить возможности ML Kit функцией умных ответов наподобие присутствующих в Inbox и Gmail, а также высокоточным распознаванием контура лица.

По словам создателей SDK, приложения, использующие ML Kit на устройстве, работают со стандартным Neural Networks API. В режиме офлайн они будут довольствоваться упрощенной моделью нейросети. Для работы с мощностями облачных вычислений необходимо подключение к Сети.

Новый SDK базируется на платформе для мобильных приложений Firebase и предлагает интеграцию в проекты сторонних разработчиков. Бета-версия уже доступна всем желающим в консоли Firebase.

Интеграция с TensorFlow

ML Kit также поддерживает библиотеку TensorFlow Lite для желающих выйти за рамки заранее обученных нейросетей. Разработчики могут загружать собственные модели нейросетей в консоль, а поддержкой и интеграцией модели будет заниматься Firebase.

22 – 25 мая , Ивент пройдёт онлайн , от 3000 до 3500 ₽

Кроме того, Google сообщила, что разрабатывает технологию, сжимающую TensorFlow-модель вместе с обучающими данными, для уменьшения размера APK. Разработка находится на ранней стадии, но желающие могут зарегистрироваться для предварительного доступа.

Напомним, что в апреле 2018 года Microsoft также объявила о том, что приложение мобильного переводчика, использующее технологии машинного обучения, получило возможность работы без подключения к Сети.

OtherMedia

Информация должна принадлежать людям

Создание Android приложения для обнаружения лиц в режиме реального времени с использованием Firebase ML Kit

В начале этого года Google представил новый продукт: Firebase Machine Learning Kit. ML Kit позволяет эффективно использовать возможности машинного обучения в Android и iOS приложениях. В этом посте я буду рассказывать о том, как с его помощью создать Android приложение для обнаружения лиц в реальном времени.

Обнаружение лиц — это только одна из возможностей компьютерного зрения, которую предлагает Firebase ML Kit (или, вернее, облегчает её использование). Это функция, которая может быть полезна во многих приложениях: подписывание людей на фотографиях, работа с селфи, добавление эмоджи и других эффектов во время съёмки, фотографирование только тогда, когда все улыбаются с открытыми глазами, и т.д. Возможности безграничны.

Мы уже публиковали статьи о других функциях Firebase ML Kit:

Однако, реализовать детектор лиц в собственном приложении по-прежнему нелегко. Нужно понять, как работает API, какую информацию он предоставляет, как её обрабатывать и использовать, учитывая ориентацию устройства, источник камеры и выбранную камеру (переднюю или заднюю).

В идеале мы должны получить код вроде этого:

Основные компоненты здесь — это camera, frame, faceDetector. Прежде чем разобраться с каждым из них, предположим, что наш layout содержит сам компонент камеры и некий оверлей, на котором мы будем рисовать квадратики вокруг обнаруженных лиц.

Камера (Camera)

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

Кадр (Frame)

Кадр представляет собой информацию, предоставленную камерой, для обнаружения лиц. Он должен содержать всё, что требуется детектору лиц для их обнаружения. Эта необходимая информация определяется ниже:

  • data — массив байтов, содержащий информацию о том, что камера отображает;
  • rotation — ориентация устройства;
  • size — ширина и высота предпросмотра камеры;
  • format — формат кодирования кадров;
  • isCameraFacingBack — указывает, используется ли передняя камера или задняя.

Детектор лиц (Face Detector)

Детектор лиц является самым важным компонентом — он берёт кадр, обрабатывает его и затем выводит результаты пользователю. Таким образом, детектор лиц использует экземпляр FirebaseVisionFaceDetector для обработки входящих кадров с камеры. Он также должен знать ориентацию камеры и её направление (передняя или задняя). Наконец, он должен знать на каком оверлее будут отображаться результаты. Скелет класса FaceDetector выглядит так:

Оверлей (Overlay)

Оверлей — это View-компонент, который находится поверх камеры. Он отображает рамки (или границы) вокруг обнаруженных лиц. Он должен знать ориентацию устройства, направление камеры (передняя или задняя) и размеры камеры (ширина и высота). Эта информация помогает определить, как рисовать границы вокруг обнаруженного лица, как масштабировать границы и следует ли их отражать.

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

Создание приложения для обнаружения лиц в реальном времени за 3 шага

Используя библиотеку для обнаружения лиц (которая содержит код, описанный выше), создание приложения становится довольно простым.

В этом примере я выбрал следующую библиотеку камеры.

Шаг 1. Добавьте FaceBoundsOverlay поверх камеры.

Шаг 2. Определите экземпляр FaceDetection и подключите его к камере.

Шаг 3. Настройте Firebase в проекте.

Заключение

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

Скоро в Ml Kit планируют добавить новую функцию — распознавание контура лица. С её помощью можно будет обнаруживать более 100 точек вокруг лица и быстро обрабатывать их. Это потенциально может быть полезно в приложениях с использованием объектов дополненной реальности или виртуальных стикеров (таких как Snapchat). Вместе функционалом обнаружения лиц можно будет создать много интересных приложений.

Создание Android приложения для обнаружения лиц в режиме реального времени с использованием Firebase ML Kit

В начале этого года Google представил новый продукт: Firebase Machine Learning Kit. ML Kit позволяет эффективно использовать возможности машинного обучения в Android и iOS приложениях. В этом посте я буду рассказывать о том, как с его помощью создать Android приложение для обнаружения лиц в реальном времени.

Обнаружение лиц — это только одна из возможностей компьютерного зрения, которую предлагает Firebase ML Kit (или, вернее, облегчает её использование). Это функция, которая может быть полезна во многих приложениях: подписывание людей на фотографиях, работа с селфи, добавление эмоджи и других эффектов во время съёмки, фотографирование только тогда, когда все улыбаются с открытыми глазами, и т.д. Возможности безграничны.

В нашем блоге мы уже публиковали статьи о других функциях Firebase ML Kit:

Однако, реализовать детектор лиц в собственном приложении по-прежнему нелегко. Нужно понять, как работает API, какую информацию он предоставляет, как её обрабатывать и использовать, учитывая ориентацию устройства, источник камеры и выбранную камеру (переднюю или заднюю).

В идеале мы должны получить код вроде этого:

Основные компоненты здесь — это camera, frame, faceDetector. Прежде чем разобраться с каждым из них, предположим, что наш layout содержит сам компонент камеры и некий оверлей, на котором мы будем рисовать квадратики вокруг обнаруженных лиц.

Камера (Camera)

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

Кадр (Frame)

Кадр представляет собой информацию, предоставленную камерой, для обнаружения лиц. Он должен содержать всё, что требуется детектору лиц для их обнаружения. Эта необходимая информация определяется ниже:

  • data — массив байтов, содержащий информацию о том, что камера отображает;
  • rotation — ориентация устройства;
  • size — ширина и высота предпросмотра камеры;
  • format — формат кодирования кадров;
  • isCameraFacingBack — указывает, используется ли передняя камера или задняя.

Детектор лиц (Face Detector)

Детектор лиц является самым важным компонентом — он берёт кадр, обрабатывает его и затем выводит результаты пользователю. Таким образом, детектор лиц использует экземпляр FirebaseVisionFaceDetector для обработки входящих кадров с камеры. Он также должен знать ориентацию камеры и её направление (передняя или задняя). Наконец, он должен знать на каком оверлее будут отображаться результаты. Скелет класса FaceDetector выглядит так:

Оверлей (Overlay)

Оверлей — это View-компонент, который находится поверх камеры. Он отображает рамки (или границы) вокруг обнаруженных лиц. Он должен знать ориентацию устройства, направление камеры (передняя или задняя) и размеры камеры (ширина и высота). Эта информация помогает определить, как рисовать границы вокруг обнаруженного лица, как масштабировать границы и следует ли их отражать.

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

Создание приложения для обнаружения лиц в реальном времени за 3 шага

Используя библиотеку для обнаружения лиц (которая содержит код, описанный выше), создание приложения становится довольно простым.

В этом примере я выбрал следующую библиотеку камеры.

Шаг 1. Добавьте FaceBoundsOverlay поверх камеры.

Шаг 2. Определите экземпляр FaceDetection и подключите его к камере.

Шаг 3. Настройте Firebase в проекте.

Заключение

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

Скоро в Ml Kit планируют добавить новую функцию — распознавание контура лица. С её помощью можно будет обнаруживать более 100 точек вокруг лица и быстро обрабатывать их. Это потенциально может быть полезно в приложениях с использованием объектов дополненной реальности или виртуальных стикеров (таких как Snapchat). Вместе функционалом обнаружения лиц можно будет создать много интересных приложений.

ML Kit — набор инструментов для внедрения машинного обучения в мобильные приложения

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

Поэтому Google считает, что машинное обучение станет важным инструментом в мобильной разработке.

Именно поэтому во вторник 08.05.2018 в Google I / O представили ML Kit в бета-версии: новый SDK, который ориентирован на внедрение машинного обучения Google для мобильных разработчиков на основе мощного, но простого в использовании пакета на Firebase.

Машинное обучение для всех уровней навыков

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

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

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

Область применения

Если вы новичок, который просто хочет получить начальную информацию, ML Kit дает вам пять готовых к использованию («базовых») API, которые обеспечат следующую область применения:

  • Распознавание текста
  • Распознавание лиц
  • Сканирование штрих-кодов
  • Маркировка изображений
  • Распознавание ориентиров

С помощью этих базовых API вы просто передаете данные в ML Kit и получаете релевантный ответ. Например: Lose It! , один из ранних пользователей, использовал ML Kit для создания нескольких функций в последней версии своего приложения для отслеживания калорий.

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

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

API-интерфейсы on-device быстро обрабатывают данные и будут работать, даже если нет сетевого подключения, в то время как облачные API-интерфейсы используют возможности технологии машинного обучения Google Cloud Platform, чтобы обеспечить более высокий уровень точности.

Посмотрите эти API в действии на консоли Firebase :

Heads up : Планируется выпустить еще два API в ближайшие месяцы. Во-первых, это API-интерфейс интеллектуального ответа, который позволяет поддерживать ответы на контекстные сообщения в вашем приложении, а второй — контур лица с высокой плотностью, дополняющий API обнаружения лиц. Зарегистрируйтесь здесь, чтобы попробовать первым!

Развертывание пользовательских моделей

Если вы уже освоились в процессе машинного обучения, и не нашли базовый API, который охватывает ваш случай, ML Kit позволяет вам развернуть свои собственные модели TensorFlow Lite.

Вы просто загружаете их через консоль Firebase, и разработчики позаботятся о размещении и обслуживании вашего приложения. Таким образом, вы можете сохранить свои модели из своих APK / пакетов, что снижает размер установленной вами установки приложения.

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

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

Машинное обучение может еще более усугубить эту тенденцию, так как модели могут достигать 10 мегабайт. Поэтому разработчики решили инвестировать в сжатие модели.

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

Лучше использовать вместе с другими продуктами Firebase

Поскольку ML Kit доступен через Firebase, вам легко воспользоваться преимуществами более широкой платформы Firebase. Например, тестирование Remote Config и A / B позволяет экспериментировать с несколькими пользовательскими моделями.

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

Другие примеры включают:

  • сохранение ярлыков изображений в Cloud Firestore
  • измерение латентности обработки с контролем производительности
  • интеграция с Google Analytics
  • и другие

К оглавлению ↑

Начните уже сейчас!

Разработчики надеются, что вам понравится этот продукт, также как и многим другим клиентам:

Начните работу с бета-версии ML Kit, посетив консоль Firebase сегодня. Если у вас есть какие-либо мысли или отзывы, не стесняйтесь, дайте знать — разработчики всегда на связи!

До встречи! Успевайте всё и всегда на страницах блога Uspei.com

Помоги проекту — подпишись на наш Яндекс.Дзен канал!

Создание Android приложения для обнаружения лиц в режиме реального времени с использованием Firebase ML Kit

В начале этого года Google представил новый продукт: Firebase Machine Learning Kit. ML Kit позволяет эффективно использовать возможности машинного обучения в Android и iOS приложениях. В этом посте я буду рассказывать о том, как с его помощью создать Android приложение для обнаружения лиц в реальном времени.

Обнаружение лиц — это только одна из возможностей компьютерного зрения, которую предлагает Firebase ML Kit (или, вернее, облегчает её использование). Это функция, которая может быть полезна во многих приложениях: подписывание людей на фотографиях, работа с селфи, добавление эмоджи и других эффектов во время съёмки, фотографирование только тогда, когда все улыбаются с открытыми глазами, и т.д. Возможности безграничны.

Однако, реализовать детектор лиц в собственном приложении по-прежнему нелегко. Нужно понять, как работает API, какую информацию он предоставляет, как её обрабатывать и использовать, учитывая ориентацию устройства, источник камеры и выбранную камеру (переднюю или заднюю).

В идеале мы должны получить код вроде этого:

Основные компоненты здесь — это camera, frame, faceDetector. Прежде чем разобраться с каждым из них, предположим, что наш layout содержит сам компонент камеры и некий оверлей, на котором мы будем рисовать квадратики вокруг обнаруженных лиц.

Камера (Camera)

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

Кадр (Frame)

Кадр представляет собой информацию, предоставленную камерой, для обнаружения лиц. Он должен содержать всё, что требуется детектору лиц для их обнаружения. Эта необходимая информация определяется ниже:

  • data — массив байтов, содержащий информацию о том, что камера отображает;
  • rotation — ориентация устройства;
  • size — ширина и высота предпросмотра камеры;
  • format — формат кодирования кадров;
  • isCameraFacingBack — указывает, используется ли передняя камера или задняя.

Детектор лиц (Face Detector)

Детектор лиц является самым важным компонентом — он берёт кадр, обрабатывает его и затем выводит результаты пользователю. Таким образом, детектор лиц использует экземпляр FirebaseVisionFaceDetector для обработки входящих кадров с камеры. Он также должен знать ориентацию камеры и её направление (передняя или задняя). Наконец, он должен знать на каком оверлее будут отображаться результаты. Скелет класса FaceDetector выглядит так:

Оверлей (Overlay)

Оверлей — это View-компонент, который находится поверх камеры. Он отображает рамки (или границы) вокруг обнаруженных лиц. Он должен знать ориентацию устройства, направление камеры (передняя или задняя) и размеры камеры (ширина и высота). Эта информация помогает определить, как рисовать границы вокруг обнаруженного лица, как масштабировать границы и следует ли их отражать.

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

Создание приложения для обнаружения лиц в реальном времени за 3 шага

Используя библиотеку для обнаружения лиц (которая содержит код, описанный выше), создание приложения становится довольно простым.

В этом примере я выбрал следующую библиотеку камеры.

Шаг 1. Добавьте FaceBoundsOverlay поверх камеры.

Шаг 2. Определите экземпляр FaceDetection и подключите его к камере.

Шаг 3. Настройте Firebase в проекте.

Заключение

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

Скоро в Ml Kit планируют добавить новую функцию — распознавание контура лица. С её помощью можно будет обнаруживать более 100 точек вокруг лица и быстро обрабатывать их. Это потенциально может быть полезно в приложениях с использованием объектов дополненной реальности или виртуальных стикеров (таких как Snapchat). Вместе функционалом обнаружения лиц можно будет создать много интересных приложений.

Читать еще:  Что такое реплика телефона? И чем отличается от оригинала
Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector