Coder Social home page Coder Social logo

tubbz-alt / refocus Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nbottenus/refocus

0.0 1.0 0.0 395 KB

Code for Retrospective Encoding For Conventional Ultrasound Sequences - recover the complete data set from focused (and other) beams

License: MIT License

MATLAB 43.91% Python 56.09%

refocus's Introduction

Retrospective Encoding For Conventional Ultrasound Sequences (REFoCUS)

Decode a set of focused transmit ultrasound beams into the "complete data set", indexed by individual transmit elements and receive channels. Algorithms are provided for both "phased" and "walking" aperture sequences.

This decoding has many benefits for image quality:

  • Improved electronic signal-to-noise ratio
  • Synthetic transmit focusing, providing diffraction-limited resolution at all depths
  • Uniform field response from the recovered diverging waves (as opposed to focal gain at a fixed depth)

The recovered complete data set also provides the potential for:

  • Transmit apodization
  • Sound speed estimation
  • Phase aberration correction
  • Spatial coherence calculation
  • Other aperture-domain processing

This code is based on the algorithms proposed in:

Ali, R.; Dahl, J.; Bottenus, N. "Extending Retrospective Encoding For Robust Recovery of the Multistatic Dataset". IEEE Transactions on Ultrasonics, Ferroelectrics, and Frequency Control, vol. 67, no. 5, pp. 943-956, Dec. 2019.

You can reference a static version of this code by its DOI number: DOI

The original (adjoint) REFoCUS algorithm was proposed in:

Bottenus, N. "Recovery of the complete data set from focused transmit beams". IEEE Transactions on Ultrasonics, Ferroelectrics, and Frequency Control, vol. 65, no. 1, pp. 30-38, Jan. 2018.

If you use the code/algorithm for research, please cite the above papers as appropriate. For commercial use, please contact the authors to discuss the related IP.

Sample results

Simulated data

Simulated

Experimental data

Experimental

The code

The REFoCUS algorithm is implemented in both MATLAB and Python. Example code is given to run several variants of the algorithm for comparison. Note that the beamforming and spatial coherence code are not optimized for speed and are just provided for convenience.

Please download the sample data under the releases tab for this repository.

REFoCUS code

MATLAB

Python

Several options for inversion are provided to suit different applications.

  • Adjoint - with or without ramp filter
  • Tikhonov regularization - adjustable regularization
  • Regularized singular value decomposition - adjustable regularization
  • Truncated singular value decomposition - adjustable threshold

Example code

There are three subdirectories in the MATLAB and Python subdirectories. The MATLAB versions are linked below:

  1. FieldIISimulatedExample - Example with simulated (Field II) data
  1. ExperimentalExample
  1. kSpaceSimulations

Sample data

  • DATA_FocTx_20190323_205714.mat - Experimental data using an L12-3v transducer and Verasonics ultrasound scanner. Data file contains the apodization and delay description of the walking aperture, the receive aperture positions, sample time vector, and raw channel data.

  • multistaticDataFieldII.mat - Field II simulated data and parameters for the "complete" or "multistatic" data set, with individual element transmissions.

refocus's People

Contributors

nbottenus avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.