【python】画像の機械学習に必須!transformsのComposeの挙動を写真を使って解説!

  • 2020年8月2日
  • 2023年11月20日
  • Python
  • 4222view

この記事でわかること

・pythonを使って画像の読み込み方法がわかる

・transformsのComposeの使い方がわかる。

PyTorchで画像の前処理としてtransformsのComposeがよく使われます。
Composeは、一括で加工ができるため大変便利ですが、Composeの挙動が意外に分かりづらかったりします。
今回は、Composeを使うと、画像がどのように変換されるか解説します。

\IT未経験者からのサポートあり!転職サービス3選!!/

サービス名
未経験 未経験OK 未経験の転職専用 経験者向け
公開の求人数 ITエンジニア全体で1万件以上
ITエンジニア未経験で600件以上
未公開 5,000件以上
利用対象 全職種 IT特化 IT特化
特徴 ✓誰もが知る転職サービス
✓経歴を登録しておくとオファーが来る
✓企業担当者と条件交渉
✓スキルの身につく企業を紹介
✓IT専門のエージェントが対応
✓転職成功すると年収200万円以上の大幅アップがある
転職サポート内容
  • 求人検索
  • 企業担当者と交渉
  • 求人紹介
  • ライフプランのサポート
  • キャリア相談
  • 求人紹介
  • 提出書類の添削
  • 面接対策
公式サイト リクナビネクスト テックゲート レバテックキャリア

 

準備として

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の画像処理系のコンペでよく使われるので、ぜひ使いこなしたいテクニックです!

 

\IT未経験者からのサポートあり!転職サービス3選!!/

サービス名
未経験 未経験OK 未経験の転職専用 経験者向け
公開の求人数 ITエンジニア全体で1万件以上
ITエンジニア未経験で600件以上
未公開 5,000件以上
利用対象 全職種 IT特化 IT特化
特徴 ✓誰もが知る転職サービス
✓経歴を登録しておくとオファーが来る
✓企業担当者と条件交渉
✓スキルの身につく企業を紹介
✓IT専門のエージェントが対応
✓転職成功すると年収200万円以上の大幅アップがある
転職サポート内容
  • 求人検索
  • 企業担当者と交渉
  • 求人紹介
  • ライフプランのサポート
  • キャリア相談
  • 求人紹介
  • 提出書類の添削
  • 面接対策
公式サイト リクナビネクスト テックゲート レバテックキャリア
最新情報をチェックしよう!
>プログラミングスクール検索・比較表サイト

プログラミングスクール検索・比較表サイト

ワンクリック、さらに詳細に条件を指定してプログラミングスクールの検索ができます。さらに比較表により特徴を細かく比較できる!

CTR IMG