您的位置:首页 > 其它

codebook 背景建模更新及码本模型如何释放内存

2015-05-07 11:01 302 查看
原文链接:/article/9789203.html

在使用codebook背景建模过程中,对于模型的背景更新始终一个问题。

1 我们要求的目标是:

1 在人静止不动时,不能把人更新成背景(必须保证人始终是前景);

2 但是对于移动的书本等要能够被更新成背景

2 提出的解决办法:

2.1 采用两个codebook背景模型,

一个模型:主模型M,用来分割前景

另一个模型:重新建模模型R,满足条件后重新建模成功,R替代M;如果重新建模失败,需释放掉R

R替代M后,要将M释放掉,然后重新初始化一份R

temp = M;
M = R;
free(temp);
R = Init();


如何释放存在的codebook码本模型?

void CodeBookDestroy(codeBook* T, int len) //len = width*height
{
for(int j = 0; j < len; j++)
{
if (T[j].cb)
{
for (int i = 0; i < T[j].numEntries; i++)
{
delete T[j].cb[i];
}
delete [] T[j].cb;
}
}
if (T)
delete [] T;
T = NULL;
}


2.2 重新建模的条件(满足一个即可)

统计当前帧中前景点的比例 p:

1. 画面没有前景时, 意味着此时房间没有人 (p<Th无人p < Th_{无人})

2. 有太多的前景时,意味着光线发生了变化或摄像头被移动,或背景模型计算不准确(p>Th光线变化p > Th_{光线变化})

3 参考论文

Smart Vision for Managed Home Care:

http://download.csdn.net/detail/quzhongxin/8671203
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: