百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

用改进的深度差分特征识别人体部位

moboyou 2025-05-21 14:35 13 浏览

摘 要: 为了进一步提高人体部位识别正确率,考虑人体部位尺寸不一特性,提出了改进型深度差分特征。改进型深度差分特征根据人体部位尺寸大小确定特征偏移量取值,然后利用随机森林算法训练分类模型,实现了人体部位识别。实验结果表明,采用改进型深度差分特征作为分类模型的训练特征点,实现了人体部位更高、更准确的识别率,比原深度差分特征提高了1.95%。

0 引言

人体姿态识别是计算机视觉中一个重要的研究方向,对视频中运动人体部位的准确识别可为人体姿态研究奠定基础,也降低了人体行为分析的难度。

人体部位识别从识别局部部位发展到识别整体部位,其算法主要可分为基于部位模型[1]部位识别和基于特征分类[2]部位识别。人部位识别算法根据图像数据不同又可分为基于可见光图像识别和基于深度图像识别。基于可见光图像识别人体部位主要利用人体表观特征,如HOG特征和人体轮廓特征,但是容易受到光照强度、阴影、着衣颜色等因素的影响。为了克服以上问题,一些学者采用深度图像识别人体部位,由于深度图像获取设备价格昂贵且体型庞大,该项技术一直没有突破性的进展,直到Kinect传感器的出现,该设备除了价格低廉、使用方便外,还能同时获取颜色和深度信息。

近几年,基于深度图像的人体部位识别已经取得了不少研究成果。SHOTTON J等人[3]采用深度差分特征作为随机森林分类模型的特征点,实现了单一深度图像上人体部位的分类和识别;殷海艳[4]在低分辨率深度图像上,采用人体部位合并思想实现了人体部位关节点的较高识别。但是,以上方法在实际数据中得到的识别正确率相对较低。

为了进一步提高人体部位识别正确率,本文采用随机森林算法训练分类模型,考虑人体部位尺寸不一特性,改进了深度差分特征。其中,改进型深度差分特征中的偏移量取值由人体部位大小确定。此外,由于目前没有公开的人体部位标记样本库,本文采用人工标记法自行构建样本库。实验结果表明,采用改进型深度差分特征具有更高、更准确的人体部位识别率,另外,不同大小的人体部位识别率也有不同程度的改善。

1 深度图像人体部位标记样本库

由于目前没有公开的人体部位标记样本集,本文采用人工标记法构建样本集,动作序列引用卡内基梅隆大学动作捕捉数据库,包括打招呼、谈话、走、跑、跳、打篮球、踢足球、洗窗户等14组。考虑到人体性别、高矮、胖瘦、不同着装等因素,样本库选取4个对象进行采集。样本库共计251组深度图像和人体部位标记图像,图像分辨率为640×480。为了便于骨架提取,根据人体生理结构,将人体分割成18个关键部位,分别是:头部、颈部、左/右肩膀、左/右上臂、左/右下臂、左/右手部、胸部、臀部、左/右大腿、左/右小腿、左/右脚部,其样本库示例图如图1所示。

2 基于改进型深度特征人体部位识别

2.1 深度特征提取

2.1.1深度差分特征

深度差分特征结合了梯度特征和点特征的优点,其定义如下:

f(I,x)=dI(x+xu)-dI(x+xv)(1)

其中,I表示深度图像,x为图像像素点,dI(x)为像素点x的深度值,xu和xv为像素点x经偏移向量u和v偏移后的像素点,计算公式如下:

xu=d·uxu=d·v(2)

考虑到人体投影在图像上的区域大小会随着人体距离传感器的远近而发生改变,为了得到真实三维空间偏移量,引入了深度因子d,其计算公式为:

=(u,v)为深度差分特征偏移向量对,由于偏移向量的值和方向在二维平面空间中具有无穷大的取值范围,为了减少计算成本,本文以平面原点为中心平均8等分,设α为向量夹角,A为夹角集:

偏移向量取值在实验部分中讨论。本文每个像素含有8个偏移向量,包括像素点本身共有9个深度值,因此可组合36对偏移向量,图2为深度差分特征提取示意图。

2.1.2 改进型深度差分特征

与深度差分特征相比,改进型深度差分特征主要区别在于特征中偏移量取值由人体部位的大小确定,即部位越大,偏移量值越大;部位越小,偏移量值越小,其偏移量计算公式为:

xu=d·p·uxv=d·p·v(5)

其中,p为人体部位尺寸比例因子。

由于人体姿态多样性、关节点自由度高、部位形状不规则,直接计算人体部位几何尺寸不仅复杂度高、时耗大,而且效果差,不符合实验要求。为了便于人体部位尺寸计算,本文首先假设人体部位为标准正方形,然后统计各部位在深度图像中所含像素点数,再以这部分像素点构造最大正方形,取最大正方形对角线作为该部位的几何尺寸,最后以最大部位尺寸作归一化处理得到人体部位尺寸比例值。

S={s|s=si},i=1,2,…,18(6)

其中,si表示第i个人体部位尺寸长度,S为人体部位尺寸集。

其中,pi为第i个人体部位经归一化后的部位尺寸比例值,P为人体部位尺寸比例集。

改进型深度差分特征除了保留深度差分特征的平移不变性和深度不变性外,还具有偏移量取值自适应人体部位大小的特性。此外,改进型特征只比深度差分特征多两次乘法运算,因此仍然具有计算复杂度低的优点。

2.2 随机森林分类模型训练

随机森林是由多个弱分类器组合而成的强分类器,分类结果由所有弱分类器共同投票决定,因此能很好地解决过拟合现象,其结构图如图3所示。与传统弱分类器组合算法Bagging和Boosting不同,随机森林除了训练集随机性外,还随机选取若干个特征属性来训练弱分类器的每个分裂节点。所以,随机森林采用随机树作为弱分类器,而不是决策树。

随机森林中每棵随机树的训练过程如下:

(1)随机选取一组候选属性

,其中

为深度特征的偏移向量对,

为候选分割阈值。

(2)根据候选属性?准将输入训练数据Q={(I,x)}分割成左右子集:

(3)计算给定候选属性

中的信息增益,求出最大信息增益对应的属性?准*:

(4)得到最大信息增益

后,判断分裂后子集是否满足树生长终止条件,否则重复迭代步骤(2)和(3),直到满足条件为止。其中,随机树生长终止条件为:达到树最大深度或者叶节点样本数少于最小值阈值。

2.3 随机森林分类模型测试

对于测试数据,根据式(1)计算深度特征属性值,然后将属性值输入到随机森林分类模型中每棵随机树的根节点中,与随机树中每个分裂节点阈值进行比较,最终得到目标类别的概率分布P(c|I,x)。其中,c表示目标类型,即18种人体部位类别,(I,x)为测试图像的像素点。由于随机森林分类模型中含有若干棵随机树,每棵随机树分类过程中互不影响。随机森林分类模型最终结果由所有随机树共同投票决定,其值为所有随机树分类结果的均值,最终由式(12)计算得到目标类别c*。

3 实验结果与分析

3.1 实验环境与模型参数设置

本文实验环境配置如下:PC一台:酷睿2E7500@ 2.93 GHz CPU,2 GB内存,64位Windows 7系统;深度图像获取传感器为Kinect;编译环境为32位MATLAB 7.1。

本文人体部位分类模型由随机森林训练得到,通过多次实验总结得出随机森林分类模型最佳参数应配置如下:随机树7棵,树深度为15,训练图像采样点为 2 000个,每个像素点含有36个特征属性,每次随机选取6个特征属性训练随机树中分裂节点的最佳分类属性。本文通过采样对象1的样本数据来验证实验结果,训练图像42张,测试图像10张,其中,训练图像和测试图像均含有14组动作序列数据。此外,人体部位尺寸比例值取训练集所有图像人体部位尺寸的均值,具体数据如表1所示。

3.2 实验结果与分析

改进型深度差分特征是在深度差分特征的基础上引入了偏移量值自适应人体部位尺寸的特性,即改进型特征的偏移量取值由人体部位尺寸大小确定。虽然改进型深度差分特征的定义式与深度差分特征并无两样,但是偏移量计算公式却不同,这将导致特征最佳偏移量取值也不相同。为了检测深度差分特征和改进型深度差分特征的最佳偏移量取值,本文将特征偏移量取值范围设置在10~180像素之间,间隔为10像素,其实验结果对比曲线图如图4所示。

由图4可知,随着偏移量取值的不断增大,深度差分特征和改进型深度差分特征对应的测试集人体部位分类正确率均值都呈现先递增后递减的趋势,但是深度差分特征超过最佳偏移量取值之后,其测试集部位分类正确率均值急剧下降,而改进型深度差分特征在偏移量超过80像素后,其部位分类正确率均值变化相对稳定,即便达到最高人体部位分类正确率后,其下降幅度也不大。深度差分特征的最佳偏移量取值为50像素,改进型深度差分特征的最佳偏移量取值为130像素。此外,改进型深度差分特征中每个部位的最佳偏移量为该部位的尺寸比例值与改进型特征最佳偏移量(本实验为130像素)的乘积。

在实验数据与分类模型参数保持一致的情况下,深度差分特征和改进型深度差分特征选取各自最佳偏移量时的人体部位分类正确率对比结果如表2所示。由表2可知,采用改进型深度差分特征作为随机森林分类模型特征点时,其人体部位分类正确率均值为73.82%,比深度差分特征的分类正确率均值高出了1.95%。由于改进型深度差分特征根据人体部位不同尺寸来选取特征偏移量,因此,针对不同尺寸的部位分类正确率也有不同程度的改善。如头部、颈部、手部和脚部等较小区域的人体部位平均分类正确率从72.93%提高到76.4%,幅度提高3.47%;较大区域人体部位如胸部和臀部等也有较大的改善,幅度提高 3.64%;其余人体部位的平均分类正确率总体改善了 0.75%。人体各部位分类正确率对比图如图5所示。

4 结论

本文采用随机森林算法训练分类模型,考虑人体部位尺寸不一特性,改进了深度差分特征。改进型深度差分特征根据人体部位尺寸来确定特征中偏移量的取值,而非统一偏移量值。实验结果表明,采用改进型深度差分特征作为随机森林分类模型训练特征点来识别人体部位时具有更高、更准确的正确率,并且不同尺寸大小的人体部位识别正确率均有不同程度的提升。

参考文献

[1] Lu Xia, CHEN C C, AGGARWAL J K. Human detection using depth information by Kinect[C]. 2011 IEEE Computer Society Conference on Computer Vision and Pattern Recognition Workshops(CVPRW), 2011: 15-22.

[2] YOO B I, KIM W, HAN J J, et al. Randomized decision bush: combining global shape parameters and local scalable descriptors for human body parts recognition[C]. ICIP, 2014: 1560-1564.

[3] SHOTTON J, FITZGIBBON A, COOK M, et al. Real-time human pose recognition in parts from single depth images[J]. 2011 IEEE Conference on Computer Vision and Pattern Recognition(CVPR),2011:1297-1304.

[4] 殷海艳.基于深度图像的人体姿态识别[D].北京:北京工业大学,2013.

相关推荐

Node.js 获取文件信息及路径(node.js怎么获取当前文件路径)

获取文件信息每个文件都有一组细节,我们可以使用Node.js进行检查。特别是使用fs模块提供的stat()方法。constfs=require('fs');fs.stat(&#...

深入剖析JavaScript中深浅拷贝(js实现深浅拷贝)

大家好,我是Echa。最近有一位00后的小妹妹粉丝私信小编说自己很喜欢编程,目前在某公司实习前端开发工作,说到现在为止还没有搞懂JavaScript中深拷贝和浅拷贝这个问题,同时也在网上看了很多关于深...

为什么高手写 JS 总是又快又好?这10个技巧你要知道

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!JavaScript是前端开发的重要语言...

IT技术栈:Javascript神器,URL.createObjectURL()

URL.createObjectURL()是JavaScript中的一个方法,用于创建一个特殊的URL,该URL可以用于将不支持直接加载的数据(如二进制数据或Blob对象)嵌入到we...

如何在 Linux 中创建和管理组?(linux如何建立组)

在Linux中,组是用户账户的集合,用于统一管理权限。每个用户至少属于一个主组(PrimaryGroup),还可以加入多个附加组(SupplementaryGroup)。组的权限设置决定了用户对文...

付费文库内容无法复制,不用任何工具,学会这4种方法轻松复制

关注职场办公,分享实用干货,洞察科技资讯,这里是「职场科技范」。我们在搜索资料的时候,看到非常有用的文库,但往往都是付费的,只能看不能复制。今天就来教大家,学会下面这4种方法,轻松复制文库内容。一、内...

node.js v24.0.0 正式发布!10大重磅更新助力开发者,性能大幅提升

近日,Node.js官方团队正式发布了Node.jsv24.0.0版本,这是一个具有里程碑意义的重大更新。作为"Current"版本,它将在未来六个月内引领Node.js...

我理解的网站产品经理之四:网站产品前端姿势

来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。2016年了,嗨,大家新年好。作为一个网页的产品经理,网页的前端知识可谓是不能不知,本文主讲网站产品的前端姿势。通常,...

五一我要看七天小说!免费开源的轻量化书库talebook搭建流程。

这次来分享一个简单阅读项目:TaleBook,项目曾用名calibre-webserver。TaleBook是一个基于Calibre的简单的个人图书管理系统,支持在线阅读。不过鉴于各种规章制度,仅...

“5 分钟 CMake 使用指南,解决我的 C++ 打包问题!”

在软件开发的世界里,构建系统扮演着至关重要的角色,它不仅决定了项目的构建效率,还直接影响到团队协作的流畅度。对于许多C++开发者而言,CMake因其强大的功能和广泛的兼容性成为了构建自动化流程的...

大佬级鬼才终于把JavaScript整理成了修仙小说,让学习变简单

这是一本讲解JavaScript编程语言的技术书籍,只不过,本书采用了一种全新的写作手法。如果你厌倦了厚厚的、如同字典般的编程书籍,不妨尝试一下新的口味,话不多说,直接上干货!目录截图:内容展示:以上...

JavaScript基础知识点总结(javascript基础入门教程)

//逗比小憨憨/*第一章*HTML引用js方法:*1,外部引用:HTML外部引用js:<scriptsrc="js/day1.js"></script>*2,...

在Node.js中处理Zip文件(node运行js文件)

作者:疯狂的技术宅转发链接:https://mp.weixin.qq.com/s/edJd9-t1AyTGRcha_1k6RA前言Zip文件是常用的压缩文件格式。在本文中,我将演示如何用adm-...

Python 标准库中鲜为人知的宝藏 | Node.js 22.8.0 发布

Python标准库中鲜为人知的宝藏Python标准库功能强大,但有些模块却鲜为人知。本文将介绍一些有趣且实用的模块,助你提升代码效率和功能。数据结构:超越列表和字典除了常用的列表和字典,coll...

小程序,wxml页面里如何写JS代码?WXS如何模块化?

这篇接着上篇小程序,跳转页面的两种方式及其页面传参数继续讲,小程序wxml页面里如何写JS代码?wxs如何模块化?第一个问题:wxml页面要想类似HTML页面中写js代码,必须在页面中使用wxs标...