Skip to main content
Log in

An FPGA implementation of real-time K-means clustering for color images

  • Special Issue
  • Published:
Journal of Real-Time Image Processing Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18

Similar content being viewed by others

References

  1. Annotated Computer Vision Bibliography, http://iris.usc.edu/Visoin-Notes/bibliography/ keyword/indexk.html

  2. 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)

  3. 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)

  4. 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)

    Article  Google Scholar 

  5. 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)

    Article  Google Scholar 

  6. Maruyama, T.: Real-time K-Means Clustering for Color Images on Reconfigurable Hardware. International Conference on Pattern Recognition, pp. 816–819 (2006)

  7. 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)

  8. Khan, S.S., Ahmad, A.: Cluster center initialization algorithm for K-means clustering. Pattern Recogn. Lett. 25(11), 1293–1302 (2004)

    Article  Google Scholar 

  9. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tsutomu Maruyama.

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11554-007-0055-8

Keywords

Navigation