ホームページ > 記事 > テクノロジー周辺機器 > 一般的に使用される 12 の画像データ補正技術のまとめ
機械学習または深層学習モデルをトレーニングする目標は、「汎用」モデルになることです。これには、モデルがトレーニング データセットに過剰適合しないことが必要です。つまり、モデルが目に見えないデータをよく理解している必要があります。データ拡張も、過剰適合を回避するための多くの方法の 1 つです。
モデルのトレーニングに使用されるデータの量を拡大するプロセスは、データ拡張と呼ばれます。複数のデータ型を使用してモデルをトレーニングすることにより、より「一般化された」モデルを取得できます。 「複数のデータ型」とはどういう意味ですか?この記事では、「画像」データ拡張テクノロジについてのみ説明し、さまざまな画像データ拡張戦略を詳細に紹介するだけです。また、PyTorch を使用して、主に画像データやコンピューター ビジョンで使用されるデータ拡張テクニックを実践して実装します。
import PIL.Image as Image import torch from torchvision import transforms import matplotlib.pyplot as plt import numpy as np import warnings def imshow(img_path, transform):Resize/Rescaleこの関数は、画像の高さと幅を必要に応じて調整するために使用されます。特定のサイズ。以下のコードは、画像を元のサイズから 224 x 224 にサイズ変更することを示しています。
path = './kitten.jpeg' transform = transforms.Resize((224, 224)) imshow(path, transform)クロッピングこの手法は、選択した画像の一部を新しい画像に適用します。たとえば、CenterCrop を使用すると、中央が切り取られた画像が返されます。
transform = transforms.CenterCrop((224, 224)) imshow(path, transform)RandomResizeCropこのメソッドは、トリミングとサイズ変更を同時に組み合わせます。
transform = transforms.RandomResizedCrop((100, 300)) imshow(path, transform)Flipping 画像を水平方向または垂直方向に反転します。以下のコードは、画像に水平方向の反転を適用しようとします。
transform = transforms.RandomHorizontalFlip() imshow(path, transform)パディングパディングは、画像のすべての端に指定された量をパディングすることで構成されます。各エッジを 50 ピクセルで塗りつぶします。
transform = transforms.Pad((50,50,50,50)) imshow(path, transform)Rotation画像にランダムな回転角度を適用します。この角度を 15 度に設定します。
transform = transforms.RandomRotation(15) imshow(path, transform)ランダム アフィンこのテクニックは、中心を変更しないままにする変換です。この手法にはいくつかのパラメータがあります:
transform = transforms.RandomAffine(1, translate=(0.5, 0.5), scale=(1, 1), shear=(1,1), fillcolor=(256,256,256)) imshow(path, transform)
transform = transforms.GaussianBlur(7, 3) imshow(path, transform)グレースケールカラー画像をグレースケールに変換します。
transform = transforms.Grayscale(num_output_channels=3) imshow(path, transform)カラー エンハンスメントは、カラー ディザリングとも呼ばれ、ピクセル値を変更することで画像のカラー プロパティを変更するプロセスです。以下のメソッドはすべて色関連の操作です。 明るさ画像の明るさを変更する元の画像と比較して、結果の画像が暗くなったり、明るくなったりします。
transform = transforms.ColorJitter(brightness=2) imshow(path, transform)コントラスト画像の最も暗い部分と最も明るい部分の間の違いの程度をコントラストと呼びます。画像のコントラストも強調として調整できます。
transform = transforms.ColorJitter(cnotallow=2) imshow(path, transform)
一般的に使用される 12 の画像データ補正技術のまとめ中颜色的分离被定义为饱和度。
transform = transforms.ColorJitter(saturatinotallow=20) imshow(path, transform)
色调被定义为一般的に使用される 12 の画像データ補正技術のまとめ中颜色的深浅。
transform = transforms.ColorJitter(hue=2) imshow(path, transform)
图像本身的变化将有助于模型对未见数据的泛化,从而不会对数据进行过拟合。以上整理的都是我们常见的数据增强技术,torchvision中还包含了很多方法,可以在他的文档中找到:https://pytorch.org/vision/stable/transforms.html
以上が一般的に使用される 12 の画像データ補正技術のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。