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

王林
リリース: 2023-04-11 22:49:01
転載
2033 人が閲覧しました

機械学習または深層学習モデルをトレーニングする目標は、「汎用」モデルになることです。これには、モデルがトレーニング データセットに過剰適合しないことが必要です。つまり、モデルが目に見えないデータをよく理解している必要があります。データ拡張も、過剰適合を回避するための多くの方法の 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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!