基于C++的人眼追踪算法
发布时间:2021-06-08
发布时间:2021-06-08
基于C++的人眼追踪算法
基于C++的人眼追踪算法
摘 要 在裸眼立体显示光学器件和光栅等技术越来进步的背景下,对于人眼的定位和追踪就显得尤为重要。本文主要研究了TLD(Tracking-Learning-Detection)算法并在Microsoft Visual Stido2008 C++环境下利用OpenCV库函数编译运行单眼追踪程序,再此基础上从几个方面分析了此类追踪的优势和劣势并提出了相对应的改进措施。
关键词 计算机视觉;TLD追踪算法;OpenCV
0 引言
给定目标的追踪是计算机视觉领域的一个热门技术,在追踪目标的过程中,会出现追踪目标外形被遮挡或发生改变等情况。在计算机目标追踪技术,大致可分为静态模型和自适应模型两类;在静态模型中,一般来说,已知目标外形改变的规律,或者假设被追踪目标的外观发生较微小的改变,但在实际的追踪中,由于被追踪目标运动速度较快而导致外形在短时间内改变较大,同时改变的先验规律也是不容易获得的,因此静态模型进行追踪有很大弊端;而自适应模型能够较快速地检测出目标的特征变化,并通过时刻不停地升级模板库里面的正反样本特征来适应目标的变化,因而能够较好完成对目标的长时间的追踪。
1 TLD 算法
TLD 算法是由英国萨利大学的 Zdenek Kalal 最早提出的,这是一种单目标长时间视频跟踪算法,该算法通过一种实时的学习机制不断更新跟踪模块中的样本和,来解决跟踪过程中被跟踪目标发生的部分被遮挡、形变等问题。TLD算法的核心为追踪、学习和检测的不断循环和更新。
TLD 算法的结构如图 1 所示。
首先是从视频的首帧的读取数据,用鼠标画矩形的方式标定需要追踪的目标框体,计算机将目标记录下来分析目标图像的特征,并将目标以15×15像素的灰度图样本输入检测器,在目标运动的过程中,不停地读取当前视频帧,并从正负两方寻找和样本相似的特征图像,将相似度高于50%的图像添加到正样本库中,同时将相似度低于50%的加入负样本库中,不断地更新样本库,升级校验器和追踪器[1] 。
1.1 跟踪模块
跟踪模块:TLD跟踪模块的算法,是一种添加了跟踪失败检测机制的中值流跟踪方法(Median Flow Tracker)。在中值流跟踪方法中,我们手动选取目标框体(Bounding box)来标定被跟踪的目标,并在视频流前后相连的帧画面之间测算被跟踪目标的运动情况。