S. Bateni, Z. Emrani, H.Rabbani, A new parallel approach to accelerating edge detection algorithms on GPU for medical images (journal ready to submit)



Real-time image processing is used in a wide variety of applications such as medical care and industrial applications. Real-time medical image processing refers to a continuous processing such as registration, classification and feature extraction of an input image. This field has a potential to illustrate important information which is complementary to the treatment process. This process makes decision making more precise and more reliable. GPU programming is a useful method to improve the speed and the quality of medical image processing. Edge detection is an early stage in most image processing methods to extract features and object segments from a raw input. Canny, Sobel filter, Prewitt filter and Robert’s Cross are some examples of edge detection algorithms that are widely used in image processing and Machine Vision . In this work these algorithms are implemented using CUDA, OpenCL and MATLAB. An existing parallel method for Canny is further modified to run in a fully parallel manner. This is achieved by replacing the Breadth-first Search (BFS) procedure with a parallel method. These algorithms are then compared using a dataset of Optical Coherence Tomography images. The comparison of results shows that the proposed implementation of Canny on GPU using CUDA achieves a speed up of 2x-100x compared to the CPU implementation using OpenCL, MATLAB and the existing implementation on GPU. Comparative results of other famous algorithms are further inspected on all three platforms. Furthermore, a simple implementation of Robert’s Cross using CUDA is proposed.  For the purpose of this paper, a real-time open-source platform (“GPU Edge Detector”) is also developed. This platform contains all the major algorithms written in CUDA and OpenCL and is compatible with all the major operating systems.