Development
rtbf - Real-time beamforming for ultrasound using GPUs
Ultrasound scanners produce large amounts of raw data that are processed into images. In the past, application-specific hardware was used to process and downsample the data into more manageable forms (e.g., apply time delays and sum channels). With recent technological advances, it is now feasible to perform these operations entirely in software at real-time rates using graphics processing units (GPUs). The goal of rtbf is to accelerate software beamforming to enable rapid prototyping of experimental methods and to increase the accessibility of GPU computing for ultrasound researchers.
QUPS: Quick Ultrasound Processing & Simulation
QUPS (pronounced "CUPS") is an abstract, lightweight, readable tool for prototyping pulse-echo ultrasound systems and algorithms. It provides a flexible, high-level representation of transducers, pulse sequences, imaging regions, and scattering media. It provides accelerated implementations of common signal processing functions for pulse-echo ultrasound data as well as cutting edge beamforming algorithms. QUPS can interface with multiple other Ultrasound simulation and processing tools including k-Wave, MUST, FieldII and USTB.
Algorithms
spatcov - Fast spatial coherence estimation
Spatial coherence estimation is a useful tool that is used in a variety of applications, most notably in short-lag spatial coherence (SLSC) imaging and in backscatter tensor imaging (BTI). The spatial coherence of a wavefront describes the similarity between any two points along the wavefront, and can be used to infer properties about the source, such as its anisotropy or the lateral source magnitude. It has been used successfully in SLSC imaging to suppress clutter in a variety of applications including fetal, liver, and cardiac imaging.
nn_bmode - Neural network-based echogenicity estimation for ultrasound B-mode imaging
In pulse-echo ultrasound B-mode imaging, images are reconstructed according to the echogenicity of the medium (i.e., "Brightness"-mode). The standard way of reconstructing images with a transducer array is using delay-and-sum beamforming (DAS): time delays are applied to focus the signal at a point in space, and then the complex array signals are averaged together and the magnitude is displayed. DAS is robust and easy to compute, and is used ubiquitously in medical ultrasound imaging. However, most medical imaging targets (e.g., soft tissue) are composed of diffuse, unresolvable microscopic scatterers. Under DAS, the echoes from these scatterers combine stochastically to produce a strong multiplicative noise called speckle. Speckle results in a pattern with high variance, and is only representative of the underlying echogenicity when averaged over multiple speckles.
We recently demonstrated that a simple fully convolutional neural network can be trained to estimate echogenicity using simulations of transducer array signals. The neural network produces ultrasound images with more accurate echogenicities than DAS, as quantified using normalization-independent log-scale versions of the mean absolute error (MAE), mean squared error (MSE), and multi-scale structural similarity (MS-SSIM) metrics.
bentobox - frequency domain beamformers for ultrasound data written in MATLAB.
Ultrasound beamforming is typically done with the delay and sum (DAS) method, which, in software implementations, involves time-domain interpolation of collected RF data. In imaging sequences that capture more data, such as synthetic aperture acquisitions, an extensive amount of interpolation operations may need to be performed to form a final image. Although these operations can be done quickly using GPUs, some devices, such as point-of-care ultrasound devices, may have little to no GPU compute capability. Frequency-domain beamformers offer alternative image formation methods that have lower computational complexities than DAS. To facilitate easier use and testing of frequency-domain beamforming methods, the bentobox code repository provides MATLAB functions of the monostatic and multistatic synthetic aperture versions of Stolt (or f-k) migration, the range-Doppler algorithm (RDA), and the chirp scaling algorithm (CSA). Basic examples of how to use the functions with Field II simulation data are also provided.