APP下载

联合YOLOV3和核相关滤波算法的红外视频目标检测及跟踪

2022-01-28戴亚峰陶青川

计算机应用与软件 2022年1期
关键词:滤波红外尺度

戴亚峰 陶青川 杨 波

(四川大学电子信息学院 四川 成都 610065)

0 引 言

近年来,人工智能、机器视觉、深度神经网络等软件算法不断进步发展,同时摄像机、计算机、存储器、网络设备等硬件价格也愈发便宜,促进了智能监控的普及和发展。基于监控视频的目标检测及目标跟踪是智能监控系统中的关键环节,国内外学者的研究主要分为基于可见光视频和基于红外热成像视频两种。可见光视频利用自然光成像,具有一定的局限性,容易受天气、光照等自然条件影响。红外热成像视频利用红外光成像,不需要辅助灯光,可以全天候工作,在雨雪、雾霾等恶劣天气下受影响较小,但是红外图像噪点多、对比度差、边缘较模糊、缺少颜色特征,基于可见光视频的目标检测跟踪算法不能取得很好的检测效果[1]。

目标跟踪算法可分为外观模型生成法和模型背景判别法两类[2]。前者根据外观模型搜索最相似的区域,代表方法有Kalman滤波[3]、均值漂移(Mean-Shift)[4]、粒子滤波[5]等,但跟踪精度不高且应用较少;后者的思想是把背景和目标区分出来,按原理不同又可分为神经网络深度学习类和相关滤波类。深度学习类的算法跟踪精确度高,但实时性差无法在实际工程中应用[6]。相关滤波类算法得到广泛研究,MOSSE、TLD、核相关滤波(KCF)算法是经典的算法[7],实时性和准确度都较高,尤其以KCF算法最为出众[8]。但红外视频中会有噪声影响、相似目标干扰、尺度变化等现象,算法很容易发生目标跟踪丢失。YOLO是当前目标检测领域表现最好的算法之一,它采用卷积神经网络学习目标特征,分析模型抗噪声能力强,单帧检测准确度达到85%以上,且检测速度高满足实时需要[9],可以作为目标跟踪的前一环节选取目标,实现监控智能化。

针对红外视频监控中存在的诸多问题,本文提出一种结合YOLO和KCF算法的目标检测跟踪算法。在红外视频帧图像预处理的基础上,使用最新的YOLO网络模型检测选取目标,然后使用KCF核相关滤波算法对目标实现目标跟踪。仿真实验验证了本文方法能够在实时检测的前提下有效提高红外视频目标检测跟踪的准确率。

1 算法总体流程

基于YOLOV3算法能够完成单帧图像的目标检测,基于KCF算法可基本满足短时间的目标跟踪,本文提出将两种算法相结合的目标检测跟踪算法,可以用于红外视频智能监控中目标的发现及跟踪。同时,采用多尺度估计和目标丢失再检测策略,能够提高目标尺度变化和目标丢失情况下的准确度。图1展示了本文算法实现流程,具体步骤如下:

图1 算法总体流程

Step1将读入的红外视频帧进行预处理,通过滤波处理减少噪声影响,锐化图像增强目标边缘;

Step2首帧使用离线训练的YOLOV3网络模型进行目标检测,框选目标所在的区域,初始化核相关滤波器;

Step3调用核相关滤波算法进行运动目标跟踪,确定目标的大致区域;

Step4估计运动目标的多尺度变化,比较多个尺度的最大响应得到最佳的匹配尺度;

Step5将峰值响应和前n帧比较计算,判断是否出现异常,如果峰值无异常则进入Step 7,否则进入Step 6;

Step6使用YOLOV3网络模型对当前帧进行目标再检测,结合跟踪结果校正目标框的位置,重新确定跟踪器的参数,返回Step 3;

Step7输出当前帧目标位置结果,进入Step 3对后续视频帧处理。

2 算法设计

2.1 红外视频帧预处理

红外成像的原理是物体红外线辐射具有不同的分布情况,图像亮度近似地反映了视野内背景与目标的温度差与辐射差。由于红外线传播路径中的杂波干扰和光学处理偏差,不可避免存在噪声影响[10]。图像滤波降噪的算法有很多,复杂的滤波算法无法满足实时性的需求,因此采用计算简单、效果较好的邻域平均滤波。邻域平均滤波基本原理是在图像中选取以目标像素点为中心的邻域,然后统计邻域范围中像素点的平均数值,代替目标像素点的原值作为滤波输出。例如f(u,v)为待处理区域像素点,d(x,y)表示处理后的像素点,采用线性空间滤波计算公式:

(1)

式中:集合Z表示(x,y)邻域中的像素点坐标;n表示Z内的像素点个数。选取邻域的大小决定了图像处理后的平滑程度,邻域覆盖的范围越大,图像的降噪效果越明显。

为了能有效地保存图像灰度数值,增强红外视频帧的对比度,可以进行伽马变换处理。通过非线性处理转换,对数值过低及过高的像素进行修正,向灰度中值靠拢,优化图像的灰度分布。同时,经过伽马变换后,存储的有效性和效率也得到了改善。

红外视频帧在滤波降噪处理后边缘较为模糊,部分细节出现失真情况,直接进行边缘的提取和检测会受一定干扰,可以使用Sobel锐化算法使边缘轮廓更加突出。Sobel算子包括两个3×3的矩阵,用于横纵垂直两方向的卷积计算,即可差分得到两个方向的边缘值。假设S代表输入图像,GX及GY分别代表横向和纵向的边缘检测灰度值,结合灰度数值最终可以计算出图像的每一个像素:

(2)

(3)

将原始红外图像和检测的边缘图像叠加在一起,可以有效保留图像的灰度值,同时增强灰度值突变处目标和背景的对比,获得图像的轮廓信息从而实现图像锐化效果。图2展示了预处理的效果,在经过降噪、伽马变换、边缘锐化、叠加图像等一系列处理后,图像细节更加清晰。

(a)降噪图像 (b)伽马变换 (c)边缘检测 (d)叠加图像图2 红外视频帧预处理效果

2.2 YOLOV3目标检测算法

YOLO最显著的特点是运行速度快实时性高[11],是目前兼具实时性和准确率最好的目标检测算法之一。YOLOV3算法采用的网络与Fast-RCNN等卷积网络不同,将检测任务转化为回归问题,在输入一幅图像后使用7×7网格直接预测,没有候选窗口的扫描过程,从而实现了对目标的one-stage实时检测[12]。

YOLOV3的网络结构如图3所示。通过全卷积神经网络Darkenet 53对原始红外图像进行特征提取,Darknet53网络由53个卷积层构成,其网络结构采用了大量的3×3和1×1卷积,3×3的卷积目的是增加通道数,而1×1的卷积用于改变数据维度。为了防止池化后导致的低层特征丢失现象,Darknet53采用全卷积层不使用任何形式的池化,同时使用残差结构提高了速度。

图3 YOLOV3网络结构

在特征图进行目标检测时,首先把输入红外图像的尺寸调整至标准大小,然后将其分成多个相同尺寸的网格单元,每个网格单元只对中心位于该网格单元中的目标进行预测[12]。假设网格单元的坐标为(x,y),网格单元横纵方向距离为cx和cy,每个边界候选框都有tx、ty、tw、th四个预测值,锚点框的宽度和高度分别为pw和ph,预测边界框几何中心的坐标用(bx,by)表示,预测边界框的宽度和高度分别用bw和bh表示。边界框示意图如图4所示,边界框预测公式如下:

图4 边界框示意图

(4)

2.3 目标跟踪算法

2.3.1核相关滤波算法

KCF算法通过对输入图像块构建循环偏移矩阵,构造大量的训练样本集。将大量的样本生成矩阵转化成对角矩阵,减少复杂矩阵间的计算量。然后进行模型构建训练学习得到滤波器,计算目标候选区域和初始跟踪对象的相似度,选择最大相似程度的区域作为目标,并不断使用新的跟踪结果去更新训练样本集和相关滤波器。

KCF算法滤波器的训练过程实际上是求解岭回归问题[13]。假设目标函数为f(xi)=wTxi,使用最小二乘法来计算求解权重系数w,有岭回归方程式如下:

(5)

对式(5)关于w求导,可得闭式解:

w=(XTX+λI)-1XTy

(6)

其中,单位矩阵I同时也是循环矩阵,由循环矩阵可对角化性质,代入公式可得:

(7)

式中:x*表示x的复共轭;“^”代表离散傅里叶变换后的结果;“·”表示向量相乘。在通过傅里叶变换后,卷积运算转化为向量元素的点积。

对于非线性回归的情况,通过核函数计算将低维空间映射到高维空间[13]。假设样本采用映射变换函数为f(z)=wTφ(z),可以得到最优解:

(8)

分类器完成训练之后,计算图像帧中的目标特征,并输入特征信息判断目标的位置。对于输入图像块z,其样本矩阵为Z,可以得到样本响应:

(9)

对f(z)的值做离散傅里叶逆变换运算,得到候选区域是目标位置的概率值,在对全部候选区域计算后,其中最大值的候选区域就是红外图像中目标的位置。KCF算法对视频帧进行跟踪时,采用线性插值法更新模型参数,公式为:

(10)

式中:μ表示模型更新的学习率;t表示当前帧序号;xt、xt-1、xt+1分别是当前帧、上一帧、下一帧的目标外观模型;αt、αt-1、αt+1由式(8)得到,分别表示训练样本后当前帧、上一帧、下一帧的滤波器模型参数。

2.3.2多尺度估计

KCF算法的研究重点在于对目标位置的预测,缺少对目标尺度变化的情况研究[15],本文通过构建尺度金字塔来进行目标尺度自适应。在跟踪过程中,首先通过滤波器对当前帧进行相关运算,得到跟踪目标对象的大概位置和中心坐标,在目标中心附近区域截取多个尺度的图像块[15]。然后将不同尺度的图像块缩放至近似原始目标的固定尺寸,输入到尺度滤波器计算响应值,比较各个不同尺度的响应值大小,其中最大响应值的尺度就是估计的最佳目标尺度。图5为多尺度估计的流程。

图5 多尺度估计流程

考虑到视频序列中图像帧相接贯连,相邻几帧的目标尺度变化很小,本文每间隔n帧图像进行一次尺度估计,提高计算速度。

2.4 目标丢失再检测

2.4.1目标丢失判断

KCF算法在视频目标跟踪中,如果跟踪目标发生形变或者被遮挡时,就会破坏分类模型导致跟踪失败。文献[16]指出,目标跟踪状况与响应峰值的变化有关,在目标丢失时峰值会快速减小。本文在跟踪中对分类器的响应峰值进行异常判断检测,若发现响应值突然减小,则判断为已丢失或即将发生丢失。异常峰值判断公式如下:

(11)

式中:vi表示不同视频帧的响应峰值;μ表示前n-1帧的峰值均值;σ表示前n-1帧的峰值平方差。如果当前帧的峰值vc和均值μ的绝对距离大于λσ,那么认为这个值为一个异常值。

检测到异常值出现时,目标即将丢失或已经丢失。同时,在算法持续跟踪的过程中,设置thlost表示允许异常最大帧数,本文实验设为8,超过阈值启动再检测。

2.4.2目标检测匹配

使用YOLOV3对当前视频帧进行再检测,得到最新的位置和尺寸信息,存在以下三种可能情况:(1)只有一个目标,且与原始跟踪目标一致;(2)得到多个目标,原始目标与干扰目标共存;(3)检测不到目标。

为了解决第二种情况,需要对检测目标与原始跟踪目标进行匹配,保证目标不混淆。若异常前一帧的跟踪框为Rs,此时的再检测目标框为Rr,中心坐标分别为(xs,ys)和(xre,yre),计算它们的直线距离LD与重叠率OR,综合二者的数值得到关联度SD,再检测目标中原始跟踪目标的相似度最大。

LD=(xre-xs)2+(yre-ys)2

(12)

(13)

(14)

对于第三种再检测情况,YOLOV3检测算法与目标跟踪算法都已失效,此时无法得到跟踪目标的信息,判断为目标从视频中消失。若多帧图像后目标再次出现,重新对其进行检测并标注跟踪。

3 实 验

实验平台为Windows 10系统PC机,CPU英特尔Core i5-6500,主频3.6 GHz,GPU为NVIDIA GeForce GTX 1080 Ti,内存8 GB。首先以Anaconda为开发环境训练网络模型,并安装cuda 8.0加速网络计算,生成离线调用的检测模块。然后以VisualStudio2015和OpenCV 3.4.6为开发环境,读取红外监控视频,并编程实现目标检测及跟踪结合。KCF算法的参数通过实验确定,线性插值因子μ为0.02,HOG高斯核标准差σ为0.5,峰值异常检测中的λ系数为4,多尺度估计每隔8帧进行一次,关联度λ1和λ2取0.5。

本文对红外热成像视频进行研究,由于国内外公开数据集较少,故采用公开数据集和自制数据结合的方式实验。VOT-2015TIR数据集是单目标跟踪研究领域的公开数据集,其中包含20个红外图像序列,目标为人、车、马等,分辨率各不相同。CVC-09 FIR是西班牙巴塞罗那大学计算机视觉中心用于自动驾驶研究的数据集,本文采用其中部分图像序列作为车辆目标数据,图像分辨率为640×480。另外使用海康DS-2CD8314型号的红外热成像摄像机拍摄视频,作为行人目标数据来源,分辨率为704×576,帧率为25。

3.1 目标检测实验

实验测试环境分为日间和夜间场景,分别取人和车辆作为目标,从红外视频和图像序列数据集中随机选取图像,得到不同场景下目标检测的正确检测率、误检率和漏检率,结果如表1所示。

表1 采用YOLOV3方法的目标检测结果

由表1可以发现,检测效果在不同场景下有所不同。在夜间场景下,光照干扰较少,目标检测算法表现较好。目标为车的检测正确率达到了0.744,相比日间检测正确率0.738有较小提升,误检率和漏检率都有下降;目标为人时,检测正确率、误检率和漏检率都有同样的表现。无论日间还是夜间,车辆作为目标的检测结果明显好于人作为目标,这是因为车辆边缘信息较为明显且状态不会发生变化,而人由于边缘信息模糊,且运动状态多变影响效果。在夜间和日间场景,车辆的检测正确率都高于人的检测正确率。

3.2 目标跟踪实验

在正确检测出目标的结果上,利用目标信息初始化跟踪器并进行目标跟踪,KCF、TLD、MOSSE、CSRDCF和ECO算法作为对比算法,各算法跟踪结果用不同颜色矩形框表示。

图6为行人红外视频不同算法的跟踪结果。跟踪过程中,MOSSE算法和KCF算法均出现误差,误差越来越大逐渐丢失目标;TLD算法能够保持跟踪目标不丢失,但跟踪框尺寸大小反复变化,且第22帧、第55帧、第86帧只包含了目标的一部分;ECO和CSRDCF算法跟踪效果较好;本文算法在前30帧和KCF算法跟踪效果一致,在53帧启动了目标再检测,对跟踪的偏差进行了校正,也取得了较好的跟踪效果。

图6 算法效果对比1

图7为室内红外视频序列的部分跟踪结果对比,目标被障碍物遮挡,在200帧时目标完全遮挡,出现了目标丢失的情况。在262帧时目标重新出现,KCF和MOSSE算法不能正确跟踪目标,TLD和CSRDCF算法仅能框出目标的部分区域,有较大误差,ECO算法无法快速重新跟踪目标,本文算法启动目标再检测策略,能够跟踪丢失目标。

图7 算法效果对比2

图8中跟踪目标为骑行的自行车,目标在不断运动前进,尺度从大到小发生变化。跟踪过程中,KCF、MOSSE无法适应尺度变化,先后在29帧和88帧出现跟踪错误;TLD算法不够稳定,跟踪框偏离真实目标;CSRDCF算法跟踪效果较好,但也无法适应尺度变化,得到的目标框尺寸过大,位置信息不够精确;ECO和本文算法的跟踪框近似,没有出现目标丢失,能够解决尺度变化的问题,跟踪效果较好。

图8 算法效果对比3

采用准确性、鲁棒性和运行速度对算法进行性能评估。准确度是目标在跟踪过程中跟踪框与真实边界框之间的平均重叠。鲁棒性是度量跟踪器丢失目标的次数与跟踪次数的比率。运行速度指每秒计算的图像帧数。

跟踪算法的性能对比如表2所示。在跟踪准确性方面,本文算法得分0.67,低于ECO的0.72,但高于其他算法;在鲁棒性方面,本文算法得分0.26,在实验算法中数值最低、表现最好;在跟踪速度方面,运行速度达到25.1帧每秒,高于跟踪准确性较好的CSRDCF和ECO跟踪算法。本文算法加入了尺度估计和目标再检测策略,在准确性方面有了改善,鲁棒性也更好,同时能够满足实时性要求,跟踪性能较好。

表2 跟踪算法性能评估

4 结 语

针对当前红外视频中目标检测跟踪中存在的问题,同时为了兼顾实时性和准确性,本文提出了一种联合YOLO和核相关滤波的红外视频目标检测跟踪方法。首先对红外视频帧进行滤波降噪和锐化处理,突出了目标信息从而提高检测准确率;然后使用YOLOV3网络模型进行目标检测,识别目标并初始化跟踪器;其次采用KCF算法进行目标跟踪,使用多尺度估计预测尺度变化;最后,在最大响应峰值出现异常后进行目标再检测,利用最新的目标信息进行跟踪,确保目标不丢失。本文算法的准确率和实时性较好,能够克服目标尺度变化和跟踪丢失的情况,可以应用于红外成像摄像机的智能监控,有较高的实用价值。但是,本文算法只在单目标场景下检测跟踪,下一步将对复杂场景和多目标进行研究,提高算法的适用性。

猜你喜欢

滤波红外尺度
环境史衰败论叙事的正误及其评判尺度
基于HP滤波与ARIMA-GARCH模型的柱塞泵泄漏量预测
基于改进自适应中值滤波的图像降噪方法*
网红外卖
“资源一号”02卫星可见近红外相机、宽幅红外相机在轨顺利开机成像
闪亮的中国红外『芯』
汤定元:中国红外事业奠基人
基于非下采样剪切波变换与引导滤波结合的遥感图像增强
以长时间尺度看世界
9