определение объекта/изображения из приложения локально, без Интернета - программирование
Подтвердить что ты не робот

определение объекта/изображения из приложения локально, без Интернета

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

Это все, что я хочу сделать, без Интернета, используя только камеру.

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

Я видел CraftAR SDK. Кажется, что я работаю согласно моему требованию, чтобы распознавать объект, но он использует свой сервер для хранения изображений, чего я не хочу. Поскольку я хочу статическое изображение, оно должно храниться в самом приложении.

4b9b3361

Ответ 1

Попробуйте использовать API обнаружения объектов TensorFlow. Ссылка: TensorFlow Object Detection API

Затем вы можете индивидуально настроить свое поведение в целом, управляя всеми вашими требованиями (например, показывая всплывающее окно со всеми подробностями объекта, которое обнаруживается после получения какого-либо обратного вызова при использовании API обнаружения объектов Tensoflow после объекта был обнаружен успешно), а также я считаю, что вы можете настроить часть сценария обнаружения объектов TensorFlow в соответствии с вашими потребностями (здесь я говорю о части, связанной с пользовательским интерфейсом, конкретно в том случае, если вы хотите, чтобы ваше приложение обнаруживало объект графически),

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

1] Пошаговое руководство TensorFlow Object Detection API - Часть 1: Выбор модели

2] Как обучить свой собственный детектор объектов с помощью API-интерфейса TensorFlows Object Detector

Как обзор, для обнаружения объектов в автономном режиме вы должны быть ограничены (просто чтобы уменьшить размер APK) с помощью собственного набора данных/объектов (как вы уже упоминали, у вас есть фиксированный объект для обнаружения, это хорошо), а затем вы должны обучать (можно обучать как локально, так и на облаке) этот набор объектов с использованием модели SSD-Mobilenet. Затем у вас будет своя собственная подготовленная модель (в более простых словах) тех наборов объектов, которые предоставят вам файл retrained_graph.pb (это входит в вашу папку с ресурсами для вашего проекта Android), что является конечным результатом, который включает в себя трюк (в более простые слова) для обнаружения и классификации кадров камеры в реальном времени, тем самым отображая результаты (или детали объекта) в соответствии с информацией (или набором данных/объектов); без необходимости какого-либо подключения к Интернету. Например, TF Detect может отслеживать объекты (из 80 категорий) в предварительном просмотре камеры в режиме реального времени.

Для получения дополнительной информации следуйте этим ссылкам:

1] Модель Google для начинающих

2] Модели API обнаружения объектов Tensorflow

3] Скоростные/точные компромиссы для современных сверточных детекторов объектов

Также вы можете оптимизировать (или сжать) файл retrained_graph.pb для optimized_graph.pb, поскольку это единственная важная вещь, которая увеличит ваш размер файла APK. Давным-давно, когда я попытался обнаружить 5 разных объектов (используя TF Classify), каждая папка объекта имела около 650 фотографий, а общий размер всех 5 папок (вместе) составлял около 230 мб, а размер retrained_graph.pb составлял всего 5,5 мб (который может быть дополнительно оптимизирован для optimized_graph.pb, уменьшая его размер еще больше).

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

1] TensorFlow для поэтов

2] TensorFlow для поэтов 2: оптимизация для мобильных устройств

Желаю вам удачи.

Следующая ссылка на TensorFlow GitHub (Master) включает в себя почти все:

https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android