hofmannu / opensaft

Synthetic aperture focusing technique for optoacoustic mesoscopy and scanning acoustic microscopy.
https://hofmannu.github.io/opensaft/
12 stars 0 forks source link
delay-and-sum optoacoustic-imaging optoacoustics reconstruction reconstruction-toolbox saft ultrasound

opensaft

documentation

[!WARNING] This project is currently under development and not yet ready for use. Please check back later.

Volumetric synthetic aperture focusing technique (SAFT) for acoustic resolution optoacoustic microscopy and (soon) scanning acoustic microscopy.

This repository contains an implementation of the synthetic aperture focusing technique purely written in C++ and CUDA. You need a CUDA capable device and Linux installed on your PC to run the fast GPU version of it. A "slow" CPU version is implemented as well. Installation instructions will soon be provided for ArchLinux as well as dataset specifications.

Features

Installation

Required packages:

Package installation command ArchLinux:

pacman -S hdf5 libxrandr libxinerama

Package installation command Ubuntu:

apt-get install libhdf5-serial-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libgl1-mesa-dev

Many other dependencies are directly managed through CMake based on FetchContent.

Cloning and compiling

git clone https://github.com/hofmannu/opensaft
cd opensaft
mkdir build
cd build
cmake .. && make all

The last command will generate an executable called main_exp.

Planned features

Limitations of the underlying model

SAFT induces a strong absorption bias over depth. Absorbance "reconstructed" at different depths can therefore never be compared in a quantitative manner. It also tends to amplify low frequency signals which is the reason why most groups so far reconstruct different frequency bands independently (feature requires implementation). In planes very distant from the focus blurring is unavoidable due to the large shape of the reconstruction arcs.

Documentation

The documentation should be running with vitepress and is compiled into a static website that is also published to github pages. All documentation is written in markdown and can be found in the doc folder.

If this is the first time that you have a look at the documentation, you need to run

npm install

Afterwards, to display the documentation run

npm run docs:dev

To build the static website, run

npm run docs:build

The documentation is published on every merge to main to github pages.

Literature

Known issue

Error while loading files

If there is an error occurring about a version mismatch of the hdf5 library while loading a dataset from a file, it is most likely not the dataset itself that has an outdated format but rather the version of the installed hdf5 library and the library you linked during compilation (e.g. your PC updated the hdf5 library in the meantime). Simply recompile the program and the error should be gone.

Currently not tested against datasets

I have no more access to optoacoustic microscopy images and therefore I am currently relying on simulation data to validate the performance of the algorithm. If you have experimental datasets which I can test the procedure against, feel free to contact me.