当前位置: 首页 > 专利查询>江南大学专利>正文

一种基于嵌入式GPU的图像光流计算方法、装置以及设备制造方法及图纸

技术编号:32553197 阅读:66 留言:0更新日期:2022-03-05 11:53
本发明专利技术公开了一种基于嵌入式GPU的图像光流计算方法、装置、设备以及计算机可读存储介质。本发明专利技术通过对车载过程中采集的待测图像建立高斯金字塔模型,并根据嵌入式GPU的特性和所述高斯金字塔模型的层数动态调整计算检测窗口的大小,通过所述GPU对单精度浮点计算指令和半精度浮点计算指令进行转换,计算所述待测图像中特征点的光流。本发明专利技术所提供的方法通过建立金字塔层的动态窗口,解决了计算LK光流法时出现GPU线程负载不均的问题,通过GPU对单精度浮点计算指令和半精度浮点计算指令进行转换,将LK光流法的计算进行优化,从而提升了光流计算的效率。光流计算的效率。光流计算的效率。

【技术实现步骤摘要】
一种基于嵌入式GPU的图像光流计算方法、装置以及设备


[0001]本专利技术涉及人工智能领域,特别是涉及一种基于嵌入式GPU的图像光流计算方法、装置、设备以及计算机可读存储介质。

技术介绍

[0002]近年来并行计算的快速发展为解决计算量大、并行度高的问题提供了很好的解决方案。通过对光流算法中需要复杂处理的模块进行并行加速,能够极大地提高光流计算的实时性。
[0003]通过分析OpenCV实现的光流计算,可以发现其是将线程块组织成二维的形式,以一个线程块来处理一个窗口的计算,当以8*8的线程块来处理一个21*21的窗口大小的光流计算时,会出现线程计算负载不均的问题。
[0004]Pyramid LK光流算法本质上是从上一帧的初始点不断迭代计算得到下一帧的对应点的过程。从算法的层面来说:越大的窗口代表越高的算法鲁棒性,越小的窗口代表越高的计算准确性。从性能分析的层面来说:在串行计算模式中窗口的大小与计算量的大小成正比;而在并行计算模式中窗口大小的选择可能会带来负载不均衡问题。
[0005]在LK光流法中,采用FP32指令进行LK光流法的乘法计算,由于FP32指令的位数高,在计算过程中的数值复杂度高,影响整体算法的计算时间,导致LK光流法的计算效率低下。
[0006]综上所述可以看出,如何解决光流计算过程中的负载不均衡和优化光流计算效率是目前有待解决的问题。

技术实现思路

[0007]本专利技术的目的是提供一种基于嵌入式GPU的图像光流计算方法、装置、设备以及计算机可读存储介质,以解决光流计算过程中的负载不均衡,光流计算效率低的问题。
[0008]为解决上述技术问题,本专利技术提供一种基于嵌入式GPU的图像光流计算方法,包括:采集汽车自动驾驶中的连续帧图像,每间隔预设帧数选取一幅图像作为待测图像;通过GPU识别所述待测图像,提取所述待测图像的所有特征点并建立所述待测图像的高斯金字塔模型;根据所述GPU中线程块大小和所述高斯金字塔模型的金字塔层数,动态调整第i层金字塔层的检测窗口,使所述检测窗口大小为所述GPU中线程块大小的倍数,通过所述第i层金字塔层的检测窗口识别所述第i层金字塔层的特征点,其中,i∈[1,L];通过所述GPU对单精度浮点计算指令和半精度浮点计算指令进行转换,利用LK光流法,通过所述第i层金字塔层的检测窗口,计算所述第i层金字塔层特征点的残余光流,通过叠加所有金字塔层中特征点的残余光流,得到所述待测图像中所有特征点的光流。
[0009]优选地,所述根据所述GPU中线程块大小和所述高斯金字塔模型的金字塔层数,动态调整第i层金字塔层的检测窗口,使所述检测窗口大小为所述GPU中线程块大小的倍数包括:根据所述GPU中8*8线程块和金字塔层的原检测窗口大小Win
Ori
得到第一层金字塔层的新检测窗口大小
[0010][0011]通过所述原检测窗口从1到i+1层金字塔层所计算的像素点个数与所述新检测窗口从1到i层金字塔层所计算的像素点个数得到第i+1层金字塔层新检测窗口大小的判定数f
i+1

[0012][0013]根据所述第i+1层金字塔层新检测窗口的判定数f
i+1
,基于所述第i层金字塔层的新检测窗口大小得到所述第i+1层金字塔层新检测窗口的大小:
[0014][0015]优选地,所述在所述高斯金字塔模型中提取所述待测图像所有特征点包括:将所述待测图像划分为预设大小的网格区域,通过对每个网格区域执行KLT角点算法,在所述待测图像的每个网格区域中提取所述待测图像的特征点;在所述高斯金字塔模型中,根据每层金字塔层图像的大小,将所述网格区域和所述特征点按照预定比例进行缩放。
[0016]优选地,所述通过所述GPU对单精度浮点计算指令和半精度浮点计算指令进行转换,利用LK光流法,通过所述第i层金字塔层的检测窗口,计算所述第i层金字塔层特征点的残余光流,通过叠加所有金字塔层中特征点的残余光流,得到所述待测图像中所有特征点的光流包括:基于LK光流法的三种假设条件,通过第i层金字塔层的检测窗口识别的所述第i层金字塔层特征点,得到所述第i层金字塔层检测窗口中特征点的梯度;通过所述GPU对单精度浮点计算指令和半精度浮点计算指令进行转换,基于所述第i层金字塔层检测窗口中特征点的梯度,计算所述第i层金字塔层检测窗口中特征点的残余光流;通过移动所述第i层金字塔层检测窗口计算所述第i层金字塔层中所有特征点的残余光流,得到所述第i层金字塔层中所有特征点的残余光流;根据所述第i层金字塔层中所有特征点的残余光流,刷新第i+1层金字塔层中所有特征点的初始位置,计算所述第i+1层金字塔层中所有特征点的残余光流,直到完成所有金字塔层中特征点残余光流的计算。
[0017]优选地,所述通过所述GPU对单精度浮点计算指令和半精度浮点计算指令进行转换,基于所述第i层金字塔层检测窗口中特征点的梯度,计算所述第i层金字塔层检测窗口中特征点的残余光流包括:基于所述第i层金字塔层检测窗口中特征点(x,y)的梯度,计算梯度协方差矩阵G:
[0018][0019]其中,I
x
和I
y
为所述第i层金字塔层检测窗口中特征点(x,y)的梯度;利用所述GPU将单精度浮点计算指令转换为半精度浮点计算指令,计算梯度差值矩阵b中的乘法运算;
[0020]其中,所述梯度差值矩阵b为:
[0021][0022]δII
x
和δII
y
为所述第i层金字塔层检测窗口特征点(x,y)的梯度差值;利用所述GPU将半精度浮点计算指令转换回单精度浮点计算指令,对所述梯度差值矩阵b进行累加计算,将所述梯度差值矩阵b进行缩放,得到更新后的梯度差值矩阵b;根据所述梯度协方差矩阵G和所述梯度差值矩阵b,计算所述第i层金字塔层检测窗口中特征点的残余光流d:
[0023]d=G
‑1b
[0024]利用计算出的d值更新下一次迭代计算中所述特征点的位置,基于位置更新后的特征点梯度更新所述梯度协方差矩阵G和所述梯度差值矩阵b,将所述d值进行迭代运算,直到当前d的模长小于预定值时停止迭代计算,得到所述第i层金字塔层检测窗口中特征点的残余光流。
[0025]优选地,所述得到所述第i层金字塔层检测窗口中特征点的残余光流后包括:步骤S601:基于第一待测图像第i层金字塔层特征点的残余光流,在第二待测图像的第i层金字塔层中找到对应点;步骤S602:反向计算所述对应点的残余光流,根据所述对应点残余光流,在所述第一待测图像中追踪与所述第二待测图像中对应点对应的验证点位置;步骤S603:对所述验证点位置进行判定,当所述验证点在所述特征点的预定范围内时,保留所述特征点,停止反向计算所述对应点的残余光流;步骤S604:当所述验证点在所述特征点的预定范围外时,判断计算所述对应点的残余光流的次数是否小于预定值;步骤S605:当所述计算所述对应点的残余光流的次数小于等于所述预定值时,则通过所述对应点的残本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于嵌入式GPU的图像光流计算方法,其特征在于,包括:采集汽车自动驾驶中的连续帧图像,每间隔预设帧数选取一幅图像作为待测图像;通过GPU识别所述待测图像,提取所述待测图像的所有特征点并建立所述待测图像的高斯金字塔模型;根据所述GPU中线程块大小和所述高斯金字塔模型的金字塔层数,动态调整第i层金字塔层的检测窗口,使所述检测窗口大小为所述GPU中线程块大小的倍数,通过所述第i层金字塔层的检测窗口识别所述第i层金字塔层的特征点,其中,i∈[1,L];通过所述GPU对单精度浮点计算指令和半精度浮点计算指令进行转换,利用LK光流法,通过所述第i层金字塔层的检测窗口,计算所述第i层金字塔层特征点的残余光流,通过叠加所有金字塔层中特征点的残余光流,得到所述待测图像中所有特征点的光流。2.如权利要求1所述的方法,其特征在于,所述根据所述GPU中线程块大小和所述高斯金字塔模型的金字塔层数,动态调整第i层金字塔层的检测窗口,使所述检测窗口大小为所述GPU中线程块大小的倍数包括:根据所述GPU中8*8线程块和金字塔层的原检测窗口大小Win
Ori
得到第一层金字塔层的新检测窗口大小新检测窗口大小通过所述原检测窗口从1到i+1层金字塔层所计算的像素点个数与所述新检测窗口从1到i层金字塔层所计算的像素点个数得到第i+1层金字塔层新检测窗口大小的判定数f
i+1
:根据所述第i+1层金字塔层新检测窗口的判定数f
i+1
,基于所述第i层金字塔层的新检测窗口大小得到所述第i+1层金字塔层新检测窗口的大小:3.如权利要求1所述的方法,其特征在于,所述提取所述待测图像的所有特征点并建立所述待测图像的高斯金字塔模型包括:将所述待测图像划分为预设大小的网格区域,通过对每个网格区域执行KLT角点算法,在所述待测图像的每个网格区域中提取所述待测图像的特征点;建立所述待测图像的高斯金字塔,根据每层金字塔层图像的大小,将所述网格区域和所述特征点按照预定比例进行缩放。4.如权利要求1所述的方法,其特征在于,所述通过所述GPU对单精度浮点计算指令和半精度浮点计算指令进行转换,利用LK光流法,通过所述第i层金字塔层的检测窗口,计算所述第i层金字塔层特征点的残余光流,通过叠加所有金字塔层中特征点的残余光流,得到所述待测图像中所有特征点的光流包括:基于LK光流法的三种假设条件,通过第i层金字塔层的检测窗口识别的所述第i层金字
塔层特征点,得到所述第i层金字塔层检测窗口中特征点的梯度;通过所述GPU对单精度浮点计算指令和半精度浮点计算指令进行转换,基于所述第i层金字塔层检测窗口中特征点的梯度,计算所述第i层金字塔层检测窗口中特征点的残余光流;通过移动所述第i层金字塔层检测窗口计算所述第i层金字塔层中所有特征点的残余光流,得到所述第i层金字塔层中所有特征点的残余光流:根据所述第i层金字塔层中所有特征点的残余光流,刷新第i+1层金字塔层中所有特征点的初始位置,计算所述第i+1层金字塔层中所有特征点的残余光流,直到完成所有金字塔层中特征点残余光流的计算。5.如权利要求4所述的方法,其特征在于,所述通过所述GPU对单精度浮点计算指令和半精度浮点计算指令进行转换,基于所述第i层金字塔层检测窗口中特征点的梯度,计算所述第i层金字塔层检测窗口中特征点的残余光流包括:基于所述第i层金字塔层检测窗口中特征点(x,y)的梯度,计算梯度协方差矩阵G:其中,I
x
和I
y
为所述第i层金字塔层检测窗口中特征点(x,y)的梯度;利用所述GPU将单精度浮点...

【专利技术属性】
技术研发人员:柴志雷孙瑞鑫谢双镱赵海旭姜博文陈世海吴秦刘登峰陈璟肖志勇
申请(专利权)人:江南大学
类型:发明
国别省市:

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

1