本文へ移動

G検定(ジェネラリスト検定)

こんとらすと

コントラスト

Contrast

画像の明暗の対比の強さを無作為に変化させるデータ拡張の手法。PyTorchのColorJitterクラスでは、係数contrast_factorを指定の範囲から一様に選んで変化させる。

詳しい説明

定義

コントラストの調整は、画像の明暗の対比の強さを無作為に変化させるデータ拡張の手法です。明るい部分と暗い部分の差を強めたり弱めたりした画像を学習の時点で作り出し、1枚の画像から見え方の異なる学習データを複数得ます。

ColorJitterクラスの中での位置づけ

PyTorchの画像処理ライブラリtorchvisionにはColorJitterというクラスがあります。公式ドキュメントはこのクラスを、画像の明るさ、コントラスト、彩度、色相を無作為に変化させるものと説明しています。ジッター(jitter)は細かく変動させることを指し、コントラストのジッターは、このクラスが扱う4つの項目のうちの1つです。明るさ、彩度、色相も同じクラスの中で同時に変化させられます。

パラメータの指定方法

コントラストをどれだけ変動させるかは、引数contrastで指定します。渡せる値は、1つの浮動小数点数か、最小値と最大値の組(タプル)です。

  • 1つの数を渡した場合、係数contrast_factorは[max(0, 1 - contrast), 1 + contrast]の範囲から一様に選ばれます。たとえばcontrastに0.5を渡すと、範囲は[0.5, 1.5]です。
  • 最小値と最大値の組を渡した場合、係数はその[最小値, 最大値]の範囲から一様に選ばれます。
  • どちらの指定方法でも、値は非負でなければなりません。

式の形から読み取れること

1つの数で指定したとき、範囲は1を挟んで上下に同じ幅で広がります。ただし下限にはmax(0, 1 - contrast)という形が付いているため、contrastに1を超える値を渡しても下限は0で止まり、負の係数は選ばれません。たとえばcontrastに2を渡すと、範囲は[0, 3]になります。

なお、同じクラスの色相だけは範囲の決め方が異なり、係数hue_factorは[-hue, hue]から選ばれます。コントラストの範囲が1を基準に決まることと区別しておくと、引数の意味を取り違えにくくなります。

試験で問われること

G検定

  • コントラストの調整は、画像の明暗の対比の強さを無作為に変化させるデータ拡張の手法であり、明暗の差を強めたり弱めたりした画像を作って、1枚の画像から見え方の異なる学習データを得るために使われる。
  • PyTorchのtorchvision.transforms.ColorJitterクラスは、明るさ、コントラスト、彩度、色相をまとめて無作為に変化させるクラスであり、コントラストのジッターはこのクラスが扱う4つの項目の1つとして提供されている。
  • 引数contrastに1つの数を渡すと、係数contrast_factorは[max(0, 1 - contrast), 1 + contrast]の範囲から一様に選ばれるため、たとえば0.5を渡すと範囲は[0.5, 1.5]になる。
  • 引数contrastには最小値と最大値の組を渡すこともでき、その場合は係数contrast_factorが指定した[最小値, 最大値]の範囲から一様に選ばれ、どちらの指定方法でも値は非負でなければならない。
  • 下限がmax(0, 1 - contrast)と定められているため、contrastに1を超える値を渡しても係数の下限は0で止まり、負の係数は選ばれないことを、式の形から読み取れるようにしておく。

最終更新日: 2026/09/23