CoolFace
Datasetpublic

devmandan/sbd-qr-subset

SBD QR Subset — low resolution A mirror of the low-resolution ROI split of the Synthetic Barcode Dataset (Quenum, Wang, Zakhor), repackaged from 749,682 loose files into parquet. split ROIs instances train 80,000 439,731 validation 10,000 55,072 test 10,000 54,876 total 100,000 549,679 Why this repackaging exists Upstream, this split is three-quarters of a million individual PNG and JPEG files. That is unpleasant to move, impossible to browse… See the full description on the dataset page: https://huggingface.co/datasets/devmandan/sbd-qr-subset.

sourceHugging Facecc-by-4.0updated 1mo agoView on Hugging Face
0likes345downloads
Dataset Card

SBD QR Subset — low resolution

A mirror of the low-resolution ROI split of the Synthetic Barcode Dataset (Quenum, Wang, Zakhor), repackaged from 749,682 loose files into parquet.

splitROIsinstances
train80,000439,731
validation10,00055,072
test10,00054,876
total100,000549,679

Why this repackaging exists

Upstream, this split is three-quarters of a million individual PNG and JPEG files. That is unpleasant to move, impossible to browse, and slow to load. Here each ROI is one row carrying its image, its combined mask, all of its per-instance masks, and its bounding boxes — so the whole thing loads with one call and renders in the dataset viewer.

Fields

fieldnotes
imagethe 400×400 grayscale ROI
maskthe combined mask for the ROI
instance_maskslist of per-instance masks, one per barcode
boxeslist of [x1, y1, x2, y2], aligned index-for-index with instance_masks
n_instancesnumber of barcodes in the ROI
roi_idupstream ROI index (roi<N>.png ↔ img_<N> in all_bboxes.json)

The box↔mask alignment was verified, not assumed

boxes[k] and instance_masks[k] are the same object. The packer checked the count of boxes against the count of instance-mask files for every one of the 100,000 ROIs and found zero mismatches, and no ROI was missing its combined mask. If they had disagreed, the join would have been silently wrong in a way no loader would flag — so it is checked rather than trusted.

Usage

python
from datasets import load_dataset

ds = load_dataset("devmandan/sbd-qr-subset", split="train", streaming=True)
row = next(iter(ds))
row["image"], row["mask"], row["instance_masks"][0], row["boxes"][0]

# crowded ROIs
full = load_dataset("devmandan/sbd-qr-subset", split="test")
crowded = full.filter(lambda r: r["n_instances"] >= 8)

streaming=True is worth using here — the train split is ~3 GB.

Scope, stated plainly

This mirror carries the `low_resolution` ROI split only. The upstream SBD release also has ultra-high-resolution splits and full-scene imagery that are not included here. Do not describe results on this mirror as results on SBD.

It is also a barcode dataset covering multiple symbologies, not a QR-only one; it appears in a QR collection for its scale and its instance masks.

Citation

bibtex
@misc{sbd_synthetic_barcode_dataset,
  title  = {Synthetic Barcode Dataset (SBD)},
  author = {Quenum, Jerome and Wang, Kehan and Zakhor, Avideh},
  note   = {Synthetic barcode detection and segmentation dataset}
}

Licence: CC BY 4.0 as recorded in the dataset registry (the authors' code repository is separately MIT). Attribute the authors above, not this mirror.