この記事でわかること
・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万円以上の大幅アップがある |
転職サポート内容 |
|
|
|
公式サイト | リクナビネクスト | テックゲート | レバテックキャリア |