An increasing amount of medical image data is becoming available for any given patient today. Modern image analysis techniques make it possible to extract and visualize more information from the images. The race for using the increasing amount of image data more effectively is crucial for better diagnostics and therapy in the future. Still, concurrent medical image computing and visualization of both static and dynamic real-time data is computationally expensive. In the efforts toward improving computer assisted radiology and surgery, this may entail that computational demanding research methods that have been assessed to be quantitatively better then existing methods (in terms of accuracy for example) can not be used in a routine clinical setting due to time constraints. Most modern computer systems are heterogeneous in the sense that they consist of several different processors, such as multi-core CPUs and graphic processing units (GPUs). These processors enable parallel processing, which can accelerate many medical image computing tasks significantly. The programming of this hardware is, however, still difficult due to several factors such driver/compiler errors, the need for low-level programming and explicit memory handling. FAST (Framework for Heterogeneous Medical Image Computing and Visualization) is an open-source cross-platform framework with the main goal of making it easier to do efficient processing and visualization of medical images on heterogeneous systems.
- High-level data management – Data objects in FAST represent data, such as an image, on all processors. FAST keeps data coherent across the different storage areas thereby removing the burden of explicit memory handling from the developer.
- Streaming data – Processing pipelines in FAST can handle both static and dynamic/temporal data without any change to the code.
- High performance algorithms – FAST has several high performance parallel OpenCL implementations of common algorithms, such as marching cubes surface extraction, Gaussian smoothing, threshold segmentation and seeded region growing.
- Fast concurrent visualization – Rendering and computation are done in separate threads to ensure smooth responsive visualizations. Several types of visualizations are supported both 3D (mesh, point, line and image slice rendering) and 2D (2D image, image slice and segmentation/label rendering).
- Interoperability – FAST can be integrated with pipelines from the Insight Toolkit (ITK) and the Visualization Toolkit (VTK) to send image data between the frameworks. FAST can also be easily integrated into existing Qt applications.
- Deep learning – FAST is integrated with Google’s TensorFlow library making it possible to create real-time neural network pipelines.
- Open-source – FAST comes with a permissive BSD license which allows anyone to use FAST for both commercial and non-commercial use
- Cross platform – FAST runs on Windows, Linux and Mac OS X and processors from different vendors such as Intel, AMD and NVIDIA.
Download article (The final publication is available at Springer)
FAST is compiled and tested continuously as new code is contributed to its git repository. This is done on three systems with different CPUs, GPUs and operating systems to ensure that the framework is working properly on different platforms and hardware.
Development branch status
|Operating system||OpenCL platform||Status quick build||Status full build|
|Ubuntu Linux 16.04||AMD|
|Ubuntu Linux 16.04||NVIDIA|
|Mac OS X||NVIDIA|