medical imaging
ultrasound
Edit model card

Deep learning for speed of sound inversion in ultrasound imaging

This repository contains the code and models for the following papers:

  1. Feigin M, Freedman D, Anthony B. W. A Deep Learning Framework for Single-Sided Sound Speed Inversion in Medical Ultrasound. IEEE Trans Biomed Eng. 2020;67(4):1142-1151. doi:10.1109/TBME.2019.2931195
  2. Feigin M, Zwecker M, Freedman D, Anthony BW. Detecting muscle activation using ultrasound speed of sound inversion with deep learning. In: 2020 42nd Annual International Conference of the IEEE Engineering in Medicine & Biology Society (EMBC). IEEE; 2020:2092-2095. doi:10.1109/EMBC44109.2020.9175237
  3. Feigin M, Freedman D, Anthony BW. Computing Speed-of-Sound from ultrasound: user-agnostic recovery and a new benchmark. IEEE Trans Biomed Eng. 2023; doi:10.1109/TBME.2023.3327147

This repository contain the network code and models for the algorithms and results contained in the paper.

The code was tested under python 3.9. The anaconda environment is defined in environment.yml (setup environment with the command conda env create -f environment.yml)

Data

The dataset used is available on huggingface at https://huggingface.co/datasets/laughingrice/Ultrasound_planewave_sos_inversion

Variables in the files are [sample, layer, x/channel, y/sample] order

  • alpha_coeff -- Alpha coefficient used for simulations, full resolution
  • c0 -- Speed-of-sound used for simulations, full resolution
  • data -- Channel data (first 2048 samples, 64 active channels, first layer with flat plane wave, to match existing physical hardware were used for the results in the paper)
  • dx -- spatial dx value of c0 and alpha_coef
  • f -- temporal sampling frequency of channel data (40MHz)

Models

Model files appearing under the models directory for results presented in the paper with teh matching execution parameters are as follows:

  • tbme_sos.pt -- network weights for the network presented in [1]
    • python . --test_files data/supplamentary_sample.mat --test_fname tbme_sos.h5 --load_ver models/tbme_sos.pt --net_type tbme
  • embc_sos.pt -- network weights for the network presented in [2]
    • python . --test_files data/supplamentary_sample.mat --test_fname embc_sos.h5 --load_ver models/embc_sos.pt --net_type embc
  • tbme2_sos.pt -- network weights for the network presented in [3]
    • python . --test_files data/supplamentary_sample.mat --test_fname tbme2_sos.h5 --load_ver models/tbme2_sos.pt
  • tbme2_sos_rand_gain.pt -- [3] trained to recover the speed-of-sound map with random gain profile and scaling
    • python . --test_files data/supplamentary_sample.mat --test_fname tbme2_sos_gain.h5 --load_ver models/tbme2_sos_rand_gain.pt
  • tbme2_attn.pt -- [3] trained to recover the attenuation coefficient
    • python . --test_files data/supplamentary_sample.mat --test_fname tbme2_attn.h5 --load_ver models/tbme2_attn.pt --label_vars alpha_coeff
  • tbme2_sos_attn.pt -- [3] trained to recover both the speed-of-sound map and attenuation coefficient
    • python . --test_files data/supplamentary_sample.mat --test_fname tbme2_sos_attn.h5 --load_ver models/tbme2_sos_attn.pt --label_vars c0 alpha_coeff
  • tbme2_phase_sos.pt -- [3] trained to recover the speed-of-sound map using the IQ phase component
    • python . --test_files data/supplamentary_sample.mat --test_fname tbme2_phase_sos.h5 --load_ver models/tbme2_phase_sos.pt --phase_inv 1
Downloads last month

-

Downloads are not tracked for this model. How to track
Unable to determine this model's library. Check the docs .

Dataset used to train laughingrice/dl_us_sos_inversion

Collection including laughingrice/dl_us_sos_inversion