基于 Android的自学习视觉跟踪系统设计∗
2017-12-25林元根
袁 辰 张 林 林元根 宛 函
(1.中国船舶重工集团公司第七二三研究所 扬州 225000)(2.东南大学 南京 210000)
基于 Android的自学习视觉跟踪系统设计∗
袁 辰1张 林2林元根1宛 函1
(1.中国船舶重工集团公司第七二三研究所 扬州 225000)(2.东南大学 南京 210000)
智能移动设备的快速发展,使其应用到越来越多的方面,目标跟踪便是其中之一。但是,智能移动平台性能较低、内存资源少,限制了目标跟踪算法的应用。因此论文提出了一种TLD目标跟踪算法的优化方法。使其能够在搭载An⁃droid系统的智能手机上实时运行。通过提出了三种方法提高TLD算法检测模块的效率,提高了TLD算法的实时性。并将改进算法集成到Android应用中,运行在Android智能手机上。实验表明,改进后的TLD算法在主流智能手机上平均帧率在10fps以上,达到实时性要求。并保证了目标跟踪的准确性。
TLD;目标跟踪;OpenCV
1 引言
随着近些年来智能设备的飞速发展,搭载An⁃droid的智能手机在市场上赢得了消费者的认可。同时,一些著名的科技公司,也开发了后移动端时代能够替代手机的产品,诸如Google的Google Glass、微软的Hololens。在与智能设备进行交互的过程中,通过计算机视觉技术让人与智能设备的交互过程之中解放了双手,也不局限于通过触觉感知交互,人机交互过程变得丰富多彩。视觉跟踪技术是这个环节中重要的组成部分,而将复杂的视觉跟踪算法移植到移动智能设备也就成为了关注的目标。首先需要面对的问题是移动设备的计算资源相较于PC十分有限,如何能够在有限的计算资源下保证视觉跟踪的实时性是一个难题。其次视觉跟踪算法本身复杂程度就很高,通常在PC端都不能够达到很好的实时性,要想移植到移动设备上更是需要对算法进行优化。本文选择对捷克大学的Zdenek Kalal提出的一种视觉跟踪算法 TLD[1]进行改进,并将其集成到Android应用中,运行在智能手机上,构成自学习视觉跟踪系统,使得移动端也可以实时准确地跟踪目标。
2 TLD目标跟踪算法
如图1所示,TLD视觉跟踪算法是由跟踪(Tracking)、学习(Learning)和检测(Detection)三个重要模块组成,它们相辅相成,相互协作共同完成特定目标跟踪的任务。跟踪模块以相邻视频帧之间物体的运动速度有限且被跟踪目标可见为前提条件,金字塔LK光流法[2]的前后向跟踪器作为TLD的跟踪模块对目标进行跟踪。如果跟踪目标在视频流中被遮挡或者消失,必然引起跟踪模块的跟踪失败[3]。检测模块由方差分类器、集成分类器[4]和最近邻分类器组成的级联分类器构成[1],用于对当前视频帧中的所有扫描窗口进行检测、分类,找到与之前训练结果相比最匹配的窗口作为跟踪目标。如果在当前视频帧中,跟踪模块跟踪成功,则对跟踪模块和检测模块两个结果进行综合输出置信度更高的结果。如果跟中模块跟踪失败,则输出检测模块的结果。学习模块根据跟踪模块的结果和检测模块的结果,依照结构性特征产生新的正样本和负样本。从而对在线模型进行更新,进而实现对检测模块训练,使得检测模块能够实时地检测跟踪目标的最近特征[5]。
检测模块的作用是在当前视频帧中寻找跟踪目标。通过扫描窗口从视频帧左上角横向蛇形滑动到右下角,检测模块利用这种方式来遍历整个视频帧。然后对每个滑动的窗口进行检测,找出含有目标的滑动窗口。在TLD算法中,在第一帧中要确定跟踪的目标。利用第一帧中确定的跟踪目标边界框的大小,用下面的参数变换出滑动窗口的大小:尺度的缩放比是1.2,水平步长是视频序列帧宽度的10%、垂直步长是视频序列帧高度的10%,最小的边界框的大小是20像素。然后,在当前帧中横向蛇形扫描当前帧,这个设置对于一个QVGA图像(分辨率为240*320)大约产生50000个扫描窗口。
因为有大量的边界框要被评估,为保证每一个边界框都要高效、正确的分类,TLD检测模块使用了一个级联分类器,其主要由方差分类器、集成分类器以及最近邻分类器三部分组成。检测模块框架图,如图2所示。
每个扫描窗口依次通过三个分类器,如果分类器接受该扫描窗口则让其进入下一级分类器,否则将其丢弃不予处理。通过这种方式,可以快速准确地将目标区域标定出来。
3 TLD算法实时性研究
3.1 原始TLD效率缺陷
利用PC对常用视频实例进行实际测试,测试结果如下表1所示。
表1 PC下TLD算法测试结果
根据表1所示,检测模块有最长的处理时间。检测模块需要遍历整个视频帧并采用级联分类器进行检测,处理一帧图像这些都需要很长的时间。并且检测模块与学习模块两者相互影响,检测模块的检测结果会拿来在学习模块中对检测模块的分类器进行训练。如果检测模块检测物体比较困难需要较长时间,那么学习模块对于检测器的训练也会相应需要较多时间。所以在TLD算法中,对于检测模块进行优化就能同时影响学习模块,从而可以将算法整体的实时性提高。
如前文所述,现在智能手机摄像头采集的至少800万像素(分辨率3264*2448)图像来说,每秒需要处理的扫描窗口相当之多。所以,如何处理如此多的扫描窗口,是提高TLD算法检测模块效率的关键。本文主要从减少级联分类器需要处理的扫描窗口和优化级联分类器两个角度进行算法优化个改进。
3.2 输入分辨率调整
从物体跟踪角度讲最重要的是跟踪物体本身是否有足够的特征可以提取。所以本文采取的策略是把输入视频帧的分辨率降低,从而获得更少的扫描窗口。
首先,将3264*2448或者更高的分辨率统一降低到320*240。将图像从高分辨率降低为320*240仅仅将图像的细节进行了舍弃,对于目标主体还是会保留比较完整的细节。这样就能将扫描窗口总数限制在50000个以内。
其次,考虑如果跟踪目标在视频帧中占图像面积比例较大,跟踪目标本身具有较多的特征可以提取,因此比较容易从视频帧中识别出来,这样还可以再次降低图像的分辨率。如此就可以再一次把扫描窗口数量降低。假设跟踪目标的宽度像素数和高度像素数分别为W和H。
当s≥τ时,表示跟踪目标占视频帧面积比例较大,可以适当降低视频帧图像分辨率。当s<τ时,表示跟踪目标占视频帧面积比例较小,如果降低视频帧图像分辨率可能导致目标无法正确识别,应该保持视频帧当前分辨率。根据实际测试,τ值确定在0.5比较合适。即物体占到视频帧的一半面积时,可以进一步降低图像分辨率。
3.3 增加前景分类器
级联分类器[5]的第一级是一个方差分类器。方差分类器的原理很简单,但对于50000个扫描窗口的每个像素点进行计算,这拥有不小的计算量。在方差分类器之前再添加一个计算不复杂的分类器。要求该分类器不通过对每个像素点的复杂计算就能够有效的提取兴趣目标的信息。本文提出这个所要添加的分类器为前景分类器。
前景分类器的作用是从序列图像中将运动区域从背景图像中提取出来[6]。帧差法前景分类器通过对前后两帧的灰度图相减,通过对结果的处理可以得到两帧之中运动区域。该方法相比于方差分类器计算简单,检测速度快。而且具有不需考虑背景缓慢变化的影响,适用于实时性要求较高的应用环境的特点。
帧差法计算简单的同时也带来了缺点。如果物体内部的灰度比较均匀,相邻帧差可能在目标重叠部分形成较大空洞,严重时造成分割结果不连通,不利于进一步的物体分析与识别。针对这个缺陷,本文通过 OpenCV[7]中的第三方库 Cvblobs[8]解决。该库可以在二值图像里寻找连通域,并能够执行连通域分析与特征提取。
通过帧差法处理的图像,再经过Cvblobs库处理,可以得到一个有着一个或多个独立的前景区域的图像。由于,跟踪目标是一个在视频流中的运动的区域,所以,肯定属于前景的一部分,即在这几个独立的前景区域中肯定会有一个包含跟踪目标[9]。
经过上述讨论,流程图如图3所示。
3.4 动态调整方差分类器阈值
方差分类器检测目标需要计算滑动窗口的方差。方差分类器将扫描窗口的所有像素点灰度值的方差与初始目标图像块所有像素点灰度的方差进行对比。如果扫描窗口的所有像素点灰度值的方差小于初始目标图像块所有像素点灰度的方差的50%,这个图像块将不会通过方差分类器。因此在TLD算法中方差分类器的阈值是一个常数。但是,在视频流中跟踪目标不可能保持初始状态一直不变。如果此时方差分类器仍然使用固定常数来筛选扫描窗口,就不可避免的出现错误的筛选。
因此,本文采用将上一次跟踪目标的所有像素点的灰度值和之前跟踪目标的所有像素点的平均灰度值集合起来考虑,作为方差分类器的阈值。每次跟踪目标有新的形态,就将其加权与之前的阈值共同更新为新阈值。这样的话,可以针对跟踪目标现在的状态排除掉更多的扫描窗口,为后面分类器保留下更准确的待筛选目标,减少了后续的计算量,就大大提高了检测模块的工作效率[10]。
本文利用学习模块中的正训练样本集实现上文所提到的方案。学习模块会根据跟踪目标状态的改变,实时的更新正训练样本集。因此,选择正样本训练集中的样本来更新方差分类器的阈值,会得到更加接近跟踪目标的扫描窗口,并排除更多的无效窗口。
动态更新方差分类器阈值的公式如下:
其中,Tn是第n次计算的方差分类器阈值,Dn是最近加入正样本训练集的样本的所有像素点灰度值的方差,Tn-1是前n-1次的阈值。新加入正样本训练集的样本能够更好的体现跟踪目标当前的状态,所以这部分拥有了更大的权值。同时,阈值也应该能够体现跟踪目标之前的状态。因此,最终权值分配结果如上公式。经过多次试验验证,0.6和0.4的权值分配能够达到一个很好的效果。
4 系统测试结果与分析
4.1 测试硬件平台
基于Android的自学习视觉跟踪系统测试所使用的硬件是搭载了Android系统的智能手机,测试所用的手机配置如表2所示。
表2 测试手机配置
4.2 测试结果与分析
4.2.1 实时性测试结果与分析
首先,进行两部手机对于两个测试物体跟踪时每帧处理时间的对比与分析。
测试手机1针对两个测试物体的测试结果,如表3、表4所示。
表3 测试手机1测试物体1的处理时间
表4 测试手机1测试物体2的处理时间
测试手机2针对两个测试物体的测试结果,如表5和6所示。
表5 测试手机2测试物体1的处理时间
表6 测试手机2测试物体2的处理时间
测试手机1同测试手机2数据对比可知,具有测试手机2处理时间同测试手机1相比用时更短。因为测试手机2具有计算能力更强大的CPU,所以手机CPU的计算能力决定着系统每帧处理时间的用时长短,计算能力强用时短。
测试物体1同测试物体2数据对比可知,具有测试物体1同测试物体2相比在跟踪模块上用时更长,而在检测模块和学习模块上用时更短。因为测试物体1具有更明显的特征,在每一帧中符合中值跟踪法计算标准的特征点就越多,所以跟踪模块就需要更长的计算时间。而测试物体2因为特征较少更不容易被级联分类器检测出来,所以检测模块用时更长。检测模块的任务重,导致学习模块需要训练的时间也会变长。所以,实测物体2在检测模块和学习模块的用时要比实测物体1长。同时通过2个物体每帧总处理时间对比可知,尽管测试物体1在跟踪模块用时更长,但是在检测模块和学习模块用时更长的测试物体2的每帧总处理时间更长。
其次,选取两部手机跟踪测试物体开始的30s数据,绘出折线图。
测试手机1针对两个测试物体的测试结果,如图4所示。
测试手机2针对两个测试物体的测试结果,如图5所示。
由图4同图5对比可知,测试手机2运行帧率高于测试手机1。测试手机2的CPU性能起到了很大的作用。
由图4中测试物体1同测试物体2以及图5中测试物体1同测试物体2对比可知,测试物体1的帧率会稍稍高于测试物体2,且测试物体2的帧率波动会比测试物体1更大。前面展示的表3、表4、表5和表6的对比说明了测试物体1每帧处理用时会低于测试物体2。而且上面的测试讨论中也说过因为测试物体2在检测模块和学习模块上耗时更多,检测模块和学习模块的工作效率会明显影响系统的实时性。如果检测模块在某一时刻能够快速检测出物体则该时刻帧率会有明显提高,所以测试物体2的帧率的波动比测试物体1要大。
由上面从整体和某时刻的两组针对实时性的测试可知,系统如果运行在CPU计算能力更强的硬件上能够具有较好的实时性表现[10]。测试物体的特征会影响系统的实时性[11],并且通过数据分析再次证明了前文所讨论的检测模块决定着整个系统的实时性表现。
根据帧率图可知,系统运行在搭载当今主流CPU的手机上帧率能够达到10fps以上,最高可达15fps。因此系统能够基本满足实际应用所需的实时性要求。
4.3.2 准确性测试结果与分析
主要进行三项测试用来证明系统能够适应各种不同变化准确跟踪目标,分别为遮挡测试、消失测试和形变测试[12]。测试详细结果以及分析如下。
第一项,遮挡测试。对测试物体进行短时遮挡看系统能否及时作出判断。测试物体1和测试物体2的测试结果,如图6和图7所示。
由图6和图7可知,在跟踪目标被短时遮挡后系统能够正确判断当前帧中没有跟踪目标存在,并且跟踪目标重新出现在图像帧中时系统能够及时发现跟踪目标继续进行跟踪。所以系统能够有效的克服跟踪目标被遮挡的情况。
第二项,消失测试。让测试物体移出视频帧的边缘然后再移动回来看系统能否及时作出判断。测试物体1和测试物体2的测试结果,如图8和图9所示。
由图8和图9可知,在跟踪目标移出视频帧后系统能够正确判断当前帧中没有跟踪目标存在,并且跟踪目标整体重新出现在视频帧中时系统能够及时发现跟踪目标继续进行跟踪。所以系统能够有效的克服跟踪目标消失的情况。
第三项,形变测试。移动手机观察测试物体在当前帧中变大,变小和发生形变时系统统能否及时作出判断。测试物体1和测试物体2的测试结果,如图10和图11所示。
由图10和图11可知,在跟踪目标变大、变小以及发生形变时系统能够实时的做出响应及时的进行目标跟踪。这主要依赖于系统的学习模块可以实时的训练检测器发现跟踪目标的最新状态。所以系统能够有效地克服跟踪目标发生形变的情况。
由上面三项关于系统准确性的定性测试的结果可知,本系统可以有效克服长时间目标跟踪过程中目标出现的遮挡、消失以及形变的情况,能够准确有效地跟踪目标。
5 结语
本文对TLD算法提出了改进和优化方法,通过改进检测模块的效率,提高了TLD算法的效率。依据实时性和准确性的测试结果,可以说明系统能够正确识别物体并进行目标跟踪,取得良好的跟踪效果。系统在跟踪过程中跟踪目标出现遮挡、消失以及形变等情况,仍然能够及时地做出反应。在物体重新出现后,系统能够及时地识别跟踪目标并继续进行跟踪。系统运行在搭载当今主流CPU的手机上帧率能够达到10fps以上,最高可达15fps。满足手机应用场景所需的实时性要求。
[1]Kalal Z,Mikolajczyk K,Matas J.Tracking-Learning-De⁃tection[M].IEEE Computer Society,2012:3-6.
[2]Baker S,Matthews I.Lucas-Kanade 20 Years On:A Uni⁃fying Framework[J].International Journal of Computer Vi⁃sion,2004,56(3):221-255.
[3]Kalal Z,Mikolajczyk K,Matas J.Forward-Backward Er⁃ror:Automatic Detection of Tracking Failures[C]//Interna⁃tional Conference on Pattern Recognition,ICPR 2010,Is⁃tanbul,Turkey,23-26 August.DBLP,2010:2756-2759.
[4]Breiman L.Random forest[J].Machine Learning,2001,45(1):5-32.
[5]Kalal Z,Matas J,Mikolajczyk K.P-N learning:Bootstrap⁃ping binary classifiers by structural constraints[C]//Com⁃puter Vision and Pattern Recognition. IEEE,2010:49-56.
[6]赵宏伟.Android NDK开发环境实现与应用[J].电脑知识与技术,2010(35):10055-10057
[7]曾敏,王泽勇,罗林,等.基于OpenCV的安卓Camera应用设计与实现[J].信息技术,2015,(8):195-198
[8]席志红,杨传东,赵赶超,等.基于Android的TLD目标跟踪算法优化与移植[J].电子科技,2016 ,29(11):130-133
[9]张京超.稀疏多频带信号压缩采样方法研究[D].哈尔滨:哈尔滨工业大学,2014
[10]张琦.大容量高保真海底管道超声检测数据处理技术研究[D].上海:上海交通大学,2008.
[11]龚小彪.基于TLD框架的目标跟踪算法研究[D].成都:西南交通大学,2014.
[12]江博.基于Kalman的TLD目标跟踪算法研究[D].西安:西安科技大学,2013.
Design of Self-Learning Visual Tracking System Based On Android
YUAN Chen1ZHANG Lin2LIN Yuangen1WAN Han1
(1.723 Research Institute,CSIC,Yangzhou 225000)(2.Southeast University,Nanjing 210000)
With the rapid development of mobile devices,it has been applied to more and more fields.Object tracking is one of them.However,mobile devices have lower computing power and less memory resources,which limits the application of target tracking algorithms.Therefore,this paper proposes an optimization method for TLD target tracking algorithm.Three methods are pro⁃posed to improve the efficiency of TLD algorithm.And the improved algorithm is integrated into the Android application and run on the Android smart phone.Experiments show that the improved TLD algorithm has more than 10fps while running on the mainstream smart phones,and achieves real-time requirements.And the improved algorithm also guarantees the accuracy of target tracking。
TLD,target tracking,OpenCV
TP18
10.3969/j.issn.1672-9730.2017.11.024
Class Number TP18
2017年5月6日,
2017年6月24日
袁辰,男,助理工程师,研究方向:电子对抗。张林,男,研士,助理工程师,研究方向:深度学习。林元根,男,硕士,工程师,研究方向:电磁场与微波技术。宛函,男,助理工程师,研究方向:电子对抗。