CN112861624A - 一种人体姿态检测方法、系统、存储介质、设备及终端 - Google Patents
一种人体姿态检测方法、系统、存储介质、设备及终端 Download PDFInfo
- Publication number
- CN112861624A CN112861624A CN202110008794.6A CN202110008794A CN112861624A CN 112861624 A CN112861624 A CN 112861624A CN 202110008794 A CN202110008794 A CN 202110008794A CN 112861624 A CN112861624 A CN 112861624A
- Authority
- CN
- China
- Prior art keywords
- point
- network
- human body
- human
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 61
- 238000003860 storage Methods 0.000 title claims abstract description 11
- 238000012549 training Methods 0.000 claims abstract description 86
- 238000007637 random forest analysis Methods 0.000 claims abstract description 40
- 239000013598 vector Substances 0.000 claims abstract description 33
- 238000004458 analytical method Methods 0.000 claims abstract description 20
- 238000013526 transfer learning Methods 0.000 claims abstract description 20
- 230000036544 posture Effects 0.000 claims description 134
- 238000000034 method Methods 0.000 claims description 71
- 238000010586 diagram Methods 0.000 claims description 43
- 238000004364 calculation method Methods 0.000 claims description 35
- 210000003127 knee Anatomy 0.000 claims description 27
- 210000003414 extremity Anatomy 0.000 claims description 25
- 210000003423 ankle Anatomy 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 15
- 240000007651 Rubus glaucus Species 0.000 claims description 13
- 235000011034 Rubus glaucus Nutrition 0.000 claims description 13
- 235000009122 Rubus idaeus Nutrition 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 claims description 9
- 210000000707 wrist Anatomy 0.000 claims description 9
- 238000013145 classification model Methods 0.000 claims description 8
- 210000003141 lower extremity Anatomy 0.000 claims description 8
- 238000012800 visualization Methods 0.000 claims description 7
- 244000309466 calf Species 0.000 claims description 6
- 210000001217 buttock Anatomy 0.000 claims description 5
- 210000002683 foot Anatomy 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 210000001364 upper extremity Anatomy 0.000 claims description 3
- 210000001699 lower leg Anatomy 0.000 claims description 2
- 238000003062 neural network model Methods 0.000 abstract 1
- 238000013508 migration Methods 0.000 description 17
- 230000005012 migration Effects 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000011160 research Methods 0.000 description 13
- 238000012360 testing method Methods 0.000 description 11
- 230000032683 aging Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 10
- 238000005070 sampling Methods 0.000 description 10
- 238000003066 decision tree Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 8
- 230000001976 improved effect Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 208000009144 Pure autonomic failure Diseases 0.000 description 5
- 230000009471 action Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 5
- 239000013312 porous aromatic framework Substances 0.000 description 5
- 210000000988 bone and bone Anatomy 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 208000027418 Wounds and injury Diseases 0.000 description 2
- 210000001015 abdomen Anatomy 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000017531 blood circulation Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000034994 death Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000012010 growth Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 208000014674 injury Diseases 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003863 physical function Effects 0.000 description 2
- 230000003238 somatosensory effect Effects 0.000 description 2
- 238000012706 support-vector machine Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 208000002381 Brain Hypoxia Diseases 0.000 description 1
- 208000024172 Cardiovascular disease Diseases 0.000 description 1
- 101100284396 Drosophila melanogaster Hayan gene Proteins 0.000 description 1
- 102100028971 HLA class I histocompatibility antigen, C alpha chain Human genes 0.000 description 1
- 101100395312 Homo sapiens HLA-C gene Proteins 0.000 description 1
- 229910001374 Invar Inorganic materials 0.000 description 1
- 208000000875 Spinal Curvatures Diseases 0.000 description 1
- 206010041591 Spinal osteoarthritis Diseases 0.000 description 1
- 206010046996 Varicose vein Diseases 0.000 description 1
- QVGXLLKOCUKJST-UHFFFAOYSA-N atomic oxygen Chemical compound [O] QVGXLLKOCUKJST-UHFFFAOYSA-N 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000037237 body shape Effects 0.000 description 1
- 208000026106 cerebrovascular disease Diseases 0.000 description 1
- 208000036319 cervical spondylosis Diseases 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 1
- 230000002526 effect on cardiovascular system Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 210000000245 forearm Anatomy 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000004217 heart function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 201000002818 limb ischemia Diseases 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004630 mental health Effects 0.000 description 1
- 230000004060 metabolic process Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 201000000585 muscular atrophy Diseases 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 229910052760 oxygen Inorganic materials 0.000 description 1
- 239000001301 oxygen Substances 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000000276 sedentary effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000036421 sense of balance Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 208000005801 spondylosis Diseases 0.000 description 1
- 208000027185 varicose disease Diseases 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B5/00—Measuring for diagnostic purposes; Identification of persons
- A61B5/103—Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
- A61B5/11—Measuring movement of the entire body or parts thereof, e.g. head or hand tremor, mobility of a limb
- A61B5/1116—Determining posture transitions
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B5/00—Measuring for diagnostic purposes; Identification of persons
- A61B5/72—Signal processing specially adapted for physiological signals or for diagnostic purposes
- A61B5/7235—Details of waveform analysis
- A61B5/7264—Classification of physiological signals or data, e.g. using neural networks, statistical classifiers, expert systems or fuzzy systems
- A61B5/7267—Classification of physiological signals or data, e.g. using neural networks, statistical classifiers, expert systems or fuzzy systems involving training the classification device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/006—Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G08—SIGNALLING
- G08B—SIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
- G08B21/00—Alarms responsive to a single specified undesired or abnormal condition and not otherwise provided for
- G08B21/02—Alarms for ensuring the safety of persons
- G08B21/04—Alarms for ensuring the safety of persons responsive to non-activity, e.g. of elderly persons
- G08B21/0438—Sensor means for detecting
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Pathology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Veterinary Medicine (AREA)
- Public Health (AREA)
- Animal Behavior & Ethology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Surgery (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Heart & Thoracic Surgery (AREA)
- Gerontology & Geriatric Medicine (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Dentistry (AREA)
- Emergency Management (AREA)
- Business, Economics & Management (AREA)
- Computer Graphics (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Fuzzy Systems (AREA)
- Psychiatry (AREA)
Abstract
本发明属于人体姿态检测技术领域,公开了一种人体姿态检测方法、系统、存储介质、设备及终端,所述人体姿态检测方法包括:构建基于深度图像的人体骨骼化模型的数据集以及人体姿态分类的数据集;在openpose神经网络模型上进行迁移学习,深度图像作为网络输入,获取到的heatmap(关节点坐标)和paf(关节点向量场)作为标签进行训练,得到深度图像的人体骨骼化模型;通过姿态分析模块将打好标签的数据进行姿态特征夹角的计算,将夹角和标签输入到随机森林中进行训练,得到姿态识别模型。本发明在openpose的基础上将深度图像骨架化,并且可以转换成3d骨架给医务人员观察,有较高的准确率。
Description
技术领域
本发明属于人体姿态检测技术领域,尤其涉及一种人体姿态检测方法、系统、存储介质、设备及终端。
背景技术
目前,伴随着我国现代经济社会的高速进步发展,科学生产技术的进步,我国人民的生活质量相比过去正变得越来 越好,卫生水平、医疗条件都得到了很大程度的改善和提高,我国老年人口的平均寿命明显地延长,人口的年龄结构逐 渐地呈现出人口老龄化的发展特征。由于我国在1999年正式地进入老龄社会,老年群体增长速度快、数量多,使得我国尚未实现社会现代化便进入老龄化社会,《2018年民政事业统计公报》指出,截至2018年底,我国年满60周岁以及超 过60周岁的老人为24949万人,占总人口数的比重为17.9%,数量庞大的老年群体和老年人口较快的增长速度是现阶段 我国人口老龄化十分重要的特征。
同时,伴随着中国的人口老龄化,和老年人口问题逐渐凸显,居家养老也逐渐成为使用频率越来越高的一个专有名 词。居家养老服务是指社会为居住在家的老年人提供以解决日常生活困难为主要内容的一种服务形式。
随着人的年龄增长,人体的身体功能在逐步衰退,人的正常活动能力也在慢慢降低老年人的活动量更为明显。家里 的老人日常活动大部分就是在屋子里面待着,看看书,看看电视,偶尔出去散散步,这样相对于正常人体的运动量是远 远不够的。而且久坐久站这些不良的生活习惯会给人带来巨大的隐性伤害。就拿久坐久站为例,人在长时间坐着后身体 会发生一下变化,例如:血液循环减慢,心脑血管疾病概率上升。新陈代谢减慢,血氧供应不足以及一系列的颈椎病等。 而久站之后身体会出现以下状况:脊椎弯曲疼痛,下肢静脉曲张等。
因此,老年人的身体状况是不断下降的,也越来越难以完成基本功能,包含日常活动能力、移动能力等完成日常生 活所需要执行的任务。由于年龄增长导致的身体功能改变主要有:身体组成变化、肌肉力量减退、心肺耐力降低、骨骼 关节退化、平衡感变差等。老年人身体功能下降,除直接造成身体不适与行动不便外,还间接影响心理健康与所扮演的 社会角色,降低生活质量。
据有关资料统计,在我国上伤害死亡原因中跌倒排第四位,而老年人中跌倒是导致死亡的首要因素。老人一旦跌倒 又没有及时获得救治,往往会遭到严重伤害,因此有大量关于老人跌倒自动检测系统的研究。在这些检测系统中大致可 以分为两类:基于穿戴式传感器检测系统和基于计算机视觉的检测系统。基于穿戴式传感器的检测系统是把传感器等特 殊设备戴在老人身上,老人跌倒后会被传感器感知到,然后系统自动报警或者老人按下按钮进行报警。这种方法具有判 断正确和易安装的优点,但是实际使用过程也存在一些问题,例如经常被干扰等。每个子女都希望老人能健康长寿,所 以本发明采取各种办法,诸如请全天保姆,买智能穿戴设备(可检测血压、心率等生命指标)以及接到自己家中居住等方法保证老人的健康安全。但是这些方法有各种各样的缺点,比如花费开销太大,可穿戴设备检测不够准确,穿起来不 够舒服,同时接到自己家中也影响子女的生活。还有一种比较普遍的情况,现阶段我国还有大量独居老人,无亲人能照 顾,连维持日常生活都是大问题,更不用说保障安全。所以,如何实时有效的检测老人的生活状态并及时反馈给相关人 员是本发明急需解决的问题。
近几年,随着传感器技术、图像采集设备、计算机技术的飞速发展,一种基于深度传感器的人体姿态检测技术逐步 进入人们的视野,这是一种基于计算机视觉处理的人体姿态检测技术。同时随着计算机视觉的发展,基于视觉的检测系 统研究越来越多,但是大部分研究都是基于RGB图像的,在老人家安装rgb摄像头采集他们的日常行动有点侵犯隐私。 所以本发明希望通过深度摄像头来在室内进行姿态识别,这样做的优点有两个,一个是避免了穿戴设备的各种不方便, 另一个是可以很好的保护老人的隐私。而采用深度摄像头实现姿态识别的难度在于如何根据图像进行骨骼化以及如何根 据骨架化数据识别出老人的姿态。本发明将从深度图像的骨架化说起。
目前,人体姿态识别的方法主要有基于计算机视觉的姿态检测和基于加速度传感器的姿态检测。基于计算机视觉的 姿态检测有很高的准确率,系统的效率也较高,所有已经有很多人体姿态检测与分类算法提出。2005年1月,Shotton等 人提出了从分割好的图像中学习相应的目标轮廓模型,然后使用Boost分类器查找图像中目标的轮廓,从而得到人体各 部分的位置信息,就可以实现人体的姿态检测和分类。国外在姿态识别方面有许多的研究,其中T.Urano等人研究了基 于层次特征匹配的人体姿态识别,并且将人体的姿态分成了六种,他首先进行人体部分的提取,将图像中非人类物体和 背景剪切掉,他通过两次过滤来实现。提取出人体图像后再进行姿态识别,他是通过轮廓直径和HLAC两个特征值来识别人体姿态。Jamie Shotton等人提出了一种不用时间信息,从单幅深度图像中快速准确地预测人体关节三维位置的新方 法。他们采用目标识别方法,设计一个中间身体部位表示,将困难的姿态估计问题映射到更简单的每像素分类问题。用 庞大且高度多样化的训练数据集允许分类器估计身体部位不变的姿势、体形、服装等。
在人体骨架化上Faeznor Diana Zainordin等人基于Kinect摄像头实现对人体进行骨架化,然后进行姿态分析,他先将 人体姿态分类。然后再识别中将人体姿态分成三个部分,上身姿势分类、下身姿势分类和人类行为分类。然后实现了通 过特定的姿势来控制幻灯片放映。
我国在智能视觉分析技术方面虽然起步比较晚,但是在视觉检测方面已经有了许多优秀产品,例如GEVA系统是国 内自动化公司研发的机器视觉检测系统,提供了易用、高性能以及灵活应对多种多样的工业检测应用,集成了高速的相 机接口、多核处理器以及可选用的视觉处理软件,处理能力广泛通用性强。各研究院校在这方面也进行了积极的探索,中科院自动化研究所研究了行人异常行为识别。国内各大高校也在计算机视觉技术研究方面不断探索和研究,取得了丰 硕的科研成果。
国内有着不少基于深度图像的人体姿态识别,其中刘飞基于Kinect体感摄像头结合其SDK进行人体的骨架化,并再 此基础上进行分析人体的运行特性。他将运动过程中的骨架关节点角度变化曲线作为运动特征模型,此模型的基础上, 提出了改进的DTW算法,作为识别分类器。改进的算法在定程度上减少了传统DTW算法的病态映射问题,提高了配的淮确性。另外,在进行模板匹配计算的同时,加入了并行计算,提高了计算速度。殷海艳则是通过随机森林分类器模型 检测人体部位,她在数据集构建中基于计算机图形学技术的Maya平台及已有的CMU运动捕获数据库来构建低分辨率的 人体姿态深度数据集,同时她把人体姿态识别分解为两个子问题,分别是人体部位检测和部位关节点预测。而张鸿宇则 是结合人脸检测技术对人体轮廓进行筛选,进而实现人体轮廓的提取,然后通过SVM对轮廓特征分类,实现了一种多学 习者情况下的人体姿态估计方法。金驰针对传统基于图像视频的姿态识别算法中所存在的计算成本高、摄像盲区多、隐 私易泄露等问题,提出了一种基于手机加速度与陀螺仪数据的卷积—卷积长短时记忆—注意力(CCLA, convolution-convolutional longshort-term memory-attention)人体姿态识别算法。
通过上述分析,现有技术存在的问题及缺陷为:
(1)现有技术花费开销太大,可穿戴设备检测不够准确,穿起来不够舒服,同时接到自己家中也影响子女的生活。
(2)现有基于计算机视觉处理的人体姿态检测技术大多基于RGB图像进行实现,在老人家安装rgb摄像头采集他 们的日常行动有点侵犯隐私。
(3)传统DTW算法存在病态映射问题;传统基于图像视频的姿态识别算法中所存在的计算成本高、摄像盲区多、 隐私易泄露等问题。
解决以上问题及缺陷的难度为:目前的姿态检测模型都是基于实验数据的,没有真实生活数据用于模型的训练,误 检率较高;深度图像比彩色图像的辨识度低,模型的迁移学习较困难。
解决以上问题及缺陷的意义为:量化不当姿态对老人健康的影响,深入探索老人心脏衰弱、心脏功能减退、血液循 环变慢、颈部和腰部背部不适、脚后跟与脚踝出疼痛等问题和不当姿态的关联,减弱减缓不当姿态引起的肌肉萎缩、肢 体缺血疼痛、大脑缺氧、智力减退等疾病,实现社区养老服务精细化,降低中国人口老龄化对社会经济的冲击。
发明内容
针对现有技术存在的问题,本发明提供了一种人体姿态检测方法、系统、存储介质、设备及终端。
本发明是这样实现的,一种人体姿态检测方法,所述人体姿态检测方法包括以下步骤:
步骤一,通过数据采集模块利用深度摄像头和树莓派采集深度图像与对应的rgb图像,构建基于深度图像的人体骨骼 化模型的数据集以及人体姿态分类的数据集;
步骤二,通过人体骨骼化模块将rgb图像通过openpose的pytorch模型跑出的heatmap跟paf保存作为后续训练模型 的标签;
步骤三,在openpose的网络上进行迁移学习,深度图像作为网络输入,获取到的heatmap跟paf作为标签进行训练, 得到深度图像的人体骨骼化模型;
步骤四,通过人工标定姿态将图像分组;通过heatmap与paf生成骨架图,对骨架图进行旋转,同时通过骨架图计算 各个关节角作为训练集;
步骤五,通过姿态分析模块将打好标签的数据进行夹角的计算,将夹角和标签输入到随机森林中进行训练,得到姿 态识别模型;
步骤六,通过对骨架图进行旋转,得到人的3d骨架正视图,并通过结果展示模块利用python可视化在前端进行展示。
进一步,步骤二中,训练模型采用的是openpose的网络参数,openpose网络一个不断迭代的网络连接。第1阶段和后 续阶段的网络在形态上有所区别。每个阶段的两个网络分支分别用于计算部位置信图和部位亲和域。
在训练的时候该网络一共分为六个阶段,每个阶段两个分支,除了第一阶段结构不太一样2到6阶段网络结构是一样 的。网络的第1个阶段接收的输入是特征F,该特征是本发明将深度图像经过vgg-19的前10层提取的。经过网络的处理后 分别得到S1和L1。从第2阶段开始,网络的输入包括三部分:St-1,Lt-1,F。每个阶段网络的输入为:
进一步,步骤二中,所述训练过程包括:
首先网络通过VGG-19前10层进行初始化并微调,在经过pretrain-model进行骨架后,会有两个branch,来分别进行回 归L(p)以及S(p)。在每一个stage都算一次loss之后,将L以及S以及原始的输入F进行concatenate,送入下一个stage再进行训 练。其中训练的loss采用的是l2范数。S和L的gt都是采用标注的关键点,如果某个关键点在标注中不存在,就不标注这个 点。经过途中所示的网络,网络氛围上下两个分支,每个分支都是t个阶段进行不断的微调,且每个阶段都会将feature maps 进行融合,其中表示的是网络的两个分支。L2损失如下:
六个阶段结束后通过反向传播确定本发明的梯度向量,然后通过梯度向量来调整权值,在下一次取一个batch_size图 像之前,更新学习率在重复上述过程,直到达到迭代次数保存模型。
进一步,步骤三中,所述通过heatmap与paf生成骨架图的方法,包括:
在给出标注数据计算的时候,每个confidence map都是一个2D的表示,理想情况下,当图像中值包含一个人时, 如果一个关键点是可见的话,对应的confidence map中只会出现一个峰值,而当图像中有多个人时,对于每一个人k的每 一个可见关键点j在对应的confidence map都会有一个峰值。首先给出每一个人k的单个confidence maps,xj,k∈R2表示图 像中人k对应的位置j对应position:
其中,σ用来控制峰值在confidence map中的传播范围。这里用最大值能够更加准确的将同一个feature maps中 confidence map的峰值进行保存起来。网络在位置P的预测值对应的GT位置,取最大值在预测 阶段网络通过NMS来获得最终的置信度。
Xj1,k以及Xj2,k分别表示第k个人的肢体c的两个身体部件j1以及j2的GT位置,如果点p落在了肢体c上,那么的值为j1指向j2的单位向量,不在这个肢体上的点p为0。为了在训练过程中评估fL,定义PAF在点p的GT值为 其中表示的是肢体的单位向量。在 0≤v·(p-xj1,k)≤lc,kand|v⊥·(p-xj1,k)|≤σl范围内的点p被定义为在肢体c上,其中σl代表肢体的宽度, lc,k=||xj2,k-xj1,k||2代表肢体的长度。点p在部件亲和场GT值为所有人在此点上PAF的平均值其中nc(p)表示非零向量的个数。
(3)判断两点间相连的可能性
Part Affinity Fields的关键作用是用于判断两个部位是否相连。通过下面公式实现:
对于两个候选点dj1和dj2,如何判断他们是否连起来是一个躯干呢。解决方案就是计算他们连线上的线性积分,如果 p(u)是两点连线上的任意一点,那么的方向就会与的方向一致,那么E的值就会很大,说明该位置是一个躯干 的可能性就非常大。
(4)关节拼接成骨架图
拼接过程如下:
第一步:先找到图中所有小腿:
用来表示把膝盖(j1)置信图中点m和脚(j2)置信图点n连接起来的一个可能肢体搭配,Emn计算这样一个搭配 的积分结果(依赖于Lt)。表示点m和n不构成一个搭配。遍历所有的搭配,计算积分和。最终选择积分和最大的 搭配组合代表原始图像中的所有小腿。
第二步:按照第一步的方法去找大臂、腰腹和小臂。
第三步:两个相邻的躯干必定有相同的关节点,再通过相同关节点将躯干连起来即可得到人体的骨架。
进一步,步骤四中,所述对骨架图进行旋转的方法,包括:
1)绕Z轴逆时针旋转θ角
2)绕X轴逆时针旋转θ角
1)绕Y轴逆时针旋转θ角
为了将人的骨架图摆正,首先找到脖子那个点跟中臀那个点组成向量,首先将人的中臀那个点移动到原点,别的点 也相应移动相应距离。然后该向量绕着x轴旋转到yx平面,然后再绕着z轴旋转将其旋转到与y轴平行。
进一步,步骤四中,所述关节角的计算方法如下:
(1)躯干角atrunk为躯干与水平面之间的角度,计算公式如下:
(2)前屈角abend为身体前屈的角度,计算公式如下:
其中,pnose为鼻子的3D坐标。
(3)臀部角aα.hip为脖子、左右臀与左右膝盖的角度,计算公式如下:
其中,pα.hip为左右臀部的3D坐标,α∈{left,right};pα.knee为左右膝盖的3D坐标。
(4)肩部角aα.shoulder为脖子、左右肩部与左右手肘的角度,计算公式如下:
其中,pα.shoulder为左右肩部的3D坐标;pα.elbow为左右手肘的3D坐标。
(5)膝盖角aα.knee为左右臀部、左右膝盖与左右脚踝的角度,计算公式如下:
其中,pα.ankle为左右脚踝的3D坐标。
(6)肩宽dshoulder为左右两肩的距离,用来表示个人体态的差异,计算公式如下:
dshoulder=|pleft.shoulder-pright.shoulder|;
其中,pleft.shoulder为左肩的3D坐标;pright.elbow为右肩的3D坐标。
(7)成对点距离dright&left为上肢左右手肘、手腕与下肢左右膝盖、脚踝间的距离,计算公式如下:
dright&left=|pleft.m-pright.n|dshoulder;
其中,m∈{left.knee,right.kenn,left.ankle,right.ankle};
n∈{left.elbow,right.elbow,left.wrist,right.wrist}。
本发明的另一目的在于提供一种应用所述的人体姿态检测方法的人体姿态检测系统,所述人体姿态检测系统包括: 数据采集模块、人体骨骼化模块、姿态分析模块和结果展示模块。
数据采集模块,硬件设备主要有深度摄像头和树莓派,树莓派将摄像头变为物联网节点,然后通过ROS系统将深度 图像数据传入到主机中。
人体骨骼化模块,用于训练能识别深度图像的人体骨骼化模型,采用openpose的模型进行训练标签的获取,将rgb图 像用openpose模型跑出paf跟heatmap保存作为后续训练模型的标签;然后在openpose的网络上进行迁移学习,深度图像作 为网络输入,获取到的heatmap跟paf作为标签进行训练得到深度图像的人体骨骼化模型。
姿态分析模块,采用随机森林,将人体骼化结果得到的2d坐标进行转换得到3d点云中的人体骨骼化坐标,然后通过 向量之间的夹角计算得到人体的关节夹角。将打好标签的数据进行夹角的计算,将夹角跟标签输入到随机森林中进行训 练得到姿态分类模型,后续识别姿态时只需要输入骨骼化之后计算的夹角即可。
结果展示模块,使用django框架来实现前后台的,通过一系列数据的处理得到人体骨骼化数据,将数据保存到伪彩色 图中,然后2d到3d点云坐标的转换得到3d点云的坐标,通过坐标计算关节向量来计算各个关节夹角。通过3d点云的坐标 以及各个点之间的连接关系通过python可视化画出了人的3d骨架图,通过一定旋转得到人的3d骨架正视图然后通过python 可视化并且在前端展示出来。
本发明的另一目的在于提供一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置 上执行时,提供用户输入接口以实施所述的人体姿态检测方法。
本发明的另一目的在于提供一种计算机可读存储介质,储存有指令,当所述指令在计算机上运行时,使得计算机执 行所述的人体姿态检测方法。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的人体姿态检测方法,可以在不侵犯老 人隐私的情况下对老人实时姿态进行监控。通过实践,本发明在openpose的基础上将深度图像骨架化,并且可以转换成 3d骨架给医务人员观察,且有较高的准确率。与此同时,该系统也可以对深度图像的姿态进行检测,识别率还有待提高。
ROS系统是用于编写机器人软件程序的一种具有高度灵活性的软件架构。ROS提供一些标准操作系统服务,例如硬 件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。通过ROS系统可以很好的实现从机(树莓派)发 送数据到主机(Windows10)以及主机控制从机。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见 地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可 以根据这些附图获得其他的附图。
图1是本发明实施例提供的人体姿态检测方法流程图。
图2是本发明实施例提供的人体姿态检测系统结构框图;
图中:1、数据采集模块;2、人体骨骼化模块;3、姿态分析模块;4、结果展示模块。
图3是本发明实施例提供的决策树结构示意图。
图4是本发明实施例提供的随机森林结构图。
图5是本发明实施例提供的业务总流程示意图。
图6是本发明实施例提供的系统模块图。
图7(a)是本发明实施例提供的rgb样本示例图。
图7(b)是本发明实施例提供的深度图像与深度图像转换的伪彩图示例。
图8(a)是本发明实施例提供的深度图像训练集示意图。
图8(b)是本发明实施例提供的训练集标签示意图。
图9是本发明实施例提供的获取标签流程图。
图10是本发明实施例提供的openpose网络结构示意图。
图11是本发明实施例提供的训练过程流程图。
图12是本发明实施例提供的一张图像上身体j部位分布置信图。
图15(a)是本发明实施例提供的摆正前的骨架图。
图15(b)是本发明实施例提供的摆正后的骨架图。
图16(a)是本发明实施例提供的2d骨架图。
图16(b)是本发明实施例提供的3d骨架图旋转前的示意图。
图16(c)是本发明实施例提供的3d骨架图旋转后的示意图。
图17是本发明实施例提供的人体姿态识别模型测试结果示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解, 此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种人体姿态检测方法、系统、存储介质、设备及终端,下面结合附图对 本发明作详细的描述。
如图1所示,本发明实施例提供的人体姿态检测方法包括以下步骤:
S101,通过数据采集模块利用深度摄像头和树莓派采集深度图像与对应的rgb图像,构建基于深度图像的人体骨骼 化模型的数据集以及人体姿态分类的数据集;
S102,通过人体骨骼化模块将rgb图像通过openpose的pytorch模型跑出的heatmap跟paf保存作为后续训练模型的 标签;
S103,在openpose的网络上进行迁移学习,深度图像作为网络输入,获取到的heatmap跟paf作为标签进行训练, 得到深度图像的人体骨骼化模型;
S104,通过人工标定姿态将图像分组;通过heatmap与paf生成骨架图,对骨架图进行旋转,同时通过骨架图计算各 个关节角作为训练集;
S105,通过姿态分析模块将打好标签的数据进行夹角的计算,将夹角和标签输入到随机森林中进行训练,得到姿态 识别模型;
S106,通过对骨架图进行旋转,得到人的3d骨架正视图,并通过结果展示模块利用python可视化在前端进行展示。
本发明提供的人体姿态检测方法业内的普通技术人员还可以采用其他的步骤实施,图1的本发明提供的人体姿态检测 方法仅仅是一个具体实施例而已。
如图2所示,本发明实施例提供的人体姿态检测系统包括:数据采集模块1、人体骨骼化模块2、姿态分析模块3和结 果展示模块4。
数据采集模块1,硬件设备主要有深度摄像头和树莓派,树莓派将摄像头变为物联网节点,然后通过ROS系统将深度 图像数据传入到主机中。
人体骨骼化模块2,用于训练能识别深度图像的人体骨骼化模型,采用openpose的模型进行训练标签的获取,将rgb 图像用openpose模型跑出paf跟heatmap保存作为后续训练模型的标签;然后在openpose的网络上进行迁移学习,深度图像 作为网络输入,获取到的heatmap跟paf作为标签进行训练得到深度图像的人体骨骼化模型。
姿态分析模块3,采用随机森林,将人体骼化结果得到的2d坐标进行转换得到3d点云中的人体骨骼化坐标,然后通过 向量之间的夹角计算得到人体的关节夹角。将打好标签的数据进行夹角的计算,将夹角跟标签输入到随机森林中进行训 练得到姿态分类模型,后续识别姿态时只需要输入骨骼化之后计算的夹角即可。
结果展示模块4,使用django框架来实现前后台的,通过一系列数据的处理得到人体骨骼化数据,将数据保存到伪彩 色图中,然后2d到3d点云坐标的转换得到3d点云的坐标,通过坐标计算关节向量来计算各个关节夹角。通过3d点云的坐 标以及各个点之间的连接关系通过python可视化画出了人的3d骨架图,通过一定旋转得到人的3d骨架正视图然后通过 python可视化并且在前端展示出来。
下面结合实施例对本发明的技术方案作进一步的描述。
1、概述
1.1摘要
随着人民生活水平不断上升,人口老龄化是一个对全世界来说严峻的挑战,而中国的老龄化更为沉重,在养老方面 需要更加智能化的新产物。在计算机领域中,cv(computer science)方向发展的非常迅速,在各个行业都有应用,例如航空, 医学图像等。
本发明旨在设计一种简单可行的方法来对老年人的行动进行监测,本发明采用过很多方法来监测老人的行动,但是 有各种各样的缺点。本发明是采用深度相机进行老年人图像的采集来进行姿态识别,一方面是深度图像相对于可以很好 地保护隐私,另一方面也避免了穿戴各种设备的不方便。但是采用深度摄像头采集的数据实现姿态识别的难度在于如何 实现骨骼化,以及如何使用骨骼化数据进行老人的姿态识别。
由于重新构建一个模型的代价很大,本发明决定采用迁移学习来进行本发明的工作。本发明所采用的方法是使用现 有的比较成熟的openpose模型,将rgb图使用openpose项目得到本发明所需要的标签,这个标签可以用来进行人体骨骼化。 其次在openpose的网络上,利用他们的网络参数进行迁移学习,将与rgb图像一一对应的深度图像以及先前弄好的标签作 为openpose网络输入,来进行训练本发明自己的深度图像骨骼化模型。对于姿态识别部分,本发明预先将图像打好姿态标 签,然后计算身体各个部位夹角保存好作为训练集,最后通过随机森林将姿态标签与夹角作为训练数据来得到本发明姿 态识别的模型。本发明通过训练好的深度图像骨骼化模型来得出人的骨架图,然后通过转换到3d点云中去来得到3d骨架 图,计算人体各个关节的角度通过训练好的姿态识别模型得到人体姿态。
本发明的实际意义在于可以在不侵犯老人隐私的情况下对老人实时姿态进行监控。通过实践,本发明在openpose的基 础上将深度图像骨架化,并且可以转换成3d骨架给医务人员观察,且有较高的准确率。与此同时,该系统也可以对深度 图像的姿态进行检测,识别率还有待提高。
1.2主要内容
本发明以老年人居家养老为背景,构建了基于计算机视觉的老年人体姿态检测系统。该系统涉及到深度图像的骨骼 化,以及如何通过骨骼化生成3d点云的骨架图和通过骨架图得到老年人体姿态检测等。其中深度图像的骨骼化是整体应 用的基础与关键,也是本项目的难点。相对于传感器来检测老年姿态而言,视觉最大的优点是不用与被观测对象直接接 触,也不用让老年人无时无刻戴着传感器设备,方便了很多。因此本发明从计算机视觉的方向出发,对深度图像骨骼化 和通过骨骼化数据获取老年人体姿态这些方面做了研究。但是要知道,直接重新建立一个模型代价是很大的,所以本发 明考虑从现有的比较成熟的模型上进行迁移学习,这样可以大大节省本发明资源以及研究的难度。老年人体姿态检测检 测需要在一定的空间范围内准备地识别人体并且还原人的3d骨架图到3d点云中,对检测算法有一定的精度要求。首先本 发明设计了相机的数据采集,并且构建的相机数据传输的云平台,完成了真实场景下老年人体姿态数据的采集。但是由 于一期采集的数据集有问题,本发明先用了自己在网上找的rgb与深度图像一一对应的数据集进行测试,将多个方法进行 对比,找到了一个有效可行的方案。在中期之后本发明又重新采集了数据进行方案的测试,证明了本发明方案的可行性。 本发明的研究内容主要由以下几个部分组成:
在别人的网络参数基础上进行迁移学习,构建本发明自己的深度图像骨骼化模型:首先本发明尝试了多种方案,使 用了v2vposenet,A2j等模型,发现效果并不好,然后决定采用目前比较成熟的openpose模型。但是openpose是基于rgb图 像的姿态识别。本发明第一时间想到的是直接将深度图像转换成伪彩色图使用openpose进行识别,但是结果并不好,识别 率百分之10都没有。后来尝试了一个解决方案,从迁移学习的角度出发,本发明的相机可以采集rgb图又可以采集相应的 深度图。本发明首先用openpose的pytorch版本用rgb图跑出本发明所需要的标签,然后在openpose原生网络参数上进行迁 移学习,使用openpose网络,将标签与标签对应的深度图像绑定,作为本发明训练的数据集,这样就可以得到输入是深度 图像,输出是骨骼化数据的模型了。而且相对于别的模型,这种方法训练出来的模型识别度较高。
基于随机森林的人体姿态识别:本发明在上一步研究的基础上,可以在迁移学习的基础上训练出本发明的深度图像 骨骼化模型,那么本发明就可以通过深度图像得到骨骼化数据了,要知道,人体不同姿态在身体各个关节夹角是有一定 特征的。本发明可以通过计算躯干角、前屈角、臀部角、肩部角以及膝盖角来得到姿态与夹角的关系。本发明将分类好 的姿态关节角计算出来打好姿态标签,通过随机森林完全就可以学习夹角与姿态的关系从而得到本发明姿态识别模型。
数据集的采集、标注、处理:本发明在训练深度图像骨骼化模型时第一个数据集是在实验室使用学生的姿态做的, 图像可能有些问题,识别出来效果不行,然后本发明在网上找了rgb与深度图图像一一对应的数据,图片总共两万张,使 用rgb图跟openpose的pytorch版本跑出本发明训练的标签,将rgb图,深度图与标签作为本发明深度图像骨骼化模型的训练 集,证明了本发明的方案的可行性。但是最后是要用老年人的数据,本发明在老人家安装了深度相机,通过深度相机每 天21小时采集的深度图像与rgb图经过编码上传到云端,然后下载下来经过解码即可得到老人的图像。本发明通过手动挑 选出有人的,一共找出了37654张rgb图与相应数量对应的深度图按照上述方法制作本发明深度图像骨骼化模型的训练集。 其次姿态识别模型的数据集本发明是通过人为标定姿态,将老人图像分成四个姿势,分别为站,行走,弯腰,坐,由于 相机视角的原因,缺少蹲与躺的数据。然后通过计算得到这些姿态的夹角作为本发明使用随机森林训练姿态识别模型的 训练集。
1.3在全球老龄化情况日益严峻的情况下,为老人设计一套健康养老服务就显得非常有意义。本发明旨在不侵犯老人 隐私的情况下设计一个切实可行的姿态检测系统。而现有的大部分姿态检测系统都是基于rgb图像的,借此体现出本发明 系统的优点。
2、相关技术简介
2.1迁移学习
迁移学习(Transfer learning)顾名思义就是就是把已学训练好的模型参数迁移到新的模型来帮助新模型训练。考虑到大 部分数据或任务是存在相关性的,所以通过迁移学习本发明可以将已经学到的模型参数(也可理解为模型学到的知识) 通过某种方式来分享给新模型从而加快并优化模型的学习效率不用像大多数网络那样从零学习(startingfrom scratch, tabula rasa)。
关于迁移学习有非常多种的分类,这儿给出两个分类第一种基于不同迁移情况分为三类归纳式迁移、直推式迁移、 无监督迁移:
归纳式迁移:针对的问题是源与目标域相同,但是任务不同,且此时源的标签可有可无,而目标任务是有标签的, 比如imagenet数据训练好分类问题可以用来做回归。
直推式迁移:源的域是不同但相关的,任务相同,且源域是有标签,而目标域没有,本发明项目中采用的就是这种 迁移方法。
无监督迁移学习:域和任务都是不相同但相关的,基本上处理的是一些聚类、降维、密度估计等问题。
第二种分类方式是基于解决方法,也就是迁移内容来分的。样本、特征表达、参数、相关知识都可以用来迁移。
迁移样本:这个方法一般都是将source的样本融入target当成target的加权样本直接用于训练,通过一些算法来调整 source样本的权重,当source和target的P(Y|X)P(Y|X)是一样的时候,这种方法效果很好;
迁移特征有两种方式:
第一种类似迁移样本,将特征调整权重之后加入target进行训练;
第二种是建立source和target的特征关联,可以用某种映射减少源和目标的差异。
迁移参数:在source和target之间进行参数共享或者组合多个source模型来解决target的问题。本发明项目中也采用了这 种方式,本发明通过使用openpose的网络参数来进行组合,进行本发明模型训练。
迁移知识:这里的知识代表的是数据之间存在的某种关联,source中有,那么希望将这个关联迁移到target中,且源 和目标数据都是独立同分布的。
2.2openpose项目
Openpose项目是本发明这个研究的基础,也是最具有参考价值的一个项目。他在人体姿态识别方面已经发展的非常 成熟,本发明主要是在该项目基础上进行迁移学习。OpenPose人体姿态识别项目是美国卡耐基梅隆大学(CMU)基于卷 积神经网络和监督学习并以caffe为框架开发的开源库,可以实现人体动作、面部表情、手指运动等姿态估计。适用于单 人和多人,具有极好的鲁棒性。是世界上首个基于深度学习的实时多人二维姿态估计应用。
下面对进行一个简单的介绍:
1)功能:
二维多人关键点实时识别:15、18或25个身体/脚部的关键点识别,运算时间与检测出的人数无关。221个手部关键 点识别。目前,运算时间取决于检测出的人数。70个面部关键点的识别。目前,运算时间取决于检测出的人数。
三维单关键点实时识别:通过多个单一角度的视频进行三角测量。菲力尔品牌摄像机的视频同步处理。与Flir摄像机 和Point Grey摄像机兼容,提供了C++语言的代码样本,用户可以自定义输入。
2)输入:
图片、视频、网络摄像头的视频流、Flir或Point Grey和IP摄像机。项目提供了C++语言的代码样本,用户可以自定义 输入。
3)输出:
原有图片+关键点展示(PNG、JPG、AVI等格式),关键点数据存储文件((JSON,XML,YML等格式)。
操作系统:
Ubuntu(14,16),Windows(8,10),Mac OSX,Nvidia TX2.
在本发明的项目中,本发明主要使用了该项目二维多人关键点识别中18个关键点的识别。
2.3随机森林
随机森林是由Bagging+决策树组合而成的算法。决策树是一种树形结构,其中每个内部节点表示一个属性上的测试, 每个分支代表一个测试输出,每个叶节点代表一种类别。决策树结构的整体结构如图3所示。
Bagging(套袋法)是Bootstrap AGGregatING的缩写。Bagging基于自助采样法(bootstrap sampling)。给定包含m个样 本的数据集,先随机取出一个样本放入采样集中,再把该样本放回初始数据集,使得下次采样时该样本仍有可能被选中(有 放回的采样)。这样,经过m次随机采样操作,得到含m个样本的采样集,初始训练集中有的样本再采样集里多次出现, 有的则从未出现。采样出T个含有m个训练样本的采样集,然后基于每个采样集训练出一个基学习器,再将这些基本学习 器进行结合。
随机森林中有许多的分类树。要将一个输入样本进行分类,需要将输入样本输入到每棵树中进行分类。每棵决策树 都是一个分类器,那么对于一个输入样本,N棵树会有N个分类结果。而随机森林集成了所有的分类投票结果,将投票次 数最多的类别指定为最终的输出。随机森林大体结构如图4所示。
每棵树的按照以下规则生成:如果训练集大小为N,对于每棵树而言,随机且有放回地训练集中的抽取N个训练样本 (这种采样方式称为bootstrap sample方法),作为该树的训练集。从这里可知:每棵树的训练集都是不同的,而且里面包 含重复的训练样本。本发明在进行姿态识别的时候采用的就是该模型,将角度与标签作为本发明的训练样本,让决策树 进行投票。
3、系统总体设计
3.1系统需求分析
本发明需要搭建一个可以识别在老人家采集的深度图像,然后通过深度图像生成人体骨骼姿态,以及对姿态进行分 类的系统。
3.1.1业务流程
如图5所示,整个系统的业务流程包括数据采集、数据上传、数据下载、数据处理、数据分析、结果展示。
3.1.2功能性需求分析
(1)获取深度相机数据
系统输入需要在人家里深度相机采集到的深度图像。为了方便,采集系统将数据上传到云端,使用者下载下来进行 解码就可以使用了。
(2)处理数据
图像解码后,本发明首先需要挑出有人的rgb图像,然后找出一一对应的深度图像,通过在openpose的网络参数上进 行迁移学习,来训练本发明的深度图像人体骨骼化模型,然后通过该模型得到骨骼化结果。再通过相机参数进行2d骨骼 到3d点云中的转换得到人的3d骨架图。这些3d骨架图坐标可以计算各个关节角,本发明在手动给他们打上姿态标签,让 随机森林去学习他们的特征进行姿态分类模型训练。
(3)数据分析
本发明通过搭建好的平台来输入深度图像,图像经过本发明的系统转换成训练好的深度图像骨骼化模型输入,然后 得出他的3d骨架,并且在得到骨架之后计算关节角通过预先训练好的姿态分类模型得到人体姿态。
(4)结果展示
系统采用的是django作为前端,python作为后台,本发明将获取到的骨骼化数据首先保存在为彩色图中,然后将骨骼 化数据与相机参数进行处理得到3d点云中的骨骼化数据,再进行旋转存入硬盘中,然后在djgango前台进行展示。姿态是 将3d点云上的点通过向量来计算关节夹角然后将夹角输入训练好的姿态分类模型中得到姿态标签在django前台展示。
3.1.3非功能性需求分析
运行环境:
硬件:一台安装ros系统的计算机主机
系统:windows8/windows10/Ubantu16.04
环境:cuda10.1pytorch9.1matlab2016a及以上版本python以及c++运行环境
显存:4G及以上
3.2系统功能模块
如图6所示,本系统应该包括四个模块,分别为数据采集模块,人体骨骼话模块,姿态分析模块,以及UI界面。
(1)数据采集
该模块硬件设备主要有深度摄像头和树莓派,树莓派将摄像头变为物联网节点,然后通过ROS系统将深度图像数据 传入到主机中。ROS系统是用于编写机器人软件程序的一种具有高度灵活性的软件架构。ROS提供一些标准操作系统服 务,例如硬件抽象,底层设备控制,常用功能实现,进程间消息以及数据包管理。通过ROS系统可以很好的实现从机(树莓派)发送数据到主机(Windows 10)以及主机控制从机。
(2)人体骨骼化
该模块首先需要训练能识别深度图像的人体骨骼化模型。本发明采用openpose的模型进行训练标签的获取,将rgb图 像用openpose模型跑出paf跟heatmap保存作为后续训练本发明自己模型的标签。然后在openpose的网络上进行迁移学习, 深度图像作为网络输入,获取到的heatmap跟paf作为标签进行训练得到本发明深度图像的人体骨骼化模型。
(3)姿态分析
该模块本发明需要训练自己的姿态分类模型,本发明采用的是随机森林。将人体骼化结果得到的2d坐标进行转换得 到3d点云中的人体骨骼化坐标,然后通过向量之间的夹角计算得到人体的关节夹角。将本发明打好标签的数据进行夹角 的计算,将夹角跟标签输入到随机森林中进行训练得到本发明的姿态分类模型。后续识别姿态时只需要输入骨骼化之后 计算的夹角即可。
(4)结果展示
该模块主要使用django框架来实现前后台的,通过一系列数据的处理本发明得到了人体骨骼化数据,将数据保存到伪 彩色图中,然后2d到3d点云坐标的转换得到3d点云的坐标,通过坐标计算关节向量来计算各个关节夹角。本发明通过3d 点云的坐标以及各个点之间的连接关系通过python可视化画出了人的3d骨架图。由于相机角度原因本发明需要通过一定旋 转得到人的3d骨架正视图然后通过python可视化并且在前端展示出来。
3.3描绘了系统的总体设计思路。本系统需求主要是完成对深度图像的骨架化,以及2d骨架到3d骨架的转换和后续的 姿态识别。使用者可以通过本系统采集到的深度图像来运行识别系统得到人的2d骨架图、3d骨架图、3d骨架图旋转之后 的图像和人体的姿态,这些都有利于医务人员在不侵犯隐私的前提下对老年人行为进行观察。功能性和非功能性需求分 析,并以图的形式表现出了本发明的系统功能模块。通过本章,本发明的需求,需要完成的功能和达成的目标以及整个 系统的设计框架已经比较清晰明了了。
4、基于迁移学习的深度图像人体骨骼化
4.1数据集,数据标注
本发明知道优质的数据往往能为算法提供方向,甚至直接驱动需求,因此深度图像骨骼化数据集的构建,是进行各 种方案研究的基础,对于实现老年人体姿态检测有着重要的意义。由于本发明是投入实际使用的,本发明构建了具有7万 多张含人的深度图像与rgb图像一一对应的数据集。
4.1.1数据集
本发明构建的数据集由两部分样本组成,第一次本发明使用的数据集是在网上找的开源的数据,一共一万多张深度 图像与rgb图像一一对应。后来通过该数据验证了本发明方案的可行性。本发明在老人家里搭建了深度相机,通过每天20 多小时,每秒一张的速率采集深度图像与对应的rgb图像,将图像进行转码之后上传到云端。然后本发明人工下载下载进 行数据的筛选,首先筛选出了30000多张有人的rgb图像,分辨率为640*480,然后找出rgb对应的深度图像,这样本发明图 像的数据集就做好了。深度图像骨骼化模型数据集样本如图7所示。
4.1.2数据标注
本发明训练模型采用的是openpose的网络参数,在该网络基础上进行迁移学习的。本发明需要的模型是输入图像是深 度图,然后得出他的骨架化结果。本发明找到了一种解决方案,将rgb图通过openpose的pytorch模型跑出来的heatmap跟paf 作为后续训练模型的标签,将标签与深度图像进行绑定就得到了本发明的训练集,训练集如图8所示。
获取标签流程图如图9所示。
4.2基本思路
本发明在此之前已经得到本发明的训练集了,本发明决定在openpose的网络参数基础上进行训练本发明的模型。 Openpose的网络结构如图10所示,他是一个分支的CNN网络,该网络是一个不断迭代的网络连接。第1阶段和后续阶段的 网络在形态上有所区别。每个阶段的两个网络分支分别用于计算部位置信图(Part Confidence Maps,即关节点)和部位亲和 域(Part Affinity Fields,即肢体躯干)。
本发明在训练的时候该网络一共分为六个阶段,每个阶段两个分支,除了第一阶段结构不太一样2到6阶段网络结构 是一样的。网络的第1个阶段接收的输入是特征F,该特征是本发明将深度图像经过vgg-19的前10层提取的。经过网络的 处理后分别得到S1和L1。从第2阶段开始,网络的输入包括三部分:St-1,Lt-1,F。每个阶段网络的输入为:
训练过程:首先网络通过VGG-19前10层进行初始化并微调,在经过pretrain-model进行骨架后,会有两个branch,来 分别进行回归L(p)以及S(p)。在每一个stage都算一次loss之后,将L以及S以及原始的输入F进行concatenate,送入下一个stage 再进行训练。其中训练的loss采用的是l2范数。S和L的gt都是采用标注的关键点,如果某个关键点在标注中不存在,就不 标注这个点。经过网络,网络氛围上下两个分支,每个分支都是t个阶段进行不断的微调,且每个阶段都会将feature maps 进行融合,其中表示的是网络的两个分支。L2损失如下:
六个阶段结束后本发明来通过反向传播确定本发明的梯度向量,然后通过梯度向量来调整权值,在下一次取一个 batch_size图像之前本发明更新本发明的学习率在重复上述过程,直到达到迭代次数保存本发明的模型。训练流程图如图 11所示。
4.3通过heatmap与paf生成骨架图
在给出标注数据计算的时候,每个confidence map都是一个2D的表示,理想情况下,当图像中值包含一个人时, 如果一个关键点是可见的话,对应的confidence map中只会出现一个峰值,而当图像中有多个人时,对于每一个人k的每 一个可见关键点j在对应的confidence map都会有一个峰值。如下图所示,首先给出每一个人k的单个confidencemaps, xj,k∈R2表示图像中人k对应的位置j对应position。(式4-1)其中σ用来控制峰值在 confidence map中的传播范围。这里用最大值能够更加准确的将同一个feature maps中confidence map的峰值进行保存起来。 网络在位置P的预测值对应的GT位置,计算如(式4-1)所示,取最大值在预测阶段网络通过NMS 来获得最终的置信度,如图13所示。
以图14为例。
图像中的Xj1,k以及Xj2,k分别表示第k个人的肢体c的两个身体部件j1以及j2的GT位置,如果点p落在了肢体c上,那么 的值为j1指向j2的单位向量,不在这个肢体上的点p为0。为了在训练过程中评估fL,定义PAF在点p的GT值为 其中表示的是肢体的单位向量。在 0≤v·(p-xj1,k)≤lc,kand|v⊥·(p-xj1,k)|≤σl范围内的点p被定义为在肢体c上,其中σl代表肢体的宽度, lc,k=||xj2,k-xj1,k||2代表肢体的长度。点p在部件亲和场GT值为所有人在此点上PAF的平均值其中nc(p)表示非零向量的个数。
4.3.3如何判断两点间相连的可能性
Part Affinity Fields的关键作用是用于判断两个部位是否相连。通过下面公式实现:
对于两个候选点dj1和dj2,如何判断他们是否连起来是一个躯干呢。解决方案就是计算他们连线上的线性积分,如果 p(u)是两点连线上的任意一点,那么的方向就会与的方向一致,那么E的值就会很大,说明该位置是一个躯干 的可能性就非常大。
4.3.4关节拼接成骨架图
在经过上述过程,本发明得到的是一个个躯干,那么接下来就探讨一下如何将这些躯干来拼接成一个人的骨架。
尝试:首先本发明从躯干开始拼接,例如大臂的两端一定是肩膀和胳膊肘,那么就先把所有的肩膀和胳膊肘的连接 图中进行搜索,因为有了PAFs的信息支撑,那么就可以很快大臂找出来。然后,再分别找出小臂、小腿等其他躯干,再 将这些躯干组合到一起形成人物姿势,问题就大大的被简化。拼接过程如下:
第一步:先找到图中所有小腿,下列公式告诉本发明如何找出所有小腿。
用来表示把膝盖(j1)置信图中点m和脚(j2)置信图点n连接起来的一个可能肢体搭配,Emn计算这样一个搭配 的积分结果(依赖于Lt)。表示点m和n不构成一个搭配。遍历所有的搭配,计算积分和。最终选择积分和最大的 搭配组合代表原始图像中的所有小腿。
第二步:按照第一步的方法去找大臂,腰腹,小臂这些位置。
第三步:两个相邻的躯干必定有相同的关节点,这样再通过相同关节点将躯干连起来就得到人体的骨架了。
4.4骨架图旋转
由于本发明相机视角的原因,通过2d骨架图转换到3d点云中去人的骨架是斜着的,本发明需要进行旋转将其摆正。
首先本发明介绍一下三维空间的坐标旋转:
1)绕Z轴逆时针旋转θ角
2)绕X轴逆时针旋转θ角
1)绕Y轴逆时针旋转θ角
为了将人的骨架图摆正,首先找到脖子那个点跟中臀那个点组成向量,首先将人的中臀那个点移动到原点,别的点 也相应移动相应距离。然后该向量绕着x轴旋转到yx平面,然后再绕着z轴旋转将其旋转到与y轴平行。这样人就摆正了。 摆正前的骨架图与摆正后的骨架图如图15所示。
4.5模型测试
本发明载入本发明训练好的模型,将下载好的伪彩图解码后通过matlab转换为深度图,放到本发明的模型中进行识别, 得到heatmap跟paf,然后通过上述算法得到2d骨架图以及相应的3d骨架图。测试结果如图16所示。
4.6从数据集的构建出发,先介绍如何构建本发明自己的数据集,然后介绍本发明如何在openpose的基础上训练自己 的模型来识别深度图像,以及如何通过识别结果来得到本发明的2d跟3d骨架图。同时还介绍了一下3d图像的旋转问题, 因为相机视角原因本发明的骨架图在3d点云中不是正的,所以本发明需要将骨架图摆正。
5、人体姿态识别
5.1数据集
本发明人体姿态识别模型是通过随机森林训练的,训练之前需要构建本发明的训练集。本发明首先通过人工标定姿 态将图像分组,然后跑出他们的骨架图通过骨架图计算各个关节角作为本发明的训练集。关节角计算如下:
定义5.1:躯干角atrunk。定义为躯干与水平面之间的角度,计算公式如式(5-1)所示:
pneck——为脖子的3D坐标;
pmid.hip——为中臀的3D坐标。
定义5.2:前屈角abend。定义为身体前屈的角度,计算公式如式(5-2)所示:
式中:pnose——为鼻子的3D坐标。
定义5.3:臀部角aα.hip。定义为脖子、左右臀与左右膝盖的角度,计算公式如式(5-3)所示:
式中:pα.hip——为左右臀部的3D坐标,α∈{left,right};
pα.knee——为左右膝盖的3D坐标。
定义5.4:肩部角aα.shoulder。定义为脖子、左右肩部与左右手肘的角度,计算公式如式(5-4)所示:
式中:pα.shoulder——为左右肩部的3D坐标;
pα.elbow——为左右手肘的3D坐标。
定义5.5:膝盖角aα.knee。定义为左右臀部、左右膝盖与左右脚踝的角度,计算公式如式(5-5)所示:
式中:pα.ankle——为左右脚踝的3D坐标。
定义5.6:肩宽dshoulder。定义为左右两肩的距离,用来表示个人体态的差异,计算公式如式(5-6)所示:
dshoulder=|pleft.shoulder-pright.shoulder| (5-6)
式中:pleft.shoulder——为左肩的3D坐标;
pright.elbow——为右肩的3D坐标。
定义5.7:成对点距离dright&left。定义为上肢左右手肘、手腕与下肢左右膝盖、脚踝间的距离,计算公式如式(5-7)所 示:
dright&left=|pleft.m-pright.n|/dshoulder (5-7)
式中:m——m∈{left.knee,right.kenn,left.ankle,right.ankle};
n——n∈{left.elbow,right.elbow,left.wrist,right.wrist}。
将每张图片各个夹角作为一行存入相应标签csv文件即可得到数据集,数据集如表1所示。
表1数据集
将未检测到的点设置为nan值,他参与计算的角度也设置为nan。在训练处理的时候nan值做置0处理。
5.2随机森林
在得到骨架图之后,本发明检测人体姿态是一个分类任务,分类任务比较好用的莫过于随机森林了。本发明采用随 机森林来进行姿态的分类,去训练本发明的姿态识别模型。随机森林是通过集成学习的思想将多棵树集成的一种算法, 它的基本单元是决策树,而它的本质属于机器学习的一大分支--集成学习(Ensemble Learning)方法。随机森林这四个字 中有两个关键词,一个是随机,一个是森林。森林是由很多棵树组成,而随机我将在下面介绍。简单来说,森林是由多 个决策树构成,每个决策树是一个分类器,对于输入的样本,N颗树就有N个分类结果,而随机森林集成了所有分类器的 投票结果,将票数最多的作为本发明的输出,这是一种Bagging思想。随机森林在当前的算法中,有极好的准确率,能够有效地运行在大数据集上,并且本发明的数据集有缺省值,随机森林对于缺省问题也能够得到很好的结果。
随机森林中树的生成:
如果训练集大小为N,本发明随即且有放回地抽取N个训练样本作为该树地训练集。这样,每棵树地训练集都是不同 的。如果不进行随机抽样,每棵树的训练集都一样,那么最终训练出的树分类结果也是完全一样的。
将样本的关节角跟标签作为本发明随机森林训练的输入,即可得到人体姿态识别模型。
5.3模型测试
可能是由于openpose pytorch版本精度的原因,得到的骨架图精度有误差,然后在计算夹角时误差被放大了,导致数 据集精度出现了损失,然后随机森林学习不到比较精确的特征,所以在分类时准确度不是很高,测试了2000张图片准确 度只有百分之70左右。
测试结果如图17所示。
5.4同样是从数据集的构建出发开始介绍,因为本发明的数据集含部分缺省数据,随机森林可以很好的解决这个问题。 其次本发明介绍了如何通过各个关节的夹角通过随机森林来识别人体的姿态。在最后做了一下模型测试,结果由于pytorch 版openpose精度原因不是特别理想,本发明准备在后续工作中进行优化。
6、结果
在老年人体姿态检测的任务中,需要实时获取对应的深度图像来获取人的骨架图来给医务人员看,这就要求了骨架 图要有一定的准确性,本发明在这方面完成的不错。本发明基于该任务,构建了深度图像采集系统,以及通过深度图像 获取人体骨架并且分析出人体姿态,算是达到了该任务的要求。主要完成的工作如下:
(1)构建出了基于深度图像的人体骨骼化模型的数据集以及人体姿态分类的数据集。这两个数据集的数据量也算比较 客观的。深度图像数据集图片数量高达70000多张,而姿态分类的数据量也是达到了60000多条。
(2)目前已有的研究中,对于人体姿态识别的项目大部分是基于rgb图像,或者是基于rgb-d图像的,很少有本发明这种 只基于暗通道的深度图像。一方面很好保护了老人的隐私,另一方面也是可以对他们生活起到一个保护的作用。而且本 发明在模型方面,并没有重构一个模型,这样数据量跟代价太大了。本发明基于openpose,由于他们网络对rgb图像识别 度较高,基于他们的网络参数,在openpose网络参数基础上进行迁移学习,完成了深度图像骨骼化模型,并且识别度较高。 同时,本发明也完成了2d骨骼到3d骨骼的转换与展示,让医务人员看起来更加直观。
(3)在姿态识别方面,本发明通过随机森林以及深度图像骨骼化的基础上训练出来了本发明自己的姿态识别模型,尽 管准确度可能不是那么差强人意,但是也是可以达到百分之70多。后续本发明需要在进行优化。
(4)使用django框架搭建了老年人体姿态检测系统,可以实时输入深度图像,来进行姿态的识别以及3d骨骼的展示, 有利于医务人员观察。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机 程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时, 全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或 者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算 机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、 光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。 所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据 中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介 质(例如固态硬盘Solid State Disk(SSD))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本 发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护 范围之内。
Claims (10)
1.一种人体姿态检测方法,其特征在于,所述人体姿态检测方法包括以下步骤:
通过数据采集模块利用深度摄像头和树莓派采集深度图像与对应的rgb图像,构建基于深度图像的人体骨骼化模型的数据集以及人体姿态分类的数据集;
通过人体骨骼化模块将rgb图像通过openpose的pytorch模型跑出的heatmap跟paf保存作为后续训练模型的标签;
在openpose的网络上进行迁移学习,深度图像作为网络输入,获取到的heatmap跟paf作为标签进行训练,得到深度图像的人体骨骼化模型;
通过人工标定姿态将图像分组;通过heatmap与paf生成骨架图,对骨架图进行旋转,同时通过骨架图计算各个关节角作为训练集;
通过姿态分析模块将打好标签的数据进行夹角的计算,将夹角和标签输入到随机森林中进行训练,得到姿态识别模型;
通过对骨架图进行旋转,得到人的3d骨架正视图,并通过结果展示模块利用python可视化在前端进行展示。
3.如权利要求1所述的人体姿态检测方法,其特征在于,所述训练过程包括:首先网络通过VGG-19前10层进行初始化并微调,在经过pretrain-model进行骨架后,会有两个branch,分别进行回归L(p)以及S(p);在每一个stage都算一次loss之后,将L以及S以及原始的输入F进行concatenate,送入下一个stage再进行训练;其中训练的loss采用的是l2范数;S和L的gt都是采用标注的关键点,如果某个关键点在标注中不存在,就不标注这个点;经过途中所示的网络,网络氛围上下两个分支,每个分支都是t个阶段进行不断的微调,且每个阶段都会将feature maps进行融合,其中表示的是网络的两个分支;L2损失如下:
六个阶段结束后通过反向传播确定本发明的梯度向量,然后通过梯度向量来调整权值,在下一次取一个batch_size图像之前,更新学习率在重复上述过程,直到达到迭代次数保存模型。
4.如权利要求1所述的人体姿态检测方法,其特征在于,所述通过heatmap与paf生成骨架图的方法,包括:
在给出标注数据计算的时候,每个confidence map都是一个2D的表示,理想情况下,当图像中值包含一个人时,如果一个关键点是可见的话,对应的confidence map中只会出现一个峰值,而当图像中有多个人时,对于每一个人k的每一个可见关键点j在对应的confidence map都会有一个峰值;首先给出每一个人k的单个confidence maps,xj,k∈R2表示图像中人k对应的位置j对应position:
其中,σ用来控制峰值在confidence map中的传播范围;这里用最大值能够更加准确的将同一个feature maps中confidence map的峰值进行保存起来;网络在位置P的预测值对应的GT位置,取最大值在预测阶段网络通过NMS来获得最终的置信度;
Xj1,k以及Xj2,k分别表示第k个人的肢体c的两个身体部件j1以及j2的GT位置,如果点p落在了肢体c上,那么的值为j1指向j2的单位向量,不在这个肢体上的点p为0;为了在训练过程中评估fL,定义PAF在点p的GT值为其中表示的是肢体的单位向量;在0≤v·(p-xj1,k)≤lc,kand|v⊥·(p-xj1,k)|≤σl范围内的点p被定义为在肢体c上,其中σl代表肢体的宽度,lc,k=||xj2,k-xj1,k||2代表肢体的长度;点p在部件亲和场GT值为所有人在此点上PAF的平均值其中nc(p)表示非零向量的个数;
(3)判断两点间相连的可能性
Part Affinity Fields的关键作用是用于判断两个部位是否相连;通过下面公式实现:
(4)关节拼接成骨架图
拼接过程如下:
第一步:先找到图中所有小腿:
用来表示把膝盖(j1)置信图中点m和脚(j2)置信图点n连接起来的一个可能肢体搭配,Emn计算这样一个搭配的积分结果(依赖于Lt);表示点m和n不构成一个搭配;遍历所有的搭配,计算积分和;最终选择积分和最大的搭配组合代表原始图像中的所有小腿;
第二步:按照第一步的方法去找大臂、腰腹和小臂;
第三步:两个相邻的躯干必定有相同的关节点,再通过相同关节点将躯干连起来即可得到人体的骨架。
6.如权利要求1所述的人体姿态检测方法,其特征在于,所述关节角的计算方法如下:
(1)躯干角atrunk为躯干与水平面之间的角度,计算公式如下:
(2)前屈角abend为身体前屈的角度,计算公式如下:
其中,pnose为鼻子的3D坐标;
(3)臀部角aα.hip为脖子、左右臀与左右膝盖的角度,计算公式如下:
其中,pα.hip为左右臀部的3D坐标,α∈{left,right};pα.knee为左右膝盖的3D坐标;
(4)肩部角aα.shoulder为脖子、左右肩部与左右手肘的角度,计算公式如下:
其中,pα.shoulder为左右肩部的3D坐标;pα.elbow为左右手肘的3D坐标;
(5)膝盖角aα.knee为左右臀部、左右膝盖与左右脚踝的角度,计算公式如下:
其中,pα.ankle为左右脚踝的3D坐标;
(6)肩宽dshoulder为左右两肩的距离,用来表示个人体态的差异,计算公式如下:
dshoulder=|pleft.shoulder-pright.shoulder|;
其中,pleft.shoulder为左肩的3D坐标;pright.elbow为右肩的3D坐标;
(7)成对点距离dright&left为上肢左右手肘、手腕与下肢左右膝盖、脚踝间的距离,计算公式如下:
dright&left=|pleft.m-pright.n|/dshoulder;
其中,m∈{left.knee,right.kenn,left.ankle,right.ankle};
n∈{left.elbow,right.elbow,left.wrist,right.wrist}。
7.一种应用如权利要求1~6任意一项所述的人体姿态检测方法的人体姿态检测系统,其特征在于,所述人体姿态检测系统包括:数据采集模块、人体骨骼化模块、姿态分析模块和结果展示模块;
数据采集模块,硬件设备主要有深度摄像头和树莓派,树莓派将摄像头变为物联网节点,然后通过ROS系统将深度图像数据传入到主机中;
人体骨骼化模块,用于训练能识别深度图像的人体骨骼化模型,采用openpose的模型进行训练标签的获取,将rgb图像用openpose模型跑出paf跟heatmap保存作为后续训练模型的标签;然后在openpose的网络上进行迁移学习,深度图像作为网络输入,获取到的heatmap跟paf作为标签进行训练得到深度图像的人体骨骼化模型;
姿态分析模块,采用随机森林,将人体骼化结果得到的2d坐标进行转换得到3d点云中的人体骨骼化坐标,然后通过向量之间的夹角计算得到人体的关节夹角;将打好标签的数据进行夹角的计算,将夹角跟标签输入到随机森林中进行训练得到姿态分类模型,后续识别姿态时只需要输入骨骼化之后计算的夹角即可;
结果展示模块,使用django框架来实现前后台的,通过一系列数据的处理得到人体骨骼化数据,将数据保存到伪彩色图中,然后2d到3d点云坐标的转换得到3d点云的坐标,通过坐标计算关节向量来计算各个关节夹角;通过3d点云的坐标以及各个点之间的连接关系通过python可视化画出了人的3d骨架图,通过一定旋转得到人的3d骨架正视图然后通过python可视化并且在前端展示出来。
8.一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以实施如权利要求1~6任意一项所述的人体姿态检测方法。
9.一种计算机可读存储介质,储存有指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1~6任意一项所述的人体姿态检测方法。
10.一种信息数据处理终端,其特征在于,所述信息数据处理终端用于实现权利要求1~6任意一项所述的人体姿态检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110008794.6A CN112861624A (zh) | 2021-01-05 | 2021-01-05 | 一种人体姿态检测方法、系统、存储介质、设备及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110008794.6A CN112861624A (zh) | 2021-01-05 | 2021-01-05 | 一种人体姿态检测方法、系统、存储介质、设备及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112861624A true CN112861624A (zh) | 2021-05-28 |
Family
ID=76003928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110008794.6A Pending CN112861624A (zh) | 2021-01-05 | 2021-01-05 | 一种人体姿态检测方法、系统、存储介质、设备及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112861624A (zh) |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113368487A (zh) * | 2021-06-10 | 2021-09-10 | 福州大学 | 基于OpenPose的3D私人健身系统及其工作方法 |
CN113392758A (zh) * | 2021-06-11 | 2021-09-14 | 北京科技大学 | 一种面向救援培训的行为检测与效果评价的方法及装置 |
CN113392765A (zh) * | 2021-06-15 | 2021-09-14 | 广东工业大学 | 一种基于机器视觉的摔倒检测方法和系统 |
CN113488145A (zh) * | 2021-07-15 | 2021-10-08 | 厦门大学附属心血管病医院 | 疼痛评估关节部位选择方法及选择装置 |
CN113538696A (zh) * | 2021-07-20 | 2021-10-22 | 广州博冠信息科技有限公司 | 特效生成方法、装置、存储介质及电子设备 |
CN113643419A (zh) * | 2021-06-29 | 2021-11-12 | 清华大学 | 一种基于深度学习的人体反向动力学求解方法、装置 |
CN113781207A (zh) * | 2021-09-15 | 2021-12-10 | 杭银消费金融股份有限公司 | 基于实验设计的风控管理策略确定方法及系统 |
CN113876437A (zh) * | 2021-09-13 | 2022-01-04 | 上海微创医疗机器人(集团)股份有限公司 | 存储介质、机器人系统以及计算机设备 |
CN113878595A (zh) * | 2021-10-27 | 2022-01-04 | 上海清芸机器人有限公司 | 基于树莓派的仿人实体机器人系统 |
CN113920578A (zh) * | 2021-09-08 | 2022-01-11 | 哈尔滨工业大学(威海) | 一种智能居家瑜伽教练信息处理系统、方法、终端、介质 |
CN114093030A (zh) * | 2021-11-23 | 2022-02-25 | 杭州中科先进技术研究院有限公司 | 一种基于人体姿态学习的射击训练分析方法 |
CN114093024A (zh) * | 2021-09-24 | 2022-02-25 | 张哲为 | 人体动作的识别方法、装置、设备及存储介质 |
CN114099234A (zh) * | 2021-11-23 | 2022-03-01 | 复旦大学 | 一种用于辅助康复训练的智能化康复机器人数据处理方法及系统 |
CN114187992A (zh) * | 2021-12-08 | 2022-03-15 | 福寿康(上海)医疗养老服务有限公司 | 基于视频ai分析老年肢体动作并自动生成检测报告的方法 |
CN114440884A (zh) * | 2022-04-11 | 2022-05-06 | 天津果实科技有限公司 | 一种智能矫姿设备用人体身姿的智能分析方法 |
CN114638744A (zh) * | 2022-03-03 | 2022-06-17 | 厦门大学 | 人体姿态迁移方法及装置 |
CN114782987A (zh) * | 2022-03-28 | 2022-07-22 | 西南交通大学 | 一种基于深度相机监督的毫米波雷达姿态识别方法 |
CN114973397A (zh) * | 2022-03-21 | 2022-08-30 | 苏州大学 | 一种实时工序检测系统、方法及存储介质 |
CN114998779A (zh) * | 2022-04-29 | 2022-09-02 | 西安交通大学 | 一种自监督人体行为识别方法及系统 |
CN115083015A (zh) * | 2022-06-09 | 2022-09-20 | 广州紫为云科技有限公司 | 一种3d人体姿态估计数据标注方式和对应的模型构建方法 |
CN115205737A (zh) * | 2022-07-05 | 2022-10-18 | 北京甲板智慧科技有限公司 | 基于Transformer模型的运动实时计数方法和系统 |
CN115563556A (zh) * | 2022-12-01 | 2023-01-03 | 武汉纺织大学 | 一种基于智能可穿戴设备的人体体态预测方法 |
US20230004740A1 (en) * | 2021-06-30 | 2023-01-05 | Ubtech North America Research And Development Center Corp | Human lying posture detection method and mobile machine using the same |
CN115568823A (zh) * | 2022-09-21 | 2023-01-06 | 汕头大学 | 一种人体平衡能力评估的方法、系统和装置 |
TWI790152B (zh) * | 2022-03-31 | 2023-01-11 | 博晶醫電股份有限公司 | 動作判定方法、動作判定裝置及電腦可讀儲存媒體 |
CN115937895A (zh) * | 2022-11-11 | 2023-04-07 | 南通大学 | 一种基于深度相机的速度与力量反馈系统 |
WO2023199357A1 (en) * | 2022-04-13 | 2023-10-19 | Garg Dr Suruchi | A system of identifying plurality of parameters of a subject's skin and a method thereof |
CN118447581A (zh) * | 2024-07-08 | 2024-08-06 | 乐山师范学院 | 手语识别模型训练方法、识别方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886588A (zh) * | 2014-02-26 | 2014-06-25 | 浙江大学 | 一种三维人体姿态投影的特征提取方法 |
US20190026942A1 (en) * | 2017-07-18 | 2019-01-24 | Sony Corporation | Robust mesh tracking and fusion by using part-based key frames and priori model |
CN110480634A (zh) * | 2019-08-08 | 2019-11-22 | 北京科技大学 | 一种针对机械臂运动控制的手臂引导运动控制方法 |
CN111144263A (zh) * | 2019-12-20 | 2020-05-12 | 山东大学 | 一种建筑工人高坠事故预警方法及装置 |
CN112084878A (zh) * | 2020-08-14 | 2020-12-15 | 浙江工业大学 | 一种用于判别作业人员姿态规范程度的方法 |
-
2021
- 2021-01-05 CN CN202110008794.6A patent/CN112861624A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103886588A (zh) * | 2014-02-26 | 2014-06-25 | 浙江大学 | 一种三维人体姿态投影的特征提取方法 |
US20190026942A1 (en) * | 2017-07-18 | 2019-01-24 | Sony Corporation | Robust mesh tracking and fusion by using part-based key frames and priori model |
CN110480634A (zh) * | 2019-08-08 | 2019-11-22 | 北京科技大学 | 一种针对机械臂运动控制的手臂引导运动控制方法 |
CN111144263A (zh) * | 2019-12-20 | 2020-05-12 | 山东大学 | 一种建筑工人高坠事故预警方法及装置 |
CN112084878A (zh) * | 2020-08-14 | 2020-12-15 | 浙江工业大学 | 一种用于判别作业人员姿态规范程度的方法 |
Non-Patent Citations (1)
Title |
---|
XIN HU: "Coarse-to-Fine Activity Annotation and Recognition Algorithm for Solitary Older Adults", 《SPECIAL SECTION ON MOBILE MULTIMEDIA: METHODOLOGY AND APPLICATIONS》 * |
Cited By (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113368487A (zh) * | 2021-06-10 | 2021-09-10 | 福州大学 | 基于OpenPose的3D私人健身系统及其工作方法 |
CN113392758A (zh) * | 2021-06-11 | 2021-09-14 | 北京科技大学 | 一种面向救援培训的行为检测与效果评价的方法及装置 |
CN113392765B (zh) * | 2021-06-15 | 2023-08-01 | 广东工业大学 | 一种基于机器视觉的摔倒检测方法和系统 |
CN113392765A (zh) * | 2021-06-15 | 2021-09-14 | 广东工业大学 | 一种基于机器视觉的摔倒检测方法和系统 |
CN113643419B (zh) * | 2021-06-29 | 2024-04-23 | 清华大学 | 一种基于深度学习的人体反向动力学求解方法 |
CN113643419A (zh) * | 2021-06-29 | 2021-11-12 | 清华大学 | 一种基于深度学习的人体反向动力学求解方法、装置 |
US20230004740A1 (en) * | 2021-06-30 | 2023-01-05 | Ubtech North America Research And Development Center Corp | Human lying posture detection method and mobile machine using the same |
US12051263B2 (en) * | 2021-06-30 | 2024-07-30 | Futronics (Na) Corporation | Human lying posture detection method and mobile machine using the same |
CN113488145A (zh) * | 2021-07-15 | 2021-10-08 | 厦门大学附属心血管病医院 | 疼痛评估关节部位选择方法及选择装置 |
CN113538696A (zh) * | 2021-07-20 | 2021-10-22 | 广州博冠信息科技有限公司 | 特效生成方法、装置、存储介质及电子设备 |
CN113920578A (zh) * | 2021-09-08 | 2022-01-11 | 哈尔滨工业大学(威海) | 一种智能居家瑜伽教练信息处理系统、方法、终端、介质 |
CN113876437A (zh) * | 2021-09-13 | 2022-01-04 | 上海微创医疗机器人(集团)股份有限公司 | 存储介质、机器人系统以及计算机设备 |
CN113876437B (zh) * | 2021-09-13 | 2024-02-23 | 上海微创医疗机器人(集团)股份有限公司 | 存储介质、机器人系统以及计算机设备 |
CN113781207A (zh) * | 2021-09-15 | 2021-12-10 | 杭银消费金融股份有限公司 | 基于实验设计的风控管理策略确定方法及系统 |
CN113781207B (zh) * | 2021-09-15 | 2022-04-01 | 杭银消费金融股份有限公司 | 基于实验设计的风控管理策略确定方法及系统 |
CN114093024A (zh) * | 2021-09-24 | 2022-02-25 | 张哲为 | 人体动作的识别方法、装置、设备及存储介质 |
CN113878595A (zh) * | 2021-10-27 | 2022-01-04 | 上海清芸机器人有限公司 | 基于树莓派的仿人实体机器人系统 |
CN114099234B (zh) * | 2021-11-23 | 2023-08-22 | 复旦大学 | 一种用于辅助康复训练的智能化康复机器人数据处理方法及系统 |
CN114099234A (zh) * | 2021-11-23 | 2022-03-01 | 复旦大学 | 一种用于辅助康复训练的智能化康复机器人数据处理方法及系统 |
CN114093030A (zh) * | 2021-11-23 | 2022-02-25 | 杭州中科先进技术研究院有限公司 | 一种基于人体姿态学习的射击训练分析方法 |
CN114187992A (zh) * | 2021-12-08 | 2022-03-15 | 福寿康(上海)医疗养老服务有限公司 | 基于视频ai分析老年肢体动作并自动生成检测报告的方法 |
CN114638744A (zh) * | 2022-03-03 | 2022-06-17 | 厦门大学 | 人体姿态迁移方法及装置 |
CN114638744B (zh) * | 2022-03-03 | 2024-07-26 | 厦门大学 | 人体姿态迁移方法及装置 |
CN114973397B (zh) * | 2022-03-21 | 2024-07-05 | 苏州大学 | 一种实时工序检测系统、方法及存储介质 |
CN114973397A (zh) * | 2022-03-21 | 2022-08-30 | 苏州大学 | 一种实时工序检测系统、方法及存储介质 |
CN114782987B (zh) * | 2022-03-28 | 2023-06-20 | 西南交通大学 | 一种基于深度相机监督的毫米波雷达姿态识别方法 |
CN114782987A (zh) * | 2022-03-28 | 2022-07-22 | 西南交通大学 | 一种基于深度相机监督的毫米波雷达姿态识别方法 |
TWI790152B (zh) * | 2022-03-31 | 2023-01-11 | 博晶醫電股份有限公司 | 動作判定方法、動作判定裝置及電腦可讀儲存媒體 |
CN114440884A (zh) * | 2022-04-11 | 2022-05-06 | 天津果实科技有限公司 | 一种智能矫姿设备用人体身姿的智能分析方法 |
WO2023199357A1 (en) * | 2022-04-13 | 2023-10-19 | Garg Dr Suruchi | A system of identifying plurality of parameters of a subject's skin and a method thereof |
CN114998779B (zh) * | 2022-04-29 | 2024-08-20 | 西安交通大学 | 一种自监督人体行为识别方法及系统 |
CN114998779A (zh) * | 2022-04-29 | 2022-09-02 | 西安交通大学 | 一种自监督人体行为识别方法及系统 |
CN115083015A (zh) * | 2022-06-09 | 2022-09-20 | 广州紫为云科技有限公司 | 一种3d人体姿态估计数据标注方式和对应的模型构建方法 |
CN115083015B (zh) * | 2022-06-09 | 2024-04-16 | 广州紫为云科技有限公司 | 一种3d人体姿态估计数据标注方式和对应的模型构建方法 |
CN115205737A (zh) * | 2022-07-05 | 2022-10-18 | 北京甲板智慧科技有限公司 | 基于Transformer模型的运动实时计数方法和系统 |
CN115568823A (zh) * | 2022-09-21 | 2023-01-06 | 汕头大学 | 一种人体平衡能力评估的方法、系统和装置 |
CN115937895B (zh) * | 2022-11-11 | 2023-09-19 | 南通大学 | 一种基于深度相机的速度与力量反馈系统 |
CN115937895A (zh) * | 2022-11-11 | 2023-04-07 | 南通大学 | 一种基于深度相机的速度与力量反馈系统 |
CN115563556A (zh) * | 2022-12-01 | 2023-01-03 | 武汉纺织大学 | 一种基于智能可穿戴设备的人体体态预测方法 |
CN118447581A (zh) * | 2024-07-08 | 2024-08-06 | 乐山师范学院 | 手语识别模型训练方法、识别方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112861624A (zh) | 一种人体姿态检测方法、系统、存储介质、设备及终端 | |
Jiang et al. | Seeing invisible poses: Estimating 3d body pose from egocentric video | |
CN109635727A (zh) | 一种人脸表情识别方法及装置 | |
Li et al. | Abnormal sitting posture recognition based on multi-scale spatiotemporal features of skeleton graph | |
Singh et al. | Human pose estimation using convolutional neural networks | |
CN109241881A (zh) | 一种人体姿态估计方法 | |
CN113435236A (zh) | 居家老人姿态检测方法、系统、存储介质、设备及应用 | |
Wei et al. | Real-time facial expression recognition for affective computing based on Kinect | |
Fang et al. | Dynamic gesture recognition using inertial sensors-based data gloves | |
Chonggao | Simulation of student classroom behavior recognition based on cluster analysis and random forest algorithm | |
CN111914643A (zh) | 一种基于骨骼关键点检测的人体动作识别方法 | |
CN113901891A (zh) | 帕金森病握拳任务的评估方法及系统、存储介质及终端 | |
CN117671738B (zh) | 基于人工智能的人体姿态识别系统 | |
CN114049683A (zh) | 基于三维人体骨架模型的愈后康复辅助检测系统、方法、介质 | |
Thang et al. | Estimation of 3-D human body posture via co-registration of 3-D human model and sequential stereo information | |
CN115661856A (zh) | 一种基于Lite-HRNet的自定义康复训练监测与评估方法 | |
CN111046715B (zh) | 一种基于图像检索的人体动作对比分析方法 | |
Muhamada et al. | Review on recent computer vision methods for human action recognition | |
CN115222882A (zh) | 基于人体运动视频的模型构建方法、装置及存储介质 | |
Liu et al. | Key algorithm for human motion recognition in virtual reality video sequences based on hidden markov model | |
CN114550299A (zh) | 基于视频的老年人日常生活活动能力评估系统和方法 | |
Liu et al. | Action recognition for sports video analysis using part-attention spatio-temporal graph convolutional network | |
Wang et al. | GaitParsing: Human semantic parsing for gait recognition | |
Masullo et al. | CaloriNet: From silhouettes to calorie estimation in private environments | |
CN111310655A (zh) | 基于关键帧和组合注意力模型的人体动作识别方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210528 |
|
RJ01 | Rejection of invention patent application after publication |