ホームページ  >  記事  >  テクノロジー周辺機器  >  一般的に使用される 12 の画像データ補正技術のまとめ

一般的に使用される 12 の画像データ補正技術のまとめ

王林
王林転載
2023-04-11 22:49:012066ブラウズ

機械学習または深層学習モデルをトレーニングする目標は、「汎用」モデルになることです。これには、モデルがトレーニング データセットに過剰適合しないことが必要です。つまり、モデルが目に見えないデータをよく理解している必要があります。データ拡張も、過剰適合を回避するための多くの方法の 1 つです。

モデルのトレーニングに使用されるデータの量を拡大するプロセスは、データ拡張と呼ばれます。複数のデータ型を使用してモデルをトレーニングすることにより、より「一般化された」モデルを取得できます。 「複数のデータ型」とはどういう意味ですか?この記事では、「画像」データ拡張テクノロジについてのみ説明し、さまざまな画像データ拡張戦略を詳細に紹介するだけです。また、PyTorch を使用して、主に画像データやコンピューター ビジョンで使用されるデータ拡張テクニックを実践して実装します。

一般的に使用される 12 の画像データ補正技術のまとめ


#データ拡張テクノロジーが導入されているためです。したがって、画像を 1 つだけ使用してください。最初にビジュアル コードを見てみましょう。

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)

一般的に使用される 12 の画像データ補正技術のまとめ

クロッピング

この手法は、選択した画像の一部を新しい画像に適用します。たとえば、CenterCrop を使用すると、中央が切り取られた画像が返されます。

transform = transforms.CenterCrop((224, 224))
 imshow(path, transform)

一般的に使用される 12 の画像データ補正技術のまとめ

RandomResizeCrop

このメソッドは、トリミングとサイズ変更を同時に組み合わせます。

transform = transforms.RandomResizedCrop((100, 300))
 imshow(path, transform)

一般的に使用される 12 の画像データ補正技術のまとめ

Flipping

画像を水平方向または垂直方向に反転します。以下のコードは、画像に水平方向の反転を適用しようとします。

transform = transforms.RandomHorizontalFlip()
 imshow(path, transform)

一般的に使用される 12 の画像データ補正技術のまとめ

パディング

パディングは、画像のすべての端に指定された量をパディングすることで構成されます。各エッジを 50 ピクセルで塗りつぶします。

transform = transforms.Pad((50,50,50,50))
 imshow(path, transform)

一般的に使用される 12 の画像データ補正技術のまとめ

Rotation

画像にランダムな回転角度を適用します。この角度を 15 度に設定します。

transform = transforms.RandomRotation(15)
 imshow(path, transform)

一般的に使用される 12 の画像データ補正技術のまとめ

ランダム アフィン

このテクニックは、中心を変更しないままにする変換です。この手法にはいくつかのパラメータがあります:

    degrees: 回転角度
  • translate: 水平方向および垂直方向の移動
  • scale: スケーリング パラメータ
  • share: 画像トリミングパラメータ
  • fillcolor: 画像の外側の塗りつぶしの色
  • transform = transforms.RandomAffine(1, translate=(0.5, 0.5), scale=(1, 1), shear=(1,1), fillcolor=(256,256,256))
     imshow(path, transform)

一般的に使用される 12 の画像データ補正技術のまとめ

ガウスぼかし

画像は次のようになります。ガウスぼかし処理を使用してぼかします。

transform = transforms.GaussianBlur(7, 3)
 imshow(path, transform)

一般的に使用される 12 の画像データ補正技術のまとめ

グレースケール

カラー画像をグレースケールに変換します。

transform = transforms.Grayscale(num_output_channels=3)
 imshow(path, transform)

一般的に使用される 12 の画像データ補正技術のまとめ

カラー エンハンスメントは、カラー ディザリングとも呼ばれ、ピクセル値を変更することで画像のカラー プロパティを変更するプロセスです。以下のメソッドはすべて色関連の操作です。

明るさ

画像の明るさを変更する元の画像と比較して、結果の画像が暗くなったり、明るくなったりします。

transform = transforms.ColorJitter(brightness=2)
 imshow(path, transform)

一般的に使用される 12 の画像データ補正技術のまとめ

コントラスト

画像の最も暗い部分と最も明るい部分の間の違いの程度をコントラストと呼びます。画像のコントラストも強調として調整できます。

transform = transforms.ColorJitter(cnotallow=2)
 imshow(path, transform)

一般的に使用される 12 の画像データ補正技術のまとめ

Saturation

一般的に使用される 12 の画像データ補正技術のまとめ中颜色的分离被定义为饱和度。

transform = transforms.ColorJitter(saturatinotallow=20)
 imshow(path, transform)

一般的に使用される 12 の画像データ補正技術のまとめ

Hue

色调被定义为一般的に使用される 12 の画像データ補正技術のまとめ中颜色的深浅。

transform = transforms.ColorJitter(hue=2)
 imshow(path, transform)

一般的に使用される 12 の画像データ補正技術のまとめ

总结

图像本身的变化将有助于模型对未见数据的泛化,从而不会对数据进行过拟合。以上整理的都是我们常见的数据增强技术,torchvision中还包含了很多方法,可以在他的文档中找到:https://pytorch.org/vision/stable/transforms.html

以上が一般的に使用される 12 の画像データ補正技術のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。