FAST: framework for heterogeneous medical image computing and visualization
Computer systems are becoming increasingly heterogeneous in the sense that they consist of different processors, such as multi-core CPUs and graphic processing units. As the amount of medical image data increases, it is crucial to exploit the computational power of these processors. However, this is currently difficult due to several factors, such as driver errors, processor differences, and the need for low-level memory handling. This paper presents a novel FrAmework for heterogeneouS medical image compuTing and visualization (FAST). The framework aims to make it easier to simultaneously process and visualize medical images efficiently on heterogeneous systems.
FAST uses common image processing programming paradigms and hides the details of memory handling from the user, while enabling the use of all processors and cores on a system. The framework is open-source, cross-platform and available online.
Code examples and performance measurements are presented to show the simplicity and efficiency of FAST. The results are compared to the insight toolkit (ITK) and the visualization toolkit (VTK) and show that the presented framework is faster with up to 20 times speedup on several common medical imaging algorithms.
FAST enables efficient medical image computing and visualization on heterogeneous systems. Code examples and performance evaluations have demonstrated that the toolkit is both easy to use and performs better than existing frameworks, such as ITK and VTK.
KeywordsGPU Parallel Medical Image Computing Visualization Heterogeneous OpenCL
This project has received funding from the European Union’s Seventh Framework Programme for research, technological development and demonstration under Grant Agreement No. 610425. The hardware used in this project was funded by the MedIm (Norwegian Research School in Medical Imaging) Travel and Research Grant.
Conflict of interest
Erik Smistad, Mohammadmehdi Bozorgi and Frank Lindseth declare that they have no conflict of interest.
- 2.Beare R, Micevski D, Share C, Parkinson L, Ward P, Goscinski W, Kuiper M (2011) CITK - an architecture and examples of CUDA enabled ITK filters. Insight J 2011(Jan-June):1–8Google Scholar
- 3.Besl PJ, McKay ND (1992) A method for registration of 3-D shapes. IEEE Trans Pattern Anal Mach Intell 14(2):239–256Google Scholar
- 4.Bozorgi M, Lindseth F (2014) GPU-based multi-volume ray casting within VTK for medical applications. Int J Comput Assist Radiol Surg. doi: 10.1007/s11548-014-1069-x
- 5.Catch. C++ automated test cases in headers. https://github.com/philsquared/Catch/. Accessed 10 Oct 2014
- 6.Consortium for open medical image computing. Grand challenges in biomedical image analysis. http://grand-challenge.org/. Accessed 25 Nov 2014
- 8.Gonzalez RC, Woods RE (2008) Digital image processing, 3rd edn. Pearson Prentice Hall, New JerseyGoogle Scholar
- 9.Ibanez L, Schroeder W (2004) The ITK software guide, 2.4th edn. Kitware, Chapel HillGoogle Scholar
- 10.Kitware. Insight toolkit (ITK). http://itk.org/. Accessed 18 Aug 2014
- 11.Kitware. ITK release 4 GPU acceleration. http://www.itk.org/Wiki/ITK/Release_4/GPU_Acceleration/. Accessed 10 Oct 2014
- 12.Kitware. Visualization toolkit (VTK). http://www.vtk.org/. Accessed 18 Aug 2014
- 13.Koenig M, Spindler W, Rexilius J, Jomier J, Link F, Peitgen H-O (2006) Embedding VTK and ITK into a visual programming and rapid prototyping platform. In: Proceedings of SPIE, vol. 6141, pp 61412O–61412O-11Google Scholar
- 14.Membarth R, Hannig F, Teich J, Körner M, Eckert W (2012) Generating device-specific GPU code for local operators in medical imaging. In: Proceedings of the 26th IEEE international parallel & distributed processing symposium (IPDPS), number section IIIGoogle Scholar
- 15.MeVis Medical Solutions AG. MeVisLab. http://www.mevislab.de. Accessed 26 Jan 2015
- 17.Neuroimaging Informatics Technology Initiative. NIfTI-1 data format. http://nifti.nimh.nih.gov/. Accessed 26 Jan 2015
- 18.NVIDIA Corporation. CUDA. http://developer.nvidia.com/cuda-zone/. Accessed 26 Jan 2015
- 19.Owens J, Houston M, Luebke D, Green S, Stone J, Phillips J (2008) GPU computing. In: Proceedings of the IEEE 96(5):879–899Google Scholar
- 21.Schroeder W, Martin K, Lorensen B (2006) Visualization toolkit: an object-oriented approach to 3D graphics, 4th edn. Kitware, Chapel HillGoogle Scholar
- 22.Smistad E, Elster AC, Lindseth F (2012) Real-time gradient vector flow on GPUs using OpenCL. J Real-Time Image Process, 1–8Google Scholar
- 23.Smistad E, Elster AC, Lindseth F (2012) Real-Time Surface Extraction and Visualization of Medical Images using OpenCL and GPUs. Norsk informatikkonferanse, 141–152. Akademika forlagGoogle Scholar
- 26.Smistad E, Lindseth F (2014) A new tube detection filter for abdominal aortic aneurysms. In: Proceedings of MICCAI 2014 workshop on abdominal imaging: computational and clinical applicationsGoogle Scholar
- 27.Smistad E, Lindseth F (2014) Multigrid gradient vector flow computation on the GPU. J Real-Time Image ProcessGoogle Scholar
- 28.Smistad E, Lindseth F (2014) Real-time tracking of the left ventricle in 3D ultrasound using kalman filter and mean value coordinates. In: Proceedings MICCAI challenge on echocardiographic three-dimensional ultrasound segmentation (CETUS), pp 65–72, BostonGoogle Scholar
- 29.The Khronos Group. OpenCL. http://www.khronos.org/opencl/. Accessed 26 Jan 2015