TensorFlow 提供多種電腦視覺 (CV) 和圖片分類工具。本文件將介紹其中一些工具,並概述相關資源,協助您開始執行常見的 CV 工作。
視覺程式庫與工具
TensorFlow 透過高階 Keras 程式庫和低階 tf.image
模組提供 CV 工具。在大多數情況下,Keras 程式庫會比內建的 TensorFlow 替代方案更方便。但如果 Keras 選項不符合您的使用案例,或者您想要對圖片預先處理進行更低階的控制,您可能需要使用低階 TensorFlow 工具。
KerasCV
如果您剛開始進行 CV 專案,並且不確定需要哪些程式庫和工具,那麼 KerasCV 會是不錯的起點。KerasCV 是以 Keras Core 為基礎建構的模組化 CV 元件程式庫。KerasCV 包含模型、層、指標、回呼和其他工具,可擴充高階 Keras API 以用於 CV 工作。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 Datasets
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):訓練簡易卷積神經網路 (CNN),使用 Keras API 分類 CIFAR 圖片。
圖片分類:使用
tf.keras.Sequential
模型分類花卉圖片,並使用tf.keras.utils.image_dataset_from_directory
載入資料。遷移學習與微調:透過使用預先訓練網路的遷移學習,分類貓和狗的圖片。
資料擴增:透過套用隨機 (但真實) 轉換 (例如圖片旋轉) 來增加訓練集的多元性。
使用 3D 卷積神經網路進行影片分類:使用 UCF101 動作辨識資料集,訓練用於影片分類的 3D 卷積神經網路 (CNN)。
使用 MoViNet 進行影片分類遷移學習:使用預先訓練的 MoViNet 模型和 UCF101 資料集,針對動作辨識工作分類影片。