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 Datasets 是一个可与 TensorFlow 配合使用的现成数据集集合。许多数据集(例如 MNIST、Fashion-MNIST 和 TF Flowers)都可用于开发和测试计算机视觉算法。
从哪里开始
以下资源将帮助您上手 TensorFlow 和 Keras CV 工具。
- KerasCV:KerasCV 的文档和资源。
- KerasCV 开发人员指南:使用 KerasCV 执行常见 CV 任务的指南。如果您是 KerasCV 的新手,使用 KerasCV 进行分类 是一个很好的起点。
TensorFlow 教程:核心 TensorFlow 文档(本指南)包含许多 CV 和图像处理教程。
- 基础分类:对服装图像进行分类:训练一个神经网络模型来对服装图像(如运动鞋和衬衫)进行分类。
加载和预处理图像:通过三种方式加载和预处理图像数据集
- 使用高级 Keras 预处理实用工具读取磁盘上的图像目录。
- 使用
tf.data从零开始编写您自己的输入流水线。 - 从 TensorFlow Datasets 中提供的大型目录下载数据集。
加载视频数据:使用 UCF101 人类动作数据集加载和预处理 AVI 视频数据。
卷积神经网络 (CNN):使用 Keras API 训练一个简单的卷积神经网络 (CNN) 来对 CIFAR 图像进行分类。
图像分类:使用
tf.keras.Sequential模型对花卉图像进行分类,并使用tf.keras.utils.image_dataset_from_directory加载数据。迁移学习和微调:通过使用预训练网络的迁移学习来对猫狗图像进行分类。
数据增强:通过应用随机(但逼真)的变换(例如图像旋转)来增加训练集的多样性。
使用 3D 卷积神经网络进行视频分类:使用 UCF101 动作识别数据集训练一个 3D 卷积神经网络 (CNN) 进行视频分类。
使用 MoViNet 进行视频分类的迁移学习:使用预训练的 MoViNet 模型和 UCF101 数据集对视频进行分类,以完成动作识别任务。