Skip to content

Releases: tue-bmd/zea

v0.1.0a1 (OpenH-RF)

04 Jun 07:06

Choose a tag to compare

v0.1.0a1 (OpenH-RF) Pre-release
Pre-release

This dev pre-release v0.1.0a1 finalizes the new zea data format designed for the OpenH-RF initiative (see #318). Most important changes included the parameter redesign and updates to the zea file format.

Parameter redesign

Simplified parameter handling from loading parameters from file to usage in a zea.Pipeline.

  • zea.Scan was renamed to zea.Parameters
  • A zea.File will store two groups of parameters, scan and probe. These are loaded together into the zea.Parameters class upon loading through zea.File.load_parameters(). See the Getting Started page in the docs for more info.
import zea

path = ...
with zea.File(path) as f:
    data = f.data.raw_data[:] # or one of the other data keys if present
    params = f.load_parameters() # returns a `zea.Parameters` class
    # f.scan and f.probe will still work, but will give you `ScanSpec` and `ProbeSpec` containers.
    # the recommend way is to use `f.load_parameters` to load all parameters at once.

Passing these parameters to a zea.Pipeline is now also simplified. Instead of juggling with both scan and probe objects, you now only manage a single zea.Parameters class.

pipeline = ... # define a `zea.Pipeline` through a config, in code, etc. 
inputs = pipeline.prepare_parameters(parameters) # precomputes and converts to tensors, puts on device
outputs = pipeline(data=data, **inputs)

File redesign

zea.File contents were updated for improved standardization and robustness. While "legacy" files (stored with zea version pre v0.1.0) are still accepted they will be deprecated in the future. There are mainly more standardized fields in the file, but there are also some breaking changes (which are currently handled by the legacy path):

  • Additionally to scan group, we now also store a probe group with parameters belonging specifically to the probe (zea.data.spec.ProbeSpec). This was previously only a probe_name which is now deprecated.
  • data/raw_data is the only flat array still. data/aligned_data, data/beamformed_data, data/envelope_data and data/image are now all hdf5 datasets (zea.data.spec.Map) which have values and coordinates stored such that the extent is known.
  • data/image_sc was removed as a standardized field (as one can specify the coordinates now). Custom fields are still allowed.
  • There is now the possibility to store multiple "tracks" in one file. These are considered transmits from the same acquisition (so share the same probe parameters) but generally require different set of scan parameters and a different processing pipeline after loaded. Think of transmit events belong to a B-mode acquisition and a Doppler acquisition. For more info see multi track files docs.
  • Compression default was changed to lzf from gzip (#396)
  • probe.center_frequency was renamed to probe.probe_center_frequency to distinguish from the transmit scan.center_frequency. Also all names found in scan and probe are required to be none-overlapping as they are merged in zea.Parameters class.
  • Raw data (data/raw_data) can now also be stored as int16 which is a good and efficient default due to the sampling limit of most ADCs. This does mean that you might need to add a casting operation zea.ops.Cast(dtype="float32") at the start of your pipeline to make sure to not get any dtype errors later in the pipeline.

New Features

  • zea.models.speckle2self.Speckle2Self despeckling model was added.
  • from zea.models.flow_matching.FlowMatchingModel generative model was added.
  • Percentile based normalization in zea.ops.Normalize was added.
  • PICMUS, CAMUS and CETUS dataset are now stored with all their metadata (segmentation maps, probe information etc.) as supported by the new zea file format.

What's Changed

Full Changelog: v0.1.0a0...v0.1.0a1

v0.1.0a0 (OpenH-RF)

19 May 11:54

Choose a tag to compare

v0.1.0a0 (OpenH-RF) Pre-release
Pre-release

First dev pre-release v0.1.0a0 which includes the new dataspec for OpenH-RF (see #318).

What's Changed

New Contributors

Full Changelog: v0.0.13...v0.1.0a0

v0.0.13

29 Apr 07:56
0a96de5

Choose a tag to compare

Addition of nuclear diffusion method for cardiac dehazing, see the added notebook example for a usage of zea.func.dehaze_nuclear_diffusion. Also small fix in the JAX docker image.

What's Changed

  • Bump ruff from 0.15.10 to 0.15.11 in the python-packages group across 1 directory by @dependabot[bot] in #326
  • Don't downgrade keras_ops.py when developer uses older Keras version in #325
  • Fix protobuf version mismatch warning when importing zea with JAX in #332
  • Change docker build arg defaults in #334
  • Nuclear diffusion for cardiac ultrasound dehazing by @tristan-deep in #335

Full Changelog: v0.0.12...v0.0.13

v0.0.12

21 Apr 07:23
93ec1fc

Choose a tag to compare

Lot's of dev improvements, but most notably a new dataloader backend, relying on Grain 🌽. While the previous dataloader required a TensorFlow installation, zea.Dataloader is backend agnostic and will work with any of the ML backends. Also try out the new adaptive ultrasound beamformers with:

import zea
zea.ops.Beamform(
    beamformer="generalized_coherence_factor", # or "coherence_factor"
)

API changes

  • New zea.Dataloader class, which is a drop-in replacement for the now deprecated make_dataloader() function.
  • New zea.display.overlay_masks() func to overlay segmentation masks on B-mode images.
  • More Beamformers! zea.ops.CoherenceFactor and zea.ops.GeneralizedCoherenceFactor.

What's Changed

New Contributors

Full Changelog: v0.0.11...v0.0.12

v0.0.11

13 Mar 16:20
4b83401

Choose a tag to compare

Main updates include variable speed-of-sound map support in the differentiable beamformer, and improved Pipeline to config generation. Also addition of the CETUS dataset (zea conversion scripts and support).

API changes

  • zea.Dataset() now does not take the key argument anymore.
  • Removed zea.ops.Merge, zea.ops.Stack and zea.ops.BranchedPipeline operations / pipeline.
  • zea.Config.to_yaml in favor of zea.Config.save_to_yaml (in line with zea.Pipeline.to_yaml)
  • zea.Pipeline.from_path added (in line with zea.Config.from_path and zea.Model.from_path)

What's Changed

New Contributors

Full Changelog: v0.0.10...v0.0.11

v0.0.10

06 Feb 14:43
2a3a9a6

Choose a tag to compare

Lots of smaller updates to pipeline, scan and config objects for improved robustness and speed. As well as the addition of the highlighted features below:

  • Extended data format with new demodulation_frequency and transmit_origins fields. Also added HDF5 compression support.
  • New zea.ops.ApplyWindow operation #218
  • New zea.ops.BandPassFilter operation #223
  • New generative model: Hierarchical VAE with notebook example #217
  • Better 3D imaging support #202
  • Harmonic imaging support #223

What's Changed

Full Changelog: v0.0.9...v0.0.10

v0.0.9

18 Dec 15:07
004c1ab

Choose a tag to compare

Big change to the zea API, with a better structure of zea.ops and zea.func, clearly separating the functional and operational API. Also data conversion scripts for common ultrasound datasets were cleaned up, with better documentation and tests to ensure they are up to date. Added feature is the Delay Multiply and Sum method in #205.

What's Changed

Full Changelog: v0.0.8...v0.0.9

v0.0.8

04 Dec 15:13
6b7cdab

Choose a tag to compare

This release brings several new features along with numerous improvements across documentation, conversion scripts, and core operations 🚀.

Some highlighted features:

  • Added speckle tracking algorithms in #170
  • new zea.ops.Map operation in #176
  • new zea.ops.FirFilter operation in #178
  • Improved conversion scripts of public ultrasound datasets to zea format in #173
  • 3D compatible beamforming in #168
  • Expanding training infrastructure of diffusion models in #167 and #172

What's Changed

New Contributors

Full Changelog: v0.0.7...v0.0.8

v0.0.7

28 Oct 10:26
1baf37e

Choose a tag to compare

Many smaller improvements to the pipeline, beamforming, parameter dependencies, and documentation.
Also fixed the import bug for missing package tkinter and more intuitive import error handling for missing backend installations. All docstrings are now tested with Sphinx doctest.

Some highlighted features:

  • Decomposed Diffusion Sampling in #116
  • Added waveforms and TGC to scan in #125
  • A few funcs were relocated to more appropriate modules, see #126
  • zea.tensor_ops.vmap in #144

Important

Starting from zea v0.0.7, the minimum required Keras version is >=3.12

What's Changed

Full Changelog: v0.0.6...v0.0.7

v0.0.6

08 Oct 11:25
d5883fa

Choose a tag to compare

Improved metrics module and new segmentation and image quality models with corresponding example notebook.

What's Changed

New Contributors

Full Changelog: v0.0.5...v0.0.6