OPENTLD是捷克的一个博士开发的一个长时间对运动目标进行跟踪的算法。算法由三部分构成:1、Tracking 2、Detection 3、Learning。
1:Tracking:用median_flow_LK进行跟踪。但是因为部分遮挡、运动目标移出视线范围等因素long-term进行跟踪将使得跟踪失败。
2:Detection:利用semi_supervised方法训练一个on-line bin-classification。针对每一帧检测跟踪目标。
3:Learning:利用每一帧的结果对bin-classification进行学习,P-N方法纠正模型参数。
下面针对源码及论文做一个模块流程的梳理:
1、创建Grids:对InitBox的width、height以及Image的width、height利用minWidth、minHeight、scale计算有多少级Box的level。对每个level的Box的width、height从Image的(1、1)开始以0.2倍宽高进行偏移,计算总共有多少个boxes。比如对于w:94 h:70的InitBox 在W:640 H:480的Image中,当minWidth、minHeight为24时有15个不同level的boxes。每个level的box遍历全图将生成总共273254个boxes。
2、选取featureData:对每个box的特征提取利用的是类似于LBP的2bit特征。间隔采样:0.1到0.9的奇数生成5*5=25个点、0-0.8的偶数生成4*4=16个点。对41个特征点加上随机偏差,总共(25+16)*4=164个特征点。而生成决策树采用是是random-forest。树的数目为10,每棵树的深度为13。所以在164个特征中随机选取130个特征。