・pythonを使って画像の読み込み方法がわかる
・transformsのComposeの使い方がわかる。
![]() |
メイドさん |
PyTorchで画像の前処理としてtransformsのComposeがよく使われます。
Composeは、一括で加工ができるため大変便利ですが、Composeの挙動が意外に分かりづらかったりします。
今回は、Composeを使うと、画像がどのように変換されるか解説します。
いますぐにでもAI(機械学習)が学べるプログラミングスクールを検討している方へ! [afTag id=2402] 筆者について 筆者は、AIプログラミングスクールに通っていた経験がある現役エンジニアです。 筆者は、K[…]
準備として
transforms.Composeの挙動を確認する前に1枚の画像を用意します。
今回は、ポートレート撮影モデルの未来さんの画像を使わせていただきます!
以下、元画像を読み込むpythonプログラム。
from PIL import Image
#元画像を読み込む
img = Image.open("DSC_0474.jpg")
print("元画像のサイズは(1280, 850)")
print(img.size)
transforms.Composeの挙動を確認する2つの実装方法
transforms.Composeの挙動を確認する2つの実装例を紹介します。
実行環境は、jupyter notebookを想定しています。
画像を512ピクセルにリサイズしてみる
以下のコードを実行して、元画像を512ピクセルにリサイズしてみます。
#リサイズの設定
imsize = 512
#ここでは、画像のサイズを512に合わせる
loader = transforms.Compose([
transforms.Resize(imsize)]) # リサイズ
def image_loader(image_name):
image = Image.open(image_name)
#ここでtransforms.Composeを適用する
image = loader(image)
return image
style_img = image_loader("DSC_0474.jpg")
print("変換後の画像のサイズは")
print(style_img.size)
style_img
結果は以下の通りに、最小ピクセルが512(※ブログの仕様上、見た目が512になっていないことがあります)になりました。
画像をリサイズの後にグレースケールに変換する
元画像を512にリサイズした後に、グレースケールに変換してみます。
#リサイズの設定
imsize = 512
#画像サイズの変更とグレースケールを組み合わせてみる
loader = transforms.Compose([
transforms.Resize(imsize), #リサイズ
transforms.Grayscale()]) # グレースケールに変換
def image_loader(image_name):
image = Image.open(image_name)
image = loader(image)
return image
style_img = image_loader("DSC_0474.jpg")
print("変換後の画像のサイズは")
print(style_img.size)
style_img
元画像が、リサイズされてグレースケールの画像に変換されたことがわかるかと思います。
このように、transforms.Composeを使うと、複数の操作が簡単に記述できることがわかります。
全体的なソースコード
今回の記事について、全体的なコードは以下のとおりです。
まとめ
transformsのComposeの使い方が、少しでも理解できたのではないかと思います。
Composeは、kaggleの画像処理系のコンペでよく使われるので、ぜひ使いこなしたいテクニックです!
プログラミング・実務経験がある方も必見!
空いた時間をスキルアップ・収入増に使ってみませんか?