发明内容
为了解决以上问题,本发明提供了一种图像拼接方法及装置,针对大型古籍图像的拼接而设计,能够快速、高质量进行图像拼接操作,速度能够达到每天每人1000-1500页的速度,极大提供生产率和拼接的质量,为古籍图像的处理和文物保护提供的巨大的贡献。
根据本发明的第一方面,提供了一种图像拼接方法,具体包括:
图像预处理步骤,将待拼接的第一原始图像和第二原始图像按第一缩放比例缩放为第一微缩图像和第二微缩图像;
拼接点标定步骤,在所述第一微缩图像和第二微缩图像上标定拼接点;
预览拼接图生成步骤,根据拼接点利用图像拼接算法拼接所述第一微缩图像和第二微缩图像,形成预览拼接图;
质检预览拼接图步骤,确认所述预览拼接图的拼接质量;
原始图像拼接步骤,将微缩图像的像素点根据第一缩放比例映射到原始图像坐标空间,利用图像拼接算法对第一原始图像和第二原始图像进行拼接,得到第一原始图像和第二原始图像的拼接图像。
进一步的,图像拼接算法具体包括:
计算第一图像上的拼接点之间的第一连线与参考线之间的第一旋转角度;
计算第二图像上的拼接点之间的第二连线与参考线之间的第二旋转角度;
计算将第二连线缩放到第一连线相同长度的第二缩放比例;
将第一图像顺时针向参考线旋转第一旋转角度,旋转后所述第一图像上的拼接点形成第一基准线;
将第二图像缩放同时逆时针向参考线旋转第二旋转角度,旋转后所述第二图像上的拼接点形成第二基准线;
将所述第一基准线和第二基准线对准,得到拼接图像,
其中,所述第一图像为第一微缩图像或第一原始图像;
其中,所述第二图像为第二微缩图像或第二原始图像;
其中,所述参考线为水平直线或竖直直线。
进一步的,所述质检预览拼接图步骤具体包括:获取预览拼接图的文字相对于参考线的偏差角度,以及文字缺失或重叠程度,当预览拼接图的文字相对于参考线的偏差角度小于等于偏差角度阈值,且文字缺失或重叠程度小于等于文字缺失或重叠长度阈值时,判定拼接质量合格;当预览拼接图的文字相对于参考线的偏差角度大于偏差角度阈值和/或文字缺失或重叠程度大于文字缺失或重叠长度阈值时,判定拼接质量不合格。
进一步的,在所述图像预处理步骤中,微缩图像的笔画信息保持在2个像素以上。
进一步的,在所述图像预处理步骤中,待拼接的所有原始图像按相同缩放比例进行缩放。
进一步的,在所述拼接点标定步骤中,选取图像文字边缘或者线框处标定拼接点。
进一步的,将所述方法应用于古籍图像拼接。
根据本发明的第二方面,提供一种图像拼接装置,具体包括:
图像预处理部件,用于将待拼接的第一原始图像和第二原始图像按第一缩放比例缩放为第一微缩图像和第二微缩图像;
拼接点标定部件,用于在所述第一微缩图像和第二微缩图像上标定拼接点;
预览拼接图生成部件,用于根据拼接点利用图像拼接算法拼接所述第一微缩图像和第二微缩图像,形成预览拼接图;
质检预览拼接图部件,用于确认所述预览拼接图的拼接质量;
原始图像拼接部件,用于将微缩图像的像素点根据第一缩放比例映射到原始图像坐标空间,利用图像拼接算法对第一原始图像和第二原始图像进行拼接,得到第一原始图像和第二原始图像的拼接图像。
根据本发明的第三方面,提供一种图像拼接装置,包括:
处理器和用于存储可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令,以执行如权利要求1至6中任一项所述的图像拼接方法。
根据本发明的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一方面所述的图像拼接方法。
本发明技术方案的有益效果:
1、效率高:集中时间进行拼接要素的设定,使拼接效率提高了数倍。
2、拼合效果好:在高于屏幕分辨率数倍的比例下,设定拼接要素,确保了拼接的效果。
3、返工成本低:全程记录了拼接过程,简单修改参数即可完成返工。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
多个,包括两个或者两个以上。
和/或,应当理解,对于本公开中使用的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
参照图1和图2,根据本发明的古籍图像拼接方法包括:
步骤101:将待拼接的第一原始图像和第二原始图像按缩放比例缩放为第一微缩图像和第二微缩图像。古籍微缩图像的笔画信息保持在2-3个像素以上,且待拼接的所有古籍原始图像按相同缩放比例进行缩放。
步骤102:在所述第一微缩图像和第二微缩图像上标定拼接点。通常选取古籍文字边缘或者线框处标定拼接点,例如通过深度学习和/或图像识别技术来获取待图像的图像特征和/或深度信息,从而选取古籍文字边缘或者线框处。
步骤103:根据拼接点利用图像拼接算法拼接所述第一微缩图像和第二微缩图像,形成预览拼接图。
步骤104:确认所述预览拼接图的拼接质量,包括:对所述预览拼接图进行拼接质量检查,通过计算机程序或摄像头获取图像的图像特征来提取预览拼接图的文字相对于参考线的偏差角度,以及文字缺失或重叠程度,当预览拼接图的文字相对于参考线的偏差角度大于偏差角度阈值和/或文字缺失或重叠程度大于文字缺失或重叠程度阈值时,判定拼接质量不合格,则返回步骤102,重新调整拼接点;当预览拼接图的文字相对于参考线的偏差角度小于等于偏差角度阈值,且文字缺失或重叠程度小于等于文字缺失或重叠程度阈值时,判定拼接质量合格,则进入步骤105。以上操作可通过计算机程序或人为操作来实现。
步骤105:将微缩图像上的拼接点根据缩放比例映射到原始图像坐标空间,利用图像拼接算法对第一原始图像和第二原始图像进行拼接,得到第一原始图像和第二原始图像的拼接图像。
本发明还提供一种古籍图像拼接装置,如图3所示,具体包括:图像预处理部件301、拼接点标定部件302、预览拼接图生成部件303、质检预览拼接图部件304以及原始图像拼接部件305。
图像预处理部件301用于将待拼接的第一原始图像和第二原始图像按缩放比例缩放为第一微缩图像和第二微缩图像,图像预处理部件301将古籍微缩图像的笔画信息保持在2个像素以上,并将待拼接的所有古籍原始图像按相同缩放比例进行缩放。
拼接点标定部件302用于在所述第一微缩图像和第二微缩图像上标定拼接点。拼接点标定部件302选取古籍文字边缘或者线框处标定拼接点。例如通过深度学习和/或图像识别技术选取古籍文字边缘或者线框处标定拼接点。
预览拼接图生成部件303,根据拼接点利用图像拼接算法拼接所述第一微缩图像和第二微缩图像,形成预览拼接图。
质检预览拼接图部件304用于确认所述预览拼接图的拼接质量。
原始图像拼接部件305用于将微缩图像上的拼接点根据缩放比例映射到原始图像坐标空间,利用图像拼接算法对第一原始图像和第二原始图像进行拼接,得到第一原始图像和第二原始图像的拼接图像。
实施例
(一)图像预处理
在拼接点标注之前,对待拼接的古籍图像进行一个预处理,将图像缩放到小图,标定拼接点和预拼接将在缩小的图像上进行,一般建议缩小4倍,其他比例也可以,所有图像的缩放比例一致,图像的笔画信息要保持在2-3个像素以上,以保证拼接效果的精度。笔画信息意指笔画宽度,或者是笔画带有的宽度信息。图像要尽可能的小,以保证在拼接过程的拼接效率。记录图像缩放比例为scale。
(二)标定(调整)拼接点
微缩图像拼接的一个重要步骤就是标定(调整)拼接点的精确位置,拼接算法按照标定的拼接点进行图像拼接。
拼接点一般为中缝上的点,一般选取的有文字或者线框的地方,以保证很容易的设定拼接的位置。该步骤可通过计算机程序实现,也可以使用灵敏的鼠标或者使用键盘来微调。
当通过计算机程序实现拼接点选取时,例如可通过深度学习和/或图像识别技术来获取待图像的图像特征及深度信息,从而选取选取的有文字或者线框的位置。具体包括:通过摄像头获取图像的图像特征和/或深度信息。通过摄像头获取图像的图像特征的具体方式可参考相关技术。对于深度信息,可采用以下两种方式获取:
单目深度估计方法:基于一幅图像来估计它的深度信息。例如,单目深度估计方法可包括基于图像内容理解的深度估计方法和基于聚焦的深度估计方法等。
双目深度估计方法:通过两个摄像头成像,因为两个摄像头之间存在一定的距离,所以同一景物通过两个镜头所成的图像存在视差,通过视差估计出深度信息。
由此,即可通过计算机程序(例如深度学习和/或图像识别技术)实现拼接点选取。
由于图像远比屏幕的分辨率大,为了增加拼图算法的适应性,将屏幕至少设定4个区域来分别显示放大了或者至少按照实际像素大小显示的图像上的拼接点所在位置,如图4所示。
左面的两幅图像显示左图,上下分别显示右上角和右下角。因为图像直接显示了要拼接位置的图像,可以方便的通过计算机程序或鼠标/键盘来设定拼接的位置。右面的两幅图显示了右图,上下分别显示了左上角和左下角。如果拼接点不在显示范围,可以快速的通过移动图像来调整拼接的位置。记录左图标定的拼接位置P1,P2,记录右图的标定的拼接位置P3,P4。
(三)生成预览拼接图
根据P1,P2,P3,P4拼接微缩之后的图像,根据拼接算法进行预览图像的拼接,得到拼接之后的预览拼接图像。由于微缩后的图像非常小,所以预览拼接图像生成速度很快,基本在1秒以内完成。
图像拼接算法为:
1、根据缩放比例scale,求得原始图像上的拼接点P′1,P′2,P′3,P′4
2、求线段P′1P′2与竖直线之间的角度αl,
3、求线段P′3P′4与竖直线之间的角度αr;
4、求线段P′
3P′
4缩放到P′
1P′
2相同长度的缩放比例
5、根据旋转角度αl,顺时针旋转左图,得到左侧旋转图和拼接点P"1,P"2;
6、根据旋转角度αr和缩放比例sl,对图像进行逆时针旋转和缩放,得到右侧旋转图和拼接点P"3,P"4。为了加快速度,并且节省内存,从原始图像到目标图像的旋转和缩放操作将整合在一个公式中,这里采用后向算法,也就是从目标图像映射到原图像,然后取原图像中指定的像素值,后向算法公式如下:
简化之后如下:
展开得到的计算公式如下:
其中:
W′,H′是旋转和缩放之后的图像的高度和宽度,
W,H是旋转和缩放前的图像的高度和宽度。
X0、Y0是原图像上的点P0的坐标,X、Y是旋转和缩放操作后的目标图像上的点P的坐标,Sx为水平缩放系数、Sy为垂直缩放系数,以及θ为旋转角度。
由于P0(X0,Y0)是通过浮点计算到原图上的坐标,所以这个坐标点不一定在整数点坐标上,所以需要对像素点进行插值,图像处理中有三种常用的插值算法,分别为最邻近插值、双线性插值、双立方(三次卷积)插值,其中效果最好的是双立方(三次卷积)插值。为了能够尽量保证旋转后的图像的质量,本发明技术方案采用高精度的双立方(三次卷积)插值,考虑点P0(X0,Y0)周围的16个像素点。
双立方插值计算涉及到16个像素点,如图5所示,其中P00代表目标插值图中的某像素点P(X,Y)在原图中最接近的映射点,譬如映射到原图中的坐标为(1.1,1.1),那么P00就是(1,1),而最终插值后的图像中的P(X,Y)处的值即为以上16个像素点的权重卷积之和。
以下给出双立方(三次卷积)插值的计算过程:
参照图6进行分析,譬如计算插值图中(distI,distJ)处像素的值,首先计算它映射到原图中的坐标(i+v,j+u)。也就是说,卷积计算时,P00点对应(i,j)坐标。最终,插值后的图中(distI,distJ)坐标点对应的值是原图中(i,j)处邻近16个像素点的权重卷积之和。i,j的范围是[i-1,i+2],[j-1,j+2]。
卷积公式计算过程如下:
设采样公式为S(x),原图中每一个(i,j)坐标点的值的表达式为f(i,j),插值后对应坐标的值为F(i+v,j+u),这个值会作为(distI,distJ)坐标点的值,那么公式为:
F(i+v,j+u)=A*B*C
A=(S(1+v) s(v) S(1-v) S(2-v))
等价于:
采样公式如下:
在卷积公式中有一个S(x),它就是关键的卷积插值公式。不同的公式,插值效果会有所差异(会导致加权值不一样),本文中采用的插值公式为:
公式中的特点是:
S(0)=1,
S(n)=0(当n为整数时),
当x超出范围时,S(x)为0,
当a取不同值时可以用来逼近不同的样条函数(常用值-0.5,-0.75)。
当a取值为-1,公式如下:
此时,逼近的函数是y=sin(x*π)/(x*π),如图7所示。
当a取值为-0.5,公式如下:
此时对应三次Hermite样条,如图8所示。
图9给出了不同a取值的对比示意图。
7、以左侧旋转图像为基准图像,P"1,P"2为基准点,将右侧图像拼接到基准图像中,P"3,P"4与基准点P"1,P"2重合,保留左侧图像基准线P"1P"2左边的图像和右侧图像基准线P"3,P"4右边的图像,得到拼接之后的大图,如图10所示。
(四)质检预览拼接图
对生成的预览拼接图进行拼接质量检查,程序可以显示拼接好的图像,如图10所示,这张显示的图像可以在全屏下预览。
对预览拼接图进行拼接质量确认,通过计算机程序或摄像头获取图像的图像特征来提取预览拼接图的文字相对于参考线的偏差角度,以及文字缺失或重叠程度,当预览拼接图的文字相对于参考线的偏差角度小于等于偏差角度阈值,且文字缺失或重叠程度小于等于文字缺失或重叠程度阈值时,判定拼接质量合格;当预览拼接图的文字相对于参考线的偏差角度大于偏差角度阈值和/或文字缺失或重叠程度大于文字缺失或重叠程度阈值时,判定拼接质量不合格。以上操作可通过计算机程序或人为操作来实现。
图10中的竖向直线是参考线,可以用于辅助质检,确定拼接图像是否合格。
(五)拼接原始大图
将P1,P2,P3,P4根据缩放比例1.0/scale,映射到原始图像坐标空间,通过与步骤(三)相同的图像拼接算法对原始大图左图和右图进行拼接,拼接得到原始大图的拼接图像。拼接过程可以通过程序来自动批量完成,不需要人工干预,按照设定的坐标对原图进行批量处理,每张图花费约9-15秒。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。