こんにちは、画像のバッチの 6 つのクラスでピクセル単位の分類を実行する畳み込みニューラル ネットワークがあります。ネットワークの出力にスーパーピクセル アルゴリズム (opencv のもの) を適用したいと思います。実際には、スーパーピクセルは入力画像から計算され、ネットワーク出力内のこれらのスーパーピクセル位置ごとに、出力クラスのモードを計算して、入力画像のすべてのスーパーピクセルに対して同じ出力クラスを取得します。 . フィードフォワード パス中のネットワークの出力は [batch, w, h, 6] サイズのテンソルであるため、テンソルを [batch*w, h, 6] に再形成し、すべてのクラスに対して反復することを考えていました ( i in range(6)) を作成し、スーパーピクセルごとにそのクラスのモードを計算してから、元のサイズに再形成します。
numpy ベースのスクリプトでコーディングする内容は、次のようになります。
for i in range ( number of superpixels):
for j in range(number of classes=6):
mask = superpixel_location[i]
net_new_output[:,:,j][mask] = mode(net_output[:,:,j][mask])
これはnumpyでコーディングするのは間違いなく簡単ですが、forループの実装方法やそれらの管理方法がわからないため、テンソルフローで実行しようとすると問題が発生します。
あなたは私を助けることができます?
ありがとうございました、
MC