Skip to content

Ahmed-Hajhamed/CUDA-Accelerated-Parallel-Image-Segmentation

 
 

Repository files navigation

CUDA-Parallelized-KMeans-Segmentation

Overview

This project implements multiple image segmentation and clustering algorithms using both CPU and GPU acceleration with CUDA. The main focus of the project is optimizing the performance of image segmentation in general, and brain tumor segmentation specifically, using parallel computing techniques and CUDA memory models. The project includes several clustering approaches such as:

  • Basic(Lloyd) K-Means
  • Mini-Batch K-Means
  • Tiled K-Means
  • Fuzzy C-Means

The Lloyd K-Means implementation is the fastest optimized GPU implementation in the project achieving 0.86 Dice Score and 10 times faster than the CPU implementation.

Features

  • CUDA-based image segmentation
  • CPU/GPU execution modes
  • Different number of centoids
  • Modular algorithm selection
  • Support for RGB and grayscale images
  • Measuring Runtime

Technologies Used

  • CUDA
  • C++
  • OpenCV
  • Parallel Programming Concepts

Requirements

  • CUDA Toolkit
  • OpenCV
  • NVIDIA GPU
  • C++ Compiler

Example Results

Lloyd K-Means Segmentation

UI Screenshot

Mini-Batch K-Means Segmentation

UI Screenshot

Tiled K-Means Segmentation

UI Screenshot

Fuzzy C-Means Segmentation

UI Screenshot

Contributors

Ali Younis
Ali Younis
Louai Khaled
Louai Khaled
Ahmed Mahmoud
Ahmed Mahmoud
Ahmed Hajhamed
Ahmed Hajhamed
Zeyad Wail
Zeyad Wail

About

The main focus of the project is optimizing the performance of image segmentation in general, and brain tumor segmentation specifically, using parallel computing techniques and CUDA memory models.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Jupyter Notebook 87.8%
  • C 6.2%
  • Cuda 4.3%
  • C++ 1.7%