Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/isarandi/synthetic-occlusion
Synthetic Occlusion Augmentation
https://github.com/isarandi/synthetic-occlusion
computer-vision data-augmentation occlusion python synthetic-dataset-generation
Last synced: 3 months ago
JSON representation
Synthetic Occlusion Augmentation
- Host: GitHub
- URL: https://github.com/isarandi/synthetic-occlusion
- Owner: isarandi
- License: gpl-3.0
- Created: 2018-09-13T09:21:52.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-03-08T19:06:28.000Z (over 4 years ago)
- Last Synced: 2024-04-27T23:32:21.049Z (7 months ago)
- Topics: computer-vision, data-augmentation, occlusion, python, synthetic-dataset-generation
- Language: Python
- Size: 373 KB
- Stars: 113
- Watchers: 8
- Forks: 19
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Synthetic Occlusion Data Augmentation
![Occlusion augmented examples](examples.jpg)
In computer vision, synthetically augmenting training input images by pasting objects onto them has been shown to improve performance across several tasks, including object detection, facial landmark localization and human pose estimation.
Such pasting is also useful for evaluating a model's robustness to (synthetic) occlusions appearing on the test inputs.
This is the implementation we used in our [IROS'18 workshop paper](https://arxiv.org/abs/1808.09316) to study occlusion-robustness in 3D human pose estimation, and to achieve first place in the 2018 ECCV PoseTrack Challenge on 3D human pose estimation. Method description and detailed results for the latter can be found in [our short paper on arXiv](https://arxiv.org/abs/1809.04987).
Contact: István Sárándi
## Dependencies
You'll need the scientific Python stack (with Python 3), OpenCV and Pillow to run this code.## Getting Started
Clone the repo.
```bash
git clone https://github.com/isarandi/synthetic-occlusion.git
cd synthetic-occlusion
```Download and extract the Pascal VOC training/validation data (2 GB).
```bash
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
tar -xf VOCtrainval_11-May-2012.tar```
Test if it works (after some time this should show occluded examples of the "astronaut" image, like above).
```bash
./augmentation.py VOCdevkit/VOC2012
```## Example Use in Python
```python
occluders = load_occluders(pascal_voc_path=PATH_TO_THE_VOC2012_DIR)
example_image = cv2.resize(skimage.data.astronaut(), (256,256))
occluded_image = occlude_with_objects(example_image, occluders)
```## References
[1] I. Sárándi; T. Linder; K. O. Arras; B. Leibe: "[How Robust is 3D Human Pose Estimation to Occlusion?](https://arxiv.org/abs/1808.09316)" in IEEE/RSJ Int. Conference on Intelligent Robots and Systems (IROS'18) Workshops (2018) arXiv:1808.09316
[2] I. Sárándi; T. Linder; K. O. Arras; B. Leibe: "[Synthetic Occlusion Augmentation with Volumetric Heatmaps for the 2018 ECCV PoseTrack Challenge on 3D Human Pose Estimation](https://arxiv.org/abs/1809.04987)" (extended abstract) ECCV Workshops (2018) arXiv:1809.04987