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

1: Мы будем отображать живые кадры с камеры с помощью API camera2.

2: Передайте кадры этой прямой трансляции с камеры в модель обнаружения объектов.

3: Нарисуйте прямоугольники вокруг обнаруженных объектов в режиме реального времени.

и модели, которые мы будем использовать

1: Эффективный Дет lite0

2: Эффективный Дет лайт1

3: EfficientDet lite2

4: Эффективный Дет лайт3

Итак, начнем.

****Если вы хотите обучить свои собственные модели обнаружения объектов для Android и IOS, присоединяйтесь к нашему новому курсуОбучение моделей обнаружения объектов для Android и IOSна удемы. На этом курсе вы научитесь

1. Обучение пользовательской модели обнаружения объектов для Android и IOS

2. Используйте эту модель на Android с изображением и записью с камеры в реальном времени

3. Используйте модели SSD MobileNet, EfficientDet и YOLO в Android****

Присоединяйтесь сейчас и воспользуйтесь огромной скидкой

Получение кода начального приложения

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

Получение моделей EfficientDet

Если у вас есть модели Effectivedet, то вы можете пропустить этот шаг, в противном случае вы можете перейти по этой ссылке и скачать все модели Effectivedet в формате tflite (Tensorflow lite) по этой ссылке

Вы найдете все 4 модели Effectivedet в формате tflite.

Запуск кода начального приложения

После получения кода стартового приложения

1: открыть код проекта внутри студии Android

2: Запустите стартовое приложение

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

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

Использование моделей EfficientDet в стартовом приложении

Во-первых, вам нужно скопировать файл модели и вставить его в папку активов проекта Android Studio. Поэтому, если вы хотите использовать EfficientDet lite0, скопируйте этот файл и вставьте его в папку с ресурсами.

Затем откройте файл MainActivity.java, и здесь нам просто нужно изменить имя файла модели, чтобы использовать модель Effectivedet lite0. Поэтому измените этот файл model.tflite на Effectivedet_lite0.tflite, чтобы наша модель Effectivedet_lite0 использовалась вместо этого файла model.tflite.

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

Использование других моделей EfficientDet

Если вы хотите использовать другие модели EffectiveDet, такие как efficiency lite 1, lite 2 или lite3, вам просто нужно добавить эту модель в папку с ресурсами и изменить имя в MainActivity, и все.

Пояснение кода

В этом приложении мы выполняем обнаружение объектов с помощью модуля с именем lib_task_api, и этот модуль добавляется в проект.

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

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

Затем на основе результатов мы нарисуем прямоугольники вокруг обнаруженных объектов.

Обучение моделей обнаружения объектов для Android и IOS

Если вы хотите обучить собственные модели обнаружения объектов для Android и IOS, присоединяйтесь к нашему новому курсу udemy. В этом курсе вы научитесь

1: Обучить пользовательскую модель обнаружения объектов для Android и IOS

2: Используйте эту модель в Android с изображением и записью с камеры в реальном времени.

3. Используйте модели SSD MobileNet, EfficientDet и YOLO на Android с изображениями и записью с камеры в реальном времени.

Присоединяйтесь сейчас и воспользуйтесь огромной скидкой