The OccludedPASCAL3D+ is a dataset is designed to evaluate the robustness to occlusion for a number of computer vision tasks, such as object detection, keypoint detection and pose estimation. In the OccludedPASCAL3D+ dataset, we simulate partial occlusion by superimposing objects cropped from the MS-COCO dataset on top of objects from the PASCAL3D+ dataset. We only use ImageNet subset in PASCAL3D+, which has 10812 testing images. Note: The OccludedPASCAL3D+ dataset is designed for evaluating out distribution robustness toward unsign occlusion. Thus, the training set with occlusion is only for abilation usage.
The OccludedPASCAL3D+ has 9 occlusion levels in total, with three foreground occlusion levels (FGL1, FGL2, FGL3) and three background occlusion levels (BGL1, BGL2, BGL3). Note that the amount of occlusion is compuated as the number of occluded pixels on the object mask. The occlusion ratio of the foreground:
Occlusion Level | FGL1 | FGL2 | FGL3 |
---|---|---|---|
Occlusion Ratio | 20%-40% | 40%-60% | 60%-80% |
The occlusion ratio of the background:
Occlusion Level | BGL1 | BGL2 | BGL3 |
---|---|---|---|
Occlusion Ratio | 0%-20% | 20%-40% | 40%-60% |
Number of images for each level:
FGL1 | FGL2 | FGL3 | |
---|---|---|---|
BGL1 | 10421 | 10270 | 9965 |
BGL2 | 10304 | 10219 | 10056 |
BGL3 | 9143 | 10125 | 9983 |
We provide two scripts for downloading either the full dataset or the foreground only dataset (FGL1_BGL1, FGL2_BGL2, FGL3_BGL3). The foreground only dataset is designed for computer vision tasks that assume a given bounding box during inference, such as keypoint detection and pose estimation.
- Clone this repo
- Run the script to download full dataset:
chmod +x download_FG_and_BG.sh
./download_FG_and_BG.sh
Or run the script to download foreground only dataset:
chmod +x download_FG.sh
./download_FG.sh
- After running the above commands, you should see following folders:
images: contains occluded images.
annotations: annotations for each images.
lists: lists indicate the names of available images.
Inside the annotations folder you find folders named in the format "%sFGL%d_BGL%d" % (cate, fg_occ_lv, bg_occ_lv). In each folder, there are npz files containing the annotations for each individual image. To load the annotations:
import numpy as np
annos = np.load('IMG_NAME.npz', allow_pickle=True)
The variable annos will contain the following attributes:
- 'source': name of the image.
- 'occluder_mask': a binary mask indicating the occluder.
- 'mask': a binary mask indicating the object.
- 'box': the bounding box of the object, in the format [ y0, y1, x0, x1, img_h, img_h ].
- 'occluder_box': a list of bounding boxes of each occluder respectively, in the format [ [ y0, y1, x0, x1, img_h, img_h ], [ y0, y1, x0, x1, img_h, img_h ] ... ].
If you are not satisfied with the version we provide, you can also create the dataset using code we provide in the code folder. To create the dataset:
- Install the BboxTools (a python lib for bounding boxing operations).
git clone https://github.com/Angtian/BboxTools.git
python ./BboxTools/setup.py install
- Download the occluder library cropped from the MS-COCO dataset.
cd code
chmod +x download_occluder_lib.sh
./download_occluder_lib.sh
- Change the path in CreateOccludedDataset.py and Process_anno.py
- Run these python scripts:
python CreateOccludedDataset.py
python Process_anno.py
If you find this dataset is useful in your research, please cite:
@inproceedings{wang2020robust,
title={Robust Object Detection Under Occlusion With Context-Aware CompositionalNets},
author={Wang, Angtian and Sun, Yihong and Kortylewski, Adam and Yuille, Alan L},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={12645--12654},
year={2020}
}