这是一篇背景建模提取运动目标的文章,在opencv的例程Blobtrack中属于可选择的一种前景建模方法,虽然还不知道前景检测的方法是怎么被选择的。该方法的的代码实现在源文件cvbgfg_acmmm2003.cpp,在bgfg_estimaiton.cpp中对两种前景检测方法进行了封装。
这篇文章中最区别于另一种方法的混合高斯建模的的一点在于:只用了贝叶斯准则作为了背景前景的分类准则,并且使用了颜色特征和颜色共生矩阵特征。
据文章所说,检测效果也很不错,不过没有本人亲自验证。能找到的资料也很少。
文章也没有看完,最近非常的颓废,希望这个可以警示自己,以后应该要好好努力了。
通过进一步看程序,发现blobtrack默认的前景检测就是这个ACM2003的方法,如果要使用混合高斯模型方法,只需要把NULL语句改成:
中的第二句改成 if(!fg_name) fg_name = FGDetector_Modules[2].nickname;就好了,其中FGDetector_Modules[1]是ACM2003方法的简化方法。
不过还不是很确定。可以运行,前景检测靠着效果也不太一样了。
ACM方法:改进的混合高斯方法,同一帧
对比发现:ACM方法对于解决摇摆的物体的能力较好,摇摆的线在GMM中检测为前景,但ACM没有;对于视频中停止或较慢物体,ACM能检测出来,GMM中逐渐融为背景;
ACM中的物体中的被检测为背景的点较少,GMM较多,但是ACM可能缺一块。
另外查看程序说明,发现该方法是IBM公司专利。文档为PETS2001.pdf,网上可下载。