【目标跟踪】基于matlab GUI帧差法结合卡尔曼滤波行人姿态识别【含Matlab源码 1127期】
⛄一、基于人体特征识别和卡尔曼滤波的行人跟踪算法简介
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] 万智萍.基于人体特征识别和卡尔曼滤波的行人跟踪算法[J].电光与控制. 2016,23(11)
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
【目标跟踪】基于matlab GUI帧差法结合卡尔曼滤波行人姿态识别【含Matlab源码 1127期】相关推荐
- 【目标跟踪】帧差法结合卡尔曼滤波行人姿态识别【含GUI Matlab源码 1127期】
⛄一.基于人体特征识别和卡尔曼滤波的行人跟踪算法简介 1 基于体型和行为姿态特征的人体识别算法 从红外图像中可以得到目标与背景之间的灰度级差别,从而区分出有生命特征的运动物体,但仅从亮度特征无法区别出 ...
- 基于matlab的目标检测 背景差分法和帧差法
本程序实现了图像传感器的叶子抖动研究系统,利用背景差分.帧差法实现了此系统. 结果如下: 点击帧差法,显示如下: 部分程序见: gui_Singleton = 1; gui_State = struc ...
- 【数字信号调制】基于matlab GUI PCM编码和QAM调制系统【含Matlab源码 2080期】
⛄一.PCM编码+QAM调制简介 1 PCM 数字信号是对连续变化的模拟信号进行抽样.量化和编码产生的,称为PCM(Pulse Code Modulation),即脉冲编码调制. 脉冲编码调制就是把一 ...
- 【车辆计数】基于matlab GUI背景差分法道路行驶多车辆检测【含Matlab源码 1911期】
⛄一.背景差分法和帧间差分法的车辆运动目标检测简介 1 引言 运动目标检测是从图像序列中检测运动目标.通过运动目标检测可以得到图像中的运动目标,获取图像中的运动信息.运动目标检测在医学辅助诊断.航天航 ...
- 【时钟识别】基于matlab GUI Hough变换指针式时钟识别【含Matlab源码 2085期】
⛄一.简介 1 仪表示数识别流程 基于刻度准确定位的指针式仪表示数识别方法包括预处理.指针检测.刻度定位.油位计表盘中心拟合与仪表读数计算5个部分.该方法无需预先添加任何表盘信息,算法流程如图2所示. ...
- 【图像加密】基于matlab GUI正交拉丁方置乱+混沌图像加密解密【含Matlab源码 636期】
⛄一.正交拉丁方置乱及混沌系统简介 0 引言 随着通讯技术的飞速发展, 越来越多的领域需要传送数字图像信号, 因此信息的传送安全问题显得越来越重要.通常应用于数字图像通信的两种保护技术为:数字水印技术 ...
- 【图像加密】基于matlab GUI正交拉丁方置乱算法图像加解密【含Matlab源码 182期】
⛄一.正交拉丁方置乱简介 0 引言 随着通讯技术的飞速发展, 越来越多的领域需要传送数字图像信号, 因此信息的传送安全问题显得越来越重要.通常应用于数字图像通信的两种保护技术为:数字水印技术和图像加密 ...
- 【图像融合】基于matlab GUI高斯金字塔+拉普拉斯金字塔彩色图像融合【含Matlab源码 1506期】
一.区域分割图像融合简介 图像的分解 对源图像进行融合时,首先对图像进行分解,利用拉普拉斯金字塔分解,先对图像进行高斯金字塔分解,然后再进行拉普拉斯金字塔分解. 1 高斯金字塔分解 记源图像为G0,G ...
- 【图像加密】基于matlab GUI Logistic混沌图像加密与解密【含Matlab源码 1216期】
⛄一.混沌图像加密与解密简介 混沌系统图像加密解密理论部分参考链接: 基于混沌系统的图像加密算法设计与应用 ⛄二.部分源代码 %加密程序 function b=jiami(a,s,h) [m1,n1] ...
最新文章
- C++学习笔记-----存在多态调用时,为基类定义虚析构函数
- cmd查看当前python安装路径_NotePad++上配置Python
- oracle11g arm,想知道ARM11架构?这篇介绍告诉你
- 英雄联盟与人生奋斗的类比讨论
- 跨路由器 网段访问rtsp_实验演示:三层交换机与路由器对接
- 一步一步学习Servlet之Session使用
- 抽象类继承 java_java继承抽象类
- windows系统通过git上传代码
- IIS 7.5学习笔记(二)IIS简史:从IIS 1.0到IIS 7.5
- android实现简单进度条ProgressBar
- 常见笔顺错误的字_容易出错的汉字|汉字中哪些字笔顺容易错
- 切换进程 切换线程
- 小众绿软|媒体:Soprano Audio Player v1.60
- Unzip error: unsupported compression method 99
- C6678信号处理板学习资料:基于6U VPX TMS320C6678+XC7K325T 的信号处理板
- pycharm提示无法加载文件 C:\Users\admin\Desktop\pythonLX\venv\Scripts\activate.ps1,因为在此系统上禁止运行脚本
- mysql讲事物写到数据库_CookBook/1-MySQL数据库读写锁示例详解、事务隔离级别示例详解.md at master · Byron4j/CookBook · GitHub...
- 锂电池电量百分比计算_手机电池容量的百分比显示跟电池的电量“格子”的比例计算...
- openssl-genras命令简单入门
- java model类_Java Model类代码示例