Mammography dataset

Only a handful of open mammography sets contain the fine-grain BI-RADS descriptors you are thinking of mining (shape, margin, morphology, distribution, etc.).

  • CBIS-DDSM and BCDR explicitly expose them in CSV metadata.
  • VinDr-Mammo and RSNA-SMBC stop at breast-level labels (plus lesion boxes in RSNA) – no descriptor columns are present.
  • Legacy sets such as INbreast and MIAS provide precise contours or ROI centres, but not the descriptor vocabulary.
Dataset (public) Year Images / exams Annotation level BI-RADS descriptor columns?
RSNA-SMBC (Kaggle) 2022 54 k images, 8 k pts Breast-level CSV: cancerdensityBIRADSinvasiveplus optional finding_annotations.csv with bounding-boxes No shape / margin / calc-type fields (github.comkaggle.com)
VinDr-Mammo 2022 20 k images, 5 k exams Breast- & finding-level CSV; findings boxed for mass, calcification, asymmetry, etc. No morphology descriptors (BI-RADS > 2 findings only)
CBIS-DDSM 2017 10 239 images, 2 620 studies ROI masks + CSV per lesion Yes – mass_shapemass_margincalc_typecalc_distributionbreast_density, overall BI-RADS and pathology (nature.comcancerimagingarchive.net)
INbreast 2011 410 FFDM images Polygon contours in XML No descriptor fields; only lesion type (mass, calc, etc.) (biokeanos.com)
MIAS 1994 322 digitised images Centre + radius for ROI Limited: abnormality class (CIRCSPICCALC, …) and background density (F,G,D) (toolbox.google.com)
BCDR-FM / BCDR-DM 2012- 7 300+ images Segmentation masks + extensive clinical spreadsheet Yes – BI-RADS features (shape, margin, density, distribution) and patient history (bcdr.ceta-ciemat.es)
OPTIMAM (application-only) 2020 150 k+ images Boxes & rich BI-RADS descriptors Restricted access, but descriptors are provided (pubs.rsna.org)

What this means for your extraction pipeline

  1. Leverage CBIS-DDSM/BCDR for descriptor mining
    Both sets already hold the structured fields you need; you can prototype directly against their CSVs and masks. CBIS-DDSM files mass_case_description_*.csv and calc_case_description_*.csv contain the canonical columns (mass_shapemass_margincalc_distributioncalc_type, etc.) in plain text (nature.com).
  2. RSNA & VinDr – boxes only
    These large modern FFDM sets are excellent for detection tasks but lack explicit BI-RADS sub-descriptors. If you need them you will have to:
    • train a multi-head model to predict descriptors from the cropped box, or
    • run a semi-automatic labelling pass with experts and add your own columns.
  3. INbreast & MIAS – good for segmentation, not semantics
    Polygon accuracy is high, so they are useful for training shape-aware detectors. But because descriptors are missing you cannot harvest shape/margin text without re-reading images.
  4. Consider harmonisation early: If you plan to fuse datasets, create an internal schema (e.g., mass_shape_code ∈ {round, oval, irregular, spiculated}calc_morphology ∈ {amorphous, coarse_het, fine_lin, …}) and map each dataset’s native labels (where present) to it. Fill NULL for RSNA/VinDr rows until your own model or radiologist adds the data.
  5. Automatic descriptor inference
    For the descriptor-poor sets you could:
    • fine-tune a vision-transformer on CBIS-DDSM descriptor labels, then apply it to RSNA/VinDr crops (domain shift mitigation needed);
    • or adopt large vision–language models that generate BI-RADS text from an ROI, using CBIS-DDSM/BCDR as supervised prompts.

Practical next steps

  • Start with CBIS-DDSM – parse the CSVs and confirm that the descriptors meet your desired granularity.
  • Design a unified pandas schema and an extract_descriptors() function that reads whichever columns exist, normalises codes, and stores them in your database.
  • For datasets lacking descriptors, plan an active-learning loop: sample uncertain ROIs, have a radiologist label the BI-RADS attributes, retrain, repeat.
  • Keep track of licence terms (RSNA and OPTIMAM are research-only; BCDR requires registration).

This approach lets you bootstrap a descriptor-rich corpus quickly and scale it across the larger, descriptor-poor datasets as your model (or annotation budget) matures.