TensorFlow proporciona una serie de herramientas de clasificación de imágenes y visión por computadora (CV). Este documento presenta algunas de estas herramientas y proporciona una descripción general de los recursos para ayudarlo a comenzar con las tareas comunes de CV.
Bibliotecas y herramientas de visión
TensorFlow proporciona herramientas CV a través de las bibliotecas Keras de nivel superior y el módulo tf.image
de nivel inferior. Para la mayoría de los casos de uso, las bibliotecas de Keras serán más convenientes que las alternativas integradas de TensorFlow. Pero si las opciones de Keras no se ajustan a su caso de uso, o si desea un control de nivel inferior sobre el preprocesamiento de imágenes, es posible que necesite las herramientas TensorFlow de nivel inferior.
KerasCV
Si recién está comenzando con un proyecto de CV y no está seguro de qué bibliotecas y herramientas necesitará, KerasCV es un buen lugar para comenzar. KerasCV es una biblioteca de componentes CV modulares construida sobre Keras Core. KerasCV incluye modelos, capas, métricas, devoluciones de llamadas y otras herramientas que amplían la API de Keras de alto nivel para tareas CV. Las API de KerasCV pueden ayudar con el aumento de datos, la clasificación, la detección de objetos, la segmentación, la generación de imágenes y otros flujos de trabajo de CV comunes. Puede utilizar KerasCV para ensamblar rápidamente canales de inferencia y capacitación de última generación y de nivel de producción.
Utilidades de Keras
tf.keras.utils
proporciona varias utilidades de preprocesamiento de imágenes de alto nivel. Por ejemplo, tf.keras.utils.image_dataset_from_directory
genera un tf.data.Dataset
a partir de un directorio de imágenes en el disco.
tf.image
Si KerasCV no se ajusta a su caso de uso, puede usar tf.image
y tf.data
para escribir sus propios canales o capas de aumento de datos.
El módulo tf.image
contiene varias funciones para el procesamiento de imágenes, como tf.image.flip_left_right
, tf.image.rgb_to_grayscale
, tf.image.adjust_brightness
, tf.image.central_crop
y tf.image.stateless_random*
.
La API tf.data
le permite crear canales de entrada complejos a partir de piezas simples y reutilizables.
Conjuntos de datos de TensorFlow
TensorFlow Datasets es una colección de conjuntos de datos listos para usar con TensorFlow. Muchos de los conjuntos de datos (por ejemplo, MNIST , Fashion-MNIST y TF Flowers ) se pueden utilizar para desarrollar y probar algoritmos de visión por computadora.
Donde empezar
Los siguientes recursos lo ayudarán a comenzar a utilizar las herramientas CV de TensorFlow y Keras.
- KerasCV : Documentación y recursos para KerasCV.
- Guías para desarrolladores de KerasCV : guías para realizar tareas comunes de CV utilizando KerasCV. Si es nuevo en KerasCV, la Clasificación con KerasCV es un buen lugar para comenzar.
Tutoriales de TensorFlow : la documentación principal de TensorFlow (esta guía) incluye varios tutoriales de procesamiento de imágenes y CV.
- Clasificación básica: clasificar imágenes de ropa : entrene un modelo de red neuronal para clasificar imágenes de ropa, como zapatillas y camisas.
Cargar y preprocesar imágenes : cargue y preprocese un conjunto de datos de imágenes de tres maneras:
- Utilice las utilidades de preprocesamiento de Keras de alto nivel para leer un directorio de imágenes en el disco.
- Escriba su propia canalización de entrada desde cero usando
tf.data
. - Descargue un conjunto de datos del gran catálogo disponible en TensorFlow Datasets .
Cargar datos de vídeo : cargue y preprocese datos de vídeo AVI utilizando el conjunto de datos de acción humana UCF101 .
Red neuronal convolucional (CNN) : entrene una red neuronal convolucional (CNN) simple para clasificar imágenes CIFAR utilizando la API de Keras .
Clasificación de imágenes : clasifique imágenes de flores usando un modelo
tf.keras.Sequential
y cargue datos usandotf.keras.utils.image_dataset_from_directory
.Transferir aprendizaje y ajuste : clasifique imágenes de perros y gatos mediante el aprendizaje por transferencia de una red previamente entrenada.
Aumento de datos : aumente la diversidad de su conjunto de entrenamiento aplicando transformaciones aleatorias (pero realistas), como la rotación de imágenes.
Segmentación de imágenes : realice la segmentación de imágenes utilizando un U-Net modificado.
Clasificación de videos con una red neuronal convolucional 3D : entrene una red neuronal convolucional (CNN) 3D para la clasificación de videos utilizando el conjunto de datos de reconocimiento de acciones UCF101 .
Transfiera el aprendizaje para la clasificación de videos con MoViNet : utilice un modelo MoViNet previamente entrenado y el conjunto de datos UCF101 para clasificar videos para una tarea de reconocimiento de acciones.