Font Size: a A A

Parallelization Of Monocular LSD-SLAM Algorithm Based On CUDA

Posted on:2019-12-10Degree:MasterType:Thesis
Country:ChinaCandidate:H WangFull Text:PDF
GTID:2428330569977414Subject:Agricultural Extension
Abstract/Summary:PDF Full Text Request
In order to ensure the safety of robots or unmanned vehicles when they are in obstacle avoidance,in addition to requiring a high calculation accuracy of the SLAM algorithm,it also needs a smaller time complexity in order to be able to provide corresponding data to the decision control system in time.The LSD-SLAM algorithm is a successful application of the monocular direct method in the field of SLAM,it does not rely on feature and can build semi-dense maps for navigation.GPU has powerful computing ability and memory bandwidth,it is good at handing intensive and parallel data.CUDA is a GPU-based general parallel computing architecture from NVIDIA,which can greatly improve program performance.Although the LSD-SLAM algorithm can run on current mainstream CPUs,there is a problem that the LSD-SLAM algorithm is easy to loss track when the camera is moving fast,and the real-time performance of the overall algorithm is not high.To solve this problem,this paper designs and implements accelerated camera tracking program and accelerated depth estimation program of LSD-SLAM algorithm based on CUDA.The main research contents and conclusions are as follows:(1)The parallelism of the overall LSD-SLAM algorithm is analyzed.The camera tracking module and the depth estimation module in the algorithm are taken as the specific objects of this paper.Because the global map optimization module in the algorithm is based on the pose graph-optimization theory and is solved by using the g2 o,the calculation process has strict fore-and-aft dependencies and cannot be parallelized.Although the optimization calculations of the camera tracking module and the depth estimation module also have a fore-and-aft dependence,but for each pixel in each frame of the image to do a series of complex calculations,it is very suitable for optimization using data parallel method.(2)A parallel camera tracking program based on CUDA acceleration was designed and implemented.In this program,graying image and getting the pixels with significant gradients in the camera tracking are transformed into kernel functions and executed on GPU;By doing different block size tests on the image,16?16pixels size is selected as the image block size;the use of texture memory to further optimize the performance of the parallel program,make full use of GPU memory bandwidth.Experimental result show that the result of camera pose for the parallel program is consistent with the original serial method.Compared with the original serial method,the performance of calculating gradients and obtaining pixel points for pose estimation in the parallel program can achieve a speedup of more than 7 times.(3)A parallel depth estimation program based on CUDA acceleration was designed and implemented.In this program,the three steps of polar line's range determination,gray-scale matching,depth calculation and fusion of each pixel with obvious gradient in the process of depth estimation are respectively transformed into corresponding kernel functions and executed on GPU,which greatly shortens the program's calculating time;using shared memory and multiple CUDA streams to optimize the performance of parallel program.Experimental results show that the depth estimation results of scenes in the image for the parallel program are the same as the original serial method;the performance of depth estimation process of each reference frame and the current frame in the parallel program can achieve a speedup of more than 21 times.
Keywords/Search Tags:LSD-SLAM, GPU, CUDA, data parallel, camera tracking, depth estimation, speedup
PDF Full Text Request
Related items