结构与纹理融合的三维文物孔洞修复方法

2022-04-28 04:18周明全耿国华姚文敏
光学精密工程 2022年8期
关键词:兵马俑孔洞纹理

周明全,褚 彤,耿国华,姚文敏,张 军,曹 欣*

(1.西北大学 信息科学与技术学院,陕西 西安 710127;2.西北大学 文化遗产数字化国家地方联合工程研究中心,陕西 西安 710127)

1 引 言

秦始皇兵马俑是中国古代秦朝政治、军事和文化的象征,是人类珍贵的文化遗产。由于时间和自然腐蚀等因素,很多兵马俑出土时呈破损状态,因此为重现文物形态,文物的拼接修复成为考古学家的主要任务之一。随着计算机视觉技术的发展,借助计算机辅助虚拟修复技术对文物进行三维数字化,实现文物的精准修复以及重现文物原始面貌进行三维虚拟展示具有重要意义。然而,由于许多碎片的断裂面被侵蚀,匹配的碎片不能被紧密粘接,导致组装好的文物上存在孔洞。

传统的研究方法主要分为块匹配方法和表面拟合重建方法。基于块匹配的方法适用于修复较大的孔洞,Fu等[1]基于几何方法利用非局部相似性原理选取自适应模板,通过计算与孔洞的相似度填充孔洞。但是对于全局特征不相同的物体该方法无法生成合理的结果。因此Fortes等[2]基于三维网格利用重构函数对缺失区域进行拟合重建。Gai等[3]利用二维投影检测孔边界,使用SFM和径向基函数填充缺失区域。Lin等[4]针对离散点云曲面提出基于张量投票的曲面拟合重建方法。随着GAN网络的提出和卷积神经网络的发展,很多基于GAN和CNN的修复方法被提出,Yang等[5]基于自编码器和GAN网络相结合,从单张深度图中重建高维精确的三维结构对物体进行修复。Wang等[6]基于自编码器和GAN对抗生成网络,学习生成潜在向量,对不完整模型的进行细粒度建模。与传统修复方法相比,深度学习的方法有更合理的填充结果,但是对数据量的要求和训练时间的开销都是其劣势所在。传统方法更加直观,但是在实际应用效果上的鲁棒性不够。

在虚拟展示中,三维文物的表面颜色和纹理信息也尤其重要。传统的图像修复方法分为基于偏微分方程的算法[7-10]和基于样本补丁的算法[11-15]。前者主要针对小范围的损坏,使用单个像素为基本单位,利用扩散原理来完成图像修复,但其鲁棒性较差且容易造成模糊,后者从已知区域中找到具有最大相似性的补丁并将其复制到缺失区域。最近基于深度学习的方法通常将图像编码为潜在特征,然后将特征解码回二维图像。Context Encoder[16]结合了编码器-解码器和GAN,通过上下文像素预测来修复大规模图像,并能够产生合理的结果。但是上述方法没有考虑图像的一致性。Iizuka等[17]在上下文编码器中添加了全局和局部上下文鉴别器,使其从全局和局部的角度判断修复结果。Yu等[18]引入从粗略到精细的网络结构,第一个网络用于初始的粗略预测,第二个网络将预测作为输入获得更高质量的修复结果。现有的深度学习方法能够在缺失的区域生成连贯的结构,但新生成的缺失区域会产生伪像,以及纹理边缘可能不连续等情况。因此对于土色的兵马俑模型,可根据其表面的纹理变化修复图像。

针对三维网格结构性修补后表面纹理缺失问题,本文融合三维结构修补和二维纹理修复,基于传统几何修补算法与深度神经网络,提出三维文物孔洞修复方法,该方法能够在补全孔洞三维信息的同时修复纹理信息,产生有纹理的高分辨率模型。此外针对二维图像修复,改进Edge Connect网络,添加精细化网络,能够输出更加细节的图像,使得修复后的文物表面颜色纹理信息过渡更加自然。文中以有孔洞的兵马俑为例,分为四个阶段对其进行修复。

2 方法描述

2.1 结构和纹理融合的三维文物孔洞修复方法

本文提出的三维文物孔洞修复方法流程图如图1所示。首先,应用孔洞检测算法检测三维兵马俑模型孔洞;接着使用geomagic获得二维纹理图像,在定位孔洞位置和获得二维图像后,获得包含孔洞的图像和网格块;其次,利用基于径向基函数的方法完成三维网格模型的结构性修复。但是新生成的三维网格结构缺少纹理信息,因此本文针对兵马俑土色3D模型,基于Edge-Connect[19]网络结构,增加精细化网络,利用改进后的基于边缘预测的网络对二维图像进行纹理修复,能够获得更加精细化的修复结果。为融合三维和二维修复结果,本文采用Mudbox软件,将修复后的二维纹理修复结果映射回三维表面。最后,将具有结构信息和表面纹理信息的三维模型补丁和原始模型合并,以获得完整的修复结果。

图1 三维文物孔洞修复方法流程图Fig.1 Flow chart of 3D cultural relic hole repair method

2.2 孔洞检测

一个破损的兵马俑三维模型可能会有多个孔洞存在于不同位置。由于拓扑信息的缺失,在修复模型之前准确检测孔洞具有一定的挑战性。

本文针对三维网格模型进行孔洞检测,网格模型由多个三角网格镶嵌构成。如图2所示,与三角网格顶点相连接的三角形称为邻接三角形,同一个三角形网格中一条边的两个顶点互为邻接点。根据三角形原理,完整的三维网格模型顶点的1-邻接三角形与1-领域点的数量相等。因此我们利用该性质获得孔洞的边界点集合B={Vi}(i表示第i个顶点),假设三角网格顶点V的邻接三角形集合为AT={T|V∈T},V的邻接点集合AP={P|∃T,V∈T,P∈T},其中P是三角网格中异于V的点,T表示一个三角网格(如图2)。通过计算顶点V的邻接三角形集合AT和邻接点集合AP识别孔洞,当AT≠AP时,将点V加入边界点集合B。由于孔边界是闭合多边形,因此沿着确定的顶点V追踪邻域三角形集合AT的顶点,当边界点集合中的顶点连接构成一个闭合的环时,这些顶点就构成一个孔洞。

图2 孔洞相关概念示意图Fig.2 Schematic diagram of related concepts of holes

2.3 基于径向基函数的三角网格修复方法

在进行孔洞检测之后,本文采用基于径向基函数的三角网格孔洞修复方法[20]。该方法在修复时考虑了孔洞周围的三角网格特征信息,因此生成的孔洞区域和周围邻域有很好的过渡。首先通过基于特征面的填充方法生成孔洞区域的三角面片。其次利用径向基函数建立新三角面片和孔洞邻域的曲面方程。最后根据曲面方程,将新生成的三角面片顶点调整至拟合的曲面上,使得生成的三角面片曲率符合其邻域的变化。具体流程图如图3所示。

图3 结构性修复方法的示意图Fig.3 Flow chart of the structural repair method

2.4 基于边缘预测的二维纹理修复方法

为补全三维孔洞拓扑结构的同时保留秦始皇兵马俑文物模型表面颜色和纹理信息,本文采用改进的图像修复深度神经网络。受EdgeConnect的启发,添加精细化网络,改进后的网络能够产生更加精细的兵马俑表面的细节信息。网络示意如图4所示,该网络基于对抗生成网络(Generative Adversarial Networkd,GAN),GAN由生成器和鉴别器组成,生成器用于预测结果,鉴别器负责判断结果是否真实。网络整体可分为两个部分:边缘预测网络(Edge Predict Network,EPN)和纹理修复网络(Texture Inpaint Network,TIN)。第一阶段用于预测缺失图像的边缘,首先保证边缘的完整性,第二阶段包含两个生成器和一个鉴别器,目的是输出更高分辨率的图像修复结果。

EPN输入缺失模型边缘图,生成孔洞区域的预测边缘,而TIN使用EPN预测的边缘图像指导缺失图像纹理的修复。TIN具体由粗略网络(TIN1)和细化网络(TIN2)两个子网络组成。需要说明的是,EPN网络和TIN阶段的两个子网络都是生成器的作用,目的是根据输入生成符合其潜在特征的输出。三个生成器网络如图5(a)所示,包含下卷积提取特征,扩张卷积和残差块获取更多的潜在特征信息,上卷积将潜在特征恢复至原始大小。

网络结构还包含两个鉴别器网络:边缘鉴别器网络(Edge Discriminator Network,EDN)和图像鉴别器网络(Image Discriminator Network,IDN),它们用于判断预测的边缘图像和修复图像是否真实。其中鉴别使用PatchGAN[21]。网络的示意图如图5(b)所示。

图5 网络结构Fig.5 Structures of networks

2.4.1 边缘预测网络(EPN)

Pgt和Egt是输入数据原始图像和边缘图像,Pgray为兵马俑的灰度图像。如图4所示EPN的输入包括三个部分:掩码图像、缺失的边缘图像和灰度图像。令和Ein=Egt⊙(1-M)分别用来获得缺失的灰度图像和边缘图像。掩码图像M作为修复区域的指导基础,其中1表示缺失区域,0表示背景区域。EPN网络的输出为所预测的边缘图像,可以表示为:

图4 基于边缘预测的二维纹理修复方法示意图Fig.4 Schematic diagram of 2D texture inpainting method based on edge prediction

EPN基于对抗损失和特征匹配损失联合函数进行训练:

其中α和β为正则化参数,GEPN和DEDN分别表示EPN阶段的生成器和鉴别器,ℓFM为特征匹配损失[22]。和是则表示为EPN的生成器和鉴别器的对抗损失(公式(3)和(4)),本文中定义为最小二乘损失:

2.4.2 纹理修复网络(TIN)

如图4的下半部分,纹理修复网络具有两个模块:粗略网络(TIN1)和精细网络(TIN2)。第一阶段TIN1的输入为EPN网络预测的边缘图像Eout和不完整的RGB图像,并输出初步修复后的RGB图像Pcoarse。由于随着网络深度的加深,边缘预测图对于修复的指导作用逐渐降低,因此为了获得更精准的结果,本文在第二阶段TIN2增加了精细化网络,弥补了由网络深度造成的部分特征丢失。该网络将TIN1输出的粗略修复图像Pcoarse和预测的边缘图像Eout作为TIN2阶段的输入,输出精细化的修复结果Prefine。需要说明的是,精细网络和粗略网络具有相同的网络结构。TIN的预测的输入可以表示为:

在本文中,经过实验测试,上述参数设置为α=1,β=10,a=b=1,c=100,d=1。

TIN网络是包含两个生成器子网络和一个鉴别器的端到端网络,该阶段损失函数如式(8)~式(10)所示。其中ℓ1损失如式(11),计算缺失的RGB图像和TIN网络预测的修复结果之间的差距。感知损失ℓperc用于判断原始图像和预测图像之间的差距(式(12)),而样式损失ℓsty则是为了确保除缺失区域外的有效区域在修复前和修复后的一致性(式(13))。

3 实验与分析

本文使用的实验数据通过Artect便携式扫描仪对秦始皇帝陵墓K 9901坑出土的兵马俑扫描获取。文中的三维结构性修复的通过Visual Studio 2019和OpenGL实现。纹理修复网络基于Pytorch实现,采用基于边缘预测的二维纹理修复网络,对网络进行训练和测试,学习速率为10-4,批次大小为8,训练轮数为1 000 000个epoch,使用Adam优化器。实验硬件具体为i7-7820 CPU/3.6 GHz,64GiB内存和RTX TIAN GPU。

3.1 结构性修复结果

图6是基于径向基函数的兵马俑三维网格孔洞修复结果,该算法可以为兵马俑模型的不同部分生成合理的补丁。为提高修复效率,本文选取兵马俑的部分区域进行实验。从图6中可看出,利用周围法向量信息调整后的三角网格补丁可以和孔洞周围区域均匀地融合到一起。不论是图6(a)~6(b)中的小孔洞还是图6(c)中的较大孔洞,都能产生较好的结果,说明本文所使用方法的修复孔洞的鲁棒性。除此之外,如图6(d)~6(e)中三维模型缺乏多个不同大小的孔洞,该算法也可根据已有特征重建三维表面网格信息。

图6 基于径向基函数的三维结构性修复结果Fig.6 3D structural repair results based on radial basis functions

3.2 纹理修复结果

3.2.1 兵马俑数据集介绍

由于深度学习方法对数据量和数据形式有一定的要求,针对扫描获得的三维兵马俑数字化模型,首先通过对土色的三维兵马俑模型执行坐标转换、旋转和归一化等操作。对每个兵马俑样本保持x轴和y轴不变,绕z轴每旋转10度获取一张兵马俑图像,旨在通过旋转变化进行数据增强,批量获得可用于训练的兵马俑图像数据集。

由于孔洞周围的像素对缺失区域的修复有较大的指导意义,而远离孔洞的区域对修复孔洞起到较小的作用。因此为提高训练效率,本文将完整的兵马俑图像进行裁剪生成512*512的图像块,共15 633个包含兵马俑各个部位的图像块(如图7(a)),其中12 000用于训练,2 633用于测试,1 000用于验证。本文训练过程所使用的掩码图像采用的是[25]中所创建的手绘掩码图像(如图7(b))。在训练时,结合完整的二维图像和掩码图像获得缺失的待修复图像(如图7(c)),通过使用canny边缘检测算法获得输入图像的缺失边缘图(如图7(d))。

图7 使用canny边缘检测算法示意图Fig.7 Example of using the canny edge detection algorithm

3.2.2 兵马俑二维图像修复结果

本文网络在训练时使用二维兵马俑图像数据集(如图8所示),根据EdgeConnect已训练好的参数对EPN阶段和TIN的第一阶段的粗略网络TIN1进行微调,然后使用TIN1网络获得的参数进行微调精细网络TIN2。在生成验证数据集时,为兵马俑的每个二维图像随机生成一个或多个孔洞。

图8 二维兵马俑图像数据集Fig.8 2D terracotta warriors and horses image dataset

为验证改进方法的有效性,首先针对单个孔洞进行修复,如图9所示。EPN可从未缺失区域的颜色纹理特征生成缺失部分的边缘线,明显的如图9第一列。图9第二列粗略修复结果从纹理是连贯的,但是颜色相较于周围偏黑,但在通过精细化修复之后表面更具连贯性,颜色过渡更加自然。此外图中显示粗略修复结果与原始图像的有效区域缺乏明显的连贯性,无法较好地融合,比如第三列铆钉处的纹理修复。

图9 单个孔洞的二维图像修复结果Fig.9 2D image restoration results of a single hole

3.2.3 定量比较结果

本文通过定量对比验证添加的精细化网络有助于生成更高质量的修复结果。在测试时,使用构建的兵马俑二维图像数据集,为兵马俑二维图像随机生成一个或多个缺失区域。为验证本文方法的有效性,将兵马俑数据集作为其他图像修复方法的输入,对比的方法包括EdgeConnect[19]、Global&Local[17]和文献[26],以及传 统的修复方法PatchMatch[11]。为对改进后的EdgeConnect网络进行定量分析,本文采用常见的图像评估指标:PSNR,SSIM和MAE量化模型的性能,数值的计算通过计算1 000个兵马俑图像修复结果的平均值所获得。

表1最后两行分别显示了EdgeConnect网络和改进后的修复结果,EdgeConnect网络良好的修复效果得益于基于边缘的指导。当添加精细化网络后,模型在三个评价指标上性能均有所提升,证明了改进后的网络的有效性(PSNR和SSIM越大越好,MAE越小越好),较于Edge-Connect在评价指标PSNR、SSIM和MAE性能分别提高0.54%、0.217%和6.52%(PSNR和SSIM越大越好,MAE越小越好)。此外从表中可以看出本文改进方法在所有三个指标上均优于现有方法。其中对比PatchMatch和Global&Local方法,前者方法要优于后者,原因在于兵马俑颜色和纹理变化较少,模型表面具有局部相似性,因此基于补丁匹配的方法可以匹配到高度相似的补丁块。

表1 不同修复方法在兵马俑数据集的定量对比Tab.1 Quantitative results of different methods on the Terracotta Warriors fragments

3.2.4 定性比较结果

图10是本文改进的基于边缘预测的二维纹理修复方法与其他四种方法的定性比较。从图中可以看出,文献[26]和PatchMatch能够生成平滑的纹理,但是对于就有明显特征变化的图像,修复结果的颜色缺乏一致性。Global&Local在修复结果的颜色上也具有较大的差异,无法与原始模型较好地集成。EdgeConnect基于边缘知道,可以生成平滑合理的图像,但是仍然存在细微的差异。添加精细化网络后,网络修复结果可以和孔洞上下文语义信息较好地融合,证明了本文所提方法的可行性。

图10 本文改进方法和其他方法的定性比较Fig.10 Qualitative comparison between the proposed method and other method

3.3 纹理映射

本文采用Mudbox将二维纹理图像映射回三维兵马俑结构修复后模型的表面。通过将颜色纹理与空间顶点进行对应,当颜色和纹理等信息投射到表面时,会根据模型的深度产生自动变形,使其更适应三维表面曲率变化覆盖在三维兵马俑表面。本文利用Mudbox中Projection master功能,导入纹理贴图,使用移动、旋转、调节笔刷半径等工具将二维信息赋给三维模型,导出修复后的UV线的JPG文件,并替换掉原始模型的UV文件,得到结构和纹理修复后的三维兵马俑模型(如图11所示)。

图11 修复前模型和修补后模型对比Fig.11 Comparison of the model before and after repair

3.4 实例兵马俑修复结果

在实际兵马俑修复过程中,真实的缺失掩码通过Grabcut图像分割算法实现图像孔洞识别。如图12所示,针对缺失图像进行二维孔洞检测,通过自定义前景和背景区域将孔洞区域分割获得掩码图像。

图12 使用GrabCut识别孔洞并生成掩码图像Fig.12 Use GrabCut to identify holes and generate mask images

在真实修复时,通过输入缺失的兵马俑图像和对应的掩码图像获得修复结果。如图13所示,图中为本文所提方法在三维兵马俑中的实际应用。图13(a)为修复前的三维兵马俑模型,需要说明的是,在修复由于腐蚀导致的表面凹陷问题时,首先将原有凹陷区域删除来制造孔洞,然后重新生成新的三角网格。图13(e)的结构性修复生成的三角网格与孔洞周围网格的密度保持一致,不会产生自交重叠现象。图13(f)的纹理修复可基于有效的纹理像素特征信息,生成符合图像分布的新的内容。最终为保留原始模型信息,提取修复结果中孔洞补丁和原始模型合并,整体修复结果如图13(b)所示,图中可以看出肩膀的凹陷处在修复后变为平滑的表面。对于网格数量较大的兵马俑来说,将其进行碎块化修复并合并在一起能够有效的提高三维兵马俑修补效率,并生成合理的修补结果。实验证明本文所提方法可有效的补全兵马俑模型的三维结构,并且保留表面的颜色纹理信息。

上述实例展示了由于自然腐蚀所造成的表面凹陷的单个孔洞修复结果。在实际修复过程中,兵马俑模型可能在不同位置存在多个孔洞,例如由于侵蚀、拼接等造成的表面凹陷和不连贯。因此本文进行了另外两组不同的实验以验证所提出的框架。

图14中实例为兵马俑模型中由于早期的人为标记造成的文物三维表面不完整(如图14(a))。最终修复结果如图14(b)所示,类似于腐蚀造成的孔洞,需要删除原始的区域制造孔洞。更多的细节可以在图14(c-f)找到,由于人工标记较小,因此从图14(b)中的修复结果看出,修复后的表面颜色信息能够平滑地过渡到未缺失区域。

图14 人为因素造成的表面不完整Fig.14 Surface incompleteness caused by human factors

图15中显示了由于扫描原因造成的自然孔洞实例修补结果。该兵马俑表面上包含许多不规则的孔洞(如图15(a))。图15中的结果显示,本文所提框架能够基于未缺失部分的有效信息提取潜在特征,并使用所提网络预测缺失区域的特征信息,能够高效率地生成修复结果。

图15 人为因素造成的表面不完整Fig.15 Surface incompleteness caused by human factors

3.5 其他实验

为证明损失函数的必要性,本文针对TIN阶段的损失函数展开研究。(1)第二阶段只有最小二乘对抗生成网络损失函数ℓGAN;(2)损失函数包括ℓGAN和ℓ1损失函数;(3)在b损失函数的基础上添加感知损失函数ℓperc;(4)添加风格损失ℓsty之后的联合损失函数,包含EPN、TIN1和TIN2。如表2结果所示,随着损失函数的增加,该网络模型修复效果逐渐提高。原因在于四个损失函数具有不同的作用,对抗生成损失函数为了使网络生成更加真实的修复结果,ℓ1损失函数判断修复结果和缺失图像之间的差距,感知损失函数ℓperc则保证真实图像和修复图像之间更加的接近,风格损失函数ℓsty则为了确保修复结果中的未缺失区域没有特征信息的损失。

表2 TIN阶段使用不同损失函数的定量对比Tab.2 Quantitative comparison of different loss functions used in the TIN stage.

4 结 论

三维文物修复问题是当前文物保护的重要科研方向,针对三维文物虚拟修复问题,本文提出一种结合三维结构性修复和二维图像修复的秦始皇兵马俑孔洞修复方法,并希望对其他文物的虚拟修复工作有一定的启发作用。该方法能够修复三维物理结构的同时保留表面纹理信息。首先通过对三维文物进行孔洞识别,采用基于径向基函数的方法修复孔洞,能够得到平滑的曲面。在纹理修复中,通过改进EdgeConnect网络,为提高修复效果,在第二阶段添加精细化网络,基于边缘预测对兵马俑二维纹理图像进行修复,引入精细化网络生成更连贯的纹理信息。结合三维修补和二维修复,最终能够生成更具有表面真实性、纹理连贯性和结构完整性的文物。实验结果表明,本文方法在处理具有多个不规则形状缺失区域的三维文物领域中,能够产生良好的结果。

猜你喜欢
兵马俑孔洞纹理
一种面向孔洞修复的三角网格复杂孔洞分割方法
兵马俑修复:为你,千千万万遍
基于BM3D的复杂纹理区域图像去噪
孔洞加工工艺的概述及鉴定要点简析
兵马俑底座学问大(第六站)
使用纹理叠加添加艺术画特效
兵马俑
TEXTURE ON TEXTURE质地上的纹理
强动载作用下孔洞汇合对延性金属层裂损伤演化过程的影响*
消除凹凸纹理有妙招!