首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于OpenPose的多视角人体骨架自动标注方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:北京联合大学

摘要:一种基于OpenPose的多视角人体骨架自动标注方法属于无人驾驶技术领域,解决现有公开数据集大多为人工标注,耗时长,成本高且标注不标准等缺点。本发明将采集的多视角数据进行标注,为多视角行人动作识别模型训练提供数据储备。本发明首先对采集的多视视频数据进行读取、再通过改进的Yolov3网络进行行人检测、过滤掉不包含行人的图片,并对检测到的人体包围框boundingboxbbox进行切割提取生成新的图片image‑c,将image‑c依次输入OpenPose人体骨架提取网络,去除复杂背景的影响,对针对骨架图不同的缺失情况,利用不同的方法进行补全,筛选,最终输出完整的骨架图。

主权项:1.一种基于OpenPose的多视角人体骨架自动标注方法,其特征在于,包括以下步骤:步骤1:视频读取,通过OpenCV中的VideoCapture函数直接读取本地视频,要求为RGB视频;步骤2:行人检测,通过改进的Yolov3网络得到人体包围框boundingboxbbox,将原来通过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关节位置Jointposition,JP;将第t帧视频中第j个关节点的位置定义为vjt=xtj,ytj,关节点i的位置定义为vit=xti,yti,其中i,j∈{0,1,…,14};定义2关节向量JointVector,JV;根据关节点位置信息对肢体的有效部分进行关节向量提取,表示方式为eij=vjt-vit,其中i,j∈{0,1,…,24};步骤4-1:获取视频流中人体骨架信息关节点数据,及关节点对应的视频帧的序数;步骤4-2:对缺失点进行最近邻帧特征加权预测得到值给定缺失值vit表示第t帧最近邻的第i个关节点数据不发生缺失的两帧分别为第t1帧、第t2帧,并且满足t1tt2,且tj∈T,T表示视频流的总帧数;步骤4-3:根据缺失值所在的帧数位置对整个数据集进行二分段,对每段数据集采用回归多项式进行缺失值预测得到缺失帧前后两段视频流预测值:vbefore=yj;j=0,1,…,i-1vafter=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均未被检测到,就抛弃该帧对应的三个视角的数据。

全文数据:

权利要求:

百度查询: 北京联合大学 一种基于OpenPose的多视角人体骨架自动标注方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。