技术领域
[0001] 本发明属于三维重建领域,涉及一种基于聚类和邻域扩展的深度图修正技术,具体涉及联合单目深度图和传统密集匹配获取的绝对深度图,实现完整的深度图生成,其中基于聚类和邻域扩展的深度修正是此方案的关键技术。
相关背景技术
[0002] 将图像精确地重建为三维场景通常涉及到深度图恢复,即从二维图像中推断出三维场景的深度信息,在虚拟现实、增强现实、机器人导航、无人驾驶等领域具有重要应用价值。
[0003] 传统获取深度图的方式主要有双目立体匹配和多视密集匹配。这些方法依赖于从多个视角的图像中提取密集特征点并进行匹配,以计算出场景的深度信息。然而,在影像的弱纹理或纹理复杂区域,匹配过程可能会失败,导致这些区域的深度无法恢复,深度图出现空洞。此外,当影像之间重叠度较低时,在无重叠的区域也会存在深度缺失的问题,最终影响三维重建的完整性和准确性。近年来,单目深度估计在计算机视觉领域迅速发展,并引起了广泛关注。相比于传统的基于立体视觉的方法,单目深度估计技术通过利用大量数据集来学习图像中的像素间深度关系,能够直接从单张影像中预测每个像素的深度,具有广泛的应用前景。然而,目前大多数单目深度估计方法只能恢复影像的相对深度关系,存在全局尺度模糊和深度不准确的问题。部分可以直接预测绝对深度的单目深度估计方法的泛化性较差,难以适应不同场景的变化,精度较差,难以直接应用于三维重建工作中。由于传统密集匹配和单目深度估计都不能获取完整且正确的影像深度图,考虑联合使用这两个技术可以有效弥补各自的不足,但如何利用绝对深度图来恢复单目深度图的尺度以及如何融合两类深度图仍存在一定挑战。
具体实施方式
[0024] 下面结合附图和实施例对本发明的技术方案进一步说明。
[0025] 本发明实施例提供一种基于聚类和邻域扩展的深度图修正方法,包括三个过程:首先利用绝对深度图,通过直方图匹配将单目深度图的尺度恢复至真实尺度;然后基于聚类和邻域扩展对单目深度进行进一步改正;最后利用双边滤波融合绝对深度图和改正后的单目深度图,实现完整深度图的生成。
[0026] 如图1所示,本发明实施例所提供的基于聚类和邻域扩展的深度图修正方法,实现流程包括三个过程,具体可分为以下步骤:1)首先利用绝对深度图,通过直方图匹配将单目深度图的尺度恢复至真实尺度。
[0027] 更进一步地,过程1)包括步骤1和步骤2。
[0028] 步骤1,利用双目密集匹配或多视密集匹配技术获取影像的绝对深度图 ,利用基于深度学习的单目深度估计方法获取影像的单目深度图 ;将单目深度图 重采样至与绝对深度图 相同尺寸,确保两者像素对齐。
[0029] 其中,深度图重采样的方式优选为最近邻采样。双目密集匹配或多视密集匹配技术具体实现可采用现有技术,本发明不予赘述。
[0030] 具体实施时,基于深度学习的单目深度估计方法优选建议利用Depth Anything 网络,这是现有技术中一种高度实用的单目深度估计解决方案,同时利用有真实深度标签的影像和海量无真实深度标签的影像进行训练来获取更好的单目深度估计结果。具体实现时,可首先使用有标签影像Dl训练出一个教师模型T,该模型能够从影像中准确预测深度信息。接着利用训练好的教师模型T对无标签影像Du进行预测,以生成伪深度标签,这一步骤的目的是扩大可用于训练的数据集。最终将有标签数据集与生成的伪深度标签数据集结合起来训练学生模型S,进而获得一个即使在无标签数据上也能表现出色的深度估计模型。
[0031] 步骤2,如图2所示,将单目深度图 与绝对深度图 进行直方图匹配,得到新的单目深度图 。
[0032] 实施例进一步优选采用的实现方式包括如下子步骤:步骤2.1,获取绝对深度图 有效深度值(即深度值 0)区域,并生成掩膜;
步骤2.2,分别统计绝对深度图 与单目深度图 在掩膜区域的深度直方图;
步骤2.2,基于绝对深度图或单目深度图中每个深度值 在图像中出现的概率 ,利用累计分布函数CDF分别得到相应深度直方图的累计直方图;
[0033] 其中,表示绝对深度图或单目深度图中每个像素的深度值,=0,1,…, ,为相应累计分布函数值。
[0034] 步骤2.3,对于单目深度图 中的每一个深度值,根据其在累计直方图中的位置,在绝对深度图 的累计直方图中找到相应的深度值来替换原来的深度值,从而得到新的单目深度图 。本步骤通过替代建立了单目深度值和绝对深度值之间的映射关系,更精细地更新单目深度图,使之尽可能与真实深度接近。
[0035] 2)基于聚类和邻域扩展对单目深度进行进一步改正。
[0036] 更进一步地,过程2)包括步骤3‑6。
[0037] 步骤3,如图3中的(a)部分所示,对于单目深度图 中的某个单目深度值 ,记录绝对深度图 在相同的像素位置的绝对深度 ,将其归入集合 (图3中的(a)部分中 分别为两个不同的单目深度),例如绿色像素深度值均为 ,蓝色像素深度值均为 ,这些位置在绝对深度图D中对应的深度值分别为 , 。
[0038] 计算集合 中绝对深度值的平均值 以及标准差 。均值 和标准差 的计算公式分别为:
[0039] 式中,为集合 中的元素数量。
[0040] 步骤4,如图3中的(b)部分所示,根据标准差 来确定映射策略,若标准差 小于某一阈值 ,则将均值 作为 的映射结果,即 = ;若标准差大于等于 ,则对集合 中的元素进行K‑均值聚类,将 聚类到k个子集中,得到k个聚类中心 ,为子集标号。
[0041] 具体实施时,阈值 根据可采用实验得到的经验值。实施例中 取1m。
[0042] 为便于实施参考起见,以下提供对集合 中的元素进行K‑均值聚类的具体实现说明,包括以下子步骤:步骤4.1,在集合N中随机选择k个绝对深度值作为初始聚类中心;
步骤4.2,计算集合N中的每个绝对深度值到各个聚类中心的欧氏距离,并将其分配给距离最近的聚类中心所在的类;
步骤4.3,对于每个类,重新计算其内部所有绝对深度值的均值,并将该均值作为新的聚类中心;
步骤4.4,重复步骤4.2和4.3,直至连续两次迭代之间的聚类中心没有显著变化或达到最大迭代次数。
聚类时,最优聚类数量k可以由肘部法则或轮廓系数等方法来确定。
[0043] 步骤5,如图3中的(c)、(d)部分所示,对于第 个聚类子集中的元素,在单目深度图中找出其对应的位置,并向外进行邻域扩展,将扩展到的单目深度值更新为该类的聚类中心 。其中,邻域扩展具体为以某一单目深度为中心,向外不断邻域搜索与其深度相等的位置,具体实施时邻域可以使用四邻域或八邻域。步骤6,对于单目深度图中所有的单目深度值重复步骤3至步骤5,生成改正后的单目深度图 。
[0044] 3)利用双边滤波融合绝对深度图和改正后的单目深度图,实现完整深度图的生成。
[0045] 更进一步地,过程3)包括步骤7。
[0046] 步骤7,如图4所示,利用双边滤波对将绝对深度图 和改正后的单目深度图 进行融合,得到最终深度图。
[0047] 实施例进一步优选采用的实现方式包括如下子步骤:步骤7.1,保留绝对深度图 中具有有效深度(深度值 0)的区域,利用改正后的单目深度图 填补 中无效深度(深度值 0)区域。
[0048] 步骤7.2,在两个深度图拼接的交界处创建宽度为w的缓冲区,图4中w=4,具体实施时可由生产实际决定w取值;步骤7.3,对于在缓冲区内的一点 ,通过式4计算 点在双边滤波处理后的深度值:
[0049] 其中,是以 为中心的 窗口内所有深度的集合,具体实施时r可作为一个自适应的窗口尺寸,根据扩展边界是否出现断裂来决定取值;为集合 中的像素, 和 分别是 点和 点的深度值, 是归一化因子,确保权重总和为1,定义为, 表示取模长;
是基于深度值差异的权重函数,用于减小深度差异大的深度对目标深度的影响, 是基于空间距离的权重函数,用于减小距离目标像素远的像素对其影响,两者均采用高斯函数,表达式为:
[0050] 其中, 是控制深度值差异的权值; 是控制空间距离的权值,是数学常量, 和分别表示两个像素点, 和 是图像I位置 和 处的深度值, 表示取模长。
[0051] 具体实施时,以上流程可采用计算机软件技术实现自动运行,特别适用于低重叠影像快速三维重建等场景,例如相邻重叠度<30%的无人机影像。
[0052] 为了便于了解本发明的技术效果起见,作为对比,图5给出了某区域内的低空无人机影像使用本发明提出的深度图修正方法的效果。通过比较绝对深度图与经直方图匹配改正的单目深度图,可以明显看出它们之间重叠区域的深度值已经较为接近。深度改正后的单目深度图在绝对深度图中的无效深度的位置(即黑色区域),经过直方图匹配之后的单目深度图也能恢复这些区域的深度信息。
[0053] 基于表1的误差均值、误差中值以及均方根误差三个指标可以看出基于聚类与邻域扩展的方法在某区域影像中展现了较直方图匹配方法更低的误差水平。
[0054] 表1
[0055] 图6示例了一种电子装置的实体结构示意图,如图6所示,该电子装置可以包括:处理器(processor)、通信接口(Communications Interface)、存储器(memory)和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信。处理器可以调用存储器中的逻辑指令,以执行基于聚类和邻域扩展的深度图修正方法。
[0056] 此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0057] 另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的基于聚类和邻域扩展的深度图修正方法。
[0058] 又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于聚类和邻域扩展的深度图修正方法。
[0059] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0060] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0061] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。