CN115937299B - 在视频中放置虚拟对象的方法及相关设备 - Google Patents
在视频中放置虚拟对象的方法及相关设备 Download PDFInfo
- Publication number
- CN115937299B CN115937299B CN202210306832.0A CN202210306832A CN115937299B CN 115937299 B CN115937299 B CN 115937299B CN 202210306832 A CN202210306832 A CN 202210306832A CN 115937299 B CN115937299 B CN 115937299B
- Authority
- CN
- China
- Prior art keywords
- plane
- point
- points
- video
- placement
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 230000004044 response Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 5
- 238000005070 sampling Methods 0.000 claims 1
- 230000003190 augmentative effect Effects 0.000 description 20
- 238000012545 processing Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 244000291564 Allium cepa Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Processing Or Creating Images (AREA)
Abstract
本公开提供一种在视频中放置虚拟对象的方法,包括:获取所述视频对应的三维(3D)点云;针对所述视频中的每一个图像帧,获取所述3D点云中在所述图像帧中具有对应二维(2D)点的3D点;基于所述3D点,通过三角剖分得到网格;根据虚拟对象在所述视频中的放置位置以及所述网格确定所述虚拟对象在所述图像帧中的目标位置;以及在所述图像帧中的目标位置上放置所述虚拟对象。基于上述在视频中放置虚拟对象的方法,本公开还提供了在视频中放置虚拟对象的装置、电子设备、存储介质以及程序产品。
Description
技术领域
本公开涉及计算机视觉技术领域,尤其涉及一种在视频中放置虚拟对象的方法、装置、电子设备、存储介质及程序产品。
背景技术
增强现实(Augmented Reality,简称AR)技术是一种将虚拟信息与真实世界巧妙融合的技术,广泛运用了多媒体、三维建模、实时跟踪、智能交互、传感等多种技术手段,将计算机生成的文字、图像、三维模型、音乐、视频等虚拟对象模拟仿真后,应用到真实世界中,从而实现对真实世界的“增强”。
目前,通常可以通过同时定位与地图构建(Simultaneous Localization andMapping,SLAM)技术实现三维建模。然而,由于通过SLAM技术得到的三维(3D)点通常是稀疏的,会存在较多因为3D点比较少而估计不出来的平面。此外,实际场景里还有很多非平面区域无法通过SLAM技术估计出来。由于AR中的虚拟对象通常只能放置在估计出的平面上,上述这些情况的存在会导致因找不到虚拟对象所对应平面而无法在图像或视频中放置虚拟对象的问题。
发明内容
有鉴于此,本公开的实施例提供一种在视频中放置虚拟对象的方法,可以在视频中准确确定放置虚拟对象的平面,完成虚拟对象的准确放置,避免由于找不到虚拟对象所对应平面而导致的无法在图像中放置虚拟对象的问题。
根据本公开的一些实施例,上述在视频中放置虚拟对象的方法可以包括:获取所述视频对应的3D点云;针对所述视频中的每一个图像帧,分别获取所述3D点云中在所述图像帧中具有对应2D点的3D点;基于所述3D点,通过三角剖分得到网格;根据所述虚拟对象在所述视频中的放置位置以及所述网格确定所述虚拟对象在所述图像帧中的目标位置;以及在所述图像帧中的目标位置上放置所述虚拟对象。
基于上述在视频中放置虚拟对象的方法,本公开的实施例提供了一种在视频中放置虚拟对象的装置,包括:
三维3D点云获取模块,用于获取所述视频对应的3D点云;
三角剖分模块,用于针对视频中的每个图像帧,获取所述3D点云中在当前图像帧中具有对应2D点的3D点,以及基于所述3D点,通过三角剖分得到网格;
目标位置确定模块,用于根据所述虚拟对象在所述视频中的放置位置以及所述网格确定所述虚拟对象在所述图像帧中的目标位置;以及
虚拟对象放置模块,用于在所述图像帧中的目标位置上放置所述虚拟对象。
此外,本公开的实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法。
本公开的实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行上述方法。
本公开的实施例还提供了一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行上述方法。
从上述内容可以看出,通过本公开提供的在视频中放置虚拟对象的方法和装置,通过三角剖分可以得到以3D点为顶点的多个三角形,而每个三角形均可以确定一个平面,因此,依据上述多个三角形可以得到各个图像帧所包含的多个平面,然后再根据虚拟对象放置位置与上述多个平面的关系从中确定目标平面以及虚拟对象放置的目标位置。上述方法可以有效解决基于数量较少的3D点进行平面估计时估计不出来以及实际场景里一些非平面区域无法估计出来而导致的无法完成虚拟对象放置的问题。
附图说明
为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的在视频中放置虚拟对象的方法的应用场景示意图;
图2显示了本公开一些实施例所述的在视频中放置虚拟对象的方法的实现流程;
图3显示了本公开实施例所述的通过Delaunay三角剖分算法由一个有限点集得到的一个网格示例;
图4显示了本公开实施例所述的根据虚拟对象在视频中的放置位置以及上述网格确定上述虚拟对象在上述图像帧中的目标位置的实现流程;
图5显示了本公开一些实施例所述的在视频中放置虚拟对象的装置的内部结构示意图;
图6显示了本公开一些实施例所述的目标位置确定模块的内部结构示意图;以及
图7示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如前所述,通过SLAM技术通常只能得到稀疏的3D点。而由于通过SLAM技术得到的3D点是稀疏的,会存在较多因为3D点比较少而估计不出来的平面。此外,实际场景里还有很多非平面区域也无法通过SLAM技术估算出来。这些情况的存在会因为找不到虚拟对象所对应平面而导致无法在图像中放置虚拟对象的问题。
为此,本公开的一些实施例提供了一种在视频中放置虚拟对象的方法。参考图1,其为本公开实施例提供的在视频中放置虚拟对象的方法的应用场景示意图。该应用场景包括:终端设备101以及增强现实处理设备102。
在本公开的实施例中,上述终端设备101以及增强现实处理设备102是从功能上进行区分的,图1仅仅给出了一个应用场景的示例。在实际的应用中,上述终端设备101以及增强现实处理设备102既可以是两个独立的物理设备,也可以集成在一个单一的物理设备之上,同时实现与用户的交互以及视频的处理。如果上述终端设备101以及增强现实处理设备102是两个独立的物理设备,则上述终端设备101以及上述增强现实处理设备102之间可通过有线或无线的通信网络连接。
在本公开的实施例中,上述终端设备101包括但不限于桌面计算机、移动电话、移动电脑、平板电脑、媒体播放器、智能可穿戴设备、个人数字助理(personal digitalassistant,PDA)或其它能够实现上述功能的电子设备等。上述终端设备101可以通过显示屏幕显示可以与用户进行交互的交互界面,从而为用户提供各种增强现实的应用。例如,用户可以通过终端设备101在播放的一段视频的各图像帧中选择一个位置放置一个虚拟对象等。
上述增强现实处理设备102可以是具有计算能力的电子设备,用于对视频中的图像帧进行增强现实处理,例如在用户选择的位置上实现虚拟对象的放置等等。
基于上述应用场景,本公开的一些实施例提供了一种在视频中放置虚拟对象的方法,可以准确确定放置虚拟对象的平面,避免由于找不到虚拟对象所对应平面而导致的无法在视频中放置虚拟对象的问题。需要说明的是,该方法可以由上述增强现实处理设备102执行。
图2显示了本公开实施例所述的在视频中放置虚拟对象的方法的实现流程。如图2所示,该方法可以包括如下步骤:
在步骤202,获取上述视频对应的三维(3D)点云。
在本公开的实施例中,如果用户希望在一段视频中各图像帧的某个位置放置一个虚拟对象,则通常需要通过上述终端设备101选择要放置的虚拟对象,并在视频的一个图像帧上选择一个位置作物虚拟对象在上述视频中的放置位置。然后,上述终端设备101将生成一个携带上述信息的虚拟对象放置请求发送给上述增强现实处理设备102,由上述增强现实处理设备102将虚拟对象放置在视频中用户所选择的放置位置上。在本公开的实施例中,上述虚拟对象通常可以是指一个素材,例如,一副图片、一个虚拟物体或者一段视频等等。
具体地,在本公开的实施例中,上述虚拟对象在视频中的放置位置具体可以映射为视频中各个图像帧上的一个点,可以通过图像帧上像素点坐标的方式表示。
在本公开的实施例中,为了实现虚拟对象在视频中的放置,需要估计出该视频中各个图像帧中的各个平面,也即需要对各个图像帧进行平面估计。而平面估计则通常需要基于该视频所对应的3D点来实现的。因此,在本步骤202中,为了实现视频中虚拟对象的放置,先获取与视频对应的3D点云。
本领域的技术人员可以理解,通过SLAM技术,可以将一段视频所包含二维(2D)图像帧上的2D点映射到三维立体空间中,从而得到与图像帧中2D点在三维立体空间中对应的3D点。进一步,在将多帧2D图像均完成上述2D点至3D点的映射后,即可得到全局的3D点云,在本公开中将其称为与视频对应的3D点云。
由此,可以看出,通过SLAM技术得到的3D点云除了包括各个3D点之外,还包括了这些3D点与视频各图像帧中2D点的对应关系,例如,3D点云中的一个3D点可以对应于多个图像帧中的一个2D点等等。
需要说明的是,除了SLAM技术之外,通过拍摄视频的相机的位姿也可以将视频中一个图像帧中的各个2D点映射到三维空间的3D点上。
进一步,在获取了视频对应的3D点云之后,针对视频中的每个图像帧,分别执行如下步骤:
在步骤204,获取上述3D点云中在当前图像帧中具有对应2D点的3D点。
如前所述,一个视频所对应的3D点云中的每个3D点都将对应于该视频至少一个图像帧中的一个2D点。因此,在本公开的实施例中,针对一个图像帧,可以根据3D点云中3D点与各个图像帧中2D点的对应关系从3D点云中确定在该图像帧中具有对应2D点的全部3D点。
在步骤206,基于上述3D点,通过三角剖分得到网格。
在本公开的一些实施例中,在上述步骤206,上述增强现实处理设备102可以直接以上述3D点的集合作为有限点集,并基于该有限点集通过德劳内(Delaunay)三角剖分算法得到上述网格。
在本公开的另一些实施例中,为了提高三角剖分的精确度,在上述步骤206,上述增强现实处理设备102可以首先确定当前图像帧上与上述3D点对应的2D点;然后,以上述2D点的集合作为有限点集;接下来,基于该有限点集,通过Delaunay三角剖分算法得到第一网格;再根据上述第一网格中2D点的连接关系以及上述2D点与上述3D点的对应关系,得到与上述第一网格对应的所述3D点之间的连接关系;最后,再根据上述3D点之间的连接关系,确定第二网格,并将确定的第二网格作为上述步骤206所称的网格。也即在上述方法中,是对2D点进行的Delaunay三角剖分得到一个2D网格,再根据2D点和3D点的对应关系将得到的2D网格映射为一个3D网格。
已知,上述网格应当满足如下条件:
1)除了端点,上述网格所示的平面图中的边上不包含上述有限点集中的任何点。
2)除了端点,上述网格所示的平面图中没有相交边。
3)上述网格所示的平面图中所有的面都是三角形,且所有三角面的合集是上述有限点集的凸包。
图3显示了本公开实施例所述的通过Delaunay三角剖分算法由一个有限点集得到的一个网格示例。通过Delaunay三角剖分算法,基于图3左半部分所示的一个有限点集,可以得到图3右半部分所示的网格。从图3可以看出,在该网格中,除了端点,该网格所示平面图的各边上均不包含任何其他点。而且,该网格的各个边不相交。最后,该网格所示的平面图中所有面都是三角形。
在本公开的实施例中,通过三角剖分可以得到多个三角形,而每个三角形均可以确定一个平面,因而可以得到各个图像帧所包含的多个平面,有效解决基于数量较少的3D点进行平面估计时估计不出来的平面的问题,以及实际场景里一些非平面区域无法估计出来的问题。
除了上述通过三角剖分进行平面估计的方法,为了进一步提高平面估计的准确度,避免通过上述三角剖分进行平面估计时由误差导致的一个平面被估计成多个平面而出现的平面出现起伏不平整的问题,本公开的另一些实施例还可以包括如下几个步骤:
在步骤208,基于上述3D点云进行平面估计,确定至少一个第一平面。
在本公开的实施例中,上述增强现实处理设备102可以通过随机抽样一致算法(Random Sample Consensus,RANSAC)来进行平面估计。RANSAC是由Fischler和Bolles于1981年最先提出的算法。该算法根据一组包含异常数据的样本数据集,计算出数据的数学模型参数。目前,RANSAC算法在计算机视觉的匹配问题中通常被用来寻找最佳的匹配模型。在本公开的实施例中,上述增强现实处理设备102就可以通过RANSAC算法根据3D点云图像拟合出多个第一平面。在本例中,上述由RANSAC算法找到的最佳的匹配模型就是多个第一平面。
通过上述方法即可确定多个第一平面,也即确定了多个第一平面的参数及其上包含的3D点。其中,上述平面的参数可以包括:确定平面的平面方程的各个参数。例如,3D空间中每个平面均可以表达为Ax+By+Cz+D=0的形式,确定了上述A、B、C和D四个系数即可确定该平面,因此,上述平面的参数可以是指上述A、B、C和D四个系数。此外,上述平面表达式还可以用法向量和距离来表示,确定了一个平面的法向量和距离也可确定一个平面,因此,上述平面的参数还可以是指上述平面的法向量和距离。需要说明的是,上述多种形式的平面的参数本质是一致的,都可以唯一确定一个平面,例如,通过上述A、B、C和D四个系数可以确定平面的法向量和距离;而通过平面的法向量和距离也可以得到上述A、B、C和D四个系数。
在步骤210,对于上述网格中的每个三角形,响应于确定一个三角形的三个顶点在同一个第一平面上,将由上述三角形确定的第二平面的法向量替换为所述三角形三个顶点所在的第一平面的法向量。
通过上述步骤208和210,可以将通过三角剖分得到的三角形平面与通过常规平面估计得到的平面进行融合,在确定了三角形三个定点都在已确定的一个第一平面上时,用该第一平面的法向量修正该三角形所确定平面的法向量,即解决了因为3D点比较少而使用常规的平面估计的方法估计不出来的平面的问题,也解决了通过上述三角剖分进行平面估计时由误差导致的一个平面被估计成多个平面而出现的平面出现起伏的问题,从而使得最终的平面估计结果更为精确。
在步骤212,根据上述虚拟对象在上述视频中的放置位置以及上述网格确定上述虚拟对象在上述图像帧中的目标位置。
如前所述,上述虚拟对象在上述视频中的放置位置对应的其实是视频中每个图像帧中的一个点。本领域的技术人员可知,当用户在视频的某一个图像帧中选择了一个点后,通过平面跟踪技术可以确定视频各个图像帧中与用户所选择的点相对应的点。基于上述内容,在本公开的实施例中,上述步骤212所述的根据上述虚拟对象在视频中的放置位置以及上述网格确定上述虚拟对象在上述图像帧中的目标位置的具体实现方法可如图4所示,包括如下步骤:
在步骤402,根据上述虚拟对象在视频中的放置位置确定虚拟对象在当前图像帧中对应的放置点。
如前所述,基于平面跟踪技术,可以基于虚拟对象在视频中的放置位置(也即用户在视频中一个图像帧上选择的一个点)确定视频的各个图像帧中与上述放置位置相对应的点。为了描述上的方便,在本公开的实施例中,将这些点称为图像帧中的放置点。
在步骤404,响应于确定上述放置点在上述网格的一个三角形中,将由上述三角形确定的平面作为目标平面。
在步骤406,基于上述放置点以及上述目标平面确定上述目标位置。
具体地,在本公开的实施例中,步骤408所述的基于上述放置点以及上述目标平面确定上述目标位置可以包括:
首先,获取上述图像帧对应的相机的位姿;其次,根据上述相机的位姿以及上述放置点构建一条起始于上述相机的中心点并经过上述放置点的射线;再次,将上述射线与上述目标平面进行碰撞检测,确定碰撞的位置;以及最后,将上述碰撞的位置作为上述目标位置。
上述方法还可以进一步包括:如果在将上述射线与上述目标平面进行碰撞检测过程中,没有检测到碰撞,则无法得到目标位置,故无法完成虚拟对象的放置。此时,上述增强现实处理设备102可以输出虚拟对象放置失败的信息。
进一步,在本公开的一些实施例中,上述步骤404可以进一步包括:响应于确定上述放置点不在上述网格的任意一个三角形中,确定虚拟对象放置失败。此时,上述增强现实处理设备102可以输出虚拟对象放置失败的信息。例如,上述增强现实处理设备102可以向上述终端设备101发送一个虚拟对象放置失败的响应,并由终端设备101显示相应的提示信息。
进一步,在本公开的另一些实施例中,上述步骤404可以进一步包括:响应于确定上述放置点不在上述网格的任意一个三角形中,在由上述网格中所有三角形确定的多个平面中选择距离上述放置点最近的平面作为上述目标平面。
在本公开的实施例中,上述距离上述放置点最近的平面可以通过以下方式确定:首先,针对上述网格中的每个三角形,分别将由上述三角形确定的平面作为一个参考平面,并分别确定上述放置点到每个参考平面的距离;然后,选择其中最短距离对应的参考平面作为所述目标平面。
具体地,在上述过程中,确定上述放置点到参考平面的距离可以包括:获取当前图像帧对应的相机的位姿;根据相机的位姿以及上述放置点构建一条起始于上述相机的中心点并经过上述放置点的射线;将上述射线与上述参考平面求交;以及将上述放置点到交点的距离作为上述放置点到所述参考平面的距离。
上述将上述射线与上述参考平面求交的方法可以参考前序实施例中的说明,在此不再重复说明。
在步骤214,在上述图像帧中的目标位置上放置上述虚拟对象。
可以看出,在本公开的实施例中,通过三角剖分可以得到以3D点为顶点的多个三角形,而每个三角形均可以确定一个平面,因此,依据上述多个三角形可以得到各个图像帧所包含的多个平面,然后再根据虚拟对象放置位置与上述多个平面的关系从中确定目标平面以及虚拟对象放置的目标位置。上述方法可以有效解决基于数量较少的3D点进行平面估计时估计不出来以及实际场景里一些非平面区域无法估计出来而导致的无法完成虚拟对象放置的问题。
需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
对应上述在视频中放置虚拟对象的方法,本公开的实施例还公开了一种视频中放置虚拟对象的装置。图5显示了本公开实施例所述的在视频中放置虚拟对象的装置的内部结构。如图5所示,该装置可以包括:3D点云获取模块502、三角剖分模块504、目标位置确定模块508、以及虚拟对象放置模块510。
上述3D点云获取模块502用于获取上述视频对应的3D点云。
在本公开的实施例中,上述3D点云获取模块502可以基于SLAM技术直接获得上述视频对应的3D点云;或者,上述3D点云获取模块502也可以基于拍摄视频的相机的位姿将视频中一个图像帧中的各个2D点映射到三维空间的3D点上,从而得到上述视频对应的3D点云。
上述三角剖分模块504用于针对视频中的每个图像帧,获取上述3D点云中在当前图像帧中具有对应2D点的3D点,以及基于上述3D点,通过三角剖分得到网格。
在本公开的实施例中,针对一个图像帧,上述三角剖分模块504可以根据3D点云中3D点与各个图像帧中2D点的对应关系从3D点云中确定在该图像帧中具有对应2D点的全部3D点。
此外,在本公开的一些实施例中,上述三角剖分模块504可以直接以上述3D点的集合作为有限点集,并基于该有限点集通过Delaunay三角剖分算法得到上述网格。
在本公开的另一些实施例中,为了提高三角剖分的精确度,上述三角剖分模块504可以包括如下单元:
2D点确定单元,用于确定所述图像帧上与所述3D点对应的2D点;
三角剖分单元,用于以所述2D点的集合作为有限点集,基于所述有限点集,通过德劳内Delaunay三角剖分算法得到第一网格;
网格映射单元,用于根据所述第一网格中2D点的连接关系以及所述2D点与所述3D点的对应关系,得到与所述第一网格对应的所述3D点之间的连接关系;以及根据所述3D点之间的连接关系,确定所述网格。
在本公开的实施例中,通过三角剖分可以得到多个三角形,而每个三角形均可以确定一个平面,因而可以得到各个图像帧所包含的多个平面,有效解决基于数量较少的3D点进行平面估计时估计不出来的平面的问题,以及实际场景里一些非平面区域无法估计出来的问题。
除了上述通过三角剖分进行平面估计的方法,为了进一步提高平面估计的准确度,避免通过上述三角剖分进行平面估计时由误差导致的一个平面被估计成多个平面而出现的平面出现起伏的问题,本公开的另一些实施例中,上述在视频中放置虚拟对象的装置还可以包括:平面校准模块506,用于基于上述3D点云进行平面估计,确定至少一个第一平面;以及对于上述网格中的每个三角形,响应于确定一个三角形的三个顶点在同一个第一平面上,将由上述三角形确定的第二平面的法向量替换为所述三角形三个顶点所在的第一平面的法向量。
在本公开的实施例中,上述平面校准模块506可以通过RANSAC算法来进行平面估计,确定多个第一平面,也即确定了多个第一平面的参数及其上包含的3D点。
通过上述平面校准模块506可以将通过三角剖分得到的三角形平面与通过常规平面估计得到的平面进行融合,在确定了三角形三个定点都在已确定的一个第一平面上时,用该第一平面的法向量修正该三角形所确定平面的法向量,即解决了因为3D点比较少而使用常规的平面估计的方法估计不出来的平面的问题,也解决了通过上述三角剖分进行平面估计时由误差导致的一个平面被估计成多个平面而出现的平面出现起伏的问题,从而使得最终的平面估计结果更为精确。
上述目标位置确定模块508用于根据上述虚拟对象在视频中的放置位置以及所述网格确定所述虚拟对象在所述图像帧中的目标位置。
具体地,在本公开的一些实施例中,如图6所示,上述目标位置确定模块508可以具体包括:
放置点确定单元602,用于根据上述虚拟对象在视频中的放置位置确定虚拟对象在当前图像帧中对应的放置点;
目标平面确定单元604,用于响应于确定上述放置点在上述网格的一个三角形中,将由上述三角形确定的平面作为目标平面;以及
目标位置确定单元606,用于基于上述放置点以及上述目标平面确定上述目标位置。
在本公开的另一些实施例中,上述目标平面确定单元可进一步用于响应于确定上述放置点不在上述网格的任意一个三角形中,在由上述网格中所有三角形确定的多个平面中选择距离上述放置点最近的平面作为上述目标平面。
上述虚拟对象放置模块510用于在上述图像帧中的目标位置上放置上述虚拟对象。
上述各个模块的具体实现可以参考前述方法以及附图,在此不再重复说明。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的在视频中放置虚拟对象的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的在视频中放置虚拟对象方法。
图7示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器2010、存储器2020、输入/输出接口2030、通信接口2040和总线2050。其中处理器2010、存储器2020、输入/输出接口2030和通信接口2040通过总线2050实现彼此之间在设备内部的通信连接。
处理器2010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器2020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器2020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器2020中,并由处理器2010来调用执行。
输入/输出接口2030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口2040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线2050包括一通路,在设备的各个组件(例如处理器2010、存储器2020、输入/输出接口2030和通信接口2040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器2010、存储器2020、输入/输出接口2030、通信接口2040以及总线2050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的在视频中放置虚拟对象方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的在视频中放置虚拟对象方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的任务处理方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (19)
1.一种在视频中放置虚拟对象的方法,包括:
获取所述视频对应的三维3D点云;
针对所述视频中的每一个图像帧,分别执行:
获取所述3D点云中在所述图像帧中具有对应二维2D点的3D点;
基于所述3D点,通过三角剖分得到网格;
根据所述虚拟对象在所述视频中的放置位置以及所述网格确定所述虚拟对象在所述图像帧中的目标位置;以及
在所述图像帧中的目标位置上放置所述虚拟对象;
基于所述3D点云进行平面估计,确定至少一个第一平面;以及
对于所述网格中的每个三角形,响应于确定所述三角形的三个顶点在同一个第一平面上,将由所述三角形确定的第二平面的法向量替换为所述三角形三个顶点所在的第一平面的法向量。
2.根据权利要求1所述的方法,其中,所述基于所述3D点云进行平面估计包括:
基于所述3D点云,通过随机抽样一致算法RANSAC进行平面估计,确定所述至少一个第一平面。
3.根据权利要求1所述的方法,其中,所述基于所述3D点,通过三角剖分得到网格包括:
确定所述图像帧中与所述3D点对应的2D点;
将所述2D点的作为有限点集;以及
基于所述有限点集,通过德劳内Delaunay三角剖分算法得到第一网格;
根据所述第一网格中2D点的连接关系以及所述2D点与所述3D点的对应关系,得到与所述第一网格对应的所述3D点之间的连接关系;以及
根据所述3D点之间的连接关系,确定所述网格。
4.根据权利要求1所述的方法,其中,所述基于所述3D点,通过三角剖分得到网格包括:
将所述3D点的集合作为有限点集;以及
基于所述有限点集,通过Delaunay三角剖分算法得到所述网格。
5.根据权利要求1所述的方法,其中,所述根据所述虚拟对象在所述视频中的放置位置以及所述网格确定所述虚拟对象在所述图像帧中的目标位置包括:
根据所述虚拟对象在所述视频中的放置位置确定所述虚拟对象在所述图像帧中对应的放置点;
响应于确定所述放置点在上述网格的一个三角形中,将由所述三角形确定的平面作为目标平面;以及
基于所述放置点以及所述目标平面确定所述目标位置。
6.根据权利要求5所述的方法,其中,所述基于所述放置点以及所述目标平面确定所述目标位置包括:
获取所述图像帧对应的相机的位姿;
根据所述相机的位姿以及所述放置点构建一条起始于所述相机的中心点并经过所述放置点的射线;
将所述射线与所述目标平面进行碰撞检测,确定碰撞的位置;以及
将所述碰撞的位置作为所述目标位置。
7.根据权利要求6所述的方法,进一步包括:响应于没有检测到碰撞的位置,输出虚拟对象放置失败的信息。
8.根据权利要求5所述的方法,进一步包括:响应于确定所述放置点不在所述网格的任意一个三角形中,输出虚拟对象放置失败的信息。
9.根据权利要求5所述的方法,进一步包括:响应于确定所述放置点不在所述网格的任意一个三角形中,在由所述网格中所有三角形确定的多个平面中选择距离所述放置点最近的平面作为所述目标平面。
10.根据权利要求9所述的方法,其中,所述选择所述网格中距离所述放置点最近的三角形包括:
针对所述网格中的每个三角形,分别将由所述三角形确定的平面作为一个参考平面,并分别确定所述放置点到每个参考平面的距离;
选择其中最短距离对应的参考平面作为所述目标平面。
11.根据权利要求10所述的方法,其中,所述确定所述放置点到参考平面的距离包括:
获取所述图像帧对应的相机的位姿;
根据所述相机的位姿以及所述放置点构建一条起始于所述相机的中心点并经过所述放置点的射线;
将所述射线与所述参考平面求交;以及
将所述放置点到交点的距离作为所述放置点到所述参考平面的距离。
12.一种在视频中放置虚拟对象的装置,包括:
三维3D点云获取模块,用于获取所述视频对应的3D点云;
三角剖分模块,用于针对视频中的每个图像帧,获取所述3D点云中在当前图像帧中具有对应二维2D点的3D点,以及基于所述3D点,通过三角剖分得到网格;
目标位置确定模块,用于根据所述虚拟对象在所述视频中的放置位置以及所述网格确定所述虚拟对象在所述图像帧中的目标位置;
虚拟对象放置模块,用于在所述图像帧中的目标位置上放置所述虚拟对象;以及
平面校准模块,用于基于所述3D点云进行平面估计,确定至少一个第一平面;以及对于所述网格中的每个三角形,响应于确定一个三角形的三个顶点在同一个第一平面上,将由所述三角形确定的第二平面的法向量替换为所述三角形三个顶点所在的第一平面的法向量。
13.根据权利要求12所述的在视频中放置虚拟对象的装置,其中,所述三角剖分模块包括:
2D点确定单元,用于确定所述图像帧上与所述3D点对应的2D点;
三角剖分单元,用于以所述2D点的集合作为有限点集,基于所述有限点集,通过德劳内Delaunay三角剖分算法得到第一网格;
网格映射单元,用于根据所述第一网格中2D点的连接关系以及所述2D点与所述3D点的对应关系,得到与所述第一网格对应的所述3D点之间的连接关系;以及根据所述3D点之间的连接关系,确定所述网格。
14.根据权利要求12所述的在视频中放置虚拟对象的装置,其中,所述三角剖分模块以所述3D点的集合作为有限点集,并基于所述有限点集通过Delaunay三角剖分算法得到所述网格。
15.根据权利要求12所述的在视频中放置虚拟对象的装置,其中,所述目标位置确定模块包括:
放置点确定单元,用于根据所述虚拟对象在所述视频中的放置位置确定虚拟对象在当前图像帧中对应的放置点;
目标平面确定单元,用于响应于确定上述放置点在上述网格的一个三角形中,将由上述三角形确定的平面作为目标平面;以及
目标位置确定单元,用于基于上述放置点以及上述目标平面确定上述目标位置。
16.根据权利要求15所述的在视频中放置虚拟对象的装置,其中,所述目标平面确定单元进一步用于响应于确定上述放置点不在上述网格的任意一个三角形中,在由上述网格中所有三角形确定的多个平面中选择距离上述放置点最近的平面作为上述目标平面。
17.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-11中任意一项所述的在视频中放置虚拟对象的方法。
18.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行权利要求1-11中任意一项所述的在视频中放置虚拟对象的方法。
19.一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行如权利要求1-11中任意一项所述的在视频中放置虚拟对象的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210306832.0A CN115937299B (zh) | 2022-03-25 | 2022-03-25 | 在视频中放置虚拟对象的方法及相关设备 |
PCT/CN2023/079649 WO2023179341A1 (zh) | 2022-03-25 | 2023-03-03 | 在视频中放置虚拟对象的方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210306832.0A CN115937299B (zh) | 2022-03-25 | 2022-03-25 | 在视频中放置虚拟对象的方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115937299A CN115937299A (zh) | 2023-04-07 |
CN115937299B true CN115937299B (zh) | 2024-01-30 |
Family
ID=86647831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210306832.0A Active CN115937299B (zh) | 2022-03-25 | 2022-03-25 | 在视频中放置虚拟对象的方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115937299B (zh) |
WO (1) | WO2023179341A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117974746A (zh) * | 2024-04-01 | 2024-05-03 | 北京理工大学长三角研究院(嘉兴) | 点云2d深度面三角剖分构图方法、装置、系统及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105825544A (zh) * | 2015-11-25 | 2016-08-03 | 维沃移动通信有限公司 | 一种图像处理方法及移动终端 |
CN110827376A (zh) * | 2018-08-09 | 2020-02-21 | 北京微播视界科技有限公司 | 增强现实多平面模型动画交互方法、装置、设备及存储介质 |
CN110889890A (zh) * | 2019-11-29 | 2020-03-17 | 深圳市商汤科技有限公司 | 图像处理方法及装置、处理器、电子设备及存储介质 |
CN111415420A (zh) * | 2020-03-25 | 2020-07-14 | 北京迈格威科技有限公司 | 空间信息确定方法、装置及电子设备 |
CN113038264A (zh) * | 2021-03-01 | 2021-06-25 | 北京字节跳动网络技术有限公司 | 直播视频处理方法、装置、设备和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103985155B (zh) * | 2014-05-14 | 2017-01-25 | 北京理工大学 | 基于映射法的散乱点云Delaunay三角剖分曲面重构方法 |
CN108629799B (zh) * | 2017-03-24 | 2021-06-01 | 成都理想境界科技有限公司 | 一种实现增强现实的方法及设备 |
CN113570730A (zh) * | 2021-07-29 | 2021-10-29 | 深圳市慧鲤科技有限公司 | 视频数据采集方法、视频创作方法及相关产品 |
-
2022
- 2022-03-25 CN CN202210306832.0A patent/CN115937299B/zh active Active
-
2023
- 2023-03-03 WO PCT/CN2023/079649 patent/WO2023179341A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105825544A (zh) * | 2015-11-25 | 2016-08-03 | 维沃移动通信有限公司 | 一种图像处理方法及移动终端 |
CN110827376A (zh) * | 2018-08-09 | 2020-02-21 | 北京微播视界科技有限公司 | 增强现实多平面模型动画交互方法、装置、设备及存储介质 |
CN110889890A (zh) * | 2019-11-29 | 2020-03-17 | 深圳市商汤科技有限公司 | 图像处理方法及装置、处理器、电子设备及存储介质 |
CN111415420A (zh) * | 2020-03-25 | 2020-07-14 | 北京迈格威科技有限公司 | 空间信息确定方法、装置及电子设备 |
CN113038264A (zh) * | 2021-03-01 | 2021-06-25 | 北京字节跳动网络技术有限公司 | 直播视频处理方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023179341A1 (zh) | 2023-09-28 |
CN115937299A (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107223269B (zh) | 三维场景定位方法和装置 | |
CN109752003B (zh) | 一种机器人视觉惯性点线特征定位方法及装置 | |
US10347029B2 (en) | Apparatus for measuring three dimensional shape, method for measuring three dimensional shape and three dimensional shape measurement program | |
KR101851303B1 (ko) | 3차원 공간 재구성 장치 및 방법 | |
CN109754464B (zh) | 用于生成信息的方法和装置 | |
CN108028904B (zh) | 移动设备上光场增强现实/虚拟现实的方法和系统 | |
US10573073B2 (en) | Information processing apparatus, information processing method, and storage medium | |
US10762713B2 (en) | Method for developing augmented reality experiences in low computer power systems and devices | |
CN111161398B (zh) | 一种图像生成方法、装置、设备及存储介质 | |
CN113220251A (zh) | 物体显示方法、装置、电子设备及存储介质 | |
CN115937299B (zh) | 在视频中放置虚拟对象的方法及相关设备 | |
CN110458954B (zh) | 一种等高线生成方法、装置及设备 | |
CN113610702B (zh) | 一种建图方法、装置、电子设备及存储介质 | |
CN112991441A (zh) | 相机定位方法、装置、电子设备及存储介质 | |
CN113034582A (zh) | 位姿优化装置及方法、电子设备及计算机可读存储介质 | |
CN109816791B (zh) | 用于生成信息的方法和装置 | |
CN116128744A (zh) | 消除图像畸变的方法、电子设备、存储介质及车辆 | |
US11842444B2 (en) | Visualization of camera location in a real-time synchronized 3D mesh | |
CN115294280A (zh) | 三维重建方法、装置、设备、存储介质和程序产品 | |
CN112652056B (zh) | 一种3d信息展示方法及装置 | |
CN114862997A (zh) | 图像渲染方法和装置、介质和计算机设备 | |
CN114663615A (zh) | 电子地图显示方法及装置、电子设备 | |
CN112132909A (zh) | 参数获取方法及装置、媒体数据处理方法和存储介质 | |
CN112634439B (zh) | 一种3d信息展示方法及装置 | |
CN113596336B (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 |