关贺文 胡晓杰
沈阳理工大学信息科学与工程学院 辽宁 沈阳 110159
本文主要通过基于目标的行人检测与跟踪算法,拟将室内视频中的目标都逐帧的检测出来,并将所检测到的结果进行数据分析计算与关联,从而将确定视频内每个目标行人的各自位置及其运动轨迹。
基于目标的行人检测与跟踪分为两大部分:行人检测和行人跟踪,行人检测是利用目标检测算法的检测器对视频序列中的目标进行自动检测、确定其位置后进行自动的标注出来。行人跟踪则主要是根据目标检测的结果进行识别目标和跟踪目标,精准地预估到目标的位置、并预测其运动轨迹等,最终追踪到其准确的行进间轨迹。但是由于在现实生活中采集到的视频信息场所内会存在非常不确定性的变化,存在着极大偶然性和突发性,例如由于光线原因目标采集不清晰,或是物体的位置相交错位导致的目标被遮挡等情况,光是依靠于检测与追踪技术有时是很难达到理想的目的,不能得到期望的实验结果。因此,为了加大最后结果的准确性和一致性在此基础上还引入了行人再识别技术进一步校正进行辅助增强。
目标检测是将图像中的目标与其余区域分离开,判断是否存在目标,如果存在目标则确定目标的位置[1]。
现在经常被市面上使用的检测算法可以大体的分为两大类分别是基于anchor-base的和anchor-free的。由于目前基于anchorbase的检测算法的主体思想还是要配置许多的anchor和配发正负样本加上进行数据训练这样的一个思路。anchor实际上就是关于被检测目标的候选框,因为目标的形状和位置是不可规定的有着许多种的结果,所以导致anchor的数量会异常的多,不然的话就会有落下的情况发生,这种状况则对于one-stage的检测算法有着更明显的影响。因此会带来两个问题:a.尽管存在着大量的anchor但其中只有少部分和gt的重合度较高,只有这些才可作为正样本进行训练,剩下的都是负样本,这也是检测算法中最为重要的也是都要思考的均衡问题,各种算法在解决这个问题时通常也会采用不同的方法。b.Anchor的设置本身也是需要超参数的。基于以上这两点原因所以我们选用了Corner Net,这样一种基于anchor-free的目标检测算法。
Corner Net算法使用了Hourglass网络结构,这个网络的形状跟沙漏十分的类似,网络的前半部分通过下采样不断减少特征,后半部分利用上采样增大来特征,中间的结构中还有与fpn网络相似的将前后网络相加。CornerNet也提出了一种适用于CornerNet网络的corner pooling,目的是为了建立点corner和目标的位置关系。一般而言,知道了bounding box的左上角和bounding box的右下角就可以确定位置所在的范围和区域。
由于在目标检测算法中大多数的算法对应的都是基于多目标的检测,为了确保多目标的追踪所以选择了track+detection(检测+追踪)这样的一种策略。检测和追踪互相依托的存在可以大大减少错误发生的概率,所以选择了这样的策略。Deep SORT作为目前一种极其常用的跟踪算法,它的跟踪的思路就是当下比较主流的跟踪思路:基于目标检测的结果进行跟踪,将检测与跟踪结合在一起。除了运用基本的运动信息来预测跟踪目标之外目标之外,Deep SORT还会提取每一个目标的外观特征,并且将每一个目标的每一次匹配到新的检测框的外观特征存储为一个集合,在每一次跟踪匹配的时候,计算新的检测框外观特征与该匹配目标的外观特征集合的最小余弦距离[2]。Deep SROT想要把外观信息加入到匹配计算之中,这样在目标被遮挡后又出现的情形下,还能够正确匹配ID还能减少ID switch频繁的情况[3]。
以检测器检测算法检测出的目标检测结果作为Deep SORT的输入:bounding box、confidence、feature 这三项。Deep SORT的核心工作流程大可分为三步:预测(track)→观测(detection+数据关联)→更新。
首先第一步是预测(track)板块,会对视频影像中的行人通过使用卡尔曼滤波器进行下一帧的轨迹预测,预测出下一帧的bbox。使卡尔曼滤波进行预测后,会对当前帧预测出来一个轨迹bbox。第二步是观测(detection+数据关联)板块,算法会对视频影像中的行人进行当前帧的目标检测,检测出目标的后,仅仅依赖检测结果并不能与上一帧的目标直接对应起来,为了增加追踪的准确度所以还要进行数据关联。将detection bboxs结果和预测的bbox进行数据关联(matched tracks);最后一步就是更新板块,更新的内容包括匹配,追踪器更新与特征集的更新。其根本的方法还是使用IOU计算和匈牙利算法来进行匹配。由于预测的bbox和检测到的bbox都会存在些许误差,这时候更新操作就显得尤为重要,一般来说再次操作后精度都会提高。图1是DeepSORT对路人进行跟踪的结果,每一个框的上的数字都是用来标记行人的唯一ID号。
图1 Deep Sort跟踪样例图
在使用DeepSORT进行行人跟踪后会引发出一些问题,如图1所示:当图中正在走动的1号人物目标和正在走动的4号人物目标相向而行当交错的一瞬间,2人物相互重叠在一起时,行人检测在此时此刻无法准确的辨析出两个人所处的位置,会认为是同一个人物ID。所以会间接的致使行人追踪在二者相互重叠后错开时无法分辨出两个人,有可能引起ID改变(即IDSwitch)这样的问题。
交错行人间的相互叠加和遮挡一直以来都是行人检测和行人追踪领域中的一个难题,为了寻找解决问题的突破口决定从工程上来进行切入,所以准备在行人跟踪模块引入行人再识别技术来对行人的轨迹进行纠正和提高准确度。
行人再识别的实现思路是先在图片中抽取特征之后再进行比对,首先通过检索网络抽取样本图片的特征,第二步将底库中里的所有图片全部抽取图片特征,接着将检索图与底库图中的特征进行距离计算(例如欧氏距离),最后根据计算得出的距离结果进行降序排列,排序越靠前相应的分值越高表示图片之间的相似度越高。从而可以设置一定的阈值将相似度分数一定程度以上的几张或多张图片中的人物,认为是同一ID这样就可以在一定的程度上改正跟踪中出现的一些有关于ID的错误变化。
在图2原本在追踪过程中交错两人发生改变的ID通过行人再识别技术将错误的ID给纠正了过来,由此可见在行人追踪中通过调用行人再识别技术可将结果的准确率在一定程度上提高可将某些错误纠正。行人跟踪-再识别改正结果如图2所示。
图2 行人跟踪-再识别结果样例图
虽然目前市面上有关于目标检测与跟踪的方法并不少,但每一类方法或算法都有其不足和缺点,距离可实施性和实用性的程度在解决和提升上还存在着不少的难题。主要集中于以下几点:
第一,物体间由于光线的阴影导致视频图像采集困难或不清晰。
第二,运动间的目标物体频繁的变动导致的物体交错遮挡和干扰问题。
综上所述,在具体操作时还是要依据实际的情况来选择合适的目标检测与跟踪算法具体去实施,也可以适度的在工程上进行改进和利用多项技术来确保工程的有效进行,以提升效率。