TensorFlow предоставляет ряд инструментов компьютерного зрения (CV) и классификации изображений. В этом документе представлены некоторые из этих инструментов и представлен обзор ресурсов, которые помогут вам начать работу с распространенными задачами CV.
Библиотеки и инструменты Vision
TensorFlow предоставляет инструменты CV через библиотеки Keras более высокого уровня и модуль tf.image
более низкого уровня. В большинстве случаев библиотеки Keras будут более удобными, чем встроенные альтернативы TensorFlow. Но если параметры Keras не подходят для вашего варианта использования или вам нужен контроль нижнего уровня над предварительной обработкой изображений, вам могут понадобиться инструменты TensorFlow нижнего уровня.
КерасCV
Если вы только начинаете работу над проектом CV и не уверены, какие библиотеки и инструменты вам понадобятся, KerasCV — хорошее место для начала. KerasCV — это библиотека модульных компонентов CV, построенная на Keras Core. KerasCV включает модели, слои, метрики, обратные вызовы и другие инструменты, расширяющие высокоуровневый API Keras для задач CV. API-интерфейсы KerasCV могут помочь с увеличением данных, классификацией, обнаружением объектов, сегментацией, генерацией изображений и другими распространенными рабочими процессами CV. Вы можете использовать KerasCV для быстрой сборки современных конвейеров обучения и вывода промышленного уровня.
Керас утилиты
tf.keras.utils
предоставляет несколько утилит предварительной обработки изображений высокого уровня. Например, tf.keras.utils.image_dataset_from_directory
генерирует tf.data.Dataset
из каталога изображений на диске.
tf.image
Если KerasCV не подходит для вашего варианта использования, вы можете использовать tf.image
и tf.data
для написания собственных конвейеров или слоев увеличения данных.
Модуль tf.image
содержит различные функции для обработки изображений, такие как tf.image.flip_left_right
, tf.image.rgb_to_grayscale
, tf.image.adjust_brightness
, tf.image.central_crop
и tf.image.stateless_random*
.
API tf.data
позволяет создавать сложные конвейеры ввода из простых, многократно используемых частей.
Наборы данных TensorFlow
Наборы данных TensorFlow — это коллекция наборов данных, готовых к использованию с TensorFlow. Многие наборы данных (например, MNIST , Fashion-MNIST и TF Flowers ) можно использовать для разработки и тестирования алгоритмов компьютерного зрения.
Когда начать
Следующие ресурсы помогут вам начать работу с инструментами TensorFlow и Keras CV.
- KerasCV : документация и ресурсы для KerasCV.
- Руководства для разработчиков KerasCV : руководства по выполнению распространенных задач CV с использованием KerasCV. Если вы новичок в KerasCV, классификация с помощью KerasCV — хорошее начало.
Учебные пособия по TensorFlow . Основная документация TensorFlow (это руководство) включает в себя ряд руководств по обработке CV и изображений.
- Базовая классификация: Классификация изображений одежды . Обучите модель нейронной сети классифицировать изображения одежды, например кроссовок и рубашек.
Загрузка и предварительная обработка изображений . Загружайте и предварительно обрабатывайте набор данных изображений тремя способами:
- Используйте высокоуровневые утилиты предварительной обработки Keras для чтения каталога изображений на диске.
- Напишите свой собственный конвейер ввода с нуля , используя
tf.data
. - Загрузите набор данных из большого каталога , доступного в TensorFlow Datasets .
Загрузка видеоданных : загрузка и предварительная обработка видеоданных AVI с использованием набора данных о действиях человека UCF101 .
Сверточная нейронная сеть (CNN) : обучите простую сверточную нейронную сеть (CNN) для классификации изображений CIFAR с помощью Keras API .
Классификация изображений : классифицируйте изображения цветов с помощью модели
tf.keras.Sequential
и загружайте данные с помощьюtf.keras.utils.image_dataset_from_directory
.Трансферное обучение и точная настройка . Классифицируйте изображения кошек и собак с помощью трансферного обучения из предварительно обученной сети.
Увеличение данных . Увеличьте разнообразие обучающего набора, применяя случайные (но реалистичные) преобразования, такие как поворот изображения.
Сегментация изображения : Выполните сегментацию изображения, используя модифицированную U-Net .
Классификация видео с помощью 3D-сверточной нейронной сети . Обучите 3D-сверточную нейронную сеть (CNN) для классификации видео с использованием набора данных распознавания действий UCF101 .
Передача обучения для классификации видео с помощью MoViNet . Используйте предварительно обученную модель MoViNet и набор данных UCF101 для классификации видео для задачи распознавания действий.