首页 通过加速OpenPose推理获取人体姿态的方法

通过加速OpenPose推理获取人体姿态的方法

举报
开通vip

通过加速OpenPose推理获取人体姿态的方法(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN110163116A(43)申请公布日2019.08.23(21)申请号201910347091.9G06N3/04(2006.01)(22)申请日2019.04.26G06N3/08(2006.01)G06N5/04(2006.01)(71)申请人沈阳航空航天大学地址110136辽宁省沈阳市沈北新区道义南大街37号(72)发明人张德园 王俊远 石祥滨 刘芳 武卫东 刘翠微 李照奎 吴杰宏 毕静 颜卓 李浩文 代海龙 杨啸宇 (74)专利...

通过加速OpenPose推理获取人体姿态的方法
(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN110163116A(43)申请公布日2019.08.23(21)申请号201910347091.9G06N3/04(2006.01)(22)申请日2019.04.26G06N3/08(2006.01)G06N5/04(2006.01)(71)申请人沈阳航空航天大学地址110136辽宁省沈阳市沈北新区道义南大街37号(72)发明人张德园 王俊远 石祥滨 刘芳 武卫东 刘翠微 李照奎 吴杰宏 毕静 颜卓 李浩文 代海龙 杨啸宇 (74)专利代理机构沈阳维特专利商标事务所(普通合伙)21229代理人李丹(51)Int.Cl.G06K9/00(2006.01)G06K9/62(2006.01)权利要求书1页说明书3页(54)发明名称通过加速OpenPose推理获取人体姿态的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 (57)摘要本发明公开了一种通过加速OpenPose推理获取人体姿态的方法,包括如下 步骤 新产品开发流程的步骤课题研究的五个步骤成本核算步骤微型课题研究步骤数控铣床操作步骤 :S1:通过OpenCV获取输入的包含人体姿态信息的视频流,并获取单帧图像;S2:对单帧图像进行处理,得到优化模型的输入数据;S3:模型结构重构;S4:降低OpenPose模型中参数的精度;S5:获得优化结果;S6:获取输出数据;S7:获取人体姿态数据。该方法利用TensorRT对OpenPose网络结构进行重构,并优化了网络参数的精度,得到了推理速度快、推理结果准确的优化模型,利用该优化模型可以快速获取人体姿态数据,为模型在实际应用部署中打下良好基础。CN110163116ACN110163116A权 利 要 求 书1/1页1.通过加速OpenPose推理获取人体姿态的方法,其特征在于,包括如下步骤:S1:获取视频流:通过OpenCV获取输入的包含人体姿态信息的视频流,并获取单帧图像,其中,所述图像为3通道的BGR格式的图像;S2:单帧图像处理:创建一个TensorRT的数据缓冲区,该数据缓冲区用于在GPU和内存之间传输数据;创建一个输入数组,大小为N×C×W×H,其中,N表示一次输入到TensorRT中图片的数量,C、H、W分别表示输入图像的通道数量、图像高度和宽度;取出单帧图像中每个通道的数据,并按照BGR的顺序将每个通道的数据分别保存到输入数组中;将输入数组传到TensorRT的数据缓冲区中,作为优化模型的输入;S3:模型结构重构:加载原始OpenPose的模型,获取网络结构,然后通过TensorRT对网络中的卷积层、偏置层和激活层进行重构,将其组合成一层;S4:降低数据精度:使用TensoRT将OpenPose模型中的单精度fp32的参数优化成半精度fp16的参数,得到优化后的OpenPose的模型;S5:获得优化结果:将S2中获得的缓冲数据输入到S4获得的优化后的OpenPose模型中,经过优化的网络推理后,得到优化结果,之后,用该结果更新TensorRT的数据缓冲区;S6:获取输出数据:将数据缓冲区内的更新后的缓冲数据从GPU拷贝到内存中,创建一个和OpenPose网络输出大小相同的数组作为输出数组,将数据缓冲区中的数据保存到输出数组中;S7:获取人体姿态数据:使用OpenPose中生成人体姿态部分算法对输出数组进行处理,得到人体姿态,用于后续人体姿态分析。2CN110163116A说 明 书1/3页通过加速OpenPose推理获取人体姿态的方法技术领域[0001]本发明涉及计算机科学和深度学习技术领域,特别提供了一种通过加速OpenPose推理获取人体姿态的方法,通过重构深度模型的网络结构并缩小模型参数的精度来加速网络推理的速度。背景技术[0002]目前基于深度学习的应用呈现爆炸式增长,图像识别、语音识别、自然语言处理、图像检索等功能已经成为人们日常必须的工具,随之而来对深度学习的推理效率和响应速度则提出了更高的要求;深度学习分为训练和部署两部分,训练的操作一般在线下,需要消耗大量的GPU,相对而言一般会给一个比较大的batchsize,因为它的实时性要求相对较低,一般训练模型给的是128,可以充分的利用GPU设备。但是到推理的时候就不同了,推理只需要做一个前向计算,将输入通过神经网络得出预测的结果。而推理的实际部署有多种可能,可能部署在云端,比如说常见的手机上的语音输入,目前都还是云端的,也就是先将说话人的声音传到云端,云端处理好之后把数据再返回来;还可能部署在嵌入端,比如说嵌入式的摄像头、无人机、机器人或车载的自动驾驶,像这种嵌入式或自动驾驶,它的特点是对实时性要求很高。[0003]在训练这个阶段,如果模型比较慢,可以用更大的集群、更多的机器,做更大的数据并行甚至是模型并行来训练。而部署端不只是成本的问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,如果方法不得当,即使使用特别好GPU,也无法满足推理的实时性要求,因为模型如果做得不好,没有做优化,可能需要二三百毫秒才能做完一次推理,无法应用于实时性要求较高的嵌入端中。发明内容[0004]鉴于此,本发明的目的在于提供一种通过加速OpenPose推理获取人体姿态的方法,以解决OpenPose模型在实际部署时推理时间较长的问题。[0005]本发明提供的通过加速OpenPose推理获取人体姿态的方法对硬件设备要求较低,通过对模型进行重构,能够加速OpenPose推理的速度,为OpenPose应用在实际生活中提供良好的基础。[0006]本发明提供的技术 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 是:通过加速OpenPose推理获取人体姿态的方法,包括如下步骤:[0007]S1:获取视频流:通过OpenCV获取输入的包含人体姿态信息的视频流,并获取单帧图像,其中,所述图像为3通道的BGR格式的图像;[0008]S2:单帧图像处理:创建一个TensorRT的数据缓冲区,该数据缓冲区用于在GPU和内存之间传输数据;创建一个输入数组,大小为N×C×W×H,其中,N表示一次输入到TensorRT中图片的数量,C、H、W分别表示输入图像的通道数量、图像高度和宽度;取出单帧图像中每个通道的数据,并按照BGR的顺序将每个通道的数据分别保存到输入数组中;将输入数组传到TensorRT的数据缓冲区中,作为优化模型的输入;3CN110163116A说 明 书2/3页[0009]S3:模型结构重构:加载原始OpenPose的模型,获取网络结构,然后通过TensorRT对网络中的卷积层、偏置层和激活层进行重构,将其组合成一层;[0010]S4:降低数据精度:使用TensoRT将OpenPose模型中的单精度fp32的参数优化成半精度fp16的参数,得到优化后的OpenPose的模型;[0011]S5:获得优化结果:将S2中获得的缓冲数据输入到S4获得的优化后的OpenPose模型中,经过优化的网络推理后,得到优化结果,之后,用该结果更新TensorRT的数据缓冲区;[0012]S6:获取输出数据:将数据缓冲区内的更新后的缓冲数据从GPU拷贝到内存中,创建一个和OpenPose网络输出大小相同的数组作为输出数组,将数据缓冲区中的数据保存到输出数组中;[0013]S7:获取人体姿态数据:使用OpenPose中生成人体姿态部分算法对输出数组进行处理,得到人体姿态,用于后续人体姿态分析。[0014]本发明提供的一种通过加速OpenPose推理获取人体姿态的方法,通过改变OpenPose网络的结构并降低网络参数的精度可加快网络推理的速度,更快的获取准确的人体姿态数据;首先将输入数据转换成TensorRT中的数据格式,然后使用TensorRT优化OpenPose模型,最后将推理后得到的缓存数据使用OpenPose算法中的方法获取人体的姿态数据。本发明通过TensorRT加速网络的推理过程,一方面优化后的模型占用空间较小,方便部署在实际环境中;另一方面,模型优化后,对硬件的要求较低,在大规模部署中可以节省很多成本。具体实施方式[0015]下面将结合具体的实施方案对本发明进行进一步的解释,但并不局限本发明。[0016]本发明提供了一种通过加速OpenPose推理获取人体姿态的方法,包括如下步骤:[0017]S1:获取视频流:通过OpenCV获取输入的包含人体姿态信息的视频流,并获取单帧图像,其中,所述图像为3通道的BGR格式的图像;[0018]S2:单帧图像处理:创建一个TensorRT的数据缓冲区,该数据缓冲区用于在GPU和内存之间传输数据;创建一个输入数组,大小为N×C×W×H,其中,N表示一次输入到TensorRT中图片的数量,C、H、W分别表示输入图像的通道数量、图像高度和宽度;取出单帧图像中每个通道的数据,并按照BGR的顺序将每个通道的数据分别保存到输入数组中;将输入数组传到TensorRT的数据缓冲区中,作为优化模型的输入;[0019]S3:模型结构重构:加载原始OpenPose的模型,获取网络结构,然后通过TensorRT对网络中的卷积层、偏置层和激活层进行重构,将其组合成一层;[0020]正常的深度学习中,卷积层、偏置层和激活层需要调用三次cuDNN对应的接口,但在TensorRT中会对一些网络层进行合并,目前的网络一方面越来越深,另一方面越来越宽,可能并行做若干个相同大小的卷积,这些卷积计算其实是可以合并到一起来做的,比如OpenPose中的concat层,网络的一个分支得到一个大小为N×38×45×80的矩阵,另一个分支计算得到大小为N×19×45×80的矩阵,N代表输入图片的数量,合并到一起,组成一个大小为N×57×45×80的矩阵,TensorRT也会将这两层直接组合到一起,不需要在网络中定义合并操作;[0021]S4:降低数据精度:使用TensoRT将OpenPose模型中的单精度fp32的参数优化成半4CN110163116A说 明 书3/3页精度fp16的参数,得到优化后的OpenPose的模型;[0022]为了保证模型在训练时的数据精度,网络训练时都使用单精度fp32的数据,但是使用精度高的数据的一个缺点就是在推理时也要经过大量的计算,实验证明,用较低的精度做推理同样可以达到很好的检测效果,所以使用TensoRT将OpenPose模型中的单精度fp32的参数优化成半精度fp16的参数,得到优化后的OpenPose的模型,同时,TensorRT还会调用GPU中的Tensor Core模块,加速网络的推理速度;[0023]S5:获得优化结果:将S2中获得的缓冲数据输入到S4获得的优化后的OpenPose模型中,经过优化的网络推理后,得到优化结果,之后,用该结果更新TensorRT的数据缓冲区;[0024]S6:获取输出数据:将数据缓冲区内的更新后的缓冲数据从GPU拷贝到内存中,创建一个和OpenPose网络输出大小相同的数组作为输出数组,以S2中的例子为例,此处的数组大小为N×57×45×80,将数据缓冲区中的数据保存到输出数组中;[0025]S7:获取人体姿态数据:使用OpenPose中生成人体姿态部分算法对输出数组进行处理,得到人体姿态,用于后续人体姿态分析。[0026]该通过加速OpenPose推理获取人体姿态的方法,通过改变OpenPose网络的结构并降低网络参数的精度可加快网络推理的速度,更快的获取准确的人体姿态数据;首先将输入数据转换成TensorRT中的数据格式,然后使用TensorRT优化OpenPose模型,最后将推理后得到的缓存数据使用OpenPose算法中的方法获取人体的姿态数据。本发明通过TensorRT加速网络的推理过程,一方面优化后的模型占用空间较小,方便部署在实际环境中;另一方面,模型优化后,对硬件的要求较低,在大规模部署中可以节省很多成本。[0027]本发明的具体实施方式是按照递进的方式进行撰写的,着重强调各个实施方案的不同之处,其相似部分可以相互参见。[0028]上面对本发明的实施方式做了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。5
本文档为【通过加速OpenPose推理获取人体姿态的方法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥20.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
woaiwen
暂无简介~
格式:pdf
大小:255KB
软件:PDF阅读器
页数:5
分类:
上传时间:2022-11-05
浏览量:1