本公开一般涉及表示3d对象的点云数据源的领域。
更具体地,它处置点云的后处理。
因此,本公开涉及用于对点云进行上采样的方法和对应装置。它还涉及用于编码和解码点云的方法以及对应的编码器和解码器。它还涉及实现本发明的上采样方法的计算机程序。
背景技术:
可以执行本部分中描述的方案,但这些方案不一定是先前已经设想或执行的方案。因此,除非本文另外指出,否则本部分中描述的方案不是本申请中的权利要求的现有技术,并且不通过包括在本部分中而被承认为现有技术。
点云可以包括通常意欲表示3d对象的外表面的点的集合,也可以包括可能无法通过其他数据格式(如网格)有效地表示的较复杂的几何形状(如头发或毛发)。每个点都由其3d空间位置(3d空间中的x、y和z坐标)(即几何信息)定义,并且可能由其他关联属性定义,这些关联属性通常包括以rgb或yuv或任何其他颜色坐标系统表示的颜色信息。其他属性可以包括透明度、反射率等。几何形状可以被视为属性数据之一。在本公开的其余部分中,将几何形状和其他属性数据都视为点的属性。
在下文中,考虑有色点云,即6成分点的集合(x,y,z,r,g,b)或等效地(x,y,z,y,u,v),其中(x,y,z)定义3d空间中的点的空间位置,并且(r,g,b)或(y,u,v)定义该点的颜色。
有色点云可以是静态的或者动态的,取决于该云是否相对于时间演化。应当注意,在动态点云的情况下,点的数目不是恒定的,但是相反,通常随着时间演化。因此,动态点云是点集的按时间排序的列表。
在许多应用中发现点云数据源。可以在地理信息系统、机器人、医学断层扫描和科学可视化中,发现依赖于巨大点云数据源的重要应用。
除了更加工业化和有科学导向的这些应用之外,基于飞行时间或其他深度感测技术的廉价3d扫描仪普及的兴起、移动装置上的3d捕获以及基于云的3d打印的兴起,正在创建对消费者市场中的大规模可共同操作的压缩3d点云存储和传输数据格式的巨大需求。
扫描的通常具有数千个点,并占用大量存储空间。此外,当从3d扫描仪捕获实况时,可以按照高速率生成3d点云,这甚至进一步增加数据速率。因此,点云压缩对于有效的网络分发和存储至关重要。
碰巧有些点云(例如使用商用激光测距扫描仪捕获的点云)总是有噪声,这主要是由扫描仪伪影和扫描之间的对准误差引起的。另外,被遮挡或尖锐的区域通常被欠采样。由于噪声和欠采样,原始点的直接渲染或表面重构会产生颗粒状的表面、间隙和孔、以及不规则的边界。这些伪像尤其在视觉上造成干扰,必须通过包括上采样在内的后处理进行校正,所述后处理是在数据集的原始样本之间插入样本的处理,以便增加整个数据集或数据集的几个部分的采样率。
在动态点云压缩的情况下,欠采样问题更严重,其中通过内部编码模式压缩的点云的欠采样部分可能会严重损害编解码器性能。
关于点云上采样的现有技术工作主要基于多项式拟合,其中将某一次数(通常为2或3次)的多项式局部拟合在点云的每个点周围。
多项式拟合运算在计算上很复杂。因此,点云的基于多项式拟合的上采样方案不适用于要求低复杂度的用例,例如即时(on-the-fly)点云渲染和点云解码。
技术实现要素:
本公开提出了一种用于改善情况的解决方案,并且提供了根据所附权利要求的方法和装置。
因此,本公开提供了一种用于对表示3d对象的点云进行上采样的方法,包括:
-基于至少一个期望的采样率,来检测属于点云的至少一个欠采样区域的点;
-为每个检测到的点获得关联的切面;
-如果邻近点和与检测到的点关联的切面之间的距离小于第一阈值,则在点云中插入每个检测到的点的至少一个邻近点。
因此,本公开的上采样方法通过用局部点插入操作代替现有技术的多项式拟合而允许显著降低的复杂度,该局部点插入操作是适合于实时应用的高度可并行化的处理。而且,通过使用点周围的局部切面,可以合理地保留由点云表示的底层局部表面。
期望的采样率在此被有利地定义为以点为中心并且具有给定大小的球体或立方体中的点云的每个点的最小邻域数。
有利地,如果满足以下条件,则将点检测为属于欠采样区域:
-其距离s的邻域的数目小于第二阈值k,其中s是整数;和
-其距离s’的邻域的数目至少等于第三阈值k’,其中s’是大于s的整数。
这意味着,如果点云的点p的距离s的邻域的数目小于k,并且其距离s的邻域的数目至少为k’,则p周围的空间被视为欠采样。然后,根据本公开的方法,应在p周围插入新点。
点的距离s的邻域在此定义为落入其中心为该点并且球体直径或立方体标度(scale)等于2*s的球体或立方体中的邻近点。
因此,有利地需要两个条件,以便检测属于至少一个欠采样区域的点。第一条件与期望的采样率直接相关,而第二条件避免在点云的隔离点周围添加新点,例如可以由编码伪像导致的不需要的嘈杂点。
有利地,取决于以下条件来确定是否插入邻近点:
-它的距离s的邻域的数目;和/或
-当插入邻近点时,由距离s’定义的另一邻域与由检测点的距离s定义的局部邻域之间的距离的变化。
这意味着邻近点的距离s的邻域的数目越多,越可能将该邻近点添加到点云。
有利地,使用主成分分析pca技术,来确定与检测到的点关联的切面。
有利地,该方法包括确定每个插入点的属性。
有利地,该属性是颜色。
根据实施例,通过插值从所述点云的附近点确定所述属性。
根据实施例,在(r,g,b)颜色空间中执行插值。
根据另一实施例,在(y,u,v)颜色空间中执行插值。
本公开还提供了一种用于对表示3d对象的点云进行上采样的上采样装置,包括:
-检测模块,被配置为基于至少一个期望的采样率,来检测属于点云的至少一个欠采样区域的点;
-切面模块,被配置为针对每个检测到的点获得关联的切面;和
-插入模块,被配置为如果邻近点和与检测到的点关联的切面之间的距离小于第一阈值,则在点云中插入每个检测到的点的至少一个邻近点。
有利地,所述上采样装置的模块由一个或多个处理器实现。
根据另一方面,本公开提供了一种用于对表示3d对象的点云进行编码的方法,包括根据本公开的上采样后处理。
本公开还提供了一种用于从比特流解码表示3d对象的点云的方法,该方法包括根据本公开的上采样后处理。
本公开还提供了一种编码器,包括本公开的上采样装置。
本公开进一步提供了一种解码器,包括本公开的上采样装置。
根据本公开的方法可以在可编程设备上的软件中实现。它们可以仅以硬件或软件或其组合来实现。
由于这些方法可以用软件实现,因此它们可以实施为计算机可读代码,用于提供到任何合适的载体介质上的可编程设备。载体介质可以包括诸如软盘、cd-rom、硬盘驱动器、磁带装置或固态存储装置等的存储介质。
因此,本公开提供了一种包括计算机可执行指令的计算机可读程序,以使得计算机能够执行本发明的上采样方法。
图1的图图示了用于这种计算机程序的通用算法的示例。
附图说明
在附图的各图中,作为示例而非作为限制图示了本发明,其中相同的附图标记指代相似的元件,并且其中:
-图1是示出了根据本公开的实施例的对点云进行上采样的步骤的流程图;
-图2是图示了根据本公开的实施例的编码器的示意图;和
-图3是图示了根据本公开的实施例的解码器的示意图。
具体实施方式
在图1的流程图中图示了根据本公开的实施例的用于对点云进行上采样的方法。
该方法通过检测属于点云的至少一个欠采样区域的点,而在步骤2开始。在下面的描述中,这些点被称为欠采样点。
根据定义,在欠采样区域中,采样率小于所需或期望的采样率k。
所需的采样率在此被定义为以点为中心并具有给定大小的球体或立方体中的、点云的每个点的最小邻域数目。
因此,用于检测欠采样点的第一条件是其距离s的邻域的数目小于k。
3d点云的点p的距离s的邻域可以定义为落入以p为中心、并且具有球体直径或立方体标度2*s的球体或立方体中的邻近点。这里,点p(xp,yp,zp)的距离s的邻域neigh(xneigh,yneigh,zneigh)由下式定义:
{neigh(xneigh,yneigh,zneigh)||xneigh-xp|≤s&&|yneigh-yp|≤s&&|zneigh-zp|≤s}
用于检测欠采样点的第二条件是其距离s’的邻域的数目至少等于阈值k’,其中s’大于s。此第二条件允许避免在点云中插入隔离点周围的新点,它们是不想要的嘈杂点,并且可能是由编码伪像引起的。
根据实施例,阈值k’等于所需的采样率k。
以上参数的可能值为:
·s=1,
·k=9,
·s’=4,
·k’=9。
根据另一实施例,k’不同于k,例如k=8并且k’=9。
这意味着,如果点p的距离为1的邻域的数目小于k并且其距离为4的邻域的数目至少为k’,则p周围的区域将被视为欠采样。然后,根据本公开,应在p周围插入新点。
在检测到所有欠采样点之后,在步骤4将它们排序(sorted)到队列中,使得它们的距离s的邻域的数目减少。
在步骤6,检查欠采样点的队列是否为空。如果是这种情况,则处理结束。
如果队列不为空,则在步骤8从队列的开头提取第一欠采样点。
然后,在步骤10测试该欠采样点的当前s邻域的数目kcur是否仍小于所需的采样率k。
如果不是,则处理返回到步骤6。
否则,在步骤12,针对欠采样点的每个未占用的距离s的邻域,确定它是否可以被占用,即,它是否能成为点云中插入的新点。
根据第一实施例,s=1,即仅考虑欠采样点的距离为1的邻域,以确定它们是否可以被占用。该第一实施例的优点在于,由于可能重新计算新点的切面,因此更有保证填充点云的细节部分,例如拐角和折痕(creases)。
根据第二实施例,将其中将在每个欠采样点周围添加新点的邻域的范围确定为:
其中
该第二实施例需要较少的计算复杂度,因为它不需要递归处理在该处理期间刚生成的新点。
在该步骤12期间,计算欠采样点的局部切面。
所考虑的欠采样点是属于欠采样区域的点,并标注为pundersampled。
使用pundersampled的距离为snormal的邻域,来确定pundersampled的局部切面。由于pundersampled周围存在较少的点,因此应收集相对较大的邻域。我们设snormal>s。例如,当s=1时,可能值为snormal=2。
根据优选实施例,为了避免由嘈杂点引起的干扰,在计算pundersampled的局部切面之前,首先通过下式将其距离为snormal的每一邻域平滑化
其中neighnormal是pundersampled的距离为snormal的邻域之一,
例如,当s=1时,ssmooth的可能值为2。
然后,通过pundersampled的平滑化的距离为snormal的邻域的主成分分析(pca),来确定pundersampled的切面。
根据pca技术,根据以下公式,使用p的距离s的邻域,来计算平均点m和协方差矩阵c:
其中n是p的距离s的邻域的数目。
然后,计算c的特征向量和对应的特征值。特征向量按特征值的降序排序。对应于c的最小特征值的归一化特征向量被视为p的法线。
然后,使用确定的平均点m和p的法线,来确定切面。
在此,仅将具有整数空间位置的点视为要在点云中插入的新点候选。
根据第一实施例,对于pundersampled的每个未占用的距离s的邻域
1.第1因素
第一因素是
这个因素不利于需要在其周围插入更多点的那些潜在新点。
2.第2因素
根据第一变型,第二因素如果插入
pundersampled的另一邻域和局部邻域之间的距离由下式定义
其中
注意
其中disneighborhood和dis′neighborhood是在添加
注意
根据第二变型,第二因素被定义为如果插入
pundersampled的距离为slarge的邻域和
其中
其中disneighborhood和dis′neighborhood是在向点云添加
注意
3.第3因素
第三因素是
其中
根据实施例,
然后,
因此,具有较高可能性值的
假设pundersampled的当前距离s的邻域的数目为kcur。在优选实施例中,如果具有较高可能性的pundersampled的(ktarginsert-kcur)个未占用的距离为s的邻域被占用的可能性不为零,则在步骤14将这些邻域插入点云。排除具有被占用的零可能性的那些未占用邻域,将保留由pundersampled周围的邻域表示的原始局部表面。优选地,ktarginsert>k。例如,当k=9时,ktarginsert=12。
判断是否向重构的点云添加未占用位置
对于上述实施例,将其中将在每个欠采样点周围添加新点的邻域的范围确定为sfill。对于范围sfill内的每个未占用的邻域,根据上述实施方式确定是否将其添加到点云。
根据该实施例,以pundersampled为中心并且大小为2sfill*2sfill*2sfill的边界框内的每个未占用位置被视为要向重构的点云添加的候选新点。
根据变型,使用
然后,在步骤16,对于在步骤14在点云中插入的每个新点pnew,通过对点云的其附近现有点的颜色属性进行插值,来确定其颜色。
可以在(r,g,b)或(y,u,v)空间中执行颜色插值。
例如,插值有利地使用在(y,u,v)空间中表达的以下公式:
其中pnearest是除了pundersampled之外的pnew的最近邻域。
通过用(r,g,b)替代(y,u,v),可以在(r,g,b)空间中写入相同的公式。
在步骤18,将其距离s的邻域的数目小于k的最新添加的点检测为新的欠采样点。
根据优选实施例,在步骤20,根据新的欠采样点的距离s的邻域的数目,将新的欠采样点插入到欠采样点的排序队列中,因为排序队列中的点的距离s的邻域的数目始终保持减少。
根据计算新的欠采样点的法线的实施例,为了降低处理的复杂度,将pundersampled周围插入的新点的法线设置为pundersampled的法线,用于确定它们的局部切面。
根据另一实施例,不插入新的欠采样点,以便降低处理的复杂度。
图2是实现本公开的3d点云的编码方法的编码器30的示例性实施例的框图。
有利地,编码器30包括一个或多个处理器和存储器32。
编码器30包括编码模块34,其被配置为将输入的3d点云编码为比特流。
根据本公开,编码器30还包括上采样装置36,该上采样装置36包括:
-检测模块38,被配置为基于至少一个期望的采样率,来检测属于点云的至少一个欠采样区域的点;
-切面模块40,被配置为针对每个检测到的点获得关联的切面;和
-插入模块42,被配置为如果邻近点和与检测到的点关联的切面之间的距离小于第一阈值,则在点云中插入每个检测到的点的至少一个邻近点。
根据所表示的实施例,总线44提供编码器30的各个元件之间的通信路径。其他点对点互连选项(例如,非总线架构)也是可行的。
图3是实现本公开的解码器方法的解码器50的示例性实施例的框图。
有利地,解码器50包括一个或多个处理器和存储器52。
解码器50包括解码模块54,被配置为将输入比特流解码为3d点云。
根据本公开,解码器50还包括上述的上采样装置36。
根据所表示的实施例,总线56提供解码器50的各个元件之间的通信路径。其他点对点互连选项(例如,非总线架构)也是可行的。
尽管已经图示和描述了目前被认为是本发明的优选实施例的内容,但是本领域技术人员将理解,在不脱离本发明的真实范围的情况下,可以做出各种其他修改,并且可以替换等效物。另外,在不脱离本文描述的中心发明构思的情况下,可以做出许多修改以使特定情况适应本发明的教义。此外,本发明的实施例可以不包括上述所有特征。因此,意图是本发明不限于所公开的特定实施例,而是本发明包括落入所附权利要求的范围内的所有实施例。
在解释说明书及其关联权利要求时,将以非排他性的方式解释诸如“包括”、“包含”、“合并”、“含有”、“是”和“具有”的表达,即解释为允许还存在未明确定义的其他项目或组件。对单数的引用也应被解释为对复数的引用,并且反之亦然。
本领域技术人员将容易理解,可以修改说明书中公开的各种参数,并且可以组合公开和/或要求保护的各种实施例,而不脱离本发明的范围。