基于GPU的实时角点检测算法.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于GPU的实时角点检测算法.doc

基于GPU的实时角点检测算法   摘 要:本文提出一类基于GPU的实时角点检测算法。该类算法在已有角点检测算法的基础上,利用GPU实现。为了进一步提高算法的速度,算法采用了角值图压缩的方法。实验证明基于GPU的实时角点检测算法适于1024*768分辨率的实时应用。   关键词:实时 角点检测 图形处理器   中图分类号:TP391 文献标识码:A 文章编号:1003-9082(2013)12-0003-01   一、概述   伴随着图形处理器(GPU)的飞速发展,GPU不仅仅能用于图形处理,其强大的并行处理能力使得GPU在计算[1]中表现较突出。使用GPU处理机器视觉领域的计算任务具备了广阔的前景。使用GPU实现基于CPU算法的主要突破点是如何修改算法使之适于GPU的并行计算模式。   在机器视觉的实时应用中,角点检测处理时间必须控制在10毫秒以内[2]。利用GPU实现角点检测算法是实时应用的必然选择。有一些常用的角点检测算法处理过程可以分为2步:   (1)设计一种衡量角值的函数,根据函数计算图像中每个像素的角值。角值大于预先指定阀值的像素被保留下来做为候选点。角值函数反映的是图像变化剧烈程度或图像边缘曲线上曲率。常用的KLT角点检测算法[3]、Harris角点检测算法[4]等采用了不同的角值函数。   (2)非极值抑制从候选点中挑选出具有局部极值的点做为角点。它保证每个位置的角点具有唯一性。   本文提出一类基于GPU的实时角点检测算法。它利用GPU的并行计算加速已有的角点检测算法如Harris、KLT角点检测算法。   二、算法的实现   1.角值计算   将图像作为纹理载入GPU的显存。使用函数计算   图像中像素的角值。小于指定阀值的角值被置零,表明该点不是角点。其余点保留下来作为角点的候选点。   上述过程作为片段程序被GPU中多个段处理器并行调用。这是GPU具有高效并行计算能力的主要原因。   2.非极值抑制   已有基于GPU的角点检测算法[5]在使用GPU计算角值后,由CPU执行非极值抑制。本文提出的算法将继续使用GPU执行非极值抑制。   本文提出的非极值抑制算法是收敛算法。算法需要运行若干次,直到所有点被判定为止。在每次执行中并行判断图像中每个点。当确定某点是角点,把角值置1,表明该点是角点。判断标准如下:   当前点角值是0或1说明它已确定是否为角点。   如果为其它值,说明当前点未被确定是否为角点,需进一步判断。   假如当前点存在任何邻点角值为1,就把当前点角值置0,说明当前点存在邻点是角点,当前点为非角点。   假如当前点的所有邻点的角值都不为1,且当前点角值比所有邻点角值都大,就把当前点的角值置1。当前点是角点。   算法执行后,仍有一些点没有确定是否为角点。算法下一次的执行又要开始,整个过程重复上面的步骤,直到所有点可以被确定。   3.角值图压缩   角值图的压缩可极大地降低非极值抑制中的运算量。如Fig. 1所示,原图中N*N区域中N2个邻点用压缩图的对应点P(x,y)表示,P (x,y)记录下对应N2个点中具有最大角值的点信息,包括角值及点坐标。   角值图压缩极大地降低了算法的时间。也引入了错误,它使得在2N *2N的区域至多只出现1个角点,可能会丢失角点。   4.正确性   算法的正确性要验证两点:   4.1点会被正确地分类   角点须同时满足两个条件:当前点没有邻点是角点;当前点不存在角值大于当前点的邻点。上面两点保证了角点是局部极值。   4.2非极值抑制是一个收敛算法,算法最终会收敛   每次执行非极值抑制算法时,一定存在一个具有最大角值的候选点。假如该点存在邻点是角点,该点被确定为非角点,否则该点被确定为角点。这就保证算法每执行一次至少可以确定一个点是否为角点,算法最终可以收敛。   三、实验及分析   1.实验环境   实验的硬件配置为:CPU Intel Q8200 2.33 GHz,内存2 GB,显卡NVIDIA GeForce 8800 GTX 768 Mb,算法在VC++6.0,OpenGL下实现。   图集含500张图片,分辨率有320*240、400*300、640*480、800*600 和1024*768像素,比如Fig. 2。实验中,下面五种算法应用于上面的图集。   KLT:基于CPU的KLT角点检测算法。   G_ KLT:改造的KLT角点检测算法,在使用GPU计算角值后,由CPU执行非极值抑制过程。   F_ KLT:本文提出的基于GPU的KLT角点检测算法。   C_F_ KLT:基于GPU的KLT角点检测算法,使用角值图压缩。   C_F_ Harris:

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档