基于gpu的动态视觉测量特征点中心快速定位方法

文档序号:6552432阅读:202来源:国知局
基于gpu的动态视觉测量特征点中心快速定位方法
【专利摘要】本发明提供了一种基于GPU的像面特征点中心快速定位方法,所述方法包括如下步骤:CPU获取原始图像,传送至全局存储器中;GPU从全局存储器中获取所传送的原始图像,进行高斯低通滤波,送回全局存储器;在共享存储器上分配存储空间;由GPU基于滤波后的图像进行直方图统计,并将统计信息传回全局存储器;CPU获取的直方图统计信息进行最大类间方差计算,将计算得到的阈值传送回全局存储器;GPU进行图像二值化处理,并传送至全局存储器和CPU;CPU进行感兴趣区域的提取,提取后传送至全局存储器;GPU基于感兴趣区域信息进行区域约束判断,将得到的有效目标区域传送至全局存储器;根据得到的有效目标区域进行区域的点中心计算,将结果传回到所述全局存储器和CPU。
【专利说明】基于GPU的动态视觉测量特征点中心快速定位方法

【技术领域】
[0001] 本发明涉及动态视觉测量技术,特别涉及一种基于GPU的动态视觉测量特征点中 心快速定位方法。

【背景技术】
[0002] 随着工业制造技术的快速发展,对高精度、高效率的测量技术的需求越来越迫切, 如大尺寸雷达天线面形变化的测量、大型飞机装配中的在线测量和大型光热发电设备的在 线安装定位测量等。动态视觉测量技术作为一种非接触测量手段具有操作简单、精度高及 测量不受被测物表面差异等其他方法无法比拟的优点,而被广泛应用于多种工业制造的场 合。
[0003] 但是,目前动态视觉测量系统受限于处理速度较慢,很难实现对速度要求很高的 测量。动态视觉测量系统中大量点云的点中心高精度定位耗时巨大,要满足动态测量大量 点云的要求,在不损失精度的前提下加速点中心高精度定位的问题急需解决,因此视觉测 量中的加速问题目前已成为国内外研究的重点。国外在视觉测量方面的研究起步较早并已 进入成熟期,研究的重点已从几何量测精度转为实时性、全自动化等。目前国外已有动态视 觉测量系统推出,如美国的V-STARS Dynamo系统,相对精度可达1/80000,最高工作频率为 10Hz ;德国Gom公司的ARAMIS系统相对精度可达1/20000,最高工作频率15Hz。但是,当测 量大量点云时很难达到系统标称的速度,无法满足动态测量的需求。在对精度和速度要求 较高的测量中,动态视觉测量系统同时获得高精度和高速度相互矛盾,要想在较高精度的 前提下提高速度,必须寻求一种新的技术。
[0004] 由于处理器的频率不会在短时间内有飞跃式的提高,因此采用并行处理的方式来 提高处理速度是一个很好的选择。CUDA (Compute Unified Device Architecture,统一计算 架构)是NVIDIA公司2007年正式推出的一个通用并行计算架构,通过CUDA可以直接调用 的计算资源,使数据密集型和计算密集型的部分在GPU上进行并行处理。国外已经有很 多学者做了 CUDA架构下计算机视觉方面的研究,如ChangchangWu, SameerAgarwal等人应 用CUDA并行架构加速束调整算法达到了 30倍的加速效果。最近十年国内多所高校及光电 产品研发公司对动态视觉测量系统相关技术进行了研究。相关学者已经对动态视觉测量中 高精度的标定算法、匹配及相关技术进行了研究,有些科研机构还推出了相关的实验测量 系统。但是,动态视觉测量中处理速度较慢的问题一直没有得到很好的解决,阻碍了其在工 业在线测量中的应用。
[0005] 因此,需要一种改进的处理特征点中心定位的方法,可以大大提高算法的处理速 度,从而解决动态视觉测量中大量点云的点中心定位耗时巨大的问题。


【发明内容】

[0006] 本发明的目的是提供了一种基于GPU的像面特征点中心快速定位方法,所述方法 包括如下步骤:a)CPU获取要进行像面特征点中心快速定位的原始图像,并传送至全局存 储器中;b)GPU从所述全局存储器中获取所传送的原始图像,对其进行高斯低通滤波计算, 并送回所述全局存储器;c)在共享存储器上分配存储空间;d)由GPU基于滤波后的图像进 行直方图的统计,并将直方图统计信息传回到所述全局存储器;e)CPU从所述全局存储器 获取直方图统计后的信息,并且进行最大类间方差计算,以确定阈值,将计算得到的阈值传 送回全局存储器;f)合并访问全局存储器中滤波后的图像数据和存储的阈值,GPU进行图 像的二值化处理,并传送至全局存储器和CPU ;g) CPU进行感兴趣区域的提取,提取后传送 至全局存储器;h)GPU基于全局存储器的感兴趣区域信息进行区域约束判断,将得到的有 效目标区域传送至全局存储器;以及i)根据得到的有效目标区域进行区域的点中心计算, 将结果传回到所述全局存储器和CPU。
[0007] 优选地,在步骤b中为每个线程块分配相应大小的共享存储器,以存储3X3的高 斯模板数据。
[0008] 优选地,在步骤c中,每个线程块在共享存储器上分配大小为256的数组,线程块 中的每个线程统计对应像素的灰度信息,并将统计结果临时存储到共享内存数组中,最后 再把共享存储器中的统计结果应用原子操作的方式累加到全局存储器中。
[0009] 优选地,在步骤e中,用串行的方式统计最大类间方差。
[0010] 优选地,在步骤f中,合并访问全局存储器中滤波后的图像数据,并访问共享存储 器中存储的阈值,在图像的像素灰度值大于上述计算得到的阈值时,将其赋值为255,当小 于阈值时赋值为0。
[0011] 优选地,在步骤h中,GPU中的每个线程合并访问全局存储器中对应的区域信息, 判断是否满足约束条件,将不满足约束条件的区域信息赋〇,而满足约束条件的区域不做任 何处理。
[0012] 优选地,所述约束条件包括如下条件:区域边缘周长约束,区域宽约束、区域长约 束、扩展两像素是否越界约束、区域面积约束、长宽比约束、二值化后区域扩展一像素是否 有其他点引入约束、区域灰度比约束。
[0013] 优选地,在步骤i中,点中心的坐标计算方法包括合并访问全局存储器中的R0I区 域信息和滤波后的图像数据,以及执行配置参数,为每个线程块分配1024个线程,每个线 程计算相应的R0I区域对应的点中心坐标。
[0014] 优选地,采用变权重灰度质心法来提取特征点中心坐标。
[0015] 优选地,利用绑定多个线程的线程束来集体原子操作。
[0016] 根据本发明的基于GPU的像面特征点中心快速定位算法,根据特征点中心定位算 法的处理过程,将具有并行性的部分应用GPU实现并行处理,最终实验结果证明可以大大 提高算法的处理速度,解决了动态视觉测量中大量点云的点中心定位耗时巨大的问题。

【专利附图】

【附图说明】
[0017] 参考随附的附图,本发明更多的目的、功能和优点将通过本发明实施方式的如下 描述得以阐明,其中:
[0018] 图1示意性示出了应用本发明的基于GPU的像面特征点中心快速定位算法的计算 机系统架构框图。
[0019] 图2示意性示出了根据本发明的基于GPU的像面特征点中心快速定位算法的流程 图。
[0020] 图3示意性示出了采用多层次并行策略来实现对全局存储器的合并访问的模型 架构。
[0021] 图4示意性地示出了采用了绑定多个线程的线程束来集体原子操作的方法流程 图。

【具体实施方式】
[0022] 通过参考示范性实施例,本发明的目的和功能以及用于实现这些目的和功能的方 法将得以阐明。然而,本发明并不受限于以下所公开的示范性实施例;可以通过不同形式来 对其加以实现。说明书的实质仅仅是帮助相关领域技术人员综合理解本发明的具体细节。
[0023] 在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同 或类似的部件,或者相同或类似的步骤。
[0024] 图1示意性示出了应用本发明的基于GPU的像面特征点中心快速定位算法的计算 机系统架构框图。如图1所述,根据本发明的实施像面特征点中心快速定位算法的系统1〇〇 包括中央处理器(CPU) 110、图形处理器(GPU) 120、全局存储器130和位于GPU120内部的共 享存储器140。
[0025] CPU110用于接收要进行特征点中心定位的图像数据,并将图像数据通过传送给全 局存储器130从而发送至GPU120进行一部分的并行计算处理。CPU110也承担其中一部分 的图像处理工作,如进行图像中的感兴趣区域(R0I)区域的提取。由GPU120计算处理得到 的特征点中心数据会发送回CPU110进行最终的输出。
[0026] GPU120典型地包括一个或多个执行程序指令的编译器,用于在GPU内所包括的一 个或多个处理内核上进行编译。每个这类内核可以与其他处理内核一起并行地执行线程, 以及并行地对特定执行线程加以执行。GPU120内的特定内核可以耦连到共享存储器140, 该共享存储器140在GPU120执行线程时可供GPU120对存储器进行访问操作。每个内核还 可以耦连到一个或多个其他内核,也可以耦连到共享存储器空间。利用该配置,GPU120的 多个内核可以经由共享存储器空间来共享数据。GPU120的内核还可以耦连到全局存储器 130,全局存储器130可以对所有处理内核都是可访问的。
[0027] 图2示意性示出了本发明的基于GPU的像面特征点中心快速定位算法的方法流 程。如图2所述,根据本发明的基于GPU的像面特征点中心快速定位算法的方法200包括 如下步骤:
[0028] 首先进行原始图像的预处理。图像预处理包括高斯低通滤波、最大类间方差法自 适应求阈值和图像二值化。图像预处理中的高斯低通滤波、直方图统计和图像二值化是典 型的数据密集型问题,因此根据本发明的方法采用并行的方式处理。最大类间方差统计由 于数据之间具依赖性,在GPU上进行统计时性能较差,故在CPU端进行串行统计。具体地,
[0029] 首先在步骤202中,CPU获取要进行像面特征点中心快速定位的原始图像;
[0030] 步骤204中,CPU将获取到的原始图像传送至全局存储器130中进行存储;
[0031] 步骤206中,GPU从全局存储器130中获取所传送的原始图像,然后在GPU中进行 高斯低通滤波的计算(步骤208)。高斯低通滤波是线性平滑滤波,用于消除高斯噪声,从而 用于图像处理的减噪过程。具体地,高斯滤波对图像进行加权平均,利用模板扫描图像中 的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值, 从而去除噪声。优选地,根据本发明的一个实施例,为每个GPU的内核线程块(block)分配 相应大小的共享存储器,以存储3X3的高斯模板数据。图像的边界数据不进行滤波,由于 后期的约束判断确保目标区域不会出现在图像的边界,因此对定位结果没有影响。
[0032] 步骤210,在滤波计算后,GPU120再将滤波后的图像传送回全局存储器130。
[0033] 步骤212,在共享存储器上分配存储空间。具体地,每个线程块在共享存储器上分 配大小为256的数组,线程块中的每个线程统计对应像素的灰度信息,并将统计结果临时 存储到共享存储器数组中,最后再把共享存储器中的统计结果应用原子操作的方式累加到 全局存储器中。
[0034] 步骤214,由GPU基于滤波后的图像进行直方图的统计,并在步骤216将直方图统 计信息传回到全局存储器。
[0035] 步骤218, CPU从全局存储器获取GPU进行直方图统计后的信息,并且在步骤220 中由CPU进行最大类间方差计算,以确定阈值。根据本发明的一个实施例,用串行的方式统 计最大类间方差,从而确定用来区分目标和背景的阈值,用于之后进行的图像二值化。最大 类间方差计算按图像的灰度特性,将图像分成背景和目标两个部分。背景和目标之间的类 间方差越大,则说明构成图像的背景和目标两部分之间的差别越大。当将部分目标错分为 背景,或将部分背景错分为目标时,都会导致背景和目标之间的差别变小。因此,计算最大 类间方差,从而使得错分的概率最小,以便确定真正的背景和目标。
[0036] 步骤222,将计算得到的阈值传送回全局存储器。
[0037] 步骤224,合并访问全局存储器130中滤波后的图像数据和存储的阈值,在GPU中 进行图像的二值化处理。具体的,合并访问全局存储器130中滤波后的图像数据和存储的 阈值,在图像的像素灰度值大于上述计算得到的阈值时,将其赋值为255,当小于阈值时赋 值为〇,从而得到二值化图像。
[0038] 步骤226,将二值化后的图像传送至全局存储器130,从而完成图像的预处理过 程。
[0039] 根据本发明的方法,在图像的预处理之后进行区域约束判断的并行处理步骤。由 于精确的特征点中心定位对后期的匹配、相机定向和束调整至关重要,因此区域约束判断 排除了外界带来的干扰,从而可以确保最后提取的区域是有效的目标区域。根据本发明,采 用了一系列多个约束判断的约束条件,每个约束条件之间是严格的串行处理关系。但每个 区域之间的约束判断是无关的,因此不同区域的约束判断可以同时并行进行。
[0040] 在步骤228,将二值化的图像数据传送给CPU,在步骤230由CPU进行感兴趣区域 (Region of Interest, R0I)的提取。R0I提取优选可以采用二值化连通域标记算法。
[0041] 在步骤232,将R0I区域信息传送至全局存储器。
[0042] 在步骤234,由GPU120基于全局存储器的R0I区域信息进行区域约束判断。具体 地,GPU中的每个线程合并访问全局存储器中对应的区域信息,判断是否满足约束条件,将 不满足约束条件的区域信息赋〇,而满足约束条件的区域不做任何处理。约束条件可以包 括如下条件:区域边缘周长约束,区域宽约束、区域长约束、扩展两像素是否越界约束、区域 面积约束、长宽比约束、二值化后区域扩展一像素是否有其他点引入约束、区域灰度比约束 等。
[0043] 接着,为每个线程块分配大小为32的共享存储器,采用线程束集体原子操作的方 法筛选经过区域约束判断之后的区域信息,筛选出非0的区域,输出这些非0的区域以得到 有效的目标区域。
[0044] 在步骤236,将得到的有效目标区域传送至全局存储器。
[0045] 在步骤238, GPU根据得到的有效目标区域进行区域的点中心计算。
[0046] 根据目标区域计算得到区域点中心坐标是典型的计算密集型问题。由于区域点中 心计算中包含循环嵌套,这将导致在点数增多时消耗的时间急剧增加,如10000个区域时 串行计算区域点中心的耗时已经占整个算法的50%以上。但是,由于每个目标区域之间没 有相关性,可以用并行的方法同时计算每个区域的点中心。具体地,点中心坐标计算方法如 下:
[0047] 首先,合并访问全局存储器中的R0I区域信息和滤波后的图像数据。
[0048] 其次,执行配置参数,每个线程块分配1024个线程,每个线程计算相应的R0I区域 对应的点中心坐标。优选地,点中心的数据存储格式选用CUDA内部的double4类型进行向 量化操作。
[0049] 在计算出区域点中心坐标后,在步骤240,将计算得到的区域点中心坐标传回到全 局存储器,再将点中心数据传回至CPU110 (步骤242),进行输出,本发明的基于GPU的像面 特征点中心快速定位的方法结束。
[0050] 根据本发明的一个实施例,优选采用变权重灰度质心法来提取特征点中心坐标。 特征点坐标是整个视觉测量的数据来源,定位精度直接关系到整个视觉测量所能达到的精 度。视觉测量中对回光反射点坐标提取算法一般分为两类,一类是求取特征点边缘,然后 拟合椭圆方程,从而求点坐标;另一类是基于特征点的灰度信息,通过质心法求得点中心坐 标。本发明的实验结果表明,在视觉测量中采用基于灰度的质心法求取精度一般要好于基 于边缘的拟合方法。
[0051] 传统的灰度质心法算法如下

【权利要求】
1. 一种基于GPU的像面特征点中心快速定位方法,所述方法包括如下步骤: a) CPU获取要进行像面特征点中心快速定位的原始图像,并传送至全局存储器中; b) GPU从所述全局存储器中获取所传送的原始图像,对其进行高斯低通滤波计算,并送 回所述全局存储器; c) 在共享存储器上分配存储空间; d) 由GPU基于滤波后的图像进行直方图的统计,并将直方图统计信息传回到所述全局 存储器; e) CPU从所述全局存储器获取直方图统计后的信息,并且进行最大类间方差计算,以确 定阈值,将计算得到的阈值传送回全局存储器; f) 合并访问全局存储器中滤波后的图像数据和存储的阈值,GPU进行图像的二值化处 理,并传送至全局存储器和CPU ; g) CPU进行感兴趣区域的提取,提取后传送至全局存储器; h) GPU基于全局存储器的感兴趣区域信息进行区域约束判断,将得到的有效目标区域 传送至全局存储器;以及 i) 根据得到的有效目标区域进行区域的点中心计算,将结果传回到所述全局存储器和 CPU。
2. 如权利要求1所述的方法,其中在步骤b中为每个线程块分配相应大小的共享存储 器,以存储3X3的高斯模板数据。
3. 如权利要求1所述的方法,其中在步骤c中,每个线程块在共享存储器上分配大小 为256的数组,线程块中的每个线程统计对应像素的灰度信息,并将统计结果临时存储到 共享内存数组中,最后再把共享存储器中的统计结果应用原子操作的方式累加到全局存储 器中。
4. 如权利要求1所述的方法,其中在步骤e中,用串行的方式统计最大类间方差。
5. 如权利要求1所述的方法,其中在步骤f中,合并访问全局存储器中滤波后的图像数 据,并访问共享存储器中存储的阈值,在图像的像素灰度值大于上述计算得到的阈值时,将 其赋值为255,当小于阈值时赋值为0。
6. 如权利要求1所述的方法,其中在步骤h中,GPU中的每个线程合并访问全局存储器 中对应的区域信息,判断是否满足约束条件,将不满足约束条件的区域信息赋0,而满足约 束条件的区域不做任何处理。
7. 如权利要求6所述的方法,其中所述约束条件包括如下条件:区域边缘周长约束,区 域宽约束、区域长约束、扩展两像素是否越界约束、区域面积约束、长宽比约束、二值化后区 域扩展一像素是否有其他点引入约束、区域灰度比约束。
8. 如权利要求1所述的方法,其中在步骤i中,点中心的坐标计算方法包括合并访问全 局存储器中的ROI区域信息和滤波后的图像数据,以及执行配置参数,为每个线程块分配 1024个线程,每个线程计算相应的ROI区域对应的点中心坐标。
9. 如权利要求1所述的方法,其中采用变权重灰度质心法来提取特征点中心坐标。
10. 如权利要求1所述的方法,其中利用绑定多个线程的线程束来集体原子操作。
【文档编号】G06F9/38GK104123119SQ201410319232
【公开日】2014年10月29日 申请日期:2014年7月7日 优先权日:2014年7月7日
【发明者】董明利, 许晓臣, 王君, 燕必希, 孙鹏 申请人:北京信息科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1