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 ( --recursiveis used to download the PICMUS submodule when cloning the repo)git clone --recursive https://github.com/LTS5/USSR-IUS2017.git 
- 
Enter in the USSR-IUS2017foldercd 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,pipmay refer to Python 2 (you can verify withpip -V). In that case, usepip3instead 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/resultscontains 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 ([email protected]): CUDA and C/C++
- Dimitris Perdios ([email protected]): Python interface
- Adrien Besson ([email protected]): Matlab interface
License for non-commercial use of the software. Please cite the following paper when using the code.