图像矫正提示方法和装置、用户终端和存储介质
技术领域
本公开涉及光学字符识别领域,特别涉及一种图像矫正提示方法和装置、用户终端和存储介质。
背景技术
OCR(Optical Character Recognition,光学字符识别)技术是一种文字识别技术,可以将数字图片中出现的文本检测并识别出来,变成计算机能够接受并存储的格式,如字符串。光学字符识别技术有十分多的落地场景,如车牌识别,身份证识别等等,可以减少人工录入的步骤。
发明内容
申请人发现:相关技术在在识别身份证,银行卡等任务中,一般场景下都是用户拿着手机,使用手机的摄像头进行采集,并识别出结果。由于用户采集的时候,摄像头和证件的角度问题,可能导致无法识别,所以需要提示用户进行一定的调整,目前使用较多的方案是在使用边框来提示用户。即利用LSD(Line Segment Detector,直线段检测算法,一种直线提取算法)或者HED(Holistically-Nested Edge Detection,整体嵌套边缘检测,一种端对端的边缘检测算法)等检测直线的算法来检测证件的四条边,将检测出的边框变成绿色,当所有边框都是绿色的时候就是可以识别的情况。
相关技术利用四条边框来提示用户的方案,对于用户而言只是一个简单的判断手段,无法让用户得知无法识别的真正原因,以及无法根据当前的状态去提示用户该怎么样去旋转证件使得能够识别。
鉴于以上技术问题中的至少一项,本公开提供了一种图像矫正提示方法和装置、用户终端和存储介质,在用户使用相机识别证件等被拍摄物时,可以提示用户如何进行操作。
根据本公开的一个方面,提供一种图像矫正提示方法,包括:
获取被拍摄物图像;
计算图像中被拍摄物特征点的像素坐标;
根据图像中被拍摄物特征点的像素坐标、被拍摄物特征点的实际坐标,确定被拍摄物矫正量;
输出被拍摄物矫正量,以提示用户对被拍摄物进行矫正。
在本公开的一些实施例中,所述图像矫正提示方法还包括:
根据被拍摄物矫正量对被拍摄物图像进行矫正。
在本公开的一些实施例中,所述被拍摄物矫正量包括被拍摄物旋转角度和被拍摄物平移距离中的至少一项。
在本公开的一些实施例中,所述根据图像中被拍摄物特征点的像素坐标、被拍摄物特征点的实际坐标,确定被拍摄物矫正量包括:
获取相机内参矩阵;
根据图像中被拍摄物特征点的像素坐标、相机内参矩阵和被拍摄物特征点的实际坐标,确定相机外参矩阵,其中,所述相机外参矩阵包括旋转矩阵和平移矩阵中的至少一项;
根据所述相机外参矩阵确定被拍摄物矫正量。
在本公开的一些实施例中,所述相机内参矩阵包括在横轴和纵轴上每个像素所占的长度单位、相机焦距点坐标和镜头畸变参数。
在本公开的一些实施例中,所述获取相机内参矩阵包括:从用户终端系统接口获取相机内参矩阵。
在本公开的一些实施例中,所述获取相机内参矩阵包括:采用图片尺寸计算相机内参矩阵。
在本公开的一些实施例中,所述采用图片尺寸计算相机内参矩阵包括:
根据图片尺寸计算相机焦距和图像中心坐标;
根据相机焦距和图像中心坐标确定相机内参矩阵。
在本公开的一些实施例中,所述根据图像中被拍摄物特征点的像素坐标、相机内参矩阵和被拍摄物特征点的实际坐标,确定相机外参矩阵包括:
根据相机内参矩阵将图像中被拍摄物特征点的像素坐标转换为被拍摄物特征点在相机坐标系下的坐标;
根据被拍摄物特征点的实际坐标,与被拍摄物特征点在相机坐标系下的坐标确定相机外参矩阵。
在本公开的一些实施例中,所述根据所述相机外参矩阵确定被拍摄物矫正量包括以下步骤的至少一项:
根据旋转矩阵确定被拍摄物旋转角度;
根据平移矩阵确定被拍摄物平移距离。
在本公开的一些实施例中,所述被拍摄物为证件。
在本公开的一些实施例中,所述被拍摄物特征点为被拍摄物顶点或边框。
根据本公开的另一方面,提供一种图像矫正提示装置,包括:
图像获取模块,用于获取被拍摄物图像;
像素坐标计算模块,用于计算图像中被拍摄物特征点的像素坐标;
矫正量确定模块,用于根据图像中被拍摄物特征点的像素坐标、被拍摄物特征点的实际坐标,确定被拍摄物矫正量;
矫正量提示模块,用于输出被拍摄物矫正量,以提示用户对被拍摄物进行矫正。
在本公开的一些实施例中,所述图像矫正提示装置用于执行实现如上述任一实施例所述的图像矫正提示方法的操作。
根据本公开的另一方面,提供一种图像矫正提示装置,包括:
存储器,用于存储指令;
处理器,用于执行所述指令,使得所述图像矫正提示装置执行实现如上述任一实施例所述的图像矫正提示方法的操作。
根据本公开的另一方面,提供一种用户终端,包括如上述任一实施例所述的图像矫正提示装置。
根据本公开的另一方面,提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如上述任一实施例所述的图像矫正提示方法。
本公开在用户使用相机识别证件等被拍摄物时,可以提示用户如何进行操作,以提高被拍摄物的识别率。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1和图2为相关技术使用边框来提示用户是否可以识别证件的示意图。
图3为本公开图像矫正提示方法一些实施例的示意图。
图4为本公开一些实施例中获取的被拍摄物图像的示意图。
图5为本公开图像矫正提示装置一些实施例的示意图。
图6为本公开一些实施例中矫正量确定模块的示意图。
图7为本公开图像矫正提示装置另一些实施例的示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
申请人发现:相关技术在识别身份证、银行卡等任务中,一般场景下都是用户拿着手机,使用手机的摄像头进行采集,并识别出结果。由于用户采集的时候,摄像头和证件的角度问题,可能导致无法识别,所以需要提示用户进行一定的调整,目前使用较多的方案是在使用边框来提示用户。图1和图2为相关技术使用边框来提示用户是否可以识别证件的示意图。如图1和图2所示,利用LSD或者HED等检测直线的算法来检测证件的四条边,将检测出的边框变成绿色,当所有边框都是绿色的时候就是可以识别的情况。
申请人还发现:在使用手机端调用OCR识别证件的场景下,经常会出现用户的镜头与证件卡片的角度太大,这种情况下,虽然OCR系统使用一些通过关键点透视变换的方法将图片矫正到正面,不过由于透视变换会损失一些清晰度,所以最后矫正的结果输入到后面的检测识别模型后效果可能不尽如人意。
鉴于以上技术问题中的至少一项,本公开提供了一种图像矫正提示方法和装置、用户终端和存储介质,在用户使用相机识别证件等被拍摄物、且出现用户的镜头与证件卡片的角度太大的情况下,可以提示用户如何进行操作,以便使得证件等被拍摄物被识别。
图3为本公开图像矫正提示方法一些实施例的示意图。优选的,本实施例可由本公开图像矫正提示装置执行,其中,所述图像矫正提示装置可以设置在手机等用户终端。该方法包括以下步骤:
步骤1,获取被拍摄物图像。
在本公开的一些实施例中,所述被拍摄物可以为证件、银行卡等物品。
步骤2,计算图像中被拍摄物特征点的像素坐标。
在本公开的一些实施例中,步骤2可以包括:通过直线提取算法(例如HED算法)或直线提取算法(例如LSD算法)计算图像中被拍摄物特征点的像素坐标。
在本公开的一些实施例中,所述被拍摄物特征点可以为被拍摄物顶点或被拍摄物边框。
步骤3,根据图像中被拍摄物特征点的像素坐标、被拍摄物特征点的实际坐标,确定被拍摄物矫正量。
在本公开的一些实施例中,所述被拍摄物矫正量可以包括被拍摄物旋转角度和被拍摄物平移距离中的至少一项。
在本公开的一些实施例中,步骤3可以包括步骤31-步骤33,其中:
步骤31,获取相机内参矩阵。
在本公开的一些实施例中,所述相机内参矩阵可以包括在横轴和纵轴上每个像素所占的长度单位、相机焦距点坐标和镜头畸变参数。
在本公开的一些实施例中,步骤31可以包括:从用户终端系统接口获取相机内参矩阵。
在本公开的一些实施例中,步骤31可以包括:在无法从用户终端系统接口获取相机内参矩阵的情况下,采用图片尺寸计算相机内参矩阵。
在本公开的一些实施例中,所述采用图片尺寸计算相机内参矩阵的步骤可以包括:根据图片尺寸计算相机焦距和图像中心坐标;根据相机焦距和图像中心坐标确定相机内参矩阵。
在本公开的一些实施例中,所述根据相机焦距和图像中心坐标确定的相机内参矩阵可以为
其中,focal为相机焦距,center为图像中心坐标。
步骤32,根据图像中被拍摄物特征点的像素坐标、相机内参矩阵和被拍摄物特征点的实际坐标,确定相机外参矩阵,其中,所述相机外参矩阵可以包括旋转矩阵和平移矩阵中的至少一项。
在本公开的一些实施例中,由于在同一个场景下,被拍摄物(例如证件、身份证)的大小尺寸是固定的,所以步骤32可以包括:通过PNP算法,利用之前求出的证件四个顶点在图片中的坐标位置、相机内参、以及证件四个顶点在真实世界中的位置关系求出当前相机的外参矩阵,即从世界坐标系到相机坐标系的变换矩阵,外参矩阵可以包含一个旋转矩阵R和一个平移矩阵T,分别表示从世界坐标系到相机坐标系所需要进行的空间旋转操作和平移操作。其中,PNP(Pespective-N-Point,n点透视问题)算法,通过已知的n个空间3D点与图像2D点对应的点对,计算相机位姿、或者物体位姿。PNP问题主要是就是指通过世界中的N个特征点与图像中的N个像素点,计算其投影关系,从而获取相机姿态,常用的PNP算法有P3P(Pespective-3-Point,3点透视问题)算法,AP3P(An Efficient Algebraic Solution tothe Perspective-Three-Point Problem,3点透视问题有效代数解)算法以及EPNP(Efficient Perspective-n-Point,高效n点透视问题)算法等。
在本公开的一些实施例中,步骤32可以包括:
步骤321,根据相机内参矩阵将图像中被拍摄物特征点的像素坐标转换为被拍摄物特征点在相机坐标系下的坐标。
步骤322,根据被拍摄物特征点的实际坐标,与被拍摄物特征点在相机坐标系下的坐标,采用OpenCV的solvePnP确定相机外参矩阵,其中,所述相机外参矩阵可以包括旋转矩阵和平移矩阵。
图4为本公开一些实施例中获取的被拍摄物图像的示意图。针对该被拍摄物图像执行本公开步骤1-步骤3,其中,本实施例中特征点为身份证的四个边框,根据步骤322的算法求得的外参向量为:
旋转向量Rotation Vector:
[[-0.51400294] [-0.3914553] [0.8484277]]
平移向量Translation Vector:
[[-1.50753143] [-59.77115217] [123.64485235]]
步骤33,根据所述相机外参矩阵(旋转矩阵和平移矩阵中的至少一项)确定被拍摄物矫正量。
在本公开的一些实施例中,步骤33可以包括步骤331-步骤332中的至少一项:
步骤331,根据旋转矩阵确定被拍摄物旋转角度。
在本公开的一些实施例中,所述旋转角度可以为当前相机视角与被拍摄物平面法向量的夹角。
在本公开的一些实施例中,步骤331可以包括:算出旋转和平移矩阵后,可通过矩阵的意义反推出旋转矩阵代表的在空间分别绕着三个坐标轴上的旋转角度。即假设这三个角度分别为θx,θy,θz,然后计算旋转矩阵,列出方程,求方程的解,推倒出当前的旋转角度θx,θy,θz。
在本公开的一些实施例中,假设旋转矩阵是
则根据旋转矩阵计算出角度:
步骤332,根据平移矩阵确定被拍摄物平移距离。
步骤4,输出被拍摄物矫正量(旋转角度和平移距离中的至少一项),以提示用户对被拍摄物进行矫正。
在本公开的一些实施例中,步骤4可以包括:当求出角度之后,用户终端可以利用这个旋转角度与用户进行交互,提示用户该如何变动相机与证件的相对位置,从而使得识别结果更加准确。
在本公开的一些实施例中,本公开图像矫正提示方法还可以包括:在求出旋转角度后设置一个预定阈值,若当前旋转角度大于预定阈值(即在镜头下的证件偏移角度较大)时,为了保证识别结果的准确率,OCR系统不再进行矫正等后面的一系列操作,等待用户调整角度拍出质量更好的图片再进行识别。
在本公开的一些实施例中,步骤4可以包括:用户界面上显示角度数值,同时在数值上加上颜色,角度越小颜色更靠近绿色,角度越大则颜色越靠近黑色。当旋转角度小于一个系统可接受的第二阈值时,角度数值为绿色并加粗。
在本公开的一些实施例中,所述图像矫正提示方法还可以包括:根据被拍摄物矫正量对被拍摄物图像进行矫正。
基于本公开上述实施例提供的图像矫正提示方法,在用户使用相机识别证件等被拍摄物的情况下,可以通过镜头与物体的角度与用户进行交互,提示用户如何进行正确操作使得镜头可以垂直正对物体,从而得到准确度更好的识别结果。
图5为本公开图像矫正提示装置一些实施例的示意图。如图5所示,本公开图像矫正提示装置可以包括图像获取模块51、像素坐标计算模块52、矫正量确定模块53和矫正量提示模块54,其中:
图像获取模块51,用于获取被拍摄物图像。
在本公开的一些实施例中,所述被拍摄物可以为证件、银行卡等物品。
像素坐标计算模块52,用于计算图像中被拍摄物特征点的像素坐标。
在本公开的一些实施例中,像素坐标计算模块52可以用于通过直线提取算法(例如HED算法)或直线提取算法(例如LSD算法)计算图像中被拍摄物特征点的像素坐标。
在本公开的一些实施例中,所述被拍摄物特征点可以为被拍摄物顶点或被拍摄物边框。
矫正量确定模块53,用于根据图像中被拍摄物特征点的像素坐标、被拍摄物特征点的实际坐标,确定被拍摄物矫正量。
在本公开的一些实施例中,所述被拍摄物矫正量可以包括被拍摄物旋转角度和被拍摄物平移距离中的至少一项。
图6为本公开一些实施例中矫正量确定模块的示意图。如图6所示,图5实施例的矫正量确定模块53可以包括内参矩阵获取单元531、外参矩阵获取单元532和矫正量获取单元533,其中:
内参矩阵获取单元531,用于获取相机内参矩阵。
在本公开的一些实施例中,所述相机内参矩阵可以包括在横轴和纵轴上每个像素所占的长度单位、相机焦距点坐标和镜头畸变参数。
在本公开的一些实施例中,内参矩阵获取单元531可以用于从用户终端系统接口获取相机内参矩阵。
在本公开的一些实施例中,内参矩阵获取单元531可以用于在无法从用户终端系统接口获取相机内参矩阵的情况下,采用图片尺寸计算相机内参矩阵。
在本公开的一些实施例中,内参矩阵获取单元531可以用于根据图片尺寸计算相机焦距和图像中心坐标;根据相机焦距和图像中心坐标确定相机内参矩阵。
在本公开的一些实施例中,内参矩阵获取单元531根据相机焦距和图像中心坐标确定的相机内参矩阵可以为
其中,focal为相机焦距,center为图像中心坐标。
外参矩阵获取单元532,用于根据图像中被拍摄物特征点的像素坐标、相机内参矩阵和被拍摄物特征点的实际坐标,确定相机外参矩阵,其中,所述相机外参矩阵可以包括旋转矩阵和平移矩阵中的至少一项。
在本公开的一些实施例中,由于在同一个场景下,被拍摄物(例如证件、身份证)的大小尺寸是固定的,外参矩阵获取单元532可以用于通过PNP算法,利用之前求出的证件四个顶点在图片中的坐标位置、相机内参、以及证件四个顶点在真实世界中的位置关系求出当前相机的外参矩阵,即从世界坐标系到相机坐标系的变换矩阵,外参矩阵可以包含一个旋转矩阵R和一个平移矩阵T,分别表示从世界坐标系到相机坐标系所需要进行的空间旋转操作和平移操作。
在本公开的一些实施例中,外参矩阵获取单元532可以用于根据相机内参矩阵将图像中被拍摄物特征点的像素坐标转换为被拍摄物特征点在相机坐标系下的坐标;根据被拍摄物特征点的实际坐标,与被拍摄物特征点在相机坐标系下的坐标,采用OpenCV的solvePnP确定相机外参矩阵,其中,所述相机外参矩阵可以包括旋转矩阵和平移矩阵。
矫正量获取单元533,用于根据所述相机外参矩阵(旋转矩阵和平移矩阵中的至少一项)确定被拍摄物矫正量。
在本公开的一些实施例中,矫正量获取单元533可以用于根据旋转矩阵确定被拍摄物旋转角度;和/或,根据平移矩阵确定被拍摄物平移距离。
在本公开的一些实施例中,所述旋转角度可以为当前相机视角与被拍摄物平面法向量的夹角。
在本公开的一些实施例中,矫正量获取单元533可以用于算出旋转和平移矩阵后,可通过矩阵的意义反推出旋转矩阵代表的在空间分别绕着三个坐标轴上的旋转角度。即假设这三个角度分别为θx,θy,θz,然后计算旋转矩阵,列出方程,求方程的解,推倒出当前的旋转角度θx,θy,θz。
在本公开的一些实施例中,假设旋转矩阵是
则矫正量获取单元533可以用于根据旋转矩阵计算出角度:
矫正量提示模块54,用于输出被拍摄物矫正量,以提示用户对被拍摄物进行矫正。
在本公开的一些实施例中,矫正量提示模块54可以用于当求出角度之后,用户终端可以利用这个旋转角度与用户进行交互,提示用户该如何变动相机与证件的相对位置,从而使得识别结果更加准确。
在本公开的一些实施例中,矫正量提示模块54可以用于在用户界面上显示角度数值,同时在数值上加上颜色,角度越小颜色更靠近绿色,角度越大则颜色越靠近黑色。当旋转角度小于一个系统可接受的第二阈值时,角度数值为绿色并加粗。
在本公开的一些实施例中,本公开图像矫正提示装置还可以用于在求出旋转角度后设置一个预定阈值,若当前旋转角度大于预定阈值(即在镜头下的证件偏移角度较大)时,为了保证识别结果的准确率,OCR系统不再进行矫正等后面的一系列操作,等待用户调整角度拍出质量更好的图片再进行识别。
在本公开的一些实施例中,本公开图像矫正提示装置还可以用于根据被拍摄物矫正量对被拍摄物图像进行矫正。
在本公开的一些实施例中,所述图像矫正提示装置用于执行实现如上述任一实施例(例如图3实施例)所述的图像矫正提示方法的操作。
图7为本公开图像矫正提示装置另一些实施例的示意图。如图7所示,本公开图像矫正提示装置可以包括存储器71和处理器72,其中:
存储器71,用于存储指令;
处理器72,用于执行所述指令,使得所述图像矫正提示装置执行实现如上述任一实施例(例如图3实施例)所述的图像矫正提示方法的操作。
基于本公开上述实施例提供的图像矫正提示装置,在用户使用相机识别证件等被拍摄物情况下,可以通过镜头与物体的角度与用户进行交互,提示用户如何进行正确操作使得镜头可以垂直正对物体,从而得到准确度更好的识别结果。
根据本公开的另一方面,提供一种用户终端,包括如上述任一实施例(例如图5-图7任一实施例)所述的图像矫正提示装置。
在本公开的一些实施例中,所述用户终端可以为手机、电脑、数码相机、PAD等智能终端。
基于本公开上述实施例提供的用户终端,在用户使用相机识别证件等被拍摄物情况下,可以通过镜头与物体的角度与用户进行交互,提示用户如何进行正确操作使得镜头可以垂直正对物体,从而得到准确度更好的识别结果。
根据本公开的另一方面,提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机指令,所述指令被处理器执行时实现如上述任一实施例(例如图3实施例)所述的图像矫正提示方法。
基于本公开上述实施例提供的计算机可读存储介质,在用户使用相机识别证件等被拍摄物的情况下,可以通过镜头与物体的角度与用户进行交互,提示用户如何进行正确操作使得镜头可以垂直正对物体,从而得到准确度更好的识别结果。
在上面所描述的图像矫正提示装置可以实现为用于执行本申请所描述功能的通用处理器、可编程逻辑控制器(PLC)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意适当组合。
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指示相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。