web-dev-qa-db-ja.com

HOGは、OpenCV、C ++のHOGDescriptorによる視覚化を特徴としています

OpenCV C++ LibのHOGDescriptorを使用して、画像の特徴ベクトルを計算します。ソース画像の特徴を視覚化したいと思います。誰か助けてもらえますか?

15
ChHaupt

今日もまったく同じ問題がありました。 OpenCVのHOGDescriptor::compute()関数を使用して64x128画像のHOGDescriptorベクトルを計算するのは簡単ですが、それを視覚化するための組み込み機能はありません。

最後に、勾配方向の大きさが3870の長いHOG記述子ベクトルにどのように格納されるかを理解することができました。

HOGDescriptorを視覚化するための私のC++コードはここにあります:

http://www.juergenbrauer.org/old_wiki/doku.php?id=public:hog_descriptor_computation_and_visualization

それが役に立てば幸い!

ユルゲン

27
Jürgen Brauer

HOGgles¹は、ICCV 2013で公開された、HOG視覚化用に開発されたメソッドです。例を次に示します。

What does HOG sees?

この視覚化ツールは、HOGの勾配ベクトルをプロットするよりも便利な場合があります。これは、特定のサンプルでHOGが失敗した理由がよくわかるためです。

詳細については、こちらをご覧ください: http://web.mit.edu/vondrick/ihog/


¹C。 Vondrick、A。Khosla、T。Malisiewicz、A。Torralba 「HOGgles:オブジェクト検出機能の視覚化」コンピュータビジョン国際会議(ICCV)、オーストラリア、シドニー、2013年12月。

13
Yamaneko

This opencvグループディスカッションは ブラウン大学で書かれたライブラリ につながります。

HOGpicture.m記述子を視覚化する方法を理解できるはずです。関連する(matlab)コードは次のとおりです。自分で何かを作るだけで十分ですか?

(以下のコードは MITライセンス でリリースされています)

function im = HOGpicture(w, bs)

% HOGpicture(w, bs)
% Make picture of positive HOG weights.

% construct a "glyph" for each orientation
bim1 = zeros(bs, bs);
bim1(:,round(bs/2):round(bs/2)+1) = 1;
bim = zeros([size(bim1) 9]);
bim(:,:,1) = bim1;
for i = 2:9,
  bim(:,:,i) = imrotate(bim1, -(i-1)*20, 'crop');
end

% make pictures of positive weights bs adding up weighted glyphs
s = size(w);    
w(w < 0) = 0;    
im = zeros(bs*s(1), bs*s(2));
for i = 1:s(1),
  iis = (i-1)*bs+1:i*bs;
  for j = 1:s(2),
    jjs = (j-1)*bs+1:j*bs;          
    for k = 1:9,
      im(iis,jjs) = im(iis,jjs) + bim(:,:,k) * w(i,j,k);
    end
  end
end
2
KobeJohn

ユルゲン・ブラウアーに基づいたblockSizecellSizeのHOGImageを再実装します。 https://github.com/zhouzq-thu/HOGImage を参照してください。

1
Zhiqiang Zhou