一种基于GPU的快速激光点云三维解算方法技术

技术编号:24940774 阅读:41 留言:0更新日期:2020-07-17 21:33
本发明专利技术涉及激光雷达领域,其公开了一种基于GPU的快速激光点云三维解算方法,解决传统技术中的解算方案极度依赖CPU来完成而带来的解算时间长、效率低的问题。本发明专利技术对点云解算的过程进行重构,将数据准备和逻辑运算单独在一个循环中进行,将所有的数据都处理完毕后,再将数据分批存入数组中,将每个数组中的所有数据发送到GPU上进行数据运算,运算完毕后再统一拷贝回内存,最后统一保存。由于将耗时较多的数据运算采用GPU加速,GPU通过大量的运算单元同时运算,减少了时间消耗,大大提高激光点云三维解算的处理效率。

【技术实现步骤摘要】
一种基于GPU的快速激光点云三维解算方法
本专利技术涉及激光雷达领域,具体涉及一种基于GPU的快速激光点云三维解算方法。
技术介绍
激光点云的三维解算是无人机航测领域中的基础技术,需要对来自激光雷达的原始雷达数据和来自惯导系统的POS数据融合解析,将雷达坐标系下的激光点数据加上POS信息进行坐标转换,根据GPS时间确定每个三维激光点在地球坐标系下的位置,再加以适当的条件过滤噪点,最终生成出完整的点云文件。当前的解算方法极度依赖中央处理器(CentralProcessingUnit,CPU)来完成该过程的逻辑控制和数据运算,但CPU作为计算机最重要的设备,其功能主要是解释计算机指令以及处理计算机软件中的数据,针对点云解算中大规模的数据运算则无法发挥出最大的效率。正是由于激光点数据量非常庞大,CPU并不擅长处理大规模的重复性数据运算,因此解算过程往往耗费了大量的时间,增加了时间成本。图形处理器(GraphicsProcessingUnit,GPU)是一种专门在个人电脑、工作站、移动设备上做图像和图形相关运算工作的微处理器。如果利用GPU强大的图形处理运算能力来进行激光点云三维解算可以提升解算效率,然而,由于点云解算过程较为复杂,逻辑运算与数据运算互相交缠,若直接采取硬件加速,将整个解算过程都移植到GPU上进行,速度提升也并不明显。
技术实现思路
本专利技术所要解决的技术问题是:提出一种基于GPU的快速激光点云三维解算方法,解决传统技术中的解算方案极度依赖CPU来完成而带来的解算时间长、效率低的问题。本专利技术解决上述技术问题采用的技术方案是:一种基于GPU的快速激光点云三维解算方法,包括:a.CPU读取雷达数据和POS数据,并进行预处理和完成逻辑判断;b.CPU将经过步骤a处理后的数据分批存至数组中;c.CPU将数组中的数据拷贝至GPU;d.GPU接收到数据后开始运算,同时,CPU执行步骤b进行下一批数据的处理;e.GPU运算结束后将运算结果拷贝回内存,然后CPU执行步骤c;f.循环步骤a-e直至所有数据解算完毕。具体的,步骤a中,所述预处理为数据解析和数据准备过程,在解析时,数据按照时间顺序进行排列,并将数据质量较差的点在运算前剔除。具体的,步骤a中,所述逻辑判断包括:根据选择的滤波条件进行判断,过滤掉不关心的位置或者噪点。具体的,步骤b中,所述数组的大小取决于用户计算机上GPU的核心数目与缓存大小,尽量使每次调用时所有的核心都参与了运算并保证计算过程中的数据总量不超出GPU缓存。具体的,步骤d中,GPU接收到数据后在其多个运算单元中并行运算。具体的,步骤f中,在所有数据都解算完毕后,CPU将内存中的运算结果统一保存。本专利技术的有益效果是:通过优化整个解算过程的数据流分布,将解算过程中最耗时的数据运算部分与数据准备、逻辑控制等其他模块分离,保证程序高内聚低耦合,数据准备和逻辑控制由CPU实现,而数据运算采用GPU加速,GPU通过大量的运算单元同时运算,减少了时间消耗,大大提高激光点云三维解算的处理效率。具体实施方式传统技术中针对激光点云三维解算是采用CPU在一个大循环中对每个点进行逻辑判断过滤掉噪点,再进行运算得到结果,最后将该点的计算结果保存,其存在解算效率低的问题。本专利技术为了解决此问题,对点云解算的过程进行重构,将数据准备和逻辑运算单独在一个循环中进行,将所有的数据都处理完毕后,再将数据分批存入数组中,将每个数组中的所有数据发送到GPU上进行数据运算,运算完毕后再统一拷贝回内存,最后统一保存。通过本专利技术的上述方式可以将逻辑判断、数据保存与大规模的数据计算分离,将数据计算部分的代码用CUDA实现,即在GPU上进行数据计算。如此,在解算开始时先利用CPU完成较为复杂的逻辑判断,当数据准备好后,将输入数据拷贝至GPU,因为GPU可以在多个运算单元中并行运算,可以节省下大量的时间,运算结束后再将结果拷贝回内存,将多个点的结果同时保存,相对于单点保存也减少了系统调用的时间,从而提高效率。在具体实现上,本专利技术中的基于GPU的快速激光点云三维解算方法包括以下步骤:(1)CPU首先读取原始雷达数据和POS数据,完成数据预处理,即数据解析和数据准备过程。解析过程中,数据按照时间顺序进行排列,并将数据质量较差的点在运算前剔除,因为点云数据中部分点可能会有数据缺失,提前过滤掉这些点避免后续计算出现异常。(2)CPU根据选择的滤波条件进行判断,过滤掉不关心的位置或者噪点,避免噪点参与到运算,造成资源浪费。(3)CPU将处理好的数据分批存到数组中,再将数组中的数据拷贝至GPU;GPU接收到数据后开始运算,与此同时在CPU上进行下一次的数据准备,两边异步进行,没有等待,以节省时间。(4)GPU上的运算结束后将运算结果拷贝回内存,与此同时,CPU已将下一次的数据准备好,立即将新的输入数据拷贝至GPU上继续运算。(5)循环(3)、(4)两步直至所有数据都解算完毕。最后由CPU将内存中的运算结果整体保存,相较于每个点单独保存减少了系统调用时间。综上,本专利技术将解算过程中最耗时的数据运算部分与数据准备、逻辑控制等其他模块分离,保证程序高内聚低耦合,方便将数据运算移植到加速平台上加速。经过实践,将数据运算部分用CUDA实现后移植到GPU平台加速,相较于在CPU上实现解算,数据运算时间减少了50%以上,从而大大提升了整体解算的效率。本文档来自技高网...

【技术保护点】
1.一种基于GPU的快速激光点云三维解算方法,其特征在于,包括以下步骤:/na.CPU读取雷达数据和POS数据,并进行预处理和完成逻辑判断;/nb.CPU将经过步骤a处理后的数据分批存至数组中;/nc.CPU将数组中的数据拷贝至GPU;/nd.GPU接收到数据后开始运算,同时,CPU执行步骤b进行下一批数据的处理;/ne.GPU运算结束后将运算结果拷贝回内存,然后CPU执行步骤c;/nf.循环步骤a-e直至所有数据解算完毕。/n

【技术特征摘要】
1.一种基于GPU的快速激光点云三维解算方法,其特征在于,包括以下步骤:
a.CPU读取雷达数据和POS数据,并进行预处理和完成逻辑判断;
b.CPU将经过步骤a处理后的数据分批存至数组中;
c.CPU将数组中的数据拷贝至GPU;
d.GPU接收到数据后开始运算,同时,CPU执行步骤b进行下一批数据的处理;
e.GPU运算结束后将运算结果拷贝回内存,然后CPU执行步骤c;
f.循环步骤a-e直至所有数据解算完毕。


2.如权利要求1所述的一种基于GPU的快速激光点云三维解算方法,其特征在于,
步骤a中,所述预处理为数据解析和数据准备过程,在解析时,数据按照时间顺序进行排列,并将数据质量较差的点在运算前剔除。


3.如权利要求1所述的一种基于GPU...

【专利技术属性】
技术研发人员:李佳隆苟娟张宁波
申请(专利权)人:成都纵横融合科技有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1