TensorFlow 提供了许多计算机视觉 (CV) 和图像分类工具。本文档介绍了其中一些工具,并概述了帮助您开始使用常见 CV 任务的资源。
视觉库和工具
TensorFlow 通过更高层的 Keras 库和更低层的 tf.image
模块提供 CV 工具。对于大多数用例,Keras 库比内置的 TensorFlow 替代方案更方便。但是,如果 Keras 选项不适合您的用例,或者您希望对图像预处理进行更低级的控制,您可能需要更低级的 TensorFlow 工具。
KerasCV
如果您刚开始使用 CV 项目,并且不确定需要哪些库和工具,KerasCV 是一个不错的起点。KerasCV 是一个基于 Keras Core 构建的模块化 CV 组件库。KerasCV 包括模型、层、指标、回调和其他工具,这些工具扩展了用于 CV 任务的高级 Keras API。KerasCV API 可以帮助您进行数据增强、分类、目标检测、分割、图像生成和其他常见的 CV 工作流程。您可以使用 KerasCV 快速组装生产级、最先进的训练和推理管道。
Keras 实用程序
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*
。
tf.data
API 使您能够从简单、可重用的部分构建复杂的输入管道。
TensorFlow 数据集
TensorFlow 数据集 是一个可与 TensorFlow 一起使用的数据集集合。许多数据集(例如,MNIST、Fashion-MNIST 和 TF Flowers)可用于开发和测试计算机视觉算法。
从哪里开始
以下资源将帮助您开始使用 TensorFlow 和 Keras CV 工具。
- KerasCV: KerasCV 的文档和资源。
- KerasCV 开发人员指南: 使用 KerasCV 执行常见 CV 任务的指南。如果您不熟悉 KerasCV,使用 KerasCV 进行分类 是一个不错的起点。
TensorFlow 教程: 核心 TensorFlow 文档(本指南)包含许多 CV 和图像处理教程。
- 基本分类:对服装图像进行分类: 训练一个神经网络模型来对服装图像进行分类,例如运动鞋和衬衫。
加载和预处理图像: 通过三种方式加载和预处理图像数据集
- 使用高级 Keras 预处理实用程序读取磁盘上的图像目录。
- 从头开始编写您自己的输入管道 使用
tf.data
。 - 从 目录 中下载数据集,该目录在 TensorFlow 数据集 中可用。
加载视频数据: 使用 UCF101 人类动作数据集 加载和预处理 AVI 视频数据。
卷积神经网络 (CNN): 使用 卷积神经网络 (CNN) 训练一个简单的模型来对 CIFAR 图像 进行分类,使用 Keras API。
图像分类: 使用
tf.keras.Sequential
模型对花卉图像进行分类,并使用tf.keras.utils.image_dataset_from_directory
加载数据。迁移学习和微调: 通过从预训练网络迁移学习来对猫和狗的图像进行分类。
数据增强: 通过应用随机(但现实)变换(例如图像旋转)来增加训练集的多样性。
使用 3D 卷积神经网络进行视频分类: 使用 UCF101 动作识别数据集训练一个 3D 卷积神经网络 (CNN) 用于视频分类。
使用 MoViNet 进行视频分类的迁移学习: 使用预训练的 MoViNet 模型和 UCF101 数据集 对视频进行分类以执行动作识别任务。