ホームページ  >  記事  >  バックエンド開発  >  Numpy スライスは効率的なランダム画像トリミングに使用できますか?

Numpy スライスは効率的なランダム画像トリミングに使用できますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-03 21:02:03324ブラウズ

Can Numpy Slices Be Used for Efficient Random Image Cropping?

Numpy スライスを使用した効率的な画像トリミング

Numpy スライスを使用して画像をトリミングする最適化されたアプローチを求めて、あるユーザーがストライドの実現可能性に疑問を抱きました。単一のランダムな作物を生成するためのベースの方法pass.

Stride-based Patch Extraction

応答では、入力のスライディング ウィンドウ ビューを作成するために np.lib.stride_tricks.as_strided または scikit-image の view_as_windows を活用することを提案しています。配列。このメソッドは、追加のオーバーヘッドを発生させることなくメモリ効率を維持します。

View_as_Windows 説明

view_as_windows を使用すると、ユーザーは、ウィンドウの各次元に沿ったスライディング ウィンドウ サイズを表す window_shape 引数を指定できます。入力配列。スライスを目的としていない軸は、値 1 を受け取ります。スライス後の結果の配列には、これらの 1 つの値に対応するシングルトン次元 (長さ 1) のビューが含まれます。

Solution

提案される解決策には、view_as_windows を利用してスライディング ウィンドウを抽出し、ランダムに生成されたウィンドウに基づいてこれらのウィンドウにインデックスを付けることが含まれます。 offsets:

<code class="python"># Get sliding windows
w = view_as_windows(X, (1, 16, 16, 1))[..., 0, :, :, 0]

# Index and get specific windows
out = w[np.arange(X.shape[0]), x, y]

# Reshape to match loopy code format (optional)
out = out.transpose(0, 2, 3, 1)</code>

このアプローチにより、画像ごとに個別のランダム オフセットを使用して画像を効率的にトリミングできるようになり、for ループの必要がなくなります。

以上がNumpy スライスは効率的なランダム画像トリミングに使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。