Что такое файл tflite

Обновлено: 05.07.2024

Плагин Flutter для доступа к TensorFlow Lite. Поддерживает iOS и Android.

Подключаемый модуль Flutter для доступа к TensorFlow Lite API. Поддерживает классификацию изображений, обнаружение объектов (SSD и YOLO), Pix2Pix, Deeplab и PoseNet как на iOS, так и на Android.

Начиная с версии 1.1.0:

  1. Библиотека iOS TensorFlow Lite обновлена ​​с TensorFlowLite 1.x до TensorFlowLiteObjC 2.x. Изменения в нативном коде обозначаются TFLITE2 .

Начиная с версии 1.0.0:

  1. Обновлен API TensorFlow Lite версии 1.12.0.
  2. Больше не принимает параметры inputSize и numChannels. Они будут получены из входного тензора.
  3. numThreads перемещен в Tflite.loadModel.

В android/app/build.gradle добавьте следующий параметр в блок android.

Решения для создания ошибок на iOS:

'векторный' файл не найден"

Откройте ios/Runner.xcworkspace в Xcode, щелкните Runner > Tagets > Runner > Build Settings, найдите Compile Sources As и измените значение на Objective-C++

Файл 'tensorflow/lite/kernels/register.h' не найден

Плагин предполагает, что файлы заголовков tensorflow расположены по пути «tensorflow/lite/kernels».

Однако для ранних версий tensorflow путь к заголовку — «tensorflow/contrib/lite/kernels».

  1. Создайте папку ресурсов и поместите в нее файл этикетки и файл модели. В pubspec.yaml добавьте:
    1. Импортируйте библиотеку:
      1. Загрузите модель и ярлыки:

      См. раздел для соответствующей модели ниже.

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

      • Формат вывода:
      • Выполнить на изображении:
      • Выполнить в двоичном формате:
      • Запуск в потоке изображений (видеокадр):

      Работает с плагином камеры 4.0.0. Формат видео: (iOS) kCVPixelFormatType_32BGRA, (Android) YUV_420_888.

      x, y, w, h находятся в диапазоне [0, 1]. Вы можете масштабировать x, w по ширине, а y, h по высоте изображения.

      Твердотельный накопитель MobileNet:

      • Выполнить на изображении:
      • Выполнить в двоичном формате:
      • Запуск в потоке изображений (видеокадр):

      Работает с плагином камеры 4.0.0. Формат видео: (iOS) kCVPixelFormatType_32BGRA, (Android) YUV_420_888.

      Крошечный YOLOv2:

      • Выполнить на изображении:
      • Выполнить в двоичном формате:
      • Запуск в потоке изображений (видеокадр):

      Работает с плагином камеры 4.0.0. Формат видео: (iOS) kCVPixelFormatType_32BGRA, (Android) YUV_420_888.

      Вывод вывода Pix2Pix имеет тип Uint8List. В зависимости от используемого outputType вывод:

      (если outputType равен png) массив байтов изображения png

      (иначе) массив байтов исходного вывода

      • Выполнить в двоичном формате:
      • Запуск в потоке изображений (видеокадр):

      Спасибо RP от see-- за реализацию Android.

      Вывод логического вывода Deeplab имеет тип Uint8List. В зависимости от используемого outputType вывод:

      (если outputType равен png) массив байтов изображения png

      (иначе) байтовый массив значений r, g, b, a пикселей

      • Выполнить в двоичном формате:
      • Запуск в потоке изображений (видеокадр):

      x, y находятся в диапазоне [0, 1]. Вы можете масштабировать x по ширине, а y по высоте изображения.

      Преобразователь TensorFlow Lite принимает модель TensorFlow и формирует модель TensorFlow Lite (оптимизированный формат FlatBuffer идентифицированного файла расширения .tflite). У вас есть два варианта использования конвертера:

      1. Python API(рекомендуется): Это запуск для преобразования моделей в качество частичной разработки моделей, добавление метаданных и наличие значительно больших возможностей.
      2. Командная строка: поддерживает только универсальные модели преобразования.

      Рабочий процесс конвертера TFLite
      < /p>

      API Python

      Вспомогательный код: Для того, чтобы определить установленную версию TensorFlow, запустить print(tf.__version__) и больше о TensorFlow Lite конвертер API, приложение print(help(tf.lite. TFLiteConverter)) .

      Преобразование модели TensorFlow 2.x с помощью tf.lite.TFLiteConverter. Модель TensorFlow 2.x возникла с использованием типа SavedModel и требуется либо с использованием API высокого уровня tf.keras.* (модель Keras) или пониженного уровня tf.* (API, из которого можно создать возникновение функции). В результате у вас есть следующие три варианта (примеры в следующих нескольких разделах):

      • tf.lite.TFLiteConverter.from_saved_model()(рекомендуется): Преобразует SavedModel .
      • тф.lite.TFLiteConverter.from_keras_model() : Преобразует модель Keras.
      • tf.lite.TFLiteConverter.from_concrete_functions() : Преобразует функции бетона .

      Преобразование SavedModel (рекомендуется)

      В начале появления, как преобразование SavedModel в модель TensorFlow Lite.

      Преобразование модели Кераса

      В последующем явлении, как преобразование модели Keras в модель TensorFlow Lite.

      Преобразование особых функций

      В последующем выявлено, как внедрение функции в модели TensorFlow Lite.

      Другие особенности

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

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

      Ошибки преобразования

      Ниже обнаружены распространенные ошибки получения и потребления:

      Ошибка: .. не является ни пользовательской операцией, ни гибкой операцией

      Решение: Если эта операция TF:

      Поддерживается в TF: Ошибка, потому что возникает , что оп TF отсутствует в белом списке (исчерпывающий перечень опс TF языка TFLite). Вы можете решить эту проблему следующим образом:

      Невероятно в TF: ошибка возникает из-за того, что TFLite не знает виртуального оператора TF, зараженного вами. Вы можете решить эту проблему следующим образом:

      1. Создание цит TF .
      2. Преобразование модели TF к модели TFLite .
      3. Создание TFLite и реализация вывода, связывая его с выполнением TFLite.

      Инструмент командной строки

      Навсегда использовать API Python, описанный выше вместо этого, если это возможно.

      tflite_convert : Для того, чтобы просмотреть все доступные флаги, використовуйте команду:

      Преобразование SavedModel

      Преобразование модели Keras H5

      Следующие шаги

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

      Если не указано иное, содержимое этой страницы предоставляется по лицензии Creative Commons Attribution 4.0, а образцы кода — по лицензии Apache 2.0. Подробнее см. в Правилах сайта Google Developers. Java является зарегистрированным товарным знаком Oracle и/или ее дочерних компаний.

      Этот пакет tflite анализирует модели TensorFlow Lite (TFLite) ( *.tflite ), созданные преобразователем TFLite. Справочную информацию см. в статье Знакомство с пакетом Python для парсера TFLite.

      Использование

      Установите пакет и используйте его так же, как то, что вы создаете из кодовой базы TensorFlow. Рекомендуется установить ту же версию, что и TensorFlow, генерирующий модель TFLite.

      Необработанный API tflite можно найти в этой документации. Тест MobileNet может служить примером использования моделей синтаксического анализа.

      Улучшения

      Созданный пакет Python иногда неудобен в использовании. Мы внесли несколько улучшений:

      • Простой импорт: единый импорт tflite (пример) вместо импорта всех классов и функций в tflite (пример).
      • Встроенный вспомогательный код операции: код операции закодирован в виде цифр, которые трудно разобрать человеку. Два API добавлены для упрощения использования.
          : получить имя типа данного опкода. : словарь, который сопоставляет код операции с именами всех встроенных операторов.

        Обработка совместимости

        TensorFlow иногда предоставляет пользователям возможность обеспечения совместимости модели TFLite. Поскольку это критические изменения API, которые можно легко исправить, мы делаем это в пакете tflite.

        Размещение обновлений

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

          и загрузите его.
        1. Установите дополнительную зависимость с помощью pip install -r requirements.txt . И установите компилятор flatbuffer (возможно, вам придется собрать его вручную).
        2. Создайте код для обновления. Инструменты подготовлены, есть подсказки к действиям.
            schema.fbs для новой версии. встроенное отображение оператора. импорт классов и функций из подмодулей. документ API.
          1. Обновите версию в setup.py. и протестируйте (просто pytest ). Не забудьте переустановить только что собранный пакет tflite перед его тестированием.

          Ресурсы

          Лицензия

          Лицензия Apache версии 2.0 как у TensorFlow.

          Отказ от ответственности

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

          tflite поддерживается jackwish. Эта страница создана GitHub Pages.

          В этой лабораторной работе вы узнаете, как обучить пользовательскую модель обнаружения объектов с помощью набора обучающих изображений с помощью TFLite Model Maker, а затем развернуть свою модель в приложении Android с помощью библиотеки задач TFLite. Вы будете:

          • Создайте приложение для Android, которое определяет ингредиенты на изображениях блюд.
          • Интегрируйте предварительно обученную модель обнаружения объектов TFLite и узнайте, на что способна эта модель.
          • Обучите пользовательскую модель обнаружения объектов обнаружению ингредиентов/компонентов еды с помощью пользовательского набора данных под названием salad и TFLite Model Maker.
          • Разверните пользовательскую модель в приложении Android с помощью библиотеки задач TFLite.

          В итоге у вас получится что-то похожее на изображение ниже:

          b9705235366ae162.jpg

          Предпосылки

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

          • Разработка под Android с использованием Kotlin и Android Studio
          • Основной синтаксис Python

          Что вы узнаете

          • Как обучить пользовательскую модель обнаружения объектов с помощью TFLite Model Maker.
          • Как развернуть модель обнаружения объектов TFLite с помощью библиотеки задач TFLite.

          Что вам понадобится

          • Последняя версия Android Studio (v4.2+)
          • Эмулятор Android Studio или физическое устройство Android
          • Базовые знания разработки Android на Kotlin

          2. Обнаружение объектов

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

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

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

          TensorFlow Lite

          TensorFlow Lite – это кроссплатформенная библиотека машинного обучения, оптимизированная для запуска моделей машинного обучения на периферийных устройствах, включая мобильные устройства Android и iOS.

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

          • Model Maker – это библиотека Python, которая позволяет легко обучать модели TensorFlow Lite с использованием ваших собственных данных, написав всего несколько строк кода и не требуя навыков машинного обучения.
          • Библиотека задач – это кроссплатформенная библиотека, которая упрощает развертывание моделей TensorFlow Lite в мобильных приложениях всего несколькими строками кода.

          Эта лабораторная работа посвящена TFLite. Концепции и блоки кода, не относящиеся к TFLite и обнаружению объектов, не объясняются и предоставляются для простого копирования и вставки.

          3. Настроить

          Скачать код

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

          Распакуйте загруженный ZIP-файл. Это распакует корневую папку ( odml-pathways-main ) со всеми необходимыми ресурсами. Для этой лаборатории кода вам понадобятся только исходники в подкаталоге object-detection/codelab2/android.

          Подкаталог android в репозитории object-detection/codelab2/android содержит два каталога:

          Импорт начального приложения

          Давайте начнем с импорта начального приложения в Android Studio.

          1. Откройте Android Studio и выберите «Импортировать проект» (Gradle, Eclipse ADT и т. д.)
          2. Откройте стартовую папку из загруженного ранее исходного кода.

          7c0f27882a2698ac.jpg

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

          Если эта кнопка отключена, убедитесь, что вы импортируете только файлы starter/app/build.gradle, а не весь репозиторий.

          Запустите начальное приложение

          Теперь, когда вы импортировали проект в Android Studio, вы готовы запустить приложение в первый раз.

          execute.jpg

          Подключите устройство Android через USB к компьютеру или запустите эмулятор Android Studio и нажмите "Выполнить" ( ) на панели инструментов Android Studio.

          4. Знакомство с приложением для начинающих

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

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

          В основном вы будете взаимодействовать с этими методами в скелете приложения:

          • fun runObjectDetection(bitmap: Bitmap) Этот метод вызывается, когда вы выбираете предустановленное изображение или делаете снимок. растровое изображение является входным изображением для обнаружения объекта. Позже в этой лабораторной работе вы добавите в этот метод код обнаружения объектов.
          • класс данных DetectionResult(val boundingBoxes: Rect, val text: String) Это класс данных, представляющий результат обнаружения объекта для визуализации. boundingBoxes – это прямоугольник, в котором находится объект, а текст – это строка результата обнаружения, отображаемая вместе с ограничивающей рамкой объекта.
          • fun drawDetectionResult(bitmap: Bitmap, discoveryResults: List ): Bitmap Этот метод рисует результаты обнаружения объекта в discoveryResults на входном растровом изображении и возвращает его измененную копию.

          Вот пример вывода служебного метода drawDetectionResult.

          f6b1e6dad726e129.jpg

          5. Добавить обнаружение объектов на устройстве

          Теперь вы создадите прототип, интегрировав предварительно обученную модель TFLite, которая может обнаруживать общие объекты, в начальное приложение.

          Загрузить предварительно обученную модель обнаружения объектов TFLite

          В TensorFlow Hub есть несколько моделей детекторов объектов, которые вы можете использовать. Для этой лаборатории кода вы загрузите модель обнаружения объектов EfficientDet-Lite, обученную на наборе данных COCO 2017, оптимизированную для TFLite и разработанную для производительности на мобильных процессорах, графических процессорах и EdgeTPU.

          Затем используйте библиотеку задач TFLite, чтобы интегрировать предварительно обученную модель TFLite в ваше начальное приложение. Библиотека задач TFLite упрощает интеграцию моделей машинного обучения, оптимизированных для мобильных устройств, в мобильное приложение. Он поддерживает множество популярных вариантов использования машинного обучения, включая обнаружение объектов, классификацию изображений и классификацию текста. Вы можете загрузить модель TFLite и запустить ее, написав всего несколько строк кода.

          Библиотека задач TFLite поддерживает только те модели TFLite, которые содержат допустимые метаданные. Вы можете найти другие поддерживаемые модели обнаружения объектов в этой коллекции TensorFlow Hub.

          Добавить модель в начальное приложение

          1. Скопируйте только что загруженную модель в папку ресурсов начального приложения. Вы можете найти папку на панели навигации проекта в Android Studio.

          c2609599b7d22641.jpg

          c83e9397177c4561.jpg

          Обновите зависимости библиотеки задач файла Gradle

          Перейдите к файлу app/build.gradle и добавьте эту строку в конфигурацию зависимостей:

          Синхронизируйте проект с файлами Gradle

          b451ab2d04d835f9.jpg

          Чтобы быть уверенным, что все зависимости доступны для вашего приложения, на этом этапе вам следует синхронизировать проект с файлами gradle. Выберите «Синхронизировать проект с файлами Gradle» ( ) на панели инструментов Android Studio.

          (Если эта кнопка отключена, убедитесь, что вы импортируете только starter/app/build.gradle, а не весь репозиторий.)

          Настроить и запустить обнаружение объектов на устройстве на изображении

          Для загрузки и запуска модели обнаружения объектов требуется всего 3 простых шага с 3 API:

          • подготовить изображение/поток: TensorImage
          • создайте объект детектора: ObjectDetector
          • соединить 2 объекта выше: обнаружить(изображение)

          Это достигается внутри функции runObjectDetection(bitmap: Bitmap) в файле MainActivity.kt.

          Сейчас функция пуста.Перейдите к следующим шагам, чтобы реализовать детектор объектов TFLite. Попутно Android Studio предложит вам добавить необходимые импорты:

          • org.tensorflow.lite.support.image.TensorImage
          • org.tensorflow.lite.task.vision.detector.ObjectDetector

          Создать объект изображения

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

          TFLite предоставляет простой API для создания TensorImage из растрового изображения. Добавьте приведенный ниже код в начало runObjectDetection(bitmap:Bitmap):

          Создать экземпляр Детектора

          Библиотека задач TFLite следует шаблону проектирования Builder. Вы передаете конфигурацию сборщику, а затем приобретаете у него детектор. Есть несколько параметров для настройки, в том числе для настройки чувствительности детектора объектов:

          • максимальный результат (максимальное количество объектов, которые должна обнаружить модель)
          • порог оценки (насколько уверенным должен быть детектор объектов, чтобы вернуть обнаруженный объект)
          • пометить список разрешенных/запрещенных (разрешить/запретить объекты в предопределенном списке)

          Инициализируйте экземпляр детектора объектов, указав имя файла модели TFLite и параметры конфигурации:

          Подача изображений на детектор

          Добавьте следующий код для запуска runObjectDetection(bitmap:Bitmap) . Это передаст ваши изображения детектору.

          По завершении детектор возвращает список Detection , каждый из которых содержит информацию об объекте, который модель нашла на изображении. Каждый объект описывается с помощью:

          • boundingBox : прямоугольник, обозначающий наличие объекта и его расположение на изображении.
          • категории: что это за объект и насколько модель уверена в результате обнаружения. Модель возвращает несколько категорий, и самая надежная из них находится первой.
          • метка : название категории объектов.
          • classificationConfidence: число с плавающей запятой от 0,0 до 1,0, где 1,0 соответствует 100%

          Распечатать результаты обнаружения

          Добавьте следующий код для запуска runObjectDetection(bitmap:Bitmap) . Это вызывает метод для печати результатов обнаружения объектов в Logcat.

          Затем добавьте этот метод debugPrint() в класс MainActivity:

          Теперь ваш детектор объектов готов! Скомпилируйте и запустите приложение, нажав кнопку «Выполнить» ( ) на панели инструментов Android Studio. Как только приложение появится на устройстве, нажмите на любое из предустановленных изображений, чтобы запустить детектор объектов. Затем посмотрите на окно Logcat*(* *)* внутри вашей IDE, и вы должны увидеть что-то похожее на это:

          Это говорит о том, что детектор увидел 2 объекта. Первый:

          • Объект находится внутри прямоугольника (0, 15) – (2223, 1645)
          • Ярлык – обеденный стол.
          • Модель уверена, что 1 – обеденный стол (77 %)

          Технически это все, что вам нужно для работы библиотеки задач TFLite: на данный момент у вас есть все! Поздравляем!

          Однако с точки зрения пользовательского интерфейса вы все еще находитесь в начальной точке. Теперь вам нужно использовать обнаруженные результаты в пользовательском интерфейсе путем пост-обработки обнаруженных результатов.

          6. Нарисуйте результат обнаружения на входном изображении

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

          • нарисовать ограничивающую рамку на изображении
          • нарисуйте название категории и процент достоверности внутри ограничивающей рамки
          1. Замените вызов debugPrint(results) следующим фрагментом кода:

          Примечание. Поскольку обнаружение объектов — это процесс, требующий значительных вычислительных ресурсов, а библиотека задач TFLite выполняется в том же потоке, в котором она вызывается, важно запускать ее в фоновом потоке, чтобы не блокировать пользовательский интерфейс приложения. Вы можете видеть, что мы используем сопрограмму Kotlin для вызова метода runObjectDetection

          Хотите попробовать со своей фотографией? Нажмите кнопку "Сделать фото" и сделайте несколько снимков окружающих вас объектов.

          8b024362b15096a6.jpg

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

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

          Вот набор данных, содержащий изображения и метки, которые вы можете использовать для тренировки собственной модели. Он был создан с использованием изображений из набора данных Open Images Dataset V4.

          Совместная работа

          Далее перейдем к Google Colab для обучения пользовательской модели.

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

          Ноутбуки Colab выполняют код на облачных серверах Google, что означает, что вы можете использовать всю мощь оборудования Google, включая GPU и TPU, независимо от мощности вашего компьютера. Все, что вам нужно, это браузер.

          Если у вас нет доступа к Colab, вы можете использовать другую среду и получить доступ к коду по этой ссылке на GitHub.

          Обучение пользовательской модели займет около 30 минут.

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

          8. Интегрируйте пользовательскую модель TFLite в приложение для Android

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

          1. Скопируйте модель салата TFLite в папку с ресурсами. Назовите новую модель салатом.tflite .

          91e8d37c4f78eddb.jpg

          execute.jpg

          1. Откройте файл MainActivity.kt и найдите код инициализации ObjectDetector.
          2. Замените модель EfficientDet-Lite ( model.tflite ) моделью салата ( салат.tflite )
            1. Нажмите «Выполнить» ( ) на панели инструментов Android Studio, чтобы повторно запустить приложение с новой моделью. Вуаля! Теперь приложение может распознавать сыры, салаты и выпечку.
            2. b9705235366ae162.jpg

              Если вы запустите приложение в эмуляторе Android, вы можете обнаружить, что модели обнаружения объектов требуется несколько секунд, чтобы вернуть результат. Это связано с тем, что квантованные модели TFLite не оптимизированы для работы на эмуляторе. Вы обнаружите, что он работает намного быстрее на физическом устройстве Android.

              9. Поздравляем!

              Вы использовали TFLite для обучения пользовательской модели и добавления возможностей обнаружения объектов в свое приложение. Это все, что вам нужно, чтобы запустить его!

              Что мы рассмотрели

              • Как найти предварительно обученные модели обнаружения объектов TFLite в TensorFlow Hub
              • Как интегрировать модели обнаружения возражений в ваше приложение для Android с помощью библиотеки задач TFLite
              • Как обучить пользовательскую модель обнаружения объектов с помощью TFLite Model Maker

              Дальнейшие шаги

              • Используйте Firebase для улучшения развертывания модели TFLite
              • Собирайте обучающие данные для обучения собственной модели.
              • Примените обнаружение объектов в своем приложении для Android.

              Подробнее

              Если не указано иное, содержимое этой страницы предоставляется по лицензии Creative Commons Attribution 4.0, а образцы кода — по лицензии Apache 2.0. Подробнее см. в Правилах сайта Google Developers. Java является зарегистрированным товарным знаком Oracle и/или ее дочерних компаний.

              Читайте также: