|
# Continuous Surface Embeddings for Dense Pose Estimation for Humans and Animals |
|
|
|
## <a name="Overview"></a> Overview |
|
|
|
<div align="center"> |
|
<img src="https://dl.fbaipublicfiles.com/densepose/web/densepose_cse_teaser.png" width="700px" /> |
|
</div> |
|
|
|
The pipeline uses [Faster R-CNN](https://arxiv.org/abs/1506.01497) |
|
with [Feature Pyramid Network](https://arxiv.org/abs/1612.03144) meta architecture |
|
outlined in Figure 1. For each detected object, the model predicts |
|
its coarse segmentation `S` (2 channels: foreground / background) |
|
and the embedding `E` (16 channels). At the same time, the embedder produces vertex |
|
embeddings `Ê` for the corresponding mesh. Universal positional embeddings `E` |
|
and vertex embeddings `Ê` are matched to derive for each pixel its continuous |
|
surface embedding. |
|
|
|
<div align="center"> |
|
<img src="https://dl.fbaipublicfiles.com/densepose/web/densepose_pipeline_cse.png" width="700px" /> |
|
</div> |
|
<p class="image-caption"><b>Figure 1.</b> DensePose continuous surface embeddings architecture based on Faster R-CNN with Feature Pyramid Network (FPN).</p> |
|
|
|
### Datasets |
|
|
|
For more details on datasets used for training and validation of |
|
continuous surface embeddings models, |
|
please refer to the [DensePose Datasets](DENSEPOSE_DATASETS.md) page. |
|
|
|
## <a name="ModelZoo"></a> Model Zoo and Baselines |
|
|
|
### Human CSE Models |
|
|
|
Continuous surface embeddings models for humans trained using the protocols from [Neverova et al, 2020](https://arxiv.org/abs/2011.12438). |
|
|
|
Models trained with hard assignment loss ℒ: |
|
|
|
<table><tbody> |
|
<!-- START TABLE --> |
|
<!-- TABLE HEADER --> |
|
<th valign="bottom">Name</th> |
|
<th valign="bottom">lr<br/>sched</th> |
|
<th valign="bottom">train<br/>time<br/>(s/iter)</th> |
|
<th valign="bottom">inference<br/>time<br/>(s/im)</th> |
|
<th valign="bottom">train<br/>mem<br/>(GB)</th> |
|
<th valign="bottom">box<br/>AP</th> |
|
<th valign="bottom">segm<br/>AP</th> |
|
<th valign="bottom">dp. AP<br/>GPS</th> |
|
<th valign="bottom">dp. AP<br/>GPSm</th> |
|
<th valign="bottom">model id</th> |
|
<th valign="bottom">download</th> |
|
<!-- TABLE BODY --> |
|
<!-- ROW: densepose_rcnn_R_50_FPN_s1x --> |
|
<tr><td align="left"><a href="../configs/cse/densepose_rcnn_R_50_FPN_s1x.yaml">R_50_FPN_s1x</a></td> |
|
<td align="center">s1x</td> |
|
<td align="center">0.349</td> |
|
<td align="center">0.060</td> |
|
<td align="center">6.3</td> |
|
<td align="center">61.1</td> |
|
<td align="center">67.1</td> |
|
<td align="center">64.4</td> |
|
<td align="center">65.7</td> |
|
<td align="center">251155172</td> |
|
<td align="center"><a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_s1x/251155172/model_final_c4ea5f.pkl">model</a> | <a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_s1x/251155172/metrics.json">metrics</a></td> |
|
</tr> |
|
<!-- ROW: densepose_rcnn_R_101_FPN_s1x --> |
|
<tr><td align="left"><a href="../configs/cse/densepose_rcnn_R_101_FPN_s1x.yaml">R_101_FPN_s1x</a></td> |
|
<td align="center">s1x</td> |
|
<td align="center">0.461</td> |
|
<td align="center">0.071</td> |
|
<td align="center">7.4</td> |
|
<td align="center">62.3</td> |
|
<td align="center">67.2</td> |
|
<td align="center">64.7</td> |
|
<td align="center">65.8</td> |
|
<td align="center">251155500</td> |
|
<td align="center"><a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_101_FPN_s1x/251155500/model_final_5c995f.pkl">model</a> | <a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_101_FPN_s1x/251155500/metrics.json">metrics</a></td> |
|
</tr> |
|
<!-- ROW: densepose_rcnn_R_50_FPN_DL_s1x --> |
|
<tr><td align="left"><a href="../configs/cse/densepose_rcnn_R_50_FPN_DL_s1x.yaml">R_50_FPN_DL_s1x</a></td> |
|
<td align="center">s1x</td> |
|
<td align="center">0.399</td> |
|
<td align="center">0.061</td> |
|
<td align="center">7.0</td> |
|
<td align="center">60.8</td> |
|
<td align="center">67.8</td> |
|
<td align="center">65.5</td> |
|
<td align="center">66.4</td> |
|
<td align="center">251156349</td> |
|
<td align="center"><a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_DL_s1x/251156349/model_final_e96218.pkl">model</a> | <a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_DL_s1x/251156349/metrics.json">metrics</a></td> |
|
</tr> |
|
<!-- ROW: densepose_rcnn_R_101_FPN_DL_s1x --> |
|
<tr><td align="left"><a href="../configs/cse/densepose_rcnn_R_101_FPN_DL_s1x.yaml">R_101_FPN_DL_s1x</a></td> |
|
<td align="center">s1x</td> |
|
<td align="center">0.504</td> |
|
<td align="center">0.074</td> |
|
<td align="center">8.3</td> |
|
<td align="center">61.5</td> |
|
<td align="center">68.0</td> |
|
<td align="center">65.6</td> |
|
<td align="center">66.6</td> |
|
<td align="center">251156606</td> |
|
<td align="center"><a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_101_FPN_DL_s1x/251156606/model_final_b236ce.pkl">model</a> | <a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_101_FPN_DL_s1x/251156606/metrics.json">metrics</a></td> |
|
</tr> |
|
</tbody></table> |
|
|
|
Models trained with soft assignment loss ℒ<sub>σ</sub>: |
|
|
|
<table><tbody> |
|
<!-- START TABLE --> |
|
<!-- TABLE HEADER --> |
|
<th valign="bottom">Name</th> |
|
<th valign="bottom">lr<br/>sched</th> |
|
<th valign="bottom">train<br/>time<br/>(s/iter)</th> |
|
<th valign="bottom">inference<br/>time<br/>(s/im)</th> |
|
<th valign="bottom">train<br/>mem<br/>(GB)</th> |
|
<th valign="bottom">box<br/>AP</th> |
|
<th valign="bottom">segm<br/>AP</th> |
|
<th valign="bottom">dp. AP<br/>GPS</th> |
|
<th valign="bottom">dp. AP<br/>GPSm</th> |
|
<th valign="bottom">model id</th> |
|
<th valign="bottom">download</th> |
|
<!-- TABLE BODY --> |
|
<!-- ROW: densepose_rcnn_R_50_FPN_soft_s1x --> |
|
<tr><td align="left"><a href="../configs/cse/densepose_rcnn_R_50_FPN_soft_s1x.yaml">R_50_FPN_soft_s1x</a></td> |
|
<td align="center">s1x</td> |
|
<td align="center">0.357</td> |
|
<td align="center">0.057</td> |
|
<td align="center">9.7</td> |
|
<td align="center">61.3</td> |
|
<td align="center">66.9</td> |
|
<td align="center">64.3</td> |
|
<td align="center">65.4</td> |
|
<td align="center">250533982</td> |
|
<td align="center"><a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_soft_s1x/250533982/model_final_2c4512.pkl">model</a> | <a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_soft_s1x/250533982/metrics.json">metrics</a></td> |
|
</tr> |
|
<!-- ROW: densepose_rcnn_R_101_FPN_soft_s1x --> |
|
<tr><td align="left"><a href="../configs/cse/densepose_rcnn_R_101_FPN_soft_s1x.yaml">R_101_FPN_soft_s1x</a></td> |
|
<td align="center">s1x</td> |
|
<td align="center">0.464</td> |
|
<td align="center">0.071</td> |
|
<td align="center">10.5</td> |
|
<td align="center">62.1</td> |
|
<td align="center">67.3</td> |
|
<td align="center">64.5</td> |
|
<td align="center">66.0</td> |
|
<td align="center">250712522</td> |
|
<td align="center"><a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_101_FPN_soft_s1x/250712522/model_final_4637da.pkl">model</a> | <a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_101_FPN_soft_s1x/250712522/metrics.json">metrics</a></td> |
|
</tr> |
|
<!-- ROW: densepose_rcnn_R_50_FPN_DL_soft_s1x --> |
|
<tr><td align="left"><a href="../configs/cse/densepose_rcnn_R_50_FPN_DL_soft_s1x.yaml">R_50_FPN_DL_soft_s1x</a></td> |
|
<td align="center">s1x</td> |
|
<td align="center">0.427</td> |
|
<td align="center">0.062</td> |
|
<td align="center">11.3</td> |
|
<td align="center">60.8</td> |
|
<td align="center">68.0</td> |
|
<td align="center">66.1</td> |
|
<td align="center">66.7</td> |
|
<td align="center">250713703</td> |
|
<td align="center"><a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_DL_soft_s1x/250713703/model_final_9199f5.pkl">model</a> | <a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_DL_soft_s1x/250713703/metrics.json">metrics</a></td> |
|
</tr> |
|
<!-- ROW: densepose_rcnn_R_101_FPN_DL_soft_s1x --> |
|
<tr><td align="left"><a href="../configs/cse/densepose_rcnn_R_101_FPN_DL_soft_s1x.yaml">R_101_FPN_DL_soft_s1x</a></td> |
|
<td align="center">s1x</td> |
|
<td align="center">0.483</td> |
|
<td align="center">0.071</td> |
|
<td align="center">12.2</td> |
|
<td align="center">61.5</td> |
|
<td align="center">68.2</td> |
|
<td align="center">66.2</td> |
|
<td align="center">67.1</td> |
|
<td align="center">250713061</td> |
|
<td align="center"><a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_101_FPN_DL_soft_s1x/250713061/model_final_1d3314.pkl">model</a> | <a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_101_FPN_DL_soft_s1x/250713061/metrics.json">metrics</a></td> |
|
</tr> |
|
</tbody></table> |
|
|
|
### Animal CSE Models |
|
|
|
Models obtained by finetuning human CSE models on animals data from `ds1_train` |
|
(see the [DensePose LVIS](DENSEPOSE_DATASETS.md#continuous-surface-embeddings-annotations-3) |
|
section for more details on the datasets) with soft assignment loss ℒ<sub>σ</sub>: |
|
|
|
<table><tbody> |
|
<!-- START TABLE --> |
|
<!-- TABLE HEADER --> |
|
<th valign="bottom">Name</th> |
|
<th valign="bottom">lr<br/>sched</th> |
|
<th valign="bottom">train<br/>time<br/>(s/iter)</th> |
|
<th valign="bottom">inference<br/>time<br/>(s/im)</th> |
|
<th valign="bottom">train<br/>mem<br/>(GB)</th> |
|
<th valign="bottom">box<br/>AP</th> |
|
<th valign="bottom">segm<br/>AP</th> |
|
<th valign="bottom">dp. AP<br/>GPS</th> |
|
<th valign="bottom">dp. AP<br/>GPSm</th> |
|
<th valign="bottom">model id</th> |
|
<th valign="bottom">download</th> |
|
<!-- TABLE BODY --> |
|
<!-- ROW: densepose_rcnn_R_50_FPN_soft_chimps_finetune_4k --> |
|
<tr><td align="left"><a href="../configs/cse/densepose_rcnn_R_50_FPN_soft_chimps_finetune_4k.yaml">R_50_FPN_soft_chimps_finetune_4k</a></td> |
|
<td align="center">4K</td> |
|
<td align="center">0.569</td> |
|
<td align="center">0.051</td> |
|
<td align="center">4.7</td> |
|
<td align="center">62.0</td> |
|
<td align="center">59.0</td> |
|
<td align="center">32.2</td> |
|
<td align="center">39.6</td> |
|
<td align="center">253146869</td> |
|
<td align="center"><a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_soft_chimps_finetune_4k/253146869/model_final_52f649.pkl">model</a> | <a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_soft_chimps_finetune_4k/253146869/metrics.json">metrics</a></td> |
|
</tr> |
|
<!-- ROW: densepose_rcnn_R_50_FPN_soft_animals_finetune_4k --> |
|
<tr><td align="left"><a href="../configs/cse/densepose_rcnn_R_50_FPN_soft_animals_finetune_4k.yaml">R_50_FPN_soft_animals_finetune_4k</a></td> |
|
<td align="center">4K</td> |
|
<td align="center">0.381</td> |
|
<td align="center">0.061</td> |
|
<td align="center">7.3</td> |
|
<td align="center">44.9</td> |
|
<td align="center">55.5</td> |
|
<td align="center">21.3</td> |
|
<td align="center">28.8</td> |
|
<td align="center">253145793</td> |
|
<td align="center"><a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_soft_animals_finetune_4k/253145793/model_final_8f8ba2.pkl">model</a> | <a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_soft_animals_finetune_4k/253145793/metrics.json">metrics</a></td> |
|
</tr> |
|
<!-- ROW: densepose_rcnn_R_50_FPN_soft_animals_CA_finetune_4k --> |
|
<tr><td align="left"><a href="../configs/cse/densepose_rcnn_R_50_FPN_soft_animals_CA_finetune_4k.yaml">R_50_FPN_soft_animals_CA_finetune_4k</a></td> |
|
<td align="center">4K</td> |
|
<td align="center">0.412</td> |
|
<td align="center">0.059</td> |
|
<td align="center">7.1</td> |
|
<td align="center">53.4</td> |
|
<td align="center">59.5</td> |
|
<td align="center">25.4</td> |
|
<td align="center">33.4</td> |
|
<td align="center">253498611</td> |
|
<td align="center"><a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_soft_animals_CA_finetune_4k/253498611/model_final_6d69b7.pkl">model</a> | <a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_soft_animals_CA_finetune_4k/253498611/metrics.json">metrics</a></td> |
|
</tr> |
|
</tbody></table> |
|
|
|
Acronyms: |
|
|
|
`CA`: class agnostic training, where all annotated instances are mapped into a single category |
|
|
|
|
|
Models obtained by finetuning human CSE models on animals data from `ds2_train` dataset |
|
with soft assignment loss ℒ<sub>σ</sub> and, for some schedules, cycle losses. |
|
Please refer to [DensePose LVIS](DENSEPOSE_DATASETS.md#continuous-surface-embeddings-annotations-3) |
|
section for details on the dataset and to [Neverova et al, 2021]() for details on cycle losses. |
|
|
|
<table><tbody> |
|
<!-- START TABLE --> |
|
<!-- TABLE HEADER --> |
|
<th valign="bottom">Name</th> |
|
<th valign="bottom">lr<br/>sched</th> |
|
<th valign="bottom">train<br/>time<br/>(s/iter)</th> |
|
<th valign="bottom">inference<br/>time<br/>(s/im)</th> |
|
<th valign="bottom">train<br/>mem<br/>(GB)</th> |
|
<th valign="bottom">box<br/>AP</th> |
|
<th valign="bottom">segm<br/>AP</th> |
|
<th valign="bottom">dp. AP<br/>GPS</th> |
|
<th valign="bottom">dp. AP<br/>GPSm</th> |
|
<th valign="bottom">GErr</th> |
|
<th valign="bottom">GPS</th> |
|
<th valign="bottom">model id</th> |
|
<th valign="bottom">download</th> |
|
<!-- TABLE BODY --> |
|
<!-- ROW: densepose_rcnn_R_50_FPN_soft_animals_I0_finetune_16k --> |
|
<tr><td align="left"><a href="../configs/cse/densepose_rcnn_R_50_FPN_soft_animals_I0_finetune_16k.yaml">R_50_FPN_soft_animals_I0_finetune_16k</a></td> |
|
<td align="center">16k</td> |
|
<td align="center">0.386</td> |
|
<td align="center">0.058</td> |
|
<td align="center">8.4</td> |
|
<td align="center">54.2</td> |
|
<td align="center">67.0</td> |
|
<td align="center">29.0</td> |
|
<td align="center">38.6</td> |
|
<td align="center">13.2</td> |
|
<td align="center">85.4</td> |
|
<td align="center">270727112</td> |
|
<td align="center"><a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_soft_animals_I0_finetune_16k/270727112/model_final_421d28.pkl">model</a> | <a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_soft_animals_I0_finetune_16k/270727112/metrics.json">metrics</a></td> |
|
</tr> |
|
<!-- ROW: densepose_rcnn_R_50_FPN_soft_animals_I0_finetune_m2m_16k --> |
|
<tr><td align="left"><a href="../configs/cse/densepose_rcnn_R_50_FPN_soft_animals_I0_finetune_m2m_16k.yaml">R_50_FPN_soft_animals_I0_finetune_m2m_16k</a></td> |
|
<td align="center">16k</td> |
|
<td align="center">0.508</td> |
|
<td align="center">0.056</td> |
|
<td align="center">12.2</td> |
|
<td align="center">54.1</td> |
|
<td align="center">67.3</td> |
|
<td align="center">28.6</td> |
|
<td align="center">38.4</td> |
|
<td align="center">12.5</td> |
|
<td align="center">87.6</td> |
|
<td align="center">270982215</td> |
|
<td align="center"><a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_soft_animals_I0_finetune_m2m_16k/270982215/model_final_6fe5f4.pkl">model</a> | <a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_soft_animals_I0_finetune_m2m_16k/270982215/metrics.json">metrics</a></td> |
|
</tr> |
|
<!-- ROW: densepose_rcnn_R_50_FPN_soft_animals_I0_finetune_i2m_16k --> |
|
<tr><td align="left"><a href="../configs/cse/densepose_rcnn_R_50_FPN_soft_animals_I0_finetune_i2m_16k.yaml">R_50_FPN_soft_animals_I0_finetune_i2m_16k</a></td> |
|
<td align="center">16k</td> |
|
<td align="center">0.483</td> |
|
<td align="center">0.056</td> |
|
<td align="center">9.7</td> |
|
<td align="center">54.0</td> |
|
<td align="center">66.6</td> |
|
<td align="center">28.9</td> |
|
<td align="center">38.3</td> |
|
<td align="center">11.0</td> |
|
<td align="center">88.9</td> |
|
<td align="center">270727461</td> |
|
<td align="center"><a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_soft_animals_I0_finetune_i2m_16k/270727461/model_final_8c9d99.pkl">model</a> | <a href="https://dl.fbaipublicfiles.com/densepose/cse/densepose_rcnn_R_50_FPN_soft_animals_I0_finetune_i2m_16k/270727461/metrics.json">metrics</a></td> |
|
</tr> |
|
</tbody></table> |
|
|
|
## <a name="References"></a> References |
|
|
|
If you use DensePose methods based on continuous surface embeddings, please take the |
|
references from the following BibTeX entries: |
|
|
|
Continuous surface embeddings: |
|
``` |
|
@InProceedings{Neverova2020ContinuousSurfaceEmbeddings, |
|
title = {Continuous Surface Embeddings}, |
|
author = {Neverova, Natalia and Novotny, David and Khalidov, Vasil and Szafraniec, Marc and Labatut, Patrick and Vedaldi, Andrea}, |
|
journal = {Advances in Neural Information Processing Systems}, |
|
year = {2020}, |
|
} |
|
``` |
|
|
|
Cycle Losses: |
|
``` |
|
@InProceedings{Neverova2021UniversalCanonicalMaps, |
|
title = {Discovering Relationships between Object Categories via Universal Canonical Maps}, |
|
author = {Neverova, Natalia and Sanakoyeu, Artsiom and Novotny, David and Labatut, Patrick and Vedaldi, Andrea}, |
|
journal = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, |
|
year = {2021}, |
|
} |
|
``` |
|
|