版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
16人体姿态估计网络的实现案例分析目录TOC\o"1-3"\h\u21476人体姿态估计网络的实现案例分析 1180501.1数据集和评测指标 1281891.1.1COCO数据集 1160261.1.2评测指标 2261491.2开发框架选择与开发环境 260601.2.1开发框架选择 2289471.3网络结构及其实现 2101381.1.1数据预处理 2219491.1.2轻量化姿态估计网络的具体结构 2185271.1.3轻量化的单人姿态关键点估计网络实现 2252861.1.4自顶至下的轻量化多人姿态关键点估计网络实现 2164731.4网络的移动端部署 2220711.4.1部署所需工具 2107611.4.3Android工程主要模块 31.1数据集和评测指标1.1.1COCO数据集COCO全称是CommonObjectsinContext[17],自2014年微软出资标注开办COCO竞赛后,COCO数据集逐渐成为了目标识别、姿态估计、图像描述等领域中最权威、最重要的标杆。本文所使用的COCO2017数据集中包含有200,000张左右的图片,其中有250,000个人体实例,每个实例标注全身共17个关键点。COCO数据集的标注有五种类型:objectinstance(目标识别)、objectkeypoints(关键点)、imagecaption(图像描述)、stuffsegment(实例分割)和panopticsegment(全景分割);在本文中需要用到其中的关键点类型。标注文件由通用字段和特殊字段组成,其中通用字段中包含有标注对应的图片名称、图片尺寸等通用的相关信息。关键点标注中的特有字段包含有:单目标/多目标:以iscrowd表示,0表示单人,1表示多人。目标边界框信息:以bbox表示,格式为[x,y,width,hight],即边界框的左上角坐标以及边界框的宽和高。关键点信息:以keypoints表示,这是一个长度为3×17的数组,对应到17个关键点,每一个点的数据均为[x,y,v],其中[x,y]表示该关键点的位置,v为标志位(0表示无标注,1表示有标注但不可见,2表示有标注且可见),同时也标注了17个关键点各自的名称。关键点之间的连接:以skeleton表示,这是一个由数个二维数组组成的序列,每一个二维数组都表示其中两个数字所对应的关键点之间需要连接起来。1.1.2评测指标COCO数据集所给出的评测指标有OKS(objectkeypointssimilarity,目标关键17点相似度,计算方法由公式(3-1)给出)、AP(averageprecision,平均精确度,指检测出的关键点中正确的比例)、AR(averagerecall,平均召回率,指目标关键点中被检测出的比例)。OKS=i其中,si表示相应关键点的尺度,δi是相应关键点的一个与尺度相关的参数,di是预测的关键点与实际关键点的欧氏距离,k因此,本文所采用的精确度上的评测指标为mAP(OKS=0.50,0.55,0.60,…,0.90,0.95这十个阈值点AP的平均值),mAR(OKS=0.50,0.55,0.60,…,0.90,0.95这十个阈值点AR的平均值);除此以外,还需要衡量轻量化水平和速度,因此,还增加了Size(输出的模型大小)、Traintime(每个epoch所用的训练时间)、Trainmemory(训练时所占用的显存)、Infertime(测试时识别所用的时间)、Infermemory(以CPU测试时所占用的CPU内存)。1.2开发框架选择与开发环境1.2.1开发框架选择近年来常用的深度学习框架有Google公司开发的TensorFlow[18]、Facebook公司开发的Pytorch[19]两种,此外,还有百度开发的国产深度学习框架PaddlePaddle(飞桨)[20]。(1)TensorFlow这是一个2015年由Google公司在DistBelief的基础之上进行开发,并对代码开源的深度学习框架。相对于其他框架而言,它的主要优势在于巨大的用户社区、丰富的学习资源和成熟的工业化模块。一方面,Google公司为用户提供了如TensorBoard和TFLite这样的优秀的可视化套件和移植工具;另一方面,也很容易在用户社区中找到用于工程实践的开发工具。18但是其缺点也较为明显,各个版本之间区别巨大并且相互之间不能很好地兼容,就导致了环境配置过程极其繁琐,对于学习者而言也难以分辨资源是否还具有时效性;同时,必须先编译再运行的静态图结构和过于细致的API封装也使得基于TensorFlow的神经网络的学习和开发周期十分漫长。(2)PytorchPytorch是由Facebook人工智能研究院于2017年在Torch的基础之上开发并开源的深度学习框架。它的核心追求在于简洁和方便,其作者表示希望该框架能够使用户专注于“想法”而非“实现”。动态图结构使其能够更方便地进行断点调试,简洁明了的封装、从Python继承而来的自动资源管理能力和简洁的编程风格等特性大大增加了代码的可读性,也省去了大量不必要的配置工作。而这一框架的最大问题来自于其尚不成熟的工程应用能力。缺少内置的可视化工具从而不得不寻求第三方工具;PytorchMobile这一移动端部署模块由于面世很晚而现在还几乎没有相关的开源项目和学习资源。(3)PaddlePaddle飞桨框架是百度公司从2018年开发到2020年逐渐完善的国产深度学习框架。与前两种框架由研究到工程的开发过程不同,飞桨框架从第一个版本开始就以工程应用作为目标,其基础模型、套件和各种工具十分完备。同时,作为国产框架,官方提供了大量的中文学习资料以及面向学生的免费算力资源。但与此同时,由于这一框架过于强调“工程”,而导致其在研究方面的表现远远不如其他的框架,由于各种算法与预训练模型的接口并不向用户开放,因此其功能上基本局限于复现和应用,而难以用它进行开发。本文所要完成的工作是在整个毕业设计的时间周期内完成经典网络结构复现、轻量化网络的构建、网络结构的优化以及移动端部署等任务,在对学习周期、研究目标和实现难度等方面的综合考虑之下,选择使用Pytorch框架来完成本文的网络结构。1.2.2开发环境19(1)硬件配置表3-1硬件配置CPUIntelXeonE5-2600v3(16线程)GPUGeForceRTX2080Ti(11G显存)内存32G(2)软件环境表3-2软件环境软件名称版本号Ubuntu(操作系统)16.04Cuda10.0Anaconda4.6.11Python1.7.6Pytorch1.1.0Pycocotools2.0.2AndroidStudio4.2.01.3网络结构及其实现本文中所构建的网络结构大体上基于由残差块级联而成的沙漏堆叠网络而设计,接下来从几个不同的方面介绍本文所构建的网络结构的实现细节。201.1.1数据预处理本文所使用的COCO数据集中的图片尺寸为256×192,而网络的图像输入大小为224×224,因此需要对图片进行裁剪;网络训练学习的并不是像素点的原始数值,而是像素点相对于平均水平的偏移量,因此还需要进行归一化;同时,为了尽可能地提高系统的鲁棒性,通常会进行数据增强。尺寸的处理方面,本文采取了等比例缩放后随机截取的方法,选择先将256×192的图片等比例放大为400×300,再在其中随机截取十张224×224的图像作为网络输入。归一化方法如公式(3-2)所示,式中xi和sxi数据增强方面,本文主要使用图像在[-45°,45°]范围内的随机旋转,图像缩放比例在[0.65,1.35]范围内的多尺度增强,以及图像的随机水平/竖直翻转。同时,由于COCO数据集中半身人像较多,本文还采用了一种半身数据增强[17],即对于关键点数目在8个以上的图片,会将其分割成上半身、下半身和全身三张图片来参与训练和验证。1.1.2轻量化姿态估计网络的具体结构本文所构建的姿态估计网络结构如表3-3、表3-4和图3-1所示。表中尺度的表示形式为“通道数,高度×宽度”,卷积核的表示形式为“[深度,高度×宽度],分组数”。下采样过程,采用分组卷积+激活函数+池化的方式来完成。输入图像中补一个通道的全零输入224×224图像,从而实现了每一个下采样层的输出通道数正好为输入通道数的整数倍,这一倍数即为分组卷积的组数;激活函数全部采用ReLu函数,向网络中加入非线性因素;池化层则是使用2×2的最大池化的方法使得特征图的高度和宽度得以减半,实现下采样。21表3-3沙漏结构中一个下采样过程Stage输入尺度输入名卷积核激活池化输出尺度输出名D14,224×224Input[2,3×3],4ReLuMaxPooling64,112×112Fm0D264,112×112Fm0[2,3×3],64ReLuMaxPooling128,56×56Fm1D3128,56×56Fm1[2,3×3],128ReLuMaxPooling256,28×28Fm2D4256,28×28Fm2[2,3×3],256ReLuMaxPooling512,14×14Fm3D5512,14×14Fm3[2,3×3],512ReLuMaxPooling1024,7×7Fm4下采样过程中,采用反池化+特征图融合的方式完成。反池化部分使用2×2平均反池化方法,即输入特征图中的每一个点,都会在输出中对应成一个2×2矩阵,矩阵中的每一个值都与原来的值相同;特征图融合则直接采取对应位置相加的方法来完成。表3-4沙漏结构中一个上采样过程Stage输入尺度输入名上采样融合的Fm输出尺度输出名U11024,7×7Fm4AverageUnpollingNaN512,14×14Fm5U2512,14×14Fm5AverageUnpollingFm3256,28×28Fm6U3256,28×28Fm6AverageUnpollingFm2128,56×56Fm7U4128,56×56Fm7AverageUnpollingFm164,112×112Fm8U564,112×112Fm8AverageUnpollingFm04,224×224Output将这样的下采样层和上采样层相互级联,即可形成一个沙漏结构,经过多次22卷积提取特征后,又逐渐上采样使输出的特征图尺度恢复至与输入一致。至此就完成了本文网络中一个沙漏结构的构建。图3-1单个沙漏结构示意图本文网络中堆叠了上述的沙漏结构共50层,上一层的输出作为下一层的输入,以迭代方式生成网络反复进行特征提取。与ResNet-50相比,这样的网络具有更高的精度,而分组卷积、全局池化和正则化又可以保证在这一精度下,网络不会过多地占用存储空间和计算资源。1.1.3轻量化的单人姿态关键点估计网络实现本文选择了COCO2017训练集和验证集中标注iscrowd=0(即单人图片)的实例进行训练和测试,选择了SimpleBaseline(ResNet-50)、Hourglass(ResNet-50)、HRNet-W32三种网络进行对比。训练时,Hourglass(ResNet-50骨架)、SimpleBaseline(ResNet-50骨架)、HRNet-W32使用了Pytorch提供的预训练模型先以1e-3的学习率直到第90个epoch,然后以1e-4的学习率直到第120个epoch,最后以1e-5的学习率直到第23140个epoch,保存最后一个epoch的模型输出作为最终的模型;而本网络采用同样的学习率变化但不使用预训练模型。每个epoch中共有4682个实例。四个网络的训练中的Loss和Acc曲线如图3-2图3-2训练Loss(左)和Acc(右)由上图中的曲线可以看出,在前面的epoch中,由于学习率设置得较高而且本网络没有使用预训练模型,所以无论是收敛速度还是精度都与三个对照模型有一定的差距;而在经过学习率调整后,Loss和Acc都逐渐接近于对照模型。受限于时间和硬件条件,本文的工作中并没有进行更多epoch的训练,但由现有的结果也可以大致推断本网络在识别性能上并不落后三个对照模型太多;同时,如果进一步降低学习率,也应当能取得更好的效果。验证时,采用了256×192的图片输入,并以仅CPU模式工作,每个batch中含有20张图片,统计输出mAP和mAR值并报告识别一个batch所用的时间,记录运行时所占用的CPU内存,这些参数与训练每个epoch耗时、训练所占用的显存以及最终得到的模型大小一同在下表中列出。(仅对每种网络结构的最后一个模型即第140个epoch所得到的模型进行验证)24表3-5训练与验证时的性能指标mAPmARSizeTraintimeTrainmemoryInfertimeInfermemoryHourglass74.678.4646.11M305.7s7.2G71.2ms0.52GSimpleBaseline71.675.2318.17M154.3s4.4G65.5ms0.44GHRNet-W3278.881.6851.82M411.2s11G(max)117.1ms0.86Gmymodel71.371.5130.0M231.4s5.6G47.6ms0.45G从验证结果中可以看出,本文的网络在精度方面(mAP和mAR)与对照网络存在着一定差距,尤其是与性能最好的HRNet相比有近10%的落后;训练的耗时与所占显存方面,要优于Hourglass和HRNet,但略差于SimpleBaseline网络;在模型大小和速度上,本文的网络都明显优于三个对照网络。1.1.4自顶至下的轻量化多人姿态关键点估计网络实现(1)由单人姿态估计网络转变为多人姿态估计网络本文所采用的多人姿态估计方法为自顶至下方法,与自底至上方法相比,这一方法精度更高、实现过程更为简便,不需要对原有的单人姿态估计网络进行更改和重新训练而只需要加入一个新的目标检测和分割的模块,但速度会稍慢于自底至上方法。本文在目标检测部分使用如图3-3所示的YOLOv3[21]目标检测网络,这一部分的权重不再进行单独训练,而是直接使用YOLOv3作者提供的训练好的模型,将图片中的每一个人体实例裁剪为新的图像,再输入到之前已完成的单人姿态估计网络中,在验证集上进行验证。25图3-3YOLOv3目标检测网络数据流图[21]多人情形下,采用仅CPU模式,每个batch中含有20张图片的方式进行预测,网络的预测性能如表3-6,其中YOLOv3数据来自于原作者的开源项目。表3-6多人姿态估计网络预测性能mAPmARSizeInfertimeInfermemoryYOLOv360.695.1236.5Mmymodel(单人)71.371.5130.0M47.6ms0.45Gmymodel(多人)67.368.9161.0ms0.66GHourglass(单人)74.678.4646.11M71.2ms0.52GHourglass(多人)69.371.8202.1ms0.72GSimpleBaseline(单人)71.675.2318.17M65.5ms0.44GSimpleBaseline(多人)67.969.2191.7ms0.60G由上表中的验证结果可以明显的看出,将单人的姿态估计网络应用到多人姿态估计后,无论是精度、速度还是占用的内存都不可避免的要差于单人情形下;与Hourglass和SimpleBaseline这两个对照网络相比,本网络依旧保持了单人情形下26精度上的劣势和速度占用上的优势。(2)效果展示选取本网络在预测过程中的部分输入图片与预测结果进行可视化以展示本网络的预测效果,如图3-4所示。图3-4网络预测结果1.4网络的移动端部署1.4.1部署所需工具AndroidStudio是Google公司推出的Android集成开发工具,在IDEA的基础之上,提供了基于Gradle的工程构建、专门针对Android开发的快速重构和修复以及基于向导模板的Android应用开发和签名等功能。由于本文的最终目标是使得前文中所构建实现的网络得以在移动端进行使用,因此选择这一开发工具来进行姿态估计网络在安卓端的部署。TensorFlowLite是Google开发的基于TensorFlow的移动端轻量化解决方案,由于移动端存储空间小、算力低以及内核框架不同的这些特点,TensorFlow采取了许多与PC端不同的策略来优化网络,例如使用不同的内核解释器以便于移动端的CPU来进行处理等。虽然本文网络在PC端是在Pytorch框架下构建并实现的,但Pytorch这一框架的移动端支持却并不完善,即使是官方提供的PytorchMobile方法也存在着过程繁琐、移植效果不好和学习资源稀少的问题。因此,本文采用的TensorFlow框架下常用的TensorFlowLite的方法进行模型的移植。因为TensorFlowLite是基于TensorFlow的轻量化解决方案,因此本文采用了27另一种跨平台的神经网络模型格式.onnx作为中介来进行模型格式的转换。转换过程为.pth(Pytorch模型格式)→.onnx(跨平台模型格式)→.pb(TensorFlow模型格式)→.tflite(TensorFlowLite模型格式)。1.4.2模型的进一步优化TensorFlowLite中内置的优化方法主要有剪枝、量化两种,经过这些处理后,整个模型会在精度几乎不下降的前提下大幅缩减大小。TensorFlowLite具有自动剪枝功能,在指定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中九年级化学 搭建原子的“行星系统”模型 教案
- 师范院校思政专业三年级《德育课程规划与讲堂创设》项目式学习教案
- 2026年毕节地区法检系统书记员招聘笔试参考试题及答案详解
- 初中七年级数学代数式的值知识清单(浙教版)
- 小学六年级英语下册 Unit 1 Visiting Canada 单元整体教学设计
- 2026年邯郸市邯山区法检系统书记员招聘笔试备考题库及答案详解
- 2026年北京市东城区法检系统书记员招聘笔试参考题库及答案详解
- 2025年湖南省演艺集团秋季社会招聘17人笔试历年参考题库附带答案详解
- 2025年延安市中小企业网上招聘高校毕业生(第三期)笔试历年参考题库附带答案详解
- 2025年合肥市蜀山区城市建设投资有限责任公司公开及招聘工作人员23人笔试历年参考题库附带答案详解
- 三级安全教育切割作业测试试题附答案
- 2026年中级注册安全工程师《其他安全实务》能力检测及参考答案详解(模拟题)
- 叉车充电安全须知培训课件
- 医院投诉处理流程标准化手册
- 2025-2026学年黑龙江省齐齐哈尔市建华区八年级(上)期末英语试卷(含答案)
- 2026年护理安全警示教育与质量提升实践
- 兽药GMP基本知识培训
- 特色小镇文化旅游产业开发项目2025年文化创意产业融合与技术创新可行性分析报告
- 土地安置协议书
- 高血压性心脏病护理
- 北京市矢量地图-可改颜色
评论
0/150
提交评论