OpenCV C ++ LibのHOGDescriptorを使用して、画像の特徴ベクトルを計算します。ソース画像の特徴を視覚化したいと思います。誰か助けてもらえますか?
4 に答える
今日もまったく同じ問題がありました。HOGDescriptor
OpenCVの関数を使用して64x128画像のベクトルを計算するのHOGDescriptor::compute()
は簡単ですが、それを視覚化するための組み込み機能はありません。
最後に、勾配方向の大きさが3870の長いHOG記述子ベクトルにどのように格納されるかを理解することができました。
ここで視覚化するための私のC++コードを見つけることができますHOGDescriptor
:
それが役に立てば幸い!
ユルゲン
HOGgles¹は、HOGの視覚化のために開発されたメソッドであり、ICCV2013で公開されています。例を次に示します。
この視覚化ツールは、HOGの勾配ベクトルをプロットするよりも便利な場合があります。これは、特定のサンプルでHOGが失敗した理由がよくわかるためです。
詳細については、http ://web.mit.edu/vondrick/ihog/をご覧ください。
¹C。Vondrick、A。Khosla、T。Malisiewicz、A。Torralba 「HOGgles:オブジェクト検出機能の視覚化」コンピュータビジョン国際会議(ICCV)、オーストラリア、シドニー、2013年12月。
この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
ユルゲン・ブラウアーに基づいた、任意のblockSize
およびのHOGImageを再実装します。https://github.com/zhouzq-thu/HOGImagecellSize
を参照してください。