一种文档矫正方法、装置及电子设备与流程

文档序号:33399933发布日期:2023-03-08 15:57阅读:56来源:国知局
一种文档矫正方法、装置及电子设备与流程

1.本技术实施例涉及图像处理技术领域,尤其涉及一种文档矫正方法、装置及电子设备。


背景技术:

2.文档矫正技术是一种对矩形文档的图像进行矫正的技术,矩形文档例如是纸质文档、身份识别卡(identification card)、幻灯片或者标识牌等。例如,在使用相机设备拍摄文档时,受拍摄角度等因素的影响,矩形的文档在图像中会发生变形,具体表现在“近大远小”,即文档距离相机越近的部分,在图像中表现的越大,距离相机越远的部分,在图像中表现的越小。因此矩形文档在图像中最终会呈现为非矩形文档,影响观看。为了改善文档图像的视觉效果,需要利用文档矫正技术对文档图像进行矫正,将图像中的非矩形文档矫正为标准的矩形文档。这样,由于拍摄角度等因素带来的问题可以得到缓解,使得矫正后的文档图像变换成正视图像,方便观看。
3.基于传统的文档矫正技术进行矫正的步骤通常包括:对图像进行检测,得到文档四个角点的二维像素坐标,基于四个角点的二维像素坐标计算角点距离,之后基于角点距离计算文档的宽高比(ratio),并将该宽高比作为文档的真实宽高比对文档图像进行透视变换,得到矫正后文档。
4.但是,由于矩形文档在图像中已经变形为非矩形文档,基于二维像素坐标计算的角点距离并不是真实的文档宽度或者高度按比例缩小的结果。因此,基于角点距离计算得到的宽高比与文档真实宽高比存在较大差异。利用基于角点距离计算的宽高比进行矫正,即使矫正后的文档图像变换成正视图像,相较于真实的矩形文档,矫正后的图片仍然存在严重变形,矫正效果差。


技术实现要素:

5.本技术实施例提供了一种文档矫正方法、装置及电子设备,以解决传统文档矫正方法矫正效果差的问题。
6.第一方面,本技术实施例提供一种文档矫正方法,包括:获取图像中的文档的四个角点的二维像素坐标,以及获取拍摄图像的相机的相机内参;确定相机的估计外参,以及确定四个角点的第一参数,第一参数是表示拍摄图像时相机与角点之间的相对远近关系的参数;基于二维像素坐标、相机内参、估计外参以及第一参数,计算四个角点的三维空间坐标;基于四个角点的三维空间坐标计算文档的估计宽高比;基于估计宽高比对图像中的文档进行矫正,得到目标图片。
7.本技术实施例提供的文档矫正方法,可以将图像中文档的角点由二维平面转移至三维空间中,对文档拍摄场景做出合理还原。在三维空间中计算文档的估计宽高比,解决二维平面中文档因近大远小产生变形导致的比例失真的问题。之后基于估计宽高比对图片进行透视变换,得到文档的目标图片,有效改善矫正效果。
8.在一种可实现的方式中,确定四个角点第一参数的步骤包括:获取图像中的文档对应的第一图形,第一图形为文档的轮廓形成的四边形;如果第一图形中存在两对相互平行的对边,将四个角点的第一参数均确定为第一预设值,第一预设值对应相机与四个角点的距离相同。这样,可以得到图片中文档为矩形时的第一参数。
9.在一种可实现的方式中,确定四个角点的第一参数的步骤还包括:确定每个角点的基准深度值,基准深度值对应四个角点与相机的深度相等;如果第一图形中存在一对相互平行的对边,计算每个角点与第一交点之间的距离,以及计算四个角点与第一交点之间距离的平均值,第一交点为第一图形对角线的交点;基于角点与第一交点之间的距离以及四个角点与第一交点之间距离的平均值,计算每个角点的相对深度差异;基于第一参数与相对深度差异、基准深度值之间的反比拟合关系,计算每个角点的第一参数。这样,可以得到图片中为非矩形且存在一对相互平行的对边时的第一参数。
10.在一种可实现的方式中,确定四个角点的第一参数的步骤还包括:如果第一图形中不存在相互平行的对边,以第一图形的第一边作为底边,第一边的两条临边所在直线作为侧边构建三角形,以第一图形的第二边作为底边,第二边的两条临边所在直线作为侧边构建三角形;第一边与第二边为相临边;计算每个角点与第一交点之间的距离,计算四个角点与第一交点之间距离的平均值,以及计算每个角点与第二交点之间的距离;第二交点为第一边的三角形中线与第二边的三角形中线的交点;基于角点与第一交点之间的距离、计算四个角点与第一交点之间距离的平均值,以及计算角点与第二交点之间的距离,计算每个角点的相对深度差异;基于第一参数与相对深度差异、基准深度值之间的反比拟合关系,计算每个角点的第一参数。这样,可以得到图片中为非矩形且不存在相互平行的对边时的第一参数。
11.在一种可实现的方式中,基于第一参数与相对深度差异、基准深度值之间的反比拟合关系,计算第一参数的步骤包括:基于第一参数与相对深度差异、基准深度值之间的反比拟合关系,计算第二参数;从各个角点的第二参数中确定第二参数的最大值;基于优化关系式将第二参数的最大值优化为第一预设值,以及,基于第一预设值优化其余角点的第二参数,得到各个角点的第一参数。对第二参数进行归一化处理,最终得到第一参数,可以减小各个第一参数之间的分散性,方便进行后续的计算。
12.在一种可实现的方式中,确定四个角点的第一参数的步骤还包括:当拍摄图像的相机为深度相机时,获取深度相机输出的每个角点的真实深度值;基于第一参数与真实深度值之间的反比拟合关系,计算每个第一参数。这样,可以直接获取角点的深度信息,之后直接基于深度与第一参数之间的关系,计算出第一参数,可以提高第一参数的准确度。
13.在一种可实现的方式中,估计外参包括旋转矩阵和平移矩阵,旋转矩阵为单位矩阵,平移矩阵为零矩阵。这样,在计算四个角点的三维空间坐标时,相机外参可以忽略。
14.在一种可实现的方式中,基于四个角点的三维空间坐标计算文档的估计宽高比的步骤包括:基于四个角点的三维空间坐标,计算图像中文档其中两条对边的宽度;计算图像中文档其中两条对边的宽度的平均值,作为第一平均值;基于四个角点的三维空间坐标,计算图像中文档另外两条对边的高度;计算图像中文档另外两条对边的高度的平均值,作为第二平均值;计算第一平均值与第二平均值的比值,得到估计宽高比。这样,可以估计宽高比,且估计宽高比更加接近于文档真实宽高比。
15.在一种可实现的方式中,基于估计宽高比对图像中的文档进行矫正,得到目标图片的步骤包括:基于估计宽高比,确定四个角点的透视变换坐标;基于四个角点的二维像素坐标和透视变换坐标,计算透视变换矩阵;利用透视变换矩阵对图像进行透视变换,得到目标图片。这样,矫正后的文档图像变换成正视图像,且相较于真实的矩形文档矫正后的图片变形较小。
16.在一种可实现的方式中,基于二维像素坐标、相机内参、估计外参以及第一参数,计算四个角点的三维空间坐标的步骤,包括:将二维像素坐标、相机内参、估计外参以及第一参数输入至第一公式中,得到四个角点的三维空间坐标,第一公式为三维空间坐标与相机内参、估计外参、第一参数以及二维像素坐标的关系式。
17.第二方面,本技术实施例提供一种文档矫正装置,包括:获取模块,用于获取图像中的文档的四个角点的二维像素坐标,以及获取拍摄图像的相机的相机内参;估计模块,用于确定相机的估计外参,以及确定四个角点的第一参数,第一参数是表示拍摄图像时相机与角点之间的相对远近关系的参数;第一计算模块,用于基于二维像素坐标、相机内参、估计外参以及第一参数,计算四个角点的三维空间坐标;第二计算模块,用于基于四个角点的三维空间坐标计算文档的估计宽高比;矫正模块,用于基于估计宽高比对图像中的文档进行矫正,得到目标图片。
18.本技术实施例提供的文档矫正装置,可以将图像中文档的角点由二维平面转移至三维空间中,对文档拍摄场景做出合理还原。在三维空间中计算文档的估计宽高比,解决二维平面中文档因近大远小产生变形导致的比例失真的问题。之后基于估计宽高比对图片进行透视变换,得到文档的目标图片,有效改善矫正效果。
19.第三方面,本技术实施例还提供一种电子设备,包括:处理器和存储器;存储器存储有计算机程序,当计算机程序被处理器执行时,使得电子设备执行前述第一方面及其各个实现方式中的方法。
20.第四方面,本技术实施例还提供一种芯片系统,包括:存储器和处理器;存储器存储有计算机程序,当计算机程序被处理器执行时,使得芯片系统执行前述第一方面及其各个实现方式中的方法。
21.第五方面,本技术实施例还提供一种计算机存储介质,计算机可读存储介质中存储有计算机程序,当计算机程序在计算机上运行时,使得计算机执行第一方面及其各个实现方式中的方法。
22.第六方面,本技术实施例还提供一种计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面及其各个实现方式中的方法。
附图说明
23.图1为透视变换示意图:
24.图2为相机成像映射的示意图;
25.图3为文档矫正场景示意图;
26.图4为基于传统文档矫正技术矫正文档的对照示意图;
27.图5是本技术实施例提供的电子设备的硬件结构示意图;
28.图6为本技术实施例提供的文档矫正方法的流程示意图;
29.图7为本技术实施例提供的扫描文档的示意图;
30.图8为本技术实施例提供的计算估计宽高比的流程示意图;
31.图9为本技术实施例提供的对图像中的文档进行矫正的流程示意图;
32.图10为本技术实施例提供的文档矫正的示意图;
33.图11为本技术实施例提供的确定第一参数的第一种流程示意图;
34.图12为本技术实施例提供的确定第一参数的第二种流程示意图;
35.图13为本技术实施例提供的第一交点的示意图;
36.图14为本技术实施例提供的确定第一参数的第三种流程示意图;
37.图15为本技术实施例提供的第二交点的示意图;
38.图16为本技术实施例提供的确定第一参数的第四种流程示意图;
39.图17为本技术实施例提供的确定第一参数的第五种流程示意图;
40.图18为本技术实施例提供的矫正对比示意图;
41.图19为本技术实施例提供的一种文档矫正装置的结构示意图。
具体实施方式
42.本技术说明书和权利要求书及附图说明中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
43.在本技术实施例中,“示例性的”或者“例如”等词用于表示作示例、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
44.本技术的实施方式部分使用的术语仅用于对本技术的具体实施例进行解释,而非旨在限定本技术,下面将结合附图对本技术的实施例进行详细描述。
45.为了便于技术人员理解本技术实施例的技术方案,下面先对本技术实施例涉及的技术术语进行解释说明。
46.1、相机内参(camera intrinsics):相机内参是与相机自身特性相关的参数,比如相机的焦距、像素的大小等。基于相机的各个内参以及内参之间的关系,可以形成相机内参矩阵。对于任意一台相机设备,可以经过标定确定其相机内参矩阵,并且其相机内参矩阵是恒定不变的。在实际应用中,相机内参矩阵也被简称为相机内参。
47.相机内参矩阵如下:
[0048][0049]
其中:f
x
=f/dx,fy=f/dy,f为相机的焦距,单位一般为毫米,dx表示像素x方向的宽度(像素的长),dy表示像素y方向的宽度(像素的高)。f
x
=f/dx表示使用像素来描述x轴方向焦距的长度,fy=f/dy表示使用像素来描述y轴方向焦距的长度。u0和v0分别表示图像中心像素坐标和图像原点左边之间相差的横向像素数和纵向像素数。
[0050]
2、相机外参(camera extrinsics):相机外参是相机在世界坐标系中的参数,比如相机的位置、旋转方向等,相比于不变的相机内参,相机外参会随着相机运动发生改变。相
机的旋转和平移可以用外参来表示,以描述相机在静态场景下的运动,或者在相机固定时,运动物体的刚性运动。基于相机的旋转和平移等运动,可以形成相机的外参矩阵。相机外参矩阵包括旋转矩阵和平移矩阵,旋转矩阵描述了世界坐标系的坐标轴相较于相机坐标轴的方向,平移矩阵描述了相机坐标系下空间原点的位置。相机外参矩阵用于描述世界坐标系下的世界点是经过旋转平移,落到相机坐标系下的世界点上的过程。在实际应用中,相机外参矩阵也可以被简称为相机外参。
[0051]
相机外参矩阵如下:
[0052][0053]
其中,r表示旋转矩阵,t表示平移矩阵。
[0054]
3、透视变换(perspective transformation)是将图像投影到一个新的视平面(viewing plane)的过程,也称作投影映射(projective mapping),图1为透视变换示意图。
[0055]
4、相机成像映射:
[0056]
图2为相机成像映射的示意图,如图2所示,相机成像的过程包括a、b、c三个映射过程,映射过程a是从世界坐标系到相机坐标系的映射过程,这一映射过程中是刚性变换的过程,只是对物体进行旋转和平移变换,使得物体移动至与相机位姿对应的位置,物体不会发生形变。
[0057]
世界坐标系到相机坐标系的转换关系如下:
[0058][0059]
其中,r表示旋转矩阵,t表示平移矩阵,xw、yw及zw表示世界坐标系下某一点的横坐标、纵坐标及竖坐标,x、yc、zc表示该点在相机坐标系下的横坐标、纵坐标及竖坐标。
[0060]
映射过程b是从相机坐标系到图像坐标系的映射过程,在这一映射过程中,基于透射投影关系,将物体从三维转换至二维。受到透射投影过程的影响,这一映射过程表现为“近大远小”,即距离相机越近的物体,在图像坐标系中表现的越大,距离相机越远的物体,在图像坐标系中表现的越小。
[0061]
相机坐标系到图像坐标系的转换关系如下:
[0062][0063]
其中,f表示相机焦距,xw、yw及zw表示世界坐标系下某一点的横坐标、纵坐标及竖坐标。zc表示该点在相机坐标系下竖坐标,x和y表示该点在图像坐标系下的坐标。
[0064]
映射过程c是从图像坐标系到像素坐标系的映射过程,其中,像素坐标系和图像坐标系都在成像平面上,但是图像坐标系和像素坐标系的原点及度量单位不同。图像坐标系的原点为相机光轴与成像平面的交点,通常情况下是成像平面的中点或者叫主点(principal point)。图像坐标系的单位是毫米mm,属于物理单位,而像素坐标系的单位是像素(pixel)。
[0065]
图像坐标系到像素坐标系之间的转换关系如下:
[0066][0067]
其中,表示x方向1毫米内的像素个数,表示y方向1毫米内的像素个数,xw、yw及zw表示世界坐标系下某一点的横坐标、纵坐标及竖坐标,zc表示该点在相机坐标系下竖坐标,u和v表示该点在图像坐标系下的坐标。
[0068]
综合上述四个坐标系的转换,最终可以得到从世界坐标系转换到像素坐标系的转换关系如公式一:
[0069][0070]
可见,上式中右二矩阵为相机外参,右三矩阵为相机内参。因此,在实际应用中,如果已知相机内参及相机外参等参数,可以实现由三维空间坐标向二维像素坐标的转换。
[0071]
那么,可以对公式一进行反推,得到从像素坐标系转换到世界坐标系的转换关系如下公式二:
[0072][0073]
其中,xw、yw及zw表示某一点在世界坐标系下的横坐标,纵坐标及竖坐标,zc表示该点在相机坐标系下竖坐标,r表示估计相机外参的旋转矩阵,t表示相机外参的平移矩阵,k表示相机内参,u和v表示该点在像素坐标系下的坐标。
[0074]
下面结合附图对本技术实施例应用场景做示例性介绍。
[0075]
图3为文档矫正场景示意图。如图3所示,文档矫正技术是一种对矩形文档的图像进行矫正的技术,矩形文档例如是纸质文档、身份识别卡、幻灯片或者标识牌等。例如,在使用相机设备拍摄文档时,受拍摄角度等因素的影响,矩形的文档在图像中会发生变形,具体表现在“近大远小”,即文档距离相机越近的部分,在图像中表现的越大,距离相机越远的部分,在图像中表现的越小。因此矩形文档在图像中最终会呈现为非矩形文档,影响观看。为了改善文档图像的视觉效果,需要利用文档矫正技术对文档图像进行矫正,将图像中的非矩形文档矫正为标准的矩形文档。这样,由于拍摄角度等因素带来的问题可以得到缓解,使得矫正后的文档图像变换成正视图像,方便观看。
[0076]
基于传统的文档矫正技术进行矫正的步骤通常包括:对图像进行检测,得到文档四个角点的二维像素坐标,基于四个角点的二维像素坐标计算角点距离,之后基于角点距离计算文档的宽高比,并将该宽高比作为文档的真实宽高比对文档图像进行透视变换,得到矫正后文档。
[0077]
但是,由于矩形文档在图像中已经变形为非矩形文档,基于二维像素坐标计算的角点距离并不是真实的文档宽度或者高度按比例缩小的结果。因此,基于角点距离计算得到的宽高比与文档真实宽高比存在较大差异。利用基于角点距离计算的宽高比进行矫正,
即使矫正后的文档图像变换成正视图像,相较于真实的矩形文档,矫正后的图片仍然存在严重变形,矫正效果差。
[0078]
图4为基于传统文档矫正技术矫正文档的对照示意图。图4中图像(a)是相机设备对尺寸为a4的纸质文档进行拍摄得到的图像,经过检测后可以得到图像(a)中a、b、c、d四个角点,四个角点的二维图像坐标分别为a(795,1188)、b(2021,1170)、c(2226,2901)、d(247,2866)。基于角点距离计算宽高比的步骤如下:根据平面上两点的距离公式,可以计算角点a与角点b之间的距离d1≈1226,角点c与角点d之间的距离d2≈1979,计算d1与d2的均值,可以得到矩形文档的宽约等于1603。计算角点a与角点d之间的距离d3≈1765,角点b与角点c之间的距离d4≈1725。计算d3与d4的均值,可以得到矩形文档的高约等于1745。这样,矩形文档的宽高比约等于0.919。已知a4尺寸纸张的宽高比为0.707,通过比较可以发现,基于角点距离计算得到的宽高比,与文档的真实宽高比差异较大。图4中图像(b)是经过矫正得到的图像,相较于真实的矩形文档存在严重变形,不利于用户观察及使用。
[0079]
对于使用深度模型矫正文档的过程,包括训练阶段和应用阶段。首先,构建训练数据集,训练数据集中包括相机以正视视角对矩形文档进行拍摄得到的原图像,矩形文档在原图像中呈现为矩形。以及以倾斜视角对矩形文档进行拍摄得到变形图像,矩形文档在变形图像中呈现为非矩形。其次,对比原图像与变形图像,得到原图像与变形图像之间的映射关系,之后经过迭代训练,将深度模型训练为可以对变形图像进行矫正,得到近似于原图像的矫正图像。之后将训练好的深度模型应用至矫正文档的过程中。为了保证准确性,模型一般包括众多的算子,参数多,模型大,在实际应用中,会增加功耗和时延,导致矫正时间过长,影响用户体验。
[0080]
为了解决上述技术问题,本技术实施例提供一种文档矫正方法,该方法可以将图像中文档的二维像素坐标转移到三维空间中,之后基于三维空间坐标计算文档的宽高比。这样,可以避免图像中文档的变形对宽高比的计算带来影响,可以提高宽高比的准确度,使得计算而得的宽高比接近于文档真实宽高比。因此,使用本技术实施例提供的方法计算的宽高比进行矫正,可以优化矫正结果,使得矫正结果中的文档的宽高比,接近于文档真实宽高比,有效改善矫正后文档的视觉效果。
[0081]
本技术实施例提供的方法可以应用至具有图像处理功能的设备中,例如智能手机、平板电脑、个人电脑、工作站设备、大屏设备(例如:智慧屏、智能电视等)、可穿戴设备(例如:智能手环、智能手表)、掌上游戏机、家用游戏机、虚拟现实设备、增强现实设备、混合现实设备等、车载智能终端等设备中。
[0082]
图5是本技术实施例提供的电子设备的硬件结构示意图。如图5所示,电子设备100可以包括处理器110,存储器120,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,摄像头192,显示屏193,以及用户标识模块(subscriber identification module,sim)卡接口194等。其中,传感器模块180可以包括触摸传感器180a,陀螺仪传感器180b,气压传感器180c,地磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j等。其中,陀螺仪传感器180b,气压传感器180c,地磁传感器180d,加速度传感器180e等均可用于检测电子设备的运
动状态,因此,也可以被称作运动传感器。
[0083]
可以理解的是,本技术实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0084]
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-networkprocessing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
[0085]
存储器120可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。存储器120可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。处理器110通过运行存储在存储器120的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
[0086]
usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。usb接口130可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如ar设备等。
[0087]
可以理解的是,本技术实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本技术另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
[0088]
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过usb接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
[0089]
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,存储器120,显示屏193,摄像头192,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
[0090]
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
[0091]
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
[0092]
移动通信模块150可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
[0093]
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170a,受话器170b等)输出声音信号,或通过显示屏193显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
[0094]
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,wlan)(如无线保真(wireless fidelity,wi-fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
[0095]
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm),通用分组无线服务(general packet radio service,gprs),码分多址接入(code division multiple access,cdma),宽带码分多址(wideband code division multiple access,wcdma),时分码分多址(time-division code division multiple access,td-scdma),长期演进(long term evolution,lte),bt,gnss,wlan,nfc,fm,和/或ir技术等。所述gnss可以包括全球卫星定位系统(global positioning system,gps),全球导航卫星系统(global navigation satellite system,glonass),北斗卫星导航系统(beidou navigation satellite system,bds),准天顶卫星系统(quasi-zenith satellite system,qzss)和/或星基增强系统(satellite based augmentation systems,sbas)。
[0096]
电子设备100通过gpu,显示屏193,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏193和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行计算机程序以生成或改变显示信息。
[0097]
显示屏193用于显示图像,视频等。显示屏193包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light-emitting diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,电子设备100可以包括1个或n个显示屏193,n为大于1的正整数。
[0098]
电子设备100可以通过isp,摄像头192,视频编解码器,gpu,显示屏193以及应用处理器等实现拍摄功能。
[0099]
isp用于处理摄像头192反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头192中。
[0100]
摄像头192用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,ryyb,yuv等格式的图像信号。在一些实施例中,电子设备100可以包括1个或n个摄像头192,n为大于1的正整数。
[0101]
电子设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
[0102]
触摸传感器180a,也称“触控器件”。触摸传感器180a可以设置于显示屏193,由触摸传感器180a与显示屏193组成触摸屏,也称“触控屏”。触摸传感器180a用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏193提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180a也可以设置于电子设备100的表面,与显示屏193所处的位置不同。
[0103]
陀螺仪传感器180b可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180b确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180b可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180b检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180b还可以用于导航,体感游戏场景。
[0104]
气压传感器180c用于测量气压。在一些实施例中,电子设备100通过气压传感器180c测得的气压值计算海拔高度,辅助定位和导航。
[0105]
地磁传感器180d包括霍尔传感器。电子设备100可以利用地磁传感器180d检测翻盖皮套的开合。在一些实施例中,当电子设备100是翻盖机时,电子设备100可以根据地磁传感器180d检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
[0106]
加速度传感器180e可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
[0107]
距离传感器180f,用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备100可以利用距离传感器180f测距以实现快速对焦。
[0108]
接近光传感器180g可以包括例如发光二极管和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备100通过发光二极管向外发射红外光。电子设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备100附近有物体。当检测到不充分的反射光时,电子设备100可以确定电子设备100附近没有物体。电子设备100可以利用接近光传感器180g检测用户手持电子设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180g也可用于皮套模式,口袋模式自动解锁与锁屏。
[0109]
指纹传感器180h用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
[0110]
温度传感器180j用于检测温度。在一些实施例中,电子设备100利用温度传感器180j检测的温度,执行温度处理策略。例如,当温度传感器180j上报的温度超过阈值,电子设备100执行降低位于温度传感器180j附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,电子设备100对电池142加热,以避免低温导致电子设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,电子设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
[0111]
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
[0112]
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏193不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
[0113]
sim卡接口194用于连接sim卡。sim卡可以通过插入sim卡接口194,或从sim卡接口194拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或n个sim卡接口,n为大于1的正整数。sim卡接口194可以支持nano sim卡,micro sim卡,sim卡等。同一个sim卡接口194可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。sim卡接口194也可以兼容不同类型的sim卡。sim卡接口194也可以兼容外部存储卡。电子设备100通过sim卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用esim,即:嵌入式sim卡。esim卡可以嵌在电子设备100中,不能和电子设备100分离。
[0114]
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本技术实施例以分层架构的android系统为例,示例性说明电子设备100的软件结构。
[0115]
下面对本技术实施例提供的文档矫正方法的各方法步骤进行示例性说明。
[0116]
图6为本技术实施例提供的文档矫正方法的流程示意图。如图6所示,本技术实施例提供的文档矫正方法包括以下步骤s100-s500:
[0117]
s100:获取图像中的文档的四个角点的二维像素坐标,以及获取拍摄图像的相机
的相机内参。
[0118]
其中,图像为使用相机设备对矩形文档进行拍摄而获得的图像,图像中包括矩形文档的矩形成像或者非矩形成像,具体成像形状取决于拍摄时相机的拍摄角度等因素。矩形文档例如是纸质文档、身份识别卡、幻灯片或者标识牌等,矩形文档也可以为实际拍摄过程中遇到的任何包括矩形平面的物体,例如相框等,本技术对此不做具体限定。
[0119]
本技术实施例中,矩形文档的四个角点等同于矩形的四个顶点。由于图像中文档的成像一般是边缘清晰且形状规则的四边形,因此可以从图像中扫描到文档的轮廓及四个角点。角点是图像中文档与其他背景内容的边界点,因此可以利用角点将文档与图片中的背景做区分。本技术实施例中获取角点的二维像素坐标,并基于角点的二维像素坐标做文档矫正,可以准确区分图像中文档与其他背景内容,进而实现良好的矫正效果。
[0120]
在一些实现方式中,对于文档与背景颜色相近、边缘不清晰的情况,本技术实施例还可以利用边缘检测算法对文档的边缘进行修正,对于图像中文档“缺角”的情况,本技术实施例也可以在图像中利用算法对缺失的角点进行修正,最后得到四个角点的二维像素坐标,保证角点坐标的准确性。
[0121]
图像中文档的四个角点的二维像素坐标,是指在像素坐标系下四个角点的坐标。获取图像中文档的四个角点的二维像素坐标的步骤,是对文档进行扫描的过程。具体的,在相机拍摄图像后,可以将图像输入至检测模型中,检测模型能够扫描检测到图像中文档的轮廓及角点,之后经过一些后处理的步骤,基于文档轮廓及角点位置,计算出角点的二维像素坐标。在检测成功后,可以将文档的轮廓及角点绘制在图像中。本技术实施例不对检测模型的具体类型做限定。
[0122]
图7为本技术实施例提供的扫描文档的示意图,如图7所示,图像image1经过检测后,图像中文档的四个角点可以分别为角点a、角点b、角点c及角点d,且四个角点的二维像素坐标如下:角点a(795,1188)、角点b(2021,1170)、角点c(2226,2901)及角点d(247,2866)。
[0123]
进一步的,相机内参是相机出厂后即固定的参数,在拍摄图像及文档矫正过程中,图像处理设备可以直接获取拍摄相机的相机内参。该相机中可以包括镜头、图像传感器等部件,该相机还可以耦合有控制器,在控制器的控制下,相机可以完成拍照。实际应用中,可以由同一个电子设备实现相机、相机的控制器和图像处理设备的各项功能,该电子设备例如智能手机、平板电脑及可穿戴设备等。
[0124]
s200:确定相机的估计外参,以及确定四个角点的第一参数,第一参数是表示拍摄图像时相机与角点之间的相对远近关系的参数。
[0125]
基于拍照时近大远小的透视规律,矩形文档在图片中的成像是非矩形。因此基于二维像素坐标计算文档的宽高比存在的误差较大。为了计算提高计算宽高比时的准确度,本技术实施例中,可以将矩形文档角点的二维像素坐标转移到三维空间中,确定角点的三维空间坐标,之后基于三维空间坐标计算宽高比。
[0126]
进一步的,将二维像素坐标转移至三维空间中,确定角点的三维空间坐标的步骤,可以由像素坐标系到世界坐标系的转换关系(上述公式二)来实现。在公式二中,角点的二维像素坐标和相机内参为已知参数,因此需要进一步确定相机外参和zc如何取值。
[0127]
相机外参是相机在世界坐标系中的参数,用于描述相机在世界坐标系下的运动。
随着相机的运动,相机外参会发生改变。相机外参包括旋转矩阵和平移矩阵,以具体表示相机在世界坐标系中的旋转和/或平移变换等运动。已知相机在拍摄文档时,当相机相对文档的拍摄角度、拍摄距离确定后,此时的相机外参已确定。相应的,zc表示某一点在相机坐标系下的竖坐标,随着相机的拍摄角度、拍摄距离不同,zc不同,当相机相对文档的拍摄角度、拍摄距离确定后,zc已确定。可见,对于世界坐标系下的同一文档,如果改变拍摄时相机的拍摄角度、拍摄距离,相机外参和zc均发生变化。
[0128]
本技术实施例中可以将相机外参确定为估计外参,并且利用第一参数代替zc,将未知量确定为已知量,之后利用上述公式二计算四个角点的三维空间坐标。
[0129]
具体的,本技术实施例中可以将相机外参确定为估计外参,其中,估计外参包括旋转矩阵r和平移矩阵t,旋转矩阵具体可以为单位矩阵,平移矩阵可以为零矩阵。这样,利用上述公式二计算四个角点的三维空间坐标时,相机外参可以忽略。在相机的相机外参被确定为固定的值之后,可以基于相机外参为固定值的情况下,角点与相机之间相对远近的关系确定第一参数。
[0130]
旋转矩阵r具体如下:
[0131][0132]
平移矩阵t具体如下:
[0133][0134]
需要补充说明的是,在上述公式二中,相机外参是用于描述相机在世界坐标系下运动过程的参数,随着相机的移动,zc发生变化。可见,相机外参和zc可以表示相机相对文档运动过程。如果基于公式二计算三维空间坐标系,需要将相机与文档之间的相对运动过程带入公式二中,以保证公式二成立。本技术实施例中,在将相机外参确定为估计外参之后,相当于在拍摄文档时相机是固定不动的,相机坐标系相对世界坐标系之间没有发生旋转和/或平移变换。那么,在这种假定情况下,为了保证二维像素坐标与三维空间坐标之间的转换,仍然需要将相机和文档的相对位置关系表述出来,这样,就需要将相机拍摄文档的过程由世界坐标系下文档不动、相机移动,转变为世界坐标系下相机不动、文档移动,将文档相对相机的运动过程带入公式二中。因此,在将相机外参确定为估计外参之后,需要设计一个参数表示文档的运动过程,并利用该参数和估计外参共同带入公式二中计算三维空间坐标,本技术实施例中采用的方案是利用第一参数表示文档的运动过程,利用第一参数和估计外参共同计算三维空间坐标。第一参数的具体确定过程将在下文详述,此处不做赘述。
[0135]
可见,本技术实施例可以利用估计外参和第一参数,表述角点由二维像素坐标系到三维世界坐标系映射过程。这样,可以将四个角点的二维像素坐标转移至三维空间中,并计算三维空间中文档的宽高比,还原因“近大远小”带来的文档变形,提高宽高比的准确度。
[0136]
s300:基于二维像素坐标、相机内参、估计外参以及第一参数,计算四个角点的三维空间坐标。
[0137]
本技术实施例中可以将二维像素坐标、相机内参、估计外参以及第一参数带入第一公式中,计算四个角点的三维空间坐标。第一公式可以由从像素坐标系转换到世界坐标
系的转换关系(上述公式二)得到。
[0138]
具体的,将公式二中的相机外参确定为估计外参,zc确定为第一参数,可以得到第一公式如下:
[0139][0140]
其中,xw、yw及zw表示角点在世界坐标系下的横坐标、纵坐标及竖坐标(三维空间坐标),zc′
表示该角点的第一参数,r表示估计估计外参中的旋转矩阵,t表示估计外参中的平移矩阵,k表示相机内参,u和v表示角点在像素坐标系下的坐标(二维像素坐标)。
[0141]
这样,可以在已知角点二维像素坐标的情况下,反推出角点的三维空间坐标,还原文档的拍摄环境。
[0142]
s400:基于四个角点的三维空间坐标计算文档的估计宽高比。
[0143]
在已知四个角点的三维空间坐标之后,可将计算文档的宽和高,进而得到文档的估计宽高比。
[0144]
图8为本技术实施例提供的计算估计宽高比的流程示意图,如图8所示,步骤s400包括以下步骤s401-s405:
[0145]
s401:基于四个角点的三维空间坐标,计算图像中文档其中两条对边的宽度。
[0146]
示例性的,如图7所示的图像image1,基于三维空间坐标两点间距离公式,根据角点a和角点b的三维空间坐标,可以计算角点a和角点b之间的距离,基于角点d和角点c的三维空间坐标,可以计算角点d和角点c之间的距离,得到两条对边ab和dc的长度,以该长度作为其中两条对边的宽度。
[0147]
s402:计算图像中文档其中两条对边的宽度的平均值,作为第一平均值。
[0148]
本技术实施例中,可以将图像中两条横边确定为文档的宽边。这样,两条对边ab和dc长度的均值,可以作为文档宽度的平均值。由于两条对边ab和dc的长度是由三维空间中的坐标点计算而得的,因此,该长度值的计算过程没有受到两条对边ab和dc距离相机远近差异的影响,该长度值接近文档的真实宽度。可见,该第一平均值更加接近文档的真实宽度。并且,以两条对边ab和dc的均值计算宽高比,可以缩小计算的误差。
[0149]
s403:基于四个角点的三维空间坐标,计算图像中文档另外两条对边的高度。
[0150]
示例性的,如图7所示,基于三维空间坐标两点间距离公式,根据角点a和角点d的三位空间坐标,可以计算角点a和角点d之间的距离,基于角点b和角点c的三维空间坐标,可以计算角点b和角点c之间的距离,得到两条对边ad和bc的长度,以该长度作为另外两条对边的高度。
[0151]
s404:计算图像中文档另外两条对边的高度的平均值,作为第二平均值。
[0152]
本技术实施例中,可以将图像中两条竖边确定为文档的高边。这样,两条对边ad和bc长度的均值,可以作为文档高度的平均值。由于两条对边ad和bc的长度是由三维空间中的坐标点计算而得的,因此,该长度值的计算过程没有受到两条对边ad和bc距离相机远近差异的影响,该长度值接近文档的真实高度。可见,该第二平均值更加接近文档的真实高度。并且,以两条对边ad和bc的均值计算宽高比,可以缩小计算的误差。
[0153]
s405:计算第一平均值与第二平均值的比值,得到估计宽高比。
[0154]
这样,该估计宽高比更接近与文档真实的宽高比。
[0155]
可以理解的是,本技术实施例中文档哪条边为宽边、哪条边为高边与边的实际长度无关,与相邻两条边之间的位置关系有关。为方便计算,一般将斜率相对较小的两条边确定为宽边(横边),以斜率相对较大的两条边确定为高边(竖边)。
[0156]
s500:基于估计宽高比对图像中的文档进行矫正,得到目标图片。
[0157]
本技术实施例中,如果已知文档的估计宽高比,可以对图片中的文档进行透视变换,实现文档在非正视视角与正视视角两个二维平面之间的变换,将文档矫正至正视视角中,得到文档的正视图片,方便观察。
[0158]
图9为本技术实施例提供的对图像中的文档进行矫正的流程示意图,如图9所示,步骤s500包括以下步骤s501-s503:
[0159]
s501:基于估计宽高比,确定四个角点的透视变换坐标。
[0160]
可以理解的是,如果需要将非正视视角的图像转换成正视视角的图像,应当明确文档在非正视视角与正视视角之间的映射矩阵。本技术实施例中,由于已经计算出文档的估计宽高比,且已知文档的真实形状为矩形,那么可以基于估计宽高比以及文档形状,确定文档在正视视角的角点的二维像素坐标(透视变换坐标)。这样,在已知文档的两个视角下的二维像素坐标之后,可以确定两个视角之间的映射矩阵。
[0161]
图10为本技术实施例提供的文档矫正的示意图。如图10所示,矫正前文档在非正视视角的角点分别为a、b、c、d,矫正后文档在正视视角的角点分别为a'、b'、c'、d'。
[0162]
可以理解的是,该待矫正文档的实际形状已经可以确定为矩形。对于在正视视角下拍摄的图片,图片中文档的宽高比等于文档真实的宽高比。因此,在确定图片中待矫正文档的估计宽高比之后,可以直接将非矩形的待矫正文档基于估计宽高比矫正为实际的形状(矩形)。因此,本技术实施例中可以将角点a'的透视变换坐标确定为(0,0),将角点b'的透视变换坐标确定为(0,w)。进一步的,在正视视角的矩形文档时,角点c'的透视变换坐标应当为(0,h),角点d'的透视变换坐标应当为(w,h)。
[0163]
进一步的,本技术实施例中,已知文档的真实的宽高比等于上述估计宽高比ratio,那么,在已知文档的宽或者高之后,基于估计宽高比可以确定文档的高或者宽。示例性的,本技术实施例可以将文档的宽(w)作为已知量,那么角点a'的透视变换坐标为(0,0),角点b'的透视变换坐标为(0,w),角点c'的透视变换坐标应当为(0,w/ratio),角点d'的透视变换坐标应当为(w,w/ratio)。其中,文档的宽(w)可以由角点的二维像素坐标确定,具体的,可以基于角点a和角点b的二维像素坐标,计算角点a和角点b之间的距离,基于角点d和角点c的二维像素坐标,计算角点d和角点c之间的距离。之后,计算两个距离的均值,作为文档的宽(w)。
[0164]
可见,由于本技术实施例中的估计宽高比是基于角点在三维空间的坐标计算得来的,准确度更高,因此基于估计宽高比确定的角点的透视变换坐标,更加接近在正视视角拍摄文档时的真实二维像素坐标。
[0165]
在一些实现方式中,也可以将文档的高(h)作为已知量,基于h和ratio计算角点的透视变换坐标。其中,h可以由角点的二维空间坐标确定。
[0166]
在另一些实现方式中,本技术实施例也可以基于角点的三维空间坐标计算文档的宽或者高,之后基于宽高比及宽或者高计算角点的透视变换坐标,本技术对此不做具体限
定。
[0167]
需要补充说明的是,本技术实施例中将角点a的透视变换坐标确定为(0,0),可以使得角点a与正视视角下图像的像素坐标系的原点重合。这样,可以便于图像处理设备对矫正后图像进行裁切,使得最终的目标图片仅包括矫正后文档,而不包括背景等干扰内容,提升用户体验。
[0168]
s502:基于四个角点的二维像素坐标和透视变换坐标,计算透视变换矩阵。
[0169]
由于在步骤s100中已经确定非正视视角的角点的二维像素坐标,在步骤s501中已经确定文档在正视视角的角点的二维像素坐标。因此,可以基于角点在两个视角之间的映射关系,确定透视变换矩阵。之后基于该透视变换矩阵对非正视视角的图像进行透视变换,最终转换至正视视角,得到目标图片。
[0170]
在实际应用中,基于四个角点的二维像素坐标和透视变换坐标,计算透视变换矩阵的步骤,可以通过调用opencv项目中的cv::getperspectivetransform()函数来完成。函数的输入量包括四个角点的二维像素坐标和透视变换坐标,函数的输出结果即为透视变换矩阵。
[0171]
s503:利用透视变换矩阵对图像进行透视变换,得到目标图片。
[0172]
这样,非正视视角的图像可以透视变换至正视视角,最终得到目标图片。该目标图片中文档的宽高比等于估计宽高比,接近于文档的真实比例,因此,本技术实施例可以有效改善图像中文档的比例,解决因拍摄角度等因素带来的文档图像严重变形的问题,矫正效果好。
[0173]
在实际应用中,利用透视变换矩阵对图像进行透视变换,得到目标图片的步骤,可以通过调用opencv项目中的cv::warpperspective()函数来完成。函数的输入量包括矩阵形式的原图以及透视变换矩阵,函数的输出结果为经过透视变换的结果,最终得到目标图片。
[0174]
可以理解是,本技术实施例中,还可以包括对函数输出结果对应的图片进行裁切的步骤,使得图片中仅包括文档的内容,不包括其他背景。
[0175]
由以上技术方案可知,本技术实施例提供的文档矫正方法,可以将图像中文档的角点由二维平面转移至三维空间中,对文档拍摄场景做出合理还原。在三维空间中计算文档的估计宽高比,解决二维平面中文档因近大远小产生变形导致的比例失真的问题。之后基于估计宽高比对图片进行透视变换,得到文档的目标图片,有效改善矫正效果。
[0176]
下面结合附图对本技术实施例确定第一参数的步骤进行示例性介绍。
[0177]
为了将第一参数与文档的运动结合起来,本技术实施例中分析了第一参数与文档的运动之间的关系。具体分析过程如下:在已知某一点的二维像素坐标、三维空间坐标,以及将相机外参确定为估计外参的情况下,基于第一公式计算出第一参数zc′
。通过分析第一参数zc′
和文档与运动相关的参数等确定了:第一参数与文档角点的深度变化有关,在文档角点的深度越大时,第一参数zc′
越小,二者呈反比关系。因此,本技术实施例中将第一参数设计为表示拍摄图像时相机与角点之间的相对远近关系的参数,之后将深度与第一参数zc′
之间的反比关系作为先验知识,基于文档角点的深度变化确定第一参数。
[0178]
图11为本技术实施例提供的确定第一参数的第一种流程示意图,如图11所示,本技术实施例中,步骤s200包括以下步骤s201-s202:
[0179]
s201:获取图像中的文档对应的第一图形,第一图形为文档的轮廓形成的四边形。
[0180]
基于拍照时近大远小的透视规律,在文档的四个角点相对相机的深度发生变化时,文档的轮廓也会发生变化。因此,本技术实施例中,可以利用图像中文档轮廓来确定深度的大小。
[0181]
本技术实施例中,第一图形为文档的轮廓形成的图形,基于近大远小的透视规律,在文档相对相机发生移动时,文档的最终轮廓会呈现较大差异,因此,利用第一图形可以确定图像中文档相对基准图片中文档之间的关系。提取文档轮廓的步骤可以利用轮廓提取算法完成,轮廓提取算法例如可以是canny算法或者阈值分割算法等,本技术对此不做具体限定。
[0182]
s202:如果第一图形中存在两对相互平行的对边,将四个角点的第一参数均确定为第一预设值,第一预设值对应相机与四个角点的距离相同。
[0183]
已知在文档与相机平行,并且文档中心与相机视野中心重合时,相机拍摄的图像中的文档才不会变形,此时已知在相机距离四个角点的远近(深度)相同。
[0184]
进一步的,由于相机拍摄文档形成的图像中,文档只有矩形和非矩形两种形态,因此当第一图形中存在两对相互平行的对边时,可以确定第一图形为矩形,图像中的文档没有发生变形,因此该种情况下文档与相机平行,并且文档中心与相机视野中心重合,相机距离四个角点的远近(深度)相同。这样,在该种情况下,可以将文档的运动过程描述为:四个角点的深度相同,不论四个角点与相机之间的深度是如何变化的,四个角点相互之间没有深度变化,四个角点的第一参数相同。这样,在将二维像素坐标转换至三维空间坐标时,第一参数对四个角点的影响是相同的,和文档与相机平行,并且文档中心与相机视野中心重合的情况相对应。因此在四个角点的第一参数取值相同的情况下,第一参数的取值大小,只会对四个角点的三维空间坐标起到统一缩放的作用,不会影响估计宽高比的计算。
[0185]
本技术实施例中,第一预设值优选等于1,本技术不对第一预设值的数值做具体限定。
[0186]
这样,可以将四个角点第一参数和估计外参、相机内参以及四个角点的二维像素坐标带入第一公式中,确定四个角点的三维空间坐标。
[0187]
图12为本技术实施例提供的确定第一参数的第二种流程示意图,如图12所示,本技术实施例中,步骤s200还包括以下步骤s203-s206:
[0188]
s203:确定每个角点的基准深度值,基准深度值对应四个角点与相机的深度相等。
[0189]
基于拍照时近大远小的透视规律,在文档角点的深度发生变化时,文档会发生变形。因此,可以为角点设置基准深度值,基准深度值是四个角点距离镜头的深度相等时(图片中的文档没有发生变形时)的深度值,以基准深度值表示文档角点没有发生深度变化。相应的,在文档角点的深度发生变化时(图片中的文档发生变形时),角点的深度也由基准深度值变化为其他数值。
[0190]
本技术实施例中,基准深度值优选为1,本技术对此不做具体限定。
[0191]
s204:如果第一图形中存在一对相互平行的对边,计算每个角点与第一交点之间的距离,以及计算四个角点与第一交点之间距离的平均值,第一交点为第一图形对角线的交点。
[0192]
已知在图片中文档为矩形时,文档的四个角点,与文档的第一图形的对角线交点
的距离是相等的。在图片中文档为非矩形时,文档的四个角点,与文档的第一图形的对角线交点的距离相等或者不相等。因此,本技术实施例中,可以利用角点与对角线交点之间的距离描述文档角点深度的变化。图13为本技术实施例提供的第一交点的示意图,如图13所示,p1、p2、p2及p4为角点,c1为第一交点。
[0193]
进一步的,在第一图形中存在一对相互平行的对边时,表示文档中心与相机视野中心重合,只是文档与相机不再平行。进一步的,在存在一对相互平行的对边时,文档的其中两个角点以文档中心为旋转中心发生了同样的旋转、深度变深,文档的另外两个角点以文档中心为旋转中心发生了同样的旋转、深度变浅。
[0194]
进一步的,进行了相同旋转的角点与第一交点之间的距离是相同的,如果角点的深度相对变得更深,该角点的d值一定会小于平均值avg,如果角点的深度相对变更浅,该角点d值一定会大于平均值avg,因此可以基于d值与平均值avg之间的关系直接确定角点的深度变化。其中,d值表示角点与第一交点之间距离,avg表示四个角点与第一交点之间距离的平均值。
[0195]
s205:基于角点与第一交点之间的距离以及四个角点与第一交点之间距离的平均值,计算每个角点的相对深度差异。
[0196]
本技术实施例中,相对深度差异o1可以根据以下第二公式计算:
[0197][0198]
其中,d为角点与第一交点之间距离,avg为四个角点与第一交点之间距离的平均值。
[0199]
s206:基于第一参数与相对深度差异、基准深度值之间的反比拟合关系,计算每个角点的第一参数。
[0200]
本技术实施例中,第一参数可以根据以下第三公式计算:
[0201][0202]
其中,zc′
表示第一参数,d
init
表示基准深度值,d为角点与第一交点之间距离,avg为四个角点与第一交点之间距离的平均值。
[0203]
由第三公式可知,在角点的深度没有发生变化时,各个角点的zc′
相等,且均等于d
init
。角点的深度发生变化时,例如角点p1的深度相对于基准深度值变深,角点p4的深度相对于基准深度值变浅,那么角点p1的d值会小于平均值avg,此时相对深度差异为负数,角点p1的zc′
小于d
init
。可见,第三公式中,深度与第一参数zc′
之间满足反比关系。
[0204]
图14为本技术实施例提供的确定第一参数的第三种流程示意图,如图14所示,本技术实施例中,步骤s200还包括以下步骤s207-s210:
[0205]
s207:如果第一图形中不存在相互平行的对边,以第一图形的第一边作为底边,第一边的两条临边所在直线作为侧边构建三角形,以第一图形的第二边作为底边,第二边的两条临边所在直线作为侧边构建三角形;第一边与第二边为相临边。
[0206]
在第一图形中不存在相互平行的对边时,表示文档中心与相机视野中心不再重合,文档与相机也不再平行。角点的d值与平均值avg之间的关系,不能再绝对的表示各个角点之间深度的深浅变化。因此,为了确定角点的深度变化关系,本技术实施例引入了视觉中心,之后基于角点与视觉中心之间的距离关系确定深度变化。根据透视投影关系,可以明确
第二交点为图像中文档的视觉中心,第二交点为第一边的三角形中线与第二边的三角形中线的交点。图15为本技术实施例提供的第二交点的示意图,如图15所示,p1、p2、p2及p4为角点,c1为第一交点,c2为第二交点。
[0207]
进一步的,在第一图形中不存在相互平行的对边时,四个角点均发生了不同程度的深度变化,基于透视投影关系可知,深度变化较大的两个角点距离第一交点之间的距离小于其距离第二交点之间的距离,深度变化较小的两个角点距离第一交点之间的距离大于其距离第二交点之间的距离。因此,本技术实施例可以基于角点距离第一交点之间的距离和其距离第二交点之间的距离之间的关系确定角点的深度变化。
[0208]
本技术实施例中,可以基于两对边的斜率关系,确定对边是否平行。具体的,如果两对边的斜率差值小于第二预设阈值,则可以确定这两条对边平行,如果两对边的斜率差值大于或者等于第二预设阈值,则可以确定这两条对边不平行,第二预设阈值的具体数值可以由实际情况确定,本技术对此不做具体限定。
[0209]
s208:计算每个角点与第一交点之间的距离、计算四个角点与第一交点之间距离的平均值,以及计算每个角点与第二交点之间的距离;第二交点为第一边的三角形中线与第二边的三角形中线的交点。
[0210]
s209:基于角点与第一交点之间的距离、计算四个角点与第一交点之间距离的平均值,以及计算角点与第二交点之间的距离,计算每个角点的相对深度差异。
[0211]
本技术实施例中,相对深度差异o2可以根据以下第四公式计算:
[0212][0213]
其中,d1为角点与第一交点之间距离,d2为角点与第二交点之间距离,avg为四个角点与第一交点之间距离的平均值。
[0214]
s210:基于第一参数与相对深度差异、基准深度值之间的反比拟合关系,计算每个角点的第一参数。
[0215]
本技术实施例中,第一参数可以根据以下第五公式计算:
[0216][0217]
其中,zc′
表示第一参数,d
init
表示基准深度值,d1为角点与第一交点之间距离,d2为角点与第二交点之间距离,avg为四个角点与第一交点之间距离的平均值。
[0218]
由第五公式可知,在角点的深度没有发生变化时,各个角点距离第一交点的距离等于其距离第二角点的距离,各个角点的zc′
相等,且均等于d
init
。角点的深度发生变化时,例如角点p1的深度变深,那么角点的d1会小于d2,此时相对深度差异为负数,角点p1的zc′
小于d
init
。可见,第五公式中,深度与第一参数zc′
之间满足反比关系。
[0219]
图16为本技术实施例提供的确定第一参数的第四种流程示意图。如图16所示,本技术实施例中,步骤s210还包括以下步骤s2101-s2103:
[0220]
s2101:基于第一参数与相对深度差异、基准深度值之间的反比拟合关系,计算第二参数。
[0221]
其中,第二参数是未经过归一化处理的第一参数。
[0222]
s2102:从各个角点的第二参数中确定第二参数的最大值。
[0223]
s2103:基于优化关系式将第二参数的最大值优化为第一预设值,以及,基于第一
预设值优化其余角点的第二参数,得到各个角点第一参数。
[0224]
对于第一图形中不存在相互平行的对边的情况,为了提高第一参数的表达能力,可以将最大的第一参数缩小至第一预设值,其他的第一参数缩小至比第一预设值更小的数值,第一预设值优选为1。
[0225]
具体的计算公式如以下第六公式:
[0226]
zc′
=z
预设
+zc″‑zmax


[0227]
其中,zc′
表示第一参数,z
预设
表示第一预设值,zc″
表示第二参数,z
max
表示第二参数的最大值。
[0228]
由第六公式可知,在zc″
=z
max
时,zc′
=z
预设
,在zc″
<z
max
时,zc′
<z
预设

[0229]
本技术实施例中,对第二参数进行归一化处理,最终得到第一参数,可以减小各个第一参数之间的分散性,使得最大的第一参数等于1,方便进行后续的计算。
[0230]
图17为本技术实施例提供的确定第一参数的第五种流程示意图。如图17所示,本技术实施例中,步骤s200还包括以下步骤s211-s212:
[0231]
s211:当拍摄图像的相机为深度相机时,获取深度相机输出的每个角点的真实深度值。
[0232]
其中,深度相机是可以检测出拍摄空间内物理的距离信息(深度)的相机,本技术实施例中,在已知深度之后,可以直接基于深度与第一参数之间的关系,计算出第一参数,可以提高第一参数的准确度。深度相机例如可以是tof相机,本技术对此不做具体限定。
[0233]
s212:基于第一参数与真实深度值之间的反比拟合关系,计算每个角点的第一参数。
[0234]
这样,可以明确第一参数,最终基于第一公式计算出角点的三维空间坐标。
[0235]
图18为本技术实施例提供的文档矫正对比示意图,如图18所示,图像(a)是相机对尺寸为a4的纸质文档进行拍摄得到的图像,为矫正前图片,图像(b)为基于二维像素坐标确定宽高比的矫正结果,图像(c)为基于本技术实施例方法确定宽高比的矫正结果。
[0236]
本技术实施例中,以如下矩阵作为相机内参进行示例性介绍,并且图像(a)是对尺寸为a4的直至文档拍摄的图像,图像(a)的二维坐标(u,v)具体为:角点a(795,1188)、角点b(2021,1170)、角点c(2226,2901)、角点d(247,2866)。
[0237]
示例相机内参:
[0238][0239]
基于本技术实施例的方法计算出各角点对应的第一参数zc'分别为:0.796568、0.810889、0.990514、1,这样,基于第五公式可以求出四个角点的三维空间坐标如下:
[0240]
a:(-0.3697,-0.0931,0.7966);b:(0.0165,-0.0936,0.8109);c:(0.1420,0.5780,0.9905);d:(-0.6455,0.5693,1.0)。
[0241]
之后,基于三维空间坐标两点间距离公式,可以计算出上述三维空间坐标对应的估计宽高比为0.75。而通过三维坐标计算宽高比为0.919,已知a4尺寸纸张的宽高比为0.707,通过比较可以发现,基于本技术实施例的方法计算的宽高比,与文档的真实宽高比差异较小,准确度高。
[0242]
另外,本技术实施例提供的矫正方法在计算估计宽高比是不需要调用深度模型,可以缩短矫正时长和减少功耗,能够提升用户体验。
[0243]
本技术实施例可以根据上述方法示例对上述电子设备进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本技术实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0244]
本技术实施例还提供了一种用于实现手机等电子设备功能的软件装置,包括:获取模块,用于获取图像中的文档的四个角点的二维像素坐标,以及获取拍摄图像的相机的相机内参;估计模块,用于确定相机的估计外参,以及确定四个角点的第一参数,第一参数是表示拍摄图像时相机与角点之间的相对远近关系的参数;第一计算模块,用于基于二维像素坐标、相机内参、估计外参以及第一参数,计算四个角点的三维空间坐标;第二计算模块,用于基于四个角点的三维空间坐标计算文档的估计宽高比;矫正模块,用于基于估计宽高比对图像中的文档进行矫正,得到目标图片。
[0245]
本技术实施例还提供了一种用于实现手机等电子设备功能的硬件装置。如图19所示,用于实现电子设备功能的文档矫正装置可以包括:显示屏1001、存储器1002、处理器1003和通信模块1004。上述各器件可以通过一个或多个通信总线1005连接。显示屏1001可以包括显示面板10011和触摸传感器10012,其中,显示面板10011用于显示图像,触摸传感器10012可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型,通过显示面板10011提供与触摸操作相关的视觉输出。处理器1003可以包括一个或多个处理单元,例如:处理器1003可以包括应用处理器,调制解调处理器,图形处理器,图像信号处理器,控制器,视频编解码器,数字信号处理器,基带处理器,和/或神经网络处理器等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。存储器1002与处理器1003耦合,用于存储各种软件程序和/或计算机指令,存储器1002可包括易失性存储器和/或非易失性存储器。当处理器执行计算机指令时,使电子设备可执行上述方法实施例中手机执行的各个功能或者步骤。
[0246]
本技术实施例还提供一种芯片系统,该芯片系统包括至少一个处理器和至少一个接口电路。处理器和接口电路可通过线路互联。例如,接口电路可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路可用于向其它装置发送信号。示例性的,接口电路可读取存储器中存储的指令,并将该指令发送给处理器。当所述指令被处理器执行时,可使得电子设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本技术实施例对此不作具体限定。
[0247]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在上述电子设备(如图5所示的电子设备100)上运行时,使得该电子设备执行上述方法实施例中手机执行的各个功能或者步骤。
[0248]
本技术实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述方法实施例中手机执行的各个功能或者步骤。
[0249]
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述
功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0250]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0251]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0252]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0253]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0254]
以上内容,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1