Skip to content

USSR: An UltraSound Sparse Regularization framework

License

Notifications You must be signed in to change notification settings

LTS5/USSR-IUS2017

Repository files navigation

USSR: An UltraSound Sparse Regularization framework

Adrien Besson1, Dimitris Perdios1, Florian Martinez1, Marcel Arditi1, Yves Wiaux2 and Jean-Philippe Thiran1, 3

1Signal Processing Laboratory (LTS5), Ecole Polytechnique Fédérale de Lausanne (EPFL), Switzerland

2Institute of Sensors, Signals and Systems, Heriot-Watt University , UK

3Department of Radiology, University Hospital Center (CHUV), Switzerland

Code used to reproduce the results presented in this paper, accepted at the IEEE International Ultrasonics Symposium 2017

Requirements

  • Linux (code tested on Linux Mint 18.1)
  • Python >= 3.5 (code tested with default Python 3.5.2 and Anaconda 4.2.0)
  • pip (with setuptools and wheel)
  • MATLAB (code tested on MATLAB R2016b and R2017a)
  • git
  • (Optional) NVIDIA GPU with Kepler or newer architecture and its driver (version >= 367.48). The CUDA toolkit is not required to run the code.

Installation

  1. Clone the repository (--recursive is used to download the PICMUS submodule when cloning the repo)

    git clone --recursive https://github.com/LTS5/USSR-IUS2017.git
  2. Enter in the USSR-IUS2017 folder

    cd USSR-IUS2017
  3. (Optional) Create a dedicated Python environment

    • Using Anaconda:

      conda create -n ussr_ius2017 python=3.5
      source activate ussr_ius2017
    • Using pyenv:

      pyvenv /path/to/new/virtual/env . /path/to/new/virtual/env/bin/activate
  4. Install Python dependencies from python_requirements.txt. Depending on your installation, pip may refer to Python 2 (you can verify with pip -V). In that case, use pip3 instead of pip.

    pip install --upgrade pip
    pip install -r python_requirements.txt

Reproduce the results of the paper

  1. Launch the bash file

    • To run the GPU version of the code

      ./ius_results.sh 'GPU'
    • To run the CPU version of the code

      ./ius_results.sh 'CPU'

    The bash file does the following operations:

    • Download the PICMUS datasets (may take some time depending on your Internet connection)
    • Reconstruct the images
    • Compute and export the metrics
    • Generate and export the figures
  2. The folder USSR-IUS2017/results contains the metrics reported in Table I of the paper and the B-mode images displayed on Figure 2 of the paper

Remarks

The GPU code uses NVIDIA CUDA and therefore is only compatible with NVIDIA GPUs. It should support every GPU architecture starting from Kepler (compute capability >= 3.0). The code has been tested on the following architectures:

  • GPUs:
    • NVIDIA Titan X (cc = 6.1)
    • NVIDIA GeForce GTX 1080 Ti (cc = 6.1)
    • NVIDIA GeForce GT 630 (cc = 3.5)
  • CPU:
    • Intel(R) Core(TM) i7-4930K CPU @ 3.40GHz

The CPU version of the code may take a very long time. It took 10 minutes to run 200 iterations of FISTA on the above mentioned CPU.

Developers

License

License for non-commercial use of the software. Please cite the following paper when using the code.