v2.5.0
Datasets ⭐
EXAMPLE CODE
Pascal VOC 2012 Dataset
Load the Pascal VOC 2012 dataset in Python fast. 20 object classes, 6,929 segmentations, and 27,450 ROI tagged objects. Stream data while training ML models.
Visualization of the Pascal VOC 2012 Dataset on the Activeloop Platform.

Pascal VOC 2012 Dataset

What is Pascal VOC 2012 Dataset?

The purpose of Pascal VOC 2012(PASCAL Visual Object Classes) dataset is to recognize objects in realistic scenarios from a variety of visual object types that are not pre-segmented objects and is basically used for supervised learning task. The dataset can be used for different object recognition challenges such as classification, detection, segmentation and person layout. There are a whole total of twenty object classes chosen. There are 11,530 images in the train/val data set, including 27,450 ROI tagged objects and 6,929 segmentations.

Download Pascal VOC 2012 Dataset in Python

Instead of downloading the Pascal VOC 2012 dataset in Python, you can effortlessly load it in Python via our open-source package Hub with just one line of code.

Load Pascal VOC 2012 Dataset Training and validation Subset in Python

1
import hub
2
ds = hub.load('hub://activeloop/pascal-voc-2012-train-val')
Copied!

Load Pascal VOC 2012 Dataset Test Subset in Python

1
import hub
2
ds = hub.load('hub://activeloop/pascal-voc-2012-test')
Copied!

Pascal VOC 2012 Dataset Structure

Pascal VOC 2012 Data Fields

For training and validation set
  • images : tensor containing images.
  • instances/instance__mask : tensor for object segmentation.
  • instances/mask_pixel : tensor containing pixel values of instances of objects.
  • actions/box : tensor containing bounding box coordinates for action categories.
  • actions/keypoint: tensor containing a single keypoint for action categories.
  • actions/pose: tensor specifying the pose of the object. Most of the pose categories are 'unspecified'.
  • actions/label: tensor containing labels that represent action categories.
  • actions/difficult: tensor containing the label that represents if the object is difficult to annotate.
  • boxes/box: tensor that contains the coordinate values of the bounding boxes.
  • boxes/label: tensor that contains the labels of the bounding boxes.
  • boxes/pose: tensor containing the numerical label that represents the index of one of the 5 pose categories.
  • boxes/occlusion: tensor containing the numerical label that represents if the image is occluded or not occluded.
  • boxes/trunc: tensor containing the numerical label that represents if the image is truncated or not truncated.
  • boxes/difficult: tensor containing the numerical label that represents the if the image is difficult or not difficult to annotate.
  • parts/box: tensor that contains the coordinates of the bounding boxes for body parts used for person layout challenge.
  • parts/label: tensor that contains the labels of the bounding boxes for body part used for person layout challenge.
  • semantics/mask: tensor that represents the class mask.
  • semantics/label: tensor that contains the labels of classes present in the image and two extra labels, 'background' representing the background of the objects and 'None' representing the border/outline of the object or objects difficult to label in the image.
  • metadata/action_train_val_split : tensor containing details of whether image is in train or validation split and is used or not in action detection.
  • metadata/segmentation_train_val_split : tensor that contains the text that gives the details of whether the image is a train split tensor contains the text 'train'. For images used for validation contains the text 'validation'. If the image is not used for segmentation it contains the text 'image not used in segmentation'.
  • metadata/part_train_val_split : tensor that contains the text that gives the details of whether the image is used for training or validation or not used in body part/person layout detection.
  • metadata/main_train_val_split : tensor that contains the text that gives the details of whether the image is used for training or validation or not used in the main set.
  • metadata/image_meta: tensor containing image metadata
For test set
  • images: tensor containing the images.
  • boxes/box: tensor that contains the coordinate values of the bounding boxes.
  • boxes/label: tensor that contains the labels of the bounding boxes.
  • boxes/pose: tensor containing the numerical label that represents the index of one of the 5 pose categories.
  • boxes/difficult: tensor containing the numerical label that represents the index if the image is difficult to annotate.
  • parts/box: tensor that contains the coordinates of the bounding boxes for body parts used for person layout challenge.
  • parts/label: tensor that contains the labels of the bounding boxes for body part used for person layout challenge.
  • actions/box : tensor containing bounding box coordinates for action categories.
  • actions/keypoint: tensor containing a single keypoint for action categories.
  • actions/pose: tensor specifying the pose of the object. Most of the pose categories are 'unspecified'.
  • actions/label: tensor containing labels that represent action categories.
  • actions/difficult: tensor containing the label that represents if the object is difficult to annotate.
  • metadata/main_test_set: tensor representing the text that gives the details of whether the image is a test set used for object classification and detection
  • metadata/part_test_set : tensor representing the text that gives the details of whether the image is a test set used for person layout challenge
  • metadata/segmentation_test_set: tensor representing the text that gives the details of whether the image is a test set used for class and object segmentation
  • metadata/image_meta: tensor containing image metadata

Pascal VOC 2012 Data Splits

How to use Pascal VOC 2012 Dataset with PyTorch and TensorFlow in Python

Train a model on Pascal VOC 2012 dataset with PyTorch in Python

Let's use Hub's built-in PyTorch one-line dataloader to connect the data to the compute:
1
dataloader = ds.pytorch(num_workers=0, batch_size=4, shuffle=False)
Copied!

Train a model on Pascal VOC 2012 dataset with TensorFlow in Python

1
dataloader = ds.tensorflow()
Copied!

Additional Information about Pascal VOC 2012 Dataset

Pascal VOC 2012 Dataset Description

Pascal VOC 2012 Dataset Curators

Mark Everingham, John Winn

Pascal VOC 2012 Dataset Licensing Information

Hub users may have access to a variety of publicly available datasets. We do not host or distribute these datasets, vouch for their quality or fairness, or claim that you have a license to use the datasets. It is your responsibility to determine whether you have permission to use the datasets under their license.
If you're a dataset owner and do not want your dataset to be included in this library, please get in touch through a GitHub issue. Thank you for your contribution to the ML community!

Pascal VOC 2012 Dataset Citation Information

1
@article{everingham2011pascal,
2
title={The pascal visual object classes challenge 2012 (voc2012) development kit},
3
author={Everingham, Mark and Winn, John},
4
journal={Pattern Analysis, Statistical Modelling and Computational Learning, Tech. Rep},
5
volume={8},
6
pages={5},
7
year={2011}
8
}
Copied!