《Real-time 2D Multi-Person Pose Estimation on CPU:Lightweight OpenPose》论文笔记 Myth丶恋晨 2022-11-30 05:51 122阅读 0赞 参考代码:[lightweight-human-pose-estimation.pytorch][] # 1. 概述 # > 导读:这篇文章是在OpenPose的基础上进行轻量化改进,从而使得整体网络能在Intel的CPU上达到实时的运行效果。对此文章的算法也是相当轻量级的只有410w的参数90亿的浮点运算,是含有两阶段优化OpenPose的15%,但是其AP(Average Precision)只降低了1个点。自然文章对原有OpenPose进行了加多的改进,从而使其在速度上得到提升。 # 2. 方法设计 # OpenPose是bottom-up的关键点检测算法,其运行流程可以分为两个部分,见下图所示: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21fYnVkZHk_size_16_color_FFFFFF_t_70_pic_center] * 1)CNN网络输出两个特征图:关键点heatmaps和PAFs,这里特征图的stride=8; * 2)将关键点按照人进行聚合得到属于这个人的关键点; ## 2.1 OpenPose计算复杂性分析 ## 在OpenPose中使用VGG-19作为其backbone之后添加额外的conv4\_3/conv4\_4卷积层,之后经过initial网络添加5个连接的refinment stage,每个stage是包含两个分支的用于预测关键点位置和PAFs。那么这些网络结构的具体结构和refinement stage带来的具体性能提升见下表1,2所示: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21fYnVkZHk_size_16_color_FFFFFF_t_70_pic_center 1] 从表2可以看到**随着stage的增加其带来的增益其实是比较少的**,从stage1到stage5性能提升了5个点但是计算量提升了一倍。因而可以在性能与时间上进行权衡舍取。 ## 2.2 轻量化Backbone ## 从轻量化网络的角度文章选择**将原OpenPose的VGG-19换成为MobileNet-V1**,并且保持网络中间部分的空间尺度不变,并使用膨胀卷积增加感受野,此外通过添加conv5\_6能够增加精度但是也会增加计算量,文章中 **并没有选择MobileNet-V2,是因为其带来的性能提升并不不好,** 见下表所示: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21fYnVkZHk_size_16_color_FFFFFF_t_70_pic_center 2] ## 2.3 轻量化的Refinement Stage ## 原OpenPose中的优化网是存在优化的点的,文章中将部分网络进行了合并,其结构前后变化见下图2所示: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21fYnVkZHk_size_16_color_FFFFFF_t_70_pic_center 3] 此外文章使用多个 3 ∗ 3 3\*3 3∗3的卷积去替换 7 ∗ 7 7\*7 7∗7的卷积从而减少计算量: ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21fYnVkZHk_size_16_color_FFFFFF_t_70_pic_center 4] ## 2.4 最后的网络结构 ## ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21fYnVkZHk_size_16_color_FFFFFF_t_70_pic_center 5] 文章在后处理上也做了很多的工作,从而在网络处理与后处理上都进行优化从而提升网络的infer速度。比如,将最后的特征图上采样到原始尺寸并不能带来更好的结果,反而适得其反,文章将其变为上采样4倍。此外文章方法的训练过程也是探究的,这部分内容在Git上写得很清楚了。 # 3. 实验结果 # ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21fYnVkZHk_size_16_color_FFFFFF_t_70_pic_center 6] [lightweight-human-pose-estimation.pytorch]: https://github.com/Daniil-Osokin/lightweight-human-pose-estimation.pytorch [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21fYnVkZHk_size_16_color_FFFFFF_t_70_pic_center]: /images/20221124/2c1c5e6230c24cd7ad9d3466b8d1a835.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21fYnVkZHk_size_16_color_FFFFFF_t_70_pic_center 1]: /images/20221124/9382e26020ec4d0fa73b809af9ed7c6e.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21fYnVkZHk_size_16_color_FFFFFF_t_70_pic_center 2]: /images/20221124/01c390a28083445b9f7b7586493df52d.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21fYnVkZHk_size_16_color_FFFFFF_t_70_pic_center 3]: /images/20221124/da388de7e909472f9cad9a8868a36a29.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21fYnVkZHk_size_16_color_FFFFFF_t_70_pic_center 4]: /images/20221124/008ac0a6a3a142e987a8728c3cd2e78d.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21fYnVkZHk_size_16_color_FFFFFF_t_70_pic_center 5]: /images/20221124/359cf9a0fa104095bf73af915274b422.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L21fYnVkZHk_size_16_color_FFFFFF_t_70_pic_center 6]: /images/20221124/7a75fab2e6dc4cb8905944741b81ba6e.png
还没有评论,来说两句吧...