最近在看有关将L1范数最小化运用到视频跟踪上的文章,这里是文章和实现代码的下载地址http://www.dabi.temple.edu/~hbling/code_data.htm,有兴趣的同学可以关注一下,并且希望和各位多多交流。
我把它的代码好好看了一下,并且对多组图像做了实验,效果还好。下面是我对其代码的剖析:
第一阶段:模板基底T的初始化
1.手动选定第一个目标模板t1
2.在高斯分布下随机扰动t1角点的坐标,得到其它9个目标模板t2,t3,...,t9
3.通过图像的仿射变换,将十个目标模板从原图像中“拿出”(crop),并缩放为同样大小的十幅目标模板图像(如12*15大小)。具体做法如下:
对每个目标模板,都首先计算出仿射变换参数R=[R(1,1), R(1,2), R(2,1), R(2,2), R(1,3), R(2,3)]。然后,输入R,原图像,和目标模板图像大小,即可通过图像仿射变换处理得到目标模板图像。
4.将每幅目标模板图像都写作向量形式,并作正规化处理,得到最终的初始化T
第二阶段:粒子样本S的初始化
1设定粒子样本数为N(如600)
2初始化S为对应t1模板的R,即每个粒子样本都初始化为对应t1模板的R
第三阶段:
1.在高斯分布下随机扰动St生成同St具有相同均值与方差的St+1
2. 对每个粒子样本,输入St+1中对应的仿射参数,通过图像仿射变换处理得到对应的候选模板图像yt+1(i),图像大小等于目标模板图像大小.
3.将每幅候选模板图像都写作向量形式,并作正规化处理
第四阶段:最小误差限
1.求解最小二乘问题(9)
2.算得上限qi,并按降序排列之.
第五阶段:解l1最小化问题(11)
- 对qi满足阈值的候选模板yi,用APG方法解(11),并算出对应的观测概率pi。
- 对qi不满足阈值的候选模板yi,令pi=0
- 选取最大pi对应的系数ci作为要找的目标系数和粒子xi作为要找的目标粒子.
第六阶段 更新
1,检测遮挡并更新(11)中的u
2,更新T
3 通过重采样,更新S。
第七阶段
画出该帧图画的检测结果
End
随后各帧,返回第三阶段,依次处理…
看文章的同时,可以看代码帮助理解文章中的算法和更多的细节。但是对于要做研究的同学,只看懂人家怎么做的还不够,还要更深的理解其中的数学原理,为什么这样做就能产生这一效果,并能预测到若改动一些参数或式子,会产生什么样的效果改变,并通过实验验证之。刚走上这条道,希望技术与科学双丰收,共勉!