Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature] Support 300VW Dataset #3005

Merged
merged 2 commits into from
Apr 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ docs/**/modelzoo.md
!tests/data/**/*.log.json
!tests/data/**/*.pth
!tests/data/**/*.npy
!tests/data/**/vis/

# Pytorch
*.pth
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,7 @@ A summary can be found in the [Model Zoo](https://mmpose.readthedocs.io/en/lates
- [x] [Human3.6M](https://mmpose.readthedocs.io/en/latest/model_zoo_papers/datasets.html#human3-6m-tpami-2014) \[[homepage](http://vision.imar.ro/human3.6m/description.php)\] (TPAMI'2014)
- [x] [COCO](https://mmpose.readthedocs.io/en/latest/model_zoo_papers/datasets.html#coco-eccv-2014) \[[homepage](http://cocodataset.org/)\] (ECCV'2014)
- [x] [CMU Panoptic](https://mmpose.readthedocs.io/en/latest/model_zoo_papers/datasets.html#cmu-panoptic-iccv-2015) \[[homepage](http://domedb.perception.cs.cmu.edu/)\] (ICCV'2015)
- [x] [300VW](https://mmpose.readthedocs.io/en/latest/model_zoo_papers/datasets.html#300w-imavis-2016) \[[homepage](https://ibug.doc.ic.ac.uk/resources/300-VW/)\] (ICCV'2015)
- [x] [DeepFashion](https://mmpose.readthedocs.io/en/latest/model_zoo_papers/datasets.html#deepfashion-cvpr-2016) \[[homepage](http://mmlab.ie.cuhk.edu.hk/projects/DeepFashion/LandmarkDetection.html)\] (CVPR'2016)
- [x] [300W](https://mmpose.readthedocs.io/en/latest/model_zoo_papers/datasets.html#300w-imavis-2016) \[[homepage](https://ibug.doc.ic.ac.uk/resources/300-W/)\] (IMAVIS'2016)
- [x] [RHD](https://mmpose.readthedocs.io/en/latest/model_zoo_papers/datasets.html#rhd-iccv-2017) \[[homepage](https://lmb.informatik.uni-freiburg.de/resources/datasets/RenderedHandposeDataset.en.html)\] (ICCV'2017)
Expand Down
134 changes: 134 additions & 0 deletions configs/_base_/datasets/300vw.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
dataset_info = dict(
dataset_name='300vw',
paper_info=dict(
author='Jie Shen, Stefanos Zafeiriou, Grigorios G. Chrysos, '
'Jean Kossaifi, Georgios Tzimiropoulos, Maja Pantic',
title='The First Facial Landmark Tracking in-the-Wild Challenge: '
'Benchmark and Results',
container='Proceedings of the IEEE '
'international conference on computer vision workshops',
year='2016',
homepage='https://ibug.doc.ic.ac.uk/resources/300-VW/',
),
keypoint_info={
0: dict(name='kpt-0', id=0, color=[255, 0, 0], type='', swap='kpt-16'),
1: dict(name='kpt-1', id=1, color=[255, 0, 0], type='', swap='kpt-15'),
2: dict(name='kpt-2', id=2, color=[255, 0, 0], type='', swap='kpt-14'),
3: dict(name='kpt-3', id=3, color=[255, 0, 0], type='', swap='kpt-13'),
4: dict(name='kpt-4', id=4, color=[255, 0, 0], type='', swap='kpt-12'),
5: dict(name='kpt-5', id=5, color=[255, 0, 0], type='', swap='kpt-11'),
6: dict(name='kpt-6', id=6, color=[255, 0, 0], type='', swap='kpt-10'),
7: dict(name='kpt-7', id=7, color=[255, 0, 0], type='', swap='kpt-9'),
8: dict(name='kpt-8', id=8, color=[255, 0, 0], type='', swap=''),
9: dict(name='kpt-9', id=9, color=[255, 0, 0], type='', swap='kpt-7'),
10:
dict(name='kpt-10', id=10, color=[255, 0, 0], type='', swap='kpt-6'),
11:
dict(name='kpt-11', id=11, color=[255, 0, 0], type='', swap='kpt-5'),
12:
dict(name='kpt-12', id=12, color=[255, 0, 0], type='', swap='kpt-4'),
13:
dict(name='kpt-13', id=13, color=[255, 0, 0], type='', swap='kpt-3'),
14:
dict(name='kpt-14', id=14, color=[255, 0, 0], type='', swap='kpt-2'),
15:
dict(name='kpt-15', id=15, color=[255, 0, 0], type='', swap='kpt-1'),
16:
dict(name='kpt-16', id=16, color=[255, 0, 0], type='', swap='kpt-0'),
17:
dict(name='kpt-17', id=17, color=[255, 0, 0], type='', swap='kpt-26'),
18:
dict(name='kpt-18', id=18, color=[255, 0, 0], type='', swap='kpt-25'),
19:
dict(name='kpt-19', id=19, color=[255, 0, 0], type='', swap='kpt-24'),
20:
dict(name='kpt-20', id=20, color=[255, 0, 0], type='', swap='kpt-23'),
21:
dict(name='kpt-21', id=21, color=[255, 0, 0], type='', swap='kpt-22'),
22:
dict(name='kpt-22', id=22, color=[255, 0, 0], type='', swap='kpt-21'),
23:
dict(name='kpt-23', id=23, color=[255, 0, 0], type='', swap='kpt-20'),
24:
dict(name='kpt-24', id=24, color=[255, 0, 0], type='', swap='kpt-19'),
25:
dict(name='kpt-25', id=25, color=[255, 0, 0], type='', swap='kpt-18'),
26:
dict(name='kpt-26', id=26, color=[255, 0, 0], type='', swap='kpt-17'),
27: dict(name='kpt-27', id=27, color=[255, 0, 0], type='', swap=''),
28: dict(name='kpt-28', id=28, color=[255, 0, 0], type='', swap=''),
29: dict(name='kpt-29', id=29, color=[255, 0, 0], type='', swap=''),
30: dict(name='kpt-30', id=30, color=[255, 0, 0], type='', swap=''),
31:
dict(name='kpt-31', id=31, color=[255, 0, 0], type='', swap='kpt-35'),
32:
dict(name='kpt-32', id=32, color=[255, 0, 0], type='', swap='kpt-34'),
33: dict(name='kpt-33', id=33, color=[255, 0, 0], type='', swap=''),
34:
dict(name='kpt-34', id=34, color=[255, 0, 0], type='', swap='kpt-32'),
35:
dict(name='kpt-35', id=35, color=[255, 0, 0], type='', swap='kpt-31'),
36:
dict(name='kpt-36', id=36, color=[255, 0, 0], type='', swap='kpt-45'),
37:
dict(name='kpt-37', id=37, color=[255, 0, 0], type='', swap='kpt-44'),
38:
dict(name='kpt-38', id=38, color=[255, 0, 0], type='', swap='kpt-43'),
39:
dict(name='kpt-39', id=39, color=[255, 0, 0], type='', swap='kpt-42'),
40:
dict(name='kpt-40', id=40, color=[255, 0, 0], type='', swap='kpt-47'),
41: dict(
name='kpt-41', id=41, color=[255, 0, 0], type='', swap='kpt-46'),
42: dict(
name='kpt-42', id=42, color=[255, 0, 0], type='', swap='kpt-39'),
43: dict(
name='kpt-43', id=43, color=[255, 0, 0], type='', swap='kpt-38'),
44: dict(
name='kpt-44', id=44, color=[255, 0, 0], type='', swap='kpt-37'),
45: dict(
name='kpt-45', id=45, color=[255, 0, 0], type='', swap='kpt-36'),
46: dict(
name='kpt-46', id=46, color=[255, 0, 0], type='', swap='kpt-41'),
47: dict(
name='kpt-47', id=47, color=[255, 0, 0], type='', swap='kpt-40'),
48: dict(
name='kpt-48', id=48, color=[255, 0, 0], type='', swap='kpt-54'),
49: dict(
name='kpt-49', id=49, color=[255, 0, 0], type='', swap='kpt-53'),
50: dict(
name='kpt-50', id=50, color=[255, 0, 0], type='', swap='kpt-52'),
51: dict(name='kpt-51', id=51, color=[255, 0, 0], type='', swap=''),
52: dict(
name='kpt-52', id=52, color=[255, 0, 0], type='', swap='kpt-50'),
53: dict(
name='kpt-53', id=53, color=[255, 0, 0], type='', swap='kpt-49'),
54: dict(
name='kpt-54', id=54, color=[255, 0, 0], type='', swap='kpt-48'),
55: dict(
name='kpt-55', id=55, color=[255, 0, 0], type='', swap='kpt-59'),
56: dict(
name='kpt-56', id=56, color=[255, 0, 0], type='', swap='kpt-58'),
57: dict(name='kpt-57', id=57, color=[255, 0, 0], type='', swap=''),
58: dict(
name='kpt-58', id=58, color=[255, 0, 0], type='', swap='kpt-56'),
59: dict(
name='kpt-59', id=59, color=[255, 0, 0], type='', swap='kpt-55'),
60: dict(
name='kpt-60', id=60, color=[255, 0, 0], type='', swap='kpt-64'),
61: dict(
name='kpt-61', id=61, color=[255, 0, 0], type='', swap='kpt-63'),
62: dict(name='kpt-62', id=62, color=[255, 0, 0], type='', swap=''),
63: dict(
name='kpt-63', id=63, color=[255, 0, 0], type='', swap='kpt-61'),
64: dict(
name='kpt-64', id=64, color=[255, 0, 0], type='', swap='kpt-60'),
65: dict(
name='kpt-65', id=65, color=[255, 0, 0], type='', swap='kpt-67'),
66: dict(name='kpt-66', id=66, color=[255, 0, 0], type='', swap=''),
67: dict(
name='kpt-67', id=67, color=[255, 0, 0], type='', swap='kpt-65'),
},
skeleton_info={},
joint_weights=[1.] * 68,
sigmas=[])
55 changes: 55 additions & 0 deletions docs/en/dataset_zoo/2d_face_keypoint.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ If your folder structure is different, you may need to change the corresponding
MMPose supported datasets:

- [300W](#300w-dataset) \[ [Homepage](https://ibug.doc.ic.ac.uk/resources/300-W/) \]
- [300VW](#300vw-dataset) \[ [Homepage](https://ibug.doc.ic.ac.uk/resources/300-VW/) \]
- [WFLW](#wflw-dataset) \[ [Homepage](https://wywu.github.io/projects/LAB/WFLW.html) \]
- [AFLW](#aflw-dataset) \[ [Homepage](https://www.tugraz.at/institute/icg/research/team-bischof/lrs/downloads/aflw/) \]
- [COFW](#cofw-dataset) \[ [Homepage](http://www.vision.caltech.edu/xpburgos/ICCV13/) \]
Expand Down Expand Up @@ -94,6 +95,60 @@ mmpose
...
```

## 300VW Dataset

<!-- [DATASET] -->

<details>
<summary align="right"><a href="https://www.cv-foundation.org/openaccess/content_iccv_2015_workshops/w25/papers/Shen_The_First_Facial_ICCV_2015_paper.pdf">300VW (ICCVW'2015)</a></summary>

```bibtex
@inproceedings{shen2015first,
title={The first facial landmark tracking in-the-wild challenge: Benchmark and results},
author={Shen, Jie and Zafeiriou, Stefanos and Chrysos, Grigoris G and Kossaifi, Jean and Tzimiropoulos, Georgios and Pantic, Maja},
booktitle={Proceedings of the IEEE international conference on computer vision workshops},
pages={50--58},
year={2015}
}
```

</details>

For 300VW data, please register and download images from [300VW Dataset](https://ibug.doc.ic.ac.uk/download/300VW_Dataset_2015_12_14.zip/).
Unzip and use the "tools/dataset_converters/300vw2coco.py" to process the data.

<!-- Please download the annotation files from [300w_annotations](https://download.openmmlab.com/mmpose/datasets/300w_annotations.tar). -->

Put the 300VW under {MMPose}/data, and make them look like this:

```text
mmpose
├── mmpose
├── docs
├── tests
├── tools
├── configs
`── data
│── 300vw
|── annotations
| |── train.json
| |── test_1.json
| |── test_2.json
| `── test_3.json
`── images
|── 001
| `── imgs
| |── 000001.png
| |── 000002.png
| ...
|── 002
| `── imgs
| |── 000001.png
| |── 000002.png
| ...
| ...
```

## WFLW Dataset

<!-- [DATASET] -->
Expand Down
18 changes: 18 additions & 0 deletions docs/src/papers/datasets/300vw.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# 300 faces in-the-wild challenge: Database and results

<!-- [DATASET] -->

<details>
<summary align="right"><a href="https://www.cv-foundation.org/openaccess/content_iccv_2015_workshops/w25/papers/Shen_The_First_Facial_ICCV_2015_paper.pdf">300VW (ICCVW'2015)</a></summary>

```bibtex
@inproceedings{shen2015first,
title={The first facial landmark tracking in-the-wild challenge: Benchmark and results},
author={Shen, Jie and Zafeiriou, Stefanos and Chrysos, Grigoris G and Kossaifi, Jean and Tzimiropoulos, Georgios and Pantic, Maja},
booktitle={Proceedings of the IEEE international conference on computer vision workshops},
pages={50--58},
year={2015}
}
```

</details>
56 changes: 56 additions & 0 deletions docs/zh_cn/dataset_zoo/2d_face_keypoint.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ If your folder structure is different, you may need to change the corresponding
MMPose supported datasets:

- [300W](#300w-dataset) \[ [Homepage](https://ibug.doc.ic.ac.uk/resources/300-W/) \]
- [300VW](#300vw-dataset) \[ [Homepage](https://ibug.doc.ic.ac.uk/resources/300-VW/) \]
- [WFLW](#wflw-dataset) \[ [Homepage](https://wywu.github.io/projects/LAB/WFLW.html) \]
- [AFLW](#aflw-dataset) \[ [Homepage](https://www.tugraz.at/institute/icg/research/team-bischof/lrs/downloads/aflw/) \]
- [COFW](#cofw-dataset) \[ [Homepage](http://www.vision.caltech.edu/xpburgos/ICCV13/) \]
Expand Down Expand Up @@ -94,6 +95,61 @@ mmpose
...
```

## 300VW Dataset

<!-- [DATASET] -->

<details>
<summary align="right"><a href="https://www.cv-foundation.org/openaccess/content_iccv_2015_workshops/w25/papers/Shen_The_First_Facial_ICCV_2015_paper.pdf">300VW (ICCVW'2015)</a></summary>

```bibtex
@inproceedings{shen2015first,
title={The first facial landmark tracking in-the-wild challenge: Benchmark and results},
author={Shen, Jie and Zafeiriou, Stefanos and Chrysos, Grigoris G and Kossaifi, Jean and Tzimiropoulos, Georgios and Pantic, Maja},
booktitle={Proceedings of the IEEE international conference on computer vision workshops},
pages={50--58},
year={2015}
}
```

</details>

300VW dataset follows the same mark-up (i.e. set of facial landmarks) used in the 300W.
For 300VW data, please register and download images from [300VW Dataset](https://ibug.doc.ic.ac.uk/download/300VW_Dataset_2015_12_14.zip) .
Unzip and use the "tools/dataset_converters/300vw2coco.py" to process the data.

<!-- Please download the annotation files from [300w_annotations](https://download.openmmlab.com/mmpose/datasets/300w_annotations.tar). -->

Put the 300VW under {MMPose}/data, and make them look like this:

```text
mmpose
├── mmpose
├── docs
├── tests
├── tools
├── configs
`── data
│── 300vw
|── annotations
| |── train.json
| |── test_1.json
| |── test_2.json
| `── test_3.json
`── images
|── 001
| `── imgs
| |── 000001.png
| |── 000002.png
| ...
|── 002
| `── imgs
| |── 000001.png
| |── 000002.png
| ...
| ...
```

## WFLW Dataset

<!-- [DATASET] -->
Expand Down
4 changes: 3 additions & 1 deletion mmpose/datasets/datasets/face/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@
from .aflw_dataset import AFLWDataset
from .coco_wholebody_face_dataset import CocoWholeBodyFaceDataset
from .cofw_dataset import COFWDataset
from .face_300vw_dataset import Face300VWDataset
from .face_300w_dataset import Face300WDataset
from .face_300wlp_dataset import Face300WLPDataset
from .lapa_dataset import LapaDataset
from .wflw_dataset import WFLWDataset

__all__ = [
'Face300WDataset', 'WFLWDataset', 'AFLWDataset', 'COFWDataset',
'CocoWholeBodyFaceDataset', 'LapaDataset', 'Face300WLPDataset'
'CocoWholeBodyFaceDataset', 'LapaDataset', 'Face300WLPDataset',
'Face300VWDataset'
]
Loading
Loading