本文へ移動

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

ろてーと

回転

Rotate

画像を指定した角度だけ回転させるデータ拡張の手法。角度は範囲で指定し、その中から選んだ角度で回転させる。回転で生じる画素の位置のずれは補間の方式を指定して補う。

詳しい説明

回転とは

回転は、画像を指定した角度だけ回転させるデータ拡張の手法です。向きを変えた画像を学習に使うことで、手元の画像から別の見え方の画像を作れます。G検定ではシラバス2024のキーワードに含まれる、データ拡張の手法の一つです。

PyTorchでの実装

PyTorchの画像処理ライブラリtorchvisionには、この手法を行うクラスとしてRandomRotationがあります。公式ドキュメントは、このクラスの働きを、画像を角度に応じて回転させるもの(Rotate the image by angle)と説明しています。主な引数は、角度の範囲を決めるdegreesと、補間の方式を決めるinterpolationの2つです。

角度の範囲の指定(degrees)

degreesには、回転に使う角度の範囲を渡します。(最小値, 最大値)のように2つの値の組で指定でき、回転の角度はこの範囲の中から選ばれます。クラス名にRandomとあるとおり、1つの角度に固定するのではなく、範囲から角度を選ぶ仕組みです。

数値を1つだけ渡した場合は、その数のマイナスからプラスまでの範囲として解釈されます。例えば30を渡すと、マイナス30度からプラス30度までの範囲になります。左右どちらの向きにも同じ幅で回したいときは、数値1つで指定できます。

補間の方式の指定(interpolation)

画像は格子状に並んだ画素の集まりです。これを回転させると、回転後の画素の位置は元の格子の位置からずれます。そのため、新しい位置の画素の値をどのように補うかを決める必要があります。この処理が補間です。

interpolationは、この補間の方式を指定する引数です。値は、torchvisionのInterpolationModeという列挙型で定義されたものの中から選びます。

押さえておきたい点

回転の振る舞いは、角度の範囲(degrees)と補間の方式(interpolation)の2つで決まります。特に、degreesに数値を1つ渡すとプラスとマイナスに対称な範囲になる点は、30を渡すとマイナス30度からプラス30度になるという例とあわせて確認しておくとよいでしょう。

試験で問われること

G検定

  • 回転は画像を指定した角度だけ回転させるデータ拡張の手法で、PyTorchのtorchvisionではRandomRotationクラスとして用意され、公式ドキュメントでは画像を角度に応じて回転させるものと説明されている。
  • degreesパラメータは回転に使う角度の範囲を指定するもので、(最小値, 最大値)のような2つの値の組を渡すと、回転の角度はその範囲の中から選ばれ、1つの角度に固定されるわけではない。
  • degreesに数値を1つだけ渡した場合は、その数のマイナスからプラスまでの範囲として解釈されるため、例えば30を渡すとマイナス30度からプラス30度までの範囲から角度が選ばれることになる。
  • 画像を回転させると、回転後の画素の位置が元の格子状の画素の位置からずれるため、新しい位置の画素の値をどのように補うかを決める補間の処理が必要になる点を押さえておく。
  • interpolationパラメータは回転時の補間の方式を指定するもので、torchvisionのInterpolationModeで定義された列挙型の値から選び、degreesとあわせて回転の振る舞いを決める主な設定となる。

最終更新日: 2026/09/23