Skip to main content
Label every pixel. Each sample is one image, one mask image of the same size whose pixel values are class indices, and one CSV row that links the two and names a class present in the image.

Folder layout

  • The folders must be named images and masks and sit side by side, next to the labels CSV.
  • Masks are PNG files named <image stem>_mask.png. Every image needs a mask and every mask needs an image.
  • Masks must be readable images with exactly the same width and height as the images. The template’s masks are single-channel (grayscale) PNGs where pixel value 0 is background and 1, 2, … are classes.
  • Images share one extension (.jpg, .jpeg or .png; default .jpg) and one resolution. Nothing is resized at ingest.

Labels CSV

An image may appear on several rows, one per class it contains.

ingest.yaml

What the ingestor checks

Plus the checks every ingest runs. A record is copied only when both its image and its mask copy succeed.

Sample dataset

The template ships three 512×512 RGB JPEG images, three matching single-channel PNG masks and a three-row labels CSV (road, building, person). The ingest.yaml above ingests it with no overrides.

Next steps