MedOtter/CAMUS
CAMUS — Cardiac Acquisitions for Multi-structure Ultrasound Segmentation 2D transthoracic echocardiography from 500 patients at the University Hospital of St Etienne (GE Vivid E95, M5S probe). Each patient contributes an apical two-chamber (2CH) and four-chamber (4CH) view. Segmented structures: LV endocardium, LV myocardium, left atrium. Converted from the official CREATIS release; see Provenance for the exact source items and retrieval date. Configs Config… See the full description on the dataset page: https://huggingface.co/datasets/MedOtter/CAMUS.
CAMUS — Cardiac Acquisitions for Multi-structure Ultrasound Segmentation
2D transthoracic echocardiography from 500 patients at the University Hospital of St Etienne (GE Vivid E95, M5S probe). Each patient contributes an apical two-chamber (2CH) and four-chamber (4CH) view. Segmented structures: LV endocardium, LV myocardium, left atrium.
Converted from the official CREATIS release; see Provenance for the exact source items and retrieval date.
Configs
For reference the source release is 3.83 GB of gzipped float32 NIfTI. Both are already-compressed encodings, so the PNG/parquet figures above are the honest comparison — the 4× saving is on the uncompressed array, not on disk.
`ed_es` is exactly `half_sequence[gt_manual == True]` — same schema, same rows. The gt_manual column is the single switch between "hand-drawn" and "propagated".
The 2,000 endpoint rows are deliberately duplicated into half_sequence so both configs stand alone. The cine already begins on the true ED frame — the standalone ED image is byte-identical to its cine frame — so a video model prompted on frame 0 is prompted on real ED either way. What the duplicate rows add is the manual mask at those positions; the cine's own endpoint masks are a separate rasterization of the same contours (Dice 0.998, not bitwise equal).
Only ED and ES are hand-drawn
The intermediate cine masks are propagated/interpolated from the two manual endpoints. This was measured, not assumed. Reconstructing each intermediate mask from only its two endpoint masks by signed-distance-field blending gives:
TED (Painchaud et al., IEEE TMI 41(10), 2022) re-annotated 98 of these same patients fully manually, frame by frame, and is the control. Two checks make the gap readable: static no-motion baselines are near-identical (0.8907 vs 0.8915), so CAMUS is not simply the easier cohort; and downsampling TED 2× in y onto the CAMUS isotropic grid shifts it by +0.0008, so it is not a resolution artifact. Even CAMUS's worst sequence (0.9869) beats TED's mean.
Practical reading: the residual is ~0.5% on the scored targets — usable as a temporal benchmark, but mid-cycle frames carry little independent annotation. TED is the fully-manual alternative and is separately onboardable.
Masks
One label map per frame, raw upstream encoding, 8-bit grayscale PNG:
Verified across all 3,000 source GT files: every one contains exactly {0,1,2,3}.
In the Dataset Viewer the masks look almost black. That is expected — the values really are 0–3 on an 8-bit scale, not empty masks.
Derive targets in the loader. `lv_epi` must be the union `{1,2}`, not bare label 2: label 2 alone is a thin annulus, and scoring it directly measures rim geometry rather than segmentation quality (bare label 2 drops to 0.80 on the same sequences where the union scores 0.99). Masks are not pre-fanned-out into per-class binary columns here because upstream is a single disjoint partition — unlike DRAC22 / iChallenge-PALM19, where separate nullable columns exist because upstream shipped genuinely separate, spatially overlapping mask files.
Cardiac phase — and two broken cfg files
Frames are stored in source order; nothing was reordered at upload. phase_direction carries the upstream declaration so the loader can normalize.
Direction was classified from Info_*.cfg by this predicate:
forward <=> ED == 1 and ES == NbFrame 981 view-exams
reverse <=> ES == 1 and ED == NbFrame 19 view-examsThat is the declared direction. It was then checked against the pixels using LV-cavity area (count(mask == 1)), which must be larger at ED than at ES:
area(frame[ED]) > area(frame[ES]) 998 / 1000 view-examsTwo exams fail it — patient0185_2CH and patient0217_2CH. Byte-matching all 2,000 standalone ED/ES images against every frame of their cine resolves what is actually wrong: 1,996 match their cfg-declared index exactly, none fails to match some frame, and all 4 mismatches are those two exams with `ED` and `ES` transposed. So the .nii.gz files are correctly named; the cfg index fields are swapped. Both are flagged with cfg_phase_reliable = False, and their frame_index values here are the verified ones. Of the 21 cfgs declaring reverse order, 19 are genuinely ES→ED cines and 2 are forward cines with transposed fields.
Splits
The official subgroup_*.txt files, verified to be a clean partition — pairwise intersections all zero, union exactly the 500 patients:
Splits are patient-level; always group on patient_id (both views and every frame of a cine belong to one patient).
Unlike the 2019 challenge distribution, test ground truth is included — CREATIS published the held-out masks in this NIfTI re-release after closing the online leaderboard. All three splits are real, official and fully labelled.
information.txt notes that "a few corrections have been made, resulting in slight changes in distribution compared with the figures given in the article", so per-split statistics will not reproduce the paper's tables exactly.
Columns
Per-patient image quality (worst of the two views) is Good 175 / Medium 231 / Poor 94, reproducing the paper's 35 / 46 / 19 %. The Poor tier is where segmentation quality actually separates — worth reporting as a stratified breakdown.
Provenance
Built from the official CREATIS Girder deposit — not a third-party mirror. Several circulating copies are defective: one hard-codes an invented ID-range split that puts all 50 official test patients into training, another ships labels 1 and 2 swapped, and several relicense this NC-SA dataset as Apache-2.0, MIT or CC0.
The 2019 release differs materially — it was .mhd/.raw, split 450 train / 50 test with test GT withheld and the test folder renumbered from 1 (so flattening the two folders silently collides 50 IDs); its _sequence was the full cycle but unannotated; and its grid was anisotropic uint8 (0.308 × 0.154 mm) rather than isotropic float32 0.308 × 0.308 mm. The two releases are not pixel-identical, which is why a dated item ID is recorded here rather than just "CAMUS".
manifest.csv lists sha256, byte size, array shape and dtype for all 6,000 original `.nii.gz` files; manifest_aux.csv covers the 1,508 text assets. Anyone can verify their own CREATIS download is the exact input this parquet was converted from.
Why the raw NIfTIs are not mirrored here
Deliberate, not an oversight. The pixel data round-trips losslessly: CAMUS stores integral 0–255 values in float32, asserted frame-by-frame during conversion rather than sampled. The 2D echo affine carries nothing beyond in-plane spacing, which is a column. So re-hosting 3.8 GB of float32 would add bytes, not information — and manifest.csv preserves byte-level verifiability regardless. source_metadata/ carries all 1,000 Info_*.cfg files, the split files, information.txt, the EF notebook, and the license/citation texts.
Contamination and overlap
- CAMUS is very likely inside MedSAM's training corpus. MedSAM's supplementary table lists CAMUS · Ultrasound · 21,232 pairs, unstarred (training, not held-out) — and an independent inventory of this release gives 19,232 cine frames + 2,000 endpoint frames = 21,232 exactly. MedSAM-family scores on CAMUS are therefore not a clean held-out measurement. CAMUS is also reported inside US30K/SAMUS, UltraSam, BiomedParseData, U2-BENCH and FedCVD.
- TED and syntheticCAMUS are derived from 98 of these 500 patients and ship no cross-reference ID (both renumber to
patient001–patient098). 94 of the 98 fall in the CAMUS train split and 4 in the official test split, so training on TED and testing on CAMUS leaks those 4. - No overlap with ACDC — different modality (cine MRI), different hospital (Dijon), different cohort. The two share only a hosting portal and an author.
- No overlap with EchoNet-Dynamic (Stanford), CETUS (3D echo, multi-centre), HMC-QU (Doha), or the Medical Segmentation Decathlon (no echocardiography at all).
License
CC BY-NC-SA 4.0 — Attribution, NonCommercial, ShareAlike. This parquet conversion is a derivative work, so ShareAlike binds it too: this repository is redistributed under the same license, and so must anything derived from it.
The upstream LICENSE_TERMS.md adds two terms that travel with the data:
- Non-commercial scientific research use only.
- Citation is mandatory when referencing the dataset.
@article{leclerc2019camus,
author = {Leclerc, Sarah and Smistad, Erik and Pedrosa, Joao and {\O}stvik, Andreas
and Cervenansky, Frederic and Espinosa, Florian and Espeland, Torvald and
Berg, Erik Andreas Rye and Jodoin, Pierre-Marc and Grenier, Thomas and
Lartizien, Carole and D'hooge, Jan and Lovstakken, Lasse and Bernard, Olivier},
title = {Deep Learning for Segmentation Using an Open Large-Scale Dataset in
2D Echocardiography},
journal = {IEEE Transactions on Medical Imaging},
volume = {38},
number = {9},
pages = {2198--2210},
year = {2019},
doi = {10.1109/TMI.2019.2900516}
}Source
- Paper: S. Leclerc, E. Smistad, J. Pedrosa, A. Østvik, et al. "Deep Learning for Segmentation using an Open Large-Scale Dataset in 2D Echocardiography." IEEE TMI 38(9):2198–2210, 2019. doi:10.1109/TMI.2019.2900516
- Homepage: https://www.creatis.insa-lyon.fr/Challenge/camus/
- Data portal: https://humanheart-project.creatis.insa-lyon.fr/database/
