CN111611895B - 一种基于OpenPose的多视角人体骨架自动标注方法 - Google Patents
一种基于OpenPose的多视角人体骨架自动标注方法 Download PDFInfo
- Publication number
- CN111611895B CN111611895B CN202010410738.0A CN202010410738A CN111611895B CN 111611895 B CN111611895 B CN 111611895B CN 202010410738 A CN202010410738 A CN 202010410738A CN 111611895 B CN111611895 B CN 111611895B
- Authority
- CN
- China
- Prior art keywords
- data
- size
- convolution kernels
- step length
- output
- 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.)
- Active
Links
- 238000002372 labelling Methods 0.000 title claims abstract description 10
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000001514 detection method Methods 0.000 claims abstract description 20
- 238000010586 diagram Methods 0.000 claims abstract description 17
- 238000000605 extraction Methods 0.000 claims abstract description 14
- 238000012217 deletion Methods 0.000 claims abstract description 7
- 230000037430 deletion Effects 0.000 claims abstract description 7
- 238000005070 sampling Methods 0.000 claims description 25
- 210000003127 knee Anatomy 0.000 claims description 12
- 239000013598 vector Substances 0.000 claims description 9
- 230000000295 complement effect Effects 0.000 claims description 8
- 230000007812 deficiency Effects 0.000 claims description 3
- 210000003414 extremity Anatomy 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 claims description 3
- 238000012935 Averaging Methods 0.000 claims 1
- 238000012549 training Methods 0.000 abstract description 12
- 230000009471 action Effects 0.000 abstract description 11
- 238000012216 screening Methods 0.000 abstract description 9
- 238000013500 data storage Methods 0.000 abstract description 3
- 230000007547 defect Effects 0.000 abstract description 2
- 239000000284 extract Substances 0.000 description 8
- 210000002683 foot Anatomy 0.000 description 8
- 210000003423 ankle Anatomy 0.000 description 6
- 230000008859 change Effects 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 101100194362 Schizosaccharomyces pombe (strain 972 / ATCC 24843) res1 gene Proteins 0.000 description 2
- 101100194363 Schizosaccharomyces pombe (strain 972 / ATCC 24843) res2 gene Proteins 0.000 description 2
- 210000000988 bone and bone Anatomy 0.000 description 2
- 210000001217 buttock Anatomy 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000008034 disappearance Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 210000000707 wrist Anatomy 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
一种基于OpenPose的多视角人体骨架自动标注方法属于无人驾驶技术领域,解决现有公开数据集大多为人工标注,耗时长,成本高且标注不标准等缺点。本发明将采集的多视角数据进行标注,为多视角行人动作识别模型训练提供数据储备。本发明首先对采集的多视视频数据进行读取、再通过改进的Yolov3网络进行行人检测、过滤掉不包含行人的图片,并对检测到的人体包围框bounding box(bbox)进行切割提取生成新的图片image‑c,将image‑c依次输入OpenPose人体骨架提取网络,去除复杂背景的影响,对针对骨架图不同的缺失情况,利用不同的方法进行补全,筛选,最终输出完整的骨架图。
Description
技术领域
本发明是一种基于OpenPose的多视角人体骨架自动标注方法,属于无人驾驶技术领域。
背景技术
安全性是无人驾驶技术研究成果转化成产品的重要需求。为了保证自主驾驶的安全性,需要车辆对周边的车辆,路面信息,交通信息以及行人进行准确感知。自主驾驶车辆应能够识别行人的动作,理解行人的意图并作出决策,使人车进行良好的交互。
目前行人动作的数据都是单一视角采集的,在单一视角下,当发生行人之间互相遮挡,行人被其他物体遮挡等情况,会对准确检测行人和行人动作识别产生一定的影响。如果只是对单一视角的图像进行检测,效率不高,影响自主驾驶的安全性。在多视数据下,不同视角的数据可以相互补充,以提高复杂场下下的行人检测与动作识别效率。但没有多视角的行人动作数据集,故进行了多视角下的行人动作数据采集,现有公开数据集大多为人工标注,耗时长,成本高且标注不标准等缺点。
发明内容
针对上述问题,本发明提供一种基于OpenPose的多视角人体骨架自动标注方法,将采集的多视角数据进行标注,为多视角行人动作识别模型训练提供数据储备。本发明首先对采集的多视视频数据进行读取、再通过改进的Yolov3网络进行行人检测、过滤掉不包含行人的图片,并对检测到的人体包围框bounding box(bbox)进行切割提取生成新的图片image-c,将image-c依次输入OpenPose人体骨架提取网络,去除复杂背景的影响,对针对骨架图不同的缺失情况,利用不同的方法进行补全,筛选,最终输出完整的骨架图。
具体步骤如下:
步骤1:视频读取,通过OpenCV中的VideoCapture函数直接读取本地视频,要求为RGB视频;
步骤2:行人检测,本发明提出先对视频做预处理,先把视频中的行人目标检测出来。通过改进的Yolov3网络得到人体包围框bounding box(bbox),并对bbox进行切割提取成新的图片image-c,去除复杂背景的影响;
步骤3:人体骨架提取,将步骤2的image-c依次输入OpenPose人体骨架提取网路,提取输出出人体的15个关节点,并将关节点划分为重要关节点和非重要关节点;
步骤4:非重要关节点补全,利用最近邻特征加权法和分段多项式回归对非重要关节点缺失值进行预测;
步骤5:重要关节点补全及筛选,利用多视角数据的互补性,对缺失的重要关节点进行补全并筛选,若对应三个视角的骨架数据中重要关节点都缺失,则抛弃该帧的数据。
在步骤1中,要求输入的视频数据为RGB格式的。
在步骤2中,需要进行动态行人检测,因为使用OpenPose直接从视频数据中提取人体骨架,需要做较大的全局运算。经过实验发现,如果视频中目标较小,则OpenPose不能把人体骨架提取出来。本发明提出先对视频做预处理,先把视频中的行人目标检测出来,再把数据传输到OpenPose网络进行骨架提取,去除复杂背景的影响;
本发明利用改进的Yolov3网络进行动态行人检测。Yolov3借鉴ResNet,FPN网络的思想,添加跨层跳跃连接,融合粗细粒度的特征,能更好地实现小目标检测。增加了多尺度预测,每种尺度预测3个box,anchor的设计方式仍然使用聚类,得到9个聚类中心,将其按照大小均分给3中尺度。
尺度1:在基础网络之后添加一些卷积层再输出box信息,输出大小为13x13。
尺度2:从尺度1中的倒数第二层的卷积层上采样(x2)再与最后一个26x26大小的特征图相加,再次通过多个卷积后输出box信息。相比尺度1变大两倍。
尺度3:从尺度2中的倒数第二层的卷积层上采样(x2)再与最后一个52x52大小的特征图相加,再次通过多个卷积后输出box信息,输出尺度大小为52x52。网络结构图如图2所示,下面详细说明网络中的组件。
DBL模块:如图2左下角所示,也就是代码中的Darknetconv2d_BN_Leaky,是Yolov3的基本组件。就是卷积+BN+Leaky Relu。对于Yolov3来说,BN和Leaky Relu已经是和卷积层不可分离的部分了(最后一层卷积除外),共同构成了最小组件。
Res_Unit模块:残差单元,主要也是由DBL模块构成并加入残差网络shortcut的优点,是网络字很深的情况下仍能收敛,避免梯度消失。
Resn模块:n代表数字,有res1,res2…res8等等,表示这个res_block里含有多少个残差单元(res_unit)。这是Yolov3的大组件,Yolov3开始借鉴了ResNet的残差结构,使用这种结构可以让网络结构更深,更好地表征特征。对于res_block的解释,可以在图2的右下角直观看到,其基本组件也是DBL。
concat:张量拼接。将darknet中间层和后面的某一层的上采样进行拼接。拼接的操作和残差层add的操作是不一样的,拼接会扩充张量的维度,而add只是直接相加不会导致张量维度的改变。
layers数量一共有252层,包括add层23层(主要用于res_block的构成,每个res_unit需要一个add层,一共有1+2+8+8+4=23层)。除此之外,BN层和LeakyReLU层数量完全一样,为72层,在网络结构中的表现为:每一层BN后面都会接一层LeakyReLU。卷积层一共有75层,其中有72层后面都会接BN+LeakyReLU的组合构成基本组件DBL。看结构图,可以发现上采样和concat都有2次,每个res_block都会用上一个零填充,一共有5个res_block。
网络输入为RGB图片,数据大小为416*416*3;
⑴经过一个DBL模块,使用32个大小为3*3的卷积核,步长为1,得到416*416*32的输出数据;接着使用64个大小为3*3的卷积核,步长为2,得到数据大小为208*208*64;
⑵经过Res1模块,包含1个残差单元,使用32个大小为1*1的卷积核,步长为1,得到208*208*32的输出数据;接着使用64个大小为3*3的卷积核,步长为1,得到208*208*64的数据,再将此数据结果与输入数据相加,最后输出数据大小为208*208*64的;
⑶接着经过DBL模块,使用128个大小为3*3的卷积核,步长为2,得到数据大小为104*104*128;
⑷经过Res2模块,包含2个残差单元,先使用64个大小为1*1的卷积核,步长为1,得到104*104*64的输出数据;接着使用128个大小为3*3的卷积核,步长为1,得到104*104*128的数据,再将此数据结果与输入数据相加,最后输出数据大小为104*104*128;
⑸接着经过DBL模块,使用256个大小为3*3的卷积核,步长为2,得到数据大小为52*52*256;
⑹经过Res8模块,包含8个残差单元,先使用128个大小为1*1的卷积核,步长为1,得到52*52*128的输出数据;接着使用256个大小为3*3的卷积核,步长为1,得到52*52*256的数据,再将此数据结果与输入数据相加,最后输出数据大小为52*52*256;
⑺接着经过DBL模块,使用512个大小为3*3的卷积核,步长为2,得到数据大小为26*26*512;
⑻经过Res8模块,包含8个残差单元,先使用256个大小为1*1的卷积核,步长为1,得到26*26*256的输出数据;接着使用512个大小为3*3的卷积核,步长为1,得到26*26*512的数据,将此数据结果与输入数据相加,最后输出数据大小为26*26*512;
⑼接着经过DBL模块,使用1024个大小为3*3的卷积核,步长为2,得到数据大小为13*13*1024;
⑽经过Res4模块,包含4个残差单元,先使用512个大小为1*1的卷积核,步长为1,得到13*13*512的输出数据;接着使用1024个大小为3*3的卷积核,步长为1,得到13*13*1024的数据,再讲次数据与Res1层的输入数据相加,最后输出数据大小为13*13*1024;
⑾经过5个DBL模块,使用的卷积核顺序为:512个大小为1*1的卷积核,步长为1,得到13*13*512的输出数据;1024个大小为3*3的卷积核,步长为1,得到13*13*1024的数据;512个大小为1*1的卷积核,步长为1,得到13*13*512的输出数据;1024个大小为3*3的卷积核,步长为1,得到13*13*1024的数据;再经过512个大小为1*1的卷积核,步长为1,最后输出数据大小为13*13*512;
⑿将⑾的输出结果经过256个大小为1*1的卷积核,步长为1,得到输出数据为13*13*256,再经过2倍上采样,输出数据为26*26*256,与⑻的输出结果进行拼接,得到的额输出数据为26*26*768;再经过5个DBL模块,使用的卷积核顺序为:256个大小为1*1的卷积核,步长为1,得到26*26*256的输出数据;512个大小为3*3的卷积核,步长为1,得到26*26*512的数据;256个大小为1*1的卷积核,步长为1,得到26*26*256的输出数据,512个大小为3*3的卷积核,步长为1,得到26*26*512的数据;再经过256个大小为1*1的卷积核,步长为1,最后输出数据大小为26*26*256;
⒀将⑿的输出结果经过128个大小为1*1的卷积核,步长为1,得到输出数据为26*26*128,再经过2倍上采样,输出数据为52*52*128,与⑹的输出结果进行拼接,得到的额输出数据为52*52*384;再经过5个DBL模块,使用的卷积核顺序为:128个大小为1*1的卷积核,步长为1,得到52*52*128的输出数据,256个大小为3*3的卷积核,步长为1,得到52*52*256的数据;128个大小为1*1的卷积核,步长为1,得到52*52*128的输出数据,256个大小为3*3的卷积核,步长为1,得到52*52*256的数据;再经过128个大小为1*1的卷积核,步长为1,最后输出数据大小为52*52*128;
⒁将⑾的输出数据经过256个大小为1*1的卷积核,步长为1,输出数据为13*13*256,再经过2倍上采样得到输出数据为26*26*256。
⒂同时将⒀的输出数据经过256个大小为1*1的卷积核,步长为1,输出数据为52*52*256,再经过2倍下采样得到输出数据为26*26*256。
⒃将⒀、⒁、⒂的数据相加去平均。若Cl代表不同尺度的特征数据,则C1代表13*13尺度的数据,C2代表26*26尺度的数据,C3代表52*52尺度的数据,经过⒁、⒂步骤,已将C1与C3的数据resize到C2尺度。则C的数据大小为26*26*256。
⒄再次将C降采样到C1尺度,经过512个大小为1*1的卷积核,步长为1,输出数据为26*26*256,再经过2倍下采样得到输出数据为13*13*512,将输出结果与⑾的结果进行拼接,得到13*13*1024的输出数据,再经过18个大小为1*1的卷积核,步长为1,输出预测结果y1,数据大小为13*13*18;
⒅再次将C输出结果与⑿的输出结果进行拼接,得到数据大小为26*26*512,再经过18个大小为1*1的卷积核,步长为1,输出预测结果y2,数据大小为26*26*18;
⒆将C降采样到C3尺度,经过128个大小为1*1的卷积核,步长为1,输出数据为26*26*128,再经过2倍上采样得到输出数据为52*52*128,将输出结果与⒀的结果进行拼接,得到52*52*256的输出数据,再经过18个大小为1*1的卷积核,步长为1,输出预测结果y3,数据大小为52*52*18。
具体实验步骤如下:
步骤2-1:COCO数据集预处理,利用COCO数据集训练行人检测模型,需要先对数据集进行预处理,过滤掉其他类别的数据,只对含有person类别的数据进行训练,加快训练速度。
步骤2-2:利用Yolov3网络训练行人检测模型,修改配置文件,设定学习率为0.001,batch为64,subdivision=16,检测的目标数为1,网络的输出为每一个Cell 18((3*(4+1+1))=18)个输出参数,使得网络的计算量减小,训练语句:./darknet detectortrain cfg/coco.data cfg/yolov3.cfg darknet53.conv.74
步骤2-3:利用训练得到的yolov3.weights进行视频中的行人检测。
步骤2-4:设计图片切割模块Crop_module,在利用改进的Yolov3算法检测出行人后,对含有行人的图片进行裁剪,从而切割提取产生为新的图片Picture-crop,Picture-crop图片尺寸大小要求符合OpenPose网络输入图片尺寸要求。
在步骤3中,在得到步骤2中输入的数据之后,利用OpenPose提取人体骨架,OpenPose网络结构如图3所示。OpenPose库采用分阶段的网络模型,先通过VGG19深度模型的前十层,并利用fineturned方式提取基础的特征,然后利用这些特征,分阶段的训练人体个关节点在图像上的位置概率和人体个关节点之间的相邻关系,最后结合这个关节点位置概率和相邻关系,把关节点拼接起来得到了最终的人体骨架估计。其结果一般表示为每个关节点在该视角获得的图像下像素级的置信度热图(Confidence Heatmap),这样便得到了人体不同关节点在各个视角图像下的位置估计。OpenPose提取出的骨架如图4所示。
OpenPose提取估骨架节点为25个,包括:鼻子-0,脖子-1,右肩-2,右肘-3,右手腕-4,左肩-5,左肘-6,左手腕-7,8-胯中心,9-右臀,10-右膝,11-右踝,12-左臀,13-左膝,14-左踝,15-右眼,16-左眼,17-右耳,18-左耳,19-左脚内,20-左脚外,21-左脚跟,22-右脚内,23-右脚外,24-右脚跟。但本项目应用于行人动作识别项目,故删减去一些对动作识别影响不大的骨骼节点,留下15个骨架节点。并将15个关节点划分为两部分:重要关节点和非重要关节点。重要关节点分为上半身和下半身,上半身重要关节点包括:2-右肩、5-左肩、3-右肘、6-左肘;下半身重要关节点包括:9-右胯、12-左胯、10-右膝、13-左膝。其余7个关节点为非重要关节点。定义的骨架关节点与标号对应关系如表1所示:
表1:骨骼节点与标号与标号对应关系
在步骤4中,对得到的各个视角骨中非重要关节点进行补全,当人体某一部位被遮挡时,或者是人体侧身对着摄像头时,OpenPose提取的骨架图会丢失部分关键点,但是后续用于动作识别的CNN网络要求输入的骨架图关键点数量是一定的,需要对缺失的骨架图关节点进行补全。
在人体关节点数据提取中,数据的缺失是随机的,甚至会发生在相邻的几帧中,而且视频流中相同位置的关节顶数据具有连续变化、波动性大的特征。本发明引入最近邻特征加权法和分段多项式回归对非重要关节点缺失值进行预测。具体步骤如下:
用S=(V,E)表示获得的一个人体骨架信息,其中V=(v0,v1,...,v14}表示的是关节位置集合,E=(e0,e1,...,e13}表示关节向量集合。
定义1关节位置(Joint position,JP)。将第t帧视频中第j个关节点的位置定义为vj(t)=(xtj,ytj),关节点i的位置定义为vi(t)=(xti,yti),其中i,j∈(0,1,...,14}。
定义2关节向量(Joint Vector,JV)。根据关节点位置信息对肢体的有效部分进行关节向量提取,表示方式为eij=vj(t)-vi(t),其中i,j∈(0,1,...,24}。
步骤4-1:获取视频流中人体骨架信息关节点数据,及关节点对应的视频帧的序数。
步骤4-2:对缺失点进行最近邻帧特征加权预测得到值给定缺失值vi(t)(表示第t帧最近邻的第i个关节点数据不发生缺失的两帧分别为第t1帧、第t2帧,并且满足t1<t<t2,且tj∈T,T表示视频流的总帧数。
步骤4-3:根据缺失值所在的帧数位置对整个数据集进行二分段,对每段数据集采用回归多项式进行缺失值预测得到缺失帧前后两段视频流预测值:
vbefor=yj;j=0,1,...,i-1
vafter=yj;j=i+1,i+2,...,n
其中,yj表示回归多项式预测的结果。
步骤4-4:对两种情况下预测的结果进行加权得到最终的预测值
通过以上4个步骤,能够对非重要关节点的缺失数据做预测。
在步骤5中,利用多视角数据对重要骨架关节点进行补全,并对整个骨架图进行筛选。通过OpenPose网络提取骨架图有一个缺点:行人相互之间的遮挡以及自身的遮挡问题导致部分骨架节点无法检测到,通过多数据的互补性可以对缺失的数据通进行补全。在多视角行人动作识别这一特定环境下,在得到不同视角的人体骨架之后,通过对不同视角的人体骨架信息分析,在主视角发生遮挡的情况下,利用次视角骨架信息对主视角骨架信息进行补全,补全方案如下:
如果tl不为零,而tc与tr为零,则用tl数据补全另外两个视角的数据,即tc=tl,tr=tl;如果tr不为零,而tc与tl为零,则用tr数据补全另外两个视角的数据,即tc=tr,tl=tr;tl代表左侧视角的第t帧骨架数据,tc代表中间视角的第t帧骨架数据,tr代表右侧视角的第t帧骨架数据。
通过对不同情况下的缺失值做补全后,再对整个骨架图进行筛选。若所有视角中对应的同一帧数据,上半身所有重要关节点(2,5,3,6)或者下半身所有重要关节点(9,12,10,13)均未被检测到,就抛弃该帧对应的三个视角的数据。
本发明与现有技术相比,具有如下优点与有益效果:
1.对Yolov3网络结构进行改进,改进后的网络能够更好地利用多个层级的特征做预测,更准确地检测视频中存在的行人目标,改进的Yolov3算法实时性与准确度都高于其他目标检测网络,并合理训练改进得到单一行人目标检测网络,使得检测速度更快,可以先一步过滤掉一些不包含行人的负样本数据,减少后续人体骨架提取的成本。
2.本发明选用OpenPose进行人体骨架提取,OpenPose在接收到利用人体包围框裁剪过后的图片,对图片中的行人作骨架提取,可以更快速高效地进行骨架提取。
3.本发明为了解决因为遮挡而产生的骨架信息缺失问题,将人体关节点划分为重要关节点和非重要关节点,针对不同关节点的缺失问题,利用不同的方法进行补全。
附图说明
下面结合附图对本发明作进一步描述。
图1为本发明的流程图
图2为改进的Yolov3网络结构图
图3为OpenPose网络结构图
图4为人体骨架示意图(包含15个人体关节点)
具体实施方式
下面结合附图与具体实施方式,对本发明作进一步说明。
本实施例所提供的一种基于OpenPose的多视角人体骨架自动标注方法,对采集的多视角数据进行标注,为多视角行人动作识别模型训练提供数据储备。本发明首先对采集的多视视频数据进行读取、再通过改进的Yolov3网络对行人目标进行检测、过滤掉不包含行人的图片,并对检测到的人体包围框bounding box(bbox)进行切割提取生成新的图片image-c,去除复杂背景的影响。接着将image-c依次输入OpenPose人体骨架提取网络,针对骨架图不同的缺失情况,利用不同的方法进行补全,筛选,最终输出完整的骨架图。本发明的方法流程图如图1所示,具体情况如下:
步骤1:视频读取,通过OpenCV中的VideoCapture函数直接读取本地视频,要求为RGB视频;
步骤2:行人检测,本发明提出先对视频做预处理,先把视频中的行人目标检测出来。通过改进的Yolov3网络得到人体包围框bounding box(bbox),并对bbox进行切割提取成新的图片image-c,去除复杂背景的影响;
步骤3:人体骨架提取,将步骤2的image-c依次输入OpenPose人体骨架提取网路,提取输出出人体的15个关节点,并将关节点划分为重要关节点和非重要关节点;
步骤4:非重要关节点补全,利用最近邻特征加权法和分段多项式回归对非重要关节点缺失值进行预测;
步骤5:重要关节点补全及筛选,利用多视角数据的互补性,对缺失的重要关节点进行补全并筛选,若连续30帧三个视角的骨架数据重要关节点都缺失,则抛弃这30帧的数据。
在步骤1中,要求输入的视频数据为RGB格式的。
在步骤2中,需要进行动态行人检测,因为使用OpenPose直接从视频数据中提取人体骨架,需要做较大的全局运算。经过实验发现,如果视频中目标较小,则OpenPose不能把人体骨架提取出来。本发明提出先对视频做预处理,先把视频中的行人目标检测出来,再把数据传输到OpenPose网络进行骨架提取,去除复杂背景的影响;
本发明利用改进的Yolov3网络进行动态行人检测。Yolov3借鉴ResNet,FPN网络的思想,添加跨层跳跃连接,融合粗细粒度的特征,能更好地实现小目标检测。增加了多尺度预测,每种尺度预测3个box,anchor的设计方式仍然使用聚类,得到9个聚类中心,将其按照大小均分给3中尺度。
尺度1:在基础网络之后添加一些卷积层再输出box信息,输出大小为13x13。
尺度2:从尺度1中的倒数第二层的卷积层上采样(x2)再与最后一个26x26大小的特征图相加,再次通过多个卷积后输出box信息。相比尺度1变大两倍。
尺度3:从尺度2中的倒数第二层的卷积层上采样(x2)再与最后一个52x52大小的特征图相加,再次通过多个卷积后输出box信息,输出尺度大小为52x52。网络结构图如图2所示,下面详细说明网络中的组件。
DBL模块:如图2左下角所示,也就是代码中的Darknetconv2d_BN_Leaky,是Yolov3的基本组件。就是卷积+BN+Leaky Relu。对于Yolov3来说,BN和Leaky Relu已经是和卷积层不可分离的部分了(最后一层卷积除外),共同构成了最小组件。
Res_Unit模块:残差单元,主要也是由DBL模块构成并加入残差网络shortcut的优点,是网络字很深的情况下仍能收敛,避免梯度消失。
Resn模块:n代表数字,有res1,res2…res8等等,表示这个res_block里含有多少个残差单元(res_unit)。这是Yolov3的大组件,Yolov3开始借鉴了ResNet的残差结构,使用这种结构可以让网络结构更深,更好地表征特征。对于res_block的解释,可以在图2的右下角直观看到,其基本组件也是DBL。
concat:张量拼接。将darknet中间层和后面的某一层的上采样进行拼接。拼接的操作和残差层add的操作是不一样的,拼接会扩充张量的维度,而add只是直接相加不会导致张量维度的改变。
layers数量一共有252层,包括add层23层(主要用于res_block的构成,每个res_unit需要一个add层,一共有1+2+8+8+4=23层)。除此之外,BN层和LeakyReLU层数量完全一样,为72层,在网络结构中的表现为:每一层BN后面都会接一层LeakyReLU。卷积层一共有75层,其中有72层后面都会接BN+LeakyReLU的组合构成基本组件DBL。看结构图,可以发现上采样和concat都有2次,每个res_block都会用上一个零填充,一共有5个res_block。
网络输入为RGB图片,数据大小为416*416*3;
⑴经过一个DBL模块,使用32个大小为3*3的卷积核,步长为1,得到416*416*32的输出数据;接着使用64个大小为3*3的卷积核,步长为2,得到数据大小为208*208*64;
⑵经过Res1模块,包含1个残差单元,使用32个大小为1*1的卷积核,步长为1,得到208*208*32的输出数据;接着使用64个大小为3*3的卷积核,步长为1,得到208*208*64的数据,再将此数据结果与输入数据相加,最后输出数据大小为208*208*64的;
⑶接着经过DBL模块,使用128个大小为3*3的卷积核,步长为2,得到数据大小为104*104*128;
⑷经过Res2模块,包含2个残差单元,先使用64个大小为1*1的卷积核,步长为1,得到104*104*64的输出数据;接着使用128个大小为3*3的卷积核,步长为1,得到104*104*128的数据,再将此数据结果与输入数据相加,最后输出数据大小为104*104*128;
⑸接着经过DBL模块,使用256个大小为3*3的卷积核,步长为2,得到数据大小为52*52*256;
⑹经过Res8模块,包含8个残差单元,先使用128个大小为1*1的卷积核,步长为1,得到52*52*128的输出数据;接着使用256个大小为3*3的卷积核,步长为1,得到52*52*256的数据,再将此数据结果与输入数据相加,最后输出数据大小为52*52*256;
⑺接着经过DBL模块,使用512个大小为3*3的卷积核,步长为2,得到数据大小为26*26*512;
⑻经过Res8模块,包含8个残差单元,先使用256个大小为1*1的卷积核,步长为1,得到26*26*256的输出数据;接着使用512个大小为3*3的卷积核,步长为1,得到26*26*512的数据,将此数据结果与输入数据相加,最后输出数据大小为26*26*512;
⑼接着经过DBL模块,使用1024个大小为3*3的卷积核,步长为2,得到数据大小为13*13*1024;
⑽经过Res4模块,包含4个残差单元,先使用512个大小为1*1的卷积核,步长为1,得到13*13*512的输出数据;接着使用1024个大小为3*3的卷积核,步长为1,得到13*13*1024的数据,再讲次数据与Res1层的输入数据相加,最后输出数据大小为13*13*1024;
⑾经过5个DBL模块,使用的卷积核顺序为:512个大小为1*1的卷积核,步长为1,得到13*13*512的输出数据;1024个大小为3*3的卷积核,步长为1,得到13*13*1024的数据;512个大小为1*1的卷积核,步长为1,得到13*13*512的输出数据;1024个大小为3*3的卷积核,步长为1,得到13*13*1024的数据;再经过512个大小为1*1的卷积核,步长为1,最后输出数据大小为13*13*512;
⑿将⑾的输出结果经过256个大小为1*1的卷积核,步长为1,得到输出数据为13*13*256,再经过2倍上采样,输出数据为26*26*256,与⑻的输出结果进行拼接,得到的额输出数据为26*26*768;再经过5个DBL模块,使用的卷积核顺序为:256个大小为1*1的卷积核,步长为1,得到26*26*256的输出数据;512个大小为3*3的卷积核,步长为1,得到26*26*512的数据;256个大小为1*1的卷积核,步长为1,得到26*26*256的输出数据,512个大小为3*3的卷积核,步长为1,得到26*26*512的数据;再经过256个大小为1*1的卷积核,步长为1,最后输出数据大小为26*26*256;
⒀将⑿的输出结果经过128个大小为1*1的卷积核,步长为1,得到输出数据为26*26*128,再经过2倍上采样,输出数据为52*52*128,与⑹的输出结果进行拼接,得到的额输出数据为52*52*384;再经过5个DBL模块,使用的卷积核顺序为:128个大小为1*1的卷积核,步长为1,得到52*52*128的输出数据,256个大小为3*3的卷积核,步长为1,得到52*52*256的数据;128个大小为1*1的卷积核,步长为1,得到52*52*128的输出数据,256个大小为3*3的卷积核,步长为1,得到52*52*256的数据;再经过128个大小为1*1的卷积核,步长为1,最后输出数据大小为52*52*128;
⒁将⑾的输出数据经过256个大小为1*1的卷积核,步长为1,输出数据为13*13*256,再经过2倍上采样得到输出数据为26*26*256。
⒂同时将⒀的输出数据经过256个大小为1*1的卷积核,步长为1,输出数据为52*52*256,再经过2倍下采样得到输出数据为26*26*256。
⒃将⒀、⒁、⒂的数据相加取平均。若Cl代表不同尺度的特征数据,则C1代表13*13尺度的数据,C2代表26*26尺度的数据,C3代表52*52尺度的数据,经过⒁、⒂步骤,已将C1与C3的数据resize到C2尺度。则C的数据大小为26*26*256。
⒄再次将C降采样到C1尺度,经过512个大小为1*1的卷积核,步长为1,输出数据为26*26*256,再经过2倍下采样得到输出数据为13*13*512,将输出结果与⑾的结果进行拼接,得到13*13*1024的输出数据,再经过18个大小为1*1的卷积核,步长为1,输出预测结果y1,数据大小为13*13*18;
⒅再次将C输出结果与⑿的输出结果进行拼接,得到数据大小为26*26*512,再经过18个大小为1*1的卷积核,步长为1,输出预测结果y2,数据大小为26*26*18;
⒆将C降采样到C3尺度,经过128个大小为1*1的卷积核,步长为1,输出数据为26*26*128,再经过2倍上采样得到输出数据为52*52*128,将输出结果与⒀的结果进行拼接,得到52*52*256的输出数据,再经过18个大小为1*1的卷积核,步长为1,输出预测结果y3,数据大小为52*52*18。
具体实验步骤如下:
步骤2-1:COCO数据集预处理,利用COCO数据集训练行人检测模型,需要先对数据集进行预处理,过滤掉其他类别的数据,只对含有person类别的数据进行训练,加快训练速度。
步骤2-2:利用Yolov3网络训练行人检测模型,修改配置文件,设定学习率为0.001,batch为64,subdivision=16,检测的目标数为1,网络的输出为每一个Cell 18((3*(4+1+1))=18)个输出参数,使得网络的计算量减小,训练语句:./darknet detectortrain cfg/coco.data cfg/yolov3.cfg darknet53.conv.74
步骤2-3:利用训练得到的yolov3.weights进行视频中的行人检测。
步骤2-4:设计图片切割模块Crop_module,在利用改进的Yolov3算法检测出行人后,对含有行人的图片进行裁剪,从而切割提取产生为新的图片Picture-crop,Picture-crop图片尺寸大小要求符合OpenPose网络输入图片尺寸要求。
在步骤3中,在得到步骤2中输入的数据之后,利用OpenPose提取人体骨架,OpenPose网络结构如图3所示。OpenPose库采用分阶段的网络模型,先通过VGG19深度模型的前十层,并利用fineturned方式提取基础的特征,然后利用这些特征,分阶段的训练人体个关节点在图像上的位置概率和人体个关节点之间的相邻关系,最后结合这个关节点位置概率和相邻关系,把关节点拼接起来得到了最终的人体骨架估计。其结果一般表示为每个关节点在该视角获得的图像下像素级的置信度热图(Confidence Heatmap),这样便得到了人体不同关节点在各个视角图像下的位置估计。OpenPose提取出的骨架如图4所示。
OpenPose提取估骨架节点为25个,包括:鼻子-0,脖子-1,右肩-2,右肘-3,右手腕-4,左肩-5,左肘-6,左手腕-7,8-胯中心,9-右臀,10-右膝,11-右踝,12-左臀,13-左膝,14-左踝,15-右眼,16-左眼,17-右耳,18-左耳,19-左脚内,20-左脚外,21-左脚跟,22-右脚内,23-右脚外,24-右脚跟。但本项目应用于行人动作识别项目,故删减去一些对动作识别影响不大的骨骼节点,留下15个骨架节点。并将15个关节点划分为两部分:重要关节点和非重要关节点。重要关节点分为上半身和下半身,上半身重要关节点包括:2-右肩、5-左肩、3-右肘、6-左肘;下半身重要关节点包括:9-右胯、12-左胯、10-右膝、13-左膝。其余7个关节点为非重要关节点。定义的骨架关节点与标号对应关系如表1所示:
表1:骨骼节点与标号与标号对应关系
编号 | 名称 | 编号 | 名称 |
0 | 鼻子(Nose) | 1 | 脖子(Neck) |
2 | 右肩(Rshoulder) | 3 | 右肘(Relbow) |
4 | 右手腕(Rwrist) | 5 | 左肩(Lshoulder) |
6 | 左肘(Lelbow) | 7 | 左手腕(Lwrist) |
8 | 胯中心(Crotch center) | 9 | 右臀(Rhip) |
10 | 右膝(Rkeen) | 11 | 右踝(Rankle) |
12 | 左臀(Lhip) | 13 | 左膝(Lkeen) |
14 | 左踝(Lankle) |
在步骤4中,对得到的各个视角骨中非重要关节点进行补全,当人体某一部位被遮挡时,或者是人体侧身对着摄像头时,OpenPose提取的骨架图会丢失部分关键点,但是后续用于动作识别的CNN网络要求输入的骨架图关键点数量是一定的,需要对缺失的骨架图关节点进行补全。
在人体关节点数据提取中,数据的缺失是随机的,甚至会发生在相邻的几帧中,而且视频流中相同位置的关节顶数据具有连续变化、波动性大的特征。本发明引入最近邻特征加权法和分段多项式回归对非重要关节点缺失值进行预测。具体步骤如下:
用S=(V,E)表示获得的一个人体骨架信息,其中V={v0,v1,...,v14}表示的是关节位置集合,E={e0,e1,...,e13}表示关节向量集合。
定义1关节位置(Joint position,JP)。将第t帧视频中第j个关节点的位置定义为vj(t)=(xtj,ytj),关节点i的位置定义为vi(t)=(xti,yti),其中i,j∈{0,1,...,14}。
定义2关节向量(Joint Vector,JV)。根据关节点位置信息对肢体的有效部分进行关节向量提取,表示方式为eij=vj(t)-vi(t),其中i,j∈{0,1,...,24}。
步骤4-1:获取视频流中人体骨架信息关节点数据,及关节点对应的视频帧的序数。
步骤4-2:对缺失点进行最近邻帧特征加权预测得到值给定缺失值vi(t)(表示第t帧最近邻的第i个关节点数据不发生缺失的两帧分别为第t1帧、第t2帧,并且满足t1<t<t2,且tj∈T,T表示视频流的总帧数。
步骤4-3:根据缺失值所在的帧数位置对整个数据集进行二分段,对每段数据集采用回归多项式进行缺失值预测得到缺失帧前后两段视频流预测值:
vbefor=yj;j=0,1,...,i-1
vafter=yj;j=i+1,i+2,...,n
其中,yj表示回归多项式预测的结果。
步骤4-4:对两种情况下预测的结果进行加权得到最终的预测值
通过以上4个步骤,能够对非重要关节点的确实数据做预测。
在步骤5中,利用多视角数据对重要骨架关节点进行补全。通过OpenPose网络提取骨架图有一个缺点:行人相互之间的遮挡以及自身的遮挡问题导致部分骨架节点无法检测到,通过多数据的互补性可以对缺失的数据通进行补全。在多视角行人动作识别这一特定环境下,在得到不同视角的人体骨架之后,通过对不同视角的人体骨架信息分析,在主视角发生遮挡的情况下,利用次视角骨架信息对主视角骨架信息进行补全,补全方案如下:
如果tl不为零,而tc与tr为零,则用tl数据补全另外两个视角的数据,即tc=tl,tr=tl;如果tr不为零,而tc与tl为零,则用tr数据补全另外两个视角的数据,即tc=tr,tl=tr;tl代表左侧视角的第t帧骨架数据,tc代表中间视角的第t帧骨架数据,tr代表右侧视角的第t帧骨架数据。
通过对不同情况下的缺失值做补全后,再对整个骨架图进行筛选。若所有视角中对应的同一帧数据,上半身所有重要关节点(2,5,3,6)或者下半身所有重要关节点(9,12,10,13)均未被检测到,就抛弃该帧对应的三个视角的数据。
以上所述,仅是本发明的较佳实施例而已,并非对本发明的结构作任何形式上的限制。凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均属于本发明的技术方案范围内。
Claims (1)
1.一种基于OpenPose的多视角人体骨架自动标注方法,其特征在于,包括以下步骤:
步骤1:视频读取,通过OpenCV中的VideoCapture函数直接读取本地视频,要求为RGB视频;
步骤2:行人检测,通过改进的Yolov3网络得到人体包围框boundingbox(bbox),将原来通过Yolov3获取的C1,C3尺度的特征resize操作,即对C1尺度特征进行2倍上采样操作得到C2尺度,对C3尺度特征进行2倍下采样操作得到C2尺度,再对C1,C2,C3三者取平均得到新的特征值C,即C1,C2,C3分别表示13*13、26*26、52*52尺度;之后再将C2尺度的特征值进行rescale操作,即对C2进行2倍下采样操作,得到C1尺度,进行2倍上采样操作,得到C3尺度,并与darknet得到的原特征进行Concat操作,对三个不同尺度的bbox进行预测,通过图片切割提取模块Crop-module将最终得到的bbox切割提取为新的图片,image-c,尺寸为365*654;
DBL模块:也就是代码中的Darknetconv2d_BN_Leaky,是Yolov3的基本组件;就是卷积+BN+LeakyReLU;对于Yolov3来说,最后一层卷积除外,BN和LeakyReLU已经是和卷积层不可分离的部分了,共同构成了最小组件;
Res_Unit模块:残差单元;
Resn模块:n代表数字,表示这个res_block里含有多少个残差单元;concat:
张量拼接;将darknet中间层和后面的某一层的上采样进行拼接;
layers数量一共有252层,包括add层23层,每个Res_Unit需要一个add层,一共有1+2+8+8+4=23层;除此之外,BN层和LeakyReLU层数量完全一样,为72层,在网络结构中的表现为:每一层BN后面都会接一层LeakyReLU;卷积层一共有75层,其中有72层后面都会接BN+LeakyReLU的组合构成基本组件DBL;
上采样和concat都有2次,每个res_block都会用上一个零填充,一共有5个res_block;
网络输入为RGB图片,数据大小为416*416*3;
⑴经过一个DBL模块,使用32个大小为3*3的卷积核,步长为1,得到416*416*32的输出数据;接着使用64个大小为3*3的卷积核,步长为2,得到数据大小为208*208*64;
⑵经过Res1模块,包含1个残差单元,使用32个大小为1*1的卷积核,步长为1,得到208*208*32的输出数据;接着使用64个大小为3*3的卷积核,步长为1,得到208*208*64的数据,再将此数据结果与输入数据相加,最后输出数据大小为208*208*64的;
⑶接着经过DBL模块,使用128个大小为3*3的卷积核,步长为2,得到数据大小为104*104*128;
⑷经过Res2模块,包含2个残差单元,先使用64个大小为1*1的卷积核,步长为1,得到104*104*64的输出数据;接着使用128个大小为3*3的卷积核,步长为1,得到104*104*128的数据,再将此数据结果与输入数据相加,最后输出数据大小为104*104*128;
⑸接着经过DBL模块,使用256个大小为3*3的卷积核,步长为2,得到数据大小为52*52*256;
⑹经过Res8模块,包含8个残差单元,先使用128个大小为1*1的卷积核,步长为1,得到52*52*128的输出数据;接着使用256个大小为3*3的卷积核,步长为1,得到52*52*256的数据,再将此数据结果与输入数据相加,最后输出数据大小为52*52*256;
⑺接着经过DBL模块,使用512个大小为3*3的卷积核,步长为2,得到数据大小为26*26*512;
⑻经过Res8模块,包含8个残差单元,先使用256个大小为1*1的卷积核,步长为1,得到26*26*256的输出数据;接着使用512个大小为3*3的卷积核,步长为1,得到26*26*512的数据,将此数据结果与输入数据相加,最后输出数据大小为26*26*512;
⑼接着经过DBL模块,使用1024个大小为3*3的卷积核,步长为2,得到数据大小为13*13*1024;
⑽经过Res4模块,包含4个残差单元,先使用512个大小为1*1的卷积核,步长为1,得到13*13*512的输出数据;接着使用1024个大小为3*3的卷积核,步长为1,得到13*13*1024的数据,再讲次数据与Res1层的输入数据相加,最后输出数据大小为13*13*1024;
⑾经过5个DBL模块,使用的卷积核顺序为:512个大小为1*1的卷积核,步长为1,得到13*13*512的输出数据;1024个大小为3*3的卷积核,步长为1,得到13*13*1024的数据;512个大小为1*1的卷积核,步长为1,得到13*13*512的输出数据;1024个大小为3*3的卷积核,步长为1,得到13*13*1024的数据;再经过512个大小为1*1的卷积核,步长为1,最后输出数据大小为13*13*512;
⑿将⑾的输出结果经过256个大小为1*1的卷积核,步长为1,得到输出数据为13*13*256,再经过2倍上采样,输出数据为26*26*256,与⑻的输出结果进行拼接,得到的额输出数据为26*26*768;再经过5个DBL模块,使用的卷积核顺序为:256个大小为1*1的卷积核,步长为1,得到26*26*256的输出数据;512个大小为3*3的卷积核,步长为1,得到26*26*512的数据;256个大小为1*1的卷积核,步长为1,得到26*26*256的输出数据,512个大小为3*3的卷积核,步长为1,得到26*26*512的数据;再经过256个大小为1*1的卷积核,步长为1,最后输出数据大小为26*26*256;
⒀将⑿的输出结果经过128个大小为1*1的卷积核,步长为1,得到输出数据为26*26*128,再经过2倍上采样,输出数据为52*52*128,与⑹的输出结果进行拼接,得到的额输出数据为52*52*384;再经过5个DBL模块,使用的卷积核顺序为:128个大小为1*1的卷积核,步长为1,得到52*52*128的输出数据,256个大小为3*3的卷积核,步长为1,得到52*52*256的数据;128个大小为1*1的卷积核,步长为1,得到52*52*128的输出数据,256个大小为3*3的卷积核,步长为1,得到52*52*256的数据;再经过128个大小为1*1的卷积核,步长为1,最后输出数据大小为52*52*128;
⒁将⑾的输出数据经过256个大小为1*1的卷积核,步长为1,输出数据为13*13*256,再经过2倍上采样得到输出数据为26*26*256;
⒂同时将⒀的输出数据经过256个大小为1*1的卷积核,步长为1,输出数据为52*52*256,再经过2倍下采样得到输出数据为26*26*256;
⒃将⒀、⒁、⒂的数据相加去平均;若Cl代表不同尺度的特征数据,则C1代表13*13尺度的数据,C2代表26*26尺度的数据,C3代表52*52尺度的数据,经过⒁、⒂步骤,已将C1与C3的数据resize到C2尺度,则C的数据大小为26*26*256;
⒄再次将C降采样到C1尺度,经过512个大小为1*1的卷积核,步长为1,输出数据为26*26*256,再经过2倍下采样得到输出数据为13*13*512,将输出结果与⑾的结果进行拼接,得到13*13*1024的输出数据,再经过18个大小为1*1的卷积核,步长为1,输出预测结果y1,数据大小为13*13*18;
⒅再次将C输出结果与⑿的输出结果进行拼接,得到数据大小为26*26*512,再经过18个大小为1*1的卷积核,步长为1,输出预测结果y2,数据大小为26*26*18;
⒆将C降采样到C3尺度,经过128个大小为1*1的卷积核,步长为1,输出数据为26*26*128,再经过2倍上采样得到输出数据为52*52*128,将输出结果与⒀的结果进行拼接,得到52*52*256的输出数据,再经过18个大小为1*1的卷积核,步长为1,输出预测结果y3,数据大小为52*52*18;
步骤3:人体骨架提取,将步骤2的image-c依次输入OpenPose人体骨架提取网络得到25个关节点,并剔除部分关节点,输出出人体的15个关节点,并将关节点划分为重要关节点和非重要关节点,重要关节点分为上半身和下半身,上半身重要关节点包括:2-右肩、5-左肩、3-右肘、6-左肘;下半身重要关节点包括:9-右胯、12-左胯、10-右膝、13-左膝;其余7个关节点为非重要关节点;
步骤4:非重要关节点补全,利用最近邻特征加权法和分段多项式回归对非重要关节点缺失值进行预测;
用S=(V,E)表示获得的一个人体骨架信息,其中V={v0,v1,…,v14}表示的是关节位置集合,E={e01,e12,…,eij},表示关节向量集合;
定义1关节位置(Joint position,JP);将第t帧视频中第j个关节点的位置定义为vj(t)=(xtj,ytj),关节点i的位置定义为vi(t)=(xti,yti),其中i,j∈{0,1,…,14};
定义2关节向量(Joint Vector,JV);根据关节点位置信息对肢体的有效部分进行关节向量提取,表示方式为eij=vj(t)-vi(t),其中i,j∈{0,1,…,24};
步骤4-1:获取视频流中人体骨架信息关节点数据,及关节点对应的视频帧的序数;
步骤4-2:对缺失点进行最近邻帧特征加权预测得到值 给定缺失值vi(t)表示第t帧最近邻的第i个关节点数据不发生缺失的两帧分别为第t1帧、第t2帧,并且满足t1<t<t2,且tj∈T,T表示视频流的总帧数;
步骤4-3:根据缺失值所在的帧数位置对整个数据集进行二分段,对每段数据集采用回归多项式进行缺失值预测得到缺失帧前后两段视频流预测值:
vbefore=yj;j=0,1,…,i-1
vafter=yj;j=i+1,i+2,…,n
其中,yj表示回归多项式预测的结果;
步骤4-4:对两种情况下预测的结果进行加权得到最终的预测值
通过以上4个步骤,能够对非重要关节点的缺失数据做预测;
步骤5:重要关节点补全及筛选,利用多视角数据的互补性,对缺失的重要关节点进行补全并筛选;
如果tl不为零,而tc与tr为零,则用tl数据补全另外两个视角的数据,即tc=tl,tr=tl;如果tr不为零,而tc与tl为零,则用tr数据补全另外两个视角的数据,即tc=tr,tl=tr;tl代表左侧视角的第t帧骨架数据,tc代表中间视角的第t帧骨架数据,tr代表右侧视角的第t帧骨架数据;
通过对不同情况下的缺失值做补全后,再对整个骨架图进行筛选;若所有视角中对应的同一帧数据,上半身所有重要关节点2,5,3,6或者下半身所有重要关节点9,12,10,13均未被检测到,就抛弃该帧对应的三个视角的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010410738.0A CN111611895B (zh) | 2020-05-15 | 2020-05-15 | 一种基于OpenPose的多视角人体骨架自动标注方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010410738.0A CN111611895B (zh) | 2020-05-15 | 2020-05-15 | 一种基于OpenPose的多视角人体骨架自动标注方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111611895A CN111611895A (zh) | 2020-09-01 |
CN111611895B true CN111611895B (zh) | 2023-12-19 |
Family
ID=72200333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010410738.0A Active CN111611895B (zh) | 2020-05-15 | 2020-05-15 | 一种基于OpenPose的多视角人体骨架自动标注方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111611895B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112070027B (zh) * | 2020-09-09 | 2022-08-26 | 腾讯科技(深圳)有限公司 | 网络训练、动作识别方法、装置、设备及存储介质 |
CN113158897A (zh) * | 2021-04-21 | 2021-07-23 | 新疆大学 | 一种基于嵌入式YOLOv3算法的行人检测系统 |
US11645874B2 (en) | 2021-06-23 | 2023-05-09 | International Business Machines Corporation | Video action recognition and modification |
CN114333482A (zh) * | 2022-01-07 | 2022-04-12 | 山东众阳健康科技集团有限公司 | 一种基于混合现实技术的虚拟解剖教学系统 |
CN117635897B (zh) * | 2024-01-26 | 2024-05-07 | 腾讯科技(深圳)有限公司 | 三维对象的姿态补全方法、装置、设备、存储介质及产品 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104167016A (zh) * | 2014-06-16 | 2014-11-26 | 西安工业大学 | 一种基于rgb彩色与深度图像的三维运动重建方法 |
CN109508688A (zh) * | 2018-11-26 | 2019-03-22 | 平安科技(深圳)有限公司 | 基于骨架的行为检测方法、终端设备及计算机存储介质 |
CN109977827A (zh) * | 2019-03-17 | 2019-07-05 | 浙江大学 | 一种使用多视图匹配方法的多人三维姿态估计方法 |
CN110135375A (zh) * | 2019-05-20 | 2019-08-16 | 中国科学院宁波材料技术与工程研究所 | 基于全局信息整合的多人姿态估计方法 |
CN110210323A (zh) * | 2019-05-09 | 2019-09-06 | 浙江大学 | 一种基于机器视觉的溺水行为在线识别方法 |
EP3537377A1 (en) * | 2018-03-06 | 2019-09-11 | Sony Corporation | Automated tracking and retaining of an articulated object in a sequence of image frames |
GB201910975D0 (en) * | 2019-08-01 | 2019-09-18 | Sony Interactive Entertainment Inc | System and method for generating user inputs for a video game |
CN110322495A (zh) * | 2019-06-27 | 2019-10-11 | 电子科技大学 | 一种基于弱监督深度学习的场景文本分割方法 |
CA3042819A1 (en) * | 2018-05-09 | 2019-11-09 | Postureco, Inc. | Method and system for postural analysis and measuring anatomical dimensions from a digital image using machine learning |
CN110502965A (zh) * | 2019-06-26 | 2019-11-26 | 哈尔滨工业大学 | 一种基于计算机视觉人体姿态估计的施工安全帽佩戴监测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI662514B (zh) * | 2018-09-13 | 2019-06-11 | 緯創資通股份有限公司 | 跌倒偵測方法以及使用此方法的電子系統 |
-
2020
- 2020-05-15 CN CN202010410738.0A patent/CN111611895B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104167016A (zh) * | 2014-06-16 | 2014-11-26 | 西安工业大学 | 一种基于rgb彩色与深度图像的三维运动重建方法 |
EP3537377A1 (en) * | 2018-03-06 | 2019-09-11 | Sony Corporation | Automated tracking and retaining of an articulated object in a sequence of image frames |
CA3042819A1 (en) * | 2018-05-09 | 2019-11-09 | Postureco, Inc. | Method and system for postural analysis and measuring anatomical dimensions from a digital image using machine learning |
CN109508688A (zh) * | 2018-11-26 | 2019-03-22 | 平安科技(深圳)有限公司 | 基于骨架的行为检测方法、终端设备及计算机存储介质 |
CN109977827A (zh) * | 2019-03-17 | 2019-07-05 | 浙江大学 | 一种使用多视图匹配方法的多人三维姿态估计方法 |
CN110210323A (zh) * | 2019-05-09 | 2019-09-06 | 浙江大学 | 一种基于机器视觉的溺水行为在线识别方法 |
CN110135375A (zh) * | 2019-05-20 | 2019-08-16 | 中国科学院宁波材料技术与工程研究所 | 基于全局信息整合的多人姿态估计方法 |
CN110502965A (zh) * | 2019-06-26 | 2019-11-26 | 哈尔滨工业大学 | 一种基于计算机视觉人体姿态估计的施工安全帽佩戴监测方法 |
CN110322495A (zh) * | 2019-06-27 | 2019-10-11 | 电子科技大学 | 一种基于弱监督深度学习的场景文本分割方法 |
GB201910975D0 (en) * | 2019-08-01 | 2019-09-18 | Sony Interactive Entertainment Inc | System and method for generating user inputs for a video game |
Non-Patent Citations (3)
Title |
---|
人体运动生成中的深度学习模型综述;彭淑娟;周兵;柳欣;钟必能;;计算机辅助设计与图形学学报(第06期);195-205 * |
基于Kinect的人体模板化三维模型拟合重建;袁仁奇;徐增波;;丝绸(第10期);34-41 * |
基于贝叶斯CNN和注意力网络的钢轨表面缺陷检测系统;金侠挺;王耀南;张辉;刘理;钟杭;贺振东;;自动化学报(第12期);110-125 * |
Also Published As
Publication number | Publication date |
---|---|
CN111611895A (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111611895B (zh) | 一种基于OpenPose的多视角人体骨架自动标注方法 | |
CN111209810B (zh) | 向可见光与红外图像准确实时行人检测的边界框分割监督深度神经网络架构 | |
CN110490212A (zh) | 钼靶影像处理设备、方法和装置 | |
CN110135375A (zh) | 基于全局信息整合的多人姿态估计方法 | |
CN111507248B (zh) | 一种低分辨热力图的人脸额头区域检测与定位方法及其系统 | |
CN110188807A (zh) | 基于级联超分辨率网络与改进Faster R-CNN的隧道行人目标检测方法 | |
CN113065578B (zh) | 一种基于双路区域注意力编解码的图像视觉语义分割方法 | |
CN108647625A (zh) | 一种表情识别方法及装置 | |
CN112464701B (zh) | 基于轻量化特征融合ssd的人员是否佩戴口罩检测方法 | |
CN109815945A (zh) | 一种基于图像识别的呼吸道检查结果判读系统和方法 | |
CN112488034A (zh) | 基于轻量化人脸口罩检测模型的视频处理方法 | |
CN110991274A (zh) | 一种基于混合高斯模型和神经网络的行人摔倒检测方法 | |
CN116129291A (zh) | 一种面向无人机畜牧的图像目标识别方法及其装置 | |
CN113706579A (zh) | 一种基于工厂化养殖的对虾多目标跟踪系统及方法 | |
CN114492634B (zh) | 一种细粒度装备图片分类识别方法及系统 | |
WO2022257314A1 (zh) | 图像检测方法和相关训练方法及相关装置、设备及介质 | |
Liang | Improved EfficientDET algorithm for basketball players’ upper limb movement trajectory recognition | |
CN117011932A (zh) | 一种奔跑行为检测方法、电子设备及存储介质 | |
CN116778214A (zh) | 一种行为检测方法、装置、设备及其存储介质 | |
CN114511798B (zh) | 基于transformer的驾驶员分心检测方法及装置 | |
CN112541469B (zh) | 基于自适应分类的人群计数方法及系统 | |
Lin et al. | A coarse-to-fine pattern parser for mitigating the issue of drastic imbalance in pixel distribution | |
Mao et al. | Power transmission line image segmentation method based on binocular vision and feature pyramid network | |
Fujita | A Fast-RCNN implementation for human silhouette detection in video sequences | |
CN114882596B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |