基于GPU加速的实时三维测量系统及方法技术方案

技术编号:27122101 阅读:19 留言:0更新日期:2021-01-25 19:34
本发明专利技术公开一种基于GPU加速的实时三维测量系统及方法,系统由CPU、GPU、PC机内存和GPU外部显示存储器所组成,PC机内存的数据输出端与CPU的数据输入端连接,以将系统参数和图像数据发送至CPU,CPU与GPU信号相连,由CPU将系统参数和图像数据转送至GPU,并启动核函数,GPU外部显示存储器与GPU信号相连,以储存系数参数和图像数据,GPU的数据输出端与PC机内存的数据输入端连接,图像数据通过核函数对其像素点进行并行计算后,将计算得到的三维数据传送回PC机内存中进行保存,紧接着GPU提示CPU传入新像素点的数据。本发明专利技术可有效提高全时间分辨率、全空间分辨率的动态物体三维面测量的计算效率。算效率。算效率。

【技术实现步骤摘要】
基于GPU加速的实时三维测量系统及方法


[0001]本专利技术涉及动态物体三维计算
,具体涉及一种基于GPU加速的实时三维测量系统及方法。

技术介绍

[0002]实现实时动态物体三维计算在众多应用领域中具有特别重要的意义。如在生产线在线监测过程中,三维计算速度如果不能跟上生产线运行的速度,测量将失去意义。从二维图像点到三维点的计算过程本身就是一个复杂且耗时的过程。当图像分辨率为512*512时,可能需要执行几十万次二维到三维的重构过程,计算密度非常大且耗时。
[0003]目前很多科学问题(如卫星成像处理、基因工程、核爆模拟等)的数据规模都需要万亿以上的计算能力。因此,大数据量的密集计算一直是制约高性能计算的瓶颈。算法运行的硬件载体CPU经过几十年的发展已经逐步遭遇性能瓶颈,受光速的绝对限制30

/ns,芯片集成晶体管的尺寸存在分子,原子极限的问题,CPU的时钟频率再突破4GHZ后已经很难进一步提高。因此,研究单位与制造商不得不寻求其他的方式进一步提升计算性能。超级计算机是通过增加CPU的数量来提升性能。在高速的超级计算机中,通常是几百甚至上千个处理器同时运行。根据超级计算机的启示,CPU正向多核并行处理的方向发展。然而,传统的CPU计算架构采用多个内核共享同一内存的机制,随着CPU内核数目的增长,其内存存取效率将逐步降低,计算性能无法现行增长。
[0004]GPU则采用了完全不同的另外一种架构,早起的GPU作为计算机图形显示卡的关键部件,主要用于三维图形显示加速。它针对三维图形显示流程中各个关键环节的不同特点设计了顶点着色器、光栅化引擎、纹理贴图等多种专用计算单元,在一块GPU芯片中放置了数十个到数百个这种硬件优化的专用计算单元进行并行图形处理,其性能远远超过同时代CPU的图形处理性能。与CPU相比,GPU在并行计算能力和存储带宽上更具优势,因此GPU可以通过增加计算核单元和存储器控制单位来提高数据处理性能。近几年GPU的发展很快,其单浮点处理能力已经达到同期CPU的10倍,并且可编程性和功能大大扩展。
[0005]早期的GPU计算编程需要使用图形学的API,首先需要将数据打包成纹理,并且采用纹理渲染的方式完成计算任务,该方法需要具备图形学硬件和编程接口等相关专业知识,增加了计算程序的开发难度。2007年,英伟达公司发布了计算统一设备架构(Compute Unified Device Architecture,CUDA)通用计算开发环境,在该环境下可以采用类似C语言进行程序开发,无需借助图形学API。CUDA并行计算开发环境在构架方面和传统CPU相比具有两个明显的优势:(1)采用了统一处理构架,可以充分利用过去分布在顶点渲染和像素渲染器的计算资源;(2)引入了共享存储器,支持线程间的通信。这两点使得CUDA架构步入通用计算领域。在2007-2011年间,许多科学研究工作采用CUDA实现了上百倍的计算加速,将原来需要一年时间的计算任务缩短到几天就可以完成,从而有效的加快了科学研究的进程。
[0006]由于二维图像点到三维点计算的固有的复杂性,在不牺牲算法的精度与稳定性的
前提下,其时间复杂度难以大幅降低,通过GPU的并行计算能力,能够获得几倍的性能提升。但这种方法只能优化跟三维图形处理比较类似的算法,对于相位展开等复杂算法,则无法优化,仍然只能采用逐像素串行计算的方法在CPU上进行,并且由于该方法需要频繁的访问GPU外部显示存储器(Video Memory)及PC机内存,受存储器及总线宽带限制,运行效率提升有限。
[0007]目前GPU正在朝着通用计算的方向发展。在新一代的GPU架构中,GPU由大量被称为流处理器(Streaming Processor,SP)的计算单元组成,每个计算单元具备自己的通用算数逻辑单元(Arithmetic Logic Unit,ALU)和独立的小容量内部数据存储器,相当于一个简化的计算机系统(CPU+存储器),可独立执行用户编写的数值计算程序。由于受程序长度及内部存储器容量限制,其程序的粒度很小,一般仅仅副总处理一个标量(如光栅图像中的一个像素的一个色彩分量),但这样也确保了程序的执行效率。流处理器采用SIMT(Single Instruction,Multiple Thread,单指令、多线程)模式,一个流处理器同时处理数十个到数百个计算线程(Thread),当某个线程需要获取外部的全局数据而需要等待时,流处理器会挂起该线程并快速切换到另外一个等待运行的线程,从而使流处理器始终处于满负荷运行的状态,解决了因访问外部存储器存在延迟导致的性能瓶颈问题,使GPU计算真正成为一种面向大规模、细粒度并行计算的有效手段,并将被应用到更多的领域。

技术实现思路

[0008]本专利技术的目的在于提供一种基于GPU加速的实时三维测量系统及方法。
[0009]本专利技术的技术方案如下:
[0010]一种基于GPU加速的实时三维测量系统,该系统由CPU、GPU、PC机内存和GPU外部显示存储器所组成,所述PC机内存储存有两个相机的图像数据,所述PC机内存的数据输出端与所述CPU的数据输入端连接,以将系统参数和图像数据发送至CPU,所述CPU与所述GPU信号相连,所述GPU中设计有核函数,由CPU将系统参数和图像数据转送至GPU,并启动核函数,所述GPU外部显示存储器与所述GPU信号相连,以储存系数参数和图像数据,所述GPU的数据输出端与所述PC机内存的数据输入端连接,图像数据通过所述GPU的核函数对其像素点进行并行计算后,将计算得到的三维数据传送回所述PC机内存中进行保存,紧接着所述GPU提示所述CPU传入新像素点的数据。
[0011]进一步的,所述GPU依次通过图像畸变校正、相位计算、图像匹配、三维重构后得到三维数据。
[0012]进一步的,所述GPU包括多个流处理器,每个流处理器包括一个或多个线程块,每个线程块包括若干个可相互通信的线程。
[0013]进一步的,所述流处理器设有八个。
[0014]进一步的,每三十二个连续线程形成一线程束。
[0015]进一步的,所述GPU外部显示存储器包括片上存储器和片下存储器两大类,所述片上存储器包括寄存器、局部存储器和共享存储器,所述片下存储器包括全局存储器、常数存储器和纹理存储器。
[0016]一种基于GPU加速的实时三维测量方法,该方法为上述所述的基于GPU加速的实时三维测量系统中GPU对于动态物体三维面测量的计算过程,其包括以下步骤:
[0017](1)图像畸变校正
[0018]采用图像变换的方式将有畸变的图像变换成无畸变的图像;
[0019](2)相位计算
[0020]提取三组相移图像中对应像素的灰度值,并计算出每个像素的相位值;
[0021](3)图像匹配
[0022]图像中每个像素独立计算对应点;
[0023](4)三维重构
[0024]根据预先标定的摄像机参数,采用立体视觉原理进行三本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于GPU加速的实时三维测量系统,其特征在于,该系统由CPU、GPU、PC机内存和GPU外部显示存储器所组成,所述PC机内存储存有两个相机的图像数据,所述PC机内存的数据输出端与所述CPU的数据输入端连接,以将系统参数和图像数据发送至CPU,所述CPU与所述GPU信号相连,所述GPU中设计有核函数,由CPU将系统参数和图像数据转送至GPU,并启动核函数,所述GPU外部显示存储器与所述GPU信号相连,以储存系数参数和图像数据,所述GPU的数据输出端与所述PC机内存的数据输入端连接,图像数据通过所述GPU的核函数对其像素点进行并行计算后,将计算得到的三维数据传送回所述PC机内存中进行保存,紧接着所述GPU提示所述CPU传入新像素点的数据。2.根据权利要求1所述的基于GPU加速的实时三维测量系统,其特征在于,所述GPU依次通过图像畸变校正、相位计算、图像匹配、三维重构后得到三维数据。3.根据权利要求1所述的基于GPU加速的实时三维测量系统,其特征在于,所述GPU包括多个流处理器,每个流处理器包括一个或多个线程块,每个线程块包括若干个可相互通信的线程。4.根据权利要求3所述的基于GPU加速的实时三维测量系统,其特征在于,所述流处理器设有八个。5.根据权利要求3所述的基于GPU加速的实时三维测量系统,其特征在于,每三十二个连续线程形成一线程束。...

【专利技术属性】
技术研发人员:钟波
申请(专利权)人:武汉易维晟医疗科技有限公司
类型:发明
国别省市:

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

1