PatchifyとPythonを使って画像のパッチ処理を行い画像を分割する方法

スポンサーリンク

この記事では、プログラミング言語Pythonを使って、巨大な写真からパッチを抽出する方法について説明します。


スポンサーリンク

はじめに

深層学習アルゴリズムを学習する場合、小さい画像の方が良い結果が得られるので、小さい画像を使うのが望ましい。

しかし、巨大な画像がある場合はどうだろうか?一つの解決策は、大きな写真を小さなパッチに分割することで、どんなアルゴリズムでも学習できるようにすることです。

パッチとは何かと思われるかもしれません。

その名の通り、画像パッチは画像中のピクセルのグループです。

例えば、20×20ピクセルの画像があるとします。

この画像は、2×2ピクセルの正方形のパッチ1000個に分割することができます


Python入門 Patchify

Pythonの Patchify は写真をトリミングし、トリミングまたはパッチした画像を Numpy 配列に保存するために使用するパッケージです。

しかし、その前にpipコマンドを使ってpatchifyがシステムにインストールされていることを確認してください。

pip install patchify

Patchifyは、指定したパッチ単位の大きさに基づいて、写真を小さく重なる部分に分割し、その部分を元の画像と融合させることができます。


Python Patchify を使って画像のパッチを抽出する

さっそくこのモジュールを使って、ここから画像パッチの抽出を始めてみましょう。

1. モジュールのインポート

まず、大きな画像をパッチに変換するために必要なモジュールをインポートすることから始めます。

ここでは、画像データを作成するために Numpy を、画像から画像パッチに変換するために patchify モジュールを使用しています。

1
2
import numpy as np
from patchify import patchify

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
import numpy as np
from patchify import patchify
image = 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画像にも応用できます。

ぜひ試してみてください。


タイトルとURLをコピーしました