For my Parallel and Distributed Systems class, my partners and I chose to parallelize a superpixel segmentation algorithm called Simple Linear Iterative Clustering, or SLIC. We compared the runtime and boundary recall of our parallel implementation to the sequential implementation and found some interesting results!
Below is an example of an image with superpixels boundaries superimposed onto it (shown in yellow)


Superpixelation involves grouping pixels in a way that captures some of the perceptual and intuitive meaning of an image. Superpixels are a useful tool for many computer vision problems including image segmentation and object recognition because superpixelation can be used as a preprocessing step that both reduces dimensionality and identifies more meaningful features. A good superpixel algorithm efficiently produces superpixels that respect object boundaries, are of approximately equal size, and are compact -- this means that superpixel edges fall along the edges of objects in the image, there is a roughly constant number of pixels per superpixel, and that each superpixel is relatively round. We implement a parallelized version of the simple linear iterative clustering (SLIC) algorithm for superpixelation with the goal of improving time efficiency and possibly scaling to larger image sizes. SLIC uses a $k$-means clustering approach which iteratively updates the assignment of pixels to superpixels based on the distance between the pixel and the superpixel centers. It is a good candidate algorithm for GPU parallelization because it has subparts that can computed independently by pixel or by superpixel. Although our results show that our parallelized implementation is 4-5 times slower than the sequential SLIC, we achieve nearly the same accuracy using metrics calculated using UC Berkeley's Segmentation Benchmarks - especially as the number of superpixels increase.

-- Link to paper --

About Me

I am a computer science and cognitive science double major at Swarthmore College graduating in the Spring of 2020.
In addition, I am also fascinated by psychology, neuroscience, and nutrition. In my free time, I like to play baksetball and workout, cook, make/listen to music, and go chasing sunsets. I play many instruments, but mainly the piano and GuZheng. My favorite classical pieces include Grades etudes de Paganini by Franz Liszt, all three of Rachmaninioff's Piano Concertos, and Chopin Scherzo No.3 in C Sharp Minor, Op.39.

In computer science, I am passionate about parallel and distributed systems and machine learning applications. In cognitive science, I am fascinated by the microbiome of the gut, the psychology of language, as well as physiological psychology.

On a journey to quench my thirst for knowledge