Deep High-Resolution Representation Learning for Visual Recognition
High-resolution representations are essential for position-sensitive vision problems, such as human pose estimation, semantic segmentation, and object detection. Existing state-of-the-art frameworks first encode the input image as a low-resolution representation through a subnetwork that is formed by connecting high-to-low resolution convolutions in series (e.g., ResNet, VGGNet), and then recover the high-resolution representation from the encoded low-resolution representation. Instead, our proposed network, named as High-Resolution Network (HRNet), maintains high-resolution representations through the whole process. There are two key characteristics: (i) Connect the high-to-low resolution convolution streams in parallel; (ii) Repeatedly exchange the information across resolutions. The benefit is that the resulting representation is semantically richer and spatially more precise. We show the superiority of the proposed HRNet in a wide range of applications, including human pose estimation, semantic segmentation, and object detection, suggesting that the HRNet is a stronger backbone for computer vision problems.
Predict image
from mmpretrain import inference_model
predict = inference_model('hrnet-w18_3rdparty_8xb32_in1k', 'demo/bird.JPEG')
print(predict['pred_class'])
print(predict['pred_score'])
Use the model
import torch
from mmpretrain import get_model
model = get_model('hrnet-w18_3rdparty_8xb32_in1k', pretrained=True)
inputs = torch.rand(1, 3, 224, 224)
out = model(inputs)
print(type(out))
# To extract features.
feats = model.extract_feat(inputs)
print(type(feats))
Test Command
Prepare your dataset according to the docs.
Test:
python tools/test.py configs/hrnet/hrnet-w18_4xb32_in1k.py https://download.openmmlab.com/mmclassification/v0/hrnet/hrnet-w18_3rdparty_8xb32_in1k_20220120-0c10b180.pth
Model | Pretrain | Params (M) | Flops (G) | Top-1 (%) | Top-5 (%) | Config | Download |
---|---|---|---|---|---|---|---|
hrnet-w18_3rdparty_8xb32_in1k * |
From scratch | 21.30 | 4.33 | 76.75 | 93.44 | config | model |
hrnet-w30_3rdparty_8xb32_in1k * |
From scratch | 37.71 | 8.17 | 78.19 | 94.22 | config | model |
hrnet-w32_3rdparty_8xb32_in1k * |
From scratch | 41.23 | 8.99 | 78.44 | 94.19 | config | model |
hrnet-w40_3rdparty_8xb32_in1k * |
From scratch | 57.55 | 12.77 | 78.94 | 94.47 | config | model |
hrnet-w44_3rdparty_8xb32_in1k * |
From scratch | 67.06 | 14.96 | 78.88 | 94.37 | config | model |
hrnet-w48_3rdparty_8xb32_in1k * |
From scratch | 77.47 | 17.36 | 79.32 | 94.52 | config | model |
hrnet-w64_3rdparty_8xb32_in1k * |
From scratch | 128.06 | 29.00 | 79.46 | 94.65 | config | model |
hrnet-w18_3rdparty_8xb32-ssld_in1k * |
From scratch | 21.30 | 4.33 | 81.06 | 95.70 | config | model |
hrnet-w48_3rdparty_8xb32-ssld_in1k * |
From scratch | 77.47 | 17.36 | 83.63 | 96.79 | config | model |
Models with * are converted from the official repo. The config files of these models are only for inference. We haven't reproduce the training results.
@article{WangSCJDZLMTWLX19,
title={Deep High-Resolution Representation Learning for Visual Recognition},
author={Jingdong Wang and Ke Sun and Tianheng Cheng and
Borui Jiang and Chaorui Deng and Yang Zhao and Dong Liu and Yadong Mu and
Mingkui Tan and Xinggang Wang and Wenyu Liu and Bin Xiao},
journal={TPAMI},
year={2019}
}