この記事では、プログラミング言語Pythonを使って、巨大な写真からパッチを抽出する方法について説明します。
はじめに
深層学習アルゴリズムを学習する場合、小さい画像の方が良い結果が得られるので、小さい画像を使うのが望ましい。
しかし、巨大な画像がある場合はどうだろうか?一つの解決策は、大きな写真を小さなパッチに分割することで、どんなアルゴリズムでも学習できるようにすることです。
パッチとは何かと思われるかもしれません。
その名の通り、画像パッチは画像中のピクセルのグループです。
例えば、20×20ピクセルの画像があるとします。
この画像は、2×2ピクセルの正方形のパッチ1000個に分割することができます。
Python入門 Patchify
Pythonの Patchify は写真をトリミングし、トリミングまたはパッチした画像を Numpy 配列に保存するために使用するパッケージです。
しかし、その前にpipコマンドを使ってpatchifyがシステムにインストールされていることを確認してください。
| pip install patchify | 
Patchifyは、指定したパッチ単位の大きさに基づいて、写真を小さく重なる部分に分割し、その部分を元の画像と融合させることができます。
Python Patchify を使って画像のパッチを抽出する
さっそくこのモジュールを使って、ここから画像パッチの抽出を始めてみましょう。
1. モジュールのインポート
まず、大きな画像をパッチに変換するために必要なモジュールをインポートすることから始めます。
ここでは、画像データを作成するために Numpy を、画像から画像パッチに変換するために patchify モジュールを使用しています。
| 1 2 | importnumpy as npfrompatchify importpatchify | 
2. 画像データの作成
画像データをnumpyの array 形式で作成し、画像の初期形状を見てみましょう。
| 1 2 | image =np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13, 14, 15, 16]])print(image.shape) | 
3. 画像からパッチを抽出する
| 1 2 | patches =patchify(image, (2,2), step=2) print(patches.shape) | 
Complete Code and Output
| 1 2 3 4 5 6 | importnumpy as npfrompatchify importpatchifyimage =np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12], [13, 14, 15, 16]])print(image.shape)patches =patchify(image, (2,2), step=2) print(patches.shape) | 
| (4, 4)(2, 2, 2, 2) | 
コンセプトが理解でき、パッチの生成も理解できたのではないでしょうか?3D画像にも応用できます。
ぜひ試してみてください。
