L1_APG_Tracker实现代码剖析

     最近在看有关将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)

  1. 对qi满足阈值的候选模板yi,用APG方法解(11),并算出对应的观测概率pi。
  2. 对qi不满足阈值的候选模板yi,令pi=0
  3. 选取最大pi对应的系数ci作为要找的目标系数和粒子xi作为要找的目标粒子.

 

第六阶段 更新

1,检测遮挡并更新(11)中的u

2,更新T

3  通过重采样,更新S。

 

第七阶段

画出该帧图画的检测结果

 

 

End

 

随后各帧,返回第三阶段,依次处理…

 

      看文章的同时,可以看代码帮助理解文章中的算法和更多的细节。但是对于要做研究的同学,只看懂人家怎么做的还不够,还要更深的理解其中的数学原理,为什么这样做就能产生这一效果,并能预测到若改动一些参数或式子,会产生什么样的效果改变,并通过实验验证之。刚走上这条道,希望技术与科学双丰收,共勉!

原文地址:https://www.cnblogs.com/pixel/p/2728243.html