AddArt Billboards
Street photos of advertising billboards, each annotated with the 4 corners of the display surface (top-left, top-right, bottom-right, bottom-left), a tight bounding box and a binary mask of the visible surface. Images with no billboard (hard negatives) are included.
The dataset was built for AddArt, an app that replaces billboard advertising with artworks in the camera view: the 4 corners give the homography used to warp the artwork onto the panel.
| Split | Images | Negatives |
|---|---|---|
| train | 594 | 21 |
| validation | 73 | 3 |
| test | 77 | 2 |
| total | 744 | 26 |
Loading
from datasets import load_dataset
ds = load_dataset("vogloblinsky/addart-billboards")
sample = ds["train"][0]
sample["image"] # PIL image
sample["panels"][0]["corners"] # [[x, y] ร 4], TL โ TR โ BR โ BL
Masks are stored under masks/<split>/ and referenced by the mask_path column (relative to the
repository root):
from huggingface_hub import hf_hub_download
from PIL import Image
path = hf_hub_download("vogloblinsky/addart-billboards", sample["mask_path"], repo_type="dataset")
mask = Image.open(path)
A COCO keypoints export (annotations_coco/<split>.json, one category with 4 keypoints, segmentation
= the corner quadrilateral) is also provided for detection / pose frameworks.
Fields (metadata.jsonl)
| Field | Description |
|---|---|
file_name |
image file, relative to the split folder |
mask_path |
visible-surface mask (PNG, same size as the image), null for negatives |
width, height |
image size in pixels |
source |
phone_photo, phone_video_frame, openverse, wikimedia, openimages |
is_negative |
true if the image contains no target billboard |
negative_reason |
why the image is a negative (when set) |
view_type |
frontal, slightly_oblique, strongly_oblique |
vertical_angle |
neutral, low_angle, high_angle |
panels |
list of annotated panels (0 or 1 in this release) |
panels[].corners |
4 [x, y] points in pixels of the provided image, clockwise from top-left |
panels[].bbox |
[x, y, width, height], tight around the corners |
panels[].visibility, panels[].occlusion |
visibility / occlusion of the panel |
license, author, source_url |
per-image attribution (see Licensing) |
Annotation protocol
- Target: the display surface of the billboard, i.e. the area where the poster is shown, excluding the frame, the structure and the lighting.
- Corners are placed on the display surface, clockwise from top-left as the image is displayed. An annotation is accepted only if the quadrilateral has a positive signed area in that order.
- One panel per image: images with several equally prominent billboards were left out of this release.
- Masks are generated from the corners and, where needed, manually edited to remove occluding objects
(
visible_surface). - Coordinates refer to the images exactly as distributed: phone photos have been rotated according to their EXIF orientation, then stripped of EXIF metadata.
All annotations were made by a single annotator with a dedicated web tool.
Splits
Splits are fixed and deterministic. Images that show the same scene are always in the same split: frames from the same video, phone photos taken less than 10 minutes apart, and near-duplicates detected by perceptual hash. Within each source, groups are distributed 80 / 10 / 10.
Sources
| Source | Images | Description |
|---|---|---|
| Phone photos | 150 | street photos taken by the dataset author in the Rennes area, Brittany, France |
| Phone video frames | 98 | frames sampled from 6 videos shot by the dataset author in Rennes, France |
| Openverse | 365 | mostly Flickr, CC-licensed |
| Wikimedia Commons | 87 | category Billboards |
| Open Images V4 | 44 | train subset, CC BY 2.0 |
Images whose origin could not be established, and images under NoDerivatives licenses, were excluded.
Licensing
- Annotations (corners, boxes, masks, attributes): CC BY 4.0, ยฉ Vincent Ogloblinsky.
- Photos and video frames by the author (
source=phone_*): CC BY 4.0, ยฉ Vincent Ogloblinsky. - Third-party images keep their original license, given per image in the
license,authorandsource_urlcolumns and inattribution.csv. Any reuse must follow that license, including attribution and, for CC BY-SA images, share-alike.
| License | Images |
|---|---|
| CC BY 2.0 | 280 |
| CC BY 4.0 | 248 |
| CC BY-SA 2.0 | 119 |
| CC BY-SA 4.0 | 38 |
| CC BY-SA 3.0 | 19 |
| Public Domain Mark 1.0 / public domain | 21 |
| CC0 1.0 | 13 |
| other CC BY / CC BY-SA | 6 |
Third-party images were resized; no other modification was made.
Takedown: if you are the author of an image and want it removed, open a discussion on this repository.
Limitations and biases
- Small dataset (744 images), one annotated panel per image.
- Geographic bias: all phone photos and video frames (248 images, 1/3 of the dataset) come from a single area (Rennes, Brittany, France), so French street furniture (bus shelters, sucettes / MUPI, 4ร3 m panels) is over-represented. Web images (Openverse, Wikimedia, Open Images) come from various countries.
- Web images over-represent frontal, well-lit, centred billboards; phone photos and video frames are closer to the target use (handheld, oblique, low-angle).
- Video frames are strongly correlated within a video; count them as 6 scenes rather than 98 samples.
- Advertisements visible in the images are the property of their respective owners; the dataset is intended for research on detecting the billboard surface, not the advertising content.
Citation
@misc{ogloblinsky2026addartbillboards,
author = {Ogloblinsky, Vincent},
title = {AddArt Billboards: corner-annotated billboard dataset},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/datasets/vogloblinsky/addart-billboards}}
}
