一种基于关键点检测的多人行为识别系统及工作方法与流程

文档序号:20190176发布日期:2020-03-27 19:34阅读:638来源:国知局
一种基于关键点检测的多人行为识别系统及工作方法与流程

本发明涉及计算机视觉与模式识别技术领域,尤其涉及一种基于关键点检测的多人行为识别系统及工作方法。



背景技术:

本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。

计算机视觉是研究计算机如何能像人类的视觉系统一样对外界获取信息进行感知的一门学科,即让计算机看懂世界,而基于图像的人体行为识别是计算机视觉领域的一个研究热点。图像检测和识别是计算机视觉中的基本任务,图像识别是让计算机对图像进行一系列处理、分析,然后再识别各种不同情境下目标和对象的一门技术。图像识别技术从早期对文字进行识别、对数字进行识别逐渐发展到对物体进行识别、对场景进行识别、对人脸进行识别和对人的各种行为进行识别等日常生活的方方面面。

当一个人说谎时,我们很难通过语言判断他当前的情绪状态,但是一个人的肢体语言却很难说谎,往往会表达出他们最真实的情感信息。通过检测一个人的行为动作,可以推断出他的情绪变化,并且通过不同场景的分析,比如运动场上运动员的当前动作判断出此时他参赛的项目,学生当前的动作,判断出他当时是否在认真学习。通过对人体的动作进行判断识别,可以得到很多有用的信息,例如当前肢体的行为信息,当前动作的姿态信息等,在人工智能、智能家居、智慧课堂等很多方面都有极大用处。

人体行为识别是基于图像识别算法和计算机视觉原理进行实现的,目标是从一个获取的视频或图像序列中自动地分析其正在进行的行为,包括:提取其中的信息、将行为进行分类等。人体行为识别的应用十分广泛,比如公共智能视频监控区域、病人监护系统、人机交互及虚拟现实、智慧家居系统、智能安防、运动员辅助训练等场景。目前,存在较多的行为识别研究大多集中在对单人行为的识别,而在实际生活场景中,单人的场景很少,大部分的公共场合人群较多,对多人的行为识别在公共安全、智能安防、重大活动场所等方面有广泛实际应用需求,包括大型聚会事件、群体暴力、恐怖活动等进行监控,通过判断当前多人行为的种类和数量,从而避免重大事故的发生。

目前,多人行为姿态估计与识别系统及方法基本上都是采用自上而下的方法,即先对视野范围内有几个人进行检测,然后根据边缘检测等方法,对检测到的多个人进行分割,分别提取不同检测框内人员的行为信息,再做分类识别。而随着视野范围内人数的增多,该方法的计算量会呈指数式递增,大大降低了识别的效率。并且会存在检测遗漏的问题,即没有检测到视野范围内有这个人,这就会直接造成后面分类识别的失败。由此可见,这种自上而下的识别方法,虽然可以检测到多人的姿态并进行行为分类,但是识别效果并不理想。



技术实现要素:

为了解决上述问题,本发明提出了一种基于关键点检测的多人行为识别系统及工作方法,用于实时检测当前多人行为并对当前多人行为进行识别;基于二次特征提取和姿态估计的方案,用于提高多人行为识别的准确率。

在一些实施方式中,采用如下技术方案:

一种基于关键点检测的多人行为识别系统,主要包括:图像预处理模块、关键点检测模块、姿态估计模块、二次特征提取模块、行为估计与应用模块;

所述图像预处理模块,用于调整输入图像帧的格式、对输入图像进行滤波和去噪处理。调整输入图像帧的格式包括调整输入图像的尺寸大小、调整输入图像的灰度值、调整输入图像的存储格式;对输入图像通过滤波器降噪处理,再通过平滑去噪操作消除图像中无关信息对后续结果的影响;

所述关键点检测模块,包括依次相连的关键点特征提取单元、关键点匹配单元、骨骼关键点向量检测单元,用于检测图像中多个人的关键点,并做出判断;

所述关键点特征提取单元,包括对每帧图像进行sift(scale-invariantfeaturetransform,尺度不变特征变换)和surf(speededuprobustfeatures,加速鲁棒特征)关键点的特征提取,得到关键点特征矩阵;

所述关键点匹配单元,通过预测关键点矩阵s,判断得出每帧图像中不同关键点属于哪个人的骨骼关键点,并通过计算损失函数判断关键点的匹配程度;

所述骨骼关键点向量检测单元,用于对同一个人的任意两个骨骼关键点间进行连接并获取方向向量,对方向向量进行检测,做出判断;

所述姿态估计模块,用于根据骨骼关键点向量矩阵进行姿态判断。

作为进一步的改进方案,还包括:

二次特征提取模块,被配置为用于对预处理后的图像进行二次特征提取,得到行为特征矩阵;

行为估计与应用模块,被配置为根据关键点预测矩阵、骨骼关键点向量矩阵以及行为特征矩阵,利用神经网络模型进行预测,得到图像中每个人的行为以及所述行为的识别率。

在另一些实施方式中,采用如下技术方案:

一种基于关键点检测的多人行为识别工作方法,包括:

对预处理后的每帧图像进行sift和surf关键点的特征提取;

求取关键点预测矩阵,判断图像中包含人体的个数以及每个人包含的骨骼关键点数;

检测两相邻骨骼关键点是否在同一肢体上,对同一个人任意相邻的两个骨骼关键点间进行连接获取方向向量,依次连接同一肢体上的骨骼关键点,得到骨骼关键点向量矩阵;

根据骨骼关键点向量矩阵的方向和角度判断当前图像帧中不同人的姿态。

作为进一步的改进方案,在根据骨骼关键点向量矩阵的方向和角度判断当前图像帧中不同人的姿态之后,还包括:对预处理后的图像进行二次特征提取,得到行为特征矩阵;

根据关键点预测矩阵、骨骼关键点向量矩阵以及行为特征矩阵,利用神经网络模型进行预测,得到图像中每个人的行为以及所述行为的识别率。

在另一些实施方式中,采用如下技术方案:

一种终端设备,其包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行上述的基于关键点检测的多人行为识别工作方法。

在另一些实施方式中,采用如下技术方案:

一种计算机可读存储介质,其中存储有多条指令,所述指令适于由终端设备的处理器加载并执行上述的基于关键点检测的多人行为识别工作方法。

与现有技术相比,本发明的有益效果是:

1、本发明提出了一种基于关键点检测的多人行为识别系统及工作方法,通过对输入原始图像中的多人行为信息进行分析处理,实现对多人的姿态估计和当前行为的分类识别,弥补了现有的单人行为识别方法对实际场景中多人的行为无法检测的缺陷。

2、本发明主要在关键点检测模块,提出了一种多人关键点特征提取、检测及骨骼关键点向量连接的新方法。通过提取的关键点与标注的骨骼关键点计算,得出骨骼关键点预测矩阵;并通过连接两骨骼关键点之间的向量判断是否在某肢体上,更好的区分不同人的不同骨骼关键点和肢体,有效的对多人姿态进行估计并提高多人行为识别的准确率。

附图说明

图1是本发明提出的一种基于关键点检测的多人行为识别系统结构示意图;

图2是本发明提出的一种基于关键点检测的多人行为识别工作方法流程图;

图3是本发明提出的一种基于关键点检测的多人行为识别系统中关键点检测模块的原理示意图。

具体实施方式

应该指出,以下详细说明都是实例性的,旨在对本申请提供进一步的说明。除非另有指明,本发明使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

实施例一

在一个或多个实施方式中,公开了一种基于关键点检测的多人行为识别系统,如图1所示,包括:

(1)原始图像预处理模块,用于调整输入图像帧的格式、对输入图像进行滤波处理及去噪处理。调整输入图像帧的格式包括调整输入图像的尺寸大小、调整输入图像的灰度值、调整输入图像的存储格式;对输入图像通过滤波器降噪处理,再通过平滑去噪操作消除图像中无关信息对后续结果的影响;

(2)关键点检测模块,参照图3,具体包括:

①关键点特征提取单元,对每帧图像进行sift和surf关键点的特征提取,得到关键点特征矩阵;

具体地,对每帧图像通过高斯函数建立尺度空间,在不同尺度空间上寻找关键点(x,y),利用图像的局部特征为每一个关键点分配一个方向,然后给每一个关键点建立一个描述符,再生成图像的sift特征,得到sift特征矩阵;将得到的sift特征矩阵构建了一个hessian矩阵,重复以上步骤,提取surf特征,得到最终的关键点特征矩阵。

②关键点匹配单元,通过预测关键点预测矩阵s,判断得出每帧图像中不同关键点属于哪个人的哪个骨骼关键点,并通过计算损失函数判断匹配的程度;

具体地,根据得到的关键点特征矩阵,将每个关键点依次与标注的2d图像骨骼关键点比较,求解关键点的预测值,即预测哪些关键点是骨骼关键点,并判断出当前图像帧中的人数和每个人的重要骨骼关键点,得到关键点预测矩阵;

2d图像骨骼关键点表示人工预先标注的二维骨骼关键点;关键点是①中提取的关键点特征,骨骼关键点是指人体主要的骨骼关键点。通过预测哪些关键点属于人体的骨骼关键点,即确定图像中包含人体的个数以及每个人包含的骨骼关键点数。

③骨骼关键点向量检测单元,用于对同一个人的任意两个骨骼关键点间进行连接并获取方向向量,对方向向量进行检测,做出判断;

具体地,连接同一个人的任意两相邻骨骼关键点,求解两相邻骨骼关键点的方向向量,对得到的所有方向向量进行判断,看是否存在某肢体上,依次连接同一肢体上的骨骼关键点,得到骨骼关键点向量矩阵。

(3)姿态估计模块,用于根据得到的骨骼关键点向量进行人体的姿态判断。

(4)二次特征提取模块,用于对输入图像进行二次特征提取,得到行为信息特征矩阵。

具体地,二次特征提取包括vgg-16提取的原始图像的行为信息特征,vgg-16提取的关键点特征矩阵的骨骼关键点特征,vgg-16提取的关键点向量矩阵的方向特征,得到最终的特征矩阵,作为svm(supportvectormachine,支持向量机)分类器的输入。

(5)行为识别与应用模块,用于根据上述特征信息进行分类识别,对得到的分类识别结果进行统计并输出到可视化应用界面进行显示。

具体地,行为识别与应用模块包括:分类器单元、分类结果统计单元、可视化应用界面单元;

将关键点预测矩阵、骨骼关键点向量矩阵、行为信息特征矩阵集合,作为分类器单元的输入,得到第n个人的行为和该行为的识别率;

分类结果统计单元统计图像帧中一共有多少人,每个人的动作以及该动作的识别率;

可视化应用界面单元,用于实时对多人姿态进行估计并对行为分类进行可视化输出,通过一段时间的分析统计,可得出该段时间内人员的变动及行为动作的变化情况。

实施例二

在一个或多个实施方式中,公开了一种基于关键点检测的多人行为识别工作方法,如图2所示,包括步骤如下:

步骤s01:原始图像预处理操作

分别输入mpiihumanposedataset和mscocodataset两个多人行为数据集,共25k张图像帧,其中包括几张已标记的图像帧,对数据集的图像帧分别进行滤波和去噪操作。并将数据集中图像帧进行灰度处理,并适当调整网络输入的格式。

本实施例中,原始图像选取mpiihumanposedataset和mscocodataset数据集的目的是为了便于对本实施例方法进行说明,实际应用过程中,原始图像为采集到的待分类识别的图像。

步骤s02:提取图像帧的sift和surf特征

先将数据集作为输入,提取sift特征,具体步骤如下:

1)采用高斯函数g(x,y,σ)建立尺度空间σ,高斯函数计算公式如(ι)所示:

其中,g(x,y,σ)表示高斯函数,(x,y)是空间坐标,σ是尺度坐标或尺度空间因子。

通过高斯函数得到原始图像的尺度空间l(x,y,σ),公式如(ιι)所示:

l(x,y,σ)=g(x,y,σ)*i(x,y)(ιι)

其中,g(x,y,σ)表示高斯函数,i(x,y)表示原始图像。

2)在不同的尺度空间σ上寻找关键点(x,y);

3)利用图像的局部特征为每一个关键点分配一个方向θ(x,y),方向θ(x,y)的公式如(ιιι)所示:

4)给每一个关键点建立一个描述符;

5)生成图像的sift特征,得到sift特征矩阵;

在sift特征矩阵的基础上提取surf特征,surf特征提取与sift特征提取步骤类似,只是在第一步建立尺度空间之前构建了一个hessian矩阵,hessian矩阵公式如(ιv)所示,最后得到关键点特征矩阵。

步骤s03:关键点特征矩阵比较

通过图像中标注的2d点xk,n,求关键点预测矩阵s,其中,xk,n表示第n个人的第k个骨骼关键点,预测矩阵s的计算公式如(v)所示:

其中,k=1,2,……m,表示一个人身上标注的m个骨骼关键点,n表示第n个人,p表示关键点特征矩阵中的(x,y),σ2表示常数,本实施例中取1。

步骤s03具体包括如下步骤:

1)判断标注的2d图像中n的值,若n=0,则说明当前图像帧中没有检测到人的关键节点,舍弃当前帧,重复步骤s01;

2)当n>=1时,由步骤s02得到大小为w×h的关键点矩阵,取点p=(xi,yj),(i=1,2,……w;j=1,2,……,h),计算第1个人的第1个骨骼关键点

3)当s=min(s1,1(p))<ε,(0<ε<1)时,点p(xi,yj)属于第1个人的第1个骨骼关键点,以此类推;

4)若不存在s=min(sk,n(p))<ε,(0<ε<1),则说明当前图像帧未检测到第n个人的第k个骨骼关键点,该骨骼关键点位置补0。重复步骤s03,直到找到所有n个人的k个骨骼关键点;

5)完成后,得到的关键点预测矩阵s,可以明确当前图像帧中有n个人,每个人有k个骨骼关键点。

步骤s04:计算损失函数

损失函数指的是预测值与实际值的差值大小,表示预测是否合理,损失函数0<f<ε,ε为任意小的数。若损失函数过大,说明当前预测值与实际值不符,则舍弃,回到步骤s03;当预测值与实际值相等,即损失函数f=0时,说明当前预测值为实际值。损失函数的计算公式如(vι)所示:

其中,表示求得的关键点预测矩阵,表示标注的2d点矩阵。

步骤s05:骨骼关键点连接

取当前图像帧中关键点预测矩阵s中的第n个人的任意两个关键点xk1,n,xk1,n,连接两个关键点并取关键点xk1,n指向关键点xk2,n的方向向量v,方向向量v的计算公式如(vιι)所示:

步骤s06:判断方向向量位置

检测这两个骨骼关键点方向向量是否在某肢体上,若v在c上则说明这两个骨骼关键点在同一肢体上,可进行连接,若不在则舍弃,检测两骨骼关键点方向向量是否在某肢体上的公式如(vιιι)所示:

其中,c表示第n个人的第c种肢体。

重复步骤s04和步骤s05,直到所有两两骨骼关键点都检测完成。

步骤s07:姿态估计

两两骨骼关键点之间的方向向量检测完成后,满足条件的两骨骼关键点之间可进行连接,形成完整的人体骨架结构,并得到骨骼关键点向量矩阵l,由向量矩阵的方向和角度可判断当前图像帧中不同人的姿态。

步骤s08:二次特征提取

将原始图像数据集经过滤波去噪等预处理后输入到vgg-16的前10层的卷积层中进行特征提取(vgg-16的初始权重和参数已经在imagenet上通过大量真实图像训练得到),输入的是n层色值通道(红、绿、蓝),每层m个(3,3)的卷积核,所以参数个数是n×m×3×3,经过10层卷积提取训练数据集中图像帧的行为信息特征,得到行为特征矩阵f。

步骤s09:特征矩阵集合

经过步骤s03得到关键点预测矩阵s、经过步骤s04和步骤s05得到骨骼关键点向量矩阵l、经过步骤s07得到行为特征矩阵f,将三类矩阵集合,作为分类器的输入。

步骤s10:分类器分类

将三类特征矩阵调整输入格式和矩阵大小,每类随机70%作为训练集,30%作为测试集,将训练集数据输入到vgg-16的全连接层进行训练,30%测试集输入到vgg-16的全连接层进行测试得到多人行为的分类结果。

步骤s11:分类结果分析

分类结果显示第n个人的行为和该行为的识别率,统计图像帧中一共有多少人,每个人的动作以及该动作的识别率。

步骤s12:将mscocodataset数据集作为输入,重复步骤s02-s10。

实施例三

本实施方式以实时的课堂学生上课行为为例,教室摄像头设备采集当前教室内的学生上课情况,并实时分析该段时间内学生的上课状态,包括步骤如下:

步骤s01:采集的图像预处理操作

教室内摄像头设备每秒上传一帧图像到上位机,对采集到的图像进行预处理操作;

步骤s02:提取图像帧的sift和surf特征

将采集到的图像作为输入,提取sift特征,具体步骤如下:

1)采用高斯函数g(x,y,σ)建立尺度空间σ,高斯函数计算公式如(ι)所示:

其中,g(x,y,σ)表示高斯函数,(x,y)是空间坐标,σ是尺度坐标或尺度空间因子。

通过高斯函数得到原始图像的尺度空间l(x,y,σ),公式如(ιι)所示:

l(x,y,σ)=g(x,y,σ)*i(x,y)(ιι)

其中,g(x,y,σ)傲视高斯函数,i(x,y)表示原始图像。

2)在不同的尺度空间σ上寻找关键点(x,y);

3)利用图像的局部特征为每一个关键点分配一个方向θ(x,y),方向θ(x,y)的公式如(ιιι)所示:

4)给每一个关键点建立一个描述符;

5)生成图像的sift特征,得到sift特征矩阵;

在sift特征矩阵的基础上提取surf特征,surf特征提取与sift特征提取步骤类似,只是在第一步建立尺度空间之前构建了一个hessian矩阵,hessian矩阵公式如(ιv)所示,最后得到关键点特征矩阵。

步骤s03:关键点特征矩阵比较

通过与训练得到的标注的人体2d点xk,n,求关键点的预测矩阵s,其中,xk,n表示第n个人的第k个骨骼关键点,预测矩阵s的计算公式如(v)所示:

其中,k=1,2,……m,表示一个人身上标注的m个骨骼关键点,n表示第n个人,p表示关键点特征矩阵中的(x,y),σ2表示常数,这里取1。

根据本发明优选的,所述步骤s03,具体步骤包括如下:

1)判断标注的2d图像中n的值,若n=0,则说明当前图像帧中没有检测到人的关键节点,舍弃当前帧,重复步骤s01;

2)当n>=1时,由步骤s02得到大小为w×h的关键点矩阵,取点p=(xi,yj),(i=1,2,……w;j=1,2,……,h),计算第1个人的第1个骨骼关键点

3)当s=min(s1,1(p))<ε,(0<ε<1)时,点p(xi,yj)属于第1个人的第1个骨骼关键点,以此类推;

4)若不存在s=min(sk,n(p))<ε,(0<ε<1),则说明当前图像帧未检测到第n个人的第k个骨骼关键点,该骨骼关键点位置补0。重复步骤s03,直到找到所有n个人的k个骨骼关键点;

5)完成后,得到的预测矩阵s,可以明确当前图像帧中有n个人,每个人有k个骨骼关键点。

步骤s04:计算损失函数

损失函数的计算公式如(vι)所示:

其中,表示求得的预测矩阵,表示标注的2d点矩阵。

步骤s05:骨骼关键点连接

取当前图像帧中预测矩阵s中的第n个人的任意两个关键点xk1,n,xk2,n,连接两个关键点并取关键点xk1,n指向关键点xk2,n的方向向量v,方向向量v的计算公式如(vιι)所示:

步骤s06:判断方向向量位置

检测这两个骨骼关键点方向向量是否在某肢体上,若v在c上则说明这两个骨骼关键点在同一肢体上,可进行连接,若不在则舍弃,检测两骨骼关键点方向向量是否在某肢体上的公式如(vιιι)所示:

其中,c表示第n个人的第c种肢体。

重复步骤s04和步骤s05,直到所有两两骨骼关键点都检测完成。

步骤s07:姿态估计

两两骨骼关键点之间的方向向量检测完成后,满足条件的两骨骼关键点之间可进行连接,形成完整的人体骨架结构,并得到向量矩阵l,由向量矩阵的方向和角度可判断当前图像帧中不同人的姿态。

步骤s08:二次特征提取

将原始图像数据集经过滤波去噪等预处理后输入到vgg-16的前10层的卷积层中进行特征提取(vgg-16的初始权重和参数已经在imagenet上通过大量真实图像训练得到),输入的是n层色值通道(红、绿、蓝),每层m个(3,3)的卷积核,所以参数个数是n×m×3×3,经过10层卷积提取训练数据集中图像帧的行为信息特征,得到行为特征矩阵f。

步骤s09:特征矩阵集合

经过步骤s03得到关键点特征矩阵s、经过步骤s04和步骤s05得到向量特征矩阵l、经过步骤s07得到行为信息特征矩阵f,将三类矩阵集合,作为svm分类器的输入。

步骤s10:分类器分类

将三类特征矩阵调整输入格式和矩阵大小,每类随机取70%作为训练集,30%作为测试集,将训练集数据输入到vgg-16的全连接层进行训练,30%测试集输入到vgg-16的全连接层进行测试得到多人行为的分类结果。

步骤s11:分类结果统计分析

通过一节课的分类结果统计,得出该节课内学生课堂状态的结果。

实施例四

在一个或多个实施方式中,公开了一种终端设备,包括服务器,所述服务器包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例二中的基于关键点检测和二次特征提取的多人姿态估计及行为识别方法。为了简洁,在此不再赘述。

应理解,本实施例中,处理器可以是中央处理单元cpu,处理器还可以是其他通用处理器、数字信号处理器dsp、专用集成电路asic,现成可编程门阵列fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。

在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。

实施例一中的基于关键点检测的多人行为识别系统可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。

本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1