一种基于深度神经网络的人体姿态识别方法技术

技术编号:20329552 阅读:33 留言:0更新日期:2019-02-13 06:00
本发明专利技术公开了一种基于深度神经网络的人体姿态识别方法,该方法包括:转发服务器从网络视频录像机上接收实时视频流,从实时视频流中抓取视频帧,发送给识别服务器;识别服务器使用深度卷积姿态神经网络模型提取关节点信息特征,合成人体骨架的结构信息,形成特征向量;通过多分类支持向量机进行分类识别,将识别结果返回转发服务器;转发服务器将识别结果与视频帧发送至客户端显示,实现实时的人体姿态识别。本方法可提高智能视频监控系统综合性能,改善用户的实时体验,更实用、可行性更高,有广泛的应用价值和经济效益。

【技术实现步骤摘要】
一种基于深度神经网络的人体姿态识别方法
本专利技术涉及人体姿态识别,具体涉及一种基于深度神经网络的人体姿态识别方法,属于智能视频监控和计算机视觉领域。
技术介绍
人体姿态识别是指对图像中的人体进行自动分析处理,对人体姿势信息按照预先设计的分类标注。姿态识别是行为识别中的一个基本问题,可靠而准确地识别人体姿态可以用于人体行为分析、人员工作状态或学习状态的判别,从而为各行各业的智能化管理自动提供信息。由于图像中人的衣着,姿态,背景等的多样性以及存在一些自我遮挡和其他人或物体遮挡的情况,准确地预测出图像中的人体姿态非常具有挑战性。目前基于普通光学图像的人体姿态识别算法主要利用人体的表观特征,如人体轮廓特征或图像中人体与其他物体之间的上下文关系,这些特征都与颜色有关,易受到光照等外界条件的影响,当不能够提取到很好的特征,易出现识别准确率低下等问题。山东大学提出一种基于关节点信息的人体行为识别新方法(机器人,2014.3),使用Kinect采集的关节点数据构造人体结构向量,用人体结构向量间的向量角和向量模比值提取行为来表示特征量,最后使用动态时间规整(DTW)算法计算测试行为模板与参考行为模板之间的相似度。该方法主要目的是识别动态行为,虽然也利用了关节点信息构造人体结构特征,但是利用Kinect专用设备获取人体关节点信息,并且构造出的人体结构特征信息处理方法也跟本专利不同。电子科技大学提出一种基于深度卷积神经网络的人体姿势识别方法(CN105069413A),将姿势估计阐述为分类问题,设计了针对姿势估计的神经网络ILPN来进行关节定位,通过查找坐标映射表,将统一尺度下的人体姿势映射回原图像尺度下从而估计出RGB图像中人体姿势。广东省智能制造研究所提出基于卷积神经网络与支持向量机的人体行为识别方法(CN108052896A),将RGB图像输入至VGG神经网络模型进行特征提取,形成一组卷积特征图;将特征图作为双分支深度卷积神经网络模型的输入,获得关节点和关节关联信息,然后采用二分图匹配算法逐步进行局部寻优,最终获得最佳关节匹配;对骨骼序列数据进行归一化处理,并通过组合多个支持向量机分类器来实现多分类器的构造。以上两种方法虽然利用了深度神经网络,但网络模型提取关节点信息的过程和方法都与本专利不同;同时这些方法都没有涉及如何在网络摄像机中实时获取视频帧,并进行实时分类识别的问题。本专利技术利用深度卷积姿态神经网络从实时视频帧中提取人体关节点信息,实时分类识别人体姿态,还提出了从网络摄像机视频流实时在线地获取图像帧,返回识别结果用于智能视频监测系统的方法,可以应用于智能视频监控系统中,可提高系统综合性能,改善用户的实时体验,更实用、可行性更高,有广泛的应用价值和经济效益。
技术实现思路
本专利技术公开了一种面向智能视频监控的基于深度神经网络的人体姿态识别方法,该方法包括:1)转发服务器从网络视频录像机上接收实时视频流,抓图子线程从实时视频流中抓取视频帧,发送给识别服务器;2)识别服务器使用深度卷积姿态神经网络模型提取关节点信息特征,合成人体骨架的结构信息,形成特征向量;3)通过多分类支持向量机进行分类识别,将识别结果返回转发服务器;4)转发服务器将识别结果与视频帧一并发送至客户端显示,实现实时的智能视频监控系统中的人体姿态识别。具体来说,本专利技术的方法包括以下内容:A.视频转发服务器获取实时视频流,将视频帧送给转发模块和抓图模块,具体实施步骤如下:A1.视频转发服务器(简称转发服务器)建立面向客户端和网络视频录像机(简称NVR)的控制端口和数据端口;所述控制端口用于控制信息通信,数据端口用于视频流和人体姿态识别信息通信;A2.客户端通过控制端口向转发服务器发送请求某路NVR视频的请求;A3.转发服务器主线程(简称主线程)根据客户端请求,向NVR发送请求该路视频流的请求,为该路视频流建立对应的通道;A4.主线程为每个通道创建所需的线程和缓冲队列,具体步骤如下:A4.1创建一个定时器,一个抓图函数,一个抓图子线程和一个抓图环形缓冲队列,用于抓图和姿态识别;抓图环形缓冲队列包含但不限于以下成员:-队列头指针head,指向要识别处理的视频帧的视频数据缓冲区,初值为-1;-队列尾指针tail,指向新获取的视频帧的视频数据缓冲区,初值为-1;-视频帧数据缓冲区指针pBuf,指向当前正在识别的视频帧,初值为-1;-视频帧数据大小nSize,为当前正在识别的视频帧的大小,初值为-1;-上一帧pPre,指向已经识别的视频帧数据缓冲区,初值为-1;A4.2创建一个转发子线程和一个转发环形缓冲队列,用于转发收到的视频流给客户端;所述的转发环形缓冲队列结构类似于抓图环形缓冲队列;A5.主线程接收从NVR发来的视频流,将视频流中的视频帧分别处理,具体步骤如下:A5.1将视频帧直接挂接到转发环形缓冲队列;A5.2将解码后的视频帧存入播放缓冲区;B.抓图函数和抓图子线程合作,将视频帧发送给人体姿态识别服务器(简称识别服务器),具体步骤如下:B1.将定时器的时间间隔设置为M秒,M包括但不限于1;定时器每隔M秒触发给定的抓图函数;B2.抓图函数从播放缓冲区里抓取视频帧,挂载到抓图环形缓冲队列上,将队列尾指针tail指向该视频帧;B3.抓图子线程从抓图环形缓冲队列上摘取视频帧,发送至识别服务器,具体步骤如下:B3.1抓图子线程通过绑定相应的端口与识别服务器连接;B3.2抓图子线程将抓图环形缓冲队列头指针head的值,赋给视频帧数据缓冲区指针pBuf,读取视频帧大小nSize;B3.3抓图子线程将pBuf所指的视频帧发送给识别服务器端后,并将pBuf的值赋给pPre;B3.4将head加1,指向下一个要识别的视频数据缓冲区;循环步骤B3.2与B3.3;C.识别服务器端接收到视频帧后,识别模块对视频帧进行姿态识别,具体步骤如下:C1.识别模块接收视频帧,选取图片左上角作为坐标原点;C2.识别模块利用深度神经网络模型对视频帧中的人体检测并进行关节点定位,得到关节点坐标,写入坐标文本文件中,具体步骤如下:C2.1所述的深度神经网络模型包括人体检测模型和关节点定位模型;C2.2利用人体检测模型检测视频帧中各个人体所在位置,输出包围人体的矩形框,具体步骤如下:C2.2.1加载训练好的模型;C2.2.2输入待检测的视频帧,得到各个人体所在的大致区域,输出包人体矩形框的位置信息;所述的人体矩形框位置信息包括但不限于坐标信息(x1,y1,x2,y2),其中(x1,y1)是左上角坐标,(x2,y2)是右下角坐标;C2.3利用关节点定位模型预测人体关节点的位置,具体步骤如下:C2.3.1加载训练好的关节点定位模型;C2.3.2从矩形框所框选范围内,直接生成不同尺度的图像,分别送入关节点定位模型;C2.3.3基于每个尺度,计算网络预测的各个关节点的响应图,得到不同尺度下各个关节点的响应图;C2.3.4对于每个关节点,依次累加每个关节点对应的所有尺度的响应图,得到总响应图;C2.3.5在每个关节点的总响应图上,找出分数最大的点,则该最大值所在位置(x,y)即为预测的关节点位置,选取图片左上角作为坐标原点;C2.4将视频帧编号及其对应的14个关节点坐标依次写入坐标文本文件中;所述的关节点本文档来自技高网
...

【技术保护点】
1.一种基于深度神经网络的人体姿态识别方法,其步骤包括:A.视频转发服务器(简称转发服务器)主线程从网络视频录像机(NVR)的实时视频流中获取视频帧,分别送给转发模块和抓图模块,具体实施步骤如下:A1.转发服务器主线程(简称主线程)分别建立面向客户端和网络视频录像机(NVR)的控制端口和数据端口;所述控制端口用于控制信息通信,数据端口用于视频流和人体姿态识别信息通信;A2.客户端通过控制端口向转发服务器发送请求某路NVR视频的请求;A3.主线程根据客户端请求,向NVR发送请求某路视频流(称为一个通道)的请求;A4.主线程为每个通道创建所需的线程和缓冲队列;A5.主线程接收从NVR发来的视频流,将视频流中的视频帧分别处理;B.抓图函数和抓图子线程合作,将视频帧发送给人体姿态识别服务器(简称识别服务器),具体步骤如下:B1.将定时器的时间间隔设置为M秒,M包括但不限于1;每隔特定的时间间隔M秒,定时器会触发给定的抓图函数;B2.抓图函数将从播放缓冲区里抓取的视频帧挂载到抓图缓冲队列上;B3.抓图子线程从抓图环形缓冲队列上摘取视频帧,发送至识别服务器;C.识别服务器端接收到视频帧后,识别模块对视频帧进行姿态识别,具体步骤如下:C1.识别模块接收视频帧;C2.识别模块利用深度卷积姿态神经网络模型对视频帧中的人体关节点定位,得到关节点坐标,写入坐标文本文件中;C3.将离散的坐标用矩阵标识相邻关节点之间的连接关系,四肢角度与方向信息由特征向量;C4.利用支持向量机分类器进行分类识别;D.识别服务器端将视频帧信息与识别结果发送至转发服务器;所述的识别结果包括但不限于人体矩形框坐标、识别出的姿态类别、概率;E.转发服务器将视频流以及人体姿态识别结果转发给客户端进行显示,具体步骤如下:E1.转发服务器上的抓图子线程接收识别服务器发来的识别结果信息,写入转发环形缓冲队列中,下一个要转发的视频帧的附加数据包中;E2.转发子线程负责从转发环形缓冲队列摘取视频帧及其附加数据包;E3.转发子线程将视频帧及其附加数据包一起转发给客户端;E4.客户端实时显示视频帧以及对应的人体矩形包围框和姿态识别的概率。...

【技术特征摘要】
1.一种基于深度神经网络的人体姿态识别方法,其步骤包括:A.视频转发服务器(简称转发服务器)主线程从网络视频录像机(NVR)的实时视频流中获取视频帧,分别送给转发模块和抓图模块,具体实施步骤如下:A1.转发服务器主线程(简称主线程)分别建立面向客户端和网络视频录像机(NVR)的控制端口和数据端口;所述控制端口用于控制信息通信,数据端口用于视频流和人体姿态识别信息通信;A2.客户端通过控制端口向转发服务器发送请求某路NVR视频的请求;A3.主线程根据客户端请求,向NVR发送请求某路视频流(称为一个通道)的请求;A4.主线程为每个通道创建所需的线程和缓冲队列;A5.主线程接收从NVR发来的视频流,将视频流中的视频帧分别处理;B.抓图函数和抓图子线程合作,将视频帧发送给人体姿态识别服务器(简称识别服务器),具体步骤如下:B1.将定时器的时间间隔设置为M秒,M包括但不限于1;每隔特定的时间间隔M秒,定时器会触发给定的抓图函数;B2.抓图函数将从播放缓冲区里抓取的视频帧挂载到抓图缓冲队列上;B3.抓图子线程从抓图环形缓冲队列上摘取视频帧,发送至识别服务器;C.识别服务器端接收到视频帧后,识别模块对视频帧进行姿态识别,具体步骤如下:C1.识别模块接收视频帧;C2.识别模块利用深度卷积姿态神经网络模型对视频帧中的人体关节点定位,得到关节点坐标,写入坐标文本文件中;C3.将离散的坐标用矩阵标识相邻关节点之间的连接关系,四肢角度与方向信息由特征向量;C4.利用支持向量机分类器进行分类识别;D.识别服务器端将视频帧信息与识别结果发送至转发服务器;所述的识别结果包括但不限于人体矩形框坐标、识别出的姿态类别、概率;E.转发服务器将视频流以及人体姿态识别结果转发给客户端进行显示,具体步骤如下:E1.转发服务器上的抓图子线程接收识别服务器发来的识别结果信息,写入转发环形缓冲队列中,下一个要转发的视频帧的附加数据包中;E2.转发子线程负责从转发环形缓冲队列摘取视频帧及其附加数据包;E3.转发子线程将视频帧及其附加数据包一起转发给客户端;E4.客户端实时显示视频帧以及对应的人体矩形包围框和姿态识别的概率。2.如权利要求1所述的一种基于深度神经网络的人体姿态识别方法,主线程为每个通道创建所需的线程和缓冲队列,具体步骤如下:A4.1创建一个定时器,一个抓图函数,一个抓图子线程和一个抓图环形缓冲队列,用于抓图和姿态识别;抓图环形缓冲队列包含但不限于以下成员:-队列头指针head,指向要识别处理的视频帧的视频数据缓冲区,初值为-1;-队列尾指针tail,指向新获取的视频帧的视频数据缓冲区,初值为-1;-视频帧数据缓冲区指针pBuf,指向当前正在识别的视频帧,初值为-1;-视频帧数据大小nSize,为当前正在识别的视频帧的大小,初值为-1;-上一帧pPre,指向已经识别的视频帧数据缓冲区,初值为-1;A4.2创建一个转发子线程和一个转发环形缓冲队列,用于转发收到的视频流给客户端;所述的转发环形缓冲队列结构类似于抓图环形缓冲队列。3.如权利要求1所述的一种基于深度神经网络的人体姿态识别方法,主线程接收从NVR发来的视频流,将视频流中的视频帧分别处理,具体步骤如下:A5.1将视频帧直接挂接到转发环形缓冲队列;A5.2将解码后的视频帧存入播放缓冲区。4.如权利要求1所述的一种基于深度神经网络的人体姿态识别方法,抓图子线程从抓图环形缓冲队列上摘取视频帧,发送至识别服务器,具体步骤如下:B3.1抓图子线程通过绑定相应的端口与识别服务器连接;B3.2抓图子线程将抓图环形缓冲队列头指针head的值,赋给视频帧数据缓冲区指针pBuf,读取视频帧大小nSize;B3.3抓图子线程将pBuf所指的视...

【专利技术属性】
技术研发人员:赵霞管文华于重重李磊赵松冯泽骁
申请(专利权)人:北京工商大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1