CN114895796A - 一种基于全景图的空间交互方法、装置及应用 - Google Patents
一种基于全景图的空间交互方法、装置及应用 Download PDFInfo
- Publication number
- CN114895796A CN114895796A CN202210829642.7A CN202210829642A CN114895796A CN 114895796 A CN114895796 A CN 114895796A CN 202210829642 A CN202210829642 A CN 202210829642A CN 114895796 A CN114895796 A CN 114895796A
- Authority
- CN
- China
- Prior art keywords
- panorama
- panoramic
- dimensional
- bitmap
- dimensional model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/66—Analysis of geometric attributes of image moments or centre of gravity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/01—Indexing scheme relating to G06F3/01
- G06F2203/012—Walk-in-place systems for allowing a user to walk in a virtual environment while constraining him to a given position in the physical environment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Architecture (AREA)
- Human Computer Interaction (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提出了基于全景图的空间交互方法、装置及应用,包括获取全景图以及对应所述全景图的三维模型;依据至少一组对齐点对齐所述全景图和所述三维模型;将所述三维模型的第一三维空间数据转换为二维的全景深度位图和全景法线位图,在所述全景图上叠加全景深度位图和全景法线位图;选定所述全景图上的至少一交互位置,并获取所述交互位置对应的全景深度位图的深度数据值和全景法线位图的法线数据值作为第二三维空间数据,反馈所述第二三维空间数据,实现全景图和三维模型自动对齐,并融合全景图和三维模型得到可反馈三维空间数据的全景位图,基于全景位图获取全景图的三维空间数据,进而给用户在全景图的虚拟空间内提供真实的三维交互体验感。
Description
技术领域
本申请涉及虚拟现实领域,特别是涉及一种基于全景图的空间交互方法、装置及应用。
背景技术
全景图,是一种通过广角的表现手段以及绘画、相片、视频、三维模型等形式,尽可能多表现出周围的环境的图像表示形式。目前在全景图的虚拟空间里,全景图拍摄精度越来越高,照片也越来越漂亮,但是全景图依然还是二维平面的,导致全景图没有三维空间感,使得用户在全景图里的交互非常不真实,比如在全景图中移动光标但识别不出墙面或地面的区别,点击全景图里的按钮、或推开一扇门、或打开一盏灯等,用户得不到反馈,导致用户交互体验的真实感很差。
现有技术CN111667591A提供了一种方案,其将全景图像生成待展示空间的全局3D模型的材质贴图,并利用全景映射算法将全景图像映射到3D模型中,将全景图作为三维模型的贴图,以实现全景图像和3D模型在不同视角下的转换。在该方案中,全景图像本身还是不具有三维空间感,其仅是二维平面的全景图像和对应3D模型的对应,用户依旧无法在全景图中达到很好的空间交互感。
发明内容
本申请实施例提供了一种基于全景图的空间交互方法、装置及应用,实现全景图和三维模型自动对齐,并融合全景图和三维模型得到可反馈三维空间数据的全景深度位图和全景法线位图,基于全景深度位图和全景法线位图获取全景图的三维空间数据,进而给用户在全景图的虚拟空间内提供真实可靠的三维交互体验感。
第一方面,本申请实施例提供了一种基于全景图的空间交互方法,所述方法包括:获取全景图以及对应所述全景图的三维模型;
依据至少一组对齐点对齐所述全景图和所述三维模型;
将所述三维模型的第一三维空间数据转换为二维的全景深度位图和全景法线位图;
在所述全景图上叠加所述全景深度位图和所述全景法线位图;
选定所述全景图上的至少一交互位置,并获取所述交互位置对应的全景深度位图的深度数据值和全景法线位图的法线数据值作为第二三维空间数据,反馈所述第二三维空间数据。
第二方面,本申请实施例提供了一种基于全景图的空间交互装置,包括:
原始数据获取单元,用于获取全景图以及对应所述全景图的三维模型;
对齐单元,用于依据至少一组对齐点对齐所述全景图和所述三维模型;
位图获取单元,用于将所述三维模型的第一三维空间数据转换为二维的全景深度位图和全景法线位图;
叠加单元,用于在所述全景图上叠加所述全景深度位图和所述全景法线位图;
交互单元,用于选定所述全景图上的至少一交互位置,并获取所述交互位置对应的全景深度位图的深度数据值和全景法线位图的法线数据值作为第二三维空间数据,反馈所述第二三维空间数据。
第三方面, 本申请实施例提供了一种一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述的基于全景图的空间交互方法。
本发明的主要贡献和创新点如下:
本申请实施例基于现实场景的全景图和扫描获取的三维模型的对齐点实现全景图和三维模型的自动旋转和移动对齐,并对对齐后的全景图和三维模型进行融合叠加以渲染得到全景深度位图和全景法线位图,将三维空间数据的深度数据值和法线数据值分别存储在全景深度位图和全景法线位图的RGB值中。当用户点击全景图时,获取对应点击位置的全景深度位图和全景法线位图的RGB值并推算出全景图的三维空间数据,以实现用户在全景图的虚拟空间内获取真实的三维交互体验。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1到图5是根据本申请实施例在对齐三维模型和全景图的示意图;
图6是根据本申请实施例的基于全景图的空间交互方法的流程图;
图7是根据本申请实施例的基于全景图的空间交互装置的结构框图;
图8是根据本申请实施例的电子装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
实施例一
本申请旨在提出一种基于全景图的空间交互方法、装置及应用,可将全景图和三维模型对齐后实现融合重叠以获取全景深度位图或全景法线位图,巧妙地将全景图的三维空间数据转换为全景深度位图的RGB值和全景法线位图的RGB值。当用户在全景图的虚拟空间内交互时,可获取对应的全景深度位图的RGB值和全景法线位图的RGB值进而获取真实的三维体验交互感。
本申请实施例提供了一种基于全景图的空间交互方法,具体地,参考图6,所述方法包括:
获取全景图以及对应所述全景图的三维模型;
依据至少一组对齐点对齐所述全景图和所述三维模型;
将所述三维模型的第一三维空间数据转换为二维的全景深度位图和全景法线位图;
在所述全景图上叠加所述全景深度位图和所述全景法线位图;
选定所述全景图上的至少一交互位置,并获取所述交互位置对应的全景深度位图的深度数据值和全景法线位图的法线数据值作为第二三维空间数据,反馈所述第二三维空间数据。
本方案巧妙地将三维模型的第一三维空间数据渲染成二维的全景深度位图和全景法线位图,以全景深度位图和全景法线位图的RGB值来反映全景图的三维空间数据,以使得用户可真实地在全景图的三维模型中体验三维空间交互感。
具体地,在“获取全景图以及对应所述全景图的三维模型”步骤中,全景图的内容和获取方式不做限制,全景图的内容可以是室内空间、室外空间或者特定物件;全景图的获取方式可以是使用专业的全景图拍摄设备进行拍摄,也可以拍摄多张图像再由专业软件合成得到,当然根据需要还可以在同一角度连续拍摄多张全景图。
三维模型的模型内容同于全景图的图像内容。也就是说,本方案锁定全景图后,构建所述全景图的现实场景的三维模型。
在本方案的实施例中,所述三维模型通过扫描所述全景图所在的现实场景获取得到。值得一提的是,本方案可以使用激光雷达的手持终端设备或者其他激光扫描设备对全景图所在的现实场景进行扫描获取得到所述三维模型,但这并不作为唯一的获取方式,另外值得说明的是,本方案不需要高成本的深度相机的三维模型,进而可以实现低成本的交互方案
以下以激光雷达的手持终端设备扫描获取三维模型为例进行示例说明,此时,获取三维模型包括以下步骤:
激光扫描:打开扫描建模应用程序,比如3d Scanner APP等,手持终端设备缓慢对全景图所在的现实场景沿顺时针或逆时针扫描,扫描的时候,扫描建模应用程序里会实时显示扫描成功区域的三维网格线,缓慢移动设备并确保三维网格线保持连续,直到现实场景的所有外表面都成功扫描完成,并确保所有全景图拍摄的范围都扫描完成;
获取三维模型:在扫描建模应用程序里点击扫描项目,点击“转换”按钮,选择“FBX”格式,扫描后的三维模型将会以“FBX”文件格式保存到设备里。
在“依据至少一组对齐点对齐所述全景图和所述三维模型”中,选取所述对齐点,计算所述三维模型相对于所述全景图的旋转角度和偏差位置,基于所述旋转角度和所述偏差位置处理所述三维模型的位置至所述三维模型和所述全景图对齐。
在本方案中,至少选择三组对齐点,其中每组对齐点包括位于所述全景图上的全景计算点以及对应的位于三维模型上的三维计算点。全景图上的全景计算点可以组成三角形。
具体的,该步骤包括:
以拍摄所述全景图的全景图拍摄相机的拍摄位置为中心构建可覆盖所述三维模型的球形模型,选取所述全景图作为所述球形模型的背景图,并记录所述全景图拍摄的初始视角;在所述全景图拍摄相机的相机屏幕上选取所述全景图上的三个全景计算点,并在所述三维模型上选择和三个所述全景计算点分别对应的三个三维计算点,每个全景计算点和对应的三维计算点组成一组对齐点;
计算三个所述三维计算点在所述全景图拍摄相机的相机屏幕上的三维投影三角形的三维重心,以及所述全景计算点在全景图拍摄相机的相机屏幕上的全景投影三角形的全景重心;以所述全景重心、三维重心和拍摄位置组成的平面的法线为第一旋转轴,以三维重心、拍摄位置以及全景重心的角度为第一旋转角度,以拍摄位置为旋转中心以所述第一旋转角度旋转所述三维模型;获取每组三维投影点和全景计算点同全景重心的偏差角度,计算三组偏差角度的平均值作为第二旋转角度,以拍摄位置和所述全景重心的连线为第二旋转轴,以所述第二旋转角度旋转所述三维模型;
计算获取所述三维模型中同所述拍摄位置相对应的三维模型相机位置坐标,以所述三维模型相机位置坐标为中心点计算偏差位置,并移动所述三维模型。
具体的,在“计算获取所述三维模型中同所述拍摄位置相对应的三维模型相机位置坐标”步骤中,依据所述拍摄位置和全景图拍摄相机的初始视角,计算通过所述对齐点的相机视线的水平角度和垂直角度;依据所述水平角度,计算所述三维模型相机在水平投影面的水平面投影点坐标;依据所述垂直角度,计算所述三维模型相机在垂直投影面上的垂直面投影点坐标;整合所述水平面投影点坐标和所述垂直面投影点坐标得到三维模型相机位置坐标。
为了更清楚地说明本方案的三维模型和全景图是如何实现对齐的,以下配合附图进行解释说明。
首先,在三维软件里,三维软件可选择为比如unity3d 或者 Unreal等,设置一个半径可以覆盖三维模型的球形模型,导入全景图作为球形模型的贴图,这样全景图就作为了背景图片,暂时设置这个球形模型的中心点坐标为全景图拍摄相机的拍摄位置O(x,y,z),并设置全景图拍摄相机的初始视角,初始视角比如为60度,导入扫描的三维模型文件,放置在全景图拍摄相机的视角范围内。
其次,在三维软件中旋转全景图拍摄相机,设置并保存全景图的初始视角。在全景图拍摄相机的相机屏幕上选择三个全景计算点a(u1,v1)、b(u2,v2)、c(u3,v3),同时,在三维模型里选择与之对齐的三维计算点A(x1,y1,z1)、B(x2,y2,z2) 、C(x3,y3,z3),如图1所示。
为了使得三维模型和全景图的角度近似对齐,本方案基于三组对齐点自动计算三维模型的旋转角度。如图2所示,计算三维计算点A(x1,y1,z1)、B(x2,y2,z2) 、C(x3,y3,z3),在全景图拍摄相机的相机屏幕上的三维投影点a'、 b' 、c' ,得到三维投影三角形△a'b'c',计算三维投影三角形△a'b'c'的三维重心为d’(u0’,v0’);计算全景计算点在在全景图拍摄相机的相机屏幕上的全景投影点a,b,c,得到全景投影三角形△abc,计算全景投影三角形△abc的全景重心为d(u0,v0),将全景重心和三维重心重叠以对齐全景投影三角形和三维投影三角形,以全景图拍摄相机的拍摄位置O为中心,△d’Od法线为第一旋转轴,把整个三维模型从Od’旋转到Od,第一旋转角度为∠d’Od。
值得说明的是,当将全景重心和三维重心重叠后,由于投影形变的原因,全景投影三角形△abc和三维投影三角形△a'b'c’的顶点不一定会完全重合,故需要计算出三组三维投影点和全景投影点同全景重心的偏差角度∠ada’、 ∠bdb’、∠cdc’,以全景图拍摄相机的拍摄位置为中心,以全景图拍摄相机的拍摄位置和全景重心的连线为第二旋转轴,把整个三维模型以第二旋转角度为(∠ada’+∠bdb’+∠cdc’) / 3进行旋转,这样就根据这三组对齐点,使得三维模型跟全景图的角度近视对齐。
在旋转了三维模型后还需要将三维模型进行平移,平移至将三维模型以三维模型相机位置坐标为中心点。
以下重点阐述如何计算三维模型相机位置坐标:
获取全景图拍摄相机的屏幕宽度以及初始视角,依据三角函数计算两个所述全景计算点在水平投影面上的两个全景水平投影点的两个全景相机视角水平角度,获取两个全景计算点对应的三维计算点在水平投影面上的两个三维水平投影点,以所述全景相机视角水平角度在所述水平投影面上设置两条通过三维水平投影点的射线,取射线的交点为三维模型相机在水平投影面的投影位置点p’(x,y,0);
获取全景图拍摄相机的屏幕高度以及初始视角,依据三角函数计算两个所述全景计算点在垂直投影面上的两个全景垂直投影点的两个全景相机视角垂直角度,获取两个全景计算点对应的三维计算点在垂直投影面上的两个三维垂直投影点,以所述全景相机视角垂直角度在所述垂直投影面上设置两条通过三维垂直投影点的射线,取射线的交点为三维模型相机在垂直投影面的投影位置点p’(x,0,z)。
如图3和图4所示,根据相机视角和屏幕坐标点,计算通过对齐点的全景相机视角水平角度,平面EFGH为相机屏幕的可视范围,相机屏幕坐标系以左上角的E(0,0)点为原点,右下角的H(w,h)点为屏幕坐标最大点,w指屏幕宽度,h指屏幕高度;初始视角∠α是指镜头所能覆盖的范围,如相机的初始视角为60度,则相机水平视角∠Go'H为60度。
根据三角函数,可以计算出全景图拍摄相机的屏幕上的全景计算点a(u1,v1)在水平投影面上的全景水平投影点a'的全景相机视角水平角度∠b'a'o'= arctan(w / 2 *cot(α / 2) / (w / 2 - u1) ),同理,可以计算出全景图拍摄相机的屏幕上的全景计算点b(u2,v2)在在水平投影面上的全景水平投影点b’的全景相机视角水平角度∠a'b'o'=arctan(w / 2 * cot(α / 2) / (u2 – w / 2) );三模模型上的三维计算点A(x1,y1,z1)和B(x2,y2,z2)在水平投影面上的投影点分别为a’’(x1,y1,0)和b’’(x2,y2,0),根据上一步中计算出的∠b'a'o'和∠a'b'o'的角度值,在水平投影面上,分别设置两条通过点a’’和点b’’的射线,两条射线的交点为三维模型相机在水平投影面上的投影位置点p’(x,y,0),这样就获得了三维模型相机的中心点P坐标的x和y值。
根据同样的算法,计算三维模型相机在垂直投影面上的投影位置点坐标:全景图拍摄相机的垂直视角∠β= ∠α * h / w,根据三角函数,可以计算出全景图拍摄相机的屏幕上的全景计算点a(u1,v1)在垂直投影面上的全景垂直投影点a'的全景相机视角垂直角度∠b'a'o'= arctan(h / 2 * cot(β/ 2) / (h / 2 - v1) ),和全景图拍摄相机的屏幕上的全景计算点b(u2,v2)在垂直投影面上的全景垂直投影点b’的全景相机视角垂直角度∠a'b'o'= arctan(h / 2 * cot(β/ 2) / (v2 – h / 2) ),根据∠b'a'o'和∠a'b'o'的角度值,在垂直投影面上,分别设置两条通过投影点a’’和b’’的射线,两条射线的交点为三维模型相机在垂直投影面上的投影点的坐标p’(x,0,z), 这样就获得了三维模型相机的中心点P坐标的z值,从而,在三维模型空间坐标系中,获取同所述拍摄位置相对应的三维模型相机位置坐标P(x,y,z)。
通过以上的操作可得到对齐的三维模型以及全景图,需要将所述三维模型的第一三维空间数据转换为二维的全景深度位图和全景法线位图。
所述全景深度位图存储三维模型的深度数据,深度是虚拟空间渲染当中的重要概念,它控制着三维世界中物体渲染的空间遮挡关系,通过软件程序算法,把所有顶点都计算到xy = {-1,1}, z = {0,1}的长方体的NDC坐标系中。由于全景深度位图的RGB值一致,所以全景深度位图都是以灰度图呈现 ,物体距离摄像机越远,全景深度位图的深度值就越大,越接近1,就是白色。为了便于逆向获取深度数据值,利用软件内置矩阵转换函数(-mul(UNITY_MATRIX_MV, v.vertex).z-near) /(far-near),把非线性深度数据值转换成线性的{0,1}区间 ,作为保存的深度数据值。
所述全景法线位图存储三维模型的法线数据,法线是虚拟空间中面的单位向量,用来表述一个面的朝向,通常把法线向量(x, y, z)存储到一个纹理贴图RGB值中,x 轴(左/右)被保存到红色通道, y 轴(上/下)被保存到绿色通道, z 轴(前/后)被保存到蓝色通道,同时,按照 Color.rgb=Normal.xyz / 2.0 + 0.5 把{-1,1}向量区间转换成{0,1},然后乘以255以满足颜色RGB值的要求。
具体的,在“将所述三维模型的第一三维空间数据转换为二维的全景深度位图和全景法线位图”步骤中,从所述三维模型的第一三维空间数据提取深度数据值保存在二维的全景深度位图的RGB值,提取法线数据值保存在二维的全景法线位图的RGB值。如图5所示,图5的左边为三维模型,右边为渲染得到的全景深度位图和全景法线位图。
在本方案的一实施例中,提取所述第一三维空间数据的非线性的深度数据值,并利用内置矩阵转换函数将非线性的深度数据值转换为线性的深度数据值,以使得深度数据值在{0,1}区间之间内。一般而言,深度数据值越靠近1则表示深度越深。所述全景深度位图的RGB值的R/G/B值均为深度数据值。
在本方案中,所述全景深度位图的RGB值的R/G/B值均是一致的,可用深度数据值来替代R/G/B值,比如若计算得到的深度数据值对应的浮点值为0.5,则得到的全景深度位图的RGB值为(0.5*255,0.5*255,0.5*255)。
在本方案的一实施例中,提取所述三维模型的第一三维空间数据的非归一法线数据值,并非归一法线数据值将转换为{0,1}区间得到归一法线数据值,所述归一法线数据值二的x,y,z数据分别乘以255得到全景法线位图的RGB值。
具体的,可在三维软件中渲染所述三维模型的深度数据。在一具体示例中,比如在unity3d里,设置Camera.main.depthTextureMode = DepthTextureMode.Depth,这表明了将三维模型渲染出全景位图的深度数据,在Shader中声明_CameraDepthTexture 和_CameraDepthNormalsTexture,把深度数据值{0,1}和法线数据值{0,1}分别保存在全景深度位图的RGB值和全景法线位图的RBG值,使用360度全景渲染将渲染出和拍摄全景图完全一样按照2:1球面展开的全景深度位图和全景法线位图。
当然,在一些实施例中,为了实现在全景图上实现连续的全景图交互体验,可在对应的三维模型上选择特定区域设置为唯一值,且将所述唯一值保存在渲染的全景唯一位图的RGB值中。此时在所述全景图上叠加所述全景深度位图、全景唯一位图和所述全景法线位图。这样的话,当点击全景图上特定区域时,获取该交互位置对应的全景唯一位图的RGB值,并利用所述全景唯一位图的RGB值确定相同的区域。通过这种方式还可以区分全景图上的不同区域,相当于以所述全景唯一位图的RGB值唯一地标识全景图的特定内容。
比如设定全景图为车辆,现在需要将车辆的车门作为连续区域,则将车门对应的三维模型的特定区域设置为唯一值,并将唯一值保存在全景唯一位图的RGB值。比如,三维模型中某个门的唯一值设为红色(255,0,0),当点击位置的全景唯一位图的RGB值是(255,0,0)时,那么点击的就是这扇门的区域,从而可以当用户在全景图上点击车门区域时,根据此时全景唯一位图上的RGB值识别该特定车门的所有区域,并可播放针对该特定区域预先设定的存储信息,比如相应的播放拍摄这个车门的多张连续全景图照片,也可以加上后期制作的声音效果,这样就完成了一次非常真实的全景图动态交互体验。
值得一提的是,本方案在全景图上叠加所述全景深度位图以及所述全景法线位图,并在显示层隐藏所述全景深度位图以及所述全景法线位图。当用户在全景图上交互时,根据选定的全景图上的交互位置确定所述全景深度位图和所述全景法线位图的数据作为第二三维空间数据。具体的,获取所述全景深度位图的RGB值,选取RGB值的任意值转换得到深度数据值,进而获取所述交互位置同拍摄位置的距离。选取RGB值的任意值转换得到深度数据值的转换公式为:深度值=任意值/255*(far-near)+ near。
其中far是相机的远裁剪面距离,near是相机近裁剪面距离,裁剪面是布置在与相机的方向垂直的位置 ,近裁剪面及远裁剪面确定相机视野的开始和结束位置,比如far=100,near=0.1,那么相机的渲染范围就是沿相机方向从最近0.1到最远100的范围。
获取全景法线位图上的RGB值,将所述RGB值分别除以255得到法线向量(R/255,G/255,B/255),将法线向量转换为{-1,1}的法线数据值。将法线向量转换为{-1,1}的法线数据值的公式为: Normal.xyz=Color.rgb*2-1,以此公式把{0,1}向量区间转换成{-1,1},就获得了当前点击位置的法线数据值(x,y,z)。
当交互位置动态变化时,可实时获取交互位置对应的深度数据值和法线数据值,基于法线数据值可区分不同的平面,比如地面和墙壁。
示例性的,当用户在全景图上放置一个移动物体,当移动所述移动物体时,移动物体会根据移动对应的交互位置的深度数据值实时地放大或者缩小,同时还可以根据交互位置的法线数据值区分所述移动物体所在的平面。假设所述移动物体是瓶子,则可模拟瓶子在自由下落至地面时的反弹效果,给用户真实的交互体验。
实施例二
基于相同的构思,参考图7,本申请还提出了一种基于全景图的空间交互装置,包括:
原始数据获取单元,用于获取全景图以及对应所述全景图的三维模型;
对齐单元,用于依据至少一组对齐点对齐所述全景图和所述三维模型;
位图获取单元,用于将所述三维模型的第一三维空间数据转换为二维的全景深度位图和全景法线位图;
叠加单元,用于在所述全景图上叠加所述全景深度位图和所述全景法线位图;
交互单元,用于选定所述全景图上的至少一交互位置,并获取所述交互位置对应的全景深度位图的深度数据值和全景法线位图的法线数据值作为第二三维空间数据,反馈所述第二三维空间数据。
关于该实施例二中的同于实施例一的技术内容不再重复说明介绍。
实施例三
本实施例还提供了一种电子装置,参考图8,包括存储器404和处理器402,该存储器404中存储有计算机程序,该处理器402被设置为运行计算机程序以执行上述任一项基于全景图的空间交互方法实施例中的步骤。
具体地,上述处理器402可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecificIntegratedCircuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器404可以包括用于数据或指令的大容量存储器404。举例来说而非限制,存储器404可包括硬盘驱动器(HardDiskDrive,简称为HDD)、软盘驱动器、固态驱动器(SolidStateDrive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器404可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器404可在数据处理装置的内部或外部。在特定实施例中,存储器404是非易失性(Non-Volatile)存储器。在特定实施例中,存储器404包括只读存储器(Read-OnlyMemory,简称为ROM)和随机存取存储器(RandomAccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(ProgrammableRead-OnlyMemory,简称为PROM)、可擦除PROM(ErasableProgrammableRead-OnlyMemory,简称为EPROM)、电可擦除PROM(ElectricallyErasableProgrammableRead-OnlyMemory,简称为EEPROM)、电可改写ROM(ElectricallyAlterableRead-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(StaticRandom-AccessMemory,简称为SRAM)或动态随机存取存储器(DynamicRandomAccessMemory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器404(FastPageModeDynamicRandomAccessMemory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDateOutDynamicRandomAccessMemory,简称为EDODRAM)、同步动态随机存取内存(SynchronousDynamicRandom-AccessMemory,简称SDRAM)等。
存储器404可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的计算机程序指令。
处理器402通过读取并执行存储器404中存储的计算机程序指令,以实现上述实施例中的任意一种基于全景图的空间交互方法。
可选地,上述电子装置还可以包括传输设备406以及输入输出设备408,其中,该传输设备406和上述处理器402连接,该输入输出设备408和上述处理器402连接。
传输设备406可以用来经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的有线或无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备406可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
输入输出设备408用于全景图或三维模型等,输出的信息可以是融合了全景位图的全景图等。
可选地,在本实施例中,上述处理器402可以被设置为通过计算机程序执行以下步骤:
获取全景图以及对应所述全景图的三维模型;
依据至少一组对齐点对齐所述全景图和所述三维模型;
将所述三维模型的第一三维空间数据转换为二维的全景深度位图和全景法线位图;
在所述全景图上叠加所述全景深度位图和所述全景法线位图;
选定所述全景图上的至少一交互位置,并获取所述交互位置对应的全景深度位图的深度数据值和全景法线位图的法线数据值作为第二三维空间数据,反馈所述第二三维空间数据。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
通常,各种实施例可以以硬件或专用电路、软件、逻辑或其任何组合来实现。本发明的一些方面可以以硬件来实现,而其他方面可以以可以由控制器、微处理器或其他计算设备执行的固件或软件来实现,但是本发明不限于此。尽管本发明的各个方面可以被示出和描述为框图、流程图或使用一些其他图形表示,但是应当理解,作为非限制性示例,本文中描述的这些框、装置、系统、技术或方法可以以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某种组合来实现。
本发明的实施例可以由计算机软件来实现,该计算机软件由移动设备的数据处理器诸如在处理器实体中可执行,或者由硬件来实现,或者由软件和硬件的组合来实现。包括软件例程、小程序和/或宏的计算机软件或程序(也称为程序产品)可以存储在任何装置可读数据存储介质中,并且它们包括用于执行特定任务的程序指令。计算机程序产品可以包括当程序运行时被配置为执行实施例的一个或多个计算机可执行组件。一个或多个计算机可执行组件可以是至少一个软件代码或其一部分。另外,在这一点上,应当注意,如图中的逻辑流程的任何框可以表示程序步骤、或者互连的逻辑电路、框和功能、或者程序步骤和逻辑电路、框和功能的组合。软件可以存储在诸如存储器芯片或在处理器内实现的存储块等物理介质、诸如硬盘或软盘等磁性介质、以及诸如例如DVD及其数据变体、CD等光学介质上。物理介质是非瞬态介质。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于全景图的空间交互方法,其特征在于,包括以下步骤:
获取全景图以及对应所述全景图的三维模型;
依据至少一组对齐点对齐所述全景图和所述三维模型;
将所述三维模型的第一三维空间数据转换为二维的全景深度位图和全景法线位图;
在所述全景图上叠加所述全景深度位图和所述全景法线位图;
选定所述全景图上的至少一交互位置,并获取所述交互位置对应的全景深度位图的深度数据值和全景法线位图的法线数据值作为第二三维空间数据,反馈所述第二三维空间数据。
2.根据权利要求1所述的基于全景图的空间交互方法,其特征在于,在“依据至少一组对齐点对齐所述全景图和所述三维模型”步骤中,选取所述对齐点,计算所述三维模型相对于所述全景图的旋转角度和偏差位置,基于所述旋转角度和所述偏差位置处理所述三维模型的位置至所述三维模型和所述全景图对齐。
3.根据权利要求2所述的基于全景图的空间交互方法,其特征在于,包括步骤:
在全景图拍摄相机的相机屏幕上选取所述全景图上的三个全景计算点,并在所述三维模型上选择和三个所述全景计算点分别对应的三个三维计算点;
计算三个所述三维计算点在所述全景图拍摄相机的相机屏幕上的三维投影三角形的三维重心,以及所述全景计算点在全景图拍摄相机的相机屏幕上的全景投影三角形的全景重心,将所述三维重心和所述全景重心重叠;
以所述全景重心、三维重心和拍摄位置组成的平面的法线为第一旋转轴,以三维重心、拍摄位置以及全景重心的角度为第一旋转角度,以拍摄位置为旋转中心以所述第一旋转角度旋转所述三维模型;获取每组三维投影点和全景计算点同全景重心的偏差角度,计算三组偏差角度的平均值作为第二旋转角度,以拍摄位置和所述全景重心的连线为第二旋转轴,以所述第二旋转角度旋转所述三维模型。
4.根据权利要求2所述的基于全景图的空间交互方法,其特征在于,包括步骤:计算获取所述三维模型中同全景图拍摄相机的拍摄位置相对应的三维模型相机位置坐标,以所述三维模型相机位置坐标为中心点计算偏差位置,并移动所述三维模型。
5.根据权利要求4所述的基于全景图的空间交互方法,其特征在于,在“计算获取所述三维模型中同全景图拍摄相机的拍摄位置相对应的三维模型相机位置坐标”步骤中,依据所述拍摄位置和全景图拍摄相机的初始视角,计算通过所述对齐点的相机视线的水平角度和垂直角度;依据所述水平角度,计算所述三维模型相机在水平投影面的水平面投影点坐标;依据所述垂直角度,计算所述三维模型相机在垂直投影面上的垂直面投影点坐标;整合所述水平面投影点坐标和所述垂直面投影点坐标得到三维模型相机位置坐标 。
6.根据权利要求1所述的基于全景图的空间交互方法,其特征在于, 在“将所述三维模型的第一三维空间数据转换为二维的全景深度位图和全景法线位图”步骤中,从所述三维模型的第一三维空间数据提取深度数据值保存在二维的全景深度位图的RGB值,提取法线数据值保存在二维的全景法线位图的RGB值。
7.根据权利要求6所述的基于全景图的空间交互方法,其特征在于,包括步骤:选定所述全景图的连续区域,将所述连续区域对应的三维模型设置为唯一值,将唯一值保存在全景唯一位图的RGB值。
8.根据权利要求1所述的基于全景图的空间交互方法,其特征在于, 在“获取所述交互位置对应的全景深度位图的深度数据和全景法线位图的法线数据作为第二三维空间数据”步骤中,获取所述全景深度位图的RGB值,选取RGB值的任意值转换得到深度数据值;获取全景法线位图上的RGB值,将所述RGB值分别除以255得到法线向量,将法线向量转换为{-1,1}的法线数据值。
9.一种基于全景图的空间交互装置,其特征在于,包括:
原始数据获取单元,用于获取全景图以及对应所述全景图的三维模型;
对齐单元,用于依据至少一组对齐点对齐所述全景图和所述三维模型;
位图获取单元,用于将所述三维模型的第一三维空间数据转换为二维的全景深度位图和全景法线位图;
叠加单元,用于在所述全景图上叠加所述全景深度位图和所述全景法线位图;
交互单元,用于选定所述全景图上的至少一交互位置,并获取所述交互位置对应的全景深度位图的深度数据值和全景法线位图的法线数据值作为第二三维空间数据,反馈所述第二三维空间数据。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1到8任一所述的基于全景图的空间交互方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210829642.7A CN114895796B (zh) | 2022-07-15 | 2022-07-15 | 一种基于全景图的空间交互方法、装置及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210829642.7A CN114895796B (zh) | 2022-07-15 | 2022-07-15 | 一种基于全景图的空间交互方法、装置及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114895796A true CN114895796A (zh) | 2022-08-12 |
CN114895796B CN114895796B (zh) | 2022-11-11 |
Family
ID=82729614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210829642.7A Active CN114895796B (zh) | 2022-07-15 | 2022-07-15 | 一种基于全景图的空间交互方法、装置及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114895796B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115187713A (zh) * | 2022-09-08 | 2022-10-14 | 山东信通电子股份有限公司 | 一种用于加速点云选点操作的方法、设备及介质 |
TWI814624B (zh) * | 2022-10-26 | 2023-09-01 | 財團法人資訊工業策進會 | 環景影像的地標識別標註系統及其方法 |
CN117572997A (zh) * | 2024-01-15 | 2024-02-20 | 南京维赛客网络科技有限公司 | 在模型空间和全景空间相互传送的方法、系统及存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008143168A1 (ja) * | 2007-05-17 | 2008-11-27 | Axion Japan Co., Ltd. | パノラマ画像撮影装置及びパノラマ撮影における画像処理方法 |
US20140301633A1 (en) * | 2013-04-09 | 2014-10-09 | Google Inc. | System and Method for Floorplan Reconstruction and Three-Dimensional Modeling |
CN106441242A (zh) * | 2016-08-27 | 2017-02-22 | 青岛秀山移动测量有限公司 | 一种基于激光点云与全景影像的交互式测图方法 |
US20180205941A1 (en) * | 2017-01-17 | 2018-07-19 | Facebook, Inc. | Three-dimensional scene reconstruction from set of two dimensional images for consumption in virtual reality |
CN108564527A (zh) * | 2018-04-04 | 2018-09-21 | 百度在线网络技术(北京)有限公司 | 基于神经网络的全景图内容补全和修复的方法及装置 |
CN109544456A (zh) * | 2018-11-26 | 2019-03-29 | 湖南科技大学 | 基于二维图像和三维点云数据融合的全景环境感知方法 |
CN111429501A (zh) * | 2020-03-25 | 2020-07-17 | 贝壳技术有限公司 | 深度图预测模型生成方法和装置、深度图预测方法和装置 |
CN111667591A (zh) * | 2020-06-15 | 2020-09-15 | 常州市规划设计院 | 基于全景摄影的虚拟现实融合方法 |
CN112184815A (zh) * | 2020-09-27 | 2021-01-05 | 北京鼎联网络科技有限公司 | 全景图像在三维模型中的位置和姿态确定方法及装置 |
CN112242002A (zh) * | 2020-10-09 | 2021-01-19 | 同济大学 | 基于深度学习的物体识别和全景漫游方法 |
CN113112581A (zh) * | 2021-05-13 | 2021-07-13 | 广东三维家信息科技有限公司 | 三维模型的纹理贴图生成方法、装置、设备及存储介质 |
CN113808261A (zh) * | 2021-09-30 | 2021-12-17 | 大连理工大学 | 一种基于全景图的自监督学习场景点云补全的数据集生成方法 |
CN114663618A (zh) * | 2022-03-03 | 2022-06-24 | 北京城市网邻信息技术有限公司 | 三维重建及校正方法、装置、设备及存储介质 |
-
2022
- 2022-07-15 CN CN202210829642.7A patent/CN114895796B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008143168A1 (ja) * | 2007-05-17 | 2008-11-27 | Axion Japan Co., Ltd. | パノラマ画像撮影装置及びパノラマ撮影における画像処理方法 |
US20140301633A1 (en) * | 2013-04-09 | 2014-10-09 | Google Inc. | System and Method for Floorplan Reconstruction and Three-Dimensional Modeling |
CN106441242A (zh) * | 2016-08-27 | 2017-02-22 | 青岛秀山移动测量有限公司 | 一种基于激光点云与全景影像的交互式测图方法 |
US20180205941A1 (en) * | 2017-01-17 | 2018-07-19 | Facebook, Inc. | Three-dimensional scene reconstruction from set of two dimensional images for consumption in virtual reality |
CN108564527A (zh) * | 2018-04-04 | 2018-09-21 | 百度在线网络技术(北京)有限公司 | 基于神经网络的全景图内容补全和修复的方法及装置 |
CN109544456A (zh) * | 2018-11-26 | 2019-03-29 | 湖南科技大学 | 基于二维图像和三维点云数据融合的全景环境感知方法 |
CN111429501A (zh) * | 2020-03-25 | 2020-07-17 | 贝壳技术有限公司 | 深度图预测模型生成方法和装置、深度图预测方法和装置 |
CN111667591A (zh) * | 2020-06-15 | 2020-09-15 | 常州市规划设计院 | 基于全景摄影的虚拟现实融合方法 |
CN112184815A (zh) * | 2020-09-27 | 2021-01-05 | 北京鼎联网络科技有限公司 | 全景图像在三维模型中的位置和姿态确定方法及装置 |
CN112242002A (zh) * | 2020-10-09 | 2021-01-19 | 同济大学 | 基于深度学习的物体识别和全景漫游方法 |
CN113112581A (zh) * | 2021-05-13 | 2021-07-13 | 广东三维家信息科技有限公司 | 三维模型的纹理贴图生成方法、装置、设备及存储介质 |
CN113808261A (zh) * | 2021-09-30 | 2021-12-17 | 大连理工大学 | 一种基于全景图的自监督学习场景点云补全的数据集生成方法 |
CN114663618A (zh) * | 2022-03-03 | 2022-06-24 | 北京城市网邻信息技术有限公司 | 三维重建及校正方法、装置、设备及存储介质 |
Non-Patent Citations (4)
Title |
---|
RUYU LIU等: "Cross-Modal 360° Depth Completion and Reconstruction for Large-Scale Indoor Environment", 《IEEE TRANSACTIONS ON INTELLIGENT TRANSPORTATION SYSTEMS ( EARLY ACCESS )》 * |
安维华等: "基于图像的点云建模及其真实感绘制", 《计算机工程与应用》 * |
明镜等: "基于全景影像景深图的探面及跳转", 《测绘通报》 * |
田军等: "全景图中投影模型与算法", 《计算机系统应用》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115187713A (zh) * | 2022-09-08 | 2022-10-14 | 山东信通电子股份有限公司 | 一种用于加速点云选点操作的方法、设备及介质 |
CN115187713B (zh) * | 2022-09-08 | 2023-01-13 | 山东信通电子股份有限公司 | 一种用于加速点云选点操作的方法、设备及介质 |
TWI814624B (zh) * | 2022-10-26 | 2023-09-01 | 財團法人資訊工業策進會 | 環景影像的地標識別標註系統及其方法 |
CN117572997A (zh) * | 2024-01-15 | 2024-02-20 | 南京维赛客网络科技有限公司 | 在模型空间和全景空间相互传送的方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114895796B (zh) | 2022-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114895796B (zh) | 一种基于全景图的空间交互方法、装置及应用 | |
KR102183050B1 (ko) | 구면 파노라마 영상에 매핑을 수행하는 방법 및 장치 | |
EP3534336B1 (en) | Panoramic image generating method and apparatus | |
JP4512584B2 (ja) | イメージマッチング速度とブレンディング方法を改善したパノラマ映像提供方法および装置 | |
US10580205B2 (en) | 3D model generating system, 3D model generating method, and program | |
CN108939556B (zh) | 一种基于游戏平台的截图方法及装置 | |
CN111028336B (zh) | 场景切换方法及装置、存储介质 | |
WO2017152803A1 (zh) | 图像处理方法和设备 | |
JP2021520584A (ja) | 住宅のデータ収集およびモデル生成方法 | |
JP2007183948A (ja) | 幾何情報を校正してパノラマ映像を提供する方法および装置 | |
WO2023280038A1 (zh) | 一种三维实景模型的构建方法及相关装置 | |
JPWO2017217296A1 (ja) | 画像処理装置 | |
JP5363971B2 (ja) | 景観再現システム | |
US11250643B2 (en) | Method of providing virtual exhibition space using 2.5-dimensionalization | |
KR102317182B1 (ko) | 3차원 객체와 2차원 배경을 이용한 합성 이미지 생성 장치 | |
CN113298928A (zh) | 房屋三维重建方法、装置、设备和存储介质 | |
KR101875047B1 (ko) | 사진측량을 이용한 3d 모델링 시스템 및 방법 | |
JP7368699B2 (ja) | 画像処理装置、画像通信システム、画像処理方法、及びプログラム | |
CN113724331B (zh) | 视频处理方法、视频处理装置和非瞬时性存储介质 | |
KR20180029690A (ko) | 매물에 관한 가상현실영상 제공방법 및 제공서버, 매물에 관한 가상현실영상 제작방법 및 제작서버 | |
CN109461116B (zh) | 一种基于opengl的720全景展开监控方法 | |
JPH06348815A (ja) | Cgシステムにおける建物の景観の3次元モデルの設定方法 | |
KR101912241B1 (ko) | 부동산의 3차원 형상에 관한 증강 현실 이미지를 제공하는 증강 현실 서비스 제공 장치 및 제공 방법 | |
JP2004310686A (ja) | 画像処理方法及び装置 | |
CN111970504A (zh) | 利用虚拟投影反向模拟三维球体的展示方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |