如何利用基于特殊训练部分的模型获得物体检测中的零件得分

时间:2014-01-09 02:43:42

标签: matlab image-processing computer-vision object-detection object-recognition

http://www.cs.berkeley.edu/~rbg/latent/voc-release5.tgz提供的代码广泛用于对象检测。有一个 imgdetect 函数,它返回 ds bs 。似乎 ds 包含检测框, bs 包含图像中用于检测的哪些过滤器,而包含有关该部件的一些信息分数。我无法找到如何使用 bs 获得部分分数。基本上,给定一个检测框,我想找出检测中响应的滤波器以及用于检测物体的每个滤波器(子部分)的分数。

1 个答案:

答案 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