http://www.cs.berkeley.edu/~rbg/latent/voc-release5.tgz提供的代码广泛用于对象检测。有一个 imgdetect 函数,它返回 ds , bs 和树。似乎 ds 包含检测框, bs 包含图像中用于检测的哪些过滤器,而树包含有关该部件的一些信息分数。我无法找到如何使用树和 bs 获得部分分数。基本上,给定一个检测框,我想找出检测中响应的滤波器以及用于检测物体的每个滤波器(子部分)的分数。
答案 0 :(得分:0)
我想出了如何做到这一点,在gdetect_parse.m的末尾添加以下行,边界框(x1,x2,y1,y2)将对应于 bs 中的框分数将在树{i}
的倒数第二行node_id = 8; //确保它是一个叶子节点,即第二行树{i}应为1
tree_id = 1; //其中一个检测树
scale =(model.sbin / pyra.scales(trees {tree_id}(8,node_id)));
x1 =(trees {tree_id}(6,node_id) - 1 - pyra.padx *(2 ^ trees {tree_id}(9,node_id)))* scale + 1
y1 =(trees {tree_id}(7,node_id) - 1 - pyra.pady *(2 ^ trees {tree_id}(9,node_id)))* scale + 1
filter_id = model.symbols(trees {1}(3,node_id))。filter;
fx = model.filters(filter_id).size(2);
fy = model.filters(filter_id).size(1);
x2 = x1 + fx * scale - 1
y2 = y1 + fy * scale - 1