CN119445147A 基于gpu的图像特征匹配方法、电子设备及存储介质 (荣耀终端有限公司)_第1页
CN119445147A 基于gpu的图像特征匹配方法、电子设备及存储介质 (荣耀终端有限公司)_第2页
CN119445147A 基于gpu的图像特征匹配方法、电子设备及存储介质 (荣耀终端有限公司)_第3页
CN119445147A 基于gpu的图像特征匹配方法、电子设备及存储介质 (荣耀终端有限公司)_第4页
CN119445147A 基于gpu的图像特征匹配方法、电子设备及存储介质 (荣耀终端有限公司)_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

街道东海社区红荔西路8089号深业中基于GPU的图像特征匹配方法、电子设备及本申请提供了一种基于GPU的图像特征匹配标记了特征点及响应函数值),生成四维随机向响应函数值最大的特征点像素。在GPU的计算着色图像中前N个响应函数值最大的特征点的特征功耗,同时利用GPU提供的高并发多线程处理能2根据所述第一颜色图像的N个特征点对应的N个特征向量和所述第二颜色图像的N个特征点对应的N个特征向量,确定所述第一颜色图像的每个特征点分别与所述第二颜色图像若所述N个特征距离中的最小特征距离小于预设距离阈值,则将所述最小特征距离的在所述GPU的第一计算着色器中加载掩膜图像,根据所述掩膜图像中的特征点像素的图像坐标数据生成M个四维随机常量;所述掩膜图像是对所述颜色图像进行特征点识别得在所述GPU的第二计算着色器中加载所述掩膜图像,将所述掩膜图像中标记的多个特征点像素按照响应函数值大小进行排序,确定所述掩膜图像中前N个响应函数值最大的特所述GPU的第三计算着色器中加载所述颜色图像,根据所述M个四2.根据权利要求1所述的方法,其特征在于,所述根据所述M个四维随机常量确定所述颜色图像中的特征点像素的相邻像素亮度点像素偏移所述第一随机偏移量后的第一像素颜色值以及偏移所述第二随机偏移量后的计算所述第二像素亮度值与所述第一像素亮将所述第一颜色图像的一个特征点像素的特征向量按照S个整型变量将所述第二颜色图像的一个特征点像素的特征向量按照S个整型变量3将所述第一颜色图像的分段存储的第i个整型变量与所述第二颜色图像的分段存储的将统计得到的1的个数,作为所述第一颜色图像的一个特征点像素与所述第二颜色图7.根据权利要求1至6中任一项所述的方法,其特征计算管线的局部工作组的尺寸等于所述GPU的第一计算着色器中计算管线的局部工作组的计算管线的局部工作组的尺寸与全局工作组的尺寸之乘积等于所述GPU的第二计算着色器中计算管线的局部工作组的尺寸等于所述GPU的第三计算将所述掩膜图像中的特征点像素的位置索引值乘以指定的随机在所述局部工作组包括16×16个线程的情况下,得到256个调所述将所述掩膜图像中标记的多个特征点像素按照响应函数值大小进4对于W/16×H/16个局部工作组,利用所述GPU的原子操作atomicMax,值从大到小排列;对于W/16×H/16个局部工作组,从N×W/16×H/16个特征点中确定全对于W/16×H/16个局部工作组,将每个局部工作组中前N个响应函数值最大的特征点从所述第二着色器存储缓冲区存储的N×W/16×H/16个特征点中确定全局工作组中前每个局部工作组中前N个响应函数值最大的特征点依次存储于第二着色器存储缓冲区,包对于W/16×H/16个局部工作组,按照位置索引将每个局部工作组中前N个响应函数值按照所述位置索引将所述共享缓存区中的特征点拷贝到所述第二着色器存储缓冲区在所述将所述最小特征距离的两个特征向量所属的特征点,从所述第一颜色图像对应的掩膜图像中提取所述第一特征点从所述第二颜色图像对应的掩膜图像中提取所述第二特征点5[0002]目前,在图像处理和机器视觉领域以及诸如自动驾驶,VR/AR等图形渲染相关应[0003]由于目前所采用的特征点匹配算法需要大量的像素计算[0007]根据所述第一颜色图像的N个特征点对应的N个特征向量和所述第二颜色图像的N个特征点对应的N个特征向量,确定所述第一颜色图像的每个特征点分别与所述第二颜色[0008]若所述N个特征距离中的最小特征距离小于预设距离阈值,则将所述最小特征距[0010]在所述GPU的第一计算着色器中加载掩膜图像,根据所述掩膜图像中的特征点像素的图像坐标数据生成M个四维随机常量;所述掩膜图像是对所述颜色图像进行特征点识[0011]在所述GPU的第二计算着色器中加载所述掩膜图像,将所述掩膜图像中标记的多个特征点像素按照响应函数值大小进行排序,确定所述掩膜图像中前N个响应函数值最大相邻像素亮度差确定所述前N个响应函数值最大的特征点的特征向量,作为所述颜色图像6着色器中加载颜色图像并根据四维随机常量确定颜色图像中前N个响应函数值最大的特征构成随机数队列。[0018]在一些可能实现方式中,所述M个四维随机常量中的每个四维随机常量包括第一述第二像素亮度值与所述第一像素亮度值之间的7一特征点像素对应的特征向量是一组256位的0或1的图形渲染管线内部直接访问图像资源,可以避免在GPU与CPU之间经过内存的数据拷贝操素的特征向量按照S个整型变量分段存储;将所述第二颜色图像的一个特征点像素的特征第二颜色图像的分段存储的第i个整型变量进行异或操作,i取1,…,S;利用所述GPU的图像的一个特征点像素与所述第二颜色图像的一个特位0或1的序列。可以利用GPU的bitCount()指令统计每个异或结果中1的个数,并将8个异[0027]在一些可能实现方式中,所述GPU的第三计算着色器中计算管线的局部工作组的三计算着色器中计算管线的全局工作组的尺寸等于所述GPU的第一计算着色器中计算管线[0028]在一些可能实现方式中,所述GPU的第二计算着色器中计算管线的局部工作组的尺寸与全局工作组的尺寸之乘积等于掩膜图像的尺寸。所述GPU的第二计算着色器中计算管线的局部工作组的尺寸等于所述GPU的第三计算着色器中计算管线的局部工作组的尺8[0032]在一些可能实现方式中,在所述根据所述掩膜图像中像素的图像坐标数据生成M工作组,将每个局部工作组中前N个响应函数值最大的特征点依次存储于第二着色器存储缓冲区;从所述第二着色器存储缓冲区存储的N×W/16×H/16个特征点中确定全局工作组16个局部工作组,按照位置索引将每个局部工作组中前N个响应函数值最大的特征点存储9[0041]本申请提出了一种移动端设备通过GPU实时且低功耗地进行图像特征匹配的技共享缓存以及线程工作组的原子运算等GPU的特有功能,对图形渲染管线中的不同图像的图形渲染管线之间的数据拷贝和上下文切换的开销。[0066]图14A为本申请实施例中在通过计算着色器计算随机变量时指定计算管线的全局[0067]图14B为本申请实施例中在通过计算着色器计算随机变量时存储随机变量的示意[0068]图15为本申请实施例中在通过计算着色器进行特征点排序时指定计算管线的全[0069]图16为本申请实施例中在通过计算着色器进行特征点排序时以局部工作组为单[0070]图17为本申请实施例中在通过计算着色器进行特征点排序时分段存储各个局部[0071]图18A为本申请实施例中在通过计算着色器进行特征点排序时对各个局部工作组[0072]图18B为本申请实施例中在通过计算着色器进行特征点排序时对各个局部工作组[0073]图19为本申请实施例中通过计算着色器进行特征点排序后保留掩膜图像中响应[0074]图20为本申请实施例中对掩膜图像中响应值最大的N个特征点分别计算特征向量[0084]目前,在图像处理和机器视觉领域以及诸如自动驾驶,VR/AR等图形渲染相关应根据两帧图像的特征点之间的特征向量进行图像是将特征匹配和机器视觉应用到诸如VR/AR应用等图形渲染领域,如何高效地与图形渲染形渲染生成的图像特征点进行匹配的过程中,通过在图形渲染管线内部直接访问图像资应用中直接在渲染管线中利用GPU特有的数据执行特征点匹配操作,在保证匹配精确度的[0094]也就是说,本申请实施例利用GPU的一些特性功能以及直接在图形渲染管线中处[0100]计算着色器:是一种能够灵活运用GPU高速运算处理非图形任务的着色器,即在[0104]gl_GlobalInvocationID:表示当前执行单元在全局工作组中的位置,为三维变[0105]gl_LocalInvocationIndex是通过将执行单元的三维变量转换后的一维索引,是[0111]本申请提出了在软件层面的图像处理加速方案,利用GPU的一些特性功能以及直[0112]本申请实施例提供的基于GPU的图像特征匹配方法,可以应用在具有显示功能的(Pad)、带无线收发功能的电脑、虚拟现实(virtualreality,VR)终端设备、增强现实[0116]参见图4B,CPU包括控制器、一个或多个算术逻辑单元(arithmeticandlogic到需要渲染的物体后逐个调用系统对应的图形API,每个物体都会调用一次Drawcall,该备在特征匹配和机器视觉算法方面的功耗,例如在应用于诸如VR/AR之类的图形渲染应用图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、Android系统分为四层,从上至下分别为应用程序层(applications),应用程序框架层(applicationframework),安卓运行时(Androidruntime)模块和系统库,以及内核层[0131]应用程序框架层为应用程序层的应用程序提供应用编程接口(application[0137]本申请实施例提供的基于GPU的图像特征匹配方法的执行主体可以为上述的电子[0138]下面在先介绍本申请实施例提供的基于GPU的图像特征匹配方法之前,先结合具体的实施例介绍本申请实施例提供的基于GP中利用GPU特有的数据执行特征点识别操作,在保证识别精确度的前提下大大提升识别效(glGenerateMipmap函数)[0151]此外,本申请实施例创建R16FG16F格式且与上述颜色图像大小相同的深度图像(还被称为纹理图像)DepthMipMap,通过纹理绑定指令(glBindTexture函数)将深度图像DepthMipMap也绑定为操作图像,以及调用纹理映射指令(glGenerateMipmap函数)生成金案相对于相关技术的改进点表现在:在GPU侧除了将颜色图像绑定作为操作图像并生成对以基于颜色图像和深度图像两方面的图像数据来确定图像中的角点并计算角点的响应函后在相机坐标系中对这四个像素的相机空间坐标求平均,得到图像金字塔第i层级的相机[0157]View_mip_i_1(x,y)=(x,y,Depth_mip_i_1(x,y),1.0)*Inverse三维相机坐标系,得到图像金字塔第i_1层像素点(x,y)对应的相机空间坐标View_mip_i[0185]View_mip_i(x,y)表示在三维相机坐标系中经过对i_1层级四个像素点的相机空间坐标求平均后得到的第i层级像素的相机空间坐标。View_mip_i(x,y)包括如下三个分素深度值均转换到相机坐标系,然后在相机坐标系中对这四个像素的相机空间坐标求平[0201]View_mip_0(x,y)=(x,y,Depth_mip_0(x,y),1.0)*Inverse[0219]View_mip_0([0226]View_mip_1(x,y)=(View_mip_0(x,y)+View_mip_0(x+1,y)+Vi[0236]View_mip_1(x,y)=(x,y,Depth_mip_1(x,y),1.0)*Inverse[0254]View_mip_1([0261]View_mip_2(x,y)=(View_mip_1(x,y)+View_mip_1(x+1,y)+Vi[0270]按照上述方式,可依次计算出图像金字塔的第3层对应的深度值Depth_mip_3(x,[0274]在本申请实施例中,可以通过计算颜色图像的每个像素在周围区域内的亮度差[0275]由于角点是与周围像素存在明显差异的点,因此角点可以作为图像中的特征应的缩放系数参数为4,表示取金字塔中的第四图层。具体可以根据实际使用需求进行设[0283]在GPU的计算着色器中,图像亮度信息可以包括16×16像素块中各个像素的亮度[0293]如下表2所示,计算Intensity(x,y)与Intensity(x_2,y)的亮度之差的绝对值,Intensity(x,y)与Intensity(x+2,y)的亮度之差的绝对值,Intensity(x,y)与Intensity[0296]然后,在GPU的计算着色器中判断像素亮度之差的绝对值是否大于或等于预设亮[0303]针对上一步骤判定的满足初选条件的像素点,根[0304]Pos(x,y,z)=[(x,y)*2.0_1.0,Depth_mip_4(x,y),1.0]*Inverse[0312]按照像素点的深度信息及坐标转换,再计算像素点(x_2,y)的二维图像坐标Pos[0314]按照像素点的深度信息及坐标转换,再计算像素点(x,y_2)的二维图像坐标Pos[0315]按照像素点的深度信息及坐标转换,再计算像素点(x,y+2)的二维图像坐标Pos[0318]在本申请实施例中,在GPU的计算着色器中针对16×16像素块区域内的每个像素[0320]下面详细说明在GPU的计算着色器中对步骤102识别出的角点像素计算响应函数[0330](3)根据上述(1)计算得到的深度值,计算角点像素(x,y)x方向和y方向的深度差[0335]在本申请实施例中,可以针对16×16像素块区域内的每[0338]这样,根据角点像素的响应函数值从角点像素中筛选出些16×16像素块区域内存在一个或多个特征点,而有些16×16像素块区域内不存在特征[0340]因此,通过步骤103可以确定出每个16×16像素块区域内的所有特征点及其响应[0343]由于通过步骤103确定的16×16像素块区域内可能存在局部聚集的相似特征点,16×16像素块区域内所有特征点的响应函数值取最大值,以剔除掉局部聚集的相似特征称为共享变量1和共享变量2。共享变量1用于保存当前工作组里面最大的响应值max_照步骤104可以确定出每个线程工作组中16×16个线程的局部最大响应值,这样可以确定[0360]根据线程工作组的共享缓存变量分别记录的多个局部最大响应值以及局部最大[0361]在本申请实施例中,将深度图像DepthMipMap中的每个像素的G通道都初始化为LocalInvocationIndex=0,则将线程工作组1的最大响应值max_response写到深度图像[0367]本申请方案在图形渲染应用中直接在渲染管线中利用GPU特有的数据执行特征点[0368]以上结合具体的实施例介绍本申请实施例提供的通过GPU进行图像特征点识别的二颜色图像进行特征点识别及匹配为例进行示例[0376]下面对本申请实施例提供的图像特征点匹配的流程进行简在本申请实施例中,电子设备通过GPU实现图像特征点匹配的流程可以包括下述的步骤计算着色器的线程组间共享缓存以及原子操作,结合步骤1中生成的256个ivec4的随机常[0385]其中,对两帧图像的N个特征向量计算两两之间的特征距离,并统计最小特征距[0388]本申请提出了一种移动端设备通过GPU实时且低功耗地进行图像特征匹配的技共享缓存以及线程工作组的原子运算等GPU的特有功能,对图形渲染管线中的不同图像的说明本申请实施例提供的基于GPU的图像特征匹配方法[0394]在计算随机数的步骤中,将第一掩膜图像和第二掩膜图像加载到GPU的计算着色[0401]在本申请实施例中,根据偏移量参数(offset)对每个4维随机向量(R)进行调像采用的局部工作组尺寸为16×16,即图像块尺寸为16×16,那么偏移量参数可以在[0409]如图14B所示,在本申请实施例中,可以将256个调整后的4维随机向量缓存于针对每帧掩膜图像生成随机数种子,然后利用三角函数和指数函数对随机数种子进行运根据自身的索引(gl_LocalInvocationIndex)对全局工作组中的每个局部工作组提取特征点。局部工作组中可能包含一个或多个特征[0427]本申请实施例通过分段排序、分段存储的方式来确定整张图像上响应值最大的N的多个分段中存储的所有局部像素区域内的所有特征点进行排序,选出整张图像中前N个个特征点按照响应值从大到小排序存入SSBO2中的一个子数组中,子数组的其他5个位置提升特征点匹配的效率,本申请实施例采用特征点分段排序的方式筛选出全局最大的N个[0435]对步骤202中生成的第一特征点序列和第二特征点序列,计算两个特征点序列中[0439]在GPU的计算着色器中,局部工作组的每一个线程根据自身的位置索引(gl_LocalInvocationIndex)作为下标,在SSBO1中缓存的256个4维随机向量中查找与该下标[0444]首先,利用每个线程自身的坐标(gl_GlobalInvocationID.xy)和随机偏移量offsetUV_i1对第一颜色图像(Color1)进行采样,获取线程对应的像素点的第一rgb颜色[0445]Color1_i.rgba=texture(Color1,gl_GlobalInvocationID.xy+offsetUV_i1)[0447]上述Color1_i.rgba表示像素点的第一rgb颜色值。第一rgb颜色值为4维向量:[0448]类似地,利用每个线程自身的坐标(gl_GlobalInvocationID.xy)和随机偏移量offsetUV_i2对第一颜色图像(Color1)进行采样,获取线程对应的像素点的第二rgb颜色[0449]Color1_i+1.rgba=texture(Color1,gl_GlobalI[0452]Intensity_i=Color1_i.r*0.299+C[0454]Intensity_i+1=Color1_i+1.r*0.299+Color1_i+1.g*0.587+Color1_i+1.b*[0458]在本申请实施例中,对16×16个线程分别进行上述运算,可以得到16×16个[0459]然后,将16×16个result输出到特征向量(specialVector)的第gl_[0470]在上述步骤202中针对一帧图像生成第一特征点序列(记为KeyPoint1)以及针对1的序列。[0474]第一特征点序列KeyPoint1中的任一个特征向量可以表示为KeyPoint1.svData[0]、KeyPoint1.svData[1]、KeyPoint1.svData[2]、KeyPoint1.svData[3]、[0475]第二特征点序列KeyPoint1中的任一个特征向量可以表示为KeyPoint2.svData[0]、KeyPoint2.svData[1、KeyPoint2.svData[2]、KeyPoint2.svData[3]、[0476]在本申请实施例中,可以对第一特征点序列KeyPoint1和第二特征点序列[0488]在本申请实施例中,通过对第一特征点序列KeyPoint1和第二特征点序列[0489]在本申请实施例中,可以利用GPU的bitCount()指令统计每个异或结果中1的个[0490]svDistance=bitCount(result0)+bitCount(result1)+bitCount(result2)+bitCount(result3)+bitCount(result4)+bitCount(result5)+bitCount(result6)+i)的特征向量,与第二特征点序列(Keypoint2)中所有特征点(Keypoint2_i,i依次取一特征点(KeyPoint1_1)的特征向量,与第二特征点序列(Keypoint2)中N个特征点二特征点(KeyPoint1_2)的特征向量,与第二特征点序列(Keypoint2)中N个特征点Keypoint2_2,…,Keypoint2_N的特征向量,分别计算两两之间的特征距离。对于特征点[0498]其中,Keypoint1_1、Keypoint1_2,…,Keypoint1_N分别表示第一特征点序列Keypoint2_N分别表示第二特征点序列(Keypoint2)的第一特征点、第二特个特征距离中的最小值,并将N个特征距离中的最小值与预设距离阈值(svDistance_Min)[0505]如果N个特征距离中的距离最小值小于预设距离阈值,那么距离最小值对应的两[0509]下面说明本申请实施例提供的基于GPU实现的特征点识别及匹配的应用场景。下[0510]本申请实施例提供的基于GPU实现的特征点识别及匹配可以应用于游戏图像的帧根据匹配的特征点对的图像坐标信息,计算每个像素的运动矢量(例如包括平移和/或旋

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论