Skip to content

Repository files navigation

OpenH-RF

OpenH-RF

Discord License

Enabling advanced ultrasound imaging techniques and evaluation through free, openly available and high-quality ultrasound channel capture data.


About

OpenH-RF is a collaborative initiative led by Stanford University, Eindhoven University of Technology (TU/e) and NVIDIA to build a large-scale, openly licensed dataset of pre-beamformed (channel capture) medical ultrasound measurements. The goal: train general-purpose foundation models capable of multi-task raw-to-insight inference across echocardiography, general, fetal and transcranial imaging, blood flow measurement and ultrasound inverse problems.

We aim to curate 20,000+ real and synthetic channel capture measurements spanning reconstruction, flow, quantitative imaging, motion estimation and interpretation tasks — released under CC BY 4.0.

How to Participate

  1. Review the RFP — Read the Request for Proposals for technical scope, eligibility and evaluation criteria.
  2. Submit a Proposal — Prepare a concise proposal (≤ 5 pages) describing your dataset, collection methodology and target tasks. Submit to this Google Form.
  3. Contribute Data — Once approved, prepare your dataset in the OpenH-RF format, implemented in zea as documented here, along with a datacard specifying the CC BY 4.0 license. Approved contributors are given a dedicated shared storage location (S3 or Google Drive) for delivery and a Discord channel for coordination.
  4. Co-author the Release — Approved contributions are included in the public dataset and foundation model release — contributors are named co-authors in related publications upon project completion.

Key Dates

Milestone Date
RFP released March 16, 2026
Proposal submission deadline June 10, 2026
Data collection window May – July 2026
Dataset delivery deadline July 12, 2026
Model training & validation August – September 2026
Public release (dataset + foundation model) October 2026

Steering Committee

Role Name Affiliation
AI Lead Prof. Ruud J.G. van Sloun TU/e
Ultrasound Lead Prof. Jeremy Dahl Stanford University
Industry Lead Dr. Walter Simson NVIDIA

Dataset Format

The OpenH-RF format is implemented using the zea ultrasound toolbox. See the zea documentation for the data specification. The examples/templates/ directories are starting points for a submission — each has a convert.py (data → openh-rf .hdf5), a reconstruct.py (raw channel data → B-mode), and a pipeline.yaml:

Example Modality
echocardiography template Cardiac (phased array): focused transmits, ECG + clinical metadata, annotations
color-doppler template Linear array (plane-wave): B-mode + color Doppler velocity map, ECG, annotations
segmentation template Raw RF data with per-frame segmentation masks and view labels
verasonics template Converting a real Verasonics .mat workspace to OpenH-RF
nv-raw2insights-us/ Worked example on a real public dataset: stream a sample from NV-Raw2Insights-US, convert to OpenH-RF, and beamform raw channel data back to a B-mode
pala-ulm-ratbrain/ Converting PALA rat-brain plane-wave channel data from Zenodo to OpenH-RF format and beamforming to a B-mode
tracked-cirs-phantom/ Converting a tracked CIRS phantom acquisition to OpenH-RF, reconstructing a B-mode, and visualizing the tracked probe trajectory
examples/reconstruct_example.py Reconstructing a B-mode image from raw RF channel data using the default zea pipeline
examples/save_pipeline_example.py Saving a zea processing pipeline as a reusable YAML config

For a submission usually one pipeline.yaml + reconstruct.py pair suffices. If your submission bundles multiple sub-datasets (distinct acquisition types or geometries) as separate folders under one submission root, please give each sub-dataset folder its own pipeline.yaml + reconstruct.py rather than sharing one pair at the root instead of growing branching logic to auto-detect which sub-dataset it's running on. A shared root-level pair is still perfectly fine when the pipeline is identical across all sub-datasets.

Setup

This repo uses uv for environment + dependency management. Install it once: curl -LsSf https://astral.sh/uv/install.sh | sh.

git clone https://github.com/open-h/OpenH-RF
cd OpenH-RF
uv sync
export KERAS_BACKEND=jax
uv run python examples/save_pipeline_example.py

uv sync creates .venv/ and installs dependencies listed in pyproject.toml. Run any script with uv run python <script>.py, or activate the venv with source .venv/bin/activate.

zea is pinned in uv.lock to a specific commit of the moving openh-rf-latest tag, so every clone builds against the same spec. When the spec advances and you want the newer zea, bump the pin with uv lock --upgrade-package zea and commit the updated uv.lock.

Pick a backend / accelerator with extras:

Use case Command
JAX (CPU, default) uv sync
JAX + CUDA uv sync --extra gpu
PyTorch uv sync --extra torch (Linux pip wheels include CUDA by default)
TensorFlow (CPU) uv sync --extra tf
TensorFlow + CUDA uv sync --extra tf-gpu

Set the matching KERAS_BACKEND (jax, torch, or tensorflow) before running examples.

Note

On Windows, use WSL2.

Contact

License

Code in this repository is licensed under the Apache License 2.0. The released dataset (when published) will be licensed under CC BY 4.0.

About

Enabling advanced ultrasound imaging techniques and evaluation through free, openly available and high-quality ultrasound channel capture data.

Resources

Stars

62 stars

Watchers

4 watching

Forks

Releases

Packages

Contributors

Languages