Помогают защитить Большой Барьерный Риф с TensorFlow на Kaggle Присоединяйтесь вызов

Сегментация

Сегментация изображения - это процесс разделения цифрового изображения на несколько сегментов (наборов пикселей, также известных как объекты изображения). Цель сегментации - упростить и / или изменить представление изображения на что-то более значимое и более простое для анализа.

На следующем изображении показан результат модели сегментации изображений на Android. Модель создаст маску над целевыми объектами с высокой точностью.

Начать

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

Вы можете использовать готовый API из библиотеки задач TensorFlow Lite для интеграции моделей сегментации изображений всего в несколько строк кода. Вы также можете интегрировать модель с помощью API Java интерпретатора TensorFlow Lite .

В приведенном ниже примере Android демонстрируется реализация обоих методов как lib_task_api и lib_interpreter соответственно.

Посмотреть пример Android

Посмотреть пример iOS

Если вы используете платформу, отличную от Android или iOS, или уже знакомы с API-интерфейсами TensorFlow Lite , вы можете загрузить нашу начальную модель сегментации изображений.

Скачать стартовую модель

Описание модели

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

Как это работает

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

Текущая реализация включает в себя следующие функции:

  1. DeepLabv1: мы используем грубую свертку, чтобы явно контролировать разрешение, при котором отклики функций вычисляются в глубинных сверточных нейронных сетях.
  2. DeepLabv2: мы используем мощный пул пространственной пирамиды (ASPP) для надежной сегментации объектов в нескольких масштабах с помощью фильтров с несколькими частотами дискретизации и эффективных полей обзора.
  3. DeepLabv3: Мы дополняем модуль ASPP функцией уровня изображения [5, 6] для сбора информации большего диапазона. Мы также включаем параметры пакетной нормализации [7] для облегчения обучения. В частности, мы применяем грубую свертку для извлечения выходных характеристик на разных выходных шагах во время обучения и оценки, что эффективно позволяет тренировать BN при выходном шаге = 16 и достигает высокой производительности при выходном шаге = 8 во время оценки.
  4. DeepLabv3 +: мы расширяем DeepLabv3, добавляя простой, но эффективный модуль декодирования для уточнения результатов сегментации, особенно по границам объектов. Кроме того, в этой структуре кодер-декодер можно произвольно управлять разрешением извлеченных функций кодера путем жесткой свертки для компромисса между точностью и временем выполнения.

Тесты производительности

Цифры тестов производительности генерируются с помощью описанного здесь инструмента.

Название модели Размер модели Устройство GPU Процессор
Deeplab v3 2.7 Мб Pixel 3 (Android 10) 16 мс 37 мс *
Pixel 4 (Android 10) 20 мс 23 мс *
iPhone XS (iOS 12.4.1) 16 мс 25 мс **

* Использовано 4 нитки.

** 2 потока используются на iPhone для достижения наилучшего результата.

Дополнительная литература и ресурсы