Skip to content

Commit

Permalink
Merge pull request #3005 from KeqiangSun/KeqiangSun/CleanFace300VW
Browse files Browse the repository at this point in the history
[Feature] Support 300VW Dataset
  • Loading branch information
xiexinch authored Apr 2, 2024
2 parents 7e3340a + cbd943c commit f2ec026
Show file tree
Hide file tree
Showing 21 changed files with 1,839 additions and 9 deletions.
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

0 comments on commit f2ec026

Please sign in to comment.