基于OpenCL的加速鲁棒特征算法并行实现
发布时间:2019-08-06 07:23
【摘要】:加速鲁棒特征算法(speed up robust features,SURF)的时间复杂度大,传统串行计算的方法,实时性难以保证.针对上述问题,提出一种基于OpenCL架构的SURF并行实现方法.首先对算法中的积分图的计算、Hessian响应图、特征点主方向、特征点描述等步骤实施数据并行和任务并行处理,并给出详细的算法流程.接着从OpenCL架构的数据传输、内存访问以及负载均衡等方面优化算法性能.实验结果表明,该算法对不同分辨率的图片均实现了10倍以上的加速比,一些高分辨率的图片甚至可以达到39.5倍,并且算法适用于多种通用计算平台.
【图文】:
它由宿主机程序定义,当宿主机发出提交内核命令后,OpenCL运行时系统会在设备上创建一个N维工作索引空间,对应这个索引空间中的每个点分别执行内核的实例.每个实例称为工作项,多个工作项组成工作组.1.3内存模型OpenCL的内存模型将内核用到的内存分为4种类型:全局内存、常量内存、局部内存和私有内存.它们的作用范围不同,并且读写速度相差巨大.从左到右内存的作用范围依次递减,读写速度递增.各类内存的有效作用范围及其在异构平台的位置如图1所示.图1OpenCL内存结构Fig.1MemorystructureofOpenCL1.4编程模型OpenCL的编程模型支持数据并行模型和任务并行模型.数据并行模型指的是同一段指令并发作用在内存对象的不同数据元素上.OpenCL提供了层次结构的数据并行,即工作组中工作项的数据并行,再加上工作组层次的数据并行,因此开发人员需要显式地规定参与计算的所有工作项节点数,同时还要规定每个节点所属的工作组.809第10期基于OpenCL的加速鲁棒特征算法并行实现
当扇形内像素点的Haar特征值总和最大时,该扇形的方向即作为特征点主方向;最后以特征点主方向为x轴,构造边长为20σ的正方形区域,并等分成16块子区域,如图2(b)所示,计算每块子区域内的Haar特征值,并构造一个4维向量如下:νsubregion=∑dx,∑dy,∑dx,∑(dy)(1)式中,dx、dy为x和y方向的haar特征值.16块子区域的4维向量共同组成一个64维的特征点描述符.图2特征点邻域示意图Fig.2Neighborhoodoffeaturepoint由于SURF算法引入了尺度空间理论,要将原图像与可变尺度的2维高斯滤波模板进行卷积,形成图像金字塔.此时Hessian矩阵可以表示为H(x,σ)=Lxx(x,σ)Lxy(x,,σ)Lxy(x,σ)Lyy(x,σ)q縬纐膓牛ǎ玻┪思涌焱枷竦木砘蹋樱眨遥扑惴ú捎梅娇蚵瞬ㄆ鹘剖剑ǎ玻┲械母咚苟孜⒎郑杂Φ姆娇蚵瞬0迦缤迹常ǎ幔褂梅娇蚵瞬ù砗螅枷竦模龋澹螅螅椋幔钕煊χ导扑憬莆洌澹簦ǎ龋幔穑穑颍铮剑模模ǎ埃梗模玻ǎ常┦街校模ⅲ模停模鞣较虻姆娇蚵瞬ǖ慕峁樱眨遥扑惴ㄖ谢勾罅渴褂茫龋幔幔蛱卣鳎龋幔幔蛱卣髂0迦缤迹常ǎ猓┧荆迹衬0澹疲椋纾常拢铮妫椋欤簦澹颍螅幔睿洌龋幔幔颍鳎幔觯澹欤澹簦妫椋欤簦澹颍蟠送猓绻看畏
本文编号:2523406
【图文】:
它由宿主机程序定义,当宿主机发出提交内核命令后,OpenCL运行时系统会在设备上创建一个N维工作索引空间,对应这个索引空间中的每个点分别执行内核的实例.每个实例称为工作项,多个工作项组成工作组.1.3内存模型OpenCL的内存模型将内核用到的内存分为4种类型:全局内存、常量内存、局部内存和私有内存.它们的作用范围不同,并且读写速度相差巨大.从左到右内存的作用范围依次递减,读写速度递增.各类内存的有效作用范围及其在异构平台的位置如图1所示.图1OpenCL内存结构Fig.1MemorystructureofOpenCL1.4编程模型OpenCL的编程模型支持数据并行模型和任务并行模型.数据并行模型指的是同一段指令并发作用在内存对象的不同数据元素上.OpenCL提供了层次结构的数据并行,即工作组中工作项的数据并行,再加上工作组层次的数据并行,因此开发人员需要显式地规定参与计算的所有工作项节点数,同时还要规定每个节点所属的工作组.809第10期基于OpenCL的加速鲁棒特征算法并行实现
当扇形内像素点的Haar特征值总和最大时,该扇形的方向即作为特征点主方向;最后以特征点主方向为x轴,构造边长为20σ的正方形区域,并等分成16块子区域,如图2(b)所示,计算每块子区域内的Haar特征值,并构造一个4维向量如下:νsubregion=∑dx,∑dy,∑dx,∑(dy)(1)式中,dx、dy为x和y方向的haar特征值.16块子区域的4维向量共同组成一个64维的特征点描述符.图2特征点邻域示意图Fig.2Neighborhoodoffeaturepoint由于SURF算法引入了尺度空间理论,要将原图像与可变尺度的2维高斯滤波模板进行卷积,形成图像金字塔.此时Hessian矩阵可以表示为H(x,σ)=Lxx(x,σ)Lxy(x,,σ)Lxy(x,σ)Lyy(x,σ)q縬纐膓牛ǎ玻┪思涌焱枷竦木砘蹋樱眨遥扑惴ú捎梅娇蚵瞬ㄆ鹘剖剑ǎ玻┲械母咚苟孜⒎郑杂Φ姆娇蚵瞬0迦缤迹常ǎ幔褂梅娇蚵瞬ù砗螅枷竦模龋澹螅螅椋幔钕煊χ导扑憬莆洌澹簦ǎ龋幔穑穑颍铮剑模模ǎ埃梗模玻ǎ常┦街校模ⅲ模停模鞣较虻姆娇蚵瞬ǖ慕峁樱眨遥扑惴ㄖ谢勾罅渴褂茫龋幔幔蛱卣鳎龋幔幔蛱卣髂0迦缤迹常ǎ猓┧荆迹衬0澹疲椋纾常拢铮妫椋欤簦澹颍螅幔睿洌龋幔幔颍鳎幔觯澹欤澹簦妫椋欤簦澹颍蟠送猓绻看畏
本文编号:2523406
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2523406.html