HW/SW Co-design Implementation of Hyperspectral Image Classification Algorithm
MetadataShow full item record
Hyperspectral Imager for Oceanographic Applications (HYPSO) mission is being developed as a part of SmallSat laboratory at NTNU. The goal of the mission is to develop, launch, and operate a series of small satellites specially made for maritime observation and surveillance, e.g. monitoring of algae, plankton, oil spills, arctic ice etc. Satellites will be equipped with Zynq-7000 on-board processing system consisting of ARM-based processor with the hardware programmability of an FPGA. In this thesis, on-board hyperspectral image classification on FPGA is explored. Based on the hyperspectral data collected by the satellites, the detection of algae blooms or other material in the Norwegian sea can processed by classification. Classification aims to distinguish and label material signatures on a given hyperspectral image. This thesis presents implementations of clustering-type unsupervised classification algorithms for hyperspectral images. Two algorithms are implemented in software; a novel segment-based clustering algorithm and a spectral clustering algorithm. The software implementations are implemented in MATLAB R2019a and Python 3.7.3, respectively. Expirements on the algorithms are carried on 8 different publicly available hyperspectral scenes with ground truth data and results are compared with a state-of-the-art segment-based clustering method using NMI and Purity evaluation scores. Results of the software experiments are further analysed prior to FPGA implementation. Based on the software analysis, spectral clustering algorithm is implemented as a novel hardware-software partitioned system on Xilinx Zynq-7000 development platform. The hardware-software co-design is implemented to gain the most efficiency compared to the standalone software solution. FPGA VHDL modules for graph construction are developed and synthesized using Xilinx Vivado Design Suite 2019.1 and HDL Coder R2020a from MathWorks. Eigenvalue and eigenvector decomposition is implemented using Vivado HLS 2019.1 and synthesized using Xilinx Vivado tool. This implementation illustrates productivity benefits of a C-based development flow using high-level synthesis (HLS) optimization methods. Resource utilization, performance, and classification scores are reported for the HW/SW co-design of spectral clustering algorithm.