APP下载

遮挡和光照变化下的单鱼目标跟踪

2021-04-07程淑红

计量学报 2021年2期
关键词:跟踪器鱼体光照

程淑红, 王 迎

(燕山大学电气工程学院,河北秦皇岛066004)

1 引 言

近年来,随着研究人员对水生动物的研究越来越深入,人们逐渐发现水环境对水生物的影响是无处不在的,生活在水中的各种水生物如鱼类的行为会根据周围水环境的变化而变化[1~3]。例如,在受到污染的水质环境下,鱼类为了逃避有害刺激会做出相应的应激反应,Ma[4]等利用鱼类会根据环境的变化产生应激反应来进行水质监测;感染了细菌的鱼类运动行为也会异于正常鱼类,卢焕达[5]等利用计算机视觉监测了鱼类在发生应激反应或者患有疾病时的身体颜色和运动速度的改变。文献[6]根据鱼类行为的变化来研究水质的变化。这些研究的进行都基于对水中目标的跟踪。由于单目标跟踪在很多领域都有着重要的作用,所以随着计算机技术的不断发展,对单目标跟踪的研究也取得了很大的进步。Henriques[7]提出的单通道核相关滤波器的快速算法(KCF)提高了运算速度,但不能适应较大的目标形变,易导致跟踪失败。Danelljan[8]提出了一个有着良好的尺度策略的跟踪算法,专门训练了一个类似 MOOSE 滤波器去检测尺度变化,让目标的尺度检测和位置检测分开进行。但跟踪不稳定,难以较长时间跟踪。

由于水环境的复杂多样,光照变化的影响,其它物体对跟踪鱼体的遮挡,以及鱼类本身速度快,目标小,形变较大的运动特点,都给对水中的鱼类跟踪带来了极大的挑战。为了应对这些问题,本文提出一种在遮挡和光照变化下表现良好的单鱼目标跟踪算法将MobileNet-SSD(SSD,single shot multibox detector)与Dlib关联跟踪器相结合,利用SSD算法精确地检测鱼体位置,利用Dlib关联跟踪器实时的跟踪鱼体。

2 算法原理

2.1 算法流程

为了实现对水环境中不同状态的鱼类运动的检测和跟踪,采用SSD算法结合MobileNets结构搭建检测模型,再利用Dlib关联跟踪器进行跟踪。通过SSD算法精准的检测到视频中的鱼体,再将信息输入到Dlib关联跟踪器中,其具体流程如图1所示。

图1 鱼类跟踪流程图Fig.1 Fish Tracking Flow Chart

2.2 MobileNet-SSD

在目标检测算法中,Yolo和SSD[9]同属one-stage方法,其主要思路是均匀地在图片的不同位置进行密集抽样,抽样时可以采用不同尺度和长宽比,然后利用CNN提取特征后直接进行分类与回归,由于整个过程一步完成,所以检测速度快。Yolo算法难以检测小目标,而且定位不准,SSD算法采用多尺度特征图和卷积用于检测,并设置先验框,这使得SSD算法在一定程度上克服了这些缺点。

SSD的网络结构如图2所示。可以明显看到SSD利用了多尺度的特征图做检测,模型的输入图片大小是300×300像素。SSD采用VGG16作为基础模型,首先将VGG16的全连接层fc6和fc7转换为3×3卷积层conv6和1×1卷积层conv7,VGG16中的conv4_3层作为检测的第一张特征图,其大小为38×38,然后在此基础上新增了卷积层来获得更多的特征图以用于检测,分别是conv7,conv8_2,conv9_2,conv10_2,conv11_2。不同的特征图设置的先验框数目也不同,先验框的设置包括尺度和长宽比ar,其尺寸遵循线性递增规则,即随着特征图大小的减小,先验框尺度线性增加,如式(1)所示。

(1)

(2)

SSD算法的本质是密集采样,但是均匀密集采样的一个重要缺点是训练比较困难,这主要是因为正样本与负样本(背景)极其不均衡,导致模型准确度稍低。而先验框的设置可以减小训练难度,因为预测边界框是以先验框为基准。在训练过程中,首先要进行先验框的匹配,确定训练图片中的检测目标与哪个先验框匹配,然后由与对应的边界框负责预测。且为了保证正负样本的平衡,SSD算法对负样本进行抽样,抽样时按照置信度误差进行降序排列,误差较大的作为训练的负样本。

图2 SSD模型图Fig.2 SSD model diagram

SSD在对检测目标进行训练时,需要确定损失函数,其定义为位置误差与置信度误差的加权和,如式(3)所示:

(3)

式中:L为先验框的正样本数量;c为类别置信度预测值;l为先验框所对应边界框的位置预测值;g为检测目标的位置参数。Lconf为位置损失Lloc为置信损失;α为待学习的参数,常设置为1。

单纯地使用SSD算法也会消耗大量的计算资源,因此采用MobileNets结构结合SSD算法搭建模型。MobileNets[10]是一种基于流线架构的轻量级深度神经网络,主要使用了深度可分离卷积将标准卷积核进行分解计算,减少了计算量,而且保证了准确率。深度可分离卷积是将一个标准的卷积核分成深度卷积核和1×1的点卷积核,卷积核示意图如图3所示。假设输入的特征图片的大小为DF×DF,有M个输入通道,有N个输出通道,卷积核大小为Kk、Kk。那么标准卷积核即为M×Dk×Dk×N。那么深度可分离卷积和标准卷积核相比计算量比率为:

(4)

图3 卷积核示意图Fig.3 Convolution Kernel Diagram

为了进一步减少参数量和计算量,该结构还引入了宽度乘数和分辨率乘数2个参数,宽度乘数主要用于减少输入层的通道个数,分辨率乘数的作用是降低特征图片的分辨率。因此与SSD相比MobileNet-SSD减少了计算量,提高了运算效率,在减小了时间复杂度的同时也保证了空间复杂度没有发生改变。

2.3 Dlib关联跟踪器

Dlib中目标追踪算法具体实现为dlib.correl-ation_tracker类,算法原理来源于Martin[11]等的研究,在对目标进行跟踪时,需要先创建一个跟踪类,将第一帧图片中的要跟踪的鱼框好,继续跟踪下一帧,最后得到跟踪到的鱼体的位置信息。

Dlib关联跟踪器建立在MOSSE跟踪器的基础上,MOSSE跟踪器适用于平移跟踪,但是在跟踪目标的尺寸发生变化时,跟踪效果并不理想。为了克服这个缺陷,Dlib采用了“scale pyramid”方法,该方法在找到最佳平移后能准确估计目标的比例。

在Dlib跟踪器中,通过关联滤波器在一帧图像中定位目标的位置,具体是采用一维滤波器估计目标的尺度,采用二维滤波器用于目标的平移,而物体在空间中的具体定位则用三维滤波器来实现。将d维的特征图片作为信号,设f是从特征图片中提取的矩形框,fl代表不同维度的矩形框,其中l∈{1,…,d}。需要通过最小化平方误差去寻找一个最优的相关滤波器hl,如式(5)所示:

(5)

式中:q为与f相关联的期望输出,参数λ(λ>0)用来控制正则化项的影响。

式(5)只列举了一个训练样本的情况,求解可以得到下式:

(6)

式中大写字母为相应函数的离散变换。

(7)

(8)

式中:η为学习速率参数,计算特征映射的矩形框处的相关分数,然后通过最大化相关分数分析目标新的运动状态。

MOSSE跟踪器在求解滤波器时所输入的是图像的灰度特征,这种特征特别简单,不能很好地描述跟踪目标的纹理、边缘等形状信息,而Dlib关联跟踪器所采用的更具有识别力的HOG(Histogram of Oriented Gridients )特征,提高了跟踪的准确度和稳定性。Dlib关联跟踪器中最核心的优点是实现了跟踪尺度自适应,通过两个一致的相关滤波器,分别实现对目标的跟踪和尺度变换,即位置滤波器和尺度滤波器,前者用来对当前帧目标的进行定位,后者对当前帧目标尺度进行估计。由于2个滤波器是相对独立的,从而可以选择不同的特征种类和计算方式进行训练和测试。这样就可以方便、高效的将尺度估计算法与其它算法结合在一起,提高跟踪的鲁棒性。

3 实验与结果分析

3.1 跟踪实验

实验平台(图4所示)包括:摄像头、玻璃鱼缸、支架、装有Ubuntu16.04操作系统的计算机。

实验过程为:1)将一条生命力旺盛的红鲫鱼放入鱼缸内,利用摄像头分别对正面和侧面进行拍摄;2)拍摄过程中用遮挡物对鱼体进行各个部分的遮挡;

3)拍摄过程中通过变化光源改变光照强度;4)将拍摄视频保存在相应的文件夹。

图4 实验平台Fig.4 Experimental platform

3.2 实验结果分析

为了验证本文方法的性能,这里对本文所提出的跟踪算法在正常水环境下,遮挡情况,光照情况下分别从正面和侧面做了不同的测试。并且将本文方法与CSRT、 KCF、MOSSE、TLD、BOOSTING[12~16]这5种算法进行效果比对,如图5~图10所示(图5~图10中(a)代表CSRT,(b)代表KCF,(c)代表MOSSE,(d)代表TLD,(e)代表BOOSTING,(f)为本文方法;绿色实线为算法跟踪位置,虚线框为实际鱼体位置)。

如图5和图6中所示,在正面和侧面2种正常情况下除了KCF跟踪器会发生跟踪丢失的情况,其他跟踪器基本上可以跟踪鱼体,有些会发生一些轻微的漂移,而本文所采用的跟踪器却能很好地跟踪鱼体,并且根据鱼体尺寸形状的改变调整跟踪框,跟踪位置与鱼体实际位置几乎完全吻合。

图5 不同方法在正常情况下的侧面跟踪对比图Fig.5 Side tracking comparison diagram of different methods under normal conditions

图7和图8是侧面和正面分别从在发生遮挡情况下的各个跟踪器的跟踪效果图。从图7和图8中可以明显地看出当出现遮挡时,KCF跟踪器和MOSSE跟踪器丢失跟踪目标,TLD、BOOSTING和CSRT跟踪器发生了严重的漂移,而文所用方法则可以正确跟踪被遮挡的鱼体。

图7 不同方法在遮挡情况下的侧面跟踪对比图Fig.7 Side tracking comparison diagram of different methods under occlusion conditions

图8 不同方法在遮挡情况下的正面跟踪对比图Fig.8 Front tracking comparison diagram of different methods under occlusion conditions

图9 不同方法在光照变化情况下的侧面跟踪对比图Fig.9 Side tracking comparison diagram of different methods under the condition of change of light

图10 不同方法在光照变化情况下的正面跟踪对比图Fig.10 Front tracking comparison diagram of different methods under the condition of change of light

图9和图10是分别从侧面和正面在光照变化情况下的各个跟踪器的跟踪效果图。从图9和图10可以明显地看出当光照条件发生变化时其它跟踪器会发生跟踪丢失或者严重或者轻微漂移,而本文所提的方法依然表现良好。

为了更清楚地从具体数据上分析各个跟踪器的性能,这里利用跟踪成功率和跟踪偏差比对跟踪器进行评价。若当前图像满足式(9)时认为该算法对于这一帧图像是跟踪成功的。

(9)

R=n/N

(10)

大多数文献采用算法预测[17]的目标位置与目标真实位置的距离作为算法跟踪精确度的判断标准,距离越小,说明精确度越高。但是这些方法并不能对目标跟丢的情况进行判断和排除,而在目标跟丢情况下去计算偏差距离是没有意义的,因此这些方法在此情况下不能准确反映算法的跟踪精确度。这里我们采用逐帧分析的方法,在图像序列中只计算满足式(1)的图像帧中算法预测的目标中心与目标真实中心之间的平均偏差距离:

(11)

式中:xi和yi为跟踪目标的中心坐标位置;xti和yti为实际目标的中心坐标位置。

根据跟踪目标中心和实际目标中心之间的平均偏差距离D,定义跟踪一段图像序列上的跟踪偏差比:

(12)

式中:DjK为第K个跟踪算法在此段视频帧中的平均偏差距离;∑DjK为K种算法在此段视频帧上的平均偏差距离之和。所以Pj的值越小,那么算法的跟踪精确度就越高,反之,跟踪精确度就越低。

在测试这6种算法性能时,对于每一段视频帧所选取的初始帧和初始目标区域都保持一致。图11和图12分别为分别给出了各个算法在正面和侧面鱼体在正常情况、遮挡情况和变化情况下的跟踪成功率和跟踪偏差比。

图11 不同状态下不同算法的跟踪成功率比较Fig.11 Comparison of tracking success rates of different algorithms in different states

图12 不同状态下不同算法的跟踪偏差比比较Fig.12 Comparison of tracking deviation ratio of different algorithms in different states

图11和图12中跟踪状态1表示正面正常,2表示正面遮挡,3表示正面光照,4表示正面侧面正常,5表示侧面遮挡,6表示侧面光照。由图11和图12可知,本文提出的算法在跟踪成功率和精确度方面都优于其它跟踪器。

4 结 论

本文采用MobileNet-SSD与Dlib关联跟踪器相结合的方法对鱼体进行跟踪。实验结果显示,通过这种方法可以精准地定位跟踪对象,提高了跟踪时鱼体在水中运动发生遮挡和光照变化时跟踪的鲁棒性。为了进一步验证算法跟踪性能,本文从跟踪的成功率和精确度上分别与CSRT、KCF、MOSSE、TLD、BOOSTING等5种方法对比,使用本文方法的跟踪效果要优于其它方法,在不同环境下的跟踪成功率都达到90%以上。但当前实验只选取了单个鱼类目标在光照变化和遮挡下的跟踪,在以后的研究工作中会不断地优化算法使其能在更加复杂的环境中进行更有效的跟踪。

猜你喜欢

跟踪器鱼体光照
节能环保 光照万家(公益宣传)
光伏跟踪器阵列跟踪精度的测算方法研究
轴流泵内鱼体的运动行为与撞击损伤分析
淡水鱼水平往复振动头尾定向输送方法
节能环保光照万家(公益宣传)
淡水鱼腹背定向装置设计及试验
浅析一种风光储一体化跟踪器
春光照瑶乡
超长待机的自行车位置跟踪器
双向多轨迹判定方法在目标跟踪中的应用研究