本发明涉及图像处理技术领域,尤其涉及一种基于邻近像素点和自编码器的敦煌壁画修复方法。
背景技术:
图像修复是图像复原研究中的一个重要内容,也是当前图像处理和计算机视觉领域中的一个研究热点。
图像修复是对图像上信息缺损区域进行信息填充的过程,其目的是恢复有信息缺损的图像,并使观察者无法察觉图像曾经缺损或已被修复。该项技术在文物保护、影视特技制作、老照片的修复、图像中文本的去除、障碍物的去除以及视频错误隐藏等方面,有着很高的应用价值。
敦煌艺术是多种文化融汇与撞击的交叉点,被列为世界文化遗产的敦煌壁画是敦煌艺术的主要组成部分。然而由于人为和自然双重因素的影响,敦煌壁画的残损情况相当多样,不断出现龟裂、褪色、脱落等问题,除了大面积的图像缺失形成的整块的空白区域以外,还有非常多细小的缺损。
技术实现要素:
本发明提供了一种基于邻近像素点和自编码器的敦煌壁画修复方法,用于解决敦煌壁画修复效果不佳的技术问题。
本发明提供了一种基于邻近像素点和自编码器的敦煌壁画修复方法,包括:
获取预设敦煌壁画的原始图像;
分解所述原始图像,得到结构层图像和纹理层图像;
确定所述纹理层图像的待修复区域和第一已知区域;
获取所述第一已知区域的已知像素点;
采用所述已知像素点修复所述待修复区域,得到纹理层重建图像;
采用所述结构层图像和所述纹理层重建图像,生成修复图像。
可选地,所述分解所述原始图像,得到结构层图像和纹理层图像的步骤,包括:
采用预设图像分解模型分解所述原始图像,得到结构层图像和纹理层图像。
可选地,所述采用所述已知像素点修复所述待修复区域,得到纹理层重建图像的步骤,包括:
在所述待修复区域中确定当前待修复点;
在所述第一已知区域中确定所述当前待修复点的邻域;
采用所述邻域中的已知像素点计算所述当前待修复点的像素值;
采用所述像素值填充所述当前待修复点,得到已修复点,并将所述已修复点并入所述第一已知区域,得到第二已知区域;
判断所述待修复区域是否存在未修复点;
若否,将所述第二已知区域作为第一已知区域,并返回所述在所述待修复区域中确定当前待修复点的步骤;
若是,将所述第二已知区域对应的图像确定为纹理层重建图像。
可选地,所述在所述待修复区域中确定当前待修复点的步骤,包括:
确定所述待修复区域的边界点;
在所述边界点中确定当前待修复点。
可选地,所述在所述边界点中确定当前待修复点的步骤,包括:
计算每个边界点的优先度;
将优先度最大的边界点确定为当前待修复点。
可选地,所述在所述第一已知区域中确定所述当前待修复点的邻域的步骤,包括:
以所述当前待修复点为圆心,将预设半径内的第一已知区域确定为所述当前待修复点的邻域。
可选地,所述采用所述邻域中的已知像素点计算所述当前待修复点的像素值的步骤,包括:
求取所述邻域中的各已知像素点的像素值的加权值;
采用所述加权值计算所述当前待修复点的像素值。
可选地,所述采用所述结构层图像和所述纹理层重建图像,生成修复图像的步骤,包括:
采用所述结构层图像和所述纹理层重建图像,生成重建图像;
去除所述重建图像的噪声信息,生成修复图像。
可选地,所述去除所述重建图像的噪声信息,得到修复图像的步骤,包括:
采用预设自编码器去除所述重建图像的噪声信息,生成修复图像。
可选地,所述自编码器包括卷积层和反卷积层。
从以上技术方案可以看出,本发明具有以下优点:本发明通过获取预设敦煌壁画的原始图像;分解所述原始图像,得到结构层图像和纹理层图像;确定所述纹理层图像的待修复区域和第一已知区域;获取所述第一已知区域的已知像素点;采用所述已知像素点修复所述待修复区域,得到纹理层重建图像;采用所述结构层图像和所述纹理层重建图像,生成修复图像。增强了图像的修复效果,提高了图像的还原度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种基于邻近像素点和自编码器的敦煌壁画修复方法的步骤流程图;
图2为本发明另一实施例提供的一种基于邻近像素点和自编码器的敦煌壁画修复方法的步骤流程图;
图3为本发明实施例提供的vo图像分解模型的分解示意图;
图4为本发明实施例提供的基于邻近像素点修复的原理示意图;
图5为本发明实施例提供的自编码器的网络总体架构示意图;
图6为本发明实施例提供的构建块示意图;
图7为本发明实施例提供的一种基于邻近像素点和自编码器的敦煌壁画修复装置的结构框图。
具体实施方式
本发明实施例提供了一种基于邻近像素点和自编码器的敦煌壁画修复方法,用于解决敦煌壁画修复效果不佳的技术问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例提供的一种基于邻近像素点和自编码器的敦煌壁画修复方法的步骤流程图。
本发明提供的一种基于邻近像素点和自编码器的敦煌壁画修复方法,具体可以包括以下步骤:
步骤101,获取预设敦煌壁画的原始图像;
在本发明实施例中,要对敦煌壁画进行修复,首先需要对壁画进行图像采集,得到可进行数据分析的原始图像。
步骤102,分解原始图像,得到结构层图像和纹理层图像;
在本发明实施例中,可以将原始图像看做由不同性质的各层图像叠加而成,具体可以分为结构层图像和纹理层图像。
纹理是由于物体表面的物理属性的多样性而造成的,物理属性不同表示某个特定表面特征的灰度或者颜色信息不同,不同的物理表面会产生不同的纹理图像,因而纹理作为图像的一个极为重要的属性,在计算机视觉和图像处理中占有举足轻重的地位。纹理是图像中特征值强度的某种局部重复模式的宏观表现。因此,根据纹理的灰度变化可以对缺损区域的灰度进行预测,从而对缺损区域进行修复。
步骤103,确定纹理层图像的待修复区域和第一已知区域;
具有缺损信息的图像,其纹理层图像可以由待修复区域和第一已知区域构成。在本发明实施例中,获取第一已知区域的目的在于,基于第一已知区域的纹理特征,对待修复区域进行修复。
步骤104,获取第一已知区域的已知像素点;
步骤105,采用已知像素点修复待修复区域,得到纹理层重建图像;
在本发明实施例中,可以根据第一已知区域的已知像素点对纹理层图像的待修复区域进行修复,得到纹理层重建图像。该纹理层重建图像不含缺损信息。
步骤106,采用结构层图像和纹理层重建图像,生成修复图像。
在获取到纹理层重建图像后,可以将其与结构层图像进行整合,得到不含缺损区域的修复图像。
本发明通过获取预设敦煌壁画的原始图像;分解原始图像,得到结构层图像和纹理层图像;确定纹理层图像的待修复区域和第一已知区域;获取第一已知区域的已知像素点;采用已知像素点修复待修复区域,得到纹理层重建图像;采用结构层图像和纹理层重建图像,生成修复图像。可以较好地解决因年久失修而造成的大量小范围壁画破损和污染问题,增强了图像的修复效果,提高了图像的还原度。
请参阅图2,图2为本发明另一实施例提供的一种基于邻近像素点和自编码器的敦煌壁画修复方法的步骤流程图。具体可以包括以下步骤:
步骤201,获取预设敦煌壁画的原始图像;
步骤202,采用预设图像分解模型分解原始图像,得到结构层图像和纹理层图像;
在本发明实施例中,可以采用vo(vese-osher)图像分解模型来分解原始图像,得到结构层图像和纹理层图像,即:
f=u+v
其中,f表示原始图像,u表示结构层图像,v表示纹理层图像。
vo图像分解模型的能量泛函表示为:
其中,f表示原始图像,u表示结构层图像,
参数p的取值在[1,10]时原始图像分解效果差别不大,且p=1时模型运算速度最快,因此参数p取值为1,使用变分方法得到相应的euler-lagrange(欧拉-拉格朗日)方程:
由于图像区域ω是有界的,故泛函边界约束条件为:
其中n为边界的外法线向量,n=(nx,ny)。
采用差分运算近似求偏导方法,可以得到纹理层图像
在一个示例中,采用vo图像分解模型对原始图像进行分解的分解结果如图3所示。
步骤203,确定纹理层图像的待修复区域和第一已知区域;
步骤204,获取第一已知区域的已知像素点;
步骤205,采用已知像素点修复待修复区域,得到纹理层重建图像;
在本发明实施例中,可以根据第一已知区域的已知像素点对纹理层图像的待修复区域进行修复,得到纹理层重建图像。
在一个示例中,步骤205可以包括以下子步骤:
s51,在待修复区域中确定当前待修复点;
在本发明实施例中,可以采用邻近像素点来填充待修复区域。首先在待修复区域中确定当前待修复点,具体可以通过计算边界优先度的方法来确定当前待修复点。具体步骤如下:
s511,确定待修复区域的边界点;
s512,计算每个边界点的优先度;
s513,将优先度最大的边界点确定为当前待修复点。
s52,在第一已知区域中确定当前待修复点的邻域;
s53,采用邻域中的已知像素点计算当前待修复点的像素值;
s54,采用像素值填充当前待修复点,得到已修复点,并将已修复点并入第一已知区域,得到第二已知区域;
s55,判断待修复区域是否存在未修复点;
s56,若否,将第二已知区域作为第一已知区域,并返回在待修复区域中确定当前待修复点的步骤;
s57,若是,将第二已知区域对应的图像确定为纹理层重建图像。
在确定了当前待修复点后,可以通过获取该点的邻近像素点来计算该点的像素值。具体地,可以在第一已知区域中确定当前待修复点的邻域,其中,可以以当前待修复点为圆心,将预设半径内的第一已知区域确定为当前待修复点的邻域。该邻域中的已知像素点即为当前待修复点的邻近像素点。通过邻近像素点便可以计算当前待修复点的像素值。在具体实现中,可以通过以下方式计算当前待修复点的像素值:
求取邻域中的各已知像素点的像素值的加权值;采用加权值计算当前待修复点的像素值。
进一步地,在修复了当前待修复点后,可以将其作为已知像素点,来辅助求取待修复区域中其他待修复点的像素值。具体地,可以将已修复点并入第一已知区域中,得到第二已知区域,在待修复区域不为空时,将第二已知区域作为第一已知区域,跳转执行在待修复区域中确定当前修复点的步骤,直至待修复区域为空,此时整个纹理层图像均为第二已知区域,可以将第二已知区域作为纹理层重建图像。作为重建图像的纹理层基础。
为便于理解,如图4所示,在本发明实施例中,i为第一已知区域,待修复区域ω的邻近像素点表示为
其中,i(p)为p点的像素值,ω(p,q)为权函数,q为p点的邻近像素点。
权函数ω(p,q)=dirc(p,q)dist(p,q),其中,
从待修复区域的外边界
p(p)=c(p)d(p)
其中,c(p)为信任因子,d(p)为数据因子,分别定义为:
|ψp|
其中,方窗ψp大小为(2ε+1)(2ε+1),|ψp|为ψp的面积;α为归一化因子(对灰度图像α=255);np是边界
在本发明实施例中,每次只修复一个点,然后更新此修复点附近边界点的优先度,而不必重新计算全部边界点的优先度,这样可节省修复时间,提高了效率。
步骤206,采用结构层图像和纹理层重建图像,生成重建图像;
步骤207,去除重建图像的噪声信息,生成修复图像。
在本发明实施例中,在获取到纹理层重建图像后,将其与结构层进行结合,可以得到重建图像,去除重建图像中的噪声信息后,可以生成修复图像。在一个示例中,可以采用预设的自编码器去除重建图像的噪声信息,生成修复图像。
自编码器(auto-encoder)是神经网络中的一种,其两个核心部分是编码器和解码器,它将输入数据压缩到一个潜在表示空间里面,然后再根据这个表示空间将数据进行重构后得到最后的输出数据。基于此,本发明实施例提出了一个具有深度全卷积编码-解码框架的自编码器,用于解决图像去噪问题,同时避免由于池化操作而丢失有用的图像细节信息。具体结构如图5所示。
如图5所示,本发明实施例的自编码器的网络结构由多层对称的卷积层(编码器)和反卷积层(解码器)组成,学习一个从受损图像到原始图像的端到端的映射,需要估计卷积核与反卷积核表示的权值θ,这可以通过最小化网络输出的干净图像之间的欧式损失(euclideanloss)来实现,具体来说,给定n个训练样本对xi、yi,其中xi为噪声图像,yi为干净图像,最小化以下均方误差(meansquarederror):
其中,n表示从1到n的整数。
卷积层作为特征提取器,在去噪的同时编码图像内容的主要成分;反卷积层解码图像抽象内容以恢复图像内容的细节。
如图5和图6所示,在卷积层的特征图和与之相应成镜像关系的反卷积层特征图进行跳层连接(skip-layerconnections),每个几层连接一次。其优点在于,第一,卷积层的响应直接传递到相应的镜像反卷积层,跳层连接传递的特征映射(featuremap)包含很多图像细节,有助于解码器拥有更多图像细节信息,从而恢复出更好的干净图像;第二,跳层连接可以将梯度反向传播到底层,使得训练更深层次的网络更加容易。
进一步地,卷积和反卷积的核大小可以都设置为3×3,进而显示出良好的图像识别性能。另外,由于该网络结构本质上是一个像素级的预测,因此网络的输入和输出是大小相同的图像w×h×c,其中,w、h和c分别为宽度、高度和通道数,⊕表示特征映射的元素和。更进一步地,本发明实施例可以选择不直接学习从输入图像x到输出图像y的映射,而是学习一个残差f(x)=y-x,使训练更加有效。
在完成对自编码器的训练后,将重建图像输入训练好的自编码器中,可以去除重建图像中的噪声信息,得到修复图像。
本发明通过获取预设敦煌壁画的原始图像;分解原始图像,得到结构层图像和纹理层图像;确定纹理层图像的待修复区域和第一已知区域;获取第一已知区域的已知像素点;采用已知像素点修复待修复区域,得到纹理层重建图像;采用结构层图像和纹理层重建图像,生成修复图像。可以较好地解决因年久失修而造成的大量小范围壁画破损和污染问题,增强了图像的修复效果,提高了图像的还原度。
请参阅图7,图7为本发明实施例提供的一种基于邻近像素点和自编码器的敦煌壁画修复装置的结构框图。
本发明实施例提供了一种基于邻近像素点和自编码器的敦煌壁画修复装置,包括:
原始图像获取模块701,用于获取预设敦煌壁画的原始图像;
原始图像分解模块702,用于分解原始图像,得到结构层图像和纹理层图像;
待修复区域和第一已知区域确定模块703,用于确定纹理层图像的待修复区域和第一已知区域;
已知像素点获取模块704,用于获取第一已知区域的已知像素点;
纹理层重建图像生成模块705,用于采用已知像素点修复待修复区域,得到纹理层重建图像;
修复图像生成模块706,用于采用结构层图像和纹理层重建图像,生成修复图像。
在本发明实施例中,原始图像分解模块702,包括:
原始图像分解子模块,用于采用预设图像分解模型分解原始图像,得到结构层图像和纹理层图像。
在本发明实施例中,纹理层重建图像生成模块705,包括:
当前待修复点确定子模块,用于在待修复区域中确定当前待修复点;
邻域确定子模块,用于在第一已知区域中确定当前待修复点的邻域;
像素值计算子模块,用于采用邻域中的已知像素点计算当前待修复点的像素值;
第二已知区域生成子模块,用于采用像素值填充当前待修复点,得到已修复点,并将已修复点并入第一已知区域,得到第二已知区域;
判断子模块,用于判断待修复区域是否存在未修复点;
返回子模块,用于若否,将第二已知区域作为第一已知区域,并返回在待修复区域中确定当前待修复点的步骤;
纹理层重建图像确定子模块,用于若是,将第二已知区域对应的图像确定为纹理层重建图像。
在本发明实施例中,当前待修复点确定子模块,包括:
边界点确定单元,用于确定待修复区域的边界点;
当前待修复点确定单元,用于在边界点中确定当前待修复点。
在本发明实施例中,当前待修复点确定单元,包括:
优先度计算子单元,用于计算每个边界点的优先度;
当前待修复点确定子单元,用于将优先度最大的边界点确定为当前待修复点。
在本发明实施例中,邻域确定子模块,包括:
邻域确定单元,用于以当前待修复点为圆心,将预设半径内的第一已知区域确定为当前待修复点的邻域。
在本发明实施例中,像素值计算子模块,包括:
加权值求取单元,用于求取邻域中的各已知像素点的像素值的加权值;
像素值计算单元,用于采用加权值计算当前待修复点的像素值。
在本发明实施例中,修复图像生成模块706,包括:
重建图像生成子模块,用于采用结构层图像和纹理层重建图像,生成重建图像;
修复图像生成子模块,用于去除重建图像的噪声信息,生成修复图像。
在本发明实施例中,修复图像生成子模块,包括:
修复图像生成单元,用于采用预设自编码器去除重建图像的噪声信息,生成修复图像。
在本发明实施例中,自编码器包括卷积层和反卷积层。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。