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 サイトの他の関連記事を参照してください。