Abstract
K-means clustering is a very popular clustering technique, which is used in numerous applications. In the k-means clustering algorithm, each point in the dataset is assigned to the nearest cluster by calculating the distances from each point to the cluster centers. The computation of these distances is a very time-consuming task, particularly for large dataset and large number of clusters. In order to achieve high performance, we need to reduce the number of the distance calculations for each point efficiently. In this paper, we describe an FPGA implementation of k-means clustering for color images based on the filtering algorithm. In our implementation, when calculating the distances for each point, clusters which are apparently not closer to the point than other clusters are filtered out using kd-trees which are dynamically generated on the FPGA in each iteration of k-means clustering. The performance of our system for 512 × 512 and 640 × 480 pixel images (24-bit full color RGB) is more than 30 fps, and 20–30 fps for 756 × 512 pixel images in average when dividing to 256 clusters.
Similar content being viewed by others
References
Annotated Computer Vision Bibliography, http://iris.usc.edu/Visoin-Notes/bibliography/ keyword/indexk.html
Estlick, M., Leeser, M., Theiler, J., Szymanski, J.J.: Algorithmic transformations in the implementation of K-means clustering on reconfigurable hardware. International Symposium on Field Programmable Gate Arrays, pp. 103–110 (2001)
Filho, A.G.S., Frery, A.C., Araujo, C.C., Alice, H., Cerqueira, J., Loureiro, J.A., Lima, M.E., Oliveira, M.G.S., Horta, M.M.: Hyperspectral Images Clustering on Reconfigurable Hardware Using the K-Means Algorithm. International Symposium on Integrated Circuits and Systems Design, pp. 99–104 (2003)
Maliatski, B., Yadid-Pecht, O.: Hardware-driven adaptive k-means clustering for real-time video imaging. IEEE Trans. Circuits Syst. Video Technol. 15(1), 164–166 (2005)
Kanungo, T., Mount, D.M., Netanyahu, N.S., Piatko, C.D., Silverman, R., Yu, A.Y.: An efficient k-means clustering algorithm: analysis and implementation. IEEE Trans Pattern Anal. Mach. Intell. 24(7), 881–892 (2002)
Maruyama, T.: Real-time K-Means Clustering for Color Images on Reconfigurable Hardware. International Conference on Pattern Recognition, pp. 816–819 (2006)
Saegusa, T., Maruyama, T.: An FPGA Implementation of K-means Clustering for Color Images based on Kd-tree. International Conference on Field-programmable Logic and Applications, pp. 567–572 (2006)
Khan, S.S., Ahmad, A.: Cluster center initialization algorithm for K-means clustering. Pattern Recogn. Lett. 25(11), 1293–1302 (2004)
Redmond, S.J., Heneghan, C.: A method for initialising the K-means clustering algorithm using kd-trees. Pattern Recogn. Lett. 28(8):965–973 (2007)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Saegusa, T., Maruyama, T. An FPGA implementation of real-time K-means clustering for color images. J Real-Time Image Proc 2, 309–318 (2007). https://doi.org/10.1007/s11554-007-0055-8
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11554-007-0055-8