一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于GPU实现的全景图缝隙实时缝合方法及系统与流程

2021-12-14 22:11:00 来源:中国专利 TAG:

一种基于gpu实现的全景图缝隙实时缝合方法及系统
技术领域
1.本发明涉及vr技术领域,特别是涉及一种基于gpu实现的全景图缝隙实时缝合方法及系统。


背景技术:

2.目前的vr设备渲染沉浸式场景有3d场景实时渲染和全景图虚拟场景,前者对硬件要求较高,后者虽然实时性不高,但是真实感强,硬件需求低,有较广泛的应用面。全景图使用立体盒渲染时,由于贴图设置问题可能导致拼接处出现缝隙、漏光等瑕疵。
3.目前解决瑕疵的主流处理技术,是设置贴图采样算法来静态避免这些瑕疵,先进行贴图采样设计,再进行正常渲染管线。


技术实现要素:

4.本发明的目的是提供一种基于gpu实现的全景图缝隙实时缝合方法及系统,以解决上述现有技术存在的问题。
5.为实现上述目的,本发明提供了如下方案:
6.本发明提供一种基于gpu实现的全景图缝隙实时缝合方法,包括:
7.基于相机位置及方向、全景图立体盒和位置及方向,获取需要缝合的缝隙;
8.基于所述需要缝合的缝隙附近的像素对所述需要缝合的缝隙进行缝合,消除缝隙。
9.可选的,基于相机位置及方向、全景图立体和位置及方向,获取需要缝合的缝隙之前,所述方法还包括:
10.基于所述相机获取相机的位置和拍摄方向;
11.基于所述相机位置获取全景图立体盒,并获取所述全景图立体盒的位置和方向。
12.可选的,基于相机位置及方向、全景图立体盒和位置及方向,获取需要缝合的缝隙的过程中包括:
13.基于所述相机的位置和拍摄方向获取相机矩阵及变换矩阵;
14.基于所述全景图立体盒的位置和方向获取全景图立体盒的若干个顶点;
15.对所述全景图立体盒的若干个顶点进行处理,获得若干个可见顶点;
16.获取每个所述可见顶点附近的顶点,作为相邻顶点;
17.基于所述可见顶点和所述相邻顶点获取需要缝合的缝隙。
18.可选的,对所述全景图立体盒的顶点进行处理的方法为:对所述全景图立体盒的若干个顶点进行视锥裁剪,获得若干个所述可见顶点。
19.可选的,对所述全景图立体盒的若干个顶点进行视锥裁剪,获得若干个所述可见顶点的过程中包括:
20.基于公式(1)获得六个裁剪平面;
21.基于所述全景图立体盒的若干个顶点的坐标值,判断所述顶点是否在六个所述裁
剪平面的同一侧,若在则所述顶点在视锥内,作为所述可见顶点;
22.对每个所述顶点进行判断,获取若干个所述可见顶点;
23.其中所述公式(1)如下所示:
24.x(m41 m11) y(m42 m12) z(m43 m13) w(m44 m14)=0(1)
25.式中m11、m12、m13、m14、m41、m42、m43、m44均为所述相机矩阵的元素,x、y、z为变量,w=1。
26.可选的,基于所述全景图立体盒的若干个顶点的坐标值,判断所述顶点是否在六个所述裁剪平面的同一侧包括:
27.获取六个所述裁剪平面的空间平面方程,获取所述顶点的位置坐标;
28.将所述位置坐标分别代入六个所述裁剪平面的空间平面方程中,获得的值若大于或等于零,则所述顶点在视锥内,所述顶点作为所述可见顶点;
29.获得的值若小于零,则在视锥外,剔除所述顶点。
30.可选的,基于所述可见顶点和所述相邻顶点获取需要缝合的缝隙的过程中包括:
31.将所述可见顶点和所述相邻顶点连线,获得可见边;
32.基于所述变换矩阵,将所述可见边从世界空间转换到屏幕空间,获得所述需要缝合的缝隙。
33.可选的,基于所述需要缝合的缝隙附近的像素对所述需要缝合的缝隙进行缝合的过程中包括:
34.基于所述可见边,获取从正常渲染管线输出的渲染图片上的缝隙中心像素;
35.判断所述缝隙中心像素是否在所述需要缝合的缝隙的附近;
36.采样所述缝隙中心像素的邻域像素;
37.基于所述所述缝隙中心像素的邻域像素对所述需要缝合的缝隙进行平滑处理,消除缝隙。
38.一种基于gpu实现的全景图缝隙实时缝合系统,包括:
39.全景图缝隙侦测子系统和像素融合子系统,其中,
40.所述全景图缝隙侦测子系统和所述像素融合子系统连接;
41.所述全景图缝隙侦测子系统用于获取需要缝合的缝隙;
42.所述像素融合子系统,基于所述需要缝合的缝隙附近的像素对所述需要缝合的缝隙进行缝合,消除缝隙。
43.本发明公开了以下技术效果:
44.本发明通过使用变换矩阵查找缝隙,以及通过关键点查找像素,缩短了研发流程,提高了研发效率;将处理点从渲染管线前的人工设置,移到渲染管线后的自动处理,减少了因失误而造成瑕疵的次数,尤其是频繁改动及大规模资源应用的场景;采用本发明的中变换矩阵的方式计算,cpu和gpu联合计算,节省了计算量,提高了计算效率,通过使用像素算法融合缝隙附近的像素,使得全景场景更加逼真,更加细腻。
附图说明
45.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施
例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
46.图1为本发明实施例中所提到的传统方案示意图;
47.图2为本发明实施例中的系统结构示意图。
具体实施方式
48.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
49.传统的方案如图1所示,本发明通过shader的方式处理图像,使用gpu硬件加速,效率较高;且采用的算法没有特殊要求,对gpu要求低,可以广泛应用;其中shader为一段运行在gpu(图像处理芯片)上的代码片段,在矩阵运算、像素计算等大规模计算上有优势。
50.本发明提供一种基于gpu实现的全景图缝隙实时缝合方法,包括:
51.基于相机位置及方向、全景图立体盒和位置及方向,获取需要缝合的缝隙;
52.基于所述需要缝合的缝隙附近的像素对所述需要缝合的缝隙进行缝合,消除缝隙。
53.可选的,基于相机位置及方向、全景图立体和位置及方向,获取需要缝合的缝隙之前,所述方法还包括:
54.基于所述相机获取相机的位置和拍摄方向;
55.基于所述相机位置获取全景图立体盒,并获取所述全景图立体盒的位置和方向。
56.可选的,基于相机位置及方向、全景图立体盒和位置及方向,获取需要缝合的缝隙的过程中包括:
57.基于所述相机的位置和拍摄方向获取相机矩阵及变换矩阵;
58.基于所述全景图立体盒的位置和方向获取全景图立体盒的若干个顶点;
59.对所述全景图立体盒的若干个顶点进行处理,获得若干个可见顶点;
60.获取每个所述可见顶点附近的顶点,作为相邻顶点;
61.基于所述可见顶点和所述相邻顶点获取需要缝合的缝隙。
62.可选的,对所述全景图立体盒的顶点进行处理的方法为:对所述全景图立体盒的若干个顶点进行视锥裁剪,获得若干个所述可见顶点。
63.可选的,对所述全景图立体盒的若干个顶点进行视锥裁剪,获得若干个所述可见顶点的过程中包括:
64.基于公式(1)获得六个裁剪平面;
65.基于所述全景图立体盒的若干个顶点的坐标值,判断所述顶点是否在六个所述裁剪平面的同一侧,若在则所述顶点在视锥内,作为所述可见顶点;
66.对每个所述顶点进行判断,获取若干个所述可见顶点;
67.其中所述公式(1)是裁剪平面的数学表述公式,如下所示:
68.x(m41 m11) y(m42 m12) z(m43 m13) w(m44 m14)=0(1)
69.式中m11、m12、m13、m14、m41、m42、m43、m44均为所述相机矩阵的元素,x、y、z为变
量,w=1。
70.可选的,基于所述全景图立体盒的若干个顶点的坐标值,判断所述顶点是否在六个所述裁剪平面的同一侧包括:
71.获取六个所述裁剪平面的空间平面方程,获取所述顶点的位置坐标;
72.将所述位置坐标分别代入六个所述裁剪平面的空间平面方程中,获得的值若大于或等于零,则所述顶点在视锥内,所述顶点作为所述可见顶点;
73.获得的值若小于零,则在视锥外,剔除所述顶点。
74.可选的,基于所述可见顶点和所述相邻顶点获取需要缝合的缝隙的过程中包括:
75.将所述可见顶点和所述相邻顶点连线,获得可见边;
76.基于所述变换矩阵,将所述可见边从世界空间转换到屏幕空间,获得所述需要缝合的缝隙。
77.可选的,基于所述需要缝合的缝隙附近的像素对所述需要缝合的缝隙进行缝合的过程中包括:
78.基于所述可见边,获取从正常渲染管线输出的渲染图片上的缝隙中心像素;
79.判断所述缝隙中心像素是否在所述需要缝合的缝隙的附近;
80.采样所述缝隙中心像素的邻域像素;
81.基于所述所述缝隙中心像素的邻域像素对所述需要缝合的缝隙进行平滑处理,消除缝隙。
82.本实施例公开的系统包含全景图缝隙侦测系统、像素融合系统两部分,这两个系统将以图像后处理的方式追加到渲染管线的后端。
83.对比传统方案,本系统的创新点体现在流程上,以及快速计算的思想:将处理点从渲染管线前的人工设置,移到渲染管线后的自动处理。
84.处理流程如图2所示,一种基于gpu实现的全景图缝隙实时缝合系统,包括:
85.全景图缝隙侦测子系统和像素融合子系统,其中,
86.所述全景图缝隙侦测子系统和所述像素融合子系统连接;
87.所述全景图缝隙侦测子系统用于获取需要缝合的缝隙;
88.所述像素融合子系统,基于所述需要缝合的缝隙附近的像素对所述需要缝合的缝隙进行缝合,消除缝隙。
89.1、缝隙侦测系统
90.原理:根据相机位置及方向、全景图立体盒位置及方向这几个变量,快速侦测需要缝合的缝隙。相比传统方案使用图片逐像素侦测,此方案会快很多。
91.实现:此部分计算量小,可直接在cpu计算。具体步骤如下:
92.1)将相机矩阵(matirxcamera)和全景图立体盒的顶点(vertices)及变换矩阵(matrixwvp)作为输入;
93.2)对输入的顶点做视锥裁剪,选出可见顶点。具体如下:
94.首先根据平面的数学表述公式x(m41 m11) y(m42 m12) z(m43 m13) w(m44 m14)=0得到左裁剪平面,同样方法可以得到其他5个裁剪面(空间平面方程为ax by cz d=0),其中m41等为相机矩阵的元素值,x、y、z为变量,w=1。
95.将全景图立体盒的8个顶点的坐标值(x,y,z)代入得到的共6个面,若ax by cz d
=0,则点在平面上;
96.若ax by cz d<0,则点在平面的一侧;
97.若ax by cz d>0,则点在平面的另一侧;
98.这样,如果顶点在6个面的同一侧,则此顶点在视锥内,否则在视锥外,被剔除。
99.3)根据立体盒的顶点特征,快速查找可见顶点的相邻顶点。上一步得到的顶点便是可见顶点,接下来查找这些顶点的相邻顶点。具体查找算法如下:
100.因为是特征顶点,其值为(

1,

1,

1)、(

1,1,1)等类似值,只需将其中一个值取反便得到一个相邻顶点,如(

1,

1,

1)的相邻顶点有(

1,1,

1)、(1,

1,

1)、(

1,

1,1)三个;
101.4)由可见顶点和其相邻顶点组合得到可见边(两个顶点组成一条边),可见边即缝隙;
102.5)将可见边从世界空间转换到屏幕空间,输出给像素融合系统,进入下一步(详见像素融合系统)。转换方法为,顶点与变换矩阵链相乘(即v1=v0*matrixwvp),变换矩阵包括世界矩阵(worldmatrix)、视矩阵(viewmatrix)和投影矩阵(projectmatrix),此处已经将这3个矩阵连乘,组成变换矩阵(即matrixwvp=worldmatrix*viewmatrix*projectmatrix),节省计算量,v0为变换前的顶点,v1为变换后的顶点。
103.优点:由于只输入8个顶点,输出6

8条关键边,比传统的图像分析算法逐像素分析(数百万像素)效率高许多。
104.2、像素融合系统
105.原理:使用像素算法融合缝隙附近的像素,消除瑕疵。
106.实现:使用像素修复算法对缝隙附近的像素进行缝合修复。像素计算需要消耗大量的算力,并且可以平行计算,所以很适合放在gpu上,用shader来实现。具体步骤如下:
107.1)根据输入的可见边(线段[p1,p2]),在渲染图片上查找缝隙中心像素。可见边已经经过转换,和渲染图片的像素同处于屏幕空间,很容易判定该像素是否在缝隙(可见边)附近。具体来说,如果想判断一个点是否在线段上,那么要满足以下两个条件:(1)(q

p1)*(p2

p1)=0;(2)q在以p1,p2为对角顶点的矩形内;
[0108]
2)对缝隙中心像素q,采样其邻域像素,采24个像素即可。使用最简单的矩形采样,即距离q上下左右2个像素以内的所有像素将被使用;
[0109]
3)对采用像素进行平滑,消除缝隙。将上面得到的24个像素,加上中心像素共25个像素,进行平滑。这里的平滑算法不是本系统的核心部分,所以采用已有的算法即可;
[0110]
4)如果平滑效果不佳,可返回第2)步加大采样范围即可。
[0111]
优点:有缝隙形状和方位信息,可以选择更合适的修复算法,缝合效果更佳。
[0112]
以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献