Skip to content

Latest commit

 

History

History
158 lines (103 loc) · 10.1 KB

HRNet.md

File metadata and controls

158 lines (103 loc) · 10.1 KB

HRNet 系列


目录

1. 模型介绍

1.1 模型简介

HRNet 是 2019 年由微软亚洲研究院提出的一种全新的神经网络,不同于以往的卷积神经网络,该网络在网络深层仍然可以保持高分辨率,因此预测的关键点热图更准确,在空间上也更精确。此外,该网络在对分辨率敏感的其他视觉任务中,如检测、分割等,表现尤为优异。

该系列模型的 FLOPs、参数量以及 T4 GPU 上的预测耗时如下图所示。

目前 PaddleClas 开源的这类模型的预训练模型一共有 7 个,其指标如图所示,其中 HRNet_W48_C 指标精度异常的原因可能是因为网络训练的正常波动。

1.2 模型指标

Models Top1 Top5 Reference
top1
Reference
top5
FLOPs
(G)
Params
(M)
HRNet_W18_C 0.769 0.934 0.768 0.934 4.140 21.290
HRNet_W18_C_ssld 0.816 0.958 0.768 0.934 4.140 21.290
HRNet_W30_C 0.780 0.940 0.782 0.942 16.230 37.710
HRNet_W32_C 0.783 0.942 0.785 0.942 17.860 41.230
HRNet_W40_C 0.788 0.945 0.789 0.945 25.410 57.550
HRNet_W44_C 0.790 0.945 0.789 0.944 29.790 67.060
HRNet_W48_C 0.790 0.944 0.793 0.945 34.580 77.470
HRNet_W48_C_ssld 0.836 0.968 0.793 0.945 34.580 77.470
HRNet_W64_C 0.793 0.946 0.795 0.946 57.830 128.060
SE_HRNet_W64_C_ssld 0.847 0.973 57.830 128.970

1.3 Benchmark

1.3.1 基于 V100 GPU 的预测速度

| Models | Size | Latency(ms)
bs=1 | Latency(ms)
bs=4 | Latency(ms)
bs=8 | |-------------|-----------|-------------------|-------------------|-------------------|-------------------| | HRNet_W18_C | 224 | 6.66 | 8.94 | 11.95 | | HRNet_W18_C_ssld | 224 | 6.66 | 8.92 | 11.93 | | HRNet_W30_C | 224 | 8.61 | 11.40 | 15.23 | | HRNet_W32_C | 224 | 8.54 | 11.58 | 15.57 | | HRNet_W40_C | 224 | 9.83 | 15.02 | 20.92 | | HRNet_W44_C | 224 | 10.62 | 16.18 | 25.92 | | HRNet_W48_C | 224 | 11.07 | 17.06 | 27.28 | | HRNet_W48_C_ssld | 224 | 11.09 | 17.04 | 27.28 | | HRNet_W64_C | 224 | 13.82 | 21.15 | 35.51 |

备注: 精度类型为 FP32,推理过程使用 TensorRT。

1.3.2 基于 T4 GPU 的预测速度

Models Size Latency(ms)
FP16
bs=1
Latency(ms)
FP16
bs=4
Latency(ms)
FP16
bs=8
Latency(ms)
FP32
bs=1
Latency(ms)
FP32
bs=4
Latency(ms)
FP32
bs=8
HRNet_W18_C 224 6.79093 11.50986 17.67244 7.40636 13.29752 23.33445
HRNet_W18_C_ssld 224 6.79093 11.50986 17.67244 7.40636 13.29752 23.33445
HRNet_W30_C 224 8.98077 14.08082 21.23527 9.57594 17.35485 32.6933
HRNet_W32_C 224 8.82415 14.21462 21.19804 9.49807 17.72921 32.96305
HRNet_W40_C 224 11.4229 19.1595 30.47984 12.12202 25.68184 48.90623
HRNet_W44_C 224 12.25778 22.75456 32.61275 13.19858 32.25202 59.09871
HRNet_W48_C 224 12.65015 23.12886 33.37859 13.70761 34.43572 63.01219
HRNet_W48_C_ssld 224 12.65015 23.12886 33.37859 13.70761 34.43572 63.01219
HRNet_W64_C 224 15.10428 27.68901 40.4198 17.57527 47.9533 97.11228
SE_HRNet_W64_C_ssld 224 32.33651 69.31189 116.07245 31.69770 94.99546 174.45766

备注: 推理过程使用 TensorRT。

2. 模型快速体验

安装 paddlepaddle 和 paddleclas 即可快速对图片进行预测,体验方法可以参考ResNet50 模型快速体验

3. 模型训练、评估和预测

此部分内容包括训练环境配置、ImageNet数据的准备、该模型在 ImageNet 上的训练、评估、预测等内容。在 ppcls/configs/ImageNet/HRNet/ 中提供了该模型的训练配置,启动训练方法可以参考:ResNet50 模型训练、评估和预测

4. 模型推理部署

4.1 推理模型准备

Paddle Inference 是飞桨的原生推理库, 作用于服务器端和云端,提供高性能的推理能力。相比于直接基于预训练模型进行预测,Paddle Inference可使用 MKLDNN、CUDNN、TensorRT 进行预测加速,从而实现更优的推理性能。更多关于Paddle Inference推理引擎的介绍,可以参考Paddle Inference官网教程

Inference 的获取可以参考 ResNet50 推理模型准备

4.2 基于 Python 预测引擎推理

PaddleClas 提供了基于 python 预测引擎推理的示例。您可以参考ResNet50 基于 Python 预测引擎推理

4.3 基于 C++ 预测引擎推理

PaddleClas 提供了基于 C++ 预测引擎推理的示例,您可以参考服务器端 C++ 预测来完成相应的推理部署。如果您使用的是 Windows 平台,可以参考基于 Visual Studio 2019 Community CMake 编译指南完成相应的预测库编译和模型预测工作。

4.4 服务化部署

Paddle Serving 提供高性能、灵活易用的工业级在线推理服务。Paddle Serving 支持 RESTful、gRPC、bRPC 等多种协议,提供多种异构硬件和多种操作系统环境下推理解决方案。更多关于Paddle Serving 的介绍,可以参考Paddle Serving 代码仓库

PaddleClas 提供了基于 Paddle Serving 来完成模型服务化部署的示例,您可以参考模型服务化部署来完成相应的部署工作。

4.5 端侧部署

Paddle Lite 是一个高性能、轻量级、灵活性强且易于扩展的深度学习推理框架,定位于支持包括移动端、嵌入式以及服务器端在内的多硬件平台。更多关于 Paddle Lite 的介绍,可以参考Paddle Lite 代码仓库

PaddleClas 提供了基于 Paddle Lite 来完成模型端侧部署的示例,您可以参考端侧部署来完成相应的部署工作。

4.6 Paddle2ONNX 模型转换与预测

Paddle2ONNX 支持将 PaddlePaddle 模型格式转化到 ONNX 模型格式。通过 ONNX 可以完成将 Paddle 模型到多种推理引擎的部署,包括TensorRT/OpenVINO/MNN/TNN/NCNN,以及其它对 ONNX 开源格式进行支持的推理引擎或硬件。更多关于 Paddle2ONNX 的介绍,可以参考Paddle2ONNX 代码仓库

PaddleClas 提供了基于 Paddle2ONNX 来完成 inference 模型转换 ONNX 模型并作推理预测的示例,您可以参考Paddle2ONNX 模型转换与预测来完成相应的部署工作。