🤖
ColabとGoogleドライブで画像をリサイズするよ😇
学習データを整形したい
機械学習用に集めたデータのサイズを合わせたり、顔認証で顔中心に切り抜いたりする際に、最初の関門はデータセットの作り方です。なかなか公開されているデータセットはコンプラに重点を置いており「すげーなー」ってなるけど、これを何に使うのか?となりがちです。で、初歩の初歩として、素材を整える必要があります。それがGoogleドライブの画像を整形して保存することになります。
ColabでGoogleドライブをマウントして
先人たちを参考にColabで以下を記述してポチポチしていきます。
pip install Pillow
import os #ファイルやフォルダ操作
from PIL import Image #PillowからImageをインポート
from google.colab import drive #Googleドライブとの連携
from google.colab import files
drive.mount("/content/drive")
なぜ「/content/drive」なのかと思いましたが、海外でも国内でもみんなこう記述しています。別になんでもいいと思うけど。
リサイズはいったんこれを引用しました
どうも機械学習は正方形でできれば顔のドアップでサイズが小さいものに留まっております。全体像なるデータセットもありますが、あと数年たたないと安定しなそう。とはいえ日進月歩で、とりあえず、初歩中の初歩リサイズを行います。
def keepAspectResizeSimple(path, size):
# 画像の読み込み
image = Image.open(path)
# サイズを幅と高さにアンパック
width, height = size
# 矩形と画像の幅・高さの比率の小さい方を拡大率とする
ratio = min(width / image.width, height / image.height)
# 画像の幅と高さに拡大率を掛けてリサイズ後の画像サイズを算出
resize_size = (round(ratio * image.width), round(ratio * image.height))
# リサイズ後の画像サイズにリサイズ
resized_image = image.resize(resize_size)
return resized_image
このリサイズは短い方に合わせるので、サイズを均一に出来るわけではないですが、一旦これを選んで試しました。
リサイズを実施
dir_name = "/content/drive/MyDrive/ここから/ディレクトリを/指定する/日本語OK" #画像が入っているフォルダ
new_dir_name = "/content/drive/MyDrive/ここから/ディレクトリを/指定する/日本語OK" #保存する先のフォルダ
files = os.listdir(dir_name)
指定してリストを読み込みます。dir_nameの画像をリサイズしてnew_dir_nameに出力します。
resize_size = [360, 640]
for file in files:
photo_resize = keepAspectResizeSimple(os.path.join(dir_name, file), resize_size)
photo_resize.save(os.path.join(new_dir_name, file))
数十枚程度ですが、すぐに終わりました。
Discussion