热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MATLAB人体行为检测与识别

人体行为检测与识别摘要人体行为检测与识别是当前研究的重点,具有很高的研究价值和广阔的应用前景。主要应用在型人机交互、运动分析、智能监控和虚拟现实也称灵境技术ÿ

人体行为检测与识别

摘要

人体行为检测与识别是当前研究的重点,具有很高的研究价值和广阔的应用前景。主要应用在型人机交互、运动分析、智能监控和虚拟现实也称灵境技术(VR)领域,对于研究人体检测和识别有着重要的意义。因为人的运动的复杂性和对外部环境的多变性,使得人们行为识别和检测具有一些挑战。对人类行为和检测的研究目前处于初级阶段,有待进一步研究和开发。

本文基于matlab人体行为识别和检测的研究,本文主要研究的是从图像中判断出目标处于何种行为,例如常见的走、坐、躺、跑、跳等行为的识别。从现有的很多主流研究成果来看,最常见的行为识别系统结构包括几个模块:目标检测、目标跟踪、行为识别。本文首先对图像进行判断是否有人体目标,识别出人体后对图像进行灰度化,在对灰度图像用背景差法与背景图像比对,最后,比对提取出的人体来判断人体处于何种行为。

关键词:matlab,肤色识别,行为检测


第1章 绪论

1.1 研究背景

随着社会的发展,人民生活的提高,人们越来越关注安全问题,对视频监控系统的需求也爆发式扩张,如停车场,超市,银行,工厂,矿山等安全有监控设备,但监控系统不会主动实时监控。因为它们通常在相机发生后的异常,但只有在记录进行了观察和分析,以捕获存储的视频图像结果,然后知事实发生。因此迫切需要一种监视系统,它能够在24小时的连续实时监测,并且相机自动分析人类行为识别的有效的分析所捕获的图像数据。此外,当发生异常时,系统能够守护人员准确及时报警,从而避免犯罪和其他异常情况的发生。随着监控系统到位,以帮助人们甚至完成监控任务。可以减少人力和财力的投入,由于就业监视人员进行。另外,如果长时间不运动图像信息记录,保存几下,就失去了意义和视频监控系统的存储资源浪费存储空间。因此,传统的监视系统浪费了大量的人力,并有可能引起报警,性能差的实时监控的泄漏。监控等实时行为分析系统来识别人体,不仅可以替代监控人员的工作的一部分,提高监测系统的自动化水平,同时也提高监视存储的效率,还有一个广泛的应用,并在视频监视系统的潜在经济价值之前。由于人的行为具有自由的伟大程度,因为身体宽松长裙不同程度和它的外貌和从图像捕获设备位置不同距离的表现风格将是一个很大的分歧,这是人的行为分析,找出了一定的难度。但是,人类行为的实时分析,智能监控系统,以确定关键技术及其广阔的前景药,安全性,虚拟现实,军事和潜在的经济价值,国内外研究机构和学者越来越多的关注,并在许多全球领先的刊物和会议专题讨论。美国和欧洲都进行了一些相关的研究项目。 VSAM主要项目,如美国国防部高级研究计划局,成立于1997年(视觉监视和监测),主要是在视频为主的视频场景理解技术的战场和民用研究;IBM和微软等公司越来越多地将基于视觉的手势识别技术集成到其业务。 W4的实时可视化监控系统已经能够实现定位以及人体运动和跟踪能力的人的分割,并能检测一个人是否携带物体的简单动作等等;重大项目导师制欧盟委员会Framework5计划成立于1999年,主要是对人的行为和人机交互的研究,以开发用于公共安全,安全管理系统的工具; DARPA在2000年和资助长期的人类行为识别(识别人类在距离)项目,主要用于国防研究预防恐怖袭击和民间的多模态监测技术;雷丁大学,英国已经推出了理性的项目(稳健的方法进行监测和了解的人在公共场所),ETISE(视频场景理解评估),ISCAPS(拥挤区域治安综合监控),人类的主要研究行为在视觉图像识别和场景的理解;此外还有Pfinder(人发现者)系统,该系统可以执行人民和谅解的行为,以及项目AVITRACK(飞机周围,归类车辆和个人跟踪围裙的活动模型解释和检查)实时跟踪,是共同资助欧盟和奥地利的研究,该项目的重点是视频监控技术的研究。国内机构这方面的研究也有自动化研究所模式识别,微软亚洲研究院,感知,北京大学国家实验室,大学这方面的研究国家实验室有清华大学,浙江大学。虽然起步相对较晚的时间,而且还对关键技术进行深入研究人的视觉分析。人类的行为识别主要用于运动图像序列中含有人体的分析和处理,往往涉及的检测和清除运动目标检测,运动物体的阴影,特征提取和的四个过程识别人的行为的描述和分析的运动。在这里,我们从人的行为识别技术的研究现状,以及人的行为识别技术的热点和难点,讨论四个方面阐述。

1.2 研究意义

人体行为检测与识别技术除了在智能监控系统中具有有广泛的应用前景和潜力,在计算机视觉中是一个极具有吸引力及挑战性的问题。人体运动的视觉分析是一个新兴前沿的研究领域,涉及模式识别,图像处理,计算机视觉,人工智能等多门学科。它可以广泛应用于许多领域,如:运动捕捉,人机交互,监控和安全,环境控制和监测,体育及娱乐分析等,特别是在视频监控方面可广泛应用于银行、邮电、教育、交通、公安、监狱、法庭、大型公共设施、公共场所(银行、医院、停车场、商店、等公共场所甚至家庭庭院内)、大型仓库及军事基地等场所,在国防与公共安全领域起着日益重要的作用。综上所述,因此,人体动作的视觉分析具有极大的商业价值与现实意义。


1.3 研究内容

本文主要对人体行为检测和识别方法进行研究,主要研究内容如下:

(1)判断是否为人体

在目标提取之前,首先要对输入的图片进行检测。本文通过肤色检测判断目标是否为人体。

(2)人体目标提取

如果是人体导入背景图片与背景图片做差,再通过背景差阈值分割法进行提取。

(4)行为识别

在解决了以上的问题之后,接下来就是要选择一种合适的算法来进行人体姿态识别,这也是本文研究的重点和难点。本文采用一种人体目标的连通区域的长宽比例来对人体行为进行识别。


1.4 论文组织

论文的结构安排如下:

第一章阐述了人体行为识别技术的研究背景、研究意义以及本文所研究的主要内容等。

第二章运用肤色识别技术判断人和非人的区别

进行图片处理灰度化,在通过背景图片与图片做差,再通过背景差阈值分割法进行提取,再通过连通区域的长宽比来判断何种行为

第2章 基于人脸检测的人体识别

2.1人脸特征

人脸是一个很常见的,非常复杂的区域具有很强的代表性,是人体生物特征最直接的表现,并与其他人的特点相比中包含的脸部的其他生物信息有以下几个特点:

(1)是最丰富的面部特征。

(2)应用非常方便,无需使用其他辅助设备。

(3)人脸特征是最熟悉的人性化特点,很容易被别人接受;

(4)人脸包含特征信息可直接用于使用,它不易被仿冒;

在人类的知识里面,人们对人的理解是最丰富的,人脸的结构非常清晰,从脸部和五官的位置之间的关系非常了解对方,人类已经没有什么困难判断一个给定的通过人脸检测或识别个人身份的图像是否具有正面是真的很难。另外,通过观察一个面的外部特征,它可以在很大程度上决定一个人的性别,表情,种族,身份和性格等直到与心理因素的某些内容。但是,自动检测与识别的脸是一个具有挑战性的经典研究,特别是要建立一个实用的系统,可全自动面部识别是非常困难的。主要的困难主要有以下几个方面:

(1)面部器官,形状,尺寸,颜色,质地和千变万化的面部表情,是很复杂的,很难形容一个统一的模式;

(2)人脸表面经常有一些配套的异物,如眼镜,胡须,耳环等;

(3)的复合物的实际应用中,如复杂的背景,光强,脸姿势如此不确定。

2.2 基于肤色的人脸检测

人脸非常重要的一个特性是肤色。研究表明:尽管不同种族、不同年龄、不同性别的人肤色看起来也会不相同,不同主要体现在亮度上面,根据亮度提取的色度空间里,不一样的肤色分布是具有聚类性的。在多种彩色空间里选取YCbCr彩色空间进行肤色的提取,是利用了肤色在色度空间里的聚类性

v2-3a4a5f3c8b56be5b1a579ee3a40c754f_b.jpg

颜色空间颜色空间是定义、创建和观察颜色的方法。另外还有一些针对某些类型的图像应用通过统计或物理分析,由RGB线性或非线性导出的颜色空间,静态肤色模型目前常用的静态肤色建模方法有三种类型:辨别肤色范围、高斯密度函数的估计和直方图的统计,本文采用辨别肤色范围的方法。规定肤色范围用数学表达式明确规定肤色范围是一种简单的肤色建模方式,假设输入像素的颜色落入RCr=[140;170]和RCb=[80;120]限定的矩形区域,就认为是属于皮肤颜色像素。在不同的亮度分量y上的矩形区域(RCr,RCb)不同。这种简单的判断方式运行起来即快速又高效,特别是在实时系统中更具有可用的价值。

由统计表明不同种族的人类的皮肤颜色区别主要受亮度的影响,而受颜色的影响比较小,所以直接考虑YCbCr空间的CbCr分量,映射为CbCr空间,在CbCr空间下,受亮度变化的影响少,且是两维独立分布。通过实践,选取大量皮肤颜色样本进行统计,发现皮肤颜色在CbCr空间的分布呈现出良好的聚类特性。


根据肤色识别原理识别人体肤色,再根据裸露皮肤最大的区域为人脸如图2-2所示:


v2-e5ee7c1b365fc08bbcb1edde59480161_b.jpg

v2-4aeb9a796923fd78ab17e666257525b3_b.jpg


图2-2(1)卧姿的人脸定位


v2-3f6849a06f82403582a0e076588e4140_b.jpg

v2-08c36503a024091a99703cf87fa62ec3_b.jpg






图2-2(2)跳跃的人脸定位


v2-349b80aeae75e011205d90c4781ae065_b.jpg

v2-b6b8fdbb67fc22c3e244c373aa72e5b8_b.jpg






图2-2(3)行走时的人脸定位


v2-40b2ace99ed4e71ad6993c965d371e7b_b.jpg

v2-aac1abaa9fa3ede664874cef502bff4c_b.jpg






图2-2(4)坐姿的人脸定位



v2-76a1f3040a749a83a58c1cc42378659e_b.jpg

v2-fa057008f59f8e837758859e48102728_b.jpg








图2-2(5)奔跑时的人脸定位








第3章 行为识别

日常生活人的基本姿态有站、坐、躺,组成一个姿态集合A:

A={跳,走,跑,坐,躺} (3.1)

当前检测的姿态

v2-5f5bcec78b54fb1b6c8d3d2e3edce16b_b.jpg

,但是只有当图片中有人体时才能被检测出来,所以当图片中没有人体时则认为图片中的信息是非人体。

图3-1 识别流程图

3.1 灰度化

颜色可分为彩色和黑白。颜色中不包含任何的色彩成分,仅由白色和黑色组成的是黑白。在颜色模型RGB中,当R=G=B,那么颜色(R,G,B)则表示为一种黑白的颜色;其中R=G=B的值是灰度值,所以黑白色即灰度颜色。灰度与彩色之间是可以相互转化的,由灰度化转为彩色的称为伪彩色处理过程;由彩色转化为灰度的叫做灰度化处理过程

v2-6fc90533e92f39869c142831c6404290_b.jpg

相应地,数字图像可区分为灰度图像和彩色图像。通过伪彩色处理和灰度化处理,可以使伪彩色图像与灰度图像之间进行相互转化。

使彩色的R,G,B分量值相等的过程就是灰度化。灰度的级别只有256级,即灰度图像仅能表现256种颜色(灰度),主要是因为R,G,B的取值范围是0 ~ 255。

灰度化的处理方法主要有如下3种[6]:

(1)最大值法:使R,G,B的值等于3个值中最大的一个,即


v2-d861ff480708a66469a07fae62ae2056_b.jpg

(3.11)

利用这种方法可以形成高亮度的灰度图像。

(2)平均值法:利用R,G,B的值求出平均值,即


v2-dfbfd2043b2360b491db1600ded67089_b.jpg

(3.12)

平均值法可以形成相对比较柔和的灰度图像。

(3)加权平均值法:依据重要性或其他指标给R,G,B赋上不同的权值,并且使R,G,B的值加权平均,即


v2-1bf72fd202f7f102178c6adaae78f0b9_b.jpg

(3.13)

其中Wr,Wg,Wb分别为R,G,B的权值。当Wr,Wg,Wb取不相同的值时,加权平均值法

v2-b45b7862ec30296bcaadfb7d9d3e5027_b.jpg

就会形成不同的灰度图像。绿色是人眼最敏感度的颜色,红色次之,对蓝色最低,因此使将得到比较合理的灰度图像。由理论和实验推导证明,当Wr = 0.30,Wg =0.59,Wb=0.11时,即当


v2-00097f7ad7fd37b75ec047c8c057620e_b.jpg

(3.14)

(3.15)

时,能得到最合适的灰度图像。

3.2背景差分法算法

背景差分法别名背景减法,背景差分法的原理是将当前的图像与背景图像进行差分来得到目标区域,这种方法能很好的识别和提取运动目标,是目前运动分割中最常用的一种方法。但是需要构建一幅背景图像,这幅背景图像必须不含要检测的目标或其他不需要检测目标,并且应该能不断的更新来分辨当前背景的变化。

背景差分法法是静止背景下运动目标识别和分割的另一种做法。如不考虑噪音n(x,y,t)的影响,视频帧图像I(x,y,t)可以看作是由背景图像b(x,y,t)和运动目标m(x,y,t)组成:


v2-e2d68c27d68a8dcf8bd648ae654d1afc_b.jpg

(3.21)

由式(4-14)可得运动目标m(x,y,t):


v2-55fd40d27d422f20c0895bfd033829a5_b.jpg

(3.22)

而在实际中,受噪音的影响,式(4-15)不能得到真正的运动目标,而是由运动目标区域和噪音组成的差分图像d(x,y,t),即:


v2-d208c41f81995e98e4d7d0b668b8727d_b.jpg

(3.23)

得到运动目标需要依据某一判断原则进一步处理,最常用的方法为阈值分割的方法:


v2-8fe8d1647e853af24693632ae1f3f67c_b.jpg

(3.24)

式中T为一阈值

图3-2(1)为背景差分法的流程图:



v2-44a311cbe085e1116cf17dd48e040173_b.jpg










图3-2(1)


背景差分法实现步骤:

通过这次毕业设计的摸索,可将背景差分法的实现步骤总结如下:

(1)进行图像的预处理:主要包括对图像进行灰度化以及滤波。

(2)背景建模:这是背景差法较为重要的第一步。目前大多的思路都是根据前N帧图像的灰度值进行区间统计从而得到一个具有统计意义的初始背景。由于背景比较简单则选取图3-1(2)作为背景图:


v2-ec6bc8929888c719168d49ad714c857c_b.jpg











图3-2(2)为背景图片



(3)前景提取:将图像与背景做差,即可求得背景差图,然后根据一定的方法对改图进行二值化,最终获得运动前景区域,即实现图像分割。

关于图像的二值化,目前主要的难点在于阈值的选取,随着运动物体在整个监控区域内的运动,所拍摄的图片具有不同的灰度特性,因此阈值的选取是一个研究热点,目前多采用的方法有最大类间方差法,一维交叉熵阈值法,二维交叉熵阈值法以及其他的自适应阈值选取方法等。由于本人对此研究不深,故选固定的阈值。

3.3背景差阈值分割法

运用阈值法原理进行分割,阈值法是比较简单的图像分割方法,是一种常常运用的并行区域的技术。阈值是用运在区分目标图片和背景图片的灰度门限。如果要检测的图像只有目标和背景两类,那么只需要选取一个阈值这种方法称为单阈值分割,这种方法是将图像中每个像素中的灰度值与阈值相对比,灰度值大于阈值的算一种,灰度值小于阈值的为另一种。如果图像中存在多个检测目标或无关目标,那么就选多个阈值将每个目标及背景区分开,这种方法称为多阈值分割阈值,由于本人只有一个目标则采用单阈值分割,图3-3(1)为分割前后的比对


v2-5ea8f7be049f59e7579e1fab6a2e5d78_b.jpg

v2-2dbac8696d9321f5940ff31dd80a81b9_b.jpg

v2-ea4f18a704404cebf3de3669f4a6651f_b.jpg

v2-64639d9c8f6443d37bec22f6c88316c4_b.jpg

v2-b8b5785061e2c668e6948d0be32636ff_b.jpg





v2-1efde49ebab8ea3d78167a150e7c70a9_b.jpg

sit walk


v2-fb6751e4dece22d42a53f81d1ed12edb_b.jpg

v2-0fd186bafa4dc1bc0f0ca239678ccd04_b.jpg

v2-37ced6cb7c6e189008690a150326c324_b.jpg

v2-67502f72bedab227bf7aea36bc90c1a7_b.jpg


图3-3(1)


3.4通过长宽判断人体行为

行为分析最基本的两个问题:行为描述和行为识别。

由于人体具有一定的比例关系,例如,手臂在身体的上半部分,脚在身体的下半部分。可以想象,如果在某个区域内白点数(白色像素达标目标)比较多,则说明有肢体出现在该区域。如果事先能够定义好所有可能的姿态集合,并根据每一个姿态确定其区域组合,即可事先对姿态的判断。以左脚为例,若通过计算、和区的目标比例(即白点数与该区域的比例)后发现中的目标比例最大,则可判定左脚有拾起动作,角度大概在20~40之间。为了更好地确定动作的角度,可以把区域划分得更细(该算法首先需要确定人体的标准位置,用红色矩形框标出,计算出矩形框的高H和宽L,根据高宽的比例来判断人体的姿态。

这种方法的缺点在于,在除法运算的角度是粗糙的,进行更详细的动作,如拾取小角度肢,四肢弯曲(如臀部)等不能分割,分辨不够精确。有极个别的行为长宽比会重合,行为识别结果如图3-1所示


v2-d3373909535dde3c988e58ba670142ca_b.jpg








v2-4caeaa4406179c035b421a4b68ee333e_b.jpg










图3-4(1)卧姿判断





v2-9f7c3b712f568c1884a1cc3009f0e1a9_b.jpg

v2-18d9fb1a0c747106e424e07a9055b44a_b.jpg















图3-4(2)坐姿判断









v2-a0dcb37f24ffed94731bec2c443c1bbc_b.jpg

v2-860fa4a71f3524f9f42549304cdb873b_b.jpg














图3-4(4)行走判断




v2-e6b650e2e664a9f080deef2aa9c8151a_b.jpg



v2-36b9cbd266ec536b01fa063e0300009e_b.jpg



















图3-4(4)跳跃判断




v2-d2e72e9469944cc6e161789c054a390f_b.jpg

v2-b11ed1226986d624ef931dd2173b34b7_b.jpg


















图3-4(5)奔跑判断



3.4小结

本章是基于第1章识别出人脸之后进行姿态识别的着重介绍,首先运用背景差分法,排除背景对识别的干扰;然后进行人体目标的提取,再根据外接框的长宽比,以此判断出人体处于何种姿态。



参考文献

[1] 李智毅.新一代Web应用开发技术AJAX[C]//孙立峰.第二届和谐人机环境联合学术会议论文集. 北京:清华大学出版社,2007.31-34

[2] 王培,冯曼菲.Web 2.0开发技术详解[M].北京:人民邮电出版社,2006.389-403,495-520.

[3] Garrett J J. Ajax:A New Approach to Web Applications[EB/OL]. adaptivepath.com/public,2005-2-18

[4] [美]Ryan Asleson , Nathaniel T.Schutta.Ajax 基础教程,金灵等译.北京:人民邮电出版社,2006.

[5] 徐驰. Ajax模式在异步交互Web环境中的应用[J]. 计算机技术与发展,2006,16(11):229-233.

[6] 姚国新.基于Ajax的WEB应用技术的研究与实现[D]:[硕士学位论文].陕西:西北大学信息科学与技术学院,2006.

[7] 刘相滨,向坚持,王胜春,等.人行为识别与理解研究探讨[J].计算机与现代化.2004(12):10-15.

[8] 王亮,胡卫明,谭铁牛.人运动的视觉分分析综述[J],计算机学报.2002(25):19-23.

[9] 韩思奇,王蕾.图像分割的阈值法综述[J].系统工程与电子技术,2002(24):12-17.

[10] 朱秀昌,刘峰,胡栋编著.数字图像处理与图像通信[M].北京邮电大学出版色.2002:234-259.

[11] 张宏林,蔡锐.数字铜线模式识别及工程实践[M].北京人民邮电出版社.2007:325-373.

[12] 黄福珍,苏剑波.人脸检测[M].上海交通大学出版社.2006:257-369.

[13] 胡学龙.数字图像处理(第2版)[M].电子工业出版社.2011;137-152.

[14] 于殿泓.图像检测与处理技术[M].西安电子科大.2006:125-141.

[15] 王志波,陈庆财.步态识别综述[J].办公自动化.2012(04):23-39.

[16] 周维柏,李蓉.基于轨迹特征分析的行人异常行为识别[J].电脑编辑技巧与维护.2010(12):35-51.

[17] 于海滨.基于头部特征提取的人体检测与跟踪及其应用[D].浙江大学.2007:1-9.

[18] 刘翔楼,张明,邓艳茹.一种人脸对象的区域分割方法[J].科学技术与工程.2011(12):21-34.

[19] 张洪明,赵德斌,高文.基于肤色模型、神经网络和人脸结构模型的平面旋转人脸检测[J].计算机学报.2002(11):15-27.

[20] 张继涛,王伟,高君林.基于肤色分割和模板匹配的人脸检测技术研究与实现[J].自然科学报.2009(01):30-45.

[21] 朱喜.基于FPGA的图像预处理单元的设计与实现[D].湖南大学.2010:5-17.

[22] 冯柳.基于FPGA的图像处理算法的研究与设计[D].西南交通大学.2008:12-21.


[23] 梁路宏,艾海舟,徐光欲.人脸检测研究综述[J].计算机学报.2002(25):5-10.

[24] Daxis J,Bobick A.The Recognition of Human Movement Using Temporal Templates[J].IEEE Trans PAMI,2001,15(3):257-267.

[25] Kale A, Roy-Chowbury A, Chellappa R Fusion of gait and face for human Identification[C] In: Intl confon Acoustics, Acoustics, speech and Signal. Processing Canada: Montreal, 2004,22-37.

[26] A F Bobick,J W Davis.The recognition of human movement using temporal templates[J],IEEETrans.Pattern Anal.& Mach.Intell.,2001,3(21):257-267.


附录1 部分关键源码及解释

在这部分,将结合具体的源代码具体说明系统的执行流程和逻辑。

%申明数据库的位置
input = 'dataset';
%申明前景检测输出图像的位置
output = 'forground';
output2 = 'result';str1 = dir(input); %存储每个动作的文件夹
bk = imread('bk.png');%读入背景图片
bk = rgb2gray(bk);% 彩色背景转灰度背景
threshold = 40; %背景差阈值radio_jump = [];
radio_lie = [];
radio_run = [];
radio_sit = [];
radio_walk &#61; [];for x &#61; 3:length(str1) %循环每个动作文件夹xstr2 &#61; dir([input &#39;\&#39; str1(x).name &#39;\*.png&#39;]); %存储每个动作文件中的图片信息mkdir_fun(output, str1(x).name); % 在前景输出文件夹中&#xff0c;为每个动作创建文件夹mkdir_fun(output2, str1(x).name);%[x y x_with y_with]%计算外接框的长宽比radio &#61; bb(max_index).BoundingBox(3)/bb(max_index).BoundingBox(4);if x &#61;&#61; 3radio_jump &#61; [radio_jump;radio];endif x &#61;&#61; 4radio_lie &#61; [radio_lie;radio];endif x &#61;&#61; 5 radio_run &#61; [radio_run;radio];endif x &#61;&#61; 6radio_sit &#61; [radio_sit;radio];endif x &#61;&#61; 7radio_walk &#61; [radio_walk;radio];endimshow(im)% 判断外接框内是否有肤色&#xff0c; 如果有肤色&#xff0c; 才是人&#xff0c; 才进入行为判断c &#61; floor(bb(max_index).BoundingBox(1)) ; %xr &#61; floor(bb(max_index).BoundingBox(2)); %yc_width &#61; bb(max_index).BoundingBox(3); %x_withr_width &#61; bb(max_index).BoundingBox(4); % y_withrectangle(&#39;Position&#39;, [c r c_width r_width])sum_im &#61; im(r:r&#43;r_width,c:c&#43;c_width,:); %外接框图像skin &#61; skin_fun(sum_im); %寻找是否有肤色skin &#61; medfilt2(skin);bb_skin &#61; regionprops(skin,&#39;BoundingBox&#39;); %如果有肤色,切割出连通域min_index &#61; 1;min_height &#61; 720;for z &#61; 1:size(bb_skin,1)if bb_skin(z).BoundingBox(2) <&#61; min_height;min_height &#61; bb_skin(z).BoundingBox(2);min_index &#61; z;endendif size(bb_skin,1) >&#61;1 %如果找到肤色rectangle(&#39;Position&#39;, [c r c_width r_width])rectangle(&#39;Position&#39;, [c2 r2 c_width2 r_width2])text(c2&#43;c_width2&#43;5,r&#43;r_width2&#43;5,&#39;face&#39;) ;%jumpif radio<&#61; 0.5text(c-5,r-5,&#39;jump&#39;) ;end%lieif radio>&#61; 1text(c-5,r-5,&#39;lie&#39;) ;end%runif radio >0.54 && radio<0.6text(c-5,r-5,&#39;run&#39;) ;end%sitif radio >&#61;0.6 && radio <1text(c-5,r-5,&#39;sit&#39;) ;end%walkif radio<&#61;0.54 && radio>0.5text(c-5,r-5,&#39;walk&#39;) ;endelse %如果没找到肤色text(c-5,r-5,&#39;No Human&#39;) ;endsaveas(gcf,[output2 &#39;\&#39; str1(x).name &#39;\&#39; str2(y).name]);pause(0.005)imwrite(fg,[output &#39;\&#39; str1(x).name &#39;\&#39; str2(y).name]);end
end% mean(radio_jump) 0.468
% max(radio_jump) 0.6440
% min(radio_jump) 0.3299% mean(radio_lie) 4.4732
% max(radio_lie) 6
% min(radio_lie) 1.4% mean(radio_run) 0.57
% max(radio_run) 0.7
% min(radio_run) 0.34% mean(radio_sit) 0.6
% max(radio_sit) 0.7
% min(radio_sit) 0.59% mean(radio_walk) 0.4
% max(radio_walk) 0.54
% min(radio_walk) 0.27plot(radio_jump,&#39;b&#39;);
hold on;
plot(radio_lie,&#39;g&#39;);
hold on;
plot(radio_run,&#39;k&#39;);
hold on;
plot(radio_sit,&#39;y&#39;);
hold on;
plot(radio_walk,&#39;r&#39;);



推荐阅读
  • 如何使用Ping命令来测试网络连接?当网卡安装和有关参数配置完成后,可以使用ping命令来测试一下网络是否连接成功。以winXP为例1、打开XP下DOS窗口具体操作是点击“开始”菜 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • 本文详细探讨了如何通过分析单个或多个线程在瓶颈情况下的表现,来了解处理器资源的消耗。无论是单进程还是多进程环境,监控关键指标如线程数量、占用时间及调度优先级等,有助于揭示潜在的性能问题。 ... [详细]
  • 使用PHP实现网站访客计数器的完整指南
    本文详细介绍了如何利用PHP构建一个简易的网站访客统计系统。通过具体的代码示例和详细的解释,帮助开发者理解和实现这一功能,适用于初学者和有一定经验的开发人员。 ... [详细]
  • HTML基础入门指南
    本文将深入浅出地介绍HTML的基础知识,包括其定义、开发工具、制定机构、特性、基本标签及更多实用内容。 ... [详细]
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
  • 推荐几款高效测量图片像素的工具
    本文介绍了几款适用于Web前端开发的工具,这些工具可以帮助用户在图片上绘制线条并精确测量其像素长度。对于需要进行图像处理或设计工作的开发者来说非常实用。 ... [详细]
  • 本文深入探讨了MySQL中常见的面试问题,包括事务隔离级别、存储引擎选择、索引结构及优化等关键知识点。通过详细解析,帮助读者在面对BAT等大厂面试时更加从容。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 云函数与数据库API实现增删查改的对比
    本文将深入探讨使用云函数和数据库API实现数据操作(增删查改)的不同方法,通过详细的代码示例帮助读者更好地理解和掌握这些技术。文章不仅提供代码实现,还解释了每种方法的特点和适用场景。 ... [详细]
  • 深入解析SpringMVC核心组件:DispatcherServlet的工作原理
    本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ... [详细]
  • 使用JS、HTML5和C3创建自定义弹出窗口
    本文介绍如何结合JavaScript、HTML5和C3.js来实现一个功能丰富的自定义弹出窗口。通过具体的代码示例,详细讲解了实现过程中的关键步骤和技术要点。 ... [详细]
  • 本文介绍了一个基于 Java SpringMVC 和 SSM 框架的综合系统,涵盖了操作日志记录、文件管理、头像编辑、权限控制、以及多种技术集成如 Shiro、Redis 等,旨在提供一个高效且功能丰富的开发平台。 ... [详细]
  • 程序员如何优雅应对35岁职业转型?这里有深度解析
    本文探讨了程序员在职业生涯中如何通过不断学习和技能提升,优雅地应对35岁左右的职业转型挑战。我们将深入分析当前热门技术趋势,并提供实用的学习路径。 ... [详细]
author-avatar
天之苍
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有