Font Size: a A A

Research On SIFT Algorithm Under Spaceborne GPU Array

Posted on:2020-05-08Degree:MasterType:Thesis
Country:ChinaCandidate:J ZhengFull Text:PDF
GTID:2392330596475416Subject:Navigation, guidance and control
Abstract/Summary:PDF Full Text Request
The Scale-invariant feature transform is a feature with multiple scales and illumination invariance and rotation invariance.In remote sensing image processing,image matching based on SIFT features is stable and can match the matching between multi-scale and multi-sensor images.However,the SIFT feature has the drawback of high computational complexity,which limits its application in some scenarios.Since NVIDIA introduced the CUDA(Compute Unified Device Architecture)parallel computing platform,it has reduced the difficulty of programming on the Graphics Processing Unit(GPU),and more and more researchers and engineers use the GPU to accelerate the computational problems encountered.In this paper,the satellite in-orbit intelligent processing design concept for remote sensing missions is designed to meet the challenges of space mission requirements and on-orbit data processing.The parallel acceleration scheme of SIFT algorithm is designed for the spaceborne micro-supercomputing center of remote sensing satellites.This paper uses OpenMP technology and CUDA technology to achieve SIFT algorithm acceleration under multi-GPU.Firstly,the SIFT algorithm can be analyzed in parallel,and the task assignment of the host and device is given in the CPU-GPU mode.At the same time,data partitioning under multi-GPU and parallelization are given.Parallelization is then performed for the steps with a large amount of computation in the SIFT algorithm.For Gaussian filtering,the two-dimensional Gaussian filtering is decomposed into Gaussian filtering for the first row,Gaussian filtering for the column,and GPU acceleration based on this.In the row filtering phase,the thread bundle is used to share register data,reduce memory usage,and store intermediate results in shared memory in a transposed manner,thereby reducing access to global memory while avoiding bank conflicts.In the extreme point detection optimization,a strategy similar to Gaussian separation filtering is adopted,and atomic operations are introduced to ensure the correctness of each comparison.In the optimization of feature point generation,the shared memory is introduced to reduce the conflict caused by atomic operations,improve the parallelization rate of the program,and bind the data to the texture memory to increase the cache hit of the program.Finally,based on the single GPU SIFT algorithm,the multi-GPU acceleration of the SIFT algorithm is realized,and the CUDA stream is used to overlap the data copy of multiple data blocks and the execution of the kernel function,thereby reducing the running time of the program.The implementation of this paper is tested on the Jetson tx2 hardware platform.The number of feature points under single GPU calculation is about 8 percent lower than the number of feature points under CPU calculation,but the speedup ratio is above 82,and with The image resolution increases and increases.The number of feature points calculated by the two GPUs is basically the same as the number of feature points under the single GPU calculation,and the acceleration ratio is about 1.5 times.In this paper,the SIFT algorithm implemented in multiple GPUs has a significant overall acceleration effect,and can be accelerated at small resolutions and large resolutions.
Keywords/Search Tags:GPU, CUDA, OpenMP, Parallel Computing, SIFT
PDF Full Text Request
Related items