【发布时间】:2016-02-11 03:18:25
【问题描述】:
我一直在寻找关于特征金字塔进行识别的文献(在我的例子中,行人来自 1280 x 960 的相机图像),大多数文本似乎都建议将每一步的大小减半。但是,我came across this code 使用:
#define LAMBDA 10
#define SIDE_LENGTH 8
step = powf(2.0f, 1.0f / ((float)LAMBDA));
maxNumCells = W / SIDE_LENGTH;
if( maxNumCells > H / SIDE_LENGTH )
{
maxNumCells = H / SIDE_LENGTH;
}
numStep = (int)(logf((float) maxNumCells / (5.0f)) / logf( step )) + 1;
这在我的图像金字塔上提供了 46 个步骤,一直到 54 x 40 的图像,每帧大约需要 0.7 秒!将 LAMBDA 值降低到 2 可以让我获得 10 步和近乎实时的输出,并且与我丢失更少的中间帧一样好,如果不是更好的话。
那么,我通过降低金字塔来换取什么?是否有估算所需步骤的经验法则?金字塔的顶部应该有多小?
编辑:我正在使用的算法在Object Detection with Discriminatively Trained Part Based Models 中进行了描述。
(我对代码质量也不是很自信,/ logf( step ) 显然可以替换为* LAMBDA,但这完全是另一回事)
【问题讨论】:
标签: c++ image-processing computer-vision feature-detection