热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

优化姿态估计模型【个人实验记录】

本文主要分享【原理是怎样的】,技术文章【优化姿态估计模型【个人实验记录】】为【Ctrl_Cver】投稿,如果你遇到深度学习相关问题,本文相关知识或能到你。原理是怎样的前言(连载中)本文是个人优

本文主要分享【原理是怎样的】,技术文章【优化姿态估计模型【个人实验记录】】为【Ctrl_Cver】投稿,如果你遇到深度学习相关问题,本文相关知识或能到你。

原理是怎样的

前言(连载中)

本文是个人优化实验的记录,若读者对实验有兴趣,请点赞并评论,后续我会把代码开源。本文优化了一个regression-based 轻量级姿态估计模型,最终速度未知,最终精度未知。实验大部分参考了镜子大佬知乎的优化过程。

配置 框架mmpose。数据集为mpii,16个关键点,评价指标为pckh。训练使用四块3090显卡。 配置文件组成

不同实验的配置文件如下,训练完成会在workdir下根据配置文件名生成不同的文件夹。

优化姿态估计模型【个人实验记录】

实验 第一部分,dsnt 首先确认 (1) baseline(regression-based),与镜子大佬一样,本文使用的baseline为shufflev2+deeppose的方案,直接回归出关节坐标点。然后以heatmap-based的方法 (2) shufflev2+heatmap为target,本文将实现一个精度和速度均超过target的regression-based 轻量级姿态估计模型; 实验结果如下: 推理耗时计算方法,转成onnx计算单张图片推理耗时一千次,取50:950的均值,耗时计算偶尔会有1ms的波动,仅供参考

优化姿态估计模型【个人实验记录】


可以看到,regression-based方法比heatmap-based方法精度低许多,但是regression-based方法可以直接得到坐标点,不需要后处理。backbone输出特征图维度(b,1024,8,8),使用一个卷积得到(b,16,8,8) 论文dsnt对输出的特征图求期望得到(b,16,2)个关键点,并使用js散度进行正则化。dsnt可以隐式的利用了heatmap学到的特征,比直接回归坐标有更高的精度。实验结果如下,js散度有个超参数sigma,根据经验 高斯核的一般取 sigma = n/64*2,n为特征图大小,所以这里sigma取 0.25最好。dsnt的损失由两部分组成,一是js散度,二是pred和gt的mse。

优化姿态估计模型【个人实验记录】

正则化js散度有个权重,具体实验如下。js散度对最终的精度影响不大,所以后续实验 默认取1

优化姿态估计模型【个人实验记录】

实验11 把adam优化器换成了adamw,实验12 在11的基础上把四张卡训练换成了一张卡,实验13 在11的基础上把epoch增加到了310。一,实验4和实验11对比,可知adamw有用。二,实验11和12对比,单卡训练比多卡训练精度高,原因具体参考链接。另外增大epoch没有效果,说明已经收敛了。

优化姿态估计模型【个人实验记录】

在实验11的基础上,加上实验2训练得到的backbone,使用它初始化我们模型的bacbone。最终的结果如下:

优化姿态估计模型【个人实验记录】


第一部分完结,最终的模型为:
input: 256*256,  backbone: shufflev2 1.0x, 
output 64*1024*8*8, 
no neck, 
decode: one conv 64*16*8*8, 
with dsnt, sigma 0.25, mse_w 1, js_w 1, adamw, hm预训练权重

总结:dsnt sigma 0.25 + mse_w=1 + js_w=1 + adamw + hm预训练权重 = 提升精度

第二部分,rle

iccv2021 rle,flow模型概念。简单来说,回归模型回归出坐标点和伸缩尺度,flow模型估计差值分布。最终坐标 = 伸缩尺度*差值分布+回归出的坐标。inference时假设预测得到的 回归坐标=最终坐标,所以丢弃了flow模型。为了添加rle,backbone出来分为两个分支,一个用作dsnt回归坐标;另外一个用于rle预测分布。

实验一加上rle,得到实验15。实验16加上了预训练权重。实验17在15上加上了dsnt。实验18在15的基础上加上了dsnt和预训练权重。到这一步,损失由dsnt的损失和rle的损失构成。实验19-21为无用实验,对一些权重进行了调整。实验22把backbone的宽度为2.0,得到了扩大bacbone后heatmap-based方法的精度。实验23在18的基础上扩大了bacbone,并使用了22的权重。实验24,在18的基础上对bacbone输出的特征图反卷积两次扩大输出特征图。

优化姿态估计模型【个人实验记录】


总结:rle+hm权重+dsnt+扩大输出分辨率 = 提高精度。另外,加大backbone的深度也可以提高精度,这里忽略,后续继续使用 shufflev2 x1的backbone。 第三部分,simcc

待续~

本文《优化姿态估计模型【个人实验记录】》版权归Ctrl_Cver所有,引用优化姿态估计模型【个人实验记录】需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • vue使用
    关键词: ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • MySQL多表数据库操作方法及子查询详解
    本文详细介绍了MySQL数据库的多表操作方法,包括增删改和单表查询,同时还解释了子查询的概念和用法。文章通过示例和步骤说明了如何进行数据的插入、删除和更新操作,以及如何执行单表查询和使用聚合函数进行统计。对于需要对MySQL数据库进行操作的读者来说,本文是一个非常实用的参考资料。 ... [详细]
author-avatar
mobiledu2502901927
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有