| --- |
| library_name: pytorch |
| pipeline_tag: image-classification |
| tags: |
| - medical-imaging |
| - ultrasound |
| - fetal-ultrasound |
| - anomaly-detection |
| - out-of-distribution-detection |
| - autoencoder |
| license: other |
| --- |
| |
| # FetalVision |
|
|
| ## Quick links |
|
|
| - [Full patient-safe dataset](https://huggingface.co/datasets/Tiendat88/FetalVision-Fetal-Planes) |
| - [Training source code](https://github.com/Tiendat88/FetalVision) |
|
|
|
|
| PyTorch hybrid autoencoder + latent classifier for detecting non-standard/OOD fetal ultrasound views. The production ensemble combines three independently trained seeds. |
|
|
| ## Results |
|
|
| | Model | ROC-AUC | AP | F1 | Accuracy | |
| |---|---:|---:|---:|---:| |
| | Best single model (seed 2026) | 0.9754 | 0.9630 | 0.8782 | 0.9132 | |
| | Three-seed ensemble | **0.9796** | **0.9680** | **0.8887** | **0.9219** | |
|
|
| The ensemble uses weights `0.30 / 0.35 / 0.35` for seeds `42 / 1337 / 2026`, selected only on the validation set. |
|
|
| ## Files |
|
|
| - `models/seed42/best_model.pt` |
| - `models/seed1337/best_model.pt` |
| - `models/seed2026/best_model.pt` |
| - `ensemble/summary.json` |
| - Per-run summaries under each model directory |
| - Training and score-distribution plots for the best single run |
|
|
| Architecture and preprocessing configuration are stored inside every checkpoint and summary file. Full source code and reproducible training commands are available in [GitHub FetalVision](https://github.com/Tiendat88/FetalVision). |
|
|
| ## Intended use and limitations |
|
|
| `Other` is a proxy for non-standard/out-of-distribution views. It is **not** a fetal pathology label, and this model must not be interpreted as a diagnostic system. Clinical deployment requires external validation, calibration and appropriate regulatory review. |
|
|
| ## Dataset attribution |
|
|
| Trained using FETAL_PLANES_DB by Burgos-Artizzu et al., DOI: [10.5281/zenodo.3904280](https://doi.org/10.5281/zenodo.3904280). The source record does not state a machine-readable license, so this model card uses `license: other` rather than inventing a license. |
|
|