Initial snapshot: hand motion pipeline (Dyn-HaMR + dex-retargeting + SPIDER)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
# Minimal makefile for Sphinx documentation
|
||||
#
|
||||
|
||||
# You can set these variables from the command line, and also
|
||||
# from the environment for the first two.
|
||||
SPHINXOPTS ?=
|
||||
SPHINXBUILD ?= sphinx-build
|
||||
SOURCEDIR = .
|
||||
BUILDDIR = _build
|
||||
|
||||
# Put it first so that "make" without argument is like "make help".
|
||||
help:
|
||||
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
|
||||
.PHONY: help Makefile
|
||||
|
||||
# Catch-all target: route all unknown targets to Sphinx using the new
|
||||
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
||||
%: Makefile
|
||||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
@@ -0,0 +1,6 @@
|
||||
.header-logo {
|
||||
background-image: url("../images/mmpose-logo.png");
|
||||
background-size: 120px 50px;
|
||||
height: 50px;
|
||||
width: 120px;
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
mmpose.apis
|
||||
-------------
|
||||
.. automodule:: mmpose.apis
|
||||
:members:
|
||||
|
||||
|
||||
mmpose.core
|
||||
-------------
|
||||
evaluation
|
||||
^^^^^^^^^^^
|
||||
.. automodule:: mmpose.core.evaluation
|
||||
:members:
|
||||
|
||||
fp16
|
||||
^^^^^^^^^^^
|
||||
.. automodule:: mmpose.core.fp16
|
||||
:members:
|
||||
|
||||
|
||||
utils
|
||||
^^^^^^^^^^^
|
||||
.. automodule:: mmpose.core.utils
|
||||
:members:
|
||||
|
||||
|
||||
post_processing
|
||||
^^^^^^^^^^^^^^^^
|
||||
.. automodule:: mmpose.core.post_processing
|
||||
:members:
|
||||
|
||||
|
||||
mmpose.models
|
||||
---------------
|
||||
backbones
|
||||
^^^^^^^^^^^
|
||||
.. automodule:: mmpose.models.backbones
|
||||
:members:
|
||||
|
||||
necks
|
||||
^^^^^^^^^^^
|
||||
.. automodule:: mmpose.models.necks
|
||||
:members:
|
||||
|
||||
detectors
|
||||
^^^^^^^^^^^
|
||||
.. automodule:: mmpose.models.detectors
|
||||
:members:
|
||||
|
||||
heads
|
||||
^^^^^^^^^^^^^^^
|
||||
.. automodule:: mmpose.models.heads
|
||||
:members:
|
||||
|
||||
losses
|
||||
^^^^^^^^^^^
|
||||
.. automodule:: mmpose.models.losses
|
||||
:members:
|
||||
|
||||
misc
|
||||
^^^^^^^^^^^
|
||||
.. automodule:: mmpose.models.misc
|
||||
:members:
|
||||
|
||||
mmpose.datasets
|
||||
-----------------
|
||||
.. automodule:: mmpose.datasets
|
||||
:members:
|
||||
|
||||
datasets
|
||||
^^^^^^^^^^^
|
||||
.. automodule:: mmpose.datasets.datasets.top_down
|
||||
:members:
|
||||
:noindex:
|
||||
|
||||
.. automodule:: mmpose.datasets.datasets.bottom_up
|
||||
:members:
|
||||
:noindex:
|
||||
|
||||
pipelines
|
||||
^^^^^^^^^^^
|
||||
.. automodule:: mmpose.datasets.pipelines
|
||||
:members:
|
||||
|
||||
.. automodule:: mmpose.datasets.pipelines.loading
|
||||
:members:
|
||||
|
||||
.. automodule:: mmpose.datasets.pipelines.shared_transform
|
||||
:members:
|
||||
|
||||
.. automodule:: mmpose.datasets.pipelines.top_down_transform
|
||||
:members:
|
||||
|
||||
.. automodule:: mmpose.datasets.pipelines.bottom_up_transform
|
||||
:members:
|
||||
|
||||
.. automodule:: mmpose.datasets.pipelines.mesh_transform
|
||||
:members:
|
||||
|
||||
.. automodule:: mmpose.datasets.pipelines.pose3d_transform
|
||||
:members:
|
||||
|
||||
samplers
|
||||
^^^^^^^^^^^
|
||||
.. automodule:: mmpose.datasets.samplers
|
||||
:members:
|
||||
:noindex:
|
||||
|
||||
mmpose.utils
|
||||
---------------
|
||||
.. automodule:: mmpose.utils
|
||||
:members:
|
||||
@@ -0,0 +1,46 @@
|
||||
# Benchmark
|
||||
|
||||
We compare our results with some popular frameworks and official releases in terms of speed and accuracy.
|
||||
|
||||
## Comparison Rules
|
||||
|
||||
Here we compare our MMPose repo with other pose estimation toolboxes in the same data and model settings.
|
||||
|
||||
To ensure the fairness of the comparison, the comparison experiments were conducted under the same hardware environment and using the same dataset.
|
||||
For each model setting, we kept the same data pre-processing methods to make sure the same feature input.
|
||||
In addition, we also used Memcached, a distributed memory-caching system, to load the data in all the compared toolboxes.
|
||||
This minimizes the IO time during benchmark.
|
||||
|
||||
The time we measured is the average training time for an iteration, including data processing and model training.
|
||||
The training speed is measure with s/iter. The lower, the better.
|
||||
|
||||
### Results on COCO val2017 with detector having human AP of 56.4 on COCO val2017 dataset
|
||||
|
||||
We demonstrate the superiority of our MMPose framework in terms of speed and accuracy on the standard COCO keypoint detection benchmark.
|
||||
The mAP (the mean average precision) is used as the evaluation metric.
|
||||
|
||||
| Model | Input size| MMPose (s/iter) | HRNet (s/iter) | MMPose (mAP) | HRNet (mAP) |
|
||||
| :--- | :---------------: | :---------------: |:--------------------: | :----------------------------: | :-----------------: |
|
||||
| resnet_50 | 256x192 | **0.28** | 0.64 | **0.718** | 0.704 |
|
||||
| resnet_50 | 384x288 | **0.81** | 1.24 | **0.731** | 0.722 |
|
||||
| resnet_101 | 256x192 | **0.36** | 0.84 | **0.726** | 0.714 |
|
||||
| resnet_101 | 384x288 | **0.79** | 1.53 | **0.748** | 0.736 |
|
||||
| resnet_152 | 256x192 | **0.49** | 1.00 | **0.735** | 0.720 |
|
||||
| resnet_152 | 384x288 | **0.96** | 1.65 | **0.750** | 0.743 |
|
||||
| hrnet_w32 | 256x192 | **0.54** | 1.31 | **0.746** | 0.744 |
|
||||
| hrnet_w32 | 384x288 | **0.76** | 2.00 | **0.760** | 0.758 |
|
||||
| hrnet_w48 | 256x192 | **0.66** | 1.55 | **0.756** | 0.751 |
|
||||
| hrnet_w48 | 384x288 | **1.23** | 2.20 | **0.767** | 0.763 |
|
||||
|
||||
## Hardware
|
||||
|
||||
- 8 NVIDIA Tesla V100 (32G) GPUs
|
||||
- Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
|
||||
|
||||
## Software Environment
|
||||
|
||||
- Python 3.7
|
||||
- PyTorch 1.4
|
||||
- CUDA 10.1
|
||||
- CUDNN 7.6.03
|
||||
- NCCL 2.4.08
|
||||
@@ -0,0 +1,665 @@
|
||||
# Changelog
|
||||
|
||||
## v0.24.0 (07/03/2022)
|
||||
|
||||
**Highlights**
|
||||
|
||||
- Support HRFormer ["HRFormer: High-Resolution Vision Transformer for Dense Predict"](https://proceedings.neurips.cc/paper/2021/hash/3bbfdde8842a5c44a0323518eec97cbe-Abstract.html), NeurIPS'2021 ([\#1203](https://github.com/open-mmlab/mmpose/pull/1203)) @zengwang430521
|
||||
- Support Windows installation with pip ([\#1213](https://github.com/open-mmlab/mmpose/pull/1213)) @jin-s13, @ly015
|
||||
- Add WebcamAPI documents ([\#1187](https://github.com/open-mmlab/mmpose/pull/1187)) @ly015
|
||||
|
||||
**New Features**
|
||||
|
||||
- Support HRFormer ["HRFormer: High-Resolution Vision Transformer for Dense Predict"](https://proceedings.neurips.cc/paper/2021/hash/3bbfdde8842a5c44a0323518eec97cbe-Abstract.html), NeurIPS'2021 ([\#1203](https://github.com/open-mmlab/mmpose/pull/1203)) @zengwang430521
|
||||
- Support Windows installation with pip ([\#1213](https://github.com/open-mmlab/mmpose/pull/1213)) @jin-s13, @ly015
|
||||
- Support CPU training with mmcv < v1.4.4 ([\#1161](https://github.com/open-mmlab/mmpose/pull/1161)) @EasonQYS, @ly015
|
||||
- Add "Valentine Magic" demo with WebcamAPI ([\#1189](https://github.com/open-mmlab/mmpose/pull/1189), [\#1191](https://github.com/open-mmlab/mmpose/pull/1191)) @liqikai9
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Refactor multi-view 3D pose estimation framework towards better modularization and expansibility ([\#1196](https://github.com/open-mmlab/mmpose/pull/1196)) @wusize
|
||||
- Add WebcamAPI documents and tutorials ([\#1187](https://github.com/open-mmlab/mmpose/pull/1187)) @ly015
|
||||
- Refactor dataset evaluation interface to align with other OpenMMLab codebases ([\#1209](https://github.com/open-mmlab/mmpose/pull/1209)) @ly015
|
||||
- Add deprecation message for deploy tools since [MMDeploy](https://github.com/open-mmlab/mmdeploy) has supported MMPose ([\#1207](https://github.com/open-mmlab/mmpose/pull/1207)) @QwQ2000
|
||||
- Improve documentation quality ([\#1206](https://github.com/open-mmlab/mmpose/pull/1206), [\#1161](https://github.com/open-mmlab/mmpose/pull/1161)) @ly015
|
||||
- Switch to OpenMMLab official pre-commit-hook for copyright check ([\#1214](https://github.com/open-mmlab/mmpose/pull/1214)) @ly015
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix hard-coded data collating and scattering in inference ([\#1175](https://github.com/open-mmlab/mmpose/pull/1175)) @ly015
|
||||
- Fix model configs on JHMDB dataset ([\#1188](https://github.com/open-mmlab/mmpose/pull/1188)) @jin-s13
|
||||
- Fix area calculation in pose tracking inference ([\#1197](https://github.com/open-mmlab/mmpose/pull/1197)) @pallgeuer
|
||||
- Fix registry scope conflict of module wrapper ([\#1204](https://github.com/open-mmlab/mmpose/pull/1204)) @ly015
|
||||
- Update MMCV installation in CI and documents ([\#1205](https://github.com/open-mmlab/mmpose/pull/1205))
|
||||
- Fix incorrect color channel order in visualization functions ([\#1212](https://github.com/open-mmlab/mmpose/pull/1212)) @ly015
|
||||
|
||||
## v0.23.0 (11/02/2022)
|
||||
|
||||
**Highlights**
|
||||
|
||||
- Add [MMPose Webcam API](https://github.com/open-mmlab/mmpose/tree/master/tools/webcam): A simple yet powerful tools to develop interactive webcam applications with MMPose functions. ([\#1178](https://github.com/open-mmlab/mmpose/pull/1178), [\#1173](https://github.com/open-mmlab/mmpose/pull/1173), [\#1173](https://github.com/open-mmlab/mmpose/pull/1173), [\#1143](https://github.com/open-mmlab/mmpose/pull/1143), [\#1094](https://github.com/open-mmlab/mmpose/pull/1094), [\#1133](https://github.com/open-mmlab/mmpose/pull/1133), [\#1098](https://github.com/open-mmlab/mmpose/pull/1098), [\#1160](https://github.com/open-mmlab/mmpose/pull/1160)) @ly015, @jin-s13, @liqikai9, @wusize, @luminxu, @zengwang430521 @mzr1996
|
||||
|
||||
**New Features**
|
||||
|
||||
- Add [MMPose Webcam API](https://github.com/open-mmlab/mmpose/tree/master/tools/webcam): A simple yet powerful tools to develop interactive webcam applications with MMPose functions. ([\#1178](https://github.com/open-mmlab/mmpose/pull/1178), [\#1173](https://github.com/open-mmlab/mmpose/pull/1173), [\#1173](https://github.com/open-mmlab/mmpose/pull/1173), [\#1143](https://github.com/open-mmlab/mmpose/pull/1143), [\#1094](https://github.com/open-mmlab/mmpose/pull/1094), [\#1133](https://github.com/open-mmlab/mmpose/pull/1133), [\#1098](https://github.com/open-mmlab/mmpose/pull/1098), [\#1160](https://github.com/open-mmlab/mmpose/pull/1160)) @ly015, @jin-s13, @liqikai9, @wusize, @luminxu, @zengwang430521 @mzr1996
|
||||
- Support ConcatDataset ([\#1139](https://github.com/open-mmlab/mmpose/pull/1139)) @Canwang-sjtu
|
||||
- Support CPU training and testing ([\#1157](https://github.com/open-mmlab/mmpose/pull/1157)) @ly015
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Add multi-processing configurations to speed up distributed training and testing ([\#1146](https://github.com/open-mmlab/mmpose/pull/1146)) @ly015
|
||||
- Add default runtime config ([\#1145](https://github.com/open-mmlab/mmpose/pull/1145))
|
||||
|
||||
- Upgrade isort in pre-commit hook ([\#1179](https://github.com/open-mmlab/mmpose/pull/1179)) @liqikai9
|
||||
- Update README and documents ([\#1171](https://github.com/open-mmlab/mmpose/pull/1171), [\#1167](https://github.com/open-mmlab/mmpose/pull/1167), [\#1153](https://github.com/open-mmlab/mmpose/pull/1153), [\#1149](https://github.com/open-mmlab/mmpose/pull/1149), [\#1148](https://github.com/open-mmlab/mmpose/pull/1148), [\#1147](https://github.com/open-mmlab/mmpose/pull/1147), [\#1140](https://github.com/open-mmlab/mmpose/pull/1140)) @jin-s13, @wusize, @TommyZihao, @ly015
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix undeterministic behavior in pre-commit hooks ([\#1136](https://github.com/open-mmlab/mmpose/pull/1136)) @jin-s13
|
||||
- Deprecate the support for "python setup.py test" ([\#1179](https://github.com/open-mmlab/mmpose/pull/1179)) @ly015
|
||||
- Fix incompatible settings with MMCV on HSigmoid default parameters ([\#1132](https://github.com/open-mmlab/mmpose/pull/1132)) @ly015
|
||||
- Fix albumentation installation ([\#1184](https://github.com/open-mmlab/mmpose/pull/1184)) @BIGWangYuDong
|
||||
|
||||
## v0.22.0 (04/01/2022)
|
||||
|
||||
**Highlights**
|
||||
|
||||
- Support VoxelPose ["VoxelPose: Towards Multi-Camera 3D Human Pose Estimation in Wild Environment"](https://arxiv.org/abs/2004.06239), ECCV'2020 ([\#1050](https://github.com/open-mmlab/mmpose/pull/1050)) @wusize
|
||||
- Support Soft Wing loss ["Structure-Coherent Deep Feature Learning for Robust Face Alignment"](https://linchunze.github.io/papers/TIP21_Structure_coherent_FA.pdf), TIP'2021 ([\#1077](https://github.com/open-mmlab/mmpose/pull/1077)) @jin-s13
|
||||
- Support Adaptive Wing loss ["Adaptive Wing Loss for Robust Face Alignment via Heatmap Regression"](https://arxiv.org/abs/1904.07399), ICCV'2019 ([\#1072](https://github.com/open-mmlab/mmpose/pull/1072)) @jin-s13
|
||||
|
||||
**New Features**
|
||||
|
||||
- Support VoxelPose ["VoxelPose: Towards Multi-Camera 3D Human Pose Estimation in Wild Environment"](https://arxiv.org/abs/2004.06239), ECCV'2020 ([\#1050](https://github.com/open-mmlab/mmpose/pull/1050)) @wusize
|
||||
- Support Soft Wing loss ["Structure-Coherent Deep Feature Learning for Robust Face Alignment"](https://linchunze.github.io/papers/TIP21_Structure_coherent_FA.pdf), TIP'2021 ([\#1077](https://github.com/open-mmlab/mmpose/pull/1077)) @jin-s13
|
||||
- Support Adaptive Wing loss ["Adaptive Wing Loss for Robust Face Alignment via Heatmap Regression"](https://arxiv.org/abs/1904.07399), ICCV'2019 ([\#1072](https://github.com/open-mmlab/mmpose/pull/1072)) @jin-s13
|
||||
- Add LiteHRNet-18 Checkpoints trained on COCO. ([\#1120](https://github.com/open-mmlab/mmpose/pull/1120)) @jin-s13
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Improve documentation quality ([\#1115](https://github.com/open-mmlab/mmpose/pull/1115), [\#1111](https://github.com/open-mmlab/mmpose/pull/1111), [\#1105](https://github.com/open-mmlab/mmpose/pull/1105), [\#1087](https://github.com/open-mmlab/mmpose/pull/1087), [\#1086](https://github.com/open-mmlab/mmpose/pull/1086), [\#1085](https://github.com/open-mmlab/mmpose/pull/1085), [\#1084](https://github.com/open-mmlab/mmpose/pull/1084), [\#1083](https://github.com/open-mmlab/mmpose/pull/1083), [\#1124](https://github.com/open-mmlab/mmpose/pull/1124), [\#1070](https://github.com/open-mmlab/mmpose/pull/1070), [\#1068](https://github.com/open-mmlab/mmpose/pull/1068)) @jin-s13, @liqikai9, @ly015
|
||||
- Support CircleCI ([\#1074](https://github.com/open-mmlab/mmpose/pull/1074)) @ly015
|
||||
- Skip unit tests in CI when only document files were changed ([\#1074](https://github.com/open-mmlab/mmpose/pull/1074), [\#1041](https://github.com/open-mmlab/mmpose/pull/1041)) @QwQ2000, @ly015
|
||||
- Support file_client_args in LoadImageFromFile ([\#1076](https://github.com/open-mmlab/mmpose/pull/1076)) @jin-s13
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix a bug in Dark UDP postprocessing that causes error when the channel number is large. ([\#1079](https://github.com/open-mmlab/mmpose/pull/1079), [\#1116](https://github.com/open-mmlab/mmpose/pull/1116)) @X00123, @jin-s13
|
||||
- Fix hard-coded `sigmas` in bottom-up image demo ([\#1107](https://github.com/open-mmlab/mmpose/pull/1107), [\#1101](https://github.com/open-mmlab/mmpose/pull/1101)) @chenxinfeng4, @liqikai9
|
||||
- Fix unstable checks in unit tests ([\#1112](https://github.com/open-mmlab/mmpose/pull/1112)) @ly015
|
||||
- Do not destroy NULL windows if `args.show==False` in demo scripts ([\#1104](https://github.com/open-mmlab/mmpose/pull/1104)) @bladrome
|
||||
|
||||
## v0.21.0 (06/12/2021)
|
||||
|
||||
**Highlights**
|
||||
|
||||
- Support ["Learning Temporal Pose Estimation from Sparsely-Labeled Videos"](https://arxiv.org/abs/1906.04016), NeurIPS'2019 ([\#932](https://github.com/open-mmlab/mmpose/pull/932), [\#1006](https://github.com/open-mmlab/mmpose/pull/1006), [\#1036](https://github.com/open-mmlab/mmpose/pull/1036), [\#1060](https://github.com/open-mmlab/mmpose/pull/1060)) @liqikai9
|
||||
- Add ViPNAS-MobileNetV3 models ([\#1025](https://github.com/open-mmlab/mmpose/pull/1025)) @luminxu, @jin-s13
|
||||
- Add [inference speed benchmark](/docs/en/inference_speed_summary.md) ([\#1028](https://github.com/open-mmlab/mmpose/pull/1028), [\#1034](https://github.com/open-mmlab/mmpose/pull/1034), [\#1044](https://github.com/open-mmlab/mmpose/pull/1044)) @liqikai9
|
||||
|
||||
**New Features**
|
||||
|
||||
- Support ["Learning Temporal Pose Estimation from Sparsely-Labeled Videos"](https://arxiv.org/abs/1906.04016), NeurIPS'2019 ([\#932](https://github.com/open-mmlab/mmpose/pull/932), [\#1006](https://github.com/open-mmlab/mmpose/pull/1006), [\#1036](https://github.com/open-mmlab/mmpose/pull/1036)) @liqikai9
|
||||
- Add ViPNAS-MobileNetV3 models ([\#1025](https://github.com/open-mmlab/mmpose/pull/1025)) @luminxu, @jin-s13
|
||||
- Add light-weight top-down models for whole-body keypoint detection ([\#1009](https://github.com/open-mmlab/mmpose/pull/1009), [\#1020](https://github.com/open-mmlab/mmpose/pull/1020), [\#1055](https://github.com/open-mmlab/mmpose/pull/1055)) @luminxu, @ly015
|
||||
- Add HRNet checkpoints with various settings on PoseTrack18 ([\#1035](https://github.com/open-mmlab/mmpose/pull/1035)) @liqikai9
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Add [inference speed benchmark](/docs/en/inference_speed_summary.md) ([\#1028](https://github.com/open-mmlab/mmpose/pull/1028), [\#1034](https://github.com/open-mmlab/mmpose/pull/1034), [\#1044](https://github.com/open-mmlab/mmpose/pull/1044)) @liqikai9
|
||||
- Update model metafile format ([\#1001](https://github.com/open-mmlab/mmpose/pull/1001)) @ly015
|
||||
- Support minus output feature index in mobilenet_v3 ([\#1005](https://github.com/open-mmlab/mmpose/pull/1005)) @luminxu
|
||||
- Improve documentation quality ([\#1018](https://github.com/open-mmlab/mmpose/pull/1018), [\#1026](https://github.com/open-mmlab/mmpose/pull/1026), [\#1027](https://github.com/open-mmlab/mmpose/pull/1027), [\#1031](https://github.com/open-mmlab/mmpose/pull/1031), [\#1038](https://github.com/open-mmlab/mmpose/pull/1038), [\#1046](https://github.com/open-mmlab/mmpose/pull/1046), [\#1056](https://github.com/open-mmlab/mmpose/pull/1056), [\#1057](https://github.com/open-mmlab/mmpose/pull/1057)) @edybk, @luminxu, @ly015, @jin-s13
|
||||
- Set default random seed in training initialization ([\#1030](https://github.com/open-mmlab/mmpose/pull/1030)) @ly015
|
||||
- Skip CI when only specific files changed ([\#1041](https://github.com/open-mmlab/mmpose/pull/1041), [\#1059](https://github.com/open-mmlab/mmpose/pull/1059)) @QwQ2000, @ly015
|
||||
- Automatically cancel uncompleted action runs when new commit arrives ([\#1053](https://github.com/open-mmlab/mmpose/pull/1053)) @ly015
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Update pose tracking demo to be compatible with latest mmtracking ([\#1014](https://github.com/open-mmlab/mmpose/pull/1014)) @jin-s13
|
||||
- Fix symlink creation failure when installed in Windows environments ([\#1039](https://github.com/open-mmlab/mmpose/pull/1039)) @QwQ2000
|
||||
- Fix AP-10K dataset sigmas ([\#1040](https://github.com/open-mmlab/mmpose/pull/1040)) @jin-s13
|
||||
|
||||
## v0.20.0 (01/11/2021)
|
||||
|
||||
**Highlights**
|
||||
|
||||
- Add AP-10K dataset for animal pose estimation ([\#987](https://github.com/open-mmlab/mmpose/pull/987)) @Annbless, @AlexTheBad, @jin-s13, @ly015
|
||||
- Support TorchServe ([\#979](https://github.com/open-mmlab/mmpose/pull/979)) @ly015
|
||||
|
||||
**New Features**
|
||||
|
||||
- Add AP-10K dataset for animal pose estimation ([\#987](https://github.com/open-mmlab/mmpose/pull/987)) @Annbless, @AlexTheBad, @jin-s13, @ly015
|
||||
- Add HRNetv2 checkpoints on 300W and COFW datasets ([\#980](https://github.com/open-mmlab/mmpose/pull/980)) @jin-s13
|
||||
- Support TorchServe ([\#979](https://github.com/open-mmlab/mmpose/pull/979)) @ly015
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix some deprecated or risky settings in configs ([\#963](https://github.com/open-mmlab/mmpose/pull/963), [\#976](https://github.com/open-mmlab/mmpose/pull/976), [\#992](https://github.com/open-mmlab/mmpose/pull/992)) @jin-s13, @wusize
|
||||
- Fix issues of default arguments of training and testing scripts ([\#970](https://github.com/open-mmlab/mmpose/pull/970), [\#985](https://github.com/open-mmlab/mmpose/pull/985)) @liqikai9, @wusize
|
||||
- Fix heatmap and tag size mismatch in bottom-up with UDP ([\#994](https://github.com/open-mmlab/mmpose/pull/994)) @wusize
|
||||
- Fix python3.9 installation in CI ([\#983](https://github.com/open-mmlab/mmpose/pull/983)) @ly015
|
||||
- Fix model zoo document integrity issue ([\#990](https://github.com/open-mmlab/mmpose/pull/990)) @jin-s13
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Support non-square input shape for bottom-up ([\#991](https://github.com/open-mmlab/mmpose/pull/991)) @wusize
|
||||
- Add image and video resources for demo ([\#971](https://github.com/open-mmlab/mmpose/pull/971)) @liqikai9
|
||||
- Use CUDA docker images to accelerate CI ([\#973](https://github.com/open-mmlab/mmpose/pull/973)) @ly015
|
||||
- Add codespell hook and fix detected typos ([\#977](https://github.com/open-mmlab/mmpose/pull/977)) @ly015
|
||||
|
||||
## v0.19.0 (08/10/2021)
|
||||
|
||||
**Highlights**
|
||||
|
||||
- Add models for Associative Embedding with Hourglass network backbone ([\#906](https://github.com/open-mmlab/mmpose/pull/906), [\#955](https://github.com/open-mmlab/mmpose/pull/955)) @jin-s13, @luminxu
|
||||
- Support COCO-Wholebody-Face and COCO-Wholebody-Hand datasets ([\#813](https://github.com/open-mmlab/mmpose/pull/813)) @jin-s13, @innerlee, @luminxu
|
||||
- Upgrade dataset interface ([\#901](https://github.com/open-mmlab/mmpose/pull/901), [\#924](https://github.com/open-mmlab/mmpose/pull/924)) @jin-s13, @innerlee, @ly015, @liqikai9
|
||||
- New style of documentation ([\#945](https://github.com/open-mmlab/mmpose/pull/945)) @ly015
|
||||
|
||||
**New Features**
|
||||
|
||||
- Add models for Associative Embedding with Hourglass network backbone ([\#906](https://github.com/open-mmlab/mmpose/pull/906), [\#955](https://github.com/open-mmlab/mmpose/pull/955)) @jin-s13, @luminxu
|
||||
- Support COCO-Wholebody-Face and COCO-Wholebody-Hand datasets ([\#813](https://github.com/open-mmlab/mmpose/pull/813)) @jin-s13, @innerlee, @luminxu
|
||||
- Add pseudo-labeling tool to generate COCO style keypoint annotations with given bounding boxes ([\#928](https://github.com/open-mmlab/mmpose/pull/928)) @soltkreig
|
||||
- New style of documentation ([\#945](https://github.com/open-mmlab/mmpose/pull/945)) @ly015
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix segmentation parsing in Macaque dataset preprocessing ([\#948](https://github.com/open-mmlab/mmpose/pull/948)) @jin-s13
|
||||
- Fix dependencies that may lead to CI failure in downstream projects ([\#936](https://github.com/open-mmlab/mmpose/pull/936), [\#953](https://github.com/open-mmlab/mmpose/pull/953)) @RangiLyu, @ly015
|
||||
- Fix keypoint order in Human3.6M dataset ([\#940](https://github.com/open-mmlab/mmpose/pull/940)) @ttxskk
|
||||
- Fix unstable image loading for Interhand2.6M ([\#913](https://github.com/open-mmlab/mmpose/pull/913)) @zengwang430521
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Upgrade dataset interface ([\#901](https://github.com/open-mmlab/mmpose/pull/901), [\#924](https://github.com/open-mmlab/mmpose/pull/924)) @jin-s13, @innerlee, @ly015, @liqikai9
|
||||
- Improve demo usability and stability ([\#908](https://github.com/open-mmlab/mmpose/pull/908), [\#934](https://github.com/open-mmlab/mmpose/pull/934)) @ly015
|
||||
- Standardize model metafile format ([\#941](https://github.com/open-mmlab/mmpose/pull/941)) @ly015
|
||||
- Support `persistent_worker` and several other arguments in configs ([\#946](https://github.com/open-mmlab/mmpose/pull/946)) @jin-s13
|
||||
- Use MMCV root model registry to enable cross-project module building ([\#935](https://github.com/open-mmlab/mmpose/pull/935)) @RangiLyu
|
||||
- Improve the document quality ([\#916](https://github.com/open-mmlab/mmpose/pull/916), [\#909](https://github.com/open-mmlab/mmpose/pull/909), [\#942](https://github.com/open-mmlab/mmpose/pull/942), [\#913](https://github.com/open-mmlab/mmpose/pull/913), [\#956](https://github.com/open-mmlab/mmpose/pull/956)) @jin-s13, @ly015, @bit-scientist, @zengwang430521
|
||||
- Improve pull request template ([\#952](https://github.com/open-mmlab/mmpose/pull/952), [\#954](https://github.com/open-mmlab/mmpose/pull/954)) @ly015
|
||||
|
||||
**Breaking Changes**
|
||||
|
||||
- Upgrade dataset interface ([\#901](https://github.com/open-mmlab/mmpose/pull/901)) @jin-s13, @innerlee, @ly015
|
||||
|
||||
## v0.18.0 (01/09/2021)
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix redundant model weight loading in pytorch-to-onnx conversion ([\#850](https://github.com/open-mmlab/mmpose/pull/850)) @ly015
|
||||
- Fix a bug in update_model_index.py that may cause pre-commit hook failure([\#866](https://github.com/open-mmlab/mmpose/pull/866)) @ly015
|
||||
- Fix a bug in interhand_3d_head ([\#890](https://github.com/open-mmlab/mmpose/pull/890)) @zengwang430521
|
||||
- Fix pose tracking demo failure caused by out-of-date configs ([\#891](https://github.com/open-mmlab/mmpose/pull/891))
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Add automatic benchmark regression tools ([\#849](https://github.com/open-mmlab/mmpose/pull/849), [\#880](https://github.com/open-mmlab/mmpose/pull/880), [\#885](https://github.com/open-mmlab/mmpose/pull/885)) @liqikai9, @ly015
|
||||
- Add copyright information and checking hook ([\#872](https://github.com/open-mmlab/mmpose/pull/872))
|
||||
- Add PR template ([\#875](https://github.com/open-mmlab/mmpose/pull/875)) @ly015
|
||||
- Add citation information ([\#876](https://github.com/open-mmlab/mmpose/pull/876)) @ly015
|
||||
- Add python3.9 in CI ([\#877](https://github.com/open-mmlab/mmpose/pull/877), [\#883](https://github.com/open-mmlab/mmpose/pull/883)) @ly015
|
||||
- Improve the quality of the documents ([\#845](https://github.com/open-mmlab/mmpose/pull/845), [\#845](https://github.com/open-mmlab/mmpose/pull/845), [\#848](https://github.com/open-mmlab/mmpose/pull/848), [\#867](https://github.com/open-mmlab/mmpose/pull/867), [\#870](https://github.com/open-mmlab/mmpose/pull/870), [\#873](https://github.com/open-mmlab/mmpose/pull/873), [\#896](https://github.com/open-mmlab/mmpose/pull/896)) @jin-s13, @ly015, @zhiqwang
|
||||
|
||||
## v0.17.0 (06/08/2021)
|
||||
|
||||
**Highlights**
|
||||
|
||||
1. Support ["Lite-HRNet: A Lightweight High-Resolution Network"](https://arxiv.org/abs/2104.06403) CVPR'2021 ([\#733](https://github.com/open-mmlab/mmpose/pull/733),[\#800](https://github.com/open-mmlab/mmpose/pull/800)) @jin-s13
|
||||
2. Add 3d body mesh demo ([\#771](https://github.com/open-mmlab/mmpose/pull/771)) @zengwang430521
|
||||
3. Add Chinese documentation ([\#787](https://github.com/open-mmlab/mmpose/pull/787), [\#798](https://github.com/open-mmlab/mmpose/pull/798), [\#799](https://github.com/open-mmlab/mmpose/pull/799), [\#802](https://github.com/open-mmlab/mmpose/pull/802), [\#804](https://github.com/open-mmlab/mmpose/pull/804), [\#805](https://github.com/open-mmlab/mmpose/pull/805), [\#815](https://github.com/open-mmlab/mmpose/pull/815), [\#816](https://github.com/open-mmlab/mmpose/pull/816), [\#817](https://github.com/open-mmlab/mmpose/pull/817), [\#819](https://github.com/open-mmlab/mmpose/pull/819), [\#839](https://github.com/open-mmlab/mmpose/pull/839)) @ly015, @luminxu, @jin-s13, @liqikai9, @zengwang430521
|
||||
4. Add Colab Tutorial ([\#834](https://github.com/open-mmlab/mmpose/pull/834)) @ly015
|
||||
|
||||
**New Features**
|
||||
|
||||
- Support ["Lite-HRNet: A Lightweight High-Resolution Network"](https://arxiv.org/abs/2104.06403) CVPR'2021 ([\#733](https://github.com/open-mmlab/mmpose/pull/733),[\#800](https://github.com/open-mmlab/mmpose/pull/800)) @jin-s13
|
||||
- Add 3d body mesh demo ([\#771](https://github.com/open-mmlab/mmpose/pull/771)) @zengwang430521
|
||||
- Add Chinese documentation ([\#787](https://github.com/open-mmlab/mmpose/pull/787), [\#798](https://github.com/open-mmlab/mmpose/pull/798), [\#799](https://github.com/open-mmlab/mmpose/pull/799), [\#802](https://github.com/open-mmlab/mmpose/pull/802), [\#804](https://github.com/open-mmlab/mmpose/pull/804), [\#805](https://github.com/open-mmlab/mmpose/pull/805), [\#815](https://github.com/open-mmlab/mmpose/pull/815), [\#816](https://github.com/open-mmlab/mmpose/pull/816), [\#817](https://github.com/open-mmlab/mmpose/pull/817), [\#819](https://github.com/open-mmlab/mmpose/pull/819), [\#839](https://github.com/open-mmlab/mmpose/pull/839)) @ly015, @luminxu, @jin-s13, @liqikai9, @zengwang430521
|
||||
- Add Colab Tutorial ([\#834](https://github.com/open-mmlab/mmpose/pull/834)) @ly015
|
||||
- Support training for InterHand v1.0 dataset ([\#761](https://github.com/open-mmlab/mmpose/pull/761)) @zengwang430521
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix mpii pckh@0.1 index ([\#773](https://github.com/open-mmlab/mmpose/pull/773)) @jin-s13
|
||||
- Fix multi-node distributed test ([\#818](https://github.com/open-mmlab/mmpose/pull/818)) @ly015
|
||||
- Fix docstring and init_weights error of ShuffleNetV1 ([\#814](https://github.com/open-mmlab/mmpose/pull/814)) @Junjun2016
|
||||
- Fix imshow_bbox error when input bboxes is empty ([\#796](https://github.com/open-mmlab/mmpose/pull/796)) @ly015
|
||||
- Fix model zoo doc generation ([\#778](https://github.com/open-mmlab/mmpose/pull/778)) @ly015
|
||||
- Fix typo ([\#767](https://github.com/open-mmlab/mmpose/pull/767)), ([\#780](https://github.com/open-mmlab/mmpose/pull/780), [\#782](https://github.com/open-mmlab/mmpose/pull/782)) @ly015, @jin-s13
|
||||
|
||||
**Breaking Changes**
|
||||
|
||||
- Use MMCV EvalHook ([\#686](https://github.com/open-mmlab/mmpose/pull/686)) @ly015
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Add pytest.ini and fix docstring ([\#812](https://github.com/open-mmlab/mmpose/pull/812)) @jin-s13
|
||||
- Update MSELoss ([\#829](https://github.com/open-mmlab/mmpose/pull/829)) @Ezra-Yu
|
||||
- Move process_mmdet_results into inference.py ([\#831](https://github.com/open-mmlab/mmpose/pull/831)) @ly015
|
||||
- Update resource limit ([\#783](https://github.com/open-mmlab/mmpose/pull/783)) @jin-s13
|
||||
- Use COCO 2D pose model in 3D demo examples ([\#785](https://github.com/open-mmlab/mmpose/pull/785)) @ly015
|
||||
- Change model zoo titles in the doc from center-aligned to left-aligned ([\#792](https://github.com/open-mmlab/mmpose/pull/792), [\#797](https://github.com/open-mmlab/mmpose/pull/797)) @ly015
|
||||
- Support MIM ([\#706](https://github.com/open-mmlab/mmpose/pull/706), [\#794](https://github.com/open-mmlab/mmpose/pull/794)) @ly015
|
||||
- Update out-of-date configs ([\#827](https://github.com/open-mmlab/mmpose/pull/827)) @jin-s13
|
||||
- Remove opencv-python-headless dependency by albumentations ([\#833](https://github.com/open-mmlab/mmpose/pull/833)) @ly015
|
||||
- Update QQ QR code in README_CN.md ([\#832](https://github.com/open-mmlab/mmpose/pull/832)) @ly015
|
||||
|
||||
## v0.16.0 (02/07/2021)
|
||||
|
||||
**Highlights**
|
||||
|
||||
1. Support ["ViPNAS: Efficient Video Pose Estimation via Neural Architecture Search"](https://arxiv.org/abs/2105.10154) CVPR'2021 ([\#742](https://github.com/open-mmlab/mmpose/pull/742),[\#755](https://github.com/open-mmlab/mmpose/pull/755)).
|
||||
1. Support MPI-INF-3DHP dataset ([\#683](https://github.com/open-mmlab/mmpose/pull/683),[\#746](https://github.com/open-mmlab/mmpose/pull/746),[\#751](https://github.com/open-mmlab/mmpose/pull/751)).
|
||||
1. Add webcam demo tool ([\#729](https://github.com/open-mmlab/mmpose/pull/729))
|
||||
1. Add 3d body and hand pose estimation demo ([\#704](https://github.com/open-mmlab/mmpose/pull/704), [\#727](https://github.com/open-mmlab/mmpose/pull/727)).
|
||||
|
||||
**New Features**
|
||||
|
||||
- Support ["ViPNAS: Efficient Video Pose Estimation via Neural Architecture Search"](https://arxiv.org/abs/2105.10154) CVPR'2021 ([\#742](https://github.com/open-mmlab/mmpose/pull/742),[\#755](https://github.com/open-mmlab/mmpose/pull/755))
|
||||
- Support MPI-INF-3DHP dataset ([\#683](https://github.com/open-mmlab/mmpose/pull/683),[\#746](https://github.com/open-mmlab/mmpose/pull/746),[\#751](https://github.com/open-mmlab/mmpose/pull/751))
|
||||
- Support Webcam demo ([\#729](https://github.com/open-mmlab/mmpose/pull/729))
|
||||
- Support Interhand 3d demo ([\#704](https://github.com/open-mmlab/mmpose/pull/704))
|
||||
- Support 3d pose video demo ([\#727](https://github.com/open-mmlab/mmpose/pull/727))
|
||||
- Support H36m dataset for 2d pose estimation ([\#709](https://github.com/open-mmlab/mmpose/pull/709), [\#735](https://github.com/open-mmlab/mmpose/pull/735))
|
||||
- Add scripts to generate mim metafile ([\#749](https://github.com/open-mmlab/mmpose/pull/749))
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix typos ([\#692](https://github.com/open-mmlab/mmpose/pull/692),[\#696](https://github.com/open-mmlab/mmpose/pull/696),[\#697](https://github.com/open-mmlab/mmpose/pull/697),[\#698](https://github.com/open-mmlab/mmpose/pull/698),[\#712](https://github.com/open-mmlab/mmpose/pull/712),[\#718](https://github.com/open-mmlab/mmpose/pull/718),[\#728](https://github.com/open-mmlab/mmpose/pull/728))
|
||||
- Change model download links from `http` to `https` ([\#716](https://github.com/open-mmlab/mmpose/pull/716))
|
||||
|
||||
**Breaking Changes**
|
||||
|
||||
- Switch to MMCV MODEL_REGISTRY ([\#669](https://github.com/open-mmlab/mmpose/pull/669))
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Refactor MeshMixDataset ([\#752](https://github.com/open-mmlab/mmpose/pull/752))
|
||||
- Rename 'GaussianHeatMap' to 'GaussianHeatmap' ([\#745](https://github.com/open-mmlab/mmpose/pull/745))
|
||||
- Update out-of-date configs ([\#734](https://github.com/open-mmlab/mmpose/pull/734))
|
||||
- Improve compatibility for breaking changes ([\#731](https://github.com/open-mmlab/mmpose/pull/731))
|
||||
- Enable to control radius and thickness in visualization ([\#722](https://github.com/open-mmlab/mmpose/pull/722))
|
||||
- Add regex dependency ([\#720](https://github.com/open-mmlab/mmpose/pull/720))
|
||||
|
||||
## v0.15.0 (02/06/2021)
|
||||
|
||||
**Highlights**
|
||||
|
||||
1. Support 3d video pose estimation (VideoPose3D).
|
||||
1. Support 3d hand pose estimation (InterNet).
|
||||
1. Improve presentation of modelzoo.
|
||||
|
||||
**New Features**
|
||||
|
||||
- Support "InterHand2.6M: A Dataset and Baseline for 3D Interacting Hand Pose Estimation from a Single RGB Image" (ECCV‘20) ([\#624](https://github.com/open-mmlab/mmpose/pull/624))
|
||||
- Support "3D human pose estimation in video with temporal convolutions and semi-supervised training" (CVPR'19) ([\#602](https://github.com/open-mmlab/mmpose/pull/602), [\#681](https://github.com/open-mmlab/mmpose/pull/681))
|
||||
- Support 3d pose estimation demo ([\#653](https://github.com/open-mmlab/mmpose/pull/653), [\#670](https://github.com/open-mmlab/mmpose/pull/670))
|
||||
- Support bottom-up whole-body pose estimation ([\#689](https://github.com/open-mmlab/mmpose/pull/689))
|
||||
- Support mmcli ([\#634](https://github.com/open-mmlab/mmpose/pull/634))
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix opencv compatibility ([\#635](https://github.com/open-mmlab/mmpose/pull/635))
|
||||
- Fix demo with UDP ([\#637](https://github.com/open-mmlab/mmpose/pull/637))
|
||||
- Fix bottom-up model onnx conversion ([\#680](https://github.com/open-mmlab/mmpose/pull/680))
|
||||
- Fix `GPU_IDS` in distributed training ([\#668](https://github.com/open-mmlab/mmpose/pull/668))
|
||||
- Fix MANIFEST.in ([\#641](https://github.com/open-mmlab/mmpose/pull/641), [\#657](https://github.com/open-mmlab/mmpose/pull/657))
|
||||
- Fix docs ([\#643](https://github.com/open-mmlab/mmpose/pull/643),[\#684](https://github.com/open-mmlab/mmpose/pull/684),[\#688](https://github.com/open-mmlab/mmpose/pull/688),[\#690](https://github.com/open-mmlab/mmpose/pull/690),[\#692](https://github.com/open-mmlab/mmpose/pull/692))
|
||||
|
||||
**Breaking Changes**
|
||||
|
||||
- Reorganize configs by tasks, algorithms, datasets, and techniques ([\#647](https://github.com/open-mmlab/mmpose/pull/647))
|
||||
- Rename heads and detectors ([\#667](https://github.com/open-mmlab/mmpose/pull/667))
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Add `radius` and `thickness` parameters in visualization ([\#638](https://github.com/open-mmlab/mmpose/pull/638))
|
||||
- Add `trans_prob` parameter in `TopDownRandomTranslation` ([\#650](https://github.com/open-mmlab/mmpose/pull/650))
|
||||
- Switch to `MMCV MODEL_REGISTRY` ([\#669](https://github.com/open-mmlab/mmpose/pull/669))
|
||||
- Update dependencies ([\#674](https://github.com/open-mmlab/mmpose/pull/674), [\#676](https://github.com/open-mmlab/mmpose/pull/676))
|
||||
|
||||
## v0.14.0 (06/05/2021)
|
||||
|
||||
**Highlights**
|
||||
|
||||
1. Support animal pose estimation with 7 popular datasets.
|
||||
1. Support "A simple yet effective baseline for 3d human pose estimation" (ICCV'17).
|
||||
|
||||
**New Features**
|
||||
|
||||
- Support "A simple yet effective baseline for 3d human pose estimation" (ICCV'17) ([\#554](https://github.com/open-mmlab/mmpose/pull/554),[\#558](https://github.com/open-mmlab/mmpose/pull/558),[\#566](https://github.com/open-mmlab/mmpose/pull/566),[\#570](https://github.com/open-mmlab/mmpose/pull/570),[\#589](https://github.com/open-mmlab/mmpose/pull/589))
|
||||
- Support animal pose estimation ([\#559](https://github.com/open-mmlab/mmpose/pull/559),[\#561](https://github.com/open-mmlab/mmpose/pull/561),[\#563](https://github.com/open-mmlab/mmpose/pull/563),[\#571](https://github.com/open-mmlab/mmpose/pull/571),[\#603](https://github.com/open-mmlab/mmpose/pull/603),[\#605](https://github.com/open-mmlab/mmpose/pull/605))
|
||||
- Support Horse-10 dataset ([\#561](https://github.com/open-mmlab/mmpose/pull/561)), MacaquePose dataset ([\#561](https://github.com/open-mmlab/mmpose/pull/561)), Vinegar Fly dataset ([\#561](https://github.com/open-mmlab/mmpose/pull/561)), Desert Locust dataset ([\#561](https://github.com/open-mmlab/mmpose/pull/561)), Grevy's Zebra dataset ([\#561](https://github.com/open-mmlab/mmpose/pull/561)), ATRW dataset ([\#571](https://github.com/open-mmlab/mmpose/pull/571)), and Animal-Pose dataset ([\#603](https://github.com/open-mmlab/mmpose/pull/603))
|
||||
- Support bottom-up pose tracking demo ([\#574](https://github.com/open-mmlab/mmpose/pull/574))
|
||||
- Support FP16 training ([\#584](https://github.com/open-mmlab/mmpose/pull/584),[\#616](https://github.com/open-mmlab/mmpose/pull/616),[\#626](https://github.com/open-mmlab/mmpose/pull/626))
|
||||
- Support NMS for bottom-up ([\#609](https://github.com/open-mmlab/mmpose/pull/609))
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix bugs in the top-down demo, when there are no people in the images ([\#569](https://github.com/open-mmlab/mmpose/pull/569)).
|
||||
- Fix the links in the doc ([\#612](https://github.com/open-mmlab/mmpose/pull/612))
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Speed up top-down inference ([\#560](https://github.com/open-mmlab/mmpose/pull/560))
|
||||
- Update github CI ([\#562](https://github.com/open-mmlab/mmpose/pull/562), [\#564](https://github.com/open-mmlab/mmpose/pull/564))
|
||||
- Update Readme ([\#578](https://github.com/open-mmlab/mmpose/pull/578),[\#579](https://github.com/open-mmlab/mmpose/pull/579),[\#580](https://github.com/open-mmlab/mmpose/pull/580),[\#592](https://github.com/open-mmlab/mmpose/pull/592),[\#599](https://github.com/open-mmlab/mmpose/pull/599),[\#600](https://github.com/open-mmlab/mmpose/pull/600),[\#607](https://github.com/open-mmlab/mmpose/pull/607))
|
||||
- Update Faq ([\#587](https://github.com/open-mmlab/mmpose/pull/587), [\#610](https://github.com/open-mmlab/mmpose/pull/610))
|
||||
|
||||
## v0.13.0 (31/03/2021)
|
||||
|
||||
**Highlights**
|
||||
|
||||
1. Support Wingloss.
|
||||
1. Support RHD hand dataset.
|
||||
|
||||
**New Features**
|
||||
|
||||
- Support Wingloss ([\#482](https://github.com/open-mmlab/mmpose/pull/482))
|
||||
- Support RHD hand dataset ([\#523](https://github.com/open-mmlab/mmpose/pull/523), [\#551](https://github.com/open-mmlab/mmpose/pull/551))
|
||||
- Support Human3.6m dataset for 3d keypoint detection ([\#518](https://github.com/open-mmlab/mmpose/pull/518), [\#527](https://github.com/open-mmlab/mmpose/pull/527))
|
||||
- Support TCN model for 3d keypoint detection ([\#521](https://github.com/open-mmlab/mmpose/pull/521), [\#522](https://github.com/open-mmlab/mmpose/pull/522))
|
||||
- Support Interhand3D model for 3d hand detection ([\#536](https://github.com/open-mmlab/mmpose/pull/536))
|
||||
- Support Multi-task detector ([\#480](https://github.com/open-mmlab/mmpose/pull/480))
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix PCKh@0.1 calculation ([\#516](https://github.com/open-mmlab/mmpose/pull/516))
|
||||
- Fix unittest ([\#529](https://github.com/open-mmlab/mmpose/pull/529))
|
||||
- Fix circular importing ([\#542](https://github.com/open-mmlab/mmpose/pull/542))
|
||||
- Fix bugs in bottom-up keypoint score ([\#548](https://github.com/open-mmlab/mmpose/pull/548))
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Update config & checkpoints ([\#525](https://github.com/open-mmlab/mmpose/pull/525), [\#546](https://github.com/open-mmlab/mmpose/pull/546))
|
||||
- Fix typos ([\#514](https://github.com/open-mmlab/mmpose/pull/514), [\#519](https://github.com/open-mmlab/mmpose/pull/519), [\#532](https://github.com/open-mmlab/mmpose/pull/532), [\#537](https://github.com/open-mmlab/mmpose/pull/537), )
|
||||
- Speed up post processing ([\#535](https://github.com/open-mmlab/mmpose/pull/535))
|
||||
- Update mmcv version dependency ([\#544](https://github.com/open-mmlab/mmpose/pull/544))
|
||||
|
||||
## v0.12.0 (28/02/2021)
|
||||
|
||||
**Highlights**
|
||||
|
||||
1. Support DeepPose algorithm.
|
||||
|
||||
**New Features**
|
||||
|
||||
- Support DeepPose algorithm ([\#446](https://github.com/open-mmlab/mmpose/pull/446), [\#461](https://github.com/open-mmlab/mmpose/pull/461))
|
||||
- Support interhand3d dataset ([\#468](https://github.com/open-mmlab/mmpose/pull/468))
|
||||
- Support Albumentation pipeline ([\#469](https://github.com/open-mmlab/mmpose/pull/469))
|
||||
- Support PhotometricDistortion pipeline ([\#485](https://github.com/open-mmlab/mmpose/pull/485))
|
||||
- Set seed option for training ([\#493](https://github.com/open-mmlab/mmpose/pull/493))
|
||||
- Add demos for face keypoint detection ([\#502](https://github.com/open-mmlab/mmpose/pull/502))
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Change channel order according to configs ([\#504](https://github.com/open-mmlab/mmpose/pull/504))
|
||||
- Fix `num_factors` in UDP encoding ([\#495](https://github.com/open-mmlab/mmpose/pull/495))
|
||||
- Fix configs ([\#456](https://github.com/open-mmlab/mmpose/pull/456))
|
||||
|
||||
**Breaking Changes**
|
||||
|
||||
- Refactor configs for wholebody pose estimation ([\#487](https://github.com/open-mmlab/mmpose/pull/487), [\#491](https://github.com/open-mmlab/mmpose/pull/491))
|
||||
- Rename `decode` function for heads ([\#481](https://github.com/open-mmlab/mmpose/pull/481))
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Update config & checkpoints ([\#453](https://github.com/open-mmlab/mmpose/pull/453),[\#484](https://github.com/open-mmlab/mmpose/pull/484),[\#487](https://github.com/open-mmlab/mmpose/pull/487))
|
||||
- Add README in Chinese ([\#462](https://github.com/open-mmlab/mmpose/pull/462))
|
||||
- Add tutorials about configs ([\#465](https://github.com/open-mmlab/mmpose/pull/465))
|
||||
- Add demo videos for various tasks ([\#499](https://github.com/open-mmlab/mmpose/pull/499), [\#503](https://github.com/open-mmlab/mmpose/pull/503))
|
||||
- Update docs about MMPose installation ([\#467](https://github.com/open-mmlab/mmpose/pull/467), [\#505](https://github.com/open-mmlab/mmpose/pull/505))
|
||||
- Rename `stat.py` to `stats.py` ([\#483](https://github.com/open-mmlab/mmpose/pull/483))
|
||||
- Fix typos ([\#463](https://github.com/open-mmlab/mmpose/pull/463), [\#464](https://github.com/open-mmlab/mmpose/pull/464), [\#477](https://github.com/open-mmlab/mmpose/pull/477), [\#481](https://github.com/open-mmlab/mmpose/pull/481))
|
||||
- latex to bibtex ([\#471](https://github.com/open-mmlab/mmpose/pull/471))
|
||||
- Update FAQ ([\#466](https://github.com/open-mmlab/mmpose/pull/466))
|
||||
|
||||
## v0.11.0 (31/01/2021)
|
||||
|
||||
**Highlights**
|
||||
|
||||
1. Support fashion landmark detection.
|
||||
1. Support face keypoint detection.
|
||||
1. Support pose tracking with MMTracking.
|
||||
|
||||
**New Features**
|
||||
|
||||
- Support fashion landmark detection (DeepFashion) ([\#413](https://github.com/open-mmlab/mmpose/pull/413))
|
||||
- Support face keypoint detection (300W, AFLW, COFW, WFLW) ([\#367](https://github.com/open-mmlab/mmpose/pull/367))
|
||||
- Support pose tracking demo with MMTracking ([\#427](https://github.com/open-mmlab/mmpose/pull/427))
|
||||
- Support face demo ([\#443](https://github.com/open-mmlab/mmpose/pull/443))
|
||||
- Support AIC dataset for bottom-up methods ([\#438](https://github.com/open-mmlab/mmpose/pull/438), [\#449](https://github.com/open-mmlab/mmpose/pull/449))
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix multi-batch training ([\#434](https://github.com/open-mmlab/mmpose/pull/434))
|
||||
- Fix sigmas in AIC dataset ([\#441](https://github.com/open-mmlab/mmpose/pull/441))
|
||||
- Fix config file ([\#420](https://github.com/open-mmlab/mmpose/pull/420))
|
||||
|
||||
**Breaking Changes**
|
||||
|
||||
- Refactor Heads ([\#382](https://github.com/open-mmlab/mmpose/pull/382))
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Update readme ([\#409](https://github.com/open-mmlab/mmpose/pull/409), [\#412](https://github.com/open-mmlab/mmpose/pull/412), [\#415](https://github.com/open-mmlab/mmpose/pull/415), [\#416](https://github.com/open-mmlab/mmpose/pull/416), [\#419](https://github.com/open-mmlab/mmpose/pull/419), [\#421](https://github.com/open-mmlab/mmpose/pull/421), [\#422](https://github.com/open-mmlab/mmpose/pull/422), [\#424](https://github.com/open-mmlab/mmpose/pull/424), [\#425](https://github.com/open-mmlab/mmpose/pull/425), [\#435](https://github.com/open-mmlab/mmpose/pull/435), [\#436](https://github.com/open-mmlab/mmpose/pull/436), [\#437](https://github.com/open-mmlab/mmpose/pull/437), [\#444](https://github.com/open-mmlab/mmpose/pull/444), [\#445](https://github.com/open-mmlab/mmpose/pull/445))
|
||||
- Add GAP (global average pooling) neck ([\#414](https://github.com/open-mmlab/mmpose/pull/414))
|
||||
- Speed up ([\#411](https://github.com/open-mmlab/mmpose/pull/411), [\#423](https://github.com/open-mmlab/mmpose/pull/423))
|
||||
- Support COCO test-dev test ([\#433](https://github.com/open-mmlab/mmpose/pull/433))
|
||||
|
||||
## v0.10.0 (31/12/2020)
|
||||
|
||||
**Highlights**
|
||||
|
||||
1. Support more human pose estimation methods.
|
||||
- [UDP](https://arxiv.org/abs/1911.07524)
|
||||
1. Support pose tracking.
|
||||
1. Support multi-batch inference.
|
||||
1. Add some useful tools, including `analyze_logs`, `get_flops`, `print_config`.
|
||||
1. Support more backbone networks.
|
||||
- [ResNest](https://arxiv.org/pdf/2004.08955.pdf)
|
||||
- [VGG](https://arxiv.org/abs/1409.1556)
|
||||
|
||||
**New Features**
|
||||
|
||||
- Support UDP ([\#353](https://github.com/open-mmlab/mmpose/pull/353), [\#371](https://github.com/open-mmlab/mmpose/pull/371), [\#402](https://github.com/open-mmlab/mmpose/pull/402))
|
||||
- Support multi-batch inference ([\#390](https://github.com/open-mmlab/mmpose/pull/390))
|
||||
- Support MHP dataset ([\#386](https://github.com/open-mmlab/mmpose/pull/386))
|
||||
- Support pose tracking demo ([\#380](https://github.com/open-mmlab/mmpose/pull/380))
|
||||
- Support mpii-trb demo ([\#372](https://github.com/open-mmlab/mmpose/pull/372))
|
||||
- Support mobilenet for hand pose estimation ([\#377](https://github.com/open-mmlab/mmpose/pull/377))
|
||||
- Support ResNest backbone ([\#370](https://github.com/open-mmlab/mmpose/pull/370))
|
||||
- Support VGG backbone ([\#370](https://github.com/open-mmlab/mmpose/pull/370))
|
||||
- Add some useful tools, including `analyze_logs`, `get_flops`, `print_config` ([\#324](https://github.com/open-mmlab/mmpose/pull/324))
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix bugs in pck evaluation ([\#328](https://github.com/open-mmlab/mmpose/pull/328))
|
||||
- Fix model download links in README ([\#396](https://github.com/open-mmlab/mmpose/pull/396), [\#397](https://github.com/open-mmlab/mmpose/pull/397))
|
||||
- Fix CrowdPose annotations and update benchmarks ([\#384](https://github.com/open-mmlab/mmpose/pull/384))
|
||||
- Fix modelzoo stat ([\#354](https://github.com/open-mmlab/mmpose/pull/354), [\#360](https://github.com/open-mmlab/mmpose/pull/360), [\#362](https://github.com/open-mmlab/mmpose/pull/362))
|
||||
- Fix config files for aic datasets ([\#340](https://github.com/open-mmlab/mmpose/pull/340))
|
||||
|
||||
**Breaking Changes**
|
||||
|
||||
- Rename `image_thr` to `det_bbox_thr` for top-down methods.
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Organize the readme files ([\#398](https://github.com/open-mmlab/mmpose/pull/398), [\#399](https://github.com/open-mmlab/mmpose/pull/399), [\#400](https://github.com/open-mmlab/mmpose/pull/400))
|
||||
- Check linting for markdown ([\#379](https://github.com/open-mmlab/mmpose/pull/379))
|
||||
- Add faq.md ([\#350](https://github.com/open-mmlab/mmpose/pull/350))
|
||||
- Remove PyTorch 1.4 in CI ([\#338](https://github.com/open-mmlab/mmpose/pull/338))
|
||||
- Add pypi badge in readme ([\#329](https://github.com/open-mmlab/mmpose/pull/329))
|
||||
|
||||
## v0.9.0 (30/11/2020)
|
||||
|
||||
**Highlights**
|
||||
|
||||
1. Support more human pose estimation methods.
|
||||
- [MSPN](https://arxiv.org/abs/1901.00148)
|
||||
- [RSN](https://arxiv.org/abs/2003.04030)
|
||||
1. Support video pose estimation datasets.
|
||||
- [sub-JHMDB](http://jhmdb.is.tue.mpg.de/dataset)
|
||||
1. Support Onnx model conversion.
|
||||
|
||||
**New Features**
|
||||
|
||||
- Support MSPN ([\#278](https://github.com/open-mmlab/mmpose/pull/278))
|
||||
- Support RSN ([\#221](https://github.com/open-mmlab/mmpose/pull/221), [\#318](https://github.com/open-mmlab/mmpose/pull/318))
|
||||
- Support new post-processing method for MSPN & RSN ([\#288](https://github.com/open-mmlab/mmpose/pull/288))
|
||||
- Support sub-JHMDB dataset ([\#292](https://github.com/open-mmlab/mmpose/pull/292))
|
||||
- Support urls for pre-trained models in config files ([\#232](https://github.com/open-mmlab/mmpose/pull/232))
|
||||
- Support Onnx ([\#305](https://github.com/open-mmlab/mmpose/pull/305))
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix model download links in README ([\#255](https://github.com/open-mmlab/mmpose/pull/255), [\#315](https://github.com/open-mmlab/mmpose/pull/315))
|
||||
|
||||
**Breaking Changes**
|
||||
|
||||
- `post_process=True|False` and `unbiased_decoding=True|False` are deprecated, use `post_process=None|default|unbiased` etc. instead ([\#288](https://github.com/open-mmlab/mmpose/pull/288))
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Enrich the model zoo ([\#256](https://github.com/open-mmlab/mmpose/pull/256), [\#320](https://github.com/open-mmlab/mmpose/pull/320))
|
||||
- Set the default map_location as 'cpu' to reduce gpu memory cost ([\#227](https://github.com/open-mmlab/mmpose/pull/227))
|
||||
- Support return heatmaps and backbone features for bottom-up models ([\#229](https://github.com/open-mmlab/mmpose/pull/229))
|
||||
- Upgrade mmcv maximum & minimum version ([\#269](https://github.com/open-mmlab/mmpose/pull/269), [\#313](https://github.com/open-mmlab/mmpose/pull/313))
|
||||
- Automatically add modelzoo statistics to readthedocs ([\#252](https://github.com/open-mmlab/mmpose/pull/252))
|
||||
- Fix Pylint issues ([\#258](https://github.com/open-mmlab/mmpose/pull/258), [\#259](https://github.com/open-mmlab/mmpose/pull/259), [\#260](https://github.com/open-mmlab/mmpose/pull/260), [\#262](https://github.com/open-mmlab/mmpose/pull/262), [\#265](https://github.com/open-mmlab/mmpose/pull/265), [\#267](https://github.com/open-mmlab/mmpose/pull/267), [\#268](https://github.com/open-mmlab/mmpose/pull/268), [\#270](https://github.com/open-mmlab/mmpose/pull/270), [\#271](https://github.com/open-mmlab/mmpose/pull/271), [\#272](https://github.com/open-mmlab/mmpose/pull/272), [\#273](https://github.com/open-mmlab/mmpose/pull/273), [\#275](https://github.com/open-mmlab/mmpose/pull/275), [\#276](https://github.com/open-mmlab/mmpose/pull/276), [\#283](https://github.com/open-mmlab/mmpose/pull/283), [\#285](https://github.com/open-mmlab/mmpose/pull/285), [\#293](https://github.com/open-mmlab/mmpose/pull/293), [\#294](https://github.com/open-mmlab/mmpose/pull/294), [\#295](https://github.com/open-mmlab/mmpose/pull/295))
|
||||
- Improve README ([\#226](https://github.com/open-mmlab/mmpose/pull/226), [\#257](https://github.com/open-mmlab/mmpose/pull/257), [\#264](https://github.com/open-mmlab/mmpose/pull/264), [\#280](https://github.com/open-mmlab/mmpose/pull/280), [\#296](https://github.com/open-mmlab/mmpose/pull/296))
|
||||
- Support PyTorch 1.7 in CI ([\#274](https://github.com/open-mmlab/mmpose/pull/274))
|
||||
- Add docs/tutorials for running demos ([\#263](https://github.com/open-mmlab/mmpose/pull/263))
|
||||
|
||||
## v0.8.0 (31/10/2020)
|
||||
|
||||
**Highlights**
|
||||
|
||||
1. Support more human pose estimation datasets.
|
||||
- [CrowdPose](https://github.com/Jeff-sjtu/CrowdPose)
|
||||
- [PoseTrack18](https://posetrack.net/)
|
||||
1. Support more 2D hand keypoint estimation datasets.
|
||||
- [InterHand2.6](https://github.com/facebookresearch/InterHand2.6M)
|
||||
1. Support adversarial training for 3D human shape recovery.
|
||||
1. Support multi-stage losses.
|
||||
1. Support mpii demo.
|
||||
|
||||
**New Features**
|
||||
|
||||
- Support [CrowdPose](https://github.com/Jeff-sjtu/CrowdPose) dataset ([\#195](https://github.com/open-mmlab/mmpose/pull/195))
|
||||
- Support [PoseTrack18](https://posetrack.net/) dataset ([\#220](https://github.com/open-mmlab/mmpose/pull/220))
|
||||
- Support [InterHand2.6](https://github.com/facebookresearch/InterHand2.6M) dataset ([\#202](https://github.com/open-mmlab/mmpose/pull/202))
|
||||
- Support adversarial training for 3D human shape recovery ([\#192](https://github.com/open-mmlab/mmpose/pull/192))
|
||||
- Support multi-stage losses ([\#204](https://github.com/open-mmlab/mmpose/pull/204))
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix config files ([\#190](https://github.com/open-mmlab/mmpose/pull/190))
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Add mpii demo ([\#216](https://github.com/open-mmlab/mmpose/pull/216))
|
||||
- Improve README ([\#181](https://github.com/open-mmlab/mmpose/pull/181), [\#183](https://github.com/open-mmlab/mmpose/pull/183), [\#208](https://github.com/open-mmlab/mmpose/pull/208))
|
||||
- Support return heatmaps and backbone features ([\#196](https://github.com/open-mmlab/mmpose/pull/196), [\#212](https://github.com/open-mmlab/mmpose/pull/212))
|
||||
- Support different return formats of mmdetection models ([\#217](https://github.com/open-mmlab/mmpose/pull/217))
|
||||
|
||||
## v0.7.0 (30/9/2020)
|
||||
|
||||
**Highlights**
|
||||
|
||||
1. Support HMR for 3D human shape recovery.
|
||||
1. Support WholeBody human pose estimation.
|
||||
- [COCO-WholeBody](https://github.com/jin-s13/COCO-WholeBody)
|
||||
1. Support more 2D hand keypoint estimation datasets.
|
||||
- [Frei-hand](https://lmb.informatik.uni-freiburg.de/projects/freihand/)
|
||||
- [CMU Panoptic HandDB](http://domedb.perception.cs.cmu.edu/handdb.html)
|
||||
1. Add more popular backbones & enrich the [modelzoo](https://mmpose.readthedocs.io/en/latest/model_zoo.html)
|
||||
- ShuffleNetv2
|
||||
1. Support hand demo and whole-body demo.
|
||||
|
||||
**New Features**
|
||||
|
||||
- Support HMR for 3D human shape recovery ([\#157](https://github.com/open-mmlab/mmpose/pull/157), [\#160](https://github.com/open-mmlab/mmpose/pull/160), [\#161](https://github.com/open-mmlab/mmpose/pull/161), [\#162](https://github.com/open-mmlab/mmpose/pull/162))
|
||||
- Support [COCO-WholeBody](https://github.com/jin-s13/COCO-WholeBody) dataset ([\#133](https://github.com/open-mmlab/mmpose/pull/133))
|
||||
- Support [Frei-hand](https://lmb.informatik.uni-freiburg.de/projects/freihand/) dataset ([\#125](https://github.com/open-mmlab/mmpose/pull/125))
|
||||
- Support [CMU Panoptic HandDB](http://domedb.perception.cs.cmu.edu/handdb.html) dataset ([\#144](https://github.com/open-mmlab/mmpose/pull/144))
|
||||
- Support H36M dataset ([\#159](https://github.com/open-mmlab/mmpose/pull/159))
|
||||
- Support ShuffleNetv2 ([\#139](https://github.com/open-mmlab/mmpose/pull/139))
|
||||
- Support saving best models based on key indicator ([\#127](https://github.com/open-mmlab/mmpose/pull/127))
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix typos in docs ([\#121](https://github.com/open-mmlab/mmpose/pull/121))
|
||||
- Fix assertion ([\#142](https://github.com/open-mmlab/mmpose/pull/142))
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Add tools to transform .mat format to .json format ([\#126](https://github.com/open-mmlab/mmpose/pull/126))
|
||||
- Add hand demo ([\#115](https://github.com/open-mmlab/mmpose/pull/115))
|
||||
- Add whole-body demo ([\#163](https://github.com/open-mmlab/mmpose/pull/163))
|
||||
- Reuse mmcv utility function and update version files ([\#135](https://github.com/open-mmlab/mmpose/pull/135), [\#137](https://github.com/open-mmlab/mmpose/pull/137))
|
||||
- Enrich the modelzoo ([\#147](https://github.com/open-mmlab/mmpose/pull/147), [\#169](https://github.com/open-mmlab/mmpose/pull/169))
|
||||
- Improve docs ([\#174](https://github.com/open-mmlab/mmpose/pull/174), [\#175](https://github.com/open-mmlab/mmpose/pull/175), [\#178](https://github.com/open-mmlab/mmpose/pull/178))
|
||||
- Improve README ([\#176](https://github.com/open-mmlab/mmpose/pull/176))
|
||||
- Improve version.py ([\#173](https://github.com/open-mmlab/mmpose/pull/173))
|
||||
|
||||
## v0.6.0 (31/8/2020)
|
||||
|
||||
**Highlights**
|
||||
|
||||
1. Add more popular backbones & enrich the [modelzoo](https://mmpose.readthedocs.io/en/latest/model_zoo.html)
|
||||
- ResNext
|
||||
- SEResNet
|
||||
- ResNetV1D
|
||||
- MobileNetv2
|
||||
- ShuffleNetv1
|
||||
- CPM (Convolutional Pose Machine)
|
||||
1. Add more popular datasets:
|
||||
- [AIChallenger](https://arxiv.org/abs/1711.06475?context=cs.CV)
|
||||
- [MPII](http://human-pose.mpi-inf.mpg.de/)
|
||||
- [MPII-TRB](https://github.com/kennymckormick/Triplet-Representation-of-human-Body)
|
||||
- [OCHuman](http://www.liruilong.cn/projects/pose2seg/index.html)
|
||||
1. Support 2d hand keypoint estimation.
|
||||
- [OneHand10K](https://www.yangangwang.com/papers/WANG-MCC-2018-10.html)
|
||||
1. Support bottom-up inference.
|
||||
|
||||
**New Features**
|
||||
|
||||
- Support [OneHand10K](https://www.yangangwang.com/papers/WANG-MCC-2018-10.html) dataset ([\#52](https://github.com/open-mmlab/mmpose/pull/52))
|
||||
- Support [MPII](http://human-pose.mpi-inf.mpg.de/) dataset ([\#55](https://github.com/open-mmlab/mmpose/pull/55))
|
||||
- Support [MPII-TRB](https://github.com/kennymckormick/Triplet-Representation-of-human-Body) dataset ([\#19](https://github.com/open-mmlab/mmpose/pull/19), [\#47](https://github.com/open-mmlab/mmpose/pull/47), [\#48](https://github.com/open-mmlab/mmpose/pull/48))
|
||||
- Support [OCHuman](http://www.liruilong.cn/projects/pose2seg/index.html) dataset ([\#70](https://github.com/open-mmlab/mmpose/pull/70))
|
||||
- Support [AIChallenger](https://arxiv.org/abs/1711.06475?context=cs.CV) dataset ([\#87](https://github.com/open-mmlab/mmpose/pull/87))
|
||||
- Support multiple backbones ([\#26](https://github.com/open-mmlab/mmpose/pull/26))
|
||||
- Support CPM model ([\#56](https://github.com/open-mmlab/mmpose/pull/56))
|
||||
|
||||
**Bug Fixes**
|
||||
|
||||
- Fix configs for MPII & MPII-TRB datasets ([\#93](https://github.com/open-mmlab/mmpose/pull/93))
|
||||
- Fix the bug of missing `test_pipeline` in configs ([\#14](https://github.com/open-mmlab/mmpose/pull/14))
|
||||
- Fix typos ([\#27](https://github.com/open-mmlab/mmpose/pull/27), [\#28](https://github.com/open-mmlab/mmpose/pull/28), [\#50](https://github.com/open-mmlab/mmpose/pull/50), [\#53](https://github.com/open-mmlab/mmpose/pull/53), [\#63](https://github.com/open-mmlab/mmpose/pull/63))
|
||||
|
||||
**Improvements**
|
||||
|
||||
- Update benchmark ([\#93](https://github.com/open-mmlab/mmpose/pull/93))
|
||||
- Add Dockerfile ([\#44](https://github.com/open-mmlab/mmpose/pull/44))
|
||||
- Improve unittest coverage and minor fix ([\#18](https://github.com/open-mmlab/mmpose/pull/18))
|
||||
- Support CPUs for train/val/demo ([\#34](https://github.com/open-mmlab/mmpose/pull/34))
|
||||
- Support bottom-up demo ([\#69](https://github.com/open-mmlab/mmpose/pull/69))
|
||||
- Add tools to publish model ([\#62](https://github.com/open-mmlab/mmpose/pull/62))
|
||||
- Enrich the modelzoo ([\#64](https://github.com/open-mmlab/mmpose/pull/64), [\#68](https://github.com/open-mmlab/mmpose/pull/68), [\#82](https://github.com/open-mmlab/mmpose/pull/82))
|
||||
|
||||
## v0.5.0 (21/7/2020)
|
||||
|
||||
**Highlights**
|
||||
|
||||
- MMPose is released.
|
||||
|
||||
**Main Features**
|
||||
|
||||
- Support both top-down and bottom-up pose estimation approaches.
|
||||
- Achieve higher training efficiency and higher accuracy than other popular codebases (e.g. AlphaPose, HRNet)
|
||||
- Support various backbone models: ResNet, HRNet, SCNet, Houglass and HigherHRNet.
|
||||
+101
@@ -0,0 +1,101 @@
|
||||
#!/usr/bin/env python
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
import os
|
||||
import re
|
||||
from glob import glob
|
||||
|
||||
from titlecase import titlecase
|
||||
|
||||
os.makedirs('topics', exist_ok=True)
|
||||
os.makedirs('papers', exist_ok=True)
|
||||
|
||||
# Step 1: get subtopics: a mix of topic and task
|
||||
minisections = [
|
||||
x.split('/')[-2:] for x in glob('../../configs/*/*') if '_base_' not in x
|
||||
]
|
||||
alltopics = sorted(list(set(x[0] for x in minisections)))
|
||||
subtopics = []
|
||||
for t in alltopics:
|
||||
data = [x[1].split('_') for x in minisections if x[0] == t]
|
||||
valid_ids = []
|
||||
for i in range(len(data[0])):
|
||||
if len(set(x[i] for x in data)) > 1:
|
||||
valid_ids.append(i)
|
||||
if len(valid_ids) > 0:
|
||||
subtopics.extend([
|
||||
f"{titlecase(t)}({','.join([d[i].title() for i in valid_ids])})",
|
||||
t, '_'.join(d)
|
||||
] for d in data)
|
||||
else:
|
||||
subtopics.append([titlecase(t), t, '_'.join(data[0])])
|
||||
|
||||
contents = {}
|
||||
for subtopic, topic, task in sorted(subtopics):
|
||||
# Step 2: get all datasets
|
||||
datasets = sorted(
|
||||
list(
|
||||
set(
|
||||
x.split('/')[-2]
|
||||
for x in glob(f'../../configs/{topic}/{task}/*/*/'))))
|
||||
contents[subtopic] = {d: {} for d in datasets}
|
||||
for dataset in datasets:
|
||||
# Step 3: get all settings: algorithm + backbone + trick
|
||||
for file in glob(f'../../configs/{topic}/{task}/*/{dataset}/*.md'):
|
||||
keywords = (file.split('/')[-3],
|
||||
*file.split('/')[-1].split('_')[:-1])
|
||||
with open(file, 'r') as f:
|
||||
contents[subtopic][dataset][keywords] = f.read()
|
||||
|
||||
# Step 4: write files by topic
|
||||
for subtopic, datasets in contents.items():
|
||||
lines = [f'# {subtopic}', '']
|
||||
for dataset, keywords in datasets.items():
|
||||
if len(keywords) == 0:
|
||||
continue
|
||||
lines += [
|
||||
'<hr/>', '<br/><br/>', '', f'## {titlecase(dataset)} Dataset', ''
|
||||
]
|
||||
for keyword, info in keywords.items():
|
||||
keyword_strs = [titlecase(x.replace('_', ' ')) for x in keyword]
|
||||
lines += [
|
||||
'<br/>', '',
|
||||
(f'### {" + ".join(keyword_strs)}'
|
||||
f' on {titlecase(dataset)}'), '', info, ''
|
||||
]
|
||||
|
||||
with open(f'topics/{subtopic.lower()}.md', 'w') as f:
|
||||
f.write('\n'.join(lines))
|
||||
|
||||
# Step 5: write files by paper
|
||||
allfiles = [x.split('/')[-2:] for x in glob('../en/papers/*/*.md')]
|
||||
sections = sorted(list(set(x[0] for x in allfiles)))
|
||||
for section in sections:
|
||||
lines = [f'# {titlecase(section)}', '']
|
||||
files = [f for s, f in allfiles if s == section]
|
||||
for file in files:
|
||||
with open(f'../en/papers/{section}/{file}', 'r') as f:
|
||||
keyline = [
|
||||
line for line in f.readlines() if line.startswith('<summary')
|
||||
][0]
|
||||
papername = re.sub(r'\<.*?\>', '', keyline).strip()
|
||||
paperlines = []
|
||||
for subtopic, datasets in contents.items():
|
||||
for dataset, keywords in datasets.items():
|
||||
keywords = {k: v for k, v in keywords.items() if keyline in v}
|
||||
if len(keywords) == 0:
|
||||
continue
|
||||
for keyword, info in keywords.items():
|
||||
keyword_strs = [
|
||||
titlecase(x.replace('_', ' ')) for x in keyword
|
||||
]
|
||||
paperlines += [
|
||||
'<br/>', '',
|
||||
(f'### {" + ".join(keyword_strs)}'
|
||||
f' on {titlecase(dataset)}'), '', info, ''
|
||||
]
|
||||
if len(paperlines) > 0:
|
||||
lines += ['<hr/>', '<br/><br/>', '', f'## {papername}', '']
|
||||
lines += paperlines
|
||||
|
||||
with open(f'papers/{section}.md', 'w') as f:
|
||||
f.write('\n'.join(lines))
|
||||
@@ -0,0 +1,116 @@
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
# Configuration file for the Sphinx documentation builder.
|
||||
#
|
||||
# This file only contains a selection of the most common options. For a full
|
||||
# list see the documentation:
|
||||
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
||||
|
||||
# -- Path setup --------------------------------------------------------------
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
import pytorch_sphinx_theme
|
||||
|
||||
sys.path.insert(0, os.path.abspath('../..'))
|
||||
|
||||
# -- Project information -----------------------------------------------------
|
||||
|
||||
project = 'MMPose'
|
||||
copyright = '2020-2021, OpenMMLab'
|
||||
author = 'MMPose Authors'
|
||||
|
||||
# The full version, including alpha/beta/rc tags
|
||||
version_file = '../../mmpose/version.py'
|
||||
|
||||
|
||||
def get_version():
|
||||
with open(version_file, 'r') as f:
|
||||
exec(compile(f.read(), version_file, 'exec'))
|
||||
return locals()['__version__']
|
||||
|
||||
|
||||
release = get_version()
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
extensions = [
|
||||
'sphinx.ext.autodoc', 'sphinx.ext.napoleon', 'sphinx.ext.viewcode',
|
||||
'sphinx_markdown_tables', 'sphinx_copybutton', 'myst_parser'
|
||||
]
|
||||
|
||||
autodoc_mock_imports = ['json_tricks', 'mmpose.version']
|
||||
|
||||
# Ignore >>> when copying code
|
||||
copybutton_prompt_text = r'>>> |\.\.\. '
|
||||
copybutton_prompt_is_regexp = True
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ['_templates']
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
# This pattern also affects html_static_path and html_extra_path.
|
||||
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
|
||||
|
||||
# -- Options for HTML output -------------------------------------------------
|
||||
source_suffix = {
|
||||
'.rst': 'restructuredtext',
|
||||
'.md': 'markdown',
|
||||
}
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
#
|
||||
html_theme = 'pytorch_sphinx_theme'
|
||||
html_theme_path = [pytorch_sphinx_theme.get_html_theme_path()]
|
||||
html_theme_options = {
|
||||
'menu': [
|
||||
{
|
||||
'name':
|
||||
'Tutorial',
|
||||
'url':
|
||||
'https://colab.research.google.com/github/'
|
||||
'open-mmlab/mmpose/blob/master/demo/MMPose_Tutorial.ipynb'
|
||||
},
|
||||
{
|
||||
'name': 'GitHub',
|
||||
'url': 'https://github.com/open-mmlab/mmpose'
|
||||
},
|
||||
],
|
||||
# Specify the language of the shared menu
|
||||
'menu_lang':
|
||||
'en'
|
||||
}
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
|
||||
language = 'en'
|
||||
|
||||
html_static_path = ['_static']
|
||||
html_css_files = ['css/readthedocs.css']
|
||||
|
||||
# Enable ::: for my_st
|
||||
myst_enable_extensions = ['colon_fence']
|
||||
|
||||
master_doc = 'index'
|
||||
|
||||
|
||||
def builder_inited_handler(app):
|
||||
subprocess.run(['./collect.py'])
|
||||
subprocess.run(['./merge_docs.sh'])
|
||||
subprocess.run(['./stats.py'])
|
||||
|
||||
|
||||
def setup(app):
|
||||
app.connect('builder-inited', builder_inited_handler)
|
||||
@@ -0,0 +1,13 @@
|
||||
# Prepare Datasets
|
||||
|
||||
MMPose supports multiple tasks. Please follow the corresponding guidelines for data preparation.
|
||||
|
||||
- [2D Body Keypoint](tasks/2d_body_keypoint.md)
|
||||
- [3D Body Keypoint](tasks/3d_body_keypoint.md)
|
||||
- [3D Body Mesh Recovery](tasks/3d_body_mesh.md)
|
||||
- [2D Hand Keypoint](tasks/2d_hand_keypoint.md)
|
||||
- [3D Hand Keypoint](tasks/3d_hand_keypoint.md)
|
||||
- [2D Face Keypoint](tasks/2d_face_keypoint.md)
|
||||
- [2D WholeBody Keypoint](tasks/2d_wholebody_keypoint.md)
|
||||
- [2D Fashion Landmark](tasks/2d_fashion_landmark.md)
|
||||
- [2D Animal Keypoint](tasks/2d_animal_keypoint.md)
|
||||
@@ -0,0 +1,135 @@
|
||||
# FAQ
|
||||
|
||||
We list some common issues faced by many users and their corresponding solutions here.
|
||||
Feel free to enrich the list if you find any frequent issues and have ways to help others to solve them.
|
||||
If the contents here do not cover your issue, please create an issue using the [provided templates](/.github/ISSUE_TEMPLATE/error-report.md) and make sure you fill in all required information in the template.
|
||||
|
||||
## Installation
|
||||
|
||||
- **Unable to install xtcocotools**
|
||||
|
||||
1. Try to install it using pypi manually `pip install xtcocotools`.
|
||||
1. If step1 does not work. Try to install it from [source](https://github.com/jin-s13/xtcocoapi).
|
||||
|
||||
```
|
||||
git clone https://github.com/jin-s13/xtcocoapi
|
||||
cd xtcocoapi
|
||||
python setup.py install
|
||||
```
|
||||
|
||||
- **No matching distribution found for xtcocotools>=1.6**
|
||||
|
||||
1. Install cython by `pip install cython`.
|
||||
1. Install xtcocotools from [source](https://github.com/jin-s13/xtcocoapi).
|
||||
|
||||
```
|
||||
git clone https://github.com/jin-s13/xtcocoapi
|
||||
cd xtcocoapi
|
||||
python setup.py install
|
||||
```
|
||||
|
||||
- **"No module named 'mmcv.ops'"; "No module named 'mmcv._ext'"**
|
||||
|
||||
1. Uninstall existing mmcv in the environment using `pip uninstall mmcv`.
|
||||
1. Install mmcv-full following the [installation instruction](https://mmcv.readthedocs.io/en/latest/#installation).
|
||||
|
||||
## Data
|
||||
|
||||
- **How to convert my 2d keypoint dataset to coco-type?**
|
||||
|
||||
You may refer to this conversion [tool](https://github.com/open-mmlab/mmpose/blob/master/tools/dataset/parse_macaquepose_dataset.py) to prepare your data.
|
||||
Here is an [example](https://github.com/open-mmlab/mmpose/blob/master/tests/data/macaque/test_macaque.json) of the coco-type json.
|
||||
In the coco-type json, we need "categories", "annotations" and "images". "categories" contain some basic information of the dataset, e.g. class name and keypoint names.
|
||||
"images" contain image-level information. We need "id", "file_name", "height", "width". Others are optional.
|
||||
Note: (1) It is okay that "id"s are not continuous or not sorted (e.g. 1000, 40, 352, 333 ...).
|
||||
|
||||
"annotations" contain instance-level information. We need "image_id", "id", "keypoints", "num_keypoints", "bbox", "iscrowd", "area", "category_id". Others are optional.
|
||||
Note: (1) "num_keypoints" means the number of visible keypoints. (2) By default, please set "iscrowd: 0". (3) "area" can be calculated using the bbox (area = w * h) (4) Simply set "category_id: 1". (5) The "image_id" in "annotations" should match the "id" in "images".
|
||||
|
||||
- **What if my custom dataset does not have bounding box label?**
|
||||
|
||||
We can estimate the bounding box of a person as the minimal box that tightly bounds all the keypoints.
|
||||
|
||||
- **What if my custom dataset does not have segmentation label?**
|
||||
|
||||
Just set the `area` of the person as the area of the bounding boxes. During evaluation, please set `use_area=False` as in this [example](https://github.com/open-mmlab/mmpose/blob/a82dd486853a8a471522ac06b8b9356db61f8547/mmpose/datasets/datasets/top_down/topdown_aic_dataset.py#L113).
|
||||
|
||||
- **What is `COCO_val2017_detections_AP_H_56_person.json`? Can I train pose models without it?**
|
||||
|
||||
"COCO_val2017_detections_AP_H_56_person.json" contains the "detected" human bounding boxes for COCO validation set, which are generated by FasterRCNN.
|
||||
One can choose to use gt bounding boxes to evaluate models, by setting `use_gt_bbox=True` and `bbox_file=''`. Or one can use detected boxes to evaluate
|
||||
the generalizability of models, by setting `use_gt_bbox=False` and `bbox_file='COCO_val2017_detections_AP_H_56_person.json'`.
|
||||
|
||||
## Training
|
||||
|
||||
- **RuntimeError: Address already in use**
|
||||
|
||||
Set the environment variables `MASTER_PORT=XXX`. For example,
|
||||
`MASTER_PORT=29517 GPUS=16 GPUS_PER_NODE=8 CPUS_PER_TASK=2 ./tools/slurm_train.sh Test res50 configs/body/2D_Kpt_SV_RGB_Img/topdown_hm/coco/res50_coco_256x192.py work_dirs/res50_coco_256x192`
|
||||
|
||||
- **"Unexpected keys in source state dict" when loading pre-trained weights**
|
||||
|
||||
It's normal that some layers in the pretrained model are not used in the pose model. ImageNet-pretrained classification network and the pose network may have different architectures (e.g. no classification head). So some unexpected keys in source state dict is actually expected.
|
||||
|
||||
- **How to use trained models for backbone pre-training ?**
|
||||
|
||||
Refer to [Use Pre-Trained Model](/docs/en/tutorials/1_finetune.md#use-pre-trained-model),
|
||||
in order to use the pre-trained model for the whole network (backbone + head), the new config adds the link of pre-trained models in the `load_from`.
|
||||
|
||||
And to use backbone for pre-training, you can change `pretrained` value in the backbone dict of config files to the checkpoint path / url.
|
||||
When training, the unexpected keys will be ignored.
|
||||
|
||||
- **How to visualize the training accuracy/loss curves in real-time ?**
|
||||
|
||||
Use `TensorboardLoggerHook` in `log_config` like
|
||||
|
||||
```python
|
||||
log_config=dict(interval=20, hooks=[dict(type='TensorboardLoggerHook')])
|
||||
```
|
||||
|
||||
You can refer to [tutorials/6_customize_runtime.md](/tutorials/6_customize_runtime.md#log-config) and the example [config](https://github.com/open-mmlab/mmpose/tree/e1ec589884235bee875c89102170439a991f8450/configs/top_down/resnet/coco/res50_coco_256x192.py#L26).
|
||||
|
||||
- **Log info is NOT printed**
|
||||
|
||||
Use smaller log interval. For example, change `interval=50` to `interval=1` in the [config](https://github.com/open-mmlab/mmpose/tree/e1ec589884235bee875c89102170439a991f8450/configs/top_down/resnet/coco/res50_coco_256x192.py#L23).
|
||||
|
||||
- **How to fix stages of backbone when finetuning a model ?**
|
||||
|
||||
You can refer to [`def _freeze_stages()`](https://github.com/open-mmlab/mmpose/blob/d026725554f9dc08e8708bd9da8678f794a7c9a6/mmpose/models/backbones/resnet.py#L618) and [`frozen_stages`](https://github.com/open-mmlab/mmpose/blob/d026725554f9dc08e8708bd9da8678f794a7c9a6/mmpose/models/backbones/resnet.py#L498),
|
||||
reminding to set `find_unused_parameters = True` in config files for distributed training or testing.
|
||||
|
||||
## Evaluation
|
||||
|
||||
- **How to evaluate on MPII test dataset?**
|
||||
Since we do not have the ground-truth for test dataset, we cannot evaluate it 'locally'.
|
||||
If you would like to evaluate the performance on test set, you have to upload the pred.mat (which is generated during testing) to the official server via email, according to [the MPII guideline](http://human-pose.mpi-inf.mpg.de/#evaluation).
|
||||
|
||||
- **For top-down 2d pose estimation, why predicted joint coordinates can be out of the bounding box (bbox)?**
|
||||
We do not directly use the bbox to crop the image. bbox will be first transformed to center & scale, and the scale will be multiplied by a factor (1.25) to include some context. If the ratio of width/height is different from that of model input (possibly 192/256), we will adjust the bbox.
|
||||
|
||||
## Inference
|
||||
|
||||
- **How to run mmpose on CPU?**
|
||||
|
||||
Run demos with `--device=cpu`.
|
||||
|
||||
- **How to speed up inference?**
|
||||
|
||||
For top-down models, try to edit the config file. For example,
|
||||
|
||||
1. set `flip_test=False` in [topdown-res50](https://github.com/open-mmlab/mmpose/tree/e1ec589884235bee875c89102170439a991f8450/configs/top_down/resnet/coco/res50_coco_256x192.py#L51).
|
||||
1. set `post_process='default'` in [topdown-res50](https://github.com/open-mmlab/mmpose/tree/e1ec589884235bee875c89102170439a991f8450/configs/top_down/resnet/coco/res50_coco_256x192.py#L54).
|
||||
1. use faster human bounding box detector, see [MMDetection](https://mmdetection.readthedocs.io/en/latest/model_zoo.html).
|
||||
|
||||
For bottom-up models, try to edit the config file. For example,
|
||||
|
||||
1. set `flip_test=False` in [AE-res50](https://github.com/open-mmlab/mmpose/tree/e1ec589884235bee875c89102170439a991f8450/configs/bottom_up/resnet/coco/res50_coco_512x512.py#L91).
|
||||
1. set `adjust=False` in [AE-res50](https://github.com/open-mmlab/mmpose/tree/e1ec589884235bee875c89102170439a991f8450/configs/bottom_up/resnet/coco/res50_coco_512x512.py#L89).
|
||||
1. set `refine=False` in [AE-res50](https://github.com/open-mmlab/mmpose/tree/e1ec589884235bee875c89102170439a991f8450/configs/bottom_up/resnet/coco/res50_coco_512x512.py#L90).
|
||||
1. use smaller input image size in [AE-res50](https://github.com/open-mmlab/mmpose/tree/e1ec589884235bee875c89102170439a991f8450/configs/bottom_up/resnet/coco/res50_coco_512x512.py#L39).
|
||||
|
||||
## Deployment
|
||||
|
||||
- **Why is the onnx model converted by mmpose throwing error when converting to other frameworks such as TensorRT?**
|
||||
|
||||
For now, we can only make sure that models in mmpose are onnx-compatible. However, some operations in onnx may be unsupported by your target framework for deployment, e.g. TensorRT in [this issue](https://github.com/open-mmlab/mmaction2/issues/414). When such situation occurs, we suggest you raise an issue and ask the community to help as long as `pytorch2onnx.py` works well and is verified numerically.
|
||||
@@ -0,0 +1,283 @@
|
||||
# Getting Started
|
||||
|
||||
This page provides basic tutorials about the usage of MMPose.
|
||||
For installation instructions, please see [install.md](install.md).
|
||||
|
||||
<!-- TOC -->
|
||||
|
||||
- [Prepare Datasets](#prepare-datasets)
|
||||
- [Inference with Pre-Trained Models](#inference-with-pre-trained-models)
|
||||
- [Test a dataset](#test-a-dataset)
|
||||
- [Run demos](#run-demos)
|
||||
- [Train a Model](#train-a-model)
|
||||
- [Train with a single GPU](#train-with-a-single-gpu)
|
||||
- [Train with CPU](#train-with-cpu)
|
||||
- [Train with multiple GPUs](#train-with-multiple-gpus)
|
||||
- [Train with multiple machines](#train-with-multiple-machines)
|
||||
- [Launch multiple jobs on a single machine](#launch-multiple-jobs-on-a-single-machine)
|
||||
- [Benchmark](#benchmark)
|
||||
- [Tutorials](#tutorials)
|
||||
|
||||
<!-- TOC -->
|
||||
|
||||
## Prepare Datasets
|
||||
|
||||
MMPose supports multiple tasks. Please follow the corresponding guidelines for data preparation.
|
||||
|
||||
- [2D Body Keypoint Detection](/docs/en/tasks/2d_body_keypoint.md)
|
||||
- [3D Body Keypoint Detection](/docs/en/tasks/3d_body_keypoint.md)
|
||||
- [3D Body Mesh Recovery](/docs/en/tasks/3d_body_mesh.md)
|
||||
- [2D Hand Keypoint Detection](/docs/en/tasks/2d_hand_keypoint.md)
|
||||
- [3D Hand Keypoint Detection](/docs/en/tasks/3d_hand_keypoint.md)
|
||||
- [2D Face Keypoint Detection](/docs/en/tasks/2d_face_keypoint.md)
|
||||
- [2D WholeBody Keypoint Detection](/docs/en/tasks/2d_wholebody_keypoint.md)
|
||||
- [2D Fashion Landmark Detection](/docs/en/tasks/2d_fashion_landmark.md)
|
||||
- [2D Animal Keypoint Detection](/docs/en/tasks/2d_animal_keypoint.md)
|
||||
|
||||
## Inference with Pre-trained Models
|
||||
|
||||
We provide testing scripts to evaluate a whole dataset (COCO, MPII etc.),
|
||||
and provide some high-level apis for easier integration to other OpenMMLab projects.
|
||||
|
||||
### Test a dataset
|
||||
|
||||
- [x] single GPU
|
||||
- [x] CPU
|
||||
- [x] single node multiple GPUs
|
||||
- [x] multiple node
|
||||
|
||||
You can use the following commands to test a dataset.
|
||||
|
||||
```shell
|
||||
# single-gpu testing
|
||||
python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] [--fuse-conv-bn] \
|
||||
[--eval ${EVAL_METRICS}] [--gpu_collect] [--tmpdir ${TMPDIR}] [--cfg-options ${CFG_OPTIONS}] \
|
||||
[--launcher ${JOB_LAUNCHER}] [--local_rank ${LOCAL_RANK}]
|
||||
|
||||
# CPU: disable GPUs and run single-gpu testing script
|
||||
export CUDA_VISIBLE_DEVICES=-1
|
||||
python tools/test.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--out ${RESULT_FILE}] \
|
||||
[--eval ${EVAL_METRICS}]
|
||||
|
||||
# multi-gpu testing
|
||||
./tools/dist_test.sh ${CONFIG_FILE} ${CHECKPOINT_FILE} ${GPU_NUM} [--out ${RESULT_FILE}] [--fuse-conv-bn] \
|
||||
[--eval ${EVAL_METRIC}] [--gpu_collect] [--tmpdir ${TMPDIR}] [--cfg-options ${CFG_OPTIONS}] \
|
||||
[--launcher ${JOB_LAUNCHER}] [--local_rank ${LOCAL_RANK}]
|
||||
```
|
||||
|
||||
Note that the provided `CHECKPOINT_FILE` is either the path to the model checkpoint file downloaded in advance, or the url link to the model checkpoint.
|
||||
|
||||
Optional arguments:
|
||||
|
||||
- `RESULT_FILE`: Filename of the output results. If not specified, the results will not be saved to a file.
|
||||
- `--fuse-conv-bn`: Whether to fuse conv and bn, this will slightly increase the inference speed.
|
||||
- `EVAL_METRICS`: Items to be evaluated on the results. Allowed values depend on the dataset.
|
||||
- `--gpu_collect`: If specified, recognition results will be collected using gpu communication. Otherwise, it will save the results on different gpus to `TMPDIR` and collect them by the rank 0 worker.
|
||||
- `TMPDIR`: Temporary directory used for collecting results from multiple workers, available when `--gpu_collect` is not specified.
|
||||
- `CFG_OPTIONS`: Override some settings in the used config, the key-value pair in xxx=yyy format will be merged into config file. For example, '--cfg-options model.backbone.depth=18 model.backbone.with_cp=True'.
|
||||
- `JOB_LAUNCHER`: Items for distributed job initialization launcher. Allowed choices are `none`, `pytorch`, `slurm`, `mpi`. Especially, if set to none, it will test in a non-distributed mode.
|
||||
- `LOCAL_RANK`: ID for local rank. If not specified, it will be set to 0.
|
||||
|
||||
Examples:
|
||||
|
||||
Assume that you have already downloaded the checkpoints to the directory `checkpoints/`.
|
||||
|
||||
1. Test ResNet50 on COCO (without saving the test results) and evaluate the mAP.
|
||||
|
||||
```shell
|
||||
./tools/dist_test.sh configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/res50_coco_256x192.py \
|
||||
checkpoints/SOME_CHECKPOINT.pth 1 \
|
||||
--eval mAP
|
||||
```
|
||||
|
||||
1. Test ResNet50 on COCO with 8 GPUS. Download the checkpoint via url, and evaluate the mAP.
|
||||
|
||||
```shell
|
||||
./tools/dist_test.sh configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/res50_coco_256x192.py \
|
||||
https://download.openmmlab.com/mmpose/top_down/resnet/res50_coco_256x192-ec54d7f3_20200709.pth 8 \
|
||||
--eval mAP
|
||||
```
|
||||
|
||||
1. Test ResNet50 on COCO in slurm environment and evaluate the mAP.
|
||||
|
||||
```shell
|
||||
./tools/slurm_test.sh slurm_partition test_job \
|
||||
configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/res50_coco_256x192.py \
|
||||
checkpoints/SOME_CHECKPOINT.pth \
|
||||
--eval mAP
|
||||
```
|
||||
|
||||
### Run demos
|
||||
|
||||
We also provide scripts to run demos.
|
||||
Here is an example of running top-down human pose demos using ground-truth bounding boxes.
|
||||
|
||||
```shell
|
||||
python demo/top_down_img_demo.py \
|
||||
${MMPOSE_CONFIG_FILE} ${MMPOSE_CHECKPOINT_FILE} \
|
||||
--img-root ${IMG_ROOT} --json-file ${JSON_FILE} \
|
||||
--out-img-root ${OUTPUT_DIR} \
|
||||
[--show --device ${GPU_ID}] \
|
||||
[--kpt-thr ${KPT_SCORE_THR}]
|
||||
```
|
||||
|
||||
Examples:
|
||||
|
||||
```shell
|
||||
python demo/top_down_img_demo.py \
|
||||
configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/hrnet_w48_coco_256x192.py \
|
||||
https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w48_coco_256x192-b9e0b3ab_20200708.pth \
|
||||
--img-root tests/data/coco/ --json-file tests/data/coco/test_coco.json \
|
||||
--out-img-root vis_results
|
||||
```
|
||||
|
||||
More examples and details can be found in the [demo folder](/demo) and the [demo docs](https://mmpose.readthedocs.io/en/latest/demo.html).
|
||||
|
||||
## Train a model
|
||||
|
||||
MMPose implements distributed training and non-distributed training,
|
||||
which uses `MMDistributedDataParallel` and `MMDataParallel` respectively.
|
||||
|
||||
We adopt distributed training for both single machine and multiple machines. Supposing that the server has 8 GPUs, 8 processes will be started and each process runs on a single GPU.
|
||||
|
||||
Each process keeps an isolated model, data loader, and optimizer. Model parameters are only synchronized once at the beginning. After a forward and backward pass, gradients will be allreduced among all GPUs, and the optimizer will update model parameters. Since the gradients are allreduced, the model parameter stays the same for all processes after the iteration.
|
||||
|
||||
### Training setting
|
||||
|
||||
All outputs (log files and checkpoints) will be saved to the working directory,
|
||||
which is specified by `work_dir` in the config file.
|
||||
|
||||
By default we evaluate the model on the validation set after each epoch, you can change the evaluation interval by modifying the interval argument in the training config
|
||||
|
||||
```python
|
||||
evaluation = dict(interval=5) # This evaluate the model per 5 epoch.
|
||||
```
|
||||
|
||||
According to the [Linear Scaling Rule](https://arxiv.org/abs/1706.02677), you need to set the learning rate proportional to the batch size if you use different GPUs or videos per GPU, e.g., lr=0.01 for 4 GPUs x 2 video/gpu and lr=0.08 for 16 GPUs x 4 video/gpu.
|
||||
|
||||
### Train with a single GPU
|
||||
|
||||
```shell
|
||||
python tools/train.py ${CONFIG_FILE} [optional arguments]
|
||||
```
|
||||
|
||||
If you want to specify the working directory in the command, you can add an argument `--work-dir ${YOUR_WORK_DIR}`.
|
||||
|
||||
### Train with CPU
|
||||
|
||||
The process of training on the CPU is consistent with single GPU training. We just need to disable GPUs before the training process.
|
||||
|
||||
```shell
|
||||
export CUDA_VISIBLE_DEVICES=-1
|
||||
```
|
||||
|
||||
And then run the script [above](#training-on-a-single-GPU).
|
||||
|
||||
**Note**:
|
||||
|
||||
We do not recommend users to use CPU for training because it is too slow. We support this feature to allow users to debug on machines without GPU for convenience.
|
||||
|
||||
### Train with multiple GPUs
|
||||
|
||||
```shell
|
||||
./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments]
|
||||
```
|
||||
|
||||
Optional arguments are:
|
||||
|
||||
- `--work-dir ${WORK_DIR}`: Override the working directory specified in the config file.
|
||||
- `--resume-from ${CHECKPOINT_FILE}`: Resume from a previous checkpoint file.
|
||||
- `--no-validate`: Whether not to evaluate the checkpoint during training.
|
||||
- `--gpus ${GPU_NUM}`: Number of gpus to use, which is only applicable to non-distributed training.
|
||||
- `--gpu-ids ${GPU_IDS}`: IDs of gpus to use, which is only applicable to non-distributed training.
|
||||
- `--seed ${SEED}`: Seed id for random state in python, numpy and pytorch to generate random numbers.
|
||||
- `--deterministic`: If specified, it will set deterministic options for CUDNN backend.
|
||||
- `--cfg-options CFG_OPTIONS`: Override some settings in the used config, the key-value pair in xxx=yyy format will be merged into config file. For example, '--cfg-options model.backbone.depth=18 model.backbone.with_cp=True'.
|
||||
- `--launcher ${JOB_LAUNCHER}`: Items for distributed job initialization launcher. Allowed choices are `none`, `pytorch`, `slurm`, `mpi`. Especially, if set to none, it will test in a non-distributed mode.
|
||||
- `--autoscale-lr`: If specified, it will automatically scale lr with the number of gpus by [Linear Scaling Rule](https://arxiv.org/abs/1706.02677).
|
||||
- `LOCAL_RANK`: ID for local rank. If not specified, it will be set to 0.
|
||||
|
||||
Difference between `resume-from` and `load-from`:
|
||||
`resume-from` loads both the model weights and optimizer status, and the epoch is also inherited from the specified checkpoint. It is usually used for resuming the training process that is interrupted accidentally.
|
||||
`load-from` only loads the model weights and the training epoch starts from 0. It is usually used for finetuning.
|
||||
|
||||
Here is an example of using 8 GPUs to load ResNet50 checkpoint.
|
||||
|
||||
```shell
|
||||
./tools/dist_train.sh configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/res50_coco_256x192.py 8 --resume_from work_dirs/res50_coco_256x192/latest.pth
|
||||
```
|
||||
|
||||
### Train with multiple machines
|
||||
|
||||
If you can run MMPose on a cluster managed with [slurm](https://slurm.schedmd.com/), you can use the script `slurm_train.sh`. (This script also supports single machine training.)
|
||||
|
||||
```shell
|
||||
./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} ${CONFIG_FILE} ${WORK_DIR}
|
||||
```
|
||||
|
||||
Here is an example of using 16 GPUs to train ResNet50 on the dev partition in a slurm cluster.
|
||||
(Use `GPUS_PER_NODE=8` to specify a single slurm cluster node with 8 GPUs, `CPUS_PER_TASK=2` to use 2 cpus per task.
|
||||
Assume that `Test` is a valid ${PARTITION} name.)
|
||||
|
||||
```shell
|
||||
GPUS=16 GPUS_PER_NODE=8 CPUS_PER_TASK=2 ./tools/slurm_train.sh Test res50 configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/res50_coco_256x192.py work_dirs/res50_coco_256x192
|
||||
```
|
||||
|
||||
You can check [slurm_train.sh](/tools/slurm_train.sh) for full arguments and environment variables.
|
||||
|
||||
If you have just multiple machines connected with ethernet, you can refer to
|
||||
pytorch [launch utility](https://pytorch.org/docs/en/stable/distributed_deprecated.html#launch-utility).
|
||||
Usually it is slow if you do not have high speed networking like InfiniBand.
|
||||
|
||||
### Launch multiple jobs on a single machine
|
||||
|
||||
If you launch multiple jobs on a single machine, e.g., 2 jobs of 4-GPU training on a machine with 8 GPUs,
|
||||
you need to specify different ports (29500 by default) for each job to avoid communication conflict.
|
||||
|
||||
If you use `dist_train.sh` to launch training jobs, you can set the port in commands.
|
||||
|
||||
```shell
|
||||
CUDA_VISIBLE_DEVICES=0,1,2,3 PORT=29500 ./tools/dist_train.sh ${CONFIG_FILE} 4
|
||||
CUDA_VISIBLE_DEVICES=4,5,6,7 PORT=29501 ./tools/dist_train.sh ${CONFIG_FILE} 4
|
||||
```
|
||||
|
||||
If you use launch training jobs with slurm, you need to modify the config files (usually the 4th line in config files) to set different communication ports.
|
||||
|
||||
In `config1.py`,
|
||||
|
||||
```python
|
||||
dist_params = dict(backend='nccl', port=29500)
|
||||
```
|
||||
|
||||
In `config2.py`,
|
||||
|
||||
```python
|
||||
dist_params = dict(backend='nccl', port=29501)
|
||||
```
|
||||
|
||||
Then you can launch two jobs with `config1.py` ang `config2.py`.
|
||||
|
||||
```shell
|
||||
CUDA_VISIBLE_DEVICES=0,1,2,3 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} config1.py ${WORK_DIR} 4
|
||||
CUDA_VISIBLE_DEVICES=4,5,6,7 ./tools/slurm_train.sh ${PARTITION} ${JOB_NAME} config2.py ${WORK_DIR} 4
|
||||
```
|
||||
|
||||
## Benchmark
|
||||
|
||||
You can get average inference speed using the following script. Note that it does not include the IO time and the pre-processing time.
|
||||
|
||||
```shell
|
||||
python tools/analysis/benchmark_inference.py ${MMPOSE_CONFIG_FILE}
|
||||
```
|
||||
|
||||
## Tutorials
|
||||
|
||||
We provide some tutorials for users:
|
||||
|
||||
- [learn about configs](tutorials/0_config.md)
|
||||
- [finetune model](tutorials/1_finetune.md)
|
||||
- [add new dataset](tutorials/2_new_dataset.md)
|
||||
- [customize data pipelines](tutorials/3_data_pipeline.md)
|
||||
- [add new modules](tutorials/4_new_modules.md)
|
||||
- [export a model to ONNX](tutorials/5_export_model.md)
|
||||
- [customize runtime settings](tutorials/6_customize_runtime.md).
|
||||
@@ -0,0 +1,99 @@
|
||||
Welcome to MMPose's documentation!
|
||||
==================================
|
||||
|
||||
You can change the documentation language at the lower-left corner of the page.
|
||||
|
||||
您可以在页面左下角切换文档语言。
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
install.md
|
||||
getting_started.md
|
||||
demo.md
|
||||
benchmark.md
|
||||
inference_speed_summary.md
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Datasets
|
||||
|
||||
datasets.md
|
||||
tasks/2d_body_keypoint.md
|
||||
tasks/2d_wholebody_keypoint.md
|
||||
tasks/2d_face_keypoint.md
|
||||
tasks/2d_hand_keypoint.md
|
||||
tasks/2d_fashion_landmark.md
|
||||
tasks/2d_animal_keypoint.md
|
||||
tasks/3d_body_keypoint.md
|
||||
tasks/3d_body_mesh.md
|
||||
tasks/3d_hand_keypoint.md
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Model Zoo
|
||||
|
||||
modelzoo.md
|
||||
topics/animal.md
|
||||
topics/body(2d,kpt,sview,img).md
|
||||
topics/body(2d,kpt,sview,vid).md
|
||||
topics/body(3d,kpt,sview,img).md
|
||||
topics/body(3d,kpt,sview,vid).md
|
||||
topics/body(3d,kpt,mview,img).md
|
||||
topics/body(3d,mesh,sview,img).md
|
||||
topics/face.md
|
||||
topics/fashion.md
|
||||
topics/hand(2d).md
|
||||
topics/hand(3d).md
|
||||
topics/wholebody.md
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Model Zoo (by paper)
|
||||
|
||||
papers/algorithms.md
|
||||
papers/backbones.md
|
||||
papers/datasets.md
|
||||
papers/techniques.md
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Tutorials
|
||||
|
||||
tutorials/0_config.md
|
||||
tutorials/1_finetune.md
|
||||
tutorials/2_new_dataset.md
|
||||
tutorials/3_data_pipeline.md
|
||||
tutorials/4_new_modules.md
|
||||
tutorials/5_export_model.md
|
||||
tutorials/6_customize_runtime.md
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Useful Tools and Scripts
|
||||
|
||||
useful_tools.md
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Notes
|
||||
|
||||
changelog.md
|
||||
faq.md
|
||||
|
||||
.. toctree::
|
||||
:caption: API Reference
|
||||
|
||||
api.rst
|
||||
|
||||
.. toctree::
|
||||
:caption: Languages
|
||||
|
||||
language.md
|
||||
|
||||
|
||||
Indices and tables
|
||||
==================
|
||||
|
||||
* :ref:`genindex`
|
||||
* :ref:`search`
|
||||
@@ -0,0 +1,114 @@
|
||||
# Inference Speed
|
||||
|
||||
We summarize the model complexity and inference speed of major models in MMPose, including FLOPs, parameter counts and inference speeds on both CPU and GPU devices with different batch sizes. We also compare the mAP of different models on COCO human keypoint dataset, showing the trade-off between model performance and model complexity.
|
||||
|
||||
## Comparison Rules
|
||||
|
||||
To ensure the fairness of the comparison, the comparison experiments are conducted under the same hardware and software environment using the same dataset. We also list the mAP (mean average precision) on COCO human keypoint dataset of the models along with the corresponding config files.
|
||||
|
||||
For model complexity information measurement, we calculate the FLOPs and parameter counts of a model with corresponding input shape. Note that some layers or ops are currently not supported, for example, `DeformConv2d`, so you may need to check if all ops are supported and verify that the flops and parameter counts computation is correct.
|
||||
|
||||
For inference speed, we omit the time for data pre-processing and only measure the time for model forwarding and data post-processing. For each model setting, we keep the same data pre-processing methods to make sure the same feature input. We measure the inference speed on both CPU and GPU devices. For topdown heatmap models, we also test the case when the batch size is larger, e.g., 10, to test model performance in crowded scenes.
|
||||
|
||||
The inference speed is measured with frames per second (FPS), namely the average iterations per second, which can show how fast the model can handle an input. The higher, the faster, the better.
|
||||
|
||||
### Hardware
|
||||
|
||||
- GPU: GeForce GTX 1660 SUPER
|
||||
- CPU: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz
|
||||
|
||||
### Software Environment
|
||||
|
||||
- Ubuntu 16.04
|
||||
- Python 3.8
|
||||
- PyTorch 1.10
|
||||
- CUDA 10.2
|
||||
- mmcv-full 1.3.17
|
||||
- mmpose 0.20.0
|
||||
|
||||
## Model complexity information and inference speed results of major models in MMPose
|
||||
|
||||
| Algorithm | Model | config | Input size | mAP | Flops (GFLOPs) | Params (M) | GPU Inference Speed<br>(FPS)<sup>1</sup> | GPU Inference Speed<br>(FPS, bs=10)<sup>2</sup> | CPU Inference Speed<br>(FPS) | CPU Inference Speed<br>(FPS, bs=10) |
|
||||
| :--- | :---------------: | :-----------------: |:--------------------: | :----------------------------: | :-----------------: | :---------------: |:--------------------: | :----------------------------: | :-----------------: | :-----------------: |
|
||||
| topdown_heatmap | Alexnet | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/alexnet_coco_256x192.py) | (3, 192, 256) | 0.397 | 1.42 | 5.62 | 229.21 ± 16.91 | 33.52 ± 1.14 | 13.92 ± 0.60 | 1.38 ± 0.02 |
|
||||
| topdown_heatmap | CPM | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/cpm_coco_256x192.py) | (3, 192, 256) | 0.623 | 63.81 | 31.3 | 11.35 ± 0.22 | 3.87 ± 0.07 | 0.31 ± 0.01 | 0.03 ± 0.00 |
|
||||
| topdown_heatmap | CPM | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/cpm_coco_384x288.py) | (3, 288, 384) | 0.65 | 143.57 | 31.3 | 7.09 ± 0.14 | 2.10 ± 0.05 | 0.14 ± 0.00 | 0.01 ± 0.00 |
|
||||
| topdown_heatmap | Hourglass-52 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/hourglass52_coco_256x256.py) | (3, 256, 256) | 0.726 | 28.67 | 94.85 | 25.50 ± 1.68 | 3.99 ± 0.07 | 0.92 ± 0.03 | 0.09 ± 0.00 |
|
||||
| topdown_heatmap | Hourglass-52 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/hourglass52_coco_384x384.py) | (3, 384, 384) | 0.746 | 64.5 | 94.85 | 14.74 ± 0.8 | 1.86 ± 0.06 | 0.43 ± 0.03 | 0.04 ± 0.00 |
|
||||
| topdown_heatmap | HRNet-W32 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/hrnet_w32_coco_256x192.py) | (3, 192, 256) | 0.746 | 7.7 | 28.54 | 22.73 ± 1.12 | 6.60 ± 0.14 | 2.73 ± 0.11 | 0.32 ± 0.00 |
|
||||
| topdown_heatmap | HRNet-W32 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/hrnet_w32_coco_384x288.py) | (3, 288, 384) | 0.76 | 17.33 | 28.54 | 22.78 ± 1.21 | 3.28 ± 0.08 | 1.35 ± 0.05 | 0.14 ± 0.00 |
|
||||
| topdown_heatmap | HRNet-W48 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/hrnet_w48_coco_256x192.py) | (3, 192, 256) | 0.756 | 15.77 | 63.6 | 22.01 ± 1.10 | 3.74 ± 0.10 | 1.46 ± 0.05 | 0.16 ± 0.00 |
|
||||
| topdown_heatmap | HRNet-W48 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/hrnet_w48_coco_384x288.py) | (3, 288, 384) | 0.767 | 35.48 | 63.6 | 15.03 ± 1.03 | 1.80 ± 0.03 | 0.68 ± 0.02 | 0.07 ± 0.00 |
|
||||
| topdown_heatmap | LiteHRNet-30 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/litehrnet_30_coco_256x192.py) | (3, 192, 256) | 0.675 | 0.42 | 1.76 | 11.86 ± 0.38 | 9.77 ± 0.23 | 5.84 ± 0.39 | 0.80 ± 0.00 |
|
||||
| topdown_heatmap | LiteHRNet-30 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/litehrnet_30_coco_384x288.py) | (3, 288, 384) | 0.7 | 0.95 | 1.76 | 11.52 ± 0.39 | 5.18 ± 0.11 | 3.45 ± 0.22 | 0.37 ± 0.00 |
|
||||
| topdown_heatmap | MobilenetV2 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/mobilenetv2_coco_256x192.py) | (3, 192, 256) | 0.646 | 1.59 | 9.57 | 91.82 ± 10.98 | 17.85 ± 0.32 | 10.44 ± 0.80 | 1.05 ± 0.01 |
|
||||
| topdown_heatmap | MobilenetV2 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/mobilenetv2_coco_384x288.py) | (3, 288, 384) | 0.673 | 3.57 | 9.57 | 71.27 ± 6.82 | 8.00 ± 0.15 | 5.01 ± 0.32 | 0.46 ± 0.00 |
|
||||
| topdown_heatmap | MSPN-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/mspn50_coco_256x192.py) | (3, 192, 256) | 0.723 | 5.11 | 25.11 | 59.65 ± 3.74 | 9.51 ± 0.15 | 3.98 ± 0.21 | 0.43 ± 0.00 |
|
||||
| topdown_heatmap | 2xMSPN-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/2xmspn50_coco_256x192.py) | (3, 192, 256) | 0.754 | 11.35 | 56.8 | 30.64 ± 2.61 | 4.74 ± 0.12 | 1.85 ± 0.08 | 0.20 ± 0.00 |
|
||||
| topdown_heatmap | 3xMSPN-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/3xmspn50_coco_256x192.py) | (3, 192, 256) | 0.758 | 17.59 | 88.49 | 20.90 ± 1.82 | 3.22 ± 0.08 | 1.23 ± 0.04 | 0.13 ± 0.00 |
|
||||
| topdown_heatmap | 4xMSPN-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/4xmspn50_coco_256x192.py) | (3, 192, 256) | 0.764 | 23.82 | 120.18 | 15.79 ± 1.14 | 2.45 ± 0.05 | 0.90 ± 0.03 | 0.10 ± 0.00 |
|
||||
| topdown_heatmap | ResNest-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnest50_coco_256x192.py) | (3, 192, 256) | 0.721 | 6.73 | 35.93 | 48.36 ± 4.12 | 7.48 ± 0.13 | 3.00 ± 0.13 | 0.33 ± 0.00 |
|
||||
| topdown_heatmap | ResNest-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnest50_coco_384x288.py) | (3, 288, 384) | 0.737 | 15.14 | 35.93 | 30.30 ± 2.30 | 3.62 ± 0.09 | 1.43 ± 0.05 | 0.13 ± 0.00 |
|
||||
| topdown_heatmap | ResNest-101 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnest101_coco_256x192.py) | (3, 192, 256) | 0.725 | 10.38 | 56.61 | 29.21 ± 1.98 | 5.30 ± 0.12 | 2.01 ± 0.08 | 0.22 ± 0.00 |
|
||||
| topdown_heatmap | ResNest-101 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnest101_coco_384x288.py) | (3, 288, 384) | 0.746 | 23.36 | 56.61 | 19.02 ± 1.40 | 2.59 ± 0.05 | 0.97 ± 0.03 | 0.09 ± 0.00 |
|
||||
| topdown_heatmap | ResNest-200 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnest200_coco_256x192.py) | (3, 192, 256) | 0.732 | 17.5 | 78.54 | 16.11 ± 0.71 | 3.29 ± 0.07 | 1.33 ± 0.02 | 0.14 ± 0.00 |
|
||||
| topdown_heatmap | ResNest-200 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnest200_coco_384x288.py) | (3, 288, 384) | 0.754 | 39.37 | 78.54 | 11.48 ± 0.68 | 1.58 ± 0.02 | 0.63 ± 0.01 | 0.06 ± 0.00 |
|
||||
| topdown_heatmap | ResNest-269 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnest269_coco_256x192.py) | (3, 192, 256) | 0.738 | 22.45 | 119.27 | 12.02 ± 0.47 | 2.60 ± 0.05 | 1.03 ± 0.01 | 0.11 ± 0.00 |
|
||||
| topdown_heatmap | ResNest-269 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnest269_coco_384x288.py) | (3, 288, 384) | 0.755 | 50.5 | 119.27 | 8.82 ± 0.42 | 1.24 ± 0.02 | 0.49 ± 0.01 | 0.05 ± 0.00 |
|
||||
| topdown_heatmap | ResNet-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/res50_coco_256x192.py) | (3, 192, 256) | 0.718 | 5.46 | 34 | 64.23 ± 6.05 | 9.33 ± 0.21 | 4.00 ± 0.10 | 0.41 ± 0.00 |
|
||||
| topdown_heatmap | ResNet-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/res50_coco_384x288.py) | (3, 288, 384) | 0.731 | 12.29 | 34 | 36.78 ± 3.05 | 4.48 ± 0.12 | 1.92 ± 0.04 | 0.19 ± 0.00 |
|
||||
| topdown_heatmap | ResNet-101 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/res101_coco_256x192.py) | (3, 192, 256) | 0.726 | 9.11 | 52.99 | 43.35 ± 4.36 | 6.44 ± 0.14 | 2.57 ± 0.05 | 0.27 ± 0.00 |
|
||||
| topdown_heatmap | ResNet-101 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/res101_coco_384x288.py) | (3, 288, 384) | 0.748 | 20.5 | 52.99 | 23.29 ± 1.83 | 3.12 ± 0.09 | 1.23 ± 0.03 | 0.11 ± 0.00 |
|
||||
| topdown_heatmap | ResNet-152 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/res152_coco_256x192.py) | (3, 192, 256) | 0.735 | 12.77 | 68.64 | 32.31 ± 2.84 | 4.88 ± 0.17 | 1.89 ± 0.03 | 0.20 ± 0.00 |
|
||||
| topdown_heatmap | ResNet-152 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/res152_coco_384x288.py) | (3, 288, 384) | 0.75 | 28.73 | 68.64 | 17.32 ± 1.17 | 2.40 ± 0.04 | 0.91 ± 0.01 | 0.08 ± 0.00 |
|
||||
| topdown_heatmap | ResNetV1d-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnetv1d50_coco_256x192.py) | (3, 192, 256) | 0.722 | 5.7 | 34.02 | 63.44 ± 6.09 | 9.09 ± 0.10 | 3.82 ± 0.10 | 0.39 ± 0.00 |
|
||||
| topdown_heatmap | ResNetV1d-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnetv1d50_coco_384x288.py) | (3, 288, 384) | 0.73 | 12.82 | 34.02 | 36.21 ± 3.10 | 4.30 ± 0.12 | 1.82 ± 0.04 | 0.16 ± 0.00 |
|
||||
| topdown_heatmap | ResNetV1d-101 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnetv1d101_coco_256x192.py) | (3, 192, 256) | 0.731 | 9.35 | 53.01 | 41.48 ± 3.76 | 6.33 ± 0.15 | 2.48 ± 0.05 | 0.26 ± 0.00 |
|
||||
| topdown_heatmap | ResNetV1d-101 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnetv1d101_coco_384x288.py) | (3, 288, 384) | 0.748 | 21.04 | 53.01 | 23.49 ± 1.76 | 3.07 ± 0.07 | 1.19 ± 0.02 | 0.11 ± 0.00 |
|
||||
| topdown_heatmap | ResNetV1d-152 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnetv1d152_coco_256x192.py) | (3, 192, 256) | 0.737 | 13.01 | 68.65 | 31.96 ± 2.87 | 4.69 ± 0.18 | 1.87 ± 0.02 | 0.19 ± 0.00 |
|
||||
| topdown_heatmap | ResNetV1d-152 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnetv1d152_coco_384x288.py) | (3, 288, 384) | 0.752 | 29.26 | 68.65 | 17.31 ± 1.13 | 2.32 ± 0.04 | 0.88 ± 0.01 | 0.08 ± 0.00 |
|
||||
| topdown_heatmap | ResNext-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnext50_coco_256x192.py) | (3, 192, 256) | 0.714 | 5.61 | 33.47 | 48.34 ± 3.85 | 7.66 ± 0.13 | 3.71 ± 0.10 | 0.37 ± 0.00 |
|
||||
| topdown_heatmap | ResNext-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnext50_coco_384x288.py) | (3, 288, 384) | 0.724 | 12.62 | 33.47 | 30.66 ± 2.38 | 3.64 ± 0.11 | 1.73 ± 0.03 | 0.15 ± 0.00 |
|
||||
| topdown_heatmap | ResNext-101 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnext101_coco_256x192.py) | (3, 192, 256) | 0.726 | 9.29 | 52.62 | 27.33 ± 2.35 | 5.09 ± 0.13 | 2.45 ± 0.04 | 0.25 ± 0.00 |
|
||||
| topdown_heatmap | ResNext-101 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnext101_coco_384x288.py) | (3, 288, 384) | 0.743 | 20.91 | 52.62 | 18.19 ± 1.38 | 2.42 ± 0.04 | 1.15 ± 0.01 | 0.10 ± 0.00 |
|
||||
| topdown_heatmap | ResNext-152 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnext152_coco_256x192.py) | (3, 192, 256) | 0.73 | 12.98 | 68.39 | 19.61 ± 1.61 | 3.80 ± 0.13 | 1.83 ± 0.02 | 0.18 ± 0.00 |
|
||||
| topdown_heatmap | ResNext-152 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/resnext152_coco_384x288.py) | (3, 288, 384) | 0.742 | 29.21 | 68.39 | 13.14 ± 0.75 | 1.82 ± 0.03 | 0.85 ± 0.01 | 0.08 ± 0.00 |
|
||||
| topdown_heatmap | RSN-18 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/rsn18_coco_256x192.py) | (3, 192, 256) | 0.704 | 2.27 | 9.14 | 47.80 ± 4.50 | 13.68 ± 0.25 | 6.70 ± 0.28 | 0.70 ± 0.00 |
|
||||
| topdown_heatmap | RSN-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/rsn50_coco_256x192.py) | (3, 192, 256) | 0.723 | 4.11 | 19.33 | 27.22 ± 1.61 | 8.81 ± 0.13 | 3.98 ± 0.12 | 0.45 ± 0.00 |
|
||||
| topdown_heatmap | 2xRSN-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/2xrsn50_coco_256x192.py) | (3, 192, 256) | 0.745 | 8.29 | 39.26 | 13.88 ± 0.64 | 4.78 ± 0.13 | 2.02 ± 0.04 | 0.23 ± 0.00 |
|
||||
| topdown_heatmap | 3xRSN-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/3xrsn50_coco_256x192.py) | (3, 192, 256) | 0.75 | 12.47 | 59.2 | 9.40 ± 0.32 | 3.37 ± 0.09 | 1.34 ± 0.03 | 0.15 ± 0.00 |
|
||||
| topdown_heatmap | SCNet-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/scnet50_coco_256x192.py) | (3, 192, 256) | 0.728 | 5.31 | 34.01 | 40.76 ± 3.08 | 8.35 ± 0.19 | 3.82 ± 0.08 | 0.40 ± 0.00 |
|
||||
| topdown_heatmap | SCNet-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/scnet50_coco_384x288.py) | (3, 288, 384) | 0.751 | 11.94 | 34.01 | 32.61 ± 2.97 | 4.19 ± 0.10 | 1.85 ± 0.03 | 0.17 ± 0.00 |
|
||||
| topdown_heatmap | SCNet-101 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/scnet101_coco_256x192.py) | (3, 192, 256) | 0.733 | 8.51 | 53.01 | 24.28 ± 1.19 | 5.80 ± 0.13 | 2.49 ± 0.05 | 0.27 ± 0.00 |
|
||||
| topdown_heatmap | SCNet-101 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/scnet101_coco_384x288.py) | (3, 288, 384) | 0.752 | 19.14 | 53.01 | 20.43 ± 1.76 | 2.91 ± 0.06 | 1.23 ± 0.02 | 0.12 ± 0.00 |
|
||||
| topdown_heatmap | SeresNet-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/seresnet50_coco_256x192.py) | (3, 192, 256) | 0.728 | 5.47 | 36.53 | 54.83 ± 4.94 | 8.80 ± 0.12 | 3.85 ± 0.10 | 0.40 ± 0.00 |
|
||||
| topdown_heatmap | SeresNet-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/seresnet50_coco_384x288.py) | (3, 288, 384) | 0.748 | 12.3 | 36.53 | 33.00 ± 2.67 | 4.26 ± 0.12 | 1.86 ± 0.04 | 0.17 ± 0.00 |
|
||||
| topdown_heatmap | SeresNet-101 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/seresnet101_coco_256x192.py) | (3, 192, 256) | 0.734 | 9.13 | 57.77 | 33.90 ± 2.65 | 6.01 ± 0.13 | 2.48 ± 0.05 | 0.26 ± 0.00 |
|
||||
| topdown_heatmap | SeresNet-101 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/seresnet101_coco_384x288.py) | (3, 288, 384) | 0.753 | 20.53 | 57.77 | 20.57 ± 1.57 | 2.96 ± 0.07 | 1.20 ± 0.02 | 0.11 ± 0.00 |
|
||||
| topdown_heatmap | SeresNet-152 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/seresnet152_coco_256x192.py) | (3, 192, 256) | 0.73 | 12.79 | 75.26 | 24.25 ± 1.95 | 4.45 ± 0.10 | 1.82 ± 0.02 | 0.19 ± 0.00 |
|
||||
| topdown_heatmap | SeresNet-152 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/seresnet152_coco_384x288.py) | (3, 288, 384) | 0.753 | 28.76 | 75.26 | 15.11 ± 0.99 | 2.25 ± 0.04 | 0.88 ± 0.01 | 0.08 ± 0.00 |
|
||||
| topdown_heatmap | ShuffleNetV1 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/shufflenetv1_coco_256x192.py) | (3, 192, 256) | 0.585 | 1.35 | 6.94 | 80.79 ± 8.95 | 21.91 ± 0.46 | 11.84 ± 0.59 | 1.25 ± 0.01 |
|
||||
| topdown_heatmap | ShuffleNetV1 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/shufflenetv1_coco_384x288.py) | (3, 288, 384) | 0.622 | 3.05 | 6.94 | 63.45 ± 5.21 | 9.84 ± 0.10 | 6.01 ± 0.31 | 0.57 ± 0.00 |
|
||||
| topdown_heatmap | ShuffleNetV2 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/shufflenetv2_coco_256x192.py) | (3, 192, 256) | 0.599 | 1.37 | 7.55 | 82.36 ± 7.30 | 22.68 ± 0.53 | 12.40 ± 0.66 | 1.34 ± 0.02 |
|
||||
| topdown_heatmap | ShuffleNetV2 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/shufflenetv2_coco_384x288.py) | (3, 288, 384) | 0.636 | 3.08 | 7.55 | 63.63 ± 5.72 | 10.47 ± 0.16 | 6.32 ± 0.28 | 0.63 ± 0.01 |
|
||||
| topdown_heatmap | VGG16 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/vgg16_bn_coco_256x192.py) | (3, 192, 256) | 0.698 | 16.22 | 18.92 | 51.91 ± 2.98 | 6.18 ± 0.13 | 1.64 ± 0.03 | 0.15 ± 0.00 |
|
||||
| topdown_heatmap | VIPNAS + ResNet-50 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/vipnas_res50_coco_256x192.py) | (3, 192, 256) | 0.711 | 1.49 | 7.29 | 34.88 ± 2.45 | 10.29 ± 0.13 | 6.51 ± 0.17 | 0.65 ± 0.00 |
|
||||
| topdown_heatmap | VIPNAS + MobileNetV3 | [config](/configs/body/2d_kpt_sview_rgb_img/topdown_heatmap/coco/vipnas_mbv3_coco_256x192.py) | (3, 192, 256) | 0.7 | 0.76 | 5.9 | 53.62 ± 6.59 | 11.54 ± 0.18 | 1.26 ± 0.02 | 0.13 ± 0.00 |
|
||||
| Associative Embedding | HigherHRNet-W32 | [config](/configs/body/2d_kpt_sview_rgb_img/associative_embedding/coco/higherhrnet_w32_coco_512x512.py) | (3, 512, 512) | 0.677 | 46.58 | 28.65 | 7.80 ± 0.67 | / | 0.28 ± 0.02 | / |
|
||||
| Associative Embedding | HigherHRNet-W32 | [config](/configs/body/2d_kpt_sview_rgb_img/associative_embedding/coco/higherhrnet_w32_coco_640x640.py) | (3, 640, 640) | 0.686 | 72.77 | 28.65 | 5.30 ± 0.37 | / | 0.17 ± 0.01 | / |
|
||||
| Associative Embedding | HigherHRNet-W48 | [config](/configs/body/2d_kpt_sview_rgb_img/associative_embedding/coco/higherhrnet_w48_coco_512x512.py) | (3, 512, 512) | 0.686 | 96.17 | 63.83 | 4.55 ± 0.35 | / | 0.15 ± 0.01 | / |
|
||||
| Associative Embedding | Hourglass-AE | [config](/configs/body/2d_kpt_sview_rgb_img/associative_embedding/coco/hourglass_ae_coco_512x512.py) | (3, 512, 512) | 0.613 | 221.58 | 138.86 | 3.55 ± 0.24 | / | 0.08 ± 0.00 | / |
|
||||
| Associative Embedding | HRNet-W32 | [config](/configs/body/2d_kpt_sview_rgb_img/associative_embedding/coco/hrnet_w32_coco_512x512.py) | (3, 512, 512) | 0.654 | 41.1 | 28.54 | 8.93 ± 0.76 | / | 0.33 ± 0.02 | / |
|
||||
| Associative Embedding | HRNet-W48 | [config](/configs/body/2d_kpt_sview_rgb_img/associative_embedding/coco/hrnet_w48_coco_512x512.py) | (3, 512, 512) | 0.665 | 84.12 | 63.6 | 5.27 ± 0.43 | / | 0.18 ± 0.01 | / |
|
||||
| Associative Embedding | MobilenetV2 | [config](/configs/body/2d_kpt_sview_rgb_img/associative_embedding/coco/mobilenetv2_coco_512x512.py) | (3, 512, 512) | 0.38 | 8.54 | 9.57 | 21.24 ± 1.34 | / | 0.81 ± 0.06 | / |
|
||||
| Associative Embedding | ResNet-50 | [config](/configs/body/2d_kpt_sview_rgb_img/associative_embedding/coco/res50_coco_512x512.py) | (3, 512, 512) | 0.466 | 29.2 | 34 | 11.71 ± 0.97 | / | 0.41 ± 0.02 | / |
|
||||
| Associative Embedding | ResNet-50 | [config](/configs/body/2d_kpt_sview_rgb_img/associative_embedding/coco/res50_coco_640x640.py) | (3, 640, 640) | 0.479 | 45.62 | 34 | 8.20 ± 0.58 | / | 0.26 ± 0.02 | / |
|
||||
| Associative Embedding | ResNet-101 | [config](/configs/body/2d_kpt_sview_rgb_img/associative_embedding/coco/res101_coco_512x512.py) | (3, 512, 512) | 0.554 | 48.67 | 53 | 8.26 ± 0.68 | / | 0.28 ± 0.02 | / |
|
||||
| Associative Embedding | ResNet-101 | [config](/configs/body/2d_kpt_sview_rgb_img/associative_embedding/coco/res152_coco_512x512.py) | (3, 512, 512) | 0.595 | 68.17 | 68.64 | 6.25 ± 0.53 | / | 0.21 ± 0.01 | / |
|
||||
| DeepPose | ResNet-50 | [config](/configs/body/2d_kpt_sview_rgb_img/deeppose/coco/res50_coco_256x192.py) | (3, 192, 256) | 0.526 | 4.04 | 23.58 | 82.20 ± 7.54 | / | 5.50 ± 0.18 | / |
|
||||
| DeepPose | ResNet-101 | [config](/configs/body/2d_kpt_sview_rgb_img/deeppose/coco/res101_coco_256x192.py) | (3, 192, 256) | 0.56 | 7.69 | 42.57 | 48.93 ± 4.02 | / | 3.10 ± 0.07 | / |
|
||||
| DeepPose | ResNet-152 | [config](/configs/body/2d_kpt_sview_rgb_img/deeppose/coco/res152_coco_256x192.py) | (3, 192, 256) | 0.583 | 11.34 | 58.21 | 35.06 ± 3.50 | / | 2.19 ± 0.04 | / |
|
||||
|
||||
<sup>1</sup> Note that we run multiple iterations and record the time of each iteration, and the mean and standard deviation value of FPS are both shown.
|
||||
|
||||
<sup>2</sup> The FPS is defined as the average iterations per second, regardless of the batch size in this iteration.
|
||||
@@ -0,0 +1,202 @@
|
||||
# Installation
|
||||
|
||||
<!-- TOC -->
|
||||
|
||||
- [Requirements](#requirements)
|
||||
- [Prepare Environment](#prepare-environment)
|
||||
- [Install MMPose](#install-mmpose)
|
||||
- [Install with CPU only](#install-with-cpu-only)
|
||||
- [A from-scratch setup script](#a-from-scratch-setup-script)
|
||||
- [Another option: Docker Image](#another-option-docker-image)
|
||||
- [Developing with multiple MMPose versions](#developing-with-multiple-mmpose-versions)
|
||||
|
||||
<!-- TOC -->
|
||||
|
||||
## Requirements
|
||||
|
||||
- Linux (Windows is not officially supported)
|
||||
- Python 3.6+
|
||||
- PyTorch 1.3+
|
||||
- CUDA 9.2+ (If you build PyTorch from source, CUDA 9.0 is also compatible)
|
||||
- GCC 5+
|
||||
- [mmcv](https://github.com/open-mmlab/mmcv) (Please install the latest version of mmcv-full)
|
||||
- Numpy
|
||||
- cv2
|
||||
- json_tricks
|
||||
- [xtcocotools](https://github.com/jin-s13/xtcocoapi)
|
||||
|
||||
Optional:
|
||||
|
||||
- [mmdet](https://github.com/open-mmlab/mmdetection) (to run pose demos)
|
||||
- [mmtrack](https://github.com/open-mmlab/mmtracking) (to run pose tracking demos)
|
||||
- [pyrender](https://pyrender.readthedocs.io/en/latest/install/index.html) (to run 3d mesh demos)
|
||||
- [smplx](https://github.com/vchoutas/smplx) (to run 3d mesh demos)
|
||||
|
||||
## Prepare environment
|
||||
|
||||
a. Create a conda virtual environment and activate it.
|
||||
|
||||
```shell
|
||||
conda create -n open-mmlab python=3.7 -y
|
||||
conda activate open-mmlab
|
||||
```
|
||||
|
||||
b. Install PyTorch and torchvision following the [official instructions](https://pytorch.org/), e.g.,
|
||||
|
||||
```shell
|
||||
conda install pytorch torchvision -c pytorch
|
||||
```
|
||||
|
||||
```{note}
|
||||
Make sure that your compilation CUDA version and runtime CUDA version match.
|
||||
```
|
||||
|
||||
You can check the supported CUDA version for precompiled packages on the [PyTorch website](https://pytorch.org/).
|
||||
|
||||
`E.g.1` If you have CUDA 10.2 installed under `/usr/local/cuda` and would like to install PyTorch 1.8.0,
|
||||
you need to install the prebuilt PyTorch with CUDA 10.2.
|
||||
|
||||
```shell
|
||||
conda install pytorch==1.8.0 torchvision==0.9.0 cudatoolkit=10.2 -c pytorch
|
||||
```
|
||||
|
||||
`E.g.2` If you have CUDA 9.2 installed under `/usr/local/cuda` and would like to install PyTorch 1.7.0.,
|
||||
you need to install the prebuilt PyTorch with CUDA 9.2.
|
||||
|
||||
```shell
|
||||
conda install pytorch==1.7.0 torchvision==0.8.0 cudatoolkit=9.2 -c pytorch
|
||||
```
|
||||
|
||||
If you build PyTorch from source instead of installing the pre-built package, you can use more CUDA versions such as 9.0.
|
||||
|
||||
## Install MMPose
|
||||
|
||||
a. Install mmcv, we recommend you to install the pre-built mmcv as below.
|
||||
|
||||
```shell
|
||||
# pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html
|
||||
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.9.0/index.html
|
||||
# We can ignore the micro version of PyTorch
|
||||
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.9/index.html
|
||||
```
|
||||
|
||||
mmcv-full is only compiled on PyTorch 1.x.0 because the compatibility usually holds between 1.x.0 and 1.x.1. If your PyTorch version is 1.x.1, you can install mmcv-full compiled with PyTorch 1.x.0 and it usually works well.
|
||||
|
||||
See [here](https://github.com/open-mmlab/mmcv#installation) for different versions of MMCV compatible to different PyTorch and CUDA versions.
|
||||
|
||||
Optionally you can choose to compile mmcv from source by the following command
|
||||
|
||||
```shell
|
||||
git clone https://github.com/open-mmlab/mmcv.git
|
||||
cd mmcv
|
||||
MMCV_WITH_OPS=1 pip install -e . # package mmcv-full, which contains cuda ops, will be installed after this step
|
||||
# OR pip install -e . # package mmcv, which contains no cuda ops, will be installed after this step
|
||||
cd ..
|
||||
```
|
||||
|
||||
**Important:** You need to run `pip uninstall mmcv` first if you have mmcv installed. If mmcv and mmcv-full are both installed, there will be `ModuleNotFoundError`.
|
||||
|
||||
b. Clone the mmpose repository
|
||||
|
||||
```shell
|
||||
git clone git@github.com:open-mmlab/mmpose.git # or git clone https://github.com/open-mmlab/mmpose
|
||||
cd mmpose
|
||||
```
|
||||
|
||||
c. Install build requirements and then install mmpose
|
||||
|
||||
```shell
|
||||
pip install -r requirements.txt
|
||||
pip install -v -e . # or "python setup.py develop"
|
||||
```
|
||||
|
||||
If you build MMPose on macOS, replace the last command with
|
||||
|
||||
```shell
|
||||
CC=clang CXX=clang++ CFLAGS='-stdlib=libc++' pip install -e .
|
||||
```
|
||||
|
||||
d. Install optional modules
|
||||
|
||||
- [mmdet](https://github.com/open-mmlab/mmdetection) (to run pose demos)
|
||||
- [mmtrack](https://github.com/open-mmlab/mmtracking) (to run pose tracking demos)
|
||||
- [pyrender](https://pyrender.readthedocs.io/en/latest/install/index.html) (to run 3d mesh demos)
|
||||
- [smplx](https://github.com/vchoutas/smplx) (to run 3d mesh demos)
|
||||
|
||||
```{note}
|
||||
1. The git commit id will be written to the version number with step c, e.g. 0.6.0+2e7045c. The version will also be saved in trained models.
|
||||
It is recommended that you run step d each time you pull some updates from github. If C++/CUDA codes are modified, then this step is compulsory.
|
||||
|
||||
1. Following the above instructions, mmpose is installed on `dev` mode, any local modifications made to the code will take effect without the need to reinstall it (unless you submit some commits and want to update the version number).
|
||||
|
||||
1. If you would like to use `opencv-python-headless` instead of `opencv-python`,
|
||||
you can install it before installing MMCV.
|
||||
|
||||
1. If you have `mmcv` installed, you need to firstly uninstall `mmcv`, and then install `mmcv-full`.
|
||||
|
||||
1. Some dependencies are optional. Running `python setup.py develop` will only install the minimum runtime requirements.
|
||||
To use optional dependencies like `smplx`, either install them with `pip install -r requirements/optional.txt`
|
||||
or specify desired extras when calling `pip` (e.g. `pip install -v -e .[optional]`,
|
||||
valid keys for the `[optional]` field are `all`, `tests`, `build`, and `optional`) like `pip install -v -e .[tests,build]`.
|
||||
```
|
||||
|
||||
## Install with CPU only
|
||||
|
||||
The code can be built for CPU only environment (where CUDA isn't available).
|
||||
|
||||
In CPU mode you can run the demo/demo.py for example.
|
||||
|
||||
## A from-scratch setup script
|
||||
|
||||
Here is a full script for setting up mmpose with conda and link the dataset path (supposing that your COCO dataset path is $COCO_ROOT).
|
||||
|
||||
```shell
|
||||
conda create -n open-mmlab python=3.7 -y
|
||||
conda activate open-mmlab
|
||||
|
||||
# install latest pytorch prebuilt with the default prebuilt CUDA version (usually the latest)
|
||||
conda install -c pytorch pytorch torchvision -y
|
||||
|
||||
# install the latest mmcv-full
|
||||
# Please replace ``{cu_version}`` and ``{torch_version}`` in the url to your desired one.
|
||||
# See [here](https://github.com/open-mmlab/mmcv#installation) for different versions of MMCV compatible to different PyTorch and CUDA versions.
|
||||
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html
|
||||
|
||||
# install mmpose
|
||||
git clone https://github.com/open-mmlab/mmpose.git
|
||||
cd mmpose
|
||||
pip install -r requirements.txt
|
||||
pip install -v -e .
|
||||
|
||||
mkdir data
|
||||
ln -s $COCO_ROOT data/coco
|
||||
```
|
||||
|
||||
## Another option: Docker Image
|
||||
|
||||
We provide a [Dockerfile](/docker/Dockerfile) to build an image.
|
||||
|
||||
```shell
|
||||
# build an image with PyTorch 1.6.0, CUDA 10.1, CUDNN 7.
|
||||
docker build -f ./docker/Dockerfile --rm -t mmpose .
|
||||
```
|
||||
|
||||
**Important:** Make sure you've installed the [nvidia-container-toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker).
|
||||
|
||||
Run the following cmd:
|
||||
|
||||
```shell
|
||||
docker run --gpus all\
|
||||
--shm-size=8g \
|
||||
-it -v {DATA_DIR}:/mmpose/data mmpose
|
||||
```
|
||||
|
||||
## Developing with multiple MMPose versions
|
||||
|
||||
The train and test scripts already modify the `PYTHONPATH` to ensure the script use the MMPose in the current directory.
|
||||
|
||||
To use the default MMPose installed in the environment rather than that you are working with, you can remove the following line in those scripts.
|
||||
|
||||
```shell
|
||||
PYTHONPATH="$(dirname $0)/..":$PYTHONPATH
|
||||
```
|
||||
@@ -0,0 +1,3 @@
|
||||
## <a href='https://mmpose.readthedocs.io/en/latest/'>English</a>
|
||||
|
||||
## <a href='https://mmpose.readthedocs.io/zh_CN/latest/'>简体中文</a>
|
||||
@@ -0,0 +1,35 @@
|
||||
@ECHO OFF
|
||||
|
||||
pushd %~dp0
|
||||
|
||||
REM Command file for Sphinx documentation
|
||||
|
||||
if "%SPHINXBUILD%" == "" (
|
||||
set SPHINXBUILD=sphinx-build
|
||||
)
|
||||
set SOURCEDIR=.
|
||||
set BUILDDIR=_build
|
||||
|
||||
if "%1" == "" goto help
|
||||
|
||||
%SPHINXBUILD% >NUL 2>NUL
|
||||
if errorlevel 9009 (
|
||||
echo.
|
||||
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
|
||||
echo.installed, then set the SPHINXBUILD environment variable to point
|
||||
echo.to the full path of the 'sphinx-build' executable. Alternatively you
|
||||
echo.may add the Sphinx directory to PATH.
|
||||
echo.
|
||||
echo.If you don't have Sphinx installed, grab it from
|
||||
echo.http://sphinx-doc.org/
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
|
||||
goto end
|
||||
|
||||
:help
|
||||
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
|
||||
|
||||
:end
|
||||
popd
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (c) OpenMMLab. All rights reserved.
|
||||
|
||||
sed -i '$a\\n' ../../demo/docs/*_demo.md
|
||||
cat ../../demo/docs/*_demo.md | sed "s/#/#&/" | sed "s/md###t/html#t/g" | sed '1i\# Demo' | sed 's=](/docs/en/=](/=g' | sed 's=](/=](https://github.com/open-mmlab/mmpose/tree/master/=g' >demo.md
|
||||
|
||||
# remove /docs/ for link used in doc site
|
||||
sed -i 's=](/docs/en/=](=g' ./tutorials/*.md
|
||||
sed -i 's=](/docs/en/=](=g' ./tasks/*.md
|
||||
sed -i 's=](/docs/en/=](=g' ./papers/*.md
|
||||
sed -i 's=](/docs/en/=](=g' ./topics/*.md
|
||||
sed -i 's=](/docs/en/=](=g' data_preparation.md
|
||||
sed -i 's=](/docs/en/=](=g' getting_started.md
|
||||
sed -i 's=](/docs/en/=](=g' install.md
|
||||
sed -i 's=](/docs/en/=](=g' benchmark.md
|
||||
sed -i 's=](/docs/en/=](=g' changelog.md
|
||||
sed -i 's=](/docs/en/=](=g' faq.md
|
||||
|
||||
sed -i 's=](/=](https://github.com/open-mmlab/mmpose/tree/master/=g' ./tutorials/*.md
|
||||
sed -i 's=](/=](https://github.com/open-mmlab/mmpose/tree/master/=g' ./tasks/*.md
|
||||
sed -i 's=](/=](https://github.com/open-mmlab/mmpose/tree/master/=g' ./papers/*.md
|
||||
sed -i 's=](/=](https://github.com/open-mmlab/mmpose/tree/master/=g' ./topics/*.md
|
||||
sed -i 's=](/=](https://github.com/open-mmlab/mmpose/tree/master/=g' data_preparation.md
|
||||
sed -i 's=](/=](https://github.com/open-mmlab/mmpose/tree/master/=g' getting_started.md
|
||||
sed -i 's=](/=](https://github.com/open-mmlab/mmpose/tree/master/=g' install.md
|
||||
sed -i 's=](/=](https://github.com/open-mmlab/mmpose/tree/master/=g' benchmark.md
|
||||
sed -i 's=](/=](https://github.com/open-mmlab/mmpose/tree/master/=g' changelog.md
|
||||
sed -i 's=](/=](https://github.com/open-mmlab/mmpose/tree/master/=g' faq.md
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
# Associative embedding: End-to-end learning for joint detection and grouping (AE)
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/abs/1611.05424">Associative Embedding (NIPS'2017)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{newell2017associative,
|
||||
title={Associative embedding: End-to-end learning for joint detection and grouping},
|
||||
author={Newell, Alejandro and Huang, Zhiao and Deng, Jia},
|
||||
booktitle={Advances in neural information processing systems},
|
||||
pages={2277--2287},
|
||||
year={2017}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
We introduce associative embedding, a novel method for supervising convolutional neural networks for the task of detection and grouping. A number of computer vision problems can be framed in this manner including multi-person pose estimation, instance segmentation, and multi-object tracking. Usually the grouping of detections is achieved with multi-stage pipelines, instead we propose an approach that teaches a network to simultaneously output detections and group assignments. This technique can be easily integrated into any state-of-the-art network architecture that produces pixel-wise predictions. We show how to apply this method to both multi-person pose estimation and instance segmentation and report state-of-the-art performance for multi-person pose on the MPII and MS-COCO datasets.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146514181-84f22623-6b73-4656-89b8-9e7f551e9cc0.png">
|
||||
</div>
|
||||
@@ -0,0 +1,31 @@
|
||||
# Adaptive Wing Loss for Robust Face Alignment via Heatmap Regression
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/pdf/1904.07399.pdf">AdaptiveWingloss (ICCV'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{wang2019adaptive,
|
||||
title={Adaptive wing loss for robust face alignment via heatmap regression},
|
||||
author={Wang, Xinyao and Bo, Liefeng and Fuxin, Li},
|
||||
booktitle={Proceedings of the IEEE/CVF international conference on computer vision},
|
||||
pages={6971--6981},
|
||||
year={2019}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Heatmap regression with a deep network has become one of the mainstream approaches to localize facial landmarks. However, the loss function for heatmap regression is rarely studied. In this paper, we analyze the ideal loss function properties for heatmap regression in face alignment problems. Then we propose a novel loss function, named Adaptive Wing loss, that is able to adapt its shape to different types of ground truth heatmap pixels. This adaptability penalizes loss more on foreground pixels while less on background pixels. To address the imbalance between foreground and background pixels, we also propose Weighted Loss Map, which assigns high weights on foreground and difficult background pixels to help training process focus more on pixels that are crucial to landmark localization. To further improve face alignment accuracy, we introduce boundary prediction and CoordConv with boundary coordinates. Extensive experiments on different benchmarks, including COFW, 300W and WFLW, show our approach outperforms the state-of-the-art by a significant margin on
|
||||
various evaluation metrics. Besides, the Adaptive Wing loss also helps other heatmap regression tasks.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/148007960-a06a34d8-8090-49e1-80db-6bbe4a7e7e8d.png">
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
# Convolutional pose machines
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_cvpr_2016/html/Wei_Convolutional_Pose_Machines_CVPR_2016_paper.html">CPM (CVPR'2016)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{wei2016convolutional,
|
||||
title={Convolutional pose machines},
|
||||
author={Wei, Shih-En and Ramakrishna, Varun and Kanade, Takeo and Sheikh, Yaser},
|
||||
booktitle={Proceedings of the IEEE conference on Computer Vision and Pattern Recognition},
|
||||
pages={4724--4732},
|
||||
year={2016}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
We introduce associative embedding, a novel method for supervising convolutional neural networks for the task of detection and grouping. A number of computer vision problems can be framed in this manner including multi-person pose estimation, instance segmentation, and multi-object tracking. Usually the grouping of detections is achieved with multi-stage pipelines, instead we propose an approach that teaches a network to simultaneously output detections and group assignments. This technique can be easily integrated into any state-of-the-art network architecture that produces pixel-wise predictions. We show how to apply this method to both multi-person pose estimation and instance segmentation and report state-of-the-art performance for multi-person pose on the MPII and MS-COCO datasets.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146514331-a599580b-69a5-4ee4-9aaf-4a72f9c25c9a.png">
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
# Distribution-aware coordinate representation for human pose estimation
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_CVPR_2020/html/Zhang_Distribution-Aware_Coordinate_Representation_for_Human_Pose_Estimation_CVPR_2020_paper.html">DarkPose (CVPR'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{zhang2020distribution,
|
||||
title={Distribution-aware coordinate representation for human pose estimation},
|
||||
author={Zhang, Feng and Zhu, Xiatian and Dai, Hanbin and Ye, Mao and Zhu, Ce},
|
||||
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
|
||||
pages={7093--7102},
|
||||
year={2020}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
While being the de facto standard coordinate representation for human pose estimation, heatmap has not been investigated in-depth. This work fills this gap. For the first time, we find that the process of decoding the predicted heatmaps into the final joint coordinates in the original image space is surprisingly significant for the performance. We further probe the design limitations of the standard coordinate decoding method, and propose a more principled distributionaware decoding method. Also, we improve the standard coordinate encoding process (i.e. transforming ground-truth coordinates to heatmaps) by generating unbiased/accurate heatmaps. Taking the two together, we formulate a novel Distribution-Aware coordinate Representation of Keypoints (DARK) method. Serving as a model-agnostic plug-in, DARK brings about significant performance boost to existing human pose estimation models. Extensive experiments show that DARK yields the best results on two common benchmarks, MPII and COCO. Besides, DARK achieves the 2nd place entry in the ICCV 2019 COCO Keypoints Challenge. The code is available online.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146514732-1d53614b-e5b7-4a1c-a39f-6fc726217d81.png">
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
# DeepPose: Human pose estimation via deep neural networks
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_cvpr_2014/html/Toshev_DeepPose_Human_Pose_2014_CVPR_paper.html">DeepPose (CVPR'2014)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{toshev2014deeppose,
|
||||
title={Deeppose: Human pose estimation via deep neural networks},
|
||||
author={Toshev, Alexander and Szegedy, Christian},
|
||||
booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
|
||||
pages={1653--1660},
|
||||
year={2014}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
We propose a method for human pose estimation based on Deep Neural Networks (DNNs). The pose estimation is formulated as a DNN-based regression problem towards body joints. We present a cascade of such DNN regressors which results in high precision pose estimates. The approach has the advantage of reasoning about pose in a holistic fashion and has a simple but yet powerful formulation which capitalizes on recent advances in Deep Learning. We present a detailed empirical analysis with state-of-art or better performance on four academic benchmarks of diverse real-world images.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146515040-a82a8a29-d6bc-42f1-a2ab-7dfa610ce363.png">
|
||||
</div>
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
# HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_CVPR_2020/html/Cheng_HigherHRNet_Scale-Aware_Representation_Learning_for_Bottom-Up_Human_Pose_Estimation_CVPR_2020_paper.html">HigherHRNet (CVPR'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{cheng2020higherhrnet,
|
||||
title={HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation},
|
||||
author={Cheng, Bowen and Xiao, Bin and Wang, Jingdong and Shi, Honghui and Huang, Thomas S and Zhang, Lei},
|
||||
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
|
||||
pages={5386--5395},
|
||||
year={2020}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Bottom-up human pose estimation methods have difficulties in predicting the correct pose for small persons due to challenges in scale variation. In this paper, we present HigherHRNet: a novel bottom-up human pose estimation method for learning scale-aware representations using high-resolution feature pyramids. Equipped with multi-resolution supervision for training and multi-resolution aggregation for inference, the proposed approach is able to solve the scale variation challenge in bottom-up multi-person pose estimation and localize keypoints more precisely, especially for small person. The feature pyramid in HigherHRNet consists of feature map outputs from HRNet and upsampled higher-resolution outputs through a transposed convolution. HigherHRNet outperforms the previous best bottom-up method by 2.5% AP for medium person on COCO test-dev, showing its effectiveness in handling scale variation. Furthermore, HigherHRNet achieves new state-of-the-art result on COCO test-dev (70.5% AP) without using refinement or other post-processing techniques, surpassing all existing bottom-up methods. HigherHRNet even surpasses all top-down methods on CrowdPose test (67.6% AP), suggesting its robustness in crowded scene.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146515482-975050d6-57da-469a-8dda-201675a404e7.png">
|
||||
</div>
|
||||
@@ -0,0 +1,32 @@
|
||||
# End-to-end Recovery of Human Shape and Pose
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_cvpr_2018/html/Kanazawa_End-to-End_Recovery_of_CVPR_2018_paper.html">HMR (CVPR'2018)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inProceedings{kanazawaHMR18,
|
||||
title={End-to-end Recovery of Human Shape and Pose},
|
||||
author = {Angjoo Kanazawa
|
||||
and Michael J. Black
|
||||
and David W. Jacobs
|
||||
and Jitendra Malik},
|
||||
booktitle={Computer Vision and Pattern Recognition (CVPR)},
|
||||
year={2018}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
We describe Human Mesh Recovery (HMR), an end-to-end framework for reconstructing a full 3D mesh of a human body from a single RGB image. In contrast to most current methods that compute 2D or 3D joint locations, we produce a richer and more useful mesh representation that is parameterized by shape and 3D joint angles. The main objective is to minimize the reprojection loss of keypoints, which allows our model to be trained using in-the-wild images that only have ground truth 2D annotations. However, the reprojection loss alone is highly underconstrained. In this work we address this problem by introducing an adversary trained to tell whether human body shape and pose are real or not using a large database of 3D human meshes. We show that HMR can be trained with and without using any paired 2D-to-3D supervision. We do not rely on intermediate 2D keypoint detections and infer 3D pose and shape parameters directly from image pixels. Our model runs in real-time given a bounding box containing the person. We demonstrate our approach on various images in-the-wild and out-perform previous optimization-based methods that output 3D meshes and show competitive results on tasks such as 3D joint location estimation and part segmentation.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146515822-a271ec4d-4045-4456-a7cb-740018317053.png">
|
||||
</div>
|
||||
@@ -0,0 +1,31 @@
|
||||
# Stacked hourglass networks for human pose estimation
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://link.springer.com/chapter/10.1007/978-3-319-46484-8_29">Hourglass (ECCV'2016)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{newell2016stacked,
|
||||
title={Stacked hourglass networks for human pose estimation},
|
||||
author={Newell, Alejandro and Yang, Kaiyu and Deng, Jia},
|
||||
booktitle={European conference on computer vision},
|
||||
pages={483--499},
|
||||
year={2016},
|
||||
organization={Springer}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
This work introduces a novel convolutional network architecture for the task of human pose estimation. Features are processed across all scales and consolidated to best capture the various spatial relationships associated with the body. We show how repeated bottom-up, top-down processing used in conjunction with intermediate supervision is critical to improving the performance of the network. We refer to the architecture as a “stacked hourglass” network based on the successive steps of pooling and upsampling that are done to produce a final set of predictions. State-of-the-art results are achieved on the FLIC and MPII benchmarks outcompeting all recent methods.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146516901-cee086aa-6b7c-4f79-82bd-1168f03ea63b.png">
|
||||
</div>
|
||||
@@ -0,0 +1,32 @@
|
||||
# Deep high-resolution representation learning for human pose estimation
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_CVPR_2019/html/Sun_Deep_High-Resolution_Representation_Learning_for_Human_Pose_Estimation_CVPR_2019_paper.html">HRNet (CVPR'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{sun2019deep,
|
||||
title={Deep high-resolution representation learning for human pose estimation},
|
||||
author={Sun, Ke and Xiao, Bin and Liu, Dong and Wang, Jingdong},
|
||||
booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
|
||||
pages={5693--5703},
|
||||
year={2019}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
In this paper, we are interested in the human pose estimation problem with a focus on learning reliable highresolution representations. Most existing methods recover high-resolution representations from low-resolution representations produced by a high-to-low resolution network. Instead, our proposed network maintains high-resolution representations through the whole process. We start from a high-resolution subnetwork as the first stage, gradually add high-to-low resolution subnetworks one by one to form more stages, and connect the mutliresolution subnetworks in parallel. We conduct repeated multi-scale fusions such that each of the high-to-low resolution representations receives information from other parallel representations over and over, leading to rich highresolution representations. As a result, the predicted keypoint heatmap is potentially more accurate and spatially more precise. We empirically demonstrate the effectiveness
|
||||
of our network through the superior pose estimation results over two benchmark datasets: the COCO keypoint detection
|
||||
dataset and the MPII Human Pose dataset. In addition, we show the superiority of our network in pose tracking on the PoseTrack dataset.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146518010-9c1d6078-dd9c-4610-94a9-cbcb60aa87c0.png">
|
||||
</div>
|
||||
@@ -0,0 +1,31 @@
|
||||
# Deep high-resolution representation learning for visual recognition
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://ieeexplore.ieee.org/abstract/document/9052469/">HRNetv2 (TPAMI'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@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}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
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 and (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.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146519239-b3416e9a-0f3a-493a-9cc5-2d257b7fae01.png">
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
# InterHand2.6M: A Dataset and Baseline for 3D Interacting Hand Pose Estimation from a Single RGB Image
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://link.springer.com/content/pdf/10.1007/978-3-030-58565-5_33.pdf">InterNet (ECCV'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@InProceedings{Moon_2020_ECCV_InterHand2.6M,
|
||||
author = {Moon, Gyeongsik and Yu, Shoou-I and Wen, He and Shiratori, Takaaki and Lee, Kyoung Mu},
|
||||
title = {InterHand2.6M: A Dataset and Baseline for 3D Interacting Hand Pose Estimation from a Single RGB Image},
|
||||
booktitle = {European Conference on Computer Vision (ECCV)},
|
||||
year = {2020}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Analysis of hand-hand interactions is a crucial step towards better understanding human behavior. However, most researches in 3D hand pose estimation have focused on the isolated single hand case. Therefore, we firstly propose (1) a large-scale dataset, InterHand2.6M, and (2) a baseline network, InterNet, for 3D interacting hand pose estimation from a single RGB image. The proposed InterHand2.6M consists of 2.6 M labeled single and interacting hand frames under various poses from multiple subjects. Our InterNet simultaneously performs 3D single and interacting hand pose estimation. In our experiments, we demonstrate big gains in 3D interacting hand pose estimation accuracy when leveraging the interacting hand data in InterHand2.6M. We also report the accuracy of InterNet on InterHand2.6M, which serves as a strong baseline for this new dataset. Finally, we show 3D interacting hand pose estimation results from general images.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146519040-dfd5662d-a769-4e63-bff8-cd70877e1acb.png">
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
# Lite-HRNet: A Lightweight High-Resolution Network
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/abs/2104.06403">LiteHRNet (CVPR'2021)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{Yulitehrnet21,
|
||||
title={Lite-HRNet: A Lightweight High-Resolution Network},
|
||||
author={Yu, Changqian and Xiao, Bin and Gao, Changxin and Yuan, Lu and Zhang, Lei and Sang, Nong and Wang, Jingdong},
|
||||
booktitle={CVPR},
|
||||
year={2021}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
We present an efficient high-resolution network, Lite-HRNet, for human pose estimation. We start by simply applying the efficient shuffle block in ShuffleNet to HRNet (high-resolution network), yielding stronger performance over popular lightweight networks, such as MobileNet, ShuffleNet, and Small HRNet.
|
||||
We find that the heavily-used pointwise (1x1) convolutions in shuffle blocks become the computational bottleneck. We introduce a lightweight unit, conditional channel weighting, to replace costly pointwise (1x1) convolutions in shuffle blocks. The complexity of channel weighting is linear w.r.t the number of channels and lower than the quadratic time complexity for pointwise convolutions. Our solution learns the weights from all the channels and over multiple resolutions that are readily available in the parallel branches in HRNet. It uses the weights as the bridge to exchange information across channels and resolutions, compensating the role played by the pointwise (1x1) convolution. Lite-HRNet demonstrates superior results on human pose estimation over popular lightweight networks. Moreover, Lite-HRNet can be easily applied to semantic segmentation task in the same lightweight manner.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146520579-3e86e3af-a8b2-4071-94da-916e0ce90464.png">
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
# Rethinking on multi-stage networks for human pose estimation
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/abs/1901.00148">MSPN (ArXiv'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{li2019rethinking,
|
||||
title={Rethinking on Multi-Stage Networks for Human Pose Estimation},
|
||||
author={Li, Wenbo and Wang, Zhicheng and Yin, Binyi and Peng, Qixiang and Du, Yuming and Xiao, Tianzi and Yu, Gang and Lu, Hongtao and Wei, Yichen and Sun, Jian},
|
||||
journal={arXiv preprint arXiv:1901.00148},
|
||||
year={2019}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Existing pose estimation approaches fall into two categories: single-stage and multi-stage methods. While multi-stage methods are seemingly more suited for the task, their performance in current practice is not as good as single-stage methods. This work studies this issue. We argue that the current multi-stage methods' unsatisfactory performance comes from the insufficiency in various design choices. We propose several improvements, including the single-stage module design, cross stage feature aggregation, and coarse-to-fine supervision. The resulting method establishes the new state-of-the-art on both MS COCO and MPII Human Pose dataset, justifying the effectiveness of a multi-stage architecture. The source code is publicly available for further research.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146520722-74c1ef85-9fa3-4b96-8cbf-4a2c86a80adc.png">
|
||||
</div>
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
# Learning Temporal Pose Estimation from Sparsely-Labeled Videos
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/abs/1906.04016">PoseWarper (NeurIPS'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{NIPS2019_gberta,
|
||||
title = {Learning Temporal Pose Estimation from Sparsely Labeled Videos},
|
||||
author = {Bertasius, Gedas and Feichtenhofer, Christoph, and Tran, Du and Shi, Jianbo, and Torresani, Lorenzo},
|
||||
booktitle = {Advances in Neural Information Processing Systems 33},
|
||||
year = {2019},
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Modern approaches for multi-person pose estimation in video require large amounts of dense annotations. However, labeling every frame in a video is costly and labor intensive. To reduce the need for dense annotations, we propose a PoseWarper network that leverages training videos with sparse annotations (every k frames) to learn to perform dense temporal pose propagation and estimation. Given a pair of video frames---a labeled Frame A and an unlabeled Frame B---we train our model to predict human pose in Frame A using the features from Frame B by means of deformable convolutions to implicitly learn the pose warping between A and B. We demonstrate that we can leverage our trained PoseWarper for several applications. First, at inference time we can reverse the application direction of our network in order to propagate pose information from manually annotated frames to unlabeled frames. This makes it possible to generate pose annotations for the entire video given only a few manually-labeled frames. Compared to modern label propagation methods based on optical flow, our warping mechanism is much more compact (6M vs 39M parameters), and also more accurate (88.7% mAP vs 83.8% mAP). We also show that we can improve the accuracy of a pose estimator by training it on an augmented dataset obtained by adding our propagated poses to the original manual labels. Lastly, we can use our PoseWarper to aggregate temporal pose information from neighboring frames during inference. This allows our system to achieve state-of-the-art pose detection results on the PoseTrack2017 and PoseTrack2018 datasets.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146521380-97f7c23c-4960-454c-bd93-426a9cca175c.png">
|
||||
</div>
|
||||
@@ -0,0 +1,31 @@
|
||||
# Learning delicate local representations for multi-person pose estimation
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://link.springer.com/chapter/10.1007/978-3-030-58580-8_27">RSN (ECCV'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@misc{cai2020learning,
|
||||
title={Learning Delicate Local Representations for Multi-Person Pose Estimation},
|
||||
author={Yuanhao Cai and Zhicheng Wang and Zhengxiong Luo and Binyi Yin and Angang Du and Haoqian Wang and Xinyu Zhou and Erjin Zhou and Xiangyu Zhang and Jian Sun},
|
||||
year={2020},
|
||||
eprint={2003.04030},
|
||||
archivePrefix={arXiv},
|
||||
primaryClass={cs.CV}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
In this paper, we propose a novel method called Residual Steps Network (RSN). RSN aggregates features with the same spatial size (Intra-level features) efficiently to obtain delicate local representations, which retain rich low-level spatial information and result in precise keypoint localization. Additionally, we observe the output features contribute differently to final performance. To tackle this problem, we propose an efficient attention mechanism - Pose Refine Machine (PRM) to make a trade-off between local and global representations in output features and further refine the keypoint locations. Our approach won the 1st place of COCO Keypoint Challenge 2019 and achieves state-of-the-art results on both COCO and MPII benchmarks, without using extra training data and pretrained model. Our single model achieves 78.6 on COCO test-dev, 93.0 on MPII test dataset. Ensembled models achieve 79.2 on COCO test-dev, 77.1 on COCO test-challenge dataset.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146522226-5041d16e-41cb-4d31-ae53-dbe21314a697.png">
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
# Improving Convolutional Networks with Self-Calibrated Convolutions
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_CVPR_2020/html/Liu_Improving_Convolutional_Networks_With_Self-Calibrated_Convolutions_CVPR_2020_paper.html">SCNet (CVPR'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{liu2020improving,
|
||||
title={Improving Convolutional Networks with Self-Calibrated Convolutions},
|
||||
author={Liu, Jiang-Jiang and Hou, Qibin and Cheng, Ming-Ming and Wang, Changhu and Feng, Jiashi},
|
||||
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
|
||||
pages={10096--10105},
|
||||
year={2020}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Recent advances on CNNs are mostly devoted to designing more complex architectures to enhance their representation learning capacity. In this paper, we consider how to improve the basic convolutional feature transformation process of CNNs without tuning the model architectures. To this end, we present a novel self-calibrated convolutions that explicitly expand fields-of-view of each convolutional layers through internal communications and hence enrich the output features. In particular, unlike the standard convolutions that fuse spatial and channel-wise information using small kernels (e.g., 3x3), self-calibrated convolutions adaptively build long-range spatial and inter-channel dependencies around each spatial location through a novel self-calibration operation. Thus, it can help CNNs generate more discriminative representations by explicitly incorporating richer information. Our self-calibrated convolution design is simple and generic, and can be easily applied to augment standard convolutional layers without introducing extra parameters and complexity. Extensive experiments demonstrate that when applying self-calibrated convolutions into different backbones, our networks can significantly improve the baseline models in a variety of vision tasks, including image recognition, object detection, instance segmentation, and keypoint detection, with no need to change the network architectures. We hope this work could provide a promising way for future research in designing novel convolutional feature transformations for improving convolutional networks. Code is available on the project page.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146522623-fdc88996-1a8f-4b0a-bdee-fc284dfd7348.png">
|
||||
</div>
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
# Simple baselines for human pose estimation and tracking
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_ECCV_2018/html/Bin_Xiao_Simple_Baselines_for_ECCV_2018_paper.html">SimpleBaseline2D (ECCV'2018)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{xiao2018simple,
|
||||
title={Simple baselines for human pose estimation and tracking},
|
||||
author={Xiao, Bin and Wu, Haiping and Wei, Yichen},
|
||||
booktitle={Proceedings of the European conference on computer vision (ECCV)},
|
||||
pages={466--481},
|
||||
year={2018}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
There has been significant progress on pose estimation and increasing interests on pose tracking in recent years. At the same time, the overall algorithm and system complexity increases as well, making the algorithm analysis and comparison more difficult. This work provides simple and effective baseline methods. They are helpful for inspiring and
|
||||
evaluating new ideas for the field. State-of-the-art results are achieved on challenging benchmarks.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146522977-5f355832-e9c1-442f-a34f-9d24fb0aefa8.png">
|
||||
</div>
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
# A simple yet effective baseline for 3d human pose estimation
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_iccv_2017/html/Martinez_A_Simple_yet_ICCV_2017_paper.html">SimpleBaseline3D (ICCV'2017)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{martinez_2017_3dbaseline,
|
||||
title={A simple yet effective baseline for 3d human pose estimation},
|
||||
author={Martinez, Julieta and Hossain, Rayat and Romero, Javier and Little, James J.},
|
||||
booktitle={ICCV},
|
||||
year={2017}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Following the success of deep convolutional networks, state-of-the-art methods for 3d human pose estimation have focused on deep end-to-end systems that predict 3d joint locations given raw image pixels. Despite their excellent performance, it is often not easy to understand whether their remaining error stems from a limited 2d pose (visual) understanding, or from a failure to map 2d poses into 3-dimensional positions. With the goal of understanding these sources of error, we set out to build a system that given 2d joint locations predicts 3d positions. Much to our surprise, we have found that, with current technology, "lifting" ground truth 2d joint locations to 3d space is a task that can be solved with a remarkably low error rate: a relatively simple deep feed-forward network outperforms the best reported result by about 30% on Human3.6M, the largest publicly available 3d pose estimation benchmark. Furthermore, training our system on the output of an off-the-shelf state-of-the-art 2d detector (i.e., using images as input) yields state of the art results -- this includes an array of systems that have been trained end-to-end specifically for this task. Our results indicate that a large portion of the error of modern deep 3d pose estimation systems stems from their visual analysis, and suggests directions to further advance the state of the art in 3d human pose estimation.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146523402-1b2a6c14-a5f4-4266-b2b4-19c0738cd434.png">
|
||||
</div>
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
# Structure-Coherent Deep Feature Learning for Robust Face Alignment
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://ieeexplore.ieee.org/document/9442331/">SoftWingloss (TIP'2021)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{lin2021structure,
|
||||
title={Structure-Coherent Deep Feature Learning for Robust Face Alignment},
|
||||
author={Lin, Chunze and Zhu, Beier and Wang, Quan and Liao, Renjie and Qian, Chen and Lu, Jiwen and Zhou, Jie},
|
||||
journal={IEEE Transactions on Image Processing},
|
||||
year={2021},
|
||||
publisher={IEEE}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
In this paper, we propose a structure-coherent deep feature learning method for face alignment. Unlike most existing face alignment methods which overlook the facial structure cues, we explicitly exploit the relation among facial landmarks to make the detector robust to hard cases such as occlusion and large pose. Specifically, we leverage a landmark-graph relational network to enforce the structural relationships among landmarks. We consider the facial landmarks as structural graph nodes and carefully design the neighborhood to passing features among the most related nodes. Our method dynamically adapts the weights of node neighborhood to eliminate distracted information from noisy nodes, such as occluded landmark point. Moreover, different from most previous works which only tend to penalize the landmarks absolute position during the training, we propose a relative location loss to enhance the information of relative location of landmarks. This relative location supervision further regularizes the facial structure. Our approach considers the interactions among facial landmarks and can be easily implemented on top of any convolutional backbone to boost the performance. Extensive experiments on three popular benchmarks, including WFLW, COFW and 300W, demonstrate the effectiveness of the proposed method. In particular, due to explicit structure modeling, our approach is especially robust to challenging cases resulting in impressive low failure rate on COFW and WFLW datasets.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/148036579-b128fb21-3a2d-4894-bb54-4223a4cdf856.png">
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
# The Devil is in the Details: Delving into Unbiased Data Processing for Human Pose Estimation
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_CVPR_2020/html/Huang_The_Devil_Is_in_the_Details_Delving_Into_Unbiased_Data_CVPR_2020_paper.html">UDP (CVPR'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@InProceedings{Huang_2020_CVPR,
|
||||
author = {Huang, Junjie and Zhu, Zheng and Guo, Feng and Huang, Guan},
|
||||
title = {The Devil Is in the Details: Delving Into Unbiased Data Processing for Human Pose Estimation},
|
||||
booktitle = {The IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
|
||||
month = {June},
|
||||
year = {2020}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Recently, the leading performance of human pose estimation is dominated by top-down methods. Being a fundamental component in training and inference, data processing has not been systematically considered in pose estimation community, to the best of our knowledge. In this paper, we focus on this problem and find that the devil of top-down pose estimator is in the biased data processing. Specifically, by investigating the standard data processing in state-of-the-art approaches mainly including data transformation and encoding-decoding, we find that the results obtained by common flipping strategy are unaligned with the original ones in inference. Moreover, there is statistical error in standard encoding-decoding during both training and inference. Two problems couple together and significantly degrade the pose estimation performance. Based on quantitative analyses, we then formulate a principled way to tackle this dilemma. Data is processed in continuous space based on unit length (the intervals between pixels) instead of in discrete space with pixel, and a combined classification and regression approach is adopted to perform encoding-decoding. The Unbiased Data Processing (UDP) for human pose estimation can be achieved by combining the two together. UDP not only boosts the performance of existing methods by a large margin but also plays a important role in result reproducing and future exploration. As a model-agnostic approach, UDP promotes SimpleBaseline-ResNet50-256x192 by 1.5 AP (70.2 to 71.7) and HRNet-W32-256x192 by 1.7 AP (73.5 to 75.2) on COCO test-dev set. The HRNet-W48-384x288 equipped with UDP achieves 76.5 AP and sets a new state-of-the-art for human pose estimation. The source code is publicly available for further research.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146524686-ddfe1356-77bd-46a0-a6cd-7ff418f65675.png">
|
||||
</div>
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
# 3D human pose estimation in video with temporal convolutions and semi-supervised training
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_CVPR_2019/html/Pavllo_3D_Human_Pose_Estimation_in_Video_With_Temporal_Convolutions_and_CVPR_2019_paper.html">VideoPose3D (CVPR'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{pavllo20193d,
|
||||
title={3d human pose estimation in video with temporal convolutions and semi-supervised training},
|
||||
author={Pavllo, Dario and Feichtenhofer, Christoph and Grangier, David and Auli, Michael},
|
||||
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
|
||||
pages={7753--7762},
|
||||
year={2019}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
In this work, we demonstrate that 3D poses in video can be effectively estimated with a fully convolutional model based on dilated temporal convolutions over 2D keypoints. We also introduce back-projection, a simple and effective semi-supervised training method that leverages unlabeled video data. We start with predicted 2D keypoints for unlabeled video, then estimate 3D poses and finally back-project to the input 2D keypoints. In the supervised setting, our fully-convolutional model outperforms the previous best result from the literature by 6 mm mean per-joint position error on Human3.6M, corresponding to an error reduction of 11%, and the model also shows significant improvements on HumanEva-I. Moreover, experiments with back-projection show that it comfortably outperforms previous state-of-the-art results in semi-supervised settings where labeled data is scarce.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146525184-34a14153-5cab-4fe0-8500-018c99a5f647.png">
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
# ViPNAS: Efficient Video Pose Estimation via Neural Architecture Search
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/abs/2105.10154">ViPNAS (CVPR'2021)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{xu2021vipnas,
|
||||
title={ViPNAS: Efficient Video Pose Estimation via Neural Architecture Search},
|
||||
author={Xu, Lumin and Guan, Yingda and Jin, Sheng and Liu, Wentao and Qian, Chen and Luo, Ping and Ouyang, Wanli and Wang, Xiaogang},
|
||||
booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
|
||||
year={2021}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Human pose estimation has achieved significant progress in recent years. However, most of the recent methods focus on improving accuracy using complicated models and ignoring real-time efficiency. To achieve a better trade-off between accuracy and efficiency, we propose a novel neural architecture search (NAS) method, termed ViPNAS, to search networks in both spatial and temporal levels for fast online video pose estimation. In the spatial level, we carefully design the search space with five different dimensions including network depth, width, kernel size, group number, and attentions. In the temporal level, we search from a series of temporal feature fusions to optimize the total accuracy and speed across multiple video frames. To the best of our knowledge, we are the first to search for the temporal feature fusion and automatic computation allocation in videos. Extensive experiments demonstrate the effectiveness of our approach on the challenging COCO2017 and PoseTrack2018 datasets. Our discovered model family, S-ViPNAS and T-ViPNAS, achieve significantly higher inference speed (CPU real-time) without sacrificing the accuracy compared to the previous state-of-the-art methods.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146527709-b8e55e40-426c-4958-8a35-b8d259e69efa.png">
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
# VoxelPose: Towards Multi-Camera 3D Human Pose Estimation in Wild Environment
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123460188.pdf">VoxelPose (ECCV'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{tumultipose,
|
||||
title={VoxelPose: Towards Multi-Camera 3D Human Pose Estimation in Wild Environment},
|
||||
author={Tu, Hanyue and Wang, Chunyu and Zeng, Wenjun},
|
||||
booktitle={ECCV},
|
||||
year={2020}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
We present VoxelPose to estimate 3D poses of multiple people from multiple camera views. In contrast to the previous efforts which require to establish cross-view correspondence based on noisy and incomplete 2D pose estimates, VoxelPose directly operates in the 3D space therefore avoids making incorrect decisions in each camera view. To achieve this goal, features in all camera views are aggregated in the 3D voxel space and fed into Cuboid Proposal Network (CPN) to localize all people. Then we propose Pose Regression Network (PRN) to estimate a detailed 3D pose for each proposal. The approach is robust to occlusion which occurs frequently in practice. Without bells and whistles, it outperforms the previous methods on several public datasets.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/148036780-b73a878c-7244-480b-b56e-ac739396856b.png">
|
||||
</div>
|
||||
@@ -0,0 +1,31 @@
|
||||
# Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_cvpr_2018/html/Feng_Wing_Loss_for_CVPR_2018_paper.html">Wingloss (CVPR'2018)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{feng2018wing,
|
||||
title={Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks},
|
||||
author={Feng, Zhen-Hua and Kittler, Josef and Awais, Muhammad and Huber, Patrik and Wu, Xiao-Jun},
|
||||
booktitle={Computer Vision and Pattern Recognition (CVPR), 2018 IEEE Conference on},
|
||||
year={2018},
|
||||
pages ={2235-2245},
|
||||
organization={IEEE}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
We present a new loss function, namely Wing loss, for robust facial landmark localisation with Convolutional Neural Networks (CNNs). We first compare and analyse different loss functions including L2, L1 and smooth L1. The analysis of these loss functions suggests that, for the training of a CNN-based localisation model, more attention should be paid to small and medium range errors. To this end, we design a piece-wise loss function. The new loss amplifies the impact of errors from the interval (-w, w) by switching from L1 loss to a modified logarithm function. To address the problem of under-representation of samples with large out-of-plane head rotations in the training set, we propose a simple but effective boosting strategy, referred to as pose-based data balancing. In particular, we deal with the data imbalance problem by duplicating the minority training samples and perturbing them by injecting random image rotation, bounding box translation and other data augmentation approaches. Last, the proposed approach is extended to create a two-stage framework for robust facial landmark localisation. The experimental results obtained on AFLW and 300W demonstrate the merits of the Wing loss function, and prove the superiority of the proposed method over the state-of-the-art approaches.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146528473-f3228f69-b60e-4807-9c4b-b45997fbc530.png">
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
# Imagenet classification with deep convolutional neural networks
|
||||
|
||||
<!-- [BACKBONE] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://proceedings.neurips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf">AlexNet (NeurIPS'2012)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{krizhevsky2012imagenet,
|
||||
title={Imagenet classification with deep convolutional neural networks},
|
||||
author={Krizhevsky, Alex and Sutskever, Ilya and Hinton, Geoffrey E},
|
||||
booktitle={Advances in neural information processing systems},
|
||||
pages={1097--1105},
|
||||
year={2012}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
We trained a large, deep convolutional neural network to classify the 1.2 million high-resolution images in the ImageNet LSVRC-2010 contest into the 1000 different classes. On the test data, we achieved top-1 and top-5 error rates of 37.5% and 17.0% which is considerably better than the previous state-of-the-art. The neural network, which has 60 million parameters and 650,000 neurons, consists of five convolutional layers, some of which are followed by max-pooling layers, and three fully-connected layers with a final 1000-way softmax. To make training faster, we used non-saturating neurons and a very efficient GPU implementation of the convolution operation. To reduce overfitting in the fully-connected layers we employed a recently-developed regularization method called “dropout” that proved to be very effective. We also entered a variant of this model in the ILSVRC-2012 competition and achieved a winning top-5 test error rate of 15.3%, compared to 26.2% achieved by the second-best entry
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146537150-39cd128e-185e-48eb-9d6b-7e9a187d2ae5.png">
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
# Convolutional pose machines
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_cvpr_2016/html/Wei_Convolutional_Pose_Machines_CVPR_2016_paper.html">CPM (CVPR'2016)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{wei2016convolutional,
|
||||
title={Convolutional pose machines},
|
||||
author={Wei, Shih-En and Ramakrishna, Varun and Kanade, Takeo and Sheikh, Yaser},
|
||||
booktitle={Proceedings of the IEEE conference on Computer Vision and Pattern Recognition},
|
||||
pages={4724--4732},
|
||||
year={2016}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
We introduce associative embedding, a novel method for supervising convolutional neural networks for the task of detection and grouping. A number of computer vision problems can be framed in this manner including multi-person pose estimation, instance segmentation, and multi-object tracking. Usually the grouping of detections is achieved with multi-stage pipelines, instead we propose an approach that teaches a network to simultaneously output detections and group assignments. This technique can be easily integrated into any state-of-the-art network architecture that produces pixel-wise predictions. We show how to apply this method to both multi-person pose estimation and instance segmentation and report state-of-the-art performance for multi-person pose on the MPII and MS-COCO datasets.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146514331-a599580b-69a5-4ee4-9aaf-4a72f9c25c9a.png">
|
||||
</div>
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
# HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_CVPR_2020/html/Cheng_HigherHRNet_Scale-Aware_Representation_Learning_for_Bottom-Up_Human_Pose_Estimation_CVPR_2020_paper.html">HigherHRNet (CVPR'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{cheng2020higherhrnet,
|
||||
title={HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation},
|
||||
author={Cheng, Bowen and Xiao, Bin and Wang, Jingdong and Shi, Honghui and Huang, Thomas S and Zhang, Lei},
|
||||
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
|
||||
pages={5386--5395},
|
||||
year={2020}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Bottom-up human pose estimation methods have difficulties in predicting the correct pose for small persons due to challenges in scale variation. In this paper, we present HigherHRNet: a novel bottom-up human pose estimation method for learning scale-aware representations using high-resolution feature pyramids. Equipped with multi-resolution supervision for training and multi-resolution aggregation for inference, the proposed approach is able to solve the scale variation challenge in bottom-up multi-person pose estimation and localize keypoints more precisely, especially for small person. The feature pyramid in HigherHRNet consists of feature map outputs from HRNet and upsampled higher-resolution outputs through a transposed convolution. HigherHRNet outperforms the previous best bottom-up method by 2.5% AP for medium person on COCO test-dev, showing its effectiveness in handling scale variation. Furthermore, HigherHRNet achieves new state-of-the-art result on COCO test-dev (70.5% AP) without using refinement or other post-processing techniques, surpassing all existing bottom-up methods. HigherHRNet even surpasses all top-down methods on CrowdPose test (67.6% AP), suggesting its robustness in crowded scene.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146515482-975050d6-57da-469a-8dda-201675a404e7.png">
|
||||
</div>
|
||||
@@ -0,0 +1,31 @@
|
||||
# Stacked hourglass networks for human pose estimation
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://link.springer.com/chapter/10.1007/978-3-319-46484-8_29">Hourglass (ECCV'2016)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{newell2016stacked,
|
||||
title={Stacked hourglass networks for human pose estimation},
|
||||
author={Newell, Alejandro and Yang, Kaiyu and Deng, Jia},
|
||||
booktitle={European conference on computer vision},
|
||||
pages={483--499},
|
||||
year={2016},
|
||||
organization={Springer}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
This work introduces a novel convolutional network architecture for the task of human pose estimation. Features are processed across all scales and consolidated to best capture the various spatial relationships associated with the body. We show how repeated bottom-up, top-down processing used in conjunction with intermediate supervision is critical to improving the performance of the network. We refer to the architecture as a “stacked hourglass” network based on the successive steps of pooling and upsampling that are done to produce a final set of predictions. State-of-the-art results are achieved on the FLIC and MPII benchmarks outcompeting all recent methods.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146516901-cee086aa-6b7c-4f79-82bd-1168f03ea63b.png">
|
||||
</div>
|
||||
@@ -0,0 +1,39 @@
|
||||
# HRFormer: High-Resolution Vision Transformer for Dense Predict
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://proceedings.neurips.cc/paper/2021/hash/3bbfdde8842a5c44a0323518eec97cbe-Abstract.html">HRFormer (NIPS'2021)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{yuan2021hrformer,
|
||||
title={HRFormer: High-Resolution Vision Transformer for Dense Predict},
|
||||
author={Yuan, Yuhui and Fu, Rao and Huang, Lang and Lin, Weihong and Zhang, Chao and Chen, Xilin and Wang, Jingdong},
|
||||
journal={Advances in Neural Information Processing Systems},
|
||||
volume={34},
|
||||
year={2021}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
We present a High-Resolution Transformer (HRFormer) that learns high-resolution representations for dense
|
||||
prediction tasks, in contrast to the original Vision Transformer that produces low-resolution representations
|
||||
and has high memory and computational cost. We take advantage of the multi-resolution parallel design
|
||||
introduced in high-resolution convolutional networks (HRNet), along with local-window self-attention
|
||||
that performs self-attention over small non-overlapping image windows, for improving the memory and
|
||||
computation efficiency. In addition, we introduce a convolution into the FFN to exchange information
|
||||
across the disconnected image windows. We demonstrate the effectiveness of the HighResolution Transformer
|
||||
on both human pose estimation and semantic segmentation tasks, e.g., HRFormer outperforms Swin
|
||||
transformer by 1.3 AP on COCO pose estimation with 50% fewer parameters and 30% fewer FLOPs.
|
||||
Code is available at: https://github.com/HRNet/HRFormer
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/28900607/155838218-a6aa12b5-5855-45ed-922e-1cfe74f63027.png">
|
||||
</div>
|
||||
@@ -0,0 +1,32 @@
|
||||
# Deep high-resolution representation learning for human pose estimation
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_CVPR_2019/html/Sun_Deep_High-Resolution_Representation_Learning_for_Human_Pose_Estimation_CVPR_2019_paper.html">HRNet (CVPR'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{sun2019deep,
|
||||
title={Deep high-resolution representation learning for human pose estimation},
|
||||
author={Sun, Ke and Xiao, Bin and Liu, Dong and Wang, Jingdong},
|
||||
booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
|
||||
pages={5693--5703},
|
||||
year={2019}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
In this paper, we are interested in the human pose estimation problem with a focus on learning reliable highresolution representations. Most existing methods recover high-resolution representations from low-resolution representations produced by a high-to-low resolution network. Instead, our proposed network maintains high-resolution representations through the whole process. We start from a high-resolution subnetwork as the first stage, gradually add high-to-low resolution subnetworks one by one to form more stages, and connect the mutliresolution subnetworks in parallel. We conduct repeated multi-scale fusions such that each of the high-to-low resolution representations receives information from other parallel representations over and over, leading to rich highresolution representations. As a result, the predicted keypoint heatmap is potentially more accurate and spatially more precise. We empirically demonstrate the effectiveness
|
||||
of our network through the superior pose estimation results over two benchmark datasets: the COCO keypoint detection
|
||||
dataset and the MPII Human Pose dataset. In addition, we show the superiority of our network in pose tracking on the PoseTrack dataset.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146518010-9c1d6078-dd9c-4610-94a9-cbcb60aa87c0.png">
|
||||
</div>
|
||||
@@ -0,0 +1,31 @@
|
||||
# Deep high-resolution representation learning for visual recognition
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://ieeexplore.ieee.org/abstract/document/9052469/">HRNetv2 (TPAMI'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@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}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
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 and (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.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146519239-b3416e9a-0f3a-493a-9cc5-2d257b7fae01.png">
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
# Lite-HRNet: A Lightweight High-Resolution Network
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/abs/2104.06403">LiteHRNet (CVPR'2021)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{Yulitehrnet21,
|
||||
title={Lite-HRNet: A Lightweight High-Resolution Network},
|
||||
author={Yu, Changqian and Xiao, Bin and Gao, Changxin and Yuan, Lu and Zhang, Lei and Sang, Nong and Wang, Jingdong},
|
||||
booktitle={CVPR},
|
||||
year={2021}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
We present an efficient high-resolution network, Lite-HRNet, for human pose estimation. We start by simply applying the efficient shuffle block in ShuffleNet to HRNet (high-resolution network), yielding stronger performance over popular lightweight networks, such as MobileNet, ShuffleNet, and Small HRNet.
|
||||
We find that the heavily-used pointwise (1x1) convolutions in shuffle blocks become the computational bottleneck. We introduce a lightweight unit, conditional channel weighting, to replace costly pointwise (1x1) convolutions in shuffle blocks. The complexity of channel weighting is linear w.r.t the number of channels and lower than the quadratic time complexity for pointwise convolutions. Our solution learns the weights from all the channels and over multiple resolutions that are readily available in the parallel branches in HRNet. It uses the weights as the bridge to exchange information across channels and resolutions, compensating the role played by the pointwise (1x1) convolution. Lite-HRNet demonstrates superior results on human pose estimation over popular lightweight networks. Moreover, Lite-HRNet can be easily applied to semantic segmentation task in the same lightweight manner.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146520579-3e86e3af-a8b2-4071-94da-916e0ce90464.png">
|
||||
</div>
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
# Mobilenetv2: Inverted residuals and linear bottlenecks
|
||||
|
||||
<!-- [BACKBONE] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_cvpr_2018/html/Sandler_MobileNetV2_Inverted_Residuals_CVPR_2018_paper.html">MobilenetV2 (CVPR'2018)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{sandler2018mobilenetv2,
|
||||
title={Mobilenetv2: Inverted residuals and linear bottlenecks},
|
||||
author={Sandler, Mark and Howard, Andrew and Zhu, Menglong and Zhmoginov, Andrey and Chen, Liang-Chieh},
|
||||
booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
|
||||
pages={4510--4520},
|
||||
year={2018}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
In this paper we describe a new mobile architecture, mbox{MobileNetV2}, that improves the state of the art performance of mobile models on multiple tasks and benchmarks as well as across a spectrum of different model sizes. We also describe efficient ways of applying these mobile models to object detection in a novel framework we call mbox{SSDLite}. Additionally, we demonstrate how to build mobile semantic segmentation models through a reduced form of mbox{DeepLabv3} which we call Mobile mbox{DeepLabv3}. is based on an inverted residual structure where the shortcut connections are between the thin bottleneck layers. The intermediate expansion layer uses lightweight depthwise convolutions to filter features as a source of non-linearity. Additionally, we find that it is important to remove non-linearities in the narrow layers in order to maintain representational power. We demonstrate that this improves performance and provide an intuition that led to this design. Finally, our approach allows decoupling of the input/output domains from the expressiveness of the transformation, which provides a convenient framework for further analysis. We measure our performance on mbox{ImageNet}~cite{Russakovsky:2015:ILS:2846547.2846559} classification, COCO object detection cite{COCO}, VOC image segmentation cite{PASCAL}. We evaluate the trade-offs between accuracy, and number of operations measured by multiply-adds (MAdd), as well as actual latency, and the number of parameters.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146537871-75c22a93-72ef-4a24-9ce9-0c2823381961.png">
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
# Rethinking on multi-stage networks for human pose estimation
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/abs/1901.00148">MSPN (ArXiv'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{li2019rethinking,
|
||||
title={Rethinking on Multi-Stage Networks for Human Pose Estimation},
|
||||
author={Li, Wenbo and Wang, Zhicheng and Yin, Binyi and Peng, Qixiang and Du, Yuming and Xiao, Tianzi and Yu, Gang and Lu, Hongtao and Wei, Yichen and Sun, Jian},
|
||||
journal={arXiv preprint arXiv:1901.00148},
|
||||
year={2019}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Existing pose estimation approaches fall into two categories: single-stage and multi-stage methods. While multi-stage methods are seemingly more suited for the task, their performance in current practice is not as good as single-stage methods. This work studies this issue. We argue that the current multi-stage methods' unsatisfactory performance comes from the insufficiency in various design choices. We propose several improvements, including the single-stage module design, cross stage feature aggregation, and coarse-to-fine supervision. The resulting method establishes the new state-of-the-art on both MS COCO and MPII Human Pose dataset, justifying the effectiveness of a multi-stage architecture. The source code is publicly available for further research.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146520722-74c1ef85-9fa3-4b96-8cbf-4a2c86a80adc.png">
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
# ResNeSt: Split-Attention Networks
|
||||
|
||||
<!-- [BACKBONE] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/abs/2004.08955">ResNeSt (ArXiv'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{zhang2020resnest,
|
||||
title={ResNeSt: Split-Attention Networks},
|
||||
author={Zhang, Hang and Wu, Chongruo and Zhang, Zhongyue and Zhu, Yi and Zhang, Zhi and Lin, Haibin and Sun, Yue and He, Tong and Muller, Jonas and Manmatha, R. and Li, Mu and Smola, Alexander},
|
||||
journal={arXiv preprint arXiv:2004.08955},
|
||||
year={2020}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
It is well known that featuremap attention and multi-path representation are important for visual recognition. In this paper, we present a modularized architecture, which applies the channel-wise attention on different network branches to leverage their success in capturing cross-feature interactions and learning diverse representations. Our design results in a simple and unified computation block, which can be parameterized using only a few variables. Our model, named ResNeSt, outperforms EfficientNet in accuracy and latency trade-off on image classification. In addition, ResNeSt has achieved superior transfer learning results on several public benchmarks serving as the backbone, and has been adopted by the winning entries of COCO-LVIS challenge. The source code for complete system and pretrained models are publicly available.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146538001-387b40dc-886c-48c5-8621-1dc287fa2ae3.png">
|
||||
</div>
|
||||
@@ -0,0 +1,32 @@
|
||||
# Deep residual learning for image recognition
|
||||
|
||||
<!-- [BACKBONE] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_cvpr_2016/html/He_Deep_Residual_Learning_CVPR_2016_paper.html">ResNet (CVPR'2016)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{he2016deep,
|
||||
title={Deep residual learning for image recognition},
|
||||
author={He, Kaiming and Zhang, Xiangyu and Ren, Shaoqing and Sun, Jian},
|
||||
booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
|
||||
pages={770--778},
|
||||
year={2016}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously. We explicitly reformulate the layers as learning residual functions with reference to the layer inputs, instead of learning unreferenced functions. We provide comprehensive empirical evidence showing that these residual networks are easier to optimize, and can gain accuracy from
|
||||
considerably increased depth. On the ImageNet dataset we evaluate residual nets with a depth of up to 152 layers—8× deeper than VGG nets but still having lower complexity. An ensemble of these residual nets achieves 3.57% error on the ImageNet test set. This result won the 1st place on the ILSVRC 2015 classification task. We also present analysis on CIFAR-10 with 100 and 1000 layers. The depth of representations is of central importance for many visual recognition tasks. Solely due to our extremely deep representations, we obtain a 28% relative improvement on the COCO object detection dataset. Deep residual nets are foundations of our submissions to ILSVRC
|
||||
& COCO 2015 competitions1 , where we also won the 1st places on the tasks of ImageNet detection, ImageNet localization, COCO detection, and COCO segmentation.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146538539-d635ee57-200c-40f5-93cf-a34a5b416feb.png">
|
||||
</div>
|
||||
@@ -0,0 +1,31 @@
|
||||
# Bag of tricks for image classification with convolutional neural networks
|
||||
|
||||
<!-- [BACKBONE] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_CVPR_2019/html/He_Bag_of_Tricks_for_Image_Classification_with_Convolutional_Neural_Networks_CVPR_2019_paper.html">ResNetV1D (CVPR'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{he2019bag,
|
||||
title={Bag of tricks for image classification with convolutional neural networks},
|
||||
author={He, Tong and Zhang, Zhi and Zhang, Hang and Zhang, Zhongyue and Xie, Junyuan and Li, Mu},
|
||||
booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
|
||||
pages={558--567},
|
||||
year={2019}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Much of the recent progress made in image classification research can be credited to training procedure refinements, such as changes in data augmentations and optimization methods. In the literature, however, most refinements are either briefly mentioned as implementation details or only visible in source code. In this paper, we will examine a collection of such refinements and empirically evaluate their impact on the final model accuracy through ablation study. We will show that, by combining these refinements together, we are able to improve various CNN models significantly. For example, we raise ResNet-50’s top-1 validation accuracy from 75.3% to 79.29% on ImageNet. We will also demonstrate that improvement on image classification accuracy leads to better transfer learning performance in other application domains such as object detection and semantic
|
||||
segmentation.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146539869-6deeea09-8f28-4b19-8737-2d9b0d080189.png">
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
# Aggregated residual transformations for deep neural networks
|
||||
|
||||
<!-- [BACKBONE] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_cvpr_2017/html/Xie_Aggregated_Residual_Transformations_CVPR_2017_paper.html">ResNext (CVPR'2017)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{xie2017aggregated,
|
||||
title={Aggregated residual transformations for deep neural networks},
|
||||
author={Xie, Saining and Girshick, Ross and Doll{\'a}r, Piotr and Tu, Zhuowen and He, Kaiming},
|
||||
booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
|
||||
pages={1492--1500},
|
||||
year={2017}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
We present a simple, highly modularized network architecture for image classification. Our network is constructed by repeating a building block that aggregates a set of transformations with the same topology. Our simple design results in a homogeneous, multi-branch architecture that has only a few hyper-parameters to set. This strategy exposes a new dimension, which we call "cardinality" (the size of the set of transformations), as an essential factor in addition to the dimensions of depth and width. On the ImageNet-1K dataset, we empirically show that even under the restricted condition of maintaining complexity, increasing cardinality is able to improve classification accuracy. Moreover, increasing cardinality is more effective than going deeper or wider when we increase the capacity. Our models, named ResNeXt, are the foundations of our entry to the ILSVRC 2016 classification task in which we secured 2nd place. We further investigate ResNeXt on an ImageNet-5K set and the COCO detection set, also showing better results than its ResNet counterpart. The code and models are publicly available online.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146540039-cd3950dd-a6d2-4836-9af2-f7f990e98f77.png">
|
||||
</div>
|
||||
@@ -0,0 +1,31 @@
|
||||
# Learning delicate local representations for multi-person pose estimation
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://link.springer.com/chapter/10.1007/978-3-030-58580-8_27">RSN (ECCV'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@misc{cai2020learning,
|
||||
title={Learning Delicate Local Representations for Multi-Person Pose Estimation},
|
||||
author={Yuanhao Cai and Zhicheng Wang and Zhengxiong Luo and Binyi Yin and Angang Du and Haoqian Wang and Xinyu Zhou and Erjin Zhou and Xiangyu Zhang and Jian Sun},
|
||||
year={2020},
|
||||
eprint={2003.04030},
|
||||
archivePrefix={arXiv},
|
||||
primaryClass={cs.CV}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
In this paper, we propose a novel method called Residual Steps Network (RSN). RSN aggregates features with the same spatial size (Intra-level features) efficiently to obtain delicate local representations, which retain rich low-level spatial information and result in precise keypoint localization. Additionally, we observe the output features contribute differently to final performance. To tackle this problem, we propose an efficient attention mechanism - Pose Refine Machine (PRM) to make a trade-off between local and global representations in output features and further refine the keypoint locations. Our approach won the 1st place of COCO Keypoint Challenge 2019 and achieves state-of-the-art results on both COCO and MPII benchmarks, without using extra training data and pretrained model. Our single model achieves 78.6 on COCO test-dev, 93.0 on MPII test dataset. Ensembled models achieve 79.2 on COCO test-dev, 77.1 on COCO test-challenge dataset.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146522226-5041d16e-41cb-4d31-ae53-dbe21314a697.png">
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
# Improving Convolutional Networks with Self-Calibrated Convolutions
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_CVPR_2020/html/Liu_Improving_Convolutional_Networks_With_Self-Calibrated_Convolutions_CVPR_2020_paper.html">SCNet (CVPR'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{liu2020improving,
|
||||
title={Improving Convolutional Networks with Self-Calibrated Convolutions},
|
||||
author={Liu, Jiang-Jiang and Hou, Qibin and Cheng, Ming-Ming and Wang, Changhu and Feng, Jiashi},
|
||||
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
|
||||
pages={10096--10105},
|
||||
year={2020}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Recent advances on CNNs are mostly devoted to designing more complex architectures to enhance their representation learning capacity. In this paper, we consider how to improve the basic convolutional feature transformation process of CNNs without tuning the model architectures. To this end, we present a novel self-calibrated convolutions that explicitly expand fields-of-view of each convolutional layers through internal communications and hence enrich the output features. In particular, unlike the standard convolutions that fuse spatial and channel-wise information using small kernels (e.g., 3x3), self-calibrated convolutions adaptively build long-range spatial and inter-channel dependencies around each spatial location through a novel self-calibration operation. Thus, it can help CNNs generate more discriminative representations by explicitly incorporating richer information. Our self-calibrated convolution design is simple and generic, and can be easily applied to augment standard convolutional layers without introducing extra parameters and complexity. Extensive experiments demonstrate that when applying self-calibrated convolutions into different backbones, our networks can significantly improve the baseline models in a variety of vision tasks, including image recognition, object detection, instance segmentation, and keypoint detection, with no need to change the network architectures. We hope this work could provide a promising way for future research in designing novel convolutional feature transformations for improving convolutional networks. Code is available on the project page.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146522623-fdc88996-1a8f-4b0a-bdee-fc284dfd7348.png">
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
# Squeeze-and-excitation networks
|
||||
|
||||
<!-- [BACKBONE] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_cvpr_2018/html/Hu_Squeeze-and-Excitation_Networks_CVPR_2018_paper">SEResNet (CVPR'2018)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{hu2018squeeze,
|
||||
title={Squeeze-and-excitation networks},
|
||||
author={Hu, Jie and Shen, Li and Sun, Gang},
|
||||
booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
|
||||
pages={7132--7141},
|
||||
year={2018}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Convolutional neural networks are built upon the convolution operation, which extracts informative features by fusing spatial and channel-wise information together within local receptive fields. In order to boost the representational power of a network, several recent approaches have shown the benefit of enhancing spatial encoding. In this work, we focus on the channel relationship and propose a novel architectural unit, which we term the “Squeeze-and-Excitation” (SE) block, that adaptively recalibrates channel-wise feature responses by explicitly modelling interdependencies between channels. We demonstrate that by stacking these blocks together, we can construct SENet architectures that generalise extremely well across challenging datasets. Crucially, we find that SE blocks produce significant performance improvements for existing state-of-the-art deep architectures at minimal additional computational cost. SENets formed the foundation of our ILSVRC 2017 classification submission which won first place and significantly reduced the top-5 error to 2.251%, achieving a ∼25% relative improvement over the winning entry of 2016. Code and models are available at https: //github.com/hujie-frank/SENet.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146540423-a7e8ae12-3b3e-447e-848b-682c06c1126e.png">
|
||||
</div>
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
# Shufflenet: An extremely efficient convolutional neural network for mobile devices
|
||||
|
||||
<!-- [BACKBONE] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_cvpr_2018/html/Zhang_ShuffleNet_An_Extremely_CVPR_2018_paper.html">ShufflenetV1 (CVPR'2018)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{zhang2018shufflenet,
|
||||
title={Shufflenet: An extremely efficient convolutional neural network for mobile devices},
|
||||
author={Zhang, Xiangyu and Zhou, Xinyu and Lin, Mengxiao and Sun, Jian},
|
||||
booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
|
||||
pages={6848--6856},
|
||||
year={2018}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
We introduce an extremely computation-efficient CNN architecture named ShuffleNet, which is designed specially for mobile devices with very limited computing power (e.g., 10-150 MFLOPs). The new architecture utilizes two new operations, pointwise group convolution and channel shuffle, to greatly reduce computation cost while maintaining accuracy. Experiments on ImageNet classification and MS COCO object detection demonstrate the superior performance of ShuffleNet over other structures, e.g. lower top-1 error (absolute 7.8%) than recent MobileNet~cite{howard2017mobilenets} on ImageNet classification task, under the computation budget of 40 MFLOPs. On an ARM-based mobile device, ShuffleNet achieves $sim$13$ imes$ actual speedup over AlexNet while maintaining comparable accuracy.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146540601-7ed2ac24-aa7d-44b1-a7e0-be03bde0e098.png">
|
||||
</div>
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
# Shufflenet v2: Practical guidelines for efficient cnn architecture design
|
||||
|
||||
<!-- [BACKBONE] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_ECCV_2018/html/Ningning_Light-weight_CNN_Architecture_ECCV_2018_paper.html">ShufflenetV2 (ECCV'2018)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{ma2018shufflenet,
|
||||
title={Shufflenet v2: Practical guidelines for efficient cnn architecture design},
|
||||
author={Ma, Ningning and Zhang, Xiangyu and Zheng, Hai-Tao and Sun, Jian},
|
||||
booktitle={Proceedings of the European conference on computer vision (ECCV)},
|
||||
pages={116--131},
|
||||
year={2018}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Current network architecture design is mostly guided by the indirect metric of computation complexity, i.e., FLOPs. However, the direct metric, such as speed, also depends on the other factors such as memory access cost and platform characterics. Taking these factors into account, this work proposes practical guidelines for efficient network de- sign. Accordingly, a new architecture called ShuffleNet V2 is presented. Comprehensive experiments verify that it is the state-of-the-art in both speed and accuracy.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146540752-993df527-7ec3-475c-ba12-3791bf8b3a0c.png">
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
# Very Deep Convolutional Networks for Large-Scale Image Recognition
|
||||
|
||||
<!-- [BACKBONE] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/abs/1409.1556">VGG (ICLR'2015)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{simonyan2014very,
|
||||
title={Very deep convolutional networks for large-scale image recognition},
|
||||
author={Simonyan, Karen and Zisserman, Andrew},
|
||||
journal={arXiv preprint arXiv:1409.1556},
|
||||
year={2014}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
In this work we investigate the effect of the convolutional network depth on its accuracy in the large-scale image recognition setting. Our main contribution is a thorough evaluation of networks of increasing depth using an architecture with very small (3x3) convolution filters, which shows that a significant improvement on the prior-art configurations can be achieved by pushing the depth to 16-19 weight layers. These findings were the basis of our ImageNet Challenge 2014 submission, where our team secured the first and the second places in the localisation and classification tracks respectively. We also show that our representations generalise well to other datasets, where they achieve state-of-the-art results. We have made our two best-performing ConvNet models publicly available to facilitate further research on the use of deep visual representations in computer vision.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146540877-b0fc7823-efe2-4b5c-8168-3b3a9d7e93ac.png">
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
# ViPNAS: Efficient Video Pose Estimation via Neural Architecture Search
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/abs/2105.10154">ViPNAS (CVPR'2021)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{xu2021vipnas,
|
||||
title={ViPNAS: Efficient Video Pose Estimation via Neural Architecture Search},
|
||||
author={Xu, Lumin and Guan, Yingda and Jin, Sheng and Liu, Wentao and Qian, Chen and Luo, Ping and Ouyang, Wanli and Wang, Xiaogang},
|
||||
booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
|
||||
year={2021}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Human pose estimation has achieved significant progress in recent years. However, most of the recent methods focus on improving accuracy using complicated models and ignoring real-time efficiency. To achieve a better trade-off between accuracy and efficiency, we propose a novel neural architecture search (NAS) method, termed ViPNAS, to search networks in both spatial and temporal levels for fast online video pose estimation. In the spatial level, we carefully design the search space with five different dimensions including network depth, width, kernel size, group number, and attentions. In the temporal level, we search from a series of temporal feature fusions to optimize the total accuracy and speed across multiple video frames. To the best of our knowledge, we are the first to search for the temporal feature fusion and automatic computation allocation in videos. Extensive experiments demonstrate the effectiveness of our approach on the challenging COCO2017 and PoseTrack2018 datasets. Our discovered model family, S-ViPNAS and T-ViPNAS, achieve significantly higher inference speed (CPU real-time) without sacrificing the accuracy compared to the previous state-of-the-art methods.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146527709-b8e55e40-426c-4958-8a35-b8d259e69efa.png">
|
||||
</div>
|
||||
@@ -0,0 +1,20 @@
|
||||
# 300 faces in-the-wild challenge: Database and results
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://www.sciencedirect.com/science/article/pii/S0262885616000147">300W (IMAVIS'2016)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{sagonas2016300,
|
||||
title={300 faces in-the-wild challenge: Database and results},
|
||||
author={Sagonas, Christos and Antonakos, Epameinondas and Tzimiropoulos, Georgios and Zafeiriou, Stefanos and Pantic, Maja},
|
||||
journal={Image and vision computing},
|
||||
volume={47},
|
||||
pages={3--18},
|
||||
year={2016},
|
||||
publisher={Elsevier}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,19 @@
|
||||
# Annotated facial landmarks in the wild: A large-scale, real-world database for facial landmark localization
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://ieeexplore.ieee.org/abstract/document/6130513/">AFLW (ICCVW'2011)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{koestinger2011annotated,
|
||||
title={Annotated facial landmarks in the wild: A large-scale, real-world database for facial landmark localization},
|
||||
author={Koestinger, Martin and Wohlhart, Paul and Roth, Peter M and Bischof, Horst},
|
||||
booktitle={2011 IEEE international conference on computer vision workshops (ICCV workshops)},
|
||||
pages={2144--2151},
|
||||
year={2011},
|
||||
organization={IEEE}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,17 @@
|
||||
# Ai challenger: A large-scale dataset for going deeper in image understanding
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/abs/1711.06475">AI Challenger (ArXiv'2017)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{wu2017ai,
|
||||
title={Ai challenger: A large-scale dataset for going deeper in image understanding},
|
||||
author={Wu, Jiahong and Zheng, He and Zhao, Bo and Li, Yixin and Yan, Baoming and Liang, Rui and Wang, Wenjia and Zhou, Shipei and Lin, Guosen and Fu, Yanwei and others},
|
||||
journal={arXiv preprint arXiv:1711.06475},
|
||||
year={2017}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,18 @@
|
||||
# Cross-Domain Adaptation for Animal Pose Estimation
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_ICCV_2019/html/Cao_Cross-Domain_Adaptation_for_Animal_Pose_Estimation_ICCV_2019_paper.html">Animal-Pose (ICCV'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@InProceedings{Cao_2019_ICCV,
|
||||
author = {Cao, Jinkun and Tang, Hongyang and Fang, Hao-Shu and Shen, Xiaoyong and Lu, Cewu and Tai, Yu-Wing},
|
||||
title = {Cross-Domain Adaptation for Animal Pose Estimation},
|
||||
booktitle = {The IEEE International Conference on Computer Vision (ICCV)},
|
||||
month = {October},
|
||||
year = {2019}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,19 @@
|
||||
# AP-10K: A Benchmark for Animal Pose Estimation in the Wild
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/abs/2108.12617">AP-10K (NeurIPS'2021)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@misc{yu2021ap10k,
|
||||
title={AP-10K: A Benchmark for Animal Pose Estimation in the Wild},
|
||||
author={Hang Yu and Yufei Xu and Jing Zhang and Wei Zhao and Ziyu Guan and Dacheng Tao},
|
||||
year={2021},
|
||||
eprint={2108.12617},
|
||||
archivePrefix={arXiv},
|
||||
primaryClass={cs.CV}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,18 @@
|
||||
# ATRW: A Benchmark for Amur Tiger Re-identification in the Wild
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/abs/1906.05586">ATRW (ACM MM'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{li2020atrw,
|
||||
title={ATRW: A Benchmark for Amur Tiger Re-identification in the Wild},
|
||||
author={Li, Shuyuan and Li, Jianguo and Tang, Hanlin and Qian, Rui and Lin, Weiyao},
|
||||
booktitle={Proceedings of the 28th ACM International Conference on Multimedia},
|
||||
pages={2590--2598},
|
||||
year={2020}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,19 @@
|
||||
# Microsoft coco: Common objects in context
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://link.springer.com/chapter/10.1007/978-3-319-10602-1_48">COCO (ECCV'2014)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{lin2014microsoft,
|
||||
title={Microsoft coco: Common objects in context},
|
||||
author={Lin, Tsung-Yi and Maire, Michael and Belongie, Serge and Hays, James and Perona, Pietro and Ramanan, Deva and Doll{\'a}r, Piotr and Zitnick, C Lawrence},
|
||||
booktitle={European conference on computer vision},
|
||||
pages={740--755},
|
||||
year={2014},
|
||||
organization={Springer}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
# Whole-Body Human Pose Estimation in the Wild
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://link.springer.com/chapter/10.1007/978-3-030-58545-7_12">COCO-WholeBody (ECCV'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{jin2020whole,
|
||||
title={Whole-Body Human Pose Estimation in the Wild},
|
||||
author={Jin, Sheng and Xu, Lumin and Xu, Jin and Wang, Can and Liu, Wentao and Qian, Chen and Ouyang, Wanli and Luo, Ping},
|
||||
booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},
|
||||
year={2020}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
# Whole-Body Human Pose Estimation in the Wild
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://link.springer.com/chapter/10.1007/978-3-030-58545-7_12">COCO-WholeBody-Face (ECCV'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{jin2020whole,
|
||||
title={Whole-Body Human Pose Estimation in the Wild},
|
||||
author={Jin, Sheng and Xu, Lumin and Xu, Jin and Wang, Can and Liu, Wentao and Qian, Chen and Ouyang, Wanli and Luo, Ping},
|
||||
booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},
|
||||
year={2020}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
# Whole-Body Human Pose Estimation in the Wild
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://link.springer.com/chapter/10.1007/978-3-030-58545-7_12">COCO-WholeBody-Hand (ECCV'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{jin2020whole,
|
||||
title={Whole-Body Human Pose Estimation in the Wild},
|
||||
author={Jin, Sheng and Xu, Lumin and Xu, Jin and Wang, Can and Liu, Wentao and Qian, Chen and Ouyang, Wanli and Luo, Ping},
|
||||
booktitle={Proceedings of the European Conference on Computer Vision (ECCV)},
|
||||
year={2020}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,18 @@
|
||||
# Robust face landmark estimation under occlusion
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_iccv_2013/html/Burgos-Artizzu_Robust_Face_Landmark_2013_ICCV_paper.html">COFW (ICCV'2013)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{burgos2013robust,
|
||||
title={Robust face landmark estimation under occlusion},
|
||||
author={Burgos-Artizzu, Xavier P and Perona, Pietro and Doll{\'a}r, Piotr},
|
||||
booktitle={Proceedings of the IEEE international conference on computer vision},
|
||||
pages={1513--1520},
|
||||
year={2013}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,17 @@
|
||||
# CrowdPose: Efficient Crowded Scenes Pose Estimation and A New Benchmark
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_CVPR_2019/html/Li_CrowdPose_Efficient_Crowded_Scenes_Pose_Estimation_and_a_New_Benchmark_CVPR_2019_paper.html">CrowdPose (CVPR'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{li2018crowdpose,
|
||||
title={CrowdPose: Efficient Crowded Scenes Pose Estimation and A New Benchmark},
|
||||
author={Li, Jiefeng and Wang, Can and Zhu, Hao and Mao, Yihuan and Fang, Hao-Shu and Lu, Cewu},
|
||||
journal={arXiv preprint arXiv:1812.00324},
|
||||
year={2018}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,35 @@
|
||||
# DeepFashion: Powering Robust Clothes Recognition and Retrieval with Rich Annotations
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_cvpr_2016/html/Liu_DeepFashion_Powering_Robust_CVPR_2016_paper.html">DeepFashion (CVPR'2016)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{liuLQWTcvpr16DeepFashion,
|
||||
author = {Liu, Ziwei and Luo, Ping and Qiu, Shi and Wang, Xiaogang and Tang, Xiaoou},
|
||||
title = {DeepFashion: Powering Robust Clothes Recognition and Retrieval with Rich Annotations},
|
||||
booktitle = {Proceedings of IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
|
||||
month = {June},
|
||||
year = {2016}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://link.springer.com/chapter/10.1007/978-3-319-46475-6_15">DeepFashion (ECCV'2016)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{liuYLWTeccv16FashionLandmark,
|
||||
author = {Liu, Ziwei and Yan, Sijie and Luo, Ping and Wang, Xiaogang and Tang, Xiaoou},
|
||||
title = {Fashion Landmark Detection in the Wild},
|
||||
booktitle = {European Conference on Computer Vision (ECCV)},
|
||||
month = {October},
|
||||
year = {2016}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,21 @@
|
||||
# Fast animal pose estimation using deep neural networks
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://www.nature.com/articles/s41592-018-0234-5">Vinegar Fly (Nature Methods'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{pereira2019fast,
|
||||
title={Fast animal pose estimation using deep neural networks},
|
||||
author={Pereira, Talmo D and Aldarondo, Diego E and Willmore, Lindsay and Kislin, Mikhail and Wang, Samuel S-H and Murthy, Mala and Shaevitz, Joshua W},
|
||||
journal={Nature methods},
|
||||
volume={16},
|
||||
number={1},
|
||||
pages={117--125},
|
||||
year={2019},
|
||||
publisher={Nature Publishing Group}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,18 @@
|
||||
# Freihand: A dataset for markerless capture of hand pose and shape from single rgb images
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_ICCV_2019/html/Zimmermann_FreiHAND_A_Dataset_for_Markerless_Capture_of_Hand_Pose_and_ICCV_2019_paper.html">FreiHand (ICCV'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{zimmermann2019freihand,
|
||||
title={Freihand: A dataset for markerless capture of hand pose and shape from single rgb images},
|
||||
author={Zimmermann, Christian and Ceylan, Duygu and Yang, Jimei and Russell, Bryan and Argus, Max and Brox, Thomas},
|
||||
booktitle={Proceedings of the IEEE International Conference on Computer Vision},
|
||||
pages={813--822},
|
||||
year={2019}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,22 @@
|
||||
# Human3.6M: Large Scale Datasets and Predictive Methods for 3D Human Sensing in Natural Environments
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://ieeexplore.ieee.org/abstract/document/6682899/">Human3.6M (TPAMI'2014)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{h36m_pami,
|
||||
author = {Ionescu, Catalin and Papava, Dragos and Olaru, Vlad and Sminchisescu, Cristian},
|
||||
title = {Human3.6M: Large Scale Datasets and Predictive Methods for 3D Human Sensing in Natural Environments},
|
||||
journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence},
|
||||
publisher = {IEEE Computer Society},
|
||||
volume = {36},
|
||||
number = {7},
|
||||
pages = {1325-1339},
|
||||
month = {jul},
|
||||
year = {2014}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,17 @@
|
||||
# PaStaNet: Toward Human Activity Knowledge Engine
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/abs/2004.00945">Halpe (CVPR'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{li2020pastanet,
|
||||
title={PaStaNet: Toward Human Activity Knowledge Engine},
|
||||
author={Li, Yong-Lu and Xu, Liang and Liu, Xinpeng and Huang, Xijie and Xu, Yue and Wang, Shiyi and Fang, Hao-Shu and Ma, Ze and Chen, Mingyang and Lu, Cewu},
|
||||
booktitle={CVPR},
|
||||
year={2020}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,18 @@
|
||||
# Pretraining boosts out-of-domain robustness for pose estimation
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://openaccess.thecvf.com/content/WACV2021/html/Mathis_Pretraining_Boosts_Out-of-Domain_Robustness_for_Pose_Estimation_WACV_2021_paper.html">Horse-10 (WACV'2021)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{mathis2021pretraining,
|
||||
title={Pretraining boosts out-of-domain robustness for pose estimation},
|
||||
author={Mathis, Alexander and Biasi, Thomas and Schneider, Steffen and Yuksekgonul, Mert and Rogers, Byron and Bethge, Matthias and Mathis, Mackenzie W},
|
||||
booktitle={Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision},
|
||||
pages={1859--1868},
|
||||
year={2021}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,18 @@
|
||||
# InterHand2.6M: A dataset and baseline for 3D interacting hand pose estimation from a single RGB image
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://link.springer.com/content/pdf/10.1007/978-3-030-58565-5_33.pdf">InterHand2.6M (ECCV'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{moon2020interhand2,
|
||||
title={InterHand2.6M: A dataset and baseline for 3D interacting hand pose estimation from a single RGB image},
|
||||
author={Moon, Gyeongsik and Yu, Shoou-I and Wen, He and Shiratori, Takaaki and Lee, Kyoung Mu},
|
||||
journal={arXiv preprint arXiv:2008.09309},
|
||||
year={2020},
|
||||
publisher={Springer}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,19 @@
|
||||
# Towards understanding action recognition
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://www.cv-foundation.org/openaccess/content_iccv_2013/html/Jhuang_Towards_Understanding_Action_2013_ICCV_paper.html">JHMDB (ICCV'2013)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{Jhuang:ICCV:2013,
|
||||
title = {Towards understanding action recognition},
|
||||
author = {H. Jhuang and J. Gall and S. Zuffi and C. Schmid and M. J. Black},
|
||||
booktitle = {International Conf. on Computer Vision (ICCV)},
|
||||
month = Dec,
|
||||
pages = {3192-3199},
|
||||
year = {2013}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,20 @@
|
||||
# DeepPoseKit, a software toolkit for fast and robust animal pose estimation using deep learning
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://elifesciences.org/articles/47994">Desert Locust (Elife'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{graving2019deepposekit,
|
||||
title={DeepPoseKit, a software toolkit for fast and robust animal pose estimation using deep learning},
|
||||
author={Graving, Jacob M and Chae, Daniel and Naik, Hemal and Li, Liang and Koger, Benjamin and Costelloe, Blair R and Couzin, Iain D},
|
||||
journal={Elife},
|
||||
volume={8},
|
||||
pages={e47994},
|
||||
year={2019},
|
||||
publisher={eLife Sciences Publications Limited}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,18 @@
|
||||
# MacaquePose: A novel ‘in the wild’macaque monkey pose dataset for markerless motion capture
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://www.ncbi.nlm.nih.gov/pmc/articles/pmc7874091/">MacaquePose (bioRxiv'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{labuguen2020macaquepose,
|
||||
title={MacaquePose: A novel ‘in the wild’macaque monkey pose dataset for markerless motion capture},
|
||||
author={Labuguen, Rollyn and Matsumoto, Jumpei and Negrete, Salvador and Nishimaru, Hiroshi and Nishijo, Hisao and Takada, Masahiko and Go, Yasuhiro and Inoue, Ken-ichi and Shibata, Tomohiro},
|
||||
journal={bioRxiv},
|
||||
year={2020},
|
||||
publisher={Cold Spring Harbor Laboratory}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,18 @@
|
||||
# Understanding humans in crowded scenes: Deep nested adversarial learning and a new benchmark for multi-human parsing
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://dl.acm.org/doi/abs/10.1145/3240508.3240509">MHP (ACM MM'2018)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{zhao2018understanding,
|
||||
title={Understanding humans in crowded scenes: Deep nested adversarial learning and a new benchmark for multi-human parsing},
|
||||
author={Zhao, Jian and Li, Jianshu and Cheng, Yu and Sim, Terence and Yan, Shuicheng and Feng, Jiashi},
|
||||
booktitle={Proceedings of the 26th ACM international conference on Multimedia},
|
||||
pages={792--800},
|
||||
year={2018}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
# Monocular 3D Human Pose Estimation In The Wild Using Improved CNN Supervision
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://ieeexplore.ieee.org/abstract/document/8374605/">MPI-INF-3DHP (3DV'2017)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{mono-3dhp2017,
|
||||
author = {Mehta, Dushyant and Rhodin, Helge and Casas, Dan and Fua, Pascal and Sotnychenko, Oleksandr and Xu, Weipeng and Theobalt, Christian},
|
||||
title = {Monocular 3D Human Pose Estimation In The Wild Using Improved CNN Supervision},
|
||||
booktitle = {3D Vision (3DV), 2017 Fifth International Conference on},
|
||||
url = {http://gvv.mpi-inf.mpg.de/3dhp_dataset},
|
||||
year = {2017},
|
||||
organization={IEEE},
|
||||
doi={10.1109/3dv.2017.00064},
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,18 @@
|
||||
# 2D Human Pose Estimation: New Benchmark and State of the Art Analysis
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_cvpr_2014/html/Andriluka_2D_Human_Pose_2014_CVPR_paper.html">MPII (CVPR'2014)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{andriluka14cvpr,
|
||||
author = {Mykhaylo Andriluka and Leonid Pishchulin and Peter Gehler and Schiele, Bernt},
|
||||
title = {2D Human Pose Estimation: New Benchmark and State of the Art Analysis},
|
||||
booktitle = {IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
|
||||
year = {2014},
|
||||
month = {June}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,18 @@
|
||||
# TRB: A Novel Triplet Representation for Understanding 2D Human Body
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_ICCV_2019/html/Duan_TRB_A_Novel_Triplet_Representation_for_Understanding_2D_Human_Body_ICCV_2019_paper.html">MPII-TRB (ICCV'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{duan2019trb,
|
||||
title={TRB: A Novel Triplet Representation for Understanding 2D Human Body},
|
||||
author={Duan, Haodong and Lin, Kwan-Yee and Jin, Sheng and Liu, Wentao and Qian, Chen and Ouyang, Wanli},
|
||||
booktitle={Proceedings of the IEEE International Conference on Computer Vision},
|
||||
pages={9479--9488},
|
||||
year={2019}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,18 @@
|
||||
# Pose2seg: Detection free human instance segmentation
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_CVPR_2019/html/Zhang_Pose2Seg_Detection_Free_Human_Instance_Segmentation_CVPR_2019_paper.html">OCHuman (CVPR'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{zhang2019pose2seg,
|
||||
title={Pose2seg: Detection free human instance segmentation},
|
||||
author={Zhang, Song-Hai and Li, Ruilong and Dong, Xin and Rosin, Paul and Cai, Zixi and Han, Xi and Yang, Dingcheng and Huang, Haozhi and Hu, Shi-Min},
|
||||
booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
|
||||
pages={889--898},
|
||||
year={2019}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,21 @@
|
||||
# Mask-pose cascaded cnn for 2d hand pose estimation from single color image
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://ieeexplore.ieee.org/abstract/document/8529221/">OneHand10K (TCSVT'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{wang2018mask,
|
||||
title={Mask-pose cascaded cnn for 2d hand pose estimation from single color image},
|
||||
author={Wang, Yangang and Peng, Cong and Liu, Yebin},
|
||||
journal={IEEE Transactions on Circuits and Systems for Video Technology},
|
||||
volume={29},
|
||||
number={11},
|
||||
pages={3258--3268},
|
||||
year={2018},
|
||||
publisher={IEEE}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,18 @@
|
||||
# Hand keypoint detection in single images using multiview bootstrapping
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_cvpr_2017/html/Simon_Hand_Keypoint_Detection_CVPR_2017_paper.html">CMU Panoptic HandDB (CVPR'2017)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{simon2017hand,
|
||||
title={Hand keypoint detection in single images using multiview bootstrapping},
|
||||
author={Simon, Tomas and Joo, Hanbyul and Matthews, Iain and Sheikh, Yaser},
|
||||
booktitle={Proceedings of the IEEE conference on Computer Vision and Pattern Recognition},
|
||||
pages={1145--1153},
|
||||
year={2017}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
# Panoptic Studio: A Massively Multiview System for Social Motion Capture
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://openaccess.thecvf.com/content_iccv_2015/html/Joo_Panoptic_Studio_A_ICCV_2015_paper.html">CMU Panoptic (ICCV'2015)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@Article = {joo_iccv_2015,
|
||||
author = {Hanbyul Joo, Hao Liu, Lei Tan, Lin Gui, Bart Nabbe, Iain Matthews, Takeo Kanade, Shohei Nobuhara, and Yaser Sheikh},
|
||||
title = {Panoptic Studio: A Massively Multiview System for Social Motion Capture},
|
||||
booktitle = {ICCV},
|
||||
year = {2015}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,18 @@
|
||||
# Posetrack: A benchmark for human pose estimation and tracking
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_cvpr_2018/html/Andriluka_PoseTrack_A_Benchmark_CVPR_2018_paper.html">PoseTrack18 (CVPR'2018)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{andriluka2018posetrack,
|
||||
title={Posetrack: A benchmark for human pose estimation and tracking},
|
||||
author={Andriluka, Mykhaylo and Iqbal, Umar and Insafutdinov, Eldar and Pishchulin, Leonid and Milan, Anton and Gall, Juergen and Schiele, Bernt},
|
||||
booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
|
||||
pages={5167--5176},
|
||||
year={2018}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,19 @@
|
||||
# Learning to Estimate 3D Hand Pose from Single RGB Images
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://lmb.informatik.uni-freiburg.de/projects/hand3d/">RHD (ICCV'2017)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@TechReport{zb2017hand,
|
||||
author={Christian Zimmermann and Thomas Brox},
|
||||
title={Learning to Estimate 3D Hand Pose from Single RGB Images},
|
||||
institution={arXiv:1705.01389},
|
||||
year={2017},
|
||||
note="https://arxiv.org/abs/1705.01389",
|
||||
url="https://lmb.informatik.uni-freiburg.de/projects/hand3d/"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,18 @@
|
||||
# Look at boundary: A boundary-aware face alignment algorithm
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_cvpr_2018/html/Wu_Look_at_Boundary_CVPR_2018_paper.html">WFLW (CVPR'2018)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{wu2018look,
|
||||
title={Look at boundary: A boundary-aware face alignment algorithm},
|
||||
author={Wu, Wayne and Qian, Chen and Yang, Shuo and Wang, Quan and Cai, Yici and Zhou, Qiang},
|
||||
booktitle={Proceedings of the IEEE conference on computer vision and pattern recognition},
|
||||
pages={2129--2138},
|
||||
year={2018}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,20 @@
|
||||
# DeepPoseKit, a software toolkit for fast and robust animal pose estimation using deep learning
|
||||
|
||||
<!-- [DATASET] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://elifesciences.org/articles/47994">Grévy’s Zebra (Elife'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{graving2019deepposekit,
|
||||
title={DeepPoseKit, a software toolkit for fast and robust animal pose estimation using deep learning},
|
||||
author={Graving, Jacob M and Chae, Daniel and Naik, Hemal and Li, Liang and Koger, Benjamin and Costelloe, Blair R and Couzin, Iain D},
|
||||
journal={Elife},
|
||||
volume={8},
|
||||
pages={e47994},
|
||||
year={2019},
|
||||
publisher={eLife Sciences Publications Limited}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
# Albumentations: fast and flexible image augmentations
|
||||
|
||||
<!-- [OTHERS] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://www.mdpi.com/649002">Albumentations (Information'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{buslaev2020albumentations,
|
||||
title={Albumentations: fast and flexible image augmentations},
|
||||
author={Buslaev, Alexander and Iglovikov, Vladimir I and Khvedchenya, Eugene and Parinov, Alex and Druzhinin, Mikhail and Kalinin, Alexandr A},
|
||||
journal={Information},
|
||||
volume={11},
|
||||
number={2},
|
||||
pages={125},
|
||||
year={2020},
|
||||
publisher={Multidisciplinary Digital Publishing Institute}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
@@ -0,0 +1,31 @@
|
||||
# Adaptive Wing Loss for Robust Face Alignment via Heatmap Regression
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/pdf/1904.07399.pdf">AdaptiveWingloss (ICCV'2019)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{wang2019adaptive,
|
||||
title={Adaptive wing loss for robust face alignment via heatmap regression},
|
||||
author={Wang, Xinyao and Bo, Liefeng and Fuxin, Li},
|
||||
booktitle={Proceedings of the IEEE/CVF international conference on computer vision},
|
||||
pages={6971--6981},
|
||||
year={2019}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
Heatmap regression with a deep network has become one of the mainstream approaches to localize facial landmarks. However, the loss function for heatmap regression is rarely studied. In this paper, we analyze the ideal loss function properties for heatmap regression in face alignment problems. Then we propose a novel loss function, named Adaptive Wing loss, that is able to adapt its shape to different types of ground truth heatmap pixels. This adaptability penalizes loss more on foreground pixels while less on background pixels. To address the imbalance between foreground and background pixels, we also propose Weighted Loss Map, which assigns high weights on foreground and difficult background pixels to help training process focus more on pixels that are crucial to landmark localization. To further improve face alignment accuracy, we introduce boundary prediction and CoordConv with boundary coordinates. Extensive experiments on different benchmarks, including COFW, 300W and WFLW, show our approach outperforms the state-of-the-art by a significant margin on
|
||||
various evaluation metrics. Besides, the Adaptive Wing loss also helps other heatmap regression tasks.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/148007960-a06a34d8-8090-49e1-80db-6bbe4a7e7e8d.png">
|
||||
</div>
|
||||
@@ -0,0 +1,30 @@
|
||||
# Distribution-aware coordinate representation for human pose estimation
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="http://openaccess.thecvf.com/content_CVPR_2020/html/Zhang_Distribution-Aware_Coordinate_Representation_for_Human_Pose_Estimation_CVPR_2020_paper.html">DarkPose (CVPR'2020)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@inproceedings{zhang2020distribution,
|
||||
title={Distribution-aware coordinate representation for human pose estimation},
|
||||
author={Zhang, Feng and Zhu, Xiatian and Dai, Hanbin and Ye, Mao and Zhu, Ce},
|
||||
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
|
||||
pages={7093--7102},
|
||||
year={2020}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
While being the de facto standard coordinate representation for human pose estimation, heatmap has not been investigated in-depth. This work fills this gap. For the first time, we find that the process of decoding the predicted heatmaps into the final joint coordinates in the original image space is surprisingly significant for the performance. We further probe the design limitations of the standard coordinate decoding method, and propose a more principled distributionaware decoding method. Also, we improve the standard coordinate encoding process (i.e. transforming ground-truth coordinates to heatmaps) by generating unbiased/accurate heatmaps. Taking the two together, we formulate a novel Distribution-Aware coordinate Representation of Keypoints (DARK) method. Serving as a model-agnostic plug-in, DARK brings about significant performance boost to existing human pose estimation models. Extensive experiments show that DARK yields the best results on two common benchmarks, MPII and COCO. Besides, DARK achieves the 2nd place entry in the ICCV 2019 COCO Keypoints Challenge. The code is available online.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/146514732-1d53614b-e5b7-4a1c-a39f-6fc726217d81.png">
|
||||
</div>
|
||||
@@ -0,0 +1,17 @@
|
||||
# Mixed Precision Training
|
||||
|
||||
<!-- [OTHERS] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://arxiv.org/abs/1710.03740">FP16 (ArXiv'2017)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{micikevicius2017mixed,
|
||||
title={Mixed precision training},
|
||||
author={Micikevicius, Paulius and Narang, Sharan and Alben, Jonah and Diamos, Gregory and Elsen, Erich and Garcia, David and Ginsburg, Boris and Houston, Michael and Kuchaiev, Oleksii and Venkatesh, Ganesh and others},
|
||||
journal={arXiv preprint arXiv:1710.03740},
|
||||
year={2017}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
# Structure-Coherent Deep Feature Learning for Robust Face Alignment
|
||||
|
||||
<!-- [ALGORITHM] -->
|
||||
|
||||
<details>
|
||||
<summary align="right"><a href="https://ieeexplore.ieee.org/document/9442331/">SoftWingloss (TIP'2021)</a></summary>
|
||||
|
||||
```bibtex
|
||||
@article{lin2021structure,
|
||||
title={Structure-Coherent Deep Feature Learning for Robust Face Alignment},
|
||||
author={Lin, Chunze and Zhu, Beier and Wang, Quan and Liao, Renjie and Qian, Chen and Lu, Jiwen and Zhou, Jie},
|
||||
journal={IEEE Transactions on Image Processing},
|
||||
year={2021},
|
||||
publisher={IEEE}
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Abstract
|
||||
|
||||
<!-- [ABSTRACT] -->
|
||||
|
||||
In this paper, we propose a structure-coherent deep feature learning method for face alignment. Unlike most existing face alignment methods which overlook the facial structure cues, we explicitly exploit the relation among facial landmarks to make the detector robust to hard cases such as occlusion and large pose. Specifically, we leverage a landmark-graph relational network to enforce the structural relationships among landmarks. We consider the facial landmarks as structural graph nodes and carefully design the neighborhood to passing features among the most related nodes. Our method dynamically adapts the weights of node neighborhood to eliminate distracted information from noisy nodes, such as occluded landmark point. Moreover, different from most previous works which only tend to penalize the landmarks absolute position during the training, we propose a relative location loss to enhance the information of relative location of landmarks. This relative location supervision further regularizes the facial structure. Our approach considers the interactions among facial landmarks and can be easily implemented on top of any convolutional backbone to boost the performance. Extensive experiments on three popular benchmarks, including WFLW, COFW and 300W, demonstrate the effectiveness of the proposed method. In particular, due to explicit structure modeling, our approach is especially robust to challenging cases resulting in impressive low failure rate on COFW and WFLW datasets.
|
||||
|
||||
<!-- [IMAGE] -->
|
||||
|
||||
<div align=center>
|
||||
<img src="https://user-images.githubusercontent.com/15977946/148036579-b128fb21-3a2d-4894-bb54-4223a4cdf856.png">
|
||||
</div>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user