TensorFlow は、多数のコンピューター ビジョン (CV) および画像分類ツールを提供します。このドキュメントでは、これらのツールのいくつかを紹介し、一般的な CV タスクを開始するのに役立つリソースの概要を提供します。
ビジョンライブラリとツール
TensorFlow は、上位レベルの Keras ライブラリと下位レベルのtf.image
モジュールを通じて CV ツールを提供します。ほとんどのユースケースでは、組み込みの TensorFlow 代替ライブラリよりも Keras ライブラリの方が便利です。ただし、Keras オプションがユースケースに適合しない場合、または画像の前処理を下位レベルで制御したい場合は、下位レベルの TensorFlow ツールが必要になる可能性があります。
ケラスCV
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 および画像処理チュートリアルが含まれています。
- 基本分類: 衣類の画像を分類する: スニーカーやシャツなどの衣類の画像を分類するためにニューラル ネットワーク モデルをトレーニングします。
画像の読み込みと前処理: 次の 3 つの方法で画像データセットを読み込み、前処理します。
- 高レベルの Keras 前処理ユーティリティを使用して、ディスク上のイメージのディレクトリを読み取ります。
-
tf.data
を使用して独自の入力パイプラインを最初から作成します。 - TensorFlow Datasetsで利用可能な大規模なカタログからデータセットをダウンロードします。
ビデオ データのロード: UCF101 ヒューマン アクション データセットを使用して、AVI ビデオ データをロードし、前処理します。
畳み込みニューラル ネットワーク (CNN) : Keras APIを使用して単純な畳み込みニューラル ネットワーク(CNN) をトレーニングし、 CIFAR 画像を分類します。
画像分類:
tf.keras.Sequential
モデルを使用して花の画像を分類し、tf.keras.utils.image_dataset_from_directory
を使用してデータをロードします。転移学習と微調整: 事前トレーニングされたネットワークからの転移学習を使用して、猫と犬の画像を分類します。
データ拡張: 画像の回転などのランダムな (ただし現実的な) 変換を適用することで、トレーニング セットの多様性を高めます。
画像セグメンテーション: 修正されたU-Netを使用して画像セグメンテーションを実行します。
3D 畳み込みニューラル ネットワークによるビデオ分類: UCF101アクション認識データセットを使用して、ビデオ分類用の 3D 畳み込みニューラル ネットワーク (CNN) をトレーニングします。
MoViNet を使用したビデオ分類のための転移学習: 事前トレーニングされた MoViNet モデルとUCF101 データセットを使用して、動作認識タスク用にビデオを分類します。