Abstract
Support vector machine (SVM) is considered as one of the most powerful classifiers for hyperspectral remote sensing images. However, it has high computational cost. In this paper, we propose a novel two-level parallel computing framework to accelerate the SVM-based classification by utilizing CUDA and OpenMP. For a binary SVM classifier, the kernel function is optimized on GPU, and then a second-order working set selection (WSS) procedure is employed and optimized especially for GPU to reduce the cost of communication between GPU and host. In addition to the parallel binary SVM classifier on GPU as data-processing level parallelization, a multiclass SVM is addressed by a 'one-against-one' approach in OpenMP, and several binary SVM classifiers are run simultaneously to conduct task-level parallelization. The experimental results show that the solver in this framework offered a speedup of 18.5× over the popular LIBSVM software in the training process for data with 200 bands, 13 classes, and 95 597 training samples, and 81.9× in the testing process for data with 103 bands, 9 classes, 1892 support vectors (SVs), and 42 776 testing samples.
| Original language | English |
|---|---|
| Article number | 7219385 |
| Pages (from-to) | 4647-4656 |
| Number of pages | 10 |
| Journal | IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing |
| Volume | 8 |
| Issue number | 10 |
| DOIs | |
| State | Published - Oct 2015 |
| Externally published | Yes |
Keywords
- Classification
- hyperspectral data
- multicore processing
- support vector machines (SVMs)