Algorithmic transformations in the implementation of K- means clustering on reconfigurable hardware

In mapping the k-means algorithm to FPGA hardware, we examined algorithm level transforms that dramatically increased the achievable parallelism. We apply the k-means algorithm to multi-spectral and hyper-spectral images, which have tens to hundreds of channels per pixel of data. K-means is an iterative algorithm that assigns assigns to each pixel a label indicating which of K clusters the pixel belongs to. K-means is a common solution to the segmentation of multi-dimensional data. The standard software implementation of k-means uses floating-point arithmetic and Euclidean distances. Floating point arithmetic and the multiplication-heavy Euclidean distance calculation are fine on a general purpose processor, but they have large area and speed penalties when implemented on an FPGA. In order to get the best performance of k-means on an FPGA, the algorithm needs to be transformed to eliminate these operations. We examined the effects of using two other distance measures, Manhattan and Max, that do not require multipliers. We also examined the effects of using fixed precision and truncated bit widths in the algorithm. It is important to explore algorithmic level transforms and tradeoffs when mapping an algorithm to reconfigurable hardware. A direct translation of the standard software implementation of k-means would result in a very inefficient use of FPGA hardware resources. Analysis of the algorithm and data is necessary for a more efficient implementation. Our resulting implementation exhibits approximately a 200 times speed up over a software implementation.

[1]  Maya Gokhale,et al.  Stream-oriented FPGA computing in the Streams-C high level language , 2000, Proceedings 2000 IEEE Symposium on Field-Programmable Custom Computing Machines (Cat. No.PR00871).

[2]  Vittorio Castelli,et al.  On the exponential value of labeled samples , 1995, Pattern Recognit. Lett..

[3]  Robert A. Schowengerdt,et al.  Techniques for image processing and classification in remote sensing , 1983 .

[4]  Patrick M. Kelly,et al.  Preprocessing remotely sensed data for efficient analysis and classification , 1993, Defense, Security, and Sensing.

[5]  Bruce A. Draper,et al.  Compiling and optimizing image processing algorithms for FPGAs , 2000, Proceedings Fifth IEEE International Workshop on Computer Architectures for Machine Perception.

[6]  David A. Landgrebe,et al.  Statistics enhancement in hyperspectral data analysis using spectral-spatial labeling, the EM algorithm, and the leave-one-out covariance estimator , 1998, Optics & Photonics.

[7]  James Theiler,et al.  Design issues for hardware implementation of an algorithm for segmenting hyperspectral imagery , 2000, SPIE Optics + Photonics.

[8]  James Theiler,et al.  Clustering to improve matched filter detection of weak gas plumes in hyperspectral thermal imagery , 2001, IEEE Trans. Geosci. Remote. Sens..

[9]  Alex K. Jones,et al.  A MATLAB compiler for distributed, heterogeneous, reconfigurable computing systems , 2000, Proceedings 2000 IEEE Symposium on Field-Programmable Custom Computing Machines (Cat. No.PR00871).