An FPGA Implementation of K-Means Clustering for Color Images Based on Kd-Tree
Generate an AI Snapshot to get a quick, structured summary of this paper.
A concise AI-generated summary of the paper will appear here once you click Generate AI Snapshot.
TL;DR
In this paper, an FPGA implementation of k-means clustering for color images is described and the performance for 512 times 512 and 640 times 480 pixel images (24-bit full color RGB) is more than 30 fps.
Abstract
K-means clustering is a very popular clustering technique, which is used in numerous applications. In the simple k-means clustering algorithm, each point in the dataset is compared with centers of all clusters. This comparison is a very time consuming task, particularly for large dataset and large number of clusters. In order to achieve high performance, we need to filter out clusters which have to be compared with each point efficiently. In this paper, we describe an FPGA implementation of k-means clustering for color images. In our implementation, clusters are filtered out using kd-trees which are dynamically generated on the FPGA in each iteration of k-means clustering. With one XC2V6000, the performance for 512 times 512 and 640 times 480 pixel images (24-bit full color RGB) is more than 30 fps, and 20 - 30 fps for 756 times 512 pixel images in average when dividing to 256 clusters
