CN110415351B - 基于单张图像构建三维网格的方法、装置和*** - Google Patents
基于单张图像构建三维网格的方法、装置和*** Download PDFInfo
- Publication number
- CN110415351B CN110415351B CN201910543756.3A CN201910543756A CN110415351B CN 110415351 B CN110415351 B CN 110415351B CN 201910543756 A CN201910543756 A CN 201910543756A CN 110415351 B CN110415351 B CN 110415351B
- Authority
- CN
- China
- Prior art keywords
- pixel point
- vertex
- pixel
- constructing
- occlusion
- 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
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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明提供一种基于单张图像构建三维网格的方法、装置和***。该方法包括:确定输入图像对应的深度图像中存在遮挡的位置;以及在所述存在遮挡的位置处断开前景和背景之间的面片连接关系,并针对所述存在遮挡的位置处的背景部分构建网格。根据本发明实施例的基于单张图像构建三维网格的方法、装置和***将图像中存在遮挡的位置处的原始面片连接关系断开,并针对被遮挡部分构建网格,可以有效去除明显的拉伸效应,改善视觉效果。
Description
技术领域
本发明涉及图像处理技术领域,更具体地涉及一种基于单张图像构建三维网格的方法、装置、***和存储介质。
背景技术
三维(3D)相册是指拍摄单张图像,把它变成三维图像。例如在手机上重建出三维场景,模拟相机在不同位置(例如相对于拍摄时位置的上下左右前后位置)、不同角度拍摄该场景获得的图像。该技术可增强照片的表现力,也可用于虚拟现实行业中。
目前现有技术中,通过单张图像构建三维网格(mesh)的时候,在不同物体的分界处,没有考虑遮挡关系,导致渲染出来的图像在分界处会有明显的拉伸效应,视觉效果差;或者,只简单的构建双层网格,在多个不同深度分界处的位置会出现三角面片缺失的问题;此外,该种方法会产生许多无用的三角面片,导致其构建的网格较为庞大。
发明内容
为了解决上述问题中的至少一个而提出了本发明。本发明提出了一种基于单张图像构建三维网格的方案,其将图像中存在遮挡的位置处的原始面片连接关系断开,并针对被遮挡部分构建网格,可以有效去除明显的拉伸效应,改善视觉效果。下面简要描述本发明提出的基于单张图像构建三维网格的方案,更多细节将在后续结合附图在具体实施方式中加以描述。
根据本发明一方面,提供了一种基于单张图像构建三维网格的方法,所述方法包括:确定输入图像对应的深度图像中存在遮挡的位置;以及在所述存在遮挡的位置处断开前景和背景之间的面片连接关系,并针对所述存在遮挡的位置处的背景部分构建网格。
在本发明的一个实施例中,所述针对所述存在遮挡的位置处的背景部分构建网格包括:在针对所述存在遮挡的位置处的背景部分构建面片时,每当需被构建面片的位置已被占据时则新建一层网格以用于构建面片。
在本发明的一个实施例中,所述方法还包括:在针对所述存在遮挡的位置处的背景部分构建面片之前,确定被遮挡部分需要构建面片的最大值。
在本发明的一个实施例中,所述确定输入图像对应的深度图像中存在遮挡的位置包括:针对所述深度图像中的每一个像素点,计算所述像素点与其相邻像素点之间的深度差;以及如果所述像素点与其任一相邻像素点之间的深度差大于预设阈值,则确定所述像素点在往所述任一相邻像素点的方向存在遮挡。
在本发明的一个实施例中,所述像素点的相邻像素点包括所述像素点的上下左右四个方向的相邻像素点。
在本发明的一个实施例中,所述在所述存在遮挡的位置处断开前景和背景之间的面片连接关系,并针对所述存在遮挡的位置处的背景部分构建网格包括:断开所述像素点与所述任一相邻像素点之间的面片连接关系,并在所述像素点往所述任一相邻像素点的方向扩展顶点以构建网格,直到所述像素点往所述任一相邻像素点的方向不再存在遮挡。
在本发明的一个实施例中,在所述像素点往所述任一相邻像素点的方向扩展顶点包括:每往所述方向扩展一个顶点,确定所述顶点是否能与所述顶点相邻的像素点连接或确定是否已经达到所述方向的最大扩展边界;如果确定所述顶点能与所述顶点相邻的像素点连接或确定已经达到所述方向的最大扩展边界,则所述方向扩展结束,如此迭代,直到每个像素点的所有存在遮挡的方向均扩展结束。
在本发明的一个实施例中,所述在所述像素点往所述任一相邻像素点的方向扩展顶点还包括:在每往所述方向扩展一个顶点之前,确定要被扩展顶点的位置是否已被其他点占据,如果已被占据,则新建一层网格进行顶点扩展。
在本发明的一个实施例中,所述方向的最大扩展边界基于拍摄所述输入图像的相机的成像模型、所述相机的内部参数以及用于模拟所述相机的位置变化幅度的预设参数而确定。
根据本发明另一方面,提供了一种基于单张图像构建三维网格的装置,所述装置包括:计算模块,用于确定输入图像对应的深度图像中存在遮挡的位置;以及构建模块,用于在所述存在遮挡的位置处断开前景和背景之间的面片连接关系,并针对所述存在遮挡的位置处的背景部分构建网格。
根据本发明又一方面,提供了一种基于单张图像构建三维网格的***,所述***包括存储装置和处理器,所述存储装置上存储有由所述处理器运行的计算机程序,所述计算机程序在被所述处理器运行时执行上述任一项所述的基于单张图像构建三维网格的方法。
根据本发明再一方面,提供了一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序在运行时执行上述任一项所述的基于单张图像构建三维网格的方法。
根据本发明又一方面,提供了一种计算机程序,所述计算机程序被计算机或处理器运行时用于执行上述任一项所述的基于单张图像构建三维网格的方法,所述计算机程序还用于实现上述任一项所述的基于单张图像构建三维网格的装置中的各模块。
根据本发明实施例的基于单张图像构建三维网格的方法、装置和***将图像中存在遮挡的位置处的原始面片连接关系断开,并针对被遮挡部分构建网格,可以有效去除明显的拉伸效应,改善视觉效果。
附图说明
通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1示出用于实现根据本发明实施例的基于单张图像构建三维网格的方法、装置和***的示例电子设备的示意性框图;
图2示出根据本发明实施例的基于单张图像构建三维网格的方法的示意性流程图;
图3示出根据本发明实施例的基于单张图像构建三维网格的装置的示意性框图;以及
图4示出根据本发明实施例的基于单张图像构建三维网格的***的示意性框图。
具体实施方式
为了使得本发明的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。基于本发明中描述的本发明实施例,本领域技术人员在没有付出创造性劳动的情况下所得到的所有其它实施例都应落入本发明的保护范围之内。
首先,参照图1来描述用于实现本发明实施例的基于单张图像构建三维网格的方法、装置和***的示例电子设备100。
如图1所示,电子设备100包括一个或多个处理器102、一个或多个存储装置104、输入装置106、输出装置108以及图像采集装置110,这些组件通过总线***112和/或其它形式的连接机构(未示出)互连。应当注意,图1所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,所述电子设备也可以具有其他组件和结构。
所述处理器102可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元,并且可以控制所述电子设备100中的其它组件以执行期望的功能。
所述存储装置104可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器102可以运行所述程序指令,以实现下文所述的本发明实施例中(由处理器实现)的基于单张图像构建三维网格的功能以及/或者其它期望的功能。在所述计算机可读存储介质中还可以存储各种应用程序和各种数据,例如所述应用程序使用和/或产生的各种数据等。
所述输入装置106可以是用户用来输入指令的装置,并且可以包括键盘、鼠标、麦克风和触摸屏等中的一个或多个。
所述输出装置108可以向外部(例如用户)输出各种信息(例如图像或声音),并且可以包括显示器、扬声器等中的一个或多个。
所述图像采集装置110可以采集用户期望的图像(例如照片、视频等),并且将所采集的图像存储在所述存储装置104中以供其它组件使用。应当理解,图像采集装置110仅是示例,电子设备100可以不包括图像采集装置110。在这种情况下,可以利用具有图像采集能力的部件采集图像,并将采集的图像发送给电子设备100。
示例性地,用于实现根据本发明实施例的基于单张图像构建三维网格的方法、装置和***的示例电子设备可以被实现为诸如智能手机、平板电脑等终端或其他车载终端。
下面,将参考图2描述根据本发明实施例的基于单张图像构建三维网格的方法200。如图2所示,基于单张图像构建三维网格的方法200可以包括如下步骤:
在步骤S210,确定输入图像对应的深度图像中存在遮挡的位置。
在本发明的实施例中,步骤S210中的输入图像可以是由图像采集设备(例如相机)实时采集的单张RGB图像,也可以是来自任何源的单张图像。本发明的方法是用于基于该单张图像构建三维网格,并且在基于单张图像构建三维网格时考虑了图像中不同物体分界处的遮挡关系,从而可以有效去除图像中不同物体分界处的明显拉伸效应。在本发明的实施例中,可以基于输入图像对应的深度图像来确定图像中不同物体分界处的遮挡关系。
具体地,确定输入图像对应的深度图像中存在遮挡的位置的操作可以进一步包括:针对所述深度图像中的每一个像素点,计算所述像素点与其相邻像素点之间的深度差;以及如果所述像素点与其任一相邻像素点之间的深度差大于预设阈值,则确定所述像素点在往所述任一相邻像素点的方向存在遮挡。其中,在一个示例中,所述像素点的相邻像素点可以包括所述像素点的上下左右四个方向的相邻像素点,即与所述像素点相邻一个像素点的像素点(可称为一邻域点)。在另一个示例中,所述像素点的相邻像素点可以包括所述像素点的其他方向的相邻像素点,例如所述像素点的倾斜方向的相邻像素点,即与所述像素点相邻两个像素点的像素点(称为二邻域点)。在其他示例中,所述像素点的相邻像素点也可以包括上述相邻像素点中的部分像素点,例如对于处于图像边界的像素点,可能仅包括两个方向的相邻像素点。
下面以包括上下左右四个方向的相邻像素点为例来描述。例如,对于深度图像中的任一像素点A,其上下左右四个方向的相邻像素点分别为像素点B、像素点C、像素点D和像素点E。可以分别计算像素点A与像素点B、像素点C、像素点D、像素点E之间的深度差。假定在像素点B、像素点C、像素点D和像素点E这四个像素点中,像素点A与像素点B的深度差以及像素点A与像素点D的深度差均小于或等于预设阈值,像素点A与像素点C的深度差以及像素点A与像素点E的深度差大于预设阈值,则表示像素点A往像素点C的方向(即像素点A往下边的方向)和像素点A往像素点E的方向(即像素点A往右边的方向)存在遮挡。也就是说,像素点A为背景部分,像素点C和像素点E为前景部分,像素点A所在的对象存在被像素点C所在对象和像素点E所在对象遮挡的部分。按照该方法,可以计算每个像素点往其相邻像素点的方向是否存在遮挡,即确定图像中存在遮挡的位置。
此外,可以针对每个像素点往其各相邻像素点的方向是否存在遮挡构建一个标记(mask),并根据各方向是否存在遮挡对该标记中的各点进行赋值。例如,接着上面的示例,像素点A往像素点B的方向不存在遮挡,则与像素点A对应的mask中对应于像素点B方向的标记可以设为0;像素点A往像素点C的方向存在遮挡,则与像素点A对应的mask中对应于像素点C方向的标记可以设为1;像素点A往像素点D的方向不存在遮挡,则与像素点A对应的mask中对应于像素点D方向的标记可以设为0;像素点A往像素点E的方向存在遮挡,则与像素点A对应的mask中对应于像素点E方向的标记可以设为1。基于该标记,下文中将描述的操作在使图像中每个像素点的mask中的点均为0时,完成最终网格的构建。
现在继续参考图2,在步骤S220,在所述存在遮挡的位置处断开前景和背景之间的面片连接关系,并针对所述存在遮挡的位置处的背景部分构建网格。
在本发明的实施例中,针对在步骤S210确定得到的深度图像中存在遮挡的位置,可以断开深度图像中存在遮挡的位置处的原始的面片连接关系。此处,原始的面片连接关系可以是在未考虑图像中遮挡关系的情况下构建的网格中该位置处的面片连接关系。由于在本发明的方法中考虑了图像中的遮挡关系,在存在遮挡的位置处断开了前景和背景之间的原始面片连接关系,并针对存在遮挡的位置处的背景部分构建网格以补充被遮挡的部分,因而能够有效去除拉伸效应,提高视觉效果。
具体地,在所述存在遮挡的位置处断开前景和背景之间的面片连接关系,并针对所述存在遮挡的位置处的背景部分构建网格的操作可以包括:断开所述像素点与所述任一相邻像素点之间的面片连接关系(其中所述任一相邻像素点是指其所在对象与所述像素点所在对象之间存在遮挡关系),并在所述像素点往所述任一相邻像素点的方向扩展顶点以构建网格,直到所述像素点往所述任一相邻像素点的方向不再存在遮挡。对此可以再次参照先前的示例进行描述。
接着上面的示例,如前所述,对于深度图像中的任一像素点A,其上下左右四个方向的相邻像素点分别为像素点B、像素点C、像素点D和像素点E,假定像素点A与像素点C的深度差以及像素点A与像素点E的深度差大于预设阈值,则可以:断开像素点A与像素点C之间的面片连接关系,并在像素点A往像素点C的方向扩展顶点(即由像素点A向下扩展顶点)以构建面片从而构建网格,直到像素点A往像素点C的方向不再存在遮挡;断开像素点A与像素点E之间的面片连接关系,并在像素点A往像素点E的方向扩展顶点(即由像素点A向右扩展顶点)以构建面片从而构建网格,直到像素点A往像素点E的方向不再存在遮挡。
进一步地,在本发明的实施例中,在针对存在遮挡的位置处的背景部分构建面片时,每当需被构建面片的位置已被占据时则新建一层网格以用于构建面片,从而构建多层网格,以解决仅构建单层或双层网格出现面片缺失的问题。进一步地,在本发明的实施例中,在针对所述存在遮挡的位置处的背景部分构建面片之前,可以先确定被遮挡部分需要构建面片的最大值。基于此,在往某方向构建面片时,该最大值可以作为往该方向构建面片设置的停止条件,从而有效减少无用面片的产生,大大减少总体面片数量,提高构建效率。对此可以再次参照先前的示例进行描述。
接着上面的示例,如前所述,在像素点A往像素点C的方向扩展顶点(即由像素点A向下扩展顶点)以构建面片从而构建网格,直到像素点A往像素点C的方向不再存在遮挡。其中,在像素点A往像素点C的方向扩展顶点时,每扩展一个顶点,确定该顶点是否能与该顶点相邻的像素点连接或确定是否已经达到该方向(即在像素点A往像素点C的方向)的最大扩展边界;如果确定该顶点能与该顶点相邻的像素点连接或确定已经达到该方向的最大扩展边界,则该方向扩展结束,此时可以更新与像素点A相对应的mask,使mask中表示像素点A往像素点C的方向的标记值为0,然后继续对与像素点A相对应的mask中为1的点对应的方向扩展顶点。在上面的示例中,接下来可以在像素点A往像素点E的方向扩展顶点。类似地,在像素点A往像素点E的方向扩展顶点(即由像素点A向右扩展顶点)以构建面片从而构建网格,直到像素点A往像素点E的方向不再存在遮挡。其中,在像素点A往像素点E的方向扩展顶点时,每扩展一个顶点,确定该顶点是否能与该顶点相邻的像素点连接或确定是否已经达到该方向(即在像素点A往像素点E的方向)的最大扩展边界;如果确定该顶点能与该顶点相邻的像素点连接或确定已经达到该方向的最大扩展边界,则该方向扩展结束。以上是对于像素点A的所有存在遮挡的方向扩展结束。按照如此方法,直到每个像素点的所有存在遮挡的方向均扩展结束。
在上述示例中,在像素点A往像素点C的方向(或者像素点A往像素点E的方向)扩展顶点时,每扩展一个顶点,确定该顶点是否能与该顶点相邻的像素点连接,此处,可以通过在步骤S210中所述的预设阈值来确定该顶点是否能与该顶点相邻的像素点。与前面所述类似的,可以计算该顶点与其相邻像素点之间的深度差,当该顶点与其任一相邻像素点之间的深度差小于或等于预设阈值时,表示该顶点可以与该相邻像素点连接。反之,当该顶点与其任一相邻像素点之间的深度差大于预设阈值时,表示该顶点不能与该相邻像素点连接。此时,表示扩展并未结束,仍需就该方向继续扩展顶点。
此外,在上述示例中,在像素点A往像素点C的方向的最大扩展边界为在像素点A往像素点C的方向扩展需要的顶点数目的最大值。其中,该最大值可以基于拍摄所述输入图像的相机的成像模型、所述相机的内部参数以及用于模拟所述相机的位置变化幅度的预设参数而确定。示例性地,可以采用下面的公式来计算在像素点A往像素点C的方向扩展需要的顶点数目的最大值:
其中,z1为像素点A的深度值,z2为像素点C的深度值,(i,j)为像素点A的位置坐标,fx、fy、cx和cy均为拍摄所述输入图像的相机的内部参数,dx、dy和dz是用于模拟所述相机的位置变化幅度的预设参数,也就是期望获得相对于原始相机位置外参变化幅度的最大值。由于dz相对于z来说是可以忽略不计的(它们之间一般是厘米与米之间的关系),因此上式可以简化为:
通过上式即可以计算得到在像素点A往像素点C的方向扩展需要的顶点数目的最大值,从而减少无用顶点、无用面片的产生,提高效率。类似地,在像素点A往像素点E的方向的最大扩展边界为在像素点A往像素点E的方向扩展需要的顶点数目的最大值,在像素点A往像素点E的方向扩展需要的顶点数目的最大值可以采用上式进行计算,只需将上式中的z2更换为像素点E的深度值即可。
进一步地,本发明的实施例中,前述在所述像素点往所述任一相邻像素点的方向扩展顶点的操作还包括:在每往所述方向扩展一个顶点之前,确定要被扩展顶点的位置是否已被其他点占据,如果已被占据,则新建一层网格进行顶点扩展。仍然可以参照上面的示例,每当像素点A往像素点C的方向(或者每当像素点A往像素点E的方向)扩展一个顶点之前,可以确定将被扩展顶点的位置是否已被其他点占据(例如其他像素点可能已经在该位置处扩展了顶点,或者该位置处原本就存在像素点等),如果已被占据,则新建一层网格进行顶点扩展。然后,在新建一层网格进行顶点扩展后,如前所述,仍然需要确定该顶点是否能与该顶点相邻的像素点连接或确定是否已经达到该方向的最大扩展边界。如果确定该顶点能与该顶点相邻的像素点连接或确定已经达到该方向的最大扩展边界,则该方向扩展结束。如此迭代,直到每个像素点的所有存在遮挡的方向均扩展结束。
总体上,根据本发明实施例的基于单张图像构建三维网格的方法可以首先确定输入图像对应的深度图像中每个像素点往其相邻像素点的方向是否存在遮挡,从而得到需要扩展顶点的像素点mask;然后基于拍摄所述输入图像的相机的成像模型、所述相机的内部参数以及用于模拟所述相机的位置变化幅度的预设参数确定每个像素点需往其被遮挡方向扩展顶点的最大值;最后,基于需要扩展顶点的像素点mask、扩展的方向以及每扩展方向相应需扩展的最大边界,对于mask中的每一个点,往对应的方向扩展一个顶点,若该位置已被占据,则新建一层扩展顶点,并计算是否可以和被扩展顶点位置的周围四个点连接(通过深度差的阈值判断),更新mask(跟周围4个点连接起来或者已到达最大扩展边界则设为0,其余为1)、扩展方向以及对应扩展的最大边界,反复迭代,直至mask全为0,完成最终网格的构建。
基于上面的描述,根据本发明实施例的基于单张图像构建三维网格的方法将图像中存在遮挡的位置处的原始面片连接关系断开,并针对被遮挡部分构建网格,可以有效去除明显的拉伸效应,改善视觉效果。此外,根据本发明实施例的基于单张图像构建三维网格的方法构建多层网格,有效解决双层网格在多个不同深度分界处的位置出现三角面片缺失的问题。此外,根据本发明实施例的基于单张图像构建三维网格的方法在构建网格时基于相机成像模型以及相机相关的内外参数求得某方向被遮挡部分的大小,即可以得到该层网格最多需要往该方向构建多少三角面片,从而有效减少三角面片的数量,提高网格的有效利用率。
以上示例性地描述了根据本发明实施例的基于单张图像构建三维网格的方法。示例性地,根据本发明实施例的基于单张图像构建三维网格的方法可以在具有存储器和处理器的设备、装置或者***中实现。
此外,根据本发明实施例的基于单张图像构建三维网格的方法可以方便地部署到智能手机、平板电脑、个人计算机等移动设备上。替代地,根据本发明实施例的基于单张图像构建三维网格的方法还可以部署在服务器端(或云端)。替代地,根据本发明实施例的基于单张图像构建三维网格的方法还可以分布地部署在服务器端(或云端)和个人终端处。
下面结合图3描述本发明另一方面提供的基于单张图像构建三维网格的装置。图3示出了根据本发明实施例的基于单张图像构建三维网格的装置300的示意性框图。
如图3所示,根据本发明实施例的基于单张图像构建三维网格的装置300包括计算模块310和构建模块320。其中,计算模块310用于确定输入图像对应的深度图像中存在遮挡的位置。构建模块320用于在所述存在遮挡的位置处断开前景和背景之间的面片连接关系,并针对所述存在遮挡的位置处的背景部分构建网格。所述各个模块可分别执行上文中结合图2描述的基于单张图像构建三维网格的方法的各个步骤/功能。以下仅对基于单张图像构建三维网格的装置300的各模块的主要功能进行描述,而省略以上已经描述过的细节内容。
在本发明的实施例中,输入图像可以是由图像采集设备(例如相机)实时采集的单张RGB图像,也可以是来自任何源的单张图像。在本发明的实施例中,计算模块310可以基于输入图像对应的深度图像来确定图像中不同物体分界处的遮挡关系。
具体地,计算模块310确定输入图像对应的深度图像中存在遮挡的位置的操作可以进一步包括:针对所述深度图像中的每一个像素点,计算所述像素点与其相邻像素点之间的深度差;以及如果所述像素点与其任一相邻像素点之间的深度差大于预设阈值,则确定所述像素点在往所述任一相邻像素点的方向存在遮挡。其中,在一个示例中,所述像素点的相邻像素点可以包括所述像素点的上下左右四个方向的相邻像素点,即与所述像素点相邻一个像素点的像素点(可称为一邻域点)。在另一个示例中,所述像素点的相邻像素点可以包括所述像素点的其他方向的相邻像素点,例如所述像素点的倾斜方向的相邻像素点,即与所述像素点相邻两个像素点的像素点(称为二邻域点)。在其他示例中,所述像素点的相邻像素点也可以包括上述相邻像素点中的部分像素点,例如对于处于图像边界的像素点,可能仅包括两个方向的相邻像素点。
下面以包括上下左右四个方向的相邻像素点为例来描述。例如,对于深度图像中的任一像素点A,其上下左右四个方向的相邻像素点分别为像素点B、像素点C、像素点D和像素点E。计算模块310可以分别计算像素点A与像素点B、像素点C、像素点D、像素点E之间的深度差。假定在像素点B、像素点C、像素点D和像素点E这四个像素点中,像素点A与像素点B的深度差以及像素点A与像素点D的深度差均小于或等于预设阈值,像素点A与像素点C的深度差以及像素点A与像素点E的深度差大于预设阈值,则表示像素点A往像素点C的方向(即像素点A往下边的方向)和像素点A往像素点E的方向(即像素点A往右边的方向)存在遮挡。也就是说,像素点A为背景部分,像素点C和像素点E为前景部分,像素点A所在的对象存在被像素点C所在对象和像素点E所在对象遮挡的部分。按照该方法,计算模块310可以计算每个像素点往其相邻像素点的方向是否存在遮挡,即确定图像中存在遮挡的位置。
此外,计算模块310可以针对每个像素点往其各相邻像素点的方向是否存在遮挡构建一个标记(mask),并根据各方向是否存在遮挡对该标记中的各点进行赋值。例如,接着上面的示例,像素点A往像素点B的方向不存在遮挡,则与像素点A对应的mask中对应于像素点B方向的标记可以设为0;像素点A往像素点C的方向存在遮挡,则与像素点A对应的mask中对应于像素点C方向的标记可以设为1;像素点A往像素点D的方向不存在遮挡,则与像素点A对应的mask中对应于像素点D方向的标记可以设为0;像素点A往像素点E的方向存在遮挡,则与像素点A对应的mask中对应于像素点E方向的标记可以设为1。基于该标记,下文中将描述的构建模块320的操作在使图像中每个像素点的mask中的点均为0时,完成最终网格的构建。
在本发明的实施例中,针对计算模块310确定得到的深度图像中存在遮挡的位置,构建模块320可以断开深度图像中存在遮挡的位置处的原始的面片连接关系。此处,原始的面片连接关系可以是在未考虑图像中遮挡关系的情况下构建的网格中该位置处的面片连接关系。由于在本发明中考虑了图像中的遮挡关系,在存在遮挡的位置处断开了前景和背景之间的原始面片连接关系,并针对存在遮挡的位置处的背景部分构建网格以补充被遮挡的部分,因而能够有效去除拉伸效应,提高视觉效果。
具体地,构建模块320在所述存在遮挡的位置处断开前景和背景之间的面片连接关系,并针对所述存在遮挡的位置处的背景部分构建网格的操作可以包括:断开所述像素点与所述任一相邻像素点之间的面片连接关系(其中所述任一相邻像素点是指其所在对象与所述像素点所在对象之间存在遮挡关系),并在所述像素点往所述任一相邻像素点的方向扩展顶点以构建网格,直到所述像素点往所述任一相邻像素点的方向不再存在遮挡。对此可以再次参照先前的示例进行描述。
接着上面的示例,如前所述,对于深度图像中的任一像素点A,其上下左右四个方向的相邻像素点分别为像素点B、像素点C、像素点D和像素点E,假定计算模块310通过计算确定像素点A与像素点C的深度差以及像素点A与像素点E的深度差大于预设阈值,则构建模块320可以:断开像素点A与像素点C之间的面片连接关系,并在像素点A往像素点C的方向扩展顶点(即由像素点A向下扩展顶点)以构建面片从而构建网格,直到像素点A往像素点C的方向不再存在遮挡;断开像素点A与像素点E之间的面片连接关系,并在像素点A往像素点E的方向扩展顶点(即由像素点A向右扩展顶点)以构建面片从而构建网格,直到像素点A往像素点E的方向不再存在遮挡。
进一步地,在本发明的实施例中,构建模块320在针对存在遮挡的位置处的背景部分构建面片时,每当需被构建面片的位置已被占据时则新建一层网格以用于构建面片,从而构建多层网格,以解决仅构建单层或双层网格出现面片缺失的问题。进一步地,在本发明的实施例中,构建模块320在针对所述存在遮挡的位置处的背景部分构建面片之前,可以先确定被遮挡部分需要构建面片的最大值。基于此,在往某方向构建面片时,该最大值可以作为往该方向构建面片设置的停止条件,从而有效减少无用面片的产生,大大减少总体面片数量,提高构建效率。对此可以再次参照先前的示例进行描述。
接着上面的示例,如前所述,构建模块320在像素点A往像素点C的方向扩展顶点(即由像素点A向下扩展顶点)以构建面片从而构建网格,直到像素点A往像素点C的方向不再存在遮挡。其中,构建模块320在像素点A往像素点C的方向扩展顶点时,每扩展一个顶点,确定该顶点是否能与该顶点相邻的像素点连接或确定是否已经达到该方向(即在像素点A往像素点C的方向)的最大扩展边界;如果确定该顶点能与该顶点相邻的像素点连接或确定已经达到该方向的最大扩展边界,则该方向扩展结束,此时可以更新与像素点A相对应的mask,使mask中表示像素点A往像素点C的方向的标记值为0,然后继续对与像素点A相对应的mask中为1的点对应的方向扩展顶点。在上面的示例中,构建模块320接下来可以在像素点A往像素点E的方向扩展顶点。类似地,在像素点A往像素点E的方向扩展顶点(即由像素点A向右扩展顶点)以构建面片从而构建网格,直到像素点A往像素点E的方向不再存在遮挡。其中,构建模块320在像素点A往像素点E的方向扩展顶点时,每扩展一个顶点,确定该顶点是否能与该顶点相邻的像素点连接或确定是否已经达到该方向(即在像素点A往像素点E的方向)的最大扩展边界;如果确定该顶点能与该顶点相邻的像素点连接或确定已经达到该方向的最大扩展边界,则该方向扩展结束。以上是对于像素点A的所有存在遮挡的方向扩展结束。按照如此过程,直到每个像素点的所有存在遮挡的方向均扩展结束。
在上述示例中,在像素点A往像素点C的方向(或者像素点A往像素点E的方向)扩展顶点时,每扩展一个顶点,确定该顶点是否能与该顶点相邻的像素点连接,此处,可以通过计算模块310采用的所述的预设阈值来确定该顶点是否能与该顶点相邻的像素点。与前面所述类似的,构建模块320可以计算该顶点与其相邻像素点之间的深度差,当该顶点与其任一相邻像素点之间的深度差小于或等于预设阈值时,表示该顶点可以与该相邻像素点连接。反之,当该顶点与其任一相邻像素点之间的深度差大于预设阈值时,表示该顶点不能与该相邻像素点连接。此时,表示扩展并未结束,仍需就该方向继续扩展顶点。
此外,在上述示例中,在像素点A往像素点C的方向的最大扩展边界为在像素点A往像素点C的方向扩展需要的顶点数目的最大值。其中,该最大值可以由计算模块310基于拍摄所述输入图像的相机的成像模型、所述相机的内部参数以及用于模拟所述相机的位置变化幅度的预设参数而确定。示例性地,计算模块310可以采用下面的公式来计算在像素点A往像素点C的方向扩展需要的顶点数目的最大值:
其中,z1为像素点A的深度值,z2为像素点C的深度值,(i,j)为像素点A的位置坐标,fx、fy、cx和cy均为拍摄所述输入图像的相机的内部参数,dx、dy和dz是用于模拟所述相机的位置变化幅度的预设参数,也就是期望获得相对于原始相机位置外参变化幅度的最大值。由于dz相对于z来说是可以忽略不计的(它们之间一般是厘米与米之间的关系),因此上式可以简化为:
通过上式即可以计算得到在像素点A往像素点C的方向扩展需要的顶点数目的最大值,从而减少无用顶点、无用面片的产生,提高效率。类似地,在像素点A往像素点E的方向的最大扩展边界为在像素点A往像素点E的方向扩展需要的顶点数目的最大值,在像素点A往像素点E的方向扩展需要的顶点数目的最大值可以采用上式进行计算,只需将上式中的z2更换为像素点E的深度值即可。
进一步地,本发明的实施例中,前述构建模块320在所述像素点往所述任一相邻像素点的方向扩展顶点的操作还包括:在每往所述方向扩展一个顶点之前,确定要被扩展顶点的位置是否已被其他点占据,如果已被占据,则新建一层网格进行顶点扩展。仍然可以参照上面的示例,每当像素点A往像素点C的方向(或者每当像素点A往像素点E的方向)扩展一个顶点之前,构建模块320可以确定将被扩展顶点的位置是否已被其他点占据(例如其他像素点可能已经在该位置处扩展了顶点,或者该位置处原本就存在像素点等),如果已被占据,则新建一层网格进行顶点扩展。然后,在新建一层网格进行顶点扩展后,如前所述,构建模块320仍然需要确定该顶点是否能与该顶点相邻的像素点连接或确定是否已经达到该方向的最大扩展边界。如果确定该顶点能与该顶点相邻的像素点连接或确定已经达到该方向的最大扩展边界,则该方向扩展结束。如此迭代,直到每个像素点的所有存在遮挡的方向均扩展结束。
总体上,根据本发明实施例的基于单张图像构建三维网格的装置可以首先确定输入图像对应的深度图像中每个像素点往其相邻像素点的方向是否存在遮挡,从而得到需要扩展顶点的像素点mask;然后基于拍摄所述输入图像的相机的成像模型、所述相机的内部参数以及用于模拟所述相机的位置变化幅度的预设参数确定每个像素点需往其被遮挡方向扩展顶点的最大值;最后,基于需要扩展顶点的像素点mask、扩展的方向以及每扩展方向相应需扩展的最大边界,对于mask中的每一个点,往对应的方向扩展一个顶点,若该位置已被占据,则新建一层扩展顶点,并计算是否可以和被扩展顶点位置的周围四个点连接(通过深度差的阈值判断),更新mask(跟周围4个点连接起来或者已到达最大扩展边界则设为0,其余为1)、扩展方向以及对应扩展的最大边界,反复迭代,直至mask全为0,完成最终网格的构建。
基于上面的描述,根据本发明实施例的基于单张图像构建三维网格的装置将图像中存在遮挡的位置处的原始面片连接关系断开,并针对被遮挡部分构建网格,可以有效去除明显的拉伸效应,改善视觉效果。此外,根据本发明实施例的基于单张图像构建三维网格的装置构建多层网格,有效解决双层网格在多个不同深度分界处的位置出现三角面片缺失的问题。此外,根据本发明实施例的基于单张图像构建三维网格的装置在构建网格时基于相机成像模型以及相机相关的内外参数求得某方向被遮挡部分的大小,即可以得到该层网格最多需要往该方向构建多少三角面片,从而有效减少三角面片的数量,提高网格的有效利用率。
图4示出了根据本发明实施例的基于单张图像构建三维网格的***400的示意性框图。基于单张图像构建三维网格的***400包括存储装置410以及处理器420。
其中,存储装置410存储用于实现根据本发明实施例的基于单张图像构建三维网格的方法中的相应步骤的程序。处理器420用于运行存储装置410中存储的程序,以执行根据本发明实施例的基于单张图像构建三维网格的方法的相应步骤,并且用于实现根据本发明实施例的基于单张图像构建三维网格的装置中的相应模块。此外,基于单张图像构建三维网格的***400还可以包括图像采集装置(未在图4中示出),其可以用于采集所述输入图像。当然,图像采集装置不是必需的,基于单张图像构建三维网格的***400也可以从其他外部图像采集装置采集所述输入图像。
在本发明的一个实施例中,在所述程序被处理器420运行时使得基于单张图像构建三维网格的***400执行以下步骤:确定输入图像对应的深度图像中存在遮挡的位置;以及在所述存在遮挡的位置处断开前景和背景之间的面片连接关系,并针对所述存在遮挡的位置处的背景部分构建网格。
在本发明的一个实施例中,在所述程序被处理器420运行时使得基于单张图像构建三维网格的***400执行的所述针对所述存在遮挡的位置处的背景部分构建网格包括:在针对所述存在遮挡的位置处的背景部分构建面片时,每当需被构建面片的位置已被占据时则新建一层网格以用于构建面片。
在本发明的一个实施例中,在所述程序被处理器420运行时还使得基于单张图像构建三维网格的***400执行以下步骤:在针对所述存在遮挡的位置处的背景部分构建面片之前,确定被遮挡部分需要构建面片的最大值。
在本发明的一个实施例中,在所述程序被处理器420运行时使得基于单张图像构建三维网格的***400执行的所述确定输入图像对应的深度图像中存在遮挡的位置包括:针对所述深度图像中的每一个像素点,计算所述像素点与其相邻像素点之间的深度差;以及如果所述像素点与其任一相邻像素点之间的深度差大于预设阈值,则确定所述像素点在往所述任一相邻像素点的方向存在遮挡。
在本发明的一个实施例中,所述像素点的相邻像素点包括所述像素点的上下左右四个方向的相邻像素点。
在本发明的一个实施例中,在所述程序被处理器420运行时使得基于单张图像构建三维网格的***400执行的所述在所述存在遮挡的位置处断开前景和背景之间的面片连接关系,并针对所述存在遮挡的位置处的背景部分构建网格包括:断开所述像素点与所述任一相邻像素点之间的面片连接关系,并在所述像素点往所述任一相邻像素点的方向扩展顶点以构建网格,直到所述像素点往所述任一相邻像素点的方向不再存在遮挡。
在本发明的一个实施例中,在所述程序被处理器420运行时使得基于单张图像构建三维网格的***400执行的在所述像素点往所述任一相邻像素点的方向扩展顶点包括:每往所述方向扩展一个顶点,确定所述顶点是否能与所述顶点相邻的像素点连接或确定是否已经达到所述方向的最大扩展边界;如果确定所述顶点能与所述顶点相邻的像素点连接或确定已经达到所述方向的最大扩展边界,则所述方向扩展结束,如此迭代,直到每个像素点的所有存在遮挡的方向均扩展结束。
在本发明的一个实施例中,在所述程序被处理器420运行时使得基于单张图像构建三维网格的***400执行的所述在所述像素点往所述任一相邻像素点的方向扩展顶点还包括:在每往所述方向扩展一个顶点之前,确定要被扩展顶点的位置是否已被其他点占据,如果已被占据,则新建一层网格进行顶点扩展。
在本发明的一个实施例中,所述方向的最大扩展边界基于拍摄所述输入图像的相机的成像模型、所述相机的内部参数以及用于模拟所述相机的位置变化幅度的预设参数而确定。
此外,根据本发明实施例,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本发明实施例的基于单张图像构建三维网格的方法的相应步骤,并且用于实现根据本发明实施例的基于单张图像构建三维网格的装置中的相应模块。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。所述计算机可读存储介质可以是一个或多个计算机可读存储介质的任意组合。
在一个实施例中,所述计算机程序指令在被计算机运行时可以实现根据本发明实施例的基于单张图像构建三维网格的装置的各个功能模块,并且/或者可以执行根据本发明实施例的基于单张图像构建三维网格的方法。
在本发明的一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行以下步骤:确定输入图像对应的深度图像中存在遮挡的位置;以及在所述存在遮挡的位置处断开前景和背景之间的面片连接关系,并针对所述存在遮挡的位置处的背景部分构建网格。
在本发明的一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行的所述针对所述存在遮挡的位置处的背景部分构建网格包括:在针对所述存在遮挡的位置处的背景部分构建面片时,每当需被构建面片的位置已被占据时则新建一层网格以用于构建面片。
在本发明的一个实施例中,所述计算机程序指令在被计算机或处理器运行时还使计算机或处理器执行以下步骤:在针对所述存在遮挡的位置处的背景部分构建面片之前,确定被遮挡部分需要构建面片的最大值。
在本发明的一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行的所述确定输入图像对应的深度图像中存在遮挡的位置包括:针对所述深度图像中的每一个像素点,计算所述像素点与其相邻像素点之间的深度差;以及如果所述像素点与其任一相邻像素点之间的深度差大于预设阈值,则确定所述像素点在往所述任一相邻像素点的方向存在遮挡。
在本发明的一个实施例中,所述像素点的相邻像素点包括所述像素点的上下左右四个方向的相邻像素点。
在本发明的一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行的所述在所述存在遮挡的位置处断开前景和背景之间的面片连接关系,并针对所述存在遮挡的位置处的背景部分构建网格包括:断开所述像素点与所述任一相邻像素点之间的面片连接关系,并在所述像素点往所述任一相邻像素点的方向扩展顶点以构建网格,直到所述像素点往所述任一相邻像素点的方向不再存在遮挡。
在本发明的一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行的在所述像素点往所述任一相邻像素点的方向扩展顶点包括:每往所述方向扩展一个顶点,确定所述顶点是否能与所述顶点相邻的像素点连接或确定是否已经达到所述方向的最大扩展边界;如果确定所述顶点能与所述顶点相邻的像素点连接或确定已经达到所述方向的最大扩展边界,则所述方向扩展结束,如此迭代,直到每个像素点的所有存在遮挡的方向均扩展结束。
在本发明的一个实施例中,所述计算机程序指令在被计算机或处理器运行时使计算机或处理器执行的所述在所述像素点往所述任一相邻像素点的方向扩展顶点还包括:在每往所述方向扩展一个顶点之前,确定要被扩展顶点的位置是否已被其他点占据,如果已被占据,则新建一层网格进行顶点扩展。
在本发明的一个实施例中,所述方向的最大扩展边界基于拍摄所述输入图像的相机的成像模型、所述相机的内部参数以及用于模拟所述相机的位置变化幅度的预设参数而确定。
根据本发明实施例的基于单张图像构建三维网格的装置中的各模块可以通过根据本发明实施例的基于单张图像构建三维网格的电子设备的处理器运行在存储器中存储的计算机程序指令来实现,或者可以在根据本发明实施例的计算机程序产品的计算机可读存储介质中存储的计算机指令被计算机运行时实现。
此外,根据本发明实施例,还提供了一种计算机程序,该计算机程序可以存储在云端或本地的存储介质上。在该计算机程序被计算机或处理器运行时用于执行本发明实施例的基于单张图像构建三维网格的方法的相应步骤,并且用于实现根据本发明实施例的基于单张图像构建三维网格的装置中的相应模块。
基于上面的描述,根据本发明实施例的基于单张图像构建三维网格的方法、装置和***将图像中存在遮挡的位置处的原始面片连接关系断开,并针对被遮挡部分构建网格,可以有效去除明显的拉伸效应,改善视觉效果。此外,根据本发明实施例的基于单张图像构建三维网格的方法、装置和***构建多层网格,有效解决双层网格在多个不同深度分界处的位置出现三角面片缺失的问题。此外,根据本发明实施例的基于单张图像构建三维网格的方法、装置和***在构建网格时基于相机成像模型以及相机相关的内外参数求得某方向被遮挡部分的大小,即可以得到该层网格最多需要往该方向构建多少三角面片,从而有效减少三角面片的数量,提高网格的有效利用率。
尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本发明的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本发明的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本发明的范围之内。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本发明的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一些模块的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的具体实施方式或对具体实施方式的说明,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种基于单张图像构建三维网格的方法,其特征在于,所述方法包括:
确定输入图像对应的深度图像中存在遮挡的位置;
在所述存在遮挡的位置处断开前景和背景之间的面片连接关系,所述面片连接关系是在未考虑所述深度图像中遮挡关系的情况下构建的网格中所述存在遮挡的位置处的面片连接关系;
针对所述存在遮挡的位置处的背景部分构建网格以补充被遮挡的部分。
2.根据权利要求1所述的方法,其特征在于,所述针对所述存在遮挡的位置处的背景部分构建网格包括:
在针对所述存在遮挡的位置处的背景部分构建面片时,每当需被构建面片的位置已被占据时则新建一层网格以用于构建面片。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在针对所述存在遮挡的位置处的背景部分构建面片之前,确定被遮挡部分需要构建面片的最大值。
4.根据权利要求1-3中的任一项所述的方法,其特征在于,所述确定输入图像对应的深度图像中存在遮挡的位置包括:
针对所述深度图像中的每一个像素点,计算所述像素点与其相邻像素点之间的深度差;以及
如果所述像素点与其任一相邻像素点之间的深度差大于预设阈值,则确定所述像素点在往所述任一相邻像素点的方向存在遮挡。
5.根据权利要求4所述的方法,其特征在于,所述像素点的相邻像素点包括所述像素点的上下左右四个方向的相邻像素点。
6.根据权利要求4所述的方法,其特征在于,所述在所述存在遮挡的位置处断开前景和背景之间的面片连接关系,针对所述存在遮挡的位置处的背景部分构建网格包括:
断开所述像素点与所述任一相邻像素点之间的面片连接关系,并在所述像素点往所述任一相邻像素点的方向扩展顶点以构建网格,直到所述像素点往所述任一相邻像素点的方向不再存在遮挡。
7.根据权利要求6所述的方法,其特征在于,在所述像素点往所述任一相邻像素点的方向扩展顶点包括:
每往所述方向扩展一个顶点,确定所述顶点是否能与所述顶点相邻的像素点连接或确定是否已经达到所述方向的最大扩展边界;
如果确定所述顶点能与所述顶点相邻的像素点连接或确定已经达到所述方向的最大扩展边界,则所述方向扩展结束,如此迭代,直到每个像素点的所有存在遮挡的方向均扩展结束。
8.根据权利要求7所述的方法,其特征在于,所述在所述像素点往所述任一相邻像素点的方向扩展顶点还包括:
在每往所述方向扩展一个顶点之前,确定要被扩展顶点的位置是否已被其他点占据,如果已被占据,则新建一层网格进行顶点扩展。
9.根据权利要求7所述的方法,其特征在于,所述方向的最大扩展边界基于拍摄所述输入图像的相机的成像模型、所述相机的内部参数以及用于模拟所述相机的位置变化幅度的预设参数而确定。
10.一种基于单张图像构建三维网格的装置,其特征在于,所述装置包括:
计算模块,用于确定输入图像对应的深度图像中存在遮挡的位置;以及
构建模块,用于在所述存在遮挡的位置处断开前景和背景之间的面片连接关系,所述面片连接关系是在未考虑所述深度图像中遮挡关系的情况下构建的网格中所述存在遮挡的位置处的面片连接关系;针对所述存在遮挡的位置处的背景部分构建网格以补充被遮挡的部分。
11.一种基于单张图像构建三维网格的***,其特征在于,所述***包括存储装置和处理器,所述存储装置上存储有由所述处理器运行的计算机程序,所述计算机程序在被所述处理器运行时执行如权利要求1-9中的任一项所述的基于单张图像构建三维网格的方法。
12.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序在运行时执行如权利要求1-9中的任一项所述的基于单张图像构建三维网格的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910543756.3A CN110415351B (zh) | 2019-06-21 | 2019-06-21 | 基于单张图像构建三维网格的方法、装置和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910543756.3A CN110415351B (zh) | 2019-06-21 | 2019-06-21 | 基于单张图像构建三维网格的方法、装置和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110415351A CN110415351A (zh) | 2019-11-05 |
CN110415351B true CN110415351B (zh) | 2023-10-10 |
Family
ID=68359601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910543756.3A Active CN110415351B (zh) | 2019-06-21 | 2019-06-21 | 基于单张图像构建三维网格的方法、装置和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110415351B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113870436B (zh) * | 2021-09-30 | 2023-10-20 | 北京字跳网络技术有限公司 | 一种图像处理方法、装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106803267A (zh) * | 2017-01-10 | 2017-06-06 | 西安电子科技大学 | 基于Kinect的室内场景三维重建方法 |
CN108898630A (zh) * | 2018-06-27 | 2018-11-27 | 清华-伯克利深圳学院筹备办公室 | 一种三维重建方法、装置、设备和存储介质 |
CN109242951A (zh) * | 2018-08-06 | 2019-01-18 | 宁波盈芯信息科技有限公司 | 一种脸部实时三维重建方法 |
CN109658433A (zh) * | 2018-12-05 | 2019-04-19 | 青岛小鸟看看科技有限公司 | 图像背景建模和前景提取方法、装置和电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5465128B2 (ja) * | 2010-08-11 | 2014-04-09 | 株式会社トプコン | 点群位置データ処理装置、点群位置データ処理システム、点群位置データ処理方法、および点群位置データ処理プログラム |
-
2019
- 2019-06-21 CN CN201910543756.3A patent/CN110415351B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106803267A (zh) * | 2017-01-10 | 2017-06-06 | 西安电子科技大学 | 基于Kinect的室内场景三维重建方法 |
CN108898630A (zh) * | 2018-06-27 | 2018-11-27 | 清华-伯克利深圳学院筹备办公室 | 一种三维重建方法、装置、设备和存储介质 |
CN109242951A (zh) * | 2018-08-06 | 2019-01-18 | 宁波盈芯信息科技有限公司 | 一种脸部实时三维重建方法 |
CN109658433A (zh) * | 2018-12-05 | 2019-04-19 | 青岛小鸟看看科技有限公司 | 图像背景建模和前景提取方法、装置和电子设备 |
Non-Patent Citations (3)
Title |
---|
MegaDepth: Learning Single-View Depth Prediction from Internet Photos;Zhengqi Li et al.;《Proceedings of the IEEE Conference on Computer Vision and Pattern Recongnition(CVPR)》;20181230;2041-2050 * |
基于阵列图像的自适应光场三维重建算法研究;丁伟利;陈瑜;马鹏程;黄向生;张旭光;;仪器仪表学报(09);232-241 * |
大规模海浪三维可视化研究;王顺利;《中国博士学位论文全文数据库基础科学辑》;20190115(第1期);A010-3 * |
Also Published As
Publication number | Publication date |
---|---|
CN110415351A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113808253B (zh) | 场景三维重建的动态对象处理方法、***、设备及介质 | |
EP3534336B1 (en) | Panoramic image generating method and apparatus | |
US9691175B2 (en) | 3-D models as a navigable container for 2-D raster images | |
CN111242908B (zh) | 一种平面检测方法及装置、平面跟踪方法及装置 | |
US9697581B2 (en) | Image processing apparatus and image processing method | |
US9589385B1 (en) | Method of annotation across different locations | |
CN112651881B (zh) | 图像合成方法、装置、设备、存储介质以及程序产品 | |
CN111357034A (zh) | 点云生成方法、***和计算机存储介质 | |
CN111754381A (zh) | 图形渲染方法、装置和计算机可读存储介质 | |
CN106055331B (zh) | 模型边界生成方法和装置 | |
CN112652046A (zh) | 游戏画面的生成方法、装置、设备及存储介质 | |
US10460503B2 (en) | Texturing of a three-dimensional (3D) model by UV map in-painting | |
CN111127612A (zh) | 游戏场景节点的更新方法、装置、存储介质和电子设备 | |
CN110415351B (zh) | 基于单张图像构建三维网格的方法、装置和*** | |
CN111295695B (zh) | 三维网格数据简化方法及装置 | |
US11100707B2 (en) | Computer graphics method for terrain rendering | |
CN110378948B (zh) | 3d模型重建方法、装置及电子设备 | |
CN111773710A (zh) | 一种纹理图像处理的方法、装置、电子设备和存储介质 | |
CN116912387A (zh) | 纹理贴图的处理方法及装置、电子设备、存储介质 | |
KR101919085B1 (ko) | 3차원 메쉬 데이터 간소화 방법 및 장치 | |
CN110704561B (zh) | 一种地图贴边方法、终端装置及存储介质 | |
JP2014238714A (ja) | 三次元データ生成装置、三次元データ生成方法、及びプログラム | |
KR101630257B1 (ko) | 3d 이미지 제공 시스템 및 그 제공방법 | |
WO2024067202A1 (zh) | 扩展图像的方法、装置、存储介质及电子设备 | |
CN114820908B (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 |