APP下载

基于AM5708的智能多目标跟踪监控系统设计

2021-03-07薛培康杜红棉李若愚

科学技术与工程 2021年4期
关键词:高斯分布卡尔曼滤波高斯

薛培康, 杜红棉, 王 玮, 李若愚

(中北大学仪器科学与动态测试教育部重点实验室, 太原 030051)

智能视频监控系统一般是指在没有人为干预的情况下,利用计算机视觉技术对图像序列进行自动分析和理解,对监控场景中的变化进行检测、定位和跟踪,并在此基础上分析和判断目标的行为,从而有效地协助相关人员处理问题[1]。传统的视频监控以嵌入式系统为核心,通过网络将摄像头采集到的视频序列传输给计算机,从而实现实时监控[2-3]。但这些系统并不具备图像处理和智能分析的能力。基于ARM的智能视频监控人脸检测系统,通过对人脸进行检测来提高视频监控的性能。但是其并不具备定位和跟踪的能力,相对来说智能化程度较低[4]。杨夏[5]设计的系统能较好地检测和跟踪到运动目标,但是该系统只能跟踪单个目标,当出现多个目标时就会存在跟踪丢失的问题。而实际的监控场景通常比较复杂,视频序列的质量往往会受到噪声、光照变化、多目标运动以及遮挡等因素的影响[6]。

针对上述存在的问题,从算法和系统两个角度对传统视频监控做出改进,基于AM5708处理器设计并实现一种高性能的智能多目标跟踪监控系统。前端摄像头负责采集视频序列,AM5708处理器做相应算法处理,以太网负责信息传输,从而实现多目标跟踪。

1 硬件设计及工作流程

智能多目标跟踪监控系统的硬件主要包括嵌入式核心板、电源管理模块、监控摄像头和高清媒体接口(high-definition multimedia interface,HDMI)显示屏等。嵌入式核心板搭载TI公司生产的Sitara系列产品AM5708异构多核处理器,该处理器集成了Cortex-A15 ARM内核和C66x浮点DSP内核。此外,核心板支持Linux、RTOS、Ubuntu、ROS操作系统,并且具有很强的图形计算能力和丰富的硬件可扩展结构。外部电源输入经过电源管理芯片转换成各个模块需要的电压,同时5 V锂电池作为电源管理模块的供电补充源,保证系统在断电时也能正常工作。摄像头采用标准USB宽动态相机模组,其输入视频刷新帧率最高可达30 FPS。系统硬件结构如图1所示。

系统在开机后进入工作状态,首先Cortex-A15接受来自摄像头的图像数据,并对图像进行预处理,消除环境噪声的影响;然后Cortex-A15对经过预处理的图像进行运动前景提取和跟踪,最后将跟踪结果通过HDMI显示屏进行实时显示。此外,系统还可以将跟踪到的目标图像帧和相应的运动轨迹记录到本地SD存储卡中,用于后期的事件分析。

图1 系统硬件结构Fig.1 System hardware structure

2 软件环境搭建

为了在嵌入式硬件平台上实现多目标跟踪的监控系统,就需要先搭建软件开发环境[7],具体流程如下。

(1)建立交叉编译环境。要编译出能运行在ARM上的程序,必须要使用交叉编译工具,现使用arm-linux-gcc-4.3.5版本。

(2)加载引导程序。U-Boot作为引导程序在系统上电后开始运行,完成初始化硬件及软件资源的任务,从而启动操作系统。

(3)移植Linux系统内核。内核是系统的核心,它提供文件系统控制,实现多任务等功能。该部分主要包括内核配置、内核编译和镜像文件烧写。采用的内核版本是Linux2.6.35.7。

(4)构建Linux文件系统。根文件里面包含了Linux系统正常运行所需要的各种库文件和应用程序。

3 算法设计

跟踪框架主要包括高斯混合背景模型检测、卡尔曼滤波器预测跟踪、匈牙利算法实现数据关联以及遮挡处理。检测部分首先通过对背景进行估计来建立背景模型,然后将当前帧与所建背景模型进行作差,从而间接地分离出运动前景,最后对前景进行分割来得到跟踪目标。跟踪部分则根据上一帧的跟踪结果使用卡尔曼滤波器预测目标在当前帧的位置,然后将实际检测结果和卡尔曼滤波器预测结果使用匈牙利匹配算法做数据关联,并根据最优匹配来更新目标的轨迹,最终实现运动目标的检测与跟踪,其流程如图2所示。

图2 目标检测跟踪流程Fig.2 Flow chart of target detection and tracking

3.1 高斯混合背景模型检测

3.1.1 算法原理

高斯混合模型[8]认为视频图像中每一个像素点的像素值在时间轴上服从高斯分布。假设在一段时间里某个像素点的像素值分别为{X1,X2,…,Xt},那么根据这些像素值就可以用K个高斯分布的混合来表示该像素点的像素值分布情况。高斯混合模型定义t时刻像素值Xt属于背景的概率为

(1)

式(1)中:K为高斯分布的数目;wi,t为与t时刻第i个高斯分布的平均值μi,t和协方差矩阵Σi,t相关联的权重;η为高斯概率密度函数,即

(2)

高斯模型在匹配过程中是将t时刻的每一个新像素值Xt与K个高斯分布依次进行匹配,匹配原则如式(3)所示。如果满足条件,就需要按照式(4)~式(6)更新相应高斯分布的权重、均值和方差。

|Xt-μi,t-1|<2.5σi,t-1

(3)

wi,t=(1-α)wi,t-1+αMi,t

(4)

μi,t=(1-ρ)μi,t-1+ρXt

(5)

(6)

式中:α为高斯混合模型学习率;对于匹配的像素,Mi,t=1,否则Mi,t=0;ρ为参数学习率,并且ρ=αη(Xt|μi,σi)。

3.1.2 算法改进

在高斯混合模型中均值和方差的更新速率决定了背景更新速率,而每个像素点对应的高斯分布个数K表示了背景模型的细节程度。为了使高斯混合模型能根据实际环境做出自适应调整,将从更新速率和高斯分布数两个方面进行改进。改进后的算法流程如图3所示。

图3 改进的算法流程Fig.3 Flow chart of improved algorithm

(1)传统高斯混合模型中设置了两个不同的学习率来更新相应参数,而第二个学习率ρ中包含了大量乘法运算,每当背景模型更新时处理器都会花费大量时间来进行系数运算,影响了硬件平台的实时性。在模型更新过程中简化了流程,将两个学习率统一用α来表示。

(2)传统高斯混合模型中高斯数K是固定的,当观测到的新像素值频繁变化时,固定的高斯数并不足以估计背景;而当观测到的新像素值在一段时间内保持恒定时,其所有高斯分布的参数都趋近于相同。因此,提出一种自适应改变高斯数的背景建模方法,它可以增加或减少分布的数目来处理每个像素的变化。在模型匹配过程中,如果t时刻的像素值不能和任何高斯分布匹配,则增加一个高斯分布,其相应的权重、均值和方差使用前K个高斯分布相应参数的平均值来表示。对于匹配成功的高斯分布,则将它们两两进行比较,如果两个高斯分布之间的差异小于一个阈值,则将这两个高斯分布合并成一个。具体过程为

wc,t=(wa,t+wb,t)/2

(7)

(8)

(9)

3.2 卡尔曼滤波器预测跟踪

卡尔曼滤波是一种最小化均方误差的线性滤波方法,它在观测方程和目标状态转移方程的基础上,使用迭代的方式对目标的状态进行预测和更新[9]。卡尔曼滤波的状态方程和观测方程为

Xt=AXt-1+Wt

(10)

Zt=HXt+Vt

(11)

式中:Xt和Xt-1表示t时刻和t-1时刻系统的状态;Zt表示t时刻系统的观测状态。A为状态转移矩阵;H为观测矩阵;Wt为系统噪声,满足正态分布,其协方差矩阵为Q;Vt为观测噪声,同样满足正态分布,其协方差矩阵为R。而卡尔曼滤波的预测和更新方程[10]为

Xt|t-1=AXt-1|t-1+W

(12)

Pt|t-1=APt-1|t-1AT+Q

(13)

Xt|t=Xt|t-1+Kt(Zt-HXt|t-1)

(14)

Pt|t=Pt|t-1-KtHPt|t-1

(15)

Kt=Pt|t-1HT(HPt|t-1HT+R)-1

(16)

式(12)表示状态预测方式,Xt-1|t-1表示上一时刻状态,Xt|t-1表示由上一时刻推出的当前时刻状态;式(13)表示误差协方差预测方式,Pt-1|t-1表示上一时刻估计误差协方差,Pt|t-1表示由上一时刻推出的当前时刻估计误差协方差;式(14)表示目标状态优化方式,Xt|t表示当前时刻状态,Kt表示当前时刻最优卡尔曼增益;式(15)表示误差协方差优化方式,Pt|t表示当前时刻估计误差协方差;式(16)表示卡尔曼增益计算方式。

一般情况下,由于相邻两帧时间间隔较小,可以假设同一个目标在相邻两帧之间做匀速直线运动。使用运动目标的位置x、y坐标、x、y方向速度,目标矩形框面积S和面积变化率vs来表示其当前状态X(k)。使用运动目标的位置x、y坐标和尺寸信息表示观测向量Z(k)。因此X(k)和Z(k)可用下式表示为

(17)

Z(k)=[xk,yk,s,vs]

(18)

由牛顿力学方程得

(19)

(20)

对于y方向上的递推与x方向一样。目标矩形框面积S和面积变化率vs与时间t的关系为

sk=sk-1+vst

(21)

vs(t)=vs(t-1)

(22)

因此,系统的状态转移矩阵A为

(23)

观测矩阵H为

(24)

系统噪声协方差矩阵Q为

(25)

观测噪声协方差矩阵R为

(26)

确定卡尔曼滤波器的参数A、H、Q、R后就可以根据后续的检测信息对运动目标的状态进行预测和估计。

3.3 匈牙利算法实现数据关联

多目标跟踪是基于检测环节进行的,而图像每一帧都有可能检测到多个目标,为了确保检测目标和跟踪目标之间的对应关系,就必须要进行数据关联,通过目标之间的质心距离和空间颜色直方图构建关联矩阵。假设当前跟踪目标数量为m,检测目标数量为n。检测目标和跟踪目标之间的质心距离即为欧氏距离,计算公式[11]为

(27)

式(27)中:a1、a2分别为检测目标和跟踪目标的质心位置。而质心距离对应的关联矩阵D为

(28)

式(28)中:di,j表示第i(i=1,2,…,n)个检测目标和第j(j=1,2,…,m)个跟踪目标间的欧氏距离。颜色直方图统计了一幅图像中不同颜色的分布情况,但是却忽略了某像素在图像中的位置信息。为了使颜色直方图能更准确地表示目标之间的相似度,将目标的空间信息引入。采用区域划分的方法,将目标划分成多个区域,分别统计各个区域的颜色直方图特征,最后将所有的颜色直方图特征连接成一个向量。巴氏距离的计算公式[12]为

(29)

式(29)中:A和B为两个待比较的直方图;N为划分的区域。而空间颜色直方图的关联矩阵P为

(30)

式(30)中:pi,j表示第i(i=1,2,…,n)个检测目标和第j(j=1,2,…,m)个跟踪目标间的巴氏距离。为了使跟踪算法鲁棒性更好,基于两种特征的关联矩阵构建融合矩阵M,计算方法为

M=βD+(1-β)P

(31)

式(31)中:实数β是融合系数,它的取值范围为0到1。

3.4 遮挡处理

在跟踪目标的过程中往往会出现不同程度的遮挡而导致跟踪失败的情况,如何在发生遮挡时保证跟踪的准确性是必须要考虑的问题,通过监测欧式距离的变化来判断遮挡。刚开始发生遮挡时,算法具有鲁棒性,欧式距离小于设定的阈值,则继续使用算法进行跟踪;当遮挡面积不断变大时,欧式距离会不断增大,这时采用卡尔曼滤波器预测结果维持跟踪;当目标被完全遮挡时,欧式距离已经增加到无穷大,此时算法将启动计数器进行计数,若遮挡时间没有超过算法设定的计数上限值,则继续使用卡尔曼滤波器预测结果进行跟踪,否则认为该目标已经完全消失。

4 实验结果与分析

4.1 系统性能测试

实验分别在室内和室外两种环境下进行。算法在检测到运动目标后将会给每一个目标设定一个标签,并为每个成功跟踪的目标随机生成一种颜色的轨迹,由此可以直观地分辨出跟踪成功的多个目标。算法在嵌入式平台上跟踪多目标的结果如图4所示。在系统开始运行的非稳态时间段内,由于目标的运动信息不够充分,算法会把监控场景中的扰动误检成目标,但是随着检测模型的不断修正,算法的检测性能不断提升,最终实现了只对运动目标的检测和跟踪。此外,算法还将运动目标的所有运动轨迹记录下来,这将为后续的数据处理等操作提供有力的支撑。由于实验场地和摄像头视角的限制,本次实验能够有效跟踪到的运动目标数量为6个,实验结果如图5所示。

由于实验当天室外光照比较强烈,摄像头出现曝光过度的情况,鉴于此类情况的时常性,算法提出利用自适应高斯混合模型,根据实际环境来修正相应参数,通过实验验证能够较好地消除光照变化对算法性能的影响。图6中运动目标被停在路边的汽车遮挡,但该目标的运动轨迹在遮挡前后保持紫色标签,此时说明该运动目标的标签没有因为遮挡而被算法判定为新的目标而重新分配。故有结论:场景中目标的运动不会受到障碍物遮挡的影响。图7中的1号目标在运动过程中与2号目标相遇并且两个目标出现相互遮挡的情况,但1号目标的运动轨迹保持紫色标签,同时这也说明在跟踪过程中算法给1号目标设定的标签没有发生改变。故有结论:目标的运动不会受到障碍物遮挡以及物体相遇、相互遮挡的影响。

图4 室内多目标跟踪及轨迹记录Fig.4 Indoor multi-target tracking and trajectory recording

图6 室外目标被障碍物遮挡Fig.6 Outdoor targets are blocked by obstacles

图7 室外目标相互遮挡Fig.7 Mutual occlusion of outdoor targets

4.2 系统实时性测试

由于嵌入式平台的硬件资源有限,为了有效评估本文算法在嵌入式平台上的性能,算法时间复杂度是必须要重点考虑的指标,采用帧率来进行衡量[13]。测试数据为摄像头采集的连续视频帧,每帧分辨率为640×480。由于监控场景和目标的运动速度相对稳定,每1 s内嵌入式平台将维持稳定的运行帧率,因此可以近似地认为1 s内每一帧的处理速率相同。通过截取50 s视频序列,分别统计每1 s内嵌入式平台处理完成的图片帧数,选定50帧图像进行帧率对比,结果如图8所示。由图8可知,算法在嵌入式平台的平均运行帧率保持在18帧/s,由于帧率高于16 FPS时,视频将被生理性人眼判定为连贯稳定运行,因此满足系统实时性的要求。

图8 嵌入式平台实时帧率Fig.8 Real-time frame rate of the embedded platform

5 结论

利用AM5708处理器设计了一种智能多目标跟踪监控系统。基于改进的自适应高斯混合模型提高了算法检测准确率,利用卡尔曼滤波和匈牙利算法解决了多目标跟踪问题和遮挡问题,改善了视频监控在复杂场景下的跟踪能力。经过实验测试,在光照变化、多目标运动和目标遮挡的情况下,算法都能准确检测和跟踪到运动目标,同时系统的实时性和抗干扰性良好。

猜你喜欢

高斯分布卡尔曼滤波高斯
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
脉冲星方位误差估计的两步卡尔曼滤波算法
数学王子高斯
天才数学家——高斯
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
在航集装箱船舶摇摆姿态的概率模型
改进的自适应高斯混合模型运动目标检测算法
改进RRT在汽车避障局部路径规划中的应用
一种基于改进混合高斯模型的前景检测