Computer vision with TensorFlow

TensorFlow provides a number of computer vision (CV) and image classification tools. This document introduces some of these tools and provides an overview of resources to help you get started with common CV tasks.

Vision libraries and tools

TensorFlow provides CV tools through the higher-level Keras libraries and the lower-level tf.image module. For most use cases, the Keras libraries will be more convenient than the built-in TensorFlow alternatives. But if the Keras options don't fit your use case, or you want lower-level control over image preprocessing, you might need the lower-level TensorFlow tools.

KerasCV

If you're just getting started with a CV project, and you're not sure which libraries and tools you'll need, KerasCV is a good place to start. KerasCV is a library of modular CV components built on Keras Core. KerasCV includes models, layers, metrics, callbacks, and other tools that extend the high-level Keras API for CV tasks. The KerasCV APIs can help with data augmentation, classification, object detection, segmentation, image generation, and other common CV workflows. You can use KerasCV to quickly assemble production-grade, state-of-the-art training and inference pipelines.

Keras utilities

tf.keras.utils provides several high-level image preprocessing utilities. For example, tf.keras.utils.image_dataset_from_directory generates a tf.data.Dataset from a directory of images on disk.

tf.image

If KerasCV doesn't fit your use case, you can use tf.image and tf.data to write your own data augmentation pipelines or layers.

The tf.image module contains various functions for image processing, such as tf.image.flip_left_right, tf.image.rgb_to_grayscale, tf.image.adjust_brightness, tf.image.central_crop, and tf.image.stateless_random*.

The tf.data API enables you to build complex input pipelines from simple, reusable pieces.

TensorFlow Datasets

TensorFlow Datasets is a collection of datasets ready to use with TensorFlow. Many of the datasets (for example, MNIST, Fashion-MNIST, and TF Flowers) can be used to develop and test computer vision algorithms.

Where to start

The following resources will help you get up and running with TensorFlow and Keras CV tools.