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
- 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.
-
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
-
Enter in the
USSR-IUS2017
foldercd USSR-IUS2017
-
(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
-
-
Install Python dependencies from
python_requirements.txt
. Depending on your installation,pip
may refer to Python 2 (you can verify withpip -V
). In that case, usepip3
instead ofpip
.pip install --upgrade pip pip install -r python_requirements.txt
-
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
-
-
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
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.
- Florian Martinez (florian.martinez@epfl.ch): CUDA and C/C++
- Dimitris Perdios (dimitris.perdios@epfl.ch): Python interface
- Adrien Besson (adrien.besson@epfl.ch): Matlab interface
License for non-commercial use of the software. Please cite the following paper when using the code.