一、基于人体特征识别和卡尔曼滤波的行人跟踪算法简介

1 基于体型和行为姿态特征的人体识别算法
从红外图像中可以得到目标与背景之间的灰度级差别,从而区分出有生命特征的运动物体,但仅从亮度特征无法区别出该运动物体是人类还是其他动物,例如狗等哺乳类动物的红外波长与人类相差不大,且外表毛皮的热辐射作用没有受到衣物遮挡的影响,一样可以通过灰度级之差来从背景中区别出。从红外图像中一般能得到目标自身的两个信息点:目标身上的亮度分布区域,即目标的体型特征;相邻帧之间相同目标的动作变化,即目标的行为姿态特征。根据对这两个信息点的研究,通过具体分析来得出识别人体的判断标准。

1.1 体型特征研究
设定一个灰度级阈值,用于检测目标的边缘像素,并在x轴得出该目标边缘的最左、最右像素点,在y轴方向上得出目标边缘的最上、最下像素点。用这4个点形成一个包围目标的最小矩形,并以矩形中点为中心点向两边平行扩展,把矩形区域分为面积均等的上半部分和下半部分。图1所示的目标行走模型,把矩形区域划分为若干个3×3像素的矩形元素,通过计算目标像素所占矩形元素个数就可以算出目标身体区域的面积。矩形元素的大小可以由用户所需的识别精准度决定,矩形元素越小识别精度越大,但在后续操作中算法的运算负担会增大。大多数陆栖动物都是四肢行走,重心偏下。从图1a动物的行走模型可以看出,其上半部分面积占的矩形元素较多,所以上半部分的身体区域面积与矩形面积之比较大,约为26.1%31.7%,而下半部分与矩形面积之比较小,约为14.3%17.1%,上半部分与下半部分之比约为152%221%。人是双腿行走,直立行走时重心位于小腹区域,上半身与下半身面积之比相差较小,图1b中,正面行走时上半部分的身体区域面积与矩形面积之比约为41.3%42.8%,下半部分与矩形面积之比约为29.7%32.5%,上半部分与下半部分之比约为127%144%。图1c中,侧面行走时上半部分的身体区域面积与矩形面积之比约为23.6%25.8%,下半部分与矩形面积之比约为21.0%22.8%,上半部分与下半部分之比约为103%~122%。按照这种体型分布差异,先计算出目标上半、下半部分面积分别为A和B,矩形区域的面积为D,得到体型特征值Q为

图1 目标行走模型
1.2 行为姿态特征识别
将行人与动物的体型分布差异作为识别人体的标准并不全面,为了提高人体识别的精准性,通过研究人与动物的行为姿态特征差异,设计一种基于高斯混合模型的前后帧像素点概率匹配的方法,再结合人体体型特征来提高识别人体目标的成功概率。在1.1节中提到,大多数陆栖动物是四肢行走,因此这些动物在行走时的行为姿态变化主要集中在身体的下半部分,即前后帧相同目标的上半部分对应的像素点匹配概率大,而下半部分对应的像素点的匹配概率小。人是通过双腿行走,而且在行走过程中会通过双臂的摇摆来保持身体的平衡,因此,前后帧相同人体目标的上半部分与下半部分对应的像素点的匹配概率相差较小。通过求出人体目标上半身部分和下半身部分在前后帧图像中对应像素的平均匹配概率,得出它们之间的比值,与设置的阈值T进行对比从而确定行为姿态特征值。

在文献中提到利用高斯混合模型的概率密度函数对分类任务进行概率估算和选择的有效性。以前一帧红外图像出现的目标身体上、下两部分分别作为匹配模板,建立相对应的高斯概率模型,计算下一帧图像目标身体上、下两部分的像素点分别与前一帧对应的像素点能够进行匹配的概率。以目标身体的上半部分为例,计算这部分区域在x轴和y轴方向上的均值和方差,分别设为μx,μy和σx2,σy2,并用高斯混合密度函数g(xi;μ,Σ)来描述任意一个像素点xi处于该区域的概率为

式中,d表示维度;Σ为此密度函数的共变异矩阵,为了简化讨论,Σ表示为

此时高斯密度函数表示为

得到目标身体上半部分的概率匹配模型后,计算下一帧中目标对应身体部分的n个像素点的匹配概率总和ρ(A),再求得像素点的平均匹配概率ρ(A)/n,同理,求出目标身体下半部分像素点的平均匹配概率为ρ(B)/m,对于设置的阈值T1,T2,行为姿态特征值S为

结合体型特征值Q和行为姿态特征值S,得到人体识别的判定算式为

当R=2时,当前目标确定为人体目标,R≠2时,则排除目标为人体目标的可能性,不进行警报和后续的跟踪操作。

2 基于方向梯度直方图和卡尔曼滤波器的目标跟踪
当确定运动目标为行人后则开始进行跟踪操作,在一个监控场景中往往会有多个行人目标,要对多个目标分别进行检测跟踪,需要区别每一个行人目标的活动位置,并通过方向梯度直方图(HOG)对不同行人目标进行检测,在最后阶段采用卡尔曼滤波器估计行人的运动状态,并去除无用的测量值噪声,实现跟踪的准确性。

在监控区中,不同的行人目标所处的位置与摄像头之间的距离会有差异,这种差异可以通过包围目标的矩形面积与该帧图像的面积之比体现,可作为区别不同目标活动位置的一个特征,而包围目标的矩形面积如1.1节所述,求出目标在x轴的最小、最大坐标(xmin,y),(xmax,y)和y轴上的最小、最大坐标(x,ymin),(x,ymax),设该监控帧图像的面积D大小是固定的,则二者比值为(xmax-xmin)(ymax-ymin)/D。

2.1 方向梯度直方图(HOG)
HOG descriptors首先由DALAL N和TRIGGS B于2005年提出 ,它是通过计算目标局部图像梯度的方向信息的统计值来进行目标检测的特征描述器。利用方向梯度直方图技术 ,将目标分成小的细胞单元,计算每个细胞单元中边缘的方向直方图,接着让细胞单元中的每一个像素点都为基于方向的直方图通道投票,且每一票都是带权值的,而权值则通过该像素点的梯度幅度计算得出。为了使检测的效果达到最好,采用矩形状的细胞单元、无向的梯度和9个直方图通道。

由于监控过程中背景与目标之间的亮度对比可能会发生变化,这样会导致梯度强度的变化范围增大,需要对梯度强度采用归一化操作。把各个细胞单元组合成大的、空间上连通的矩形区间(R-HOG),区间主要通过3个参数表征,即每个区间的细胞单元数,每个细胞单元的像素点数量,每个细胞的直方图通道数。分别把这3个参数设置为3×3细胞/区间,6×6像素/细胞以及9个直方图通道,接着对区间进行归一化,用v表示一个还没有被归一化的向量,它包含了给定区间的所有直方图信息,‖v‖k表示一个v的k阶范数,归一化方式采用文献中提到的L2-Hys,L2-norm,则

2.2 卡尔曼滤波
卡尔曼滤波在物体互相遮挡和测量值带噪声的情况下仍然可以实现实时目标跟踪的效果 。用目标运动速率的线性随机微分方程来描述系统,用坐标位置(x,y)和包围目标的矩形的宽度l和高度h表示目标在某个时刻的系统状态。假设目标在监控区内匀速行走,离散控制过程的系统方程为

λ为微测热传感器的数据采集周期;G(k)表示速率变动(加速度),即过程的高斯白噪声。系统测量值为z(k)=H(k)x(k)+C(k),H表示测量系统的参数,C(k)表示测量噪声。行人的姿势 和相关联的误差协方差矩阵P使用卡尔曼滤波器预测得出

式中,Q是过程噪声的协方差。结合预测值和测量值,可以得到现在状态(k)的最优化估算值为

并更新k状态下x(k| k)的误差协方差

式中,K(k)为卡尔曼增益。

式中,R(k)是指测量噪声的协方差,测量协方差的值较低时意味着在当前的测量值上具有更大的加权,此时跟踪系统的灵敏度更高。当一个新目标刚进入监控区时,往往只是身体部分进入监控的摄像头视域,此时的第一帧并不会显示一个完整的目标,可能会造成目标检测失真,无法确定跟踪。为了提高跟踪系统的鲁棒性,对于出现在监控区的新目标,经过3张连续的帧图像检测后再确认是否为有效的目标并进行跟踪。

二、部分源代码


三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]万智萍.基于人体特征识别和卡尔曼滤波的行人跟踪算法[J].电光与控制. 2016,23(11)

【目标跟踪】基于matlab帧差法结合卡尔曼滤波行人姿态识别【含Matlab源码 1127期】相关推荐

  1. 【目标跟踪】基于matlab GUI帧差法结合卡尔曼滤波行人姿态识别【含Matlab源码 1127期】

    ⛄一.基于人体特征识别和卡尔曼滤波的行人跟踪算法简介 1 基于体型和行为姿态特征的人体识别算法 从红外图像中可以得到目标与背景之间的灰度级差别,从而区分出有生命特征的运动物体,但仅从亮度特征无法区别出 ...

  2. 【目标跟踪】帧差法结合卡尔曼滤波行人姿态识别【含GUI Matlab源码 1127期】

    ⛄一.基于人体特征识别和卡尔曼滤波的行人跟踪算法简介 1 基于体型和行为姿态特征的人体识别算法 从红外图像中可以得到目标与背景之间的灰度级差别,从而区分出有生命特征的运动物体,但仅从亮度特征无法区别出 ...

  3. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  4. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  5. 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】

    一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  6. 【Matlab车牌识别】停车计费系统【含GUI源码 735期】

    一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...

  7. 【Matlab水果识别】自助水果超市【含GUI源码 594期】

    一.代码运行视频(哔哩哔哩) [Matlab水果识别]自助水果超市[含GUI源码 594期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]倪云峰,叶健,樊娇娇 ...

  8. 【目标追踪】三帧差法原理及实现

    三帧差法原理及实现 (一)帧差法原理及实现: (二)帧差法存在的问题: (三)三帧差法的原理: (四)三帧差法的实现代码: (五)视频中的目标追踪效果: 关注我的公众号: (一)帧差法原理及实现: 这 ...

  9. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  10. 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...

最新文章

  1. 重新精读《Java 编程思想》系列之组合与继承
  2. 实战1--应用EL表达式访问JavaBean的属性
  3. r语言做绘制精美pcoa图_R语言统计与绘图:绘制QQ图
  4. Innodb中MySQL如何快速删除2T的大表
  5. kafka中topic默认属性_分享:Kafka 的 Lag 计算误区及正确实现
  6. 波士顿动力再发逆天机器人视频:倒立、360°旋转、空中劈叉,真是秀儿
  7. 华为张顺茂:华为工业互联网平台FusionPlant助力国家电网打造泛在电力物联网
  8. 使用threading模块实现多线程
  9. HNUSTOJ-1675 Morse Code(DFS+字典序搜索)
  10. Geotrellis系列文章链接
  11. 爬虫2 urllib用法
  12. svnadmin服务安装
  13. 倒向随机微分方程(BSDE)解对终端值的依赖性
  14. 用metasploit(msf)复现MS17-010(经典的永恒之蓝)SMB漏洞
  15. Flowable源码注释(三十二)任务超时作业
  16. html5谷歌地图,谷歌地图API和HTML 5
  17. windows程序设计相关思想
  18. Cache Tiering
  19. 进程、线程、程序的概念与区别
  20. 欧元一个神创造的货币

热门文章

  1. C#资源文件的使用方法
  2. JavaScript——exec和match
  3. SQL server中关于年月日周的添加
  4. Topcoder的使用方法
  5. OpenStack_I版 5.Nova部署
  6. iovec结构体定义及使用 (转)
  7. python之web框架(3):WSGI之web应用完善
  8. Java:for循环出现for(int i : arr)
  9. Linq级联删除 CascadingDeleteOnSubmit
  10. unity Mesh Renderer的一点想法