基于cuda的多视频实时全景融合拼接方法
【专利摘要】本发明公开了一种基于CUDA的多视频实时全景融合拼接方法,包括系统初始化的步骤和实时视频帧融合的步骤;所述系统初始化的步骤在CUDA架构的CPU端运行,所述实时视频帧融合的步骤在GPU端运行,且S21、S22、S23和S24基于CUDA架构的流处理模式:在GPU端创建4个并发处理的执行流,将S21、S22、S23和S24部署到相应的流处理序列中。本技术方案跟现有技术相比,有如下优点:1)实现多视频无鬼影和色彩亮度差异的实时全景视频;2)对机场场面、园区、广场等大场景超高分辨率整体监视效果显著,应用前景广泛。
【专利说明】基于CUDA的多视频实时全景融合拼接方法
【技术领域】
[0001]本发明涉及图形图像处理以及计算机视觉领域,特别是一种基于CUDA的多视频实时全景融合拼接方法。
【背景技术】
[0002]全景视频拼接技术的目的是通过散落在场景中的多个不同点位的相机捕捉的实时视频信息拼接融合成全景实时视频。有些视频影像采集设备比如鱼眼摄像机,虽然可以包含几乎360度全景的场景信息,但是图像的分辨率有限,纹理细节不够丰富;有些高清网络摄像机虽然可以拍摄分辨率高达上千万像素的图像,但是受摄像机视角的限制,容纳的视景较小。全景视频拼接的目的正是为了同时满足全景视角和高清场景信息这两个方面的需求。
[0003]该项技术的基础是图像拼接,主要流程包括:视频帧图像的预处理、图像配准、图像变换以及图像融合。考虑到固定摄像机的视频拼接帧率问题,现阶段使用较多的全景视频拼接技术方案是计算出固定位置的多个摄像机变换模型,然后将采集到的每一帧视频图像进行变换后,再使用加权融合或渐入渐出融合输出全景视频。
[0004]现阶段的全景视频拼接系统迫切需要一种可以解决融合图像中的图像错位和鬼影的快速视频拼接算法。在此基础之上,为了进一步解决融合速度慢的问题,应充分利用CUDA (Compute Unified Device Architecture,统一计算设备架构)架构的并行计算能力,使得生成的全景视频帧率较高且稳定。
【发明内容】
[0005]本发明的目的是提供一种基于CUDA的多视频实时全景融合拼接方法,旨在解决传统算法中,相邻视频帧图像间重叠区域拼接融合后出现的鬼影和图像错位现象,最终生成无鬼影和色彩亮度差异的实时全景视频。该方法充分结合CPU和GPU各自的优点,构建两者协同工作的编程模型;利用相邻视频源间重叠区域的特征自动配准求解变换映射矩阵、各路视频帧图像透视变换至同一坐标系中、计算寻找拼接融合缝、针对视频帧图像进行融合缝的动态修正。最终实现超高分辨率大视角的大场景实时整体视频。
[0006]实现本发明目的的技术方案如下:一种基于CUDA的多视频实时全景融合拼接方法,包括系统初始化的步骤,包括
[0007]Sll:获取每路视频源的第一帧图像,执行配准操作以及柱面投影变换,求得整体的透视变换模型;
[0008]S12:根据透视变换模型对每路视频源的第一帧图像进行透视变换处理,同时求得透视变换掩模图以及相邻视频源间的重叠区掩模图;
[0009]S13:针对相邻视频源的视频图像,使用动态规划算法分别求得拼接缝上的像素点坐标;
[0010]S14:将透视变换掩模图、重叠区掩模图以及拼接缝像素点传输至GPU端的各个缓冲区中;实时视频帧融合的步骤,包括
[0011]S21:利用透视变换掩模图将每路视频源图像序列中的同一帧图像变换至同一坐标系下;
[0012]S22:利用重叠区掩模图求得每路视频源图像序列中的同一帧图像的重叠区能量值图;
[0013]S23:利用拼接缝像素点缓冲区中的坐标信息以及重叠区能量值图,使用拼接缝的实时动态修正算法重新计算拼接缝像素点坐标,并利用该坐标值更新拼接缝像素点缓冲区;
[0014]S24:根据上述求得的新拼接缝,基于均值坐标无缝融合算法消除各相邻图像间的拼接痕迹;
[0015]S25:将生成的全景视频巾贞图像传输至已绑定的OpenGL的像素缓冲区中,进行快速图像渲染;
[0016]S26:针对后续视频流中的每一帧视频图像重复S21至S25 ;
[0017]所述系统初始化的步骤在CUDA架构的CPU端运行,所述实时视频帧融合的步骤在GPU端运行,且S21、S22、S23和S24基于CUDA架构的流处理模式:在GPU端创建4个并发处理的执行流,将S21、S22、S23和S24部署到相应的流处理序列中。
[0018]进一步地,所述获取每路视频源的第一帧图像,执行配准操作以及柱面投影变换,求得整体的透视变换模型的方法是:对每路视频的第一帧图像,使用SURF算法进行图像配准,经RANSAC算法去除误匹配后,求得相邻两路视频图像之间的透视变换矩阵;利用柱面坐标转换计算得到整体的透视变换模型。
[0019]更进一步地,所述求得透视变化掩膜图的方法是:创建与透视变换矩阵维度大小一样的透视变换掩模矩阵,使其空间大小可以包含进所有变换后的像素;在参与变换的所有源图像的像素位置上将掩模矩阵对应位置的值置为1,非变换像素的位置上将掩模矩阵对应位置的值置为0,得到掩膜矩阵图,掩膜矩阵图对应的显示图即为透视变化掩膜图;所述求重叠区掩模图的方法是:将透视变化掩模图上存在实际像素位置的掩模矩阵元素的值设为0.5,则两幅图像变换后的重叠区位置上的矩阵元素的值为I ;遍历整个掩模矩阵将非I的元素值重置为0,得到重叠区掩膜矩阵,重叠区掩膜矩阵对应的显示图即为重叠区掩膜图。
[0020]进一步地,所述使用动态规划算法求得拼接缝上的像素点坐标,包括
[0021]S41:计算重叠区的像素能量值矩阵En ;
[0022]S42:构建方向矩阵Dir以及能量和矩阵Cum ;
[0023]S43:方向矩阵Dir中搜索拼接缝坐标路径。
[0024]进一步地,所述使用拼接缝的实时动态修正算法重新计算拼接缝像素点坐标,包括并行寻找拼接缝位置修正起始点的步骤:在当前重叠区像素能量值图中,根据加载的前一帧图像的拼接缝像素点坐标进行比对寻找拼接缝变化的起始点位置,比对规则如下:如果在上一次拼接缝的像素点位置附近的同一行两个像素邻域内仍旧是最小值,则在这一次拼接缝的像素路径中,该像素点位置不需要修改,否则即为修改的起始点坐标;
[0025]GPU端搜索新的拼接缝修改路径:在GPU端根据拼接缝位置变化起始点和贪婪搜索算法重新搜索新的拼接缝位置点。[0026]进一步地,所述基于均值坐标无缝融合算法消除各相邻图像间的拼接痕迹,包括以拼接缝上像素点的色彩强度计算权值,去依次校正待融合图像的重叠区中的每一个像素的色彩强度校正值。
[0027]本技术方案跟现有技术相比,有如下优点:
[0028]I)实现多视频无鬼影和色彩亮度差异的实时全景视频
[0029]2)对机场场面、园区、广场等大场景超高分辨率整体监视效果显著,应用前景广泛。
【专利附图】
【附图说明】
[0030]图1是系统流程图;
[0031]图2是摄像机采集源图;
[0032]图3是掩模矩阵中像素变换位置的值为255的掩模显示图。;
[0033]图4是图像拼接缝划分示意图;
[0034]图5是未加改进融合缝处理效果截图(图中框标明有明显痕迹的拼接缝);
[0035]图6是改进的均值坐标融合去缝效果截图(图中框内原拼接缝痕迹得到有效改进);
[0036]图7是4台300万像素高清摄像机视频拼接的效果截图。
[0037]图8是CUDA并发流处理模式示意图。
【具体实施方式】
[0038]下面结合【专利附图】
【附图说明】本发明的实施过程,以四台摄像机(Cameral, Camera2,Camera3, Camera4)输出的四路视频源为例。
[0039]如图1所示,本发明的实现过程主要分为系统初始化和实时视频帧融合两个阶段:
[0040]1、系统初始化阶段:
[0041](I)获取各路视频的第一帧图像,执行配准操作以及柱面投影变换以求得整体的透视变换模型;
[0042](2)根据透视变换模型对每路视频的第一帧图像进行透视变换处理,同时求得透视变换掩模图以及相邻视频源(Cameral-2, Camera2_3, Camera3_4)间的重叠区掩模图;
[0043](3)针对相邻的两台摄像机的视频图像使用动态规划算法分别求得拼接缝上的像素点坐标;
[0044](4)将初始化阶段中求得的透视变换掩模图、重叠区掩模图以及拼接缝像素点传输至GPU端的各个缓冲区中。
[0045]2、实时视频帧融合阶段:
[0046](I)利用透视变换掩模图将各路摄像机的每一帧图像变换至同一坐标系下;
[0047](2)利用重叠区掩模图求得每一帧图像的重叠区能量值图;
[0048](3)利用拼接缝像素点缓冲区中的坐标信息以及重叠区能量值图,使用拼接缝的实时动态修正算法重新计算拼接缝像素点坐标,并利用该坐标值更新拼接缝像素点缓冲区;[0049](4)根据上述求得的新拼接缝,基于均值坐标无缝融合算法消除各相邻图像间的明显的认为拼接痕迹;
[0050](5)将生成的全景视频帧图像传输至已绑定的OpenGL的像素缓冲区中,进行快速的图像渲染;
[0051](6)针对后续摄像机视频流中的每一帧视频图像重复步骤(1)-(5)。
[0052]在上述两个阶段中,系统初始化阶段是运行在CPU端的,且只在系统首次运行时执行一次;实时视频帧融合阶段是运行在GPU端的,在整个系统中针对每一帧视频图像一直处于高效运行状态。在GPU端,依靠CUDA的多线程数据并行处理模式,即对图像每个像素构建一个处理线程,实现对数据处理实行并行处理。与此同时,在处理视频帧图像序列的流程中,基于CUDA架构的流处理模式,对处理任务实行并发执行模式,这样进一步提升了整体流程的执行效率。
[0053]其中,初始化阶段中透视变换掩模图的求解:
[0054]采集相邻网络摄像机的第一帧图像,使用SURF算法进行图像配准,经RANSAC算法去除误匹配之后,可以计算得到两幅图像间的投影变换矩阵。
[0055]如图2中选取的是某公司外部视景图像,根据该算法计算得到的⑵图相对于(I)图的投影变换矩阵是:
【权利要求】
1.一种基于CUDA的多视频实时全景融合拼接方法,其特征在于,包括 系统初始化的步骤,包括 511:获取每路视频源的第一帧图像,执行配准操作以及柱面投影变换,求得整体的透视变换模型; 512:根据透视变换模型对每路视频源的第一帧图像进行透视变换处理,同时求得透视变换掩模图以及相邻视频源间的重叠区掩模图; 513:针对相邻视频源的视频图像,使用动态规划算法分别求得拼接缝上的像素点坐标; 514:将透视变换掩模图、重叠区掩模图以及拼接缝像素点传输至GPU端的各个缓冲区中;实时视频帧融合的步骤,包括 S21:利用透视变换掩模图将每路视频源图像序列中的同一帧图像变换至同一坐标系下; S22:利用重叠区掩模图求得每路视频源图像序列中的同一帧图像的重叠区能量值图; S23:利用拼接缝像素点缓冲区中的坐标信息以及重叠区能量值图,使用拼接缝的实时动态修正算法重新计算拼接缝像素点坐标,并利用该坐标值更新拼接缝像素点缓冲区; 524:根据上述求得的新拼接缝,基于均值坐标无缝融合算法消除各相邻图像间的拼接痕迹; 525:将生成的全景视频帧图像传输至已绑定的OpenGL的像素缓冲区中,进行快速图像渲染; 526:针对后续视频流中的每一帧视频图像重复S21至S25 ; 所述系统初始化的步骤在CUDA架构的CPU端运行;所述实时视频帧融合的步骤在GPU端运行,且S21、S22、S23和S24基于CUDA架构的流处理模式:在GPU端创建4个并发处理的执行流,将S21、S22、S23和S24部署到相应的流处理序列中。
2.如权利要求1所述的基于CUDA的多视频实时全景融合拼接方法,其特征在于,所述获取每路视频源的第一帧图像,执行配准操作以及柱面投影变换,求得整体的透视变换模型的方法是:对每路视频的第一帧图像,使用SURF算法进行图像配准,经RANSAC算法去除误匹配后,求得相邻两路视频图像之间的透视变换矩阵;利用柱面坐标转换计算得到整体的透视变换模型。
3.如权利要求2所述的基于CUDA的多视频实时全景融合拼接方法,其特征在于,所述求得透视变化掩膜图的方法是:创建与透视变换矩阵维度大小一样的透视变换掩模矩阵,使其空间大小可以包含进所有变换后的像素;在参与变换的所有源图像的像素位置上将掩模矩阵对应位置的值置为1,非变换像素的位置上将掩模矩阵对应位置的值置为0,得到掩膜矩阵图,掩膜矩阵图对应的显示图即为透视变化掩膜图;所述求重叠区掩模图的方法是:将透视变化掩模图上存在实际像素位置的掩模矩阵元素的值设为0.5,则两幅图像变换后的重叠区位置上的矩阵元素的值为I ;遍历整个掩模矩阵将非I的元素值重置为0,得到重叠区掩膜矩阵,重叠区掩膜矩阵对应的显示图即为重叠区掩膜图。
4.如权利要求1所述的基于CUDA的多视频实时全景融合拼接方法,其特征在于,所述使用动态规划算法求得拼接缝上的像素点坐标,包括S41:计算重叠区的像素能量值矩阵En ; S42:构建方向矩阵Dir以及能量和矩阵Cum ; S43:方向矩阵Dir中搜索拼接缝坐标路径。
5.如权利要求1所述的基于CUDA的多视频实时全景融合拼接方法,其特征在于,所述使用拼接缝的实时动态修正算法重新计算拼接缝像素点坐标,包括 并行寻找拼接缝位置修正起始点的步骤:在当前重叠区像素能量值图中,根据加载的前一帧图像的拼接缝像素点坐标进行比对寻找拼接缝变化的起始点位置,比对规则如下: 如果在上一次拼接缝的像素点位置附近的同一行两个像素邻域内仍旧是最小值,则在这一次拼接缝的像素路径中,该像素点位置不需要修改,否则即为修改的起始点坐标; GPU端搜索新的拼接缝修改路径:在GPU端根据拼接缝位置变化起始点和贪婪搜索算法重新搜索新的拼接缝位置点。
6.如权利要求1所述的基于CUDA的多视频实时全景融合拼接方法,其特征在于,所述基于均值坐标无缝融合算法消除各相邻图像间的拼接痕迹,包括以拼接缝上像素点的色彩强度计算权值,去依次校正待融合图像的重叠区中的每一个像素的色彩强度校正值。
【文档编号】G06T5/50GK103997609SQ201410260404
【公开日】2014年8月20日 申请日期:2014年6月12日 优先权日:2014年6月12日
【发明者】兰时勇, 吴岳洲, 吴健, 黄飞虎 申请人:四川川大智胜软件股份有限公司, 四川大学