1-06 サルの画像を加工する

■サル画像を反転/拡大(縮小)/回転して水増し

 ロードマップ(図1‐03)に戻って現在地を確認しましょう。「サル画像1枚生成」から”rembg”で「背景切り取り」が終わったところです。次は「画像加工」で、背景切り取り後の1枚を3枚に増やします。


●右クリックでtmp1フォルダ作成(mkdir tmp1コマンドでもOK)

 前もって出力画像3枚を保存するフォルダを作成しましょう。ファイル枠で右クリックし、「新しいフォルダ」を選択します(図1‐24)。ファイル名は”tmp1”とします(図1‐25)。

図1‐24 フォルダを作成する


図1‐25 フォルダ名はtmp1

●サルが右を向いたり、左を向いたり、斜めを向いたり

 ”changeshape.py”(画像加工プログラム)をドラッグ&ドロップし、図1-26のように実行します。するとtmp1フォルダ内に0〜2.jpgが現れるのでダブルクリックで確認しましょう。図1-27のように元画像1枚を「反転/拡大(縮小)/回転」したものになります。

図1‐26 画像を加工するPythonプログラム


図1‐27 反転、拡大(縮小)、回転されたサル画像が3つ

●データ拡張用Pythonライブラリalbumentations

 リスト1‐04はchangeshape.pyの一部です(*9)。albumentations(*2)を使用して画像加工を行っています。同リストのように「加工具合」には確率的な振り幅があり、プログラムを実行するたびに結果(サルの向きや大きさ)は変わってきます。

(*9)参考資料: インターフェース誌2024年8月号特集・第1部第2章「1枚の画像を1万枚に!前処理&データ拡張」- 佐藤聖

リスト1‐04 changeshape.py (一部)。albumentationsで画像を加工する

●tmp2フォルダを作成してから再度背景切り取り

 加工後の画像3枚はJPGなので背景は透明ではありません。したがってもう一度「背景切り取り」を行って透明化します。図1-28のように”
tmp2”フォルダを作成し、ダウンロードアーカイブから”secondremove.py”(背景切り取りプログラム、2回目)をドラッグ&ドロップして実行します。するとtmp2フォルダに0〜2.pngが生成され、図1-29のようにそれぞれPNG形式で、背景が透明になっています。

図1‐28 背景切り取り(2回目)のプログラム


図1‐29 加工後(3枚)の画像の背景が透明に

●後の画像合成のために背景透明化、さらに画像を一回り小さく

 リスト1‐05にsecondremove.pyの一部を示します。rembgを使ってJPGファイルから背景を切り取り、PNG形式でセーブします。また画像を一回り小さく切り取っています(小さい方が合成の際の位置調整がしやすい)。

リスト1‐05 secondremove.py (一部)。背景をrembgで切り取る(2回目)

次のページへ

目次へ戻る