图像识别翻译方法、装置、设备及可读存储介质与流程

文档序号:17360524发布日期:2019-04-09 22:02阅读:174来源:国知局
图像识别翻译方法、装置、设备及可读存储介质与流程

本公开实施例涉及计算机技术领域,尤其涉及图像识别翻译方法、装置、设备及可读存储介质。



背景技术:

随着通用场景光学字符识别(ocr)技术的发展,图像翻译技术目前在业界已经得到了普遍应用,出现了各种翻译app并获得了大量下载。这些翻译app可以较好地解决一些生活中常见的横向场景文字翻译问题,如菜单翻译、横版书翻译等,但对竖向排版的文字如公交站牌、竖版文章等的翻译上却不尽人意。这主要是因为这些翻译app内带的ocr字符识别算法通常只能固定识别横向排版的文字,对竖向排版的公交站牌、竖版文章中的文字无法处理。

另外一个问题就是这些翻译app自动化程度普遍较低,需要用户手工圈定待翻译的文字部分作为输入,不能自动定位文字区域并予以识别。对于公交站牌、书页等文字密集分布的物体。这种交互方式意味着用户需要做大量的文字圈定工作,用户负担很重、体验不好。

因此,亟需一种无需手工圈定文字区域即可对横版以及竖版文字进行图像识别翻译的方法。



技术实现要素:

有鉴于此,本公开第一方面提供了一种图像识别翻译方法,包括:

对图像进行预处理,以得到图像中的文字被调整到规范姿态的版面,其中,所述规范姿态为所述文字的姿态与对图像的正面视角垂直坐标系一致;

对所述版面上的规范姿态的文字以字为单位进行识别和版面分析以将所述版面上的成行文字和成列文字分别定位;

以行和列为单位对规范姿态的文字进行检测以检测出成行文字和成列文字,并且以行和列为单位对检测出的成行文字和成列文字进行识别;

根据对检测出的成行文字和成列文字进行识别的识别结果对文字进行翻译,并且依据所述版面上的成行文字和成列文字的定位显示翻译结果以替换原文。

本公开第二方面提供了一种图像识别翻译装置,包括:

图像预处理模块,被配置为对图像进行预处理,以得到图像中的文字被调整到规范姿态的版面,其中,所述规范姿态为所述文字的姿态与对图像的正面视角垂直坐标系一致;

版面分析模块,被配置为对所述版面上的规范姿态的文字以字为单位进行识别和版面分析以将所述版面上的成行文字和成列文字分别定位;

行列文字检测及识别模块,被配置为以行和列为单位对规范姿态的文字进行检测以检测出成行文字和成列文字,并且以行和列为单位对检测出的成行文字和成列文字进行识别;

翻译及排版模块,被配置为根据对检测出的成行文字和成列文字进行识别的识别结果对文字进行翻译,并且依据所述版面上的成行文字和成列文字的定位显示翻译结果以替换原文。

本公开第三方面提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如第一方面所述的方法。

本公开第四方面提供了一种可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如第一方面所述的方法。

在本公开实施方式中,通过对图像进行预处理,以得到图像中的文字被调整到规范姿态的版面,其中,所述规范姿态为所述文字的姿态与对图像的正面视角垂直坐标系一致;对所述版面上的规范姿态的文字以字为单位进行识别和版面分析以将所述版面上的成行文字和成列文字分别定位;以行和列为单位对规范姿态的文字进行检测以检测出成行文字和成列文字,并且以行和列为单位对检测出的成行文字和成列文字进行识别;根据对检测出的成行文字和成列文字进行识别的识别结果对文字进行翻译,并且依据所述版面上的成行文字和成列文字的定位显示翻译结果以替换原文,可以在“图像预处理”与“翻译”两个环节之间加入自动版面分析,能自动框选图像中的文字区域,从而大幅度减轻了用户手工框选的负担。而且,能够自动检测和识别图片中的成行文字与成列文字,从而比相关技术中的翻译app的应用场景更为广阔。在“翻译”完成之后,本公开实施方式又提出了版面渲染功能,能将版面上的每行文字的翻译结果渲染到版面上原文的行列位置,替换掉原来的文字。处理所有的成行文字和成列文字后,可以最终实现将整个版面的翻译结果同时展示给用户。

即,本公开实施方式的图像识别翻译方案适用于任何文字横排版和/或竖排版的场景,可以对横排版和/或竖排版的文字进行通用的检测和识别,而且可以对图像上的全部文字区域进行自动圈定、识别、翻译、排版,从而将用户负担降至最低。

本公开的这些方面或其他方面在以下实施例的描述中会更加简明易懂。

附图说明

为了更清楚地说明本公开实施例或相关技术中的技术方案,下面将对示例性实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些示例性实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出根据本公开一实施方式的图像识别翻译方法的流程图;

图2示出根据本公开一实施方式的图像识别翻译方法中的步骤s101的一个示例的流程图;

图3示出根据本公开一实施方式的图像识别翻译方法的步骤s102的一个示例的流程图;

图4示出根据本公开一实施方式的图像识别翻译方法的步骤s104的一个示例的流程图;

图5示出根据本公开一实施方式的图像识别翻译装置的结构框图;

图6示出根据本公开一实施方式的图像识别翻译装置的图像预处理模块501的一个示例的结构框图;

图7示出根据本公开一实施方式的图像识别翻译装置的版面分析模块502的一个示例的结构框图;

图8示出根据本公开一实施方式的图像识别翻译装置的翻译及排版模块504的一个示例的结构框图;

图9示出根据本公开一实施方式的图像识别翻译方法的应用场景的示意图;

图10示出根据本公开另一实施方式的图像识别翻译方法的应用场景的示意图;

图11示出根据本公开一实施方式的设备的结构框图;

图12是适于用来实现根据本公开一实施方式的图像识别翻译方法的计算机系统的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开示例性实施例中的附图,对本公开示例性实施例中的技术方案进行清楚、完整地描述。

在本公开的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

下面将结合本公开示例性实施例中的附图,对本公开示例性实施例中的技术方案进行清楚、完整地描述,显然,所描述的示例性实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。.

图1示出根据本公开一实施方式的图像识别翻译方法的流程图。该方法可以包括步骤s101、s102、s103和s104。

在步骤s101中,对图像进行预处理,以得到图像中的文字被调整到规范姿态的版面,其中,规范姿态为所述文字的姿态与对图像的正面视角垂直坐标系一致。

在步骤s102中,对版面上的规范姿态的文字以字为单位进行识别和版面分析以将版面上的成行文字和成列文字分别定位。

在步骤s103中,以行和列为单位对规范姿态的文字进行检测以检测出成行文字和成列文字,并且以行和列为单位对检测出的成行文字和成列文字进行识别。

在步骤s104中,根据对检测出的成行文字和成列文字进行识别的识别结果对文字进行翻译,并且依据版面上的成行文字和成列文字的定位显示翻译结果以替换原文。

在本公开的一个实施方式中,成行文字指的是横向排版的文字,成列文字指的是竖向排版的文字。

在本公开的一个实施方式中,对版面上的规范姿态的文字以字为单位进行识别和版面分析,指的是对经过预处理的图像进行智能版面分析,可以分析出版面上的成行文字和成列文字,并且可以逐字识别出初始状态为成行文字的成行文字。将版面上的成行文字和成列文字分别定位指的是可以确定成行文字和成列文字的位置,方便在翻译后排版时进行处理。

在本公开的一个实施方式中,步骤s103包括:通过同一种区域级别检测算法来检测成行文字以及成列文字。在本公开的一个实施方式中,步骤s103还包括:通过同一种识别算法以行和列为单位来识别成行文字以及成列文字,其中,在对成列文字进行识别时,通过将成列文字整体逆时针旋转90度以转换为字顶朝向为左方的成行文字,以行为单位进行识别。

在本公开的一个实施方式中,对成行文字以及成列文字的检测是在图像预处理步骤对齐纠正后的图像上再做一遍文字检测,这样可以保证检测框方向是横平竖直的并且边界更加精准。由于文字区域已经对齐,这里没有必要再进行像素级别的分析,而是可以用patch(区域)级别的检测算法如单次检测器(ssd)来完成。ssd的原理可以从相关技术中获知,本公开对此不再赘述。注意,这里的检测算法的特点在于使用同一种ssd检测算法来检测成行文字以及成列文字,ssd对文字方向不敏感的特点保证了横排文字样本和竖排文字样本都可以混合在一起来训练其模型。因此,在本公开的实施方式中,以行和列为单位对规范姿态的文字进行检测以检测出成行文字和成列文字指的是采用统一的检测算法框架来检测成行文字和成列文字。此时的成行文字和成列文字的检测是以行和列为单位,而非以像素或字符为单位。

在本公开的一个实施方式中,以行和列为单位对检测出的成行文字和成列文字进行识别指的是采用统一的识别算法框架来识别成行文字和成列文字,而不会分别采用不同的算法框架来识别成行文字和成列文字。在本公开的一个示例中,对检测出的成行文字和成列文字进行识别指的算法的特点在于使用同一种识别算法框架来检测成行文字以及成列文字。例如,可以采用cnn+lstm(卷积神经网络+长短期记忆网络)的算法,该算法的原理可以从相关技术中获知,本公开对此不再赘述。该算法框架为了做到对成行文字与成列文字的兼容识别,可以结合前述的智能版面分析步骤s102的结果对成行文字和成列文字的检测结果进行以下处理:

a)如果是成行文字,可以直接送入cnn+lstm文字行识别模型来训练,lstm扫描的方向为从左到右扫描;

b)如果是成列文字,需要将文字patch逆时针旋转90度后再用来训练文字行识别模型。lstm扫描的方向仍然为从左到右扫描,只是这里对一行文字中的每个字而言,它是一列文字逆时针旋转了90度的样本,即同一个字现在有两种样本:a)中的是正常样本,b)中是旋转后的样本。对于识别来说,样本旋转对其没有影响,旋转后的样本与不旋转的样本同等地可以用来训练识别模型。

在本公开的实施方式中,使用同一种识别算法框架来识别成行文字和成列文字的好处是不用为成行文字与成列文字分别训练识别模型,只用在样本送入模型训练前做一些旋转处理即可,代价比较小,模型个数与总大小却可以得到节省。

在本公开的一个实施方式中,对文字进行翻译的方案可以是相关技术中已知的方案,本公开对此不再赘述。在本公开的一个实施方式中,依据版面上的成行文字和成列文字的定位显示翻译结果以替换原文指的是将翻译结果的文字按照原文的行或列的方式显示在对应的原文所载的位置处并替换原文。

在本公开实施方式中,通过对图像进行预处理,以得到图像中的文字被调整到规范姿态的版面,其中,规范姿态为文字的姿态与对图像的正面视角垂直坐标系一致;对版面上的规范姿态的文字以字为单位进行识别和版面分析以将版面上的成行文字和成列文字分别定位;以行和列为单位对规范姿态的文字进行检测以检测出成行文字和成列文字,并且以行和列为单位对检测出的成行文字和成列文字进行识别;根据对检测出的成行文字和成列文字进行识别的识别结果对文字进行翻译,并且依据版面上的成行文字和成列文字的定位显示翻译结果以替换原文,可以在“图像预处理”与“翻译”两个环节之间加入自动版面分析,能自动框选图像中的文字区域,从而大幅度减轻了用户手工框选的负担。而且,能够自动检测和识别图片中的成行文字与成列文字,从而比相关技术中的翻译app的应用场景更为广阔。在“翻译”完成之后,本公开实施方式又提出了版面渲染功能,能将版面上的每行文字的翻译结果渲染到版面上原文的行列位置,替换掉原来的文字。处理所有的成行文字和成列文字后,可以最终实现将整个版面的翻译结果同时展示给用户。即,本公开实施方式的图像识别翻译方案适用于任何文字横排版和/或竖排版的场景,可以对横排版和/或竖排版的文字进行通用的检测和识别,而且可以对图像上的全部文字区域进行自动圈定、识别、翻译、排版,从而将用户负担降至最低。

图2示出根据本公开一实施方式的图像识别翻译方法中的步骤s101的一个示例的流程图。步骤s101包括步骤s201、s202和s203。

在步骤s201中,通过文字区域分割算法对图像上的各个像素点进行是否为文字的二分类训练及预测,输出各个像素点是否为文字的二值图像。

在步骤s202中,对二值图像进行连通域计算,并且去除二值图像中的文字行列中的噪音。

在步骤s203中,检测文字区域的倾斜角度,并且根据检测出的倾斜角度将文字区域调整到竖直方向,以得到图像中的文字被调整到规范姿态的版面。

在本公开的一个实施方式中,图像预处理可以包括3个步骤:文字区域分割步骤s201、文字行列去噪步骤s202和文字行列对齐步骤s203。

在本公开的一个示例中,文字区域分割可以采用基于深度学习的图像分割方法来对图像上的文字进行识别,这种识别具有像素级别的识别粒度。例如,文字区域分割可以采用基于深度学习卷积神经网络(cnn)的图像分割算法来完成。算法的思路是对一张输入图像上的每一个像素点进行是/不是文字的二分类训练与预测。训练样本可以为一批带像素粒度标注的诸如公交站牌或竖排版文章等图像,其中属于文字区域的像素点都标记为第1类,除文字外的其他区域上的像素点都标记为第2类。cnn模型训练后能具备相应的像素级别字符区域识别能力,也就是文字区域分割能力。在预测阶段,输入一张诸如公交站牌或竖排版文章等的图像给算法,算法能输出一张与输入图像同等分辨率的二值(0/1)图像,二值图像上的每一点即为对该像素是否为文字区域的二分类预测结果。

在本公开的一个示例中,文字行列去噪可以对文字区域分割结果进行提纯,去掉误识别的部分。例如,可以对二值图像进行连通域计算,然后采用图像连通域的膨胀/侵蚀算法来完成噪音的去除,这些算法可以采用相关技术中已知的图像处理算法。

在本公开的一个示例中,文字行列对齐可以将图像中倾斜(例如,拍照时拍得倾斜)的文字纠正到正面视角垂直坐标系上,方便后面的文字行列检测。例如,可以利用关键点检测来完成文字行列对齐。在本公开的一个示例中,文字行列对齐可以分两步:a)为每个文字连通域计算其外接矩形框(boundingbox),将连通域面积占其外接矩形框面积的比率定义为alpha,设定所有联通域的均值\hat{alpha}为优化指标。例如,优化方法为:在连通域图(二值图)上遍历,按1度的步长旋转图像从1度直至180度,最小的\hat{alpha}对应的角度即为偏斜角度。b)倾斜角度纠正:根据a)中计算得到的文字区域倾斜角度将诸如公交站牌或竖排版文章等的原图像进行等量的反向旋转,从而得到文字区域都在竖直方向上的纠正图像。

图3示出根据本公开一实施方式的图像识别翻译方法的步骤s102的一个示例的流程图。步骤s102包括步骤s301、s302和s303。

在步骤s301中,将版面上的全部成列文字改变位置和朝向以形成字顶朝向为左方的成行文字。

在步骤s302中,将成行文字分割为逐个字并按行分组进行逐字识别,并且将各组成行文字整体顺时针旋转90度以转换为对应的成列文字进行逐字识别,其中,仅字顶朝向为上方的字被识别出来。

在步骤s303中,确定各组成行文字的初始状态为成行文字还是为成列文字,其中,当一组成行文字被识别出的字数大于该组文字对应的成列文字被识别出的字数时,确定该组成行文字的初始状态为成行文字;并且当一组成行文字被识别出的字数小于该组文字对应的成列文字被识别出的字数时,确定该组成行文字的初始状态为成列文字。

在本公开的一个实施例中,步骤s301包括:检测版面的各个文字区域的宽度和高度,并且当检测到版面的文字区域的宽度小于高度时,确定该文字区域中的文字为成列文字,将成列文字整体逆时针旋转90度以转换为字顶朝向为左方的成行文字。

在本公开的一个实施例中,初始状态指的是图像上的文字的初始状态是成行文字还是成列文字,而在进行版面分析和逐字识别时,是需要将初始状态成列的文字转换为成行文字,或者将初始状态成行的文字转换为成列的文字。

在本公开的一个示例中,步骤s102可以被称作智能版面分析步骤,用于对图片上的文字排版进行分析,分别找到成行文字区域与成列文字区域。智能版面分析的作用是将版面上的成行文字与成列文字分别识别定位出来,方便后面排版时分别处理。图像预处理只能识别一片区域是否是文字区域,基于图像预处理的结果,智能版面分析可以通过下面的步骤判断该文字区域的初始状态是成行文字区域还是成列文字区域:a)先将所有成行文字和成列文字都拉到水平方向,也就是使文字行区域宽度>高度(初始状态的成行文字行可以不动,初始状态的成列文字行需要逆时针旋转90度);b)将一行文字切成逐个的字;c)将切好的一组字送入逐字识别器识别(该逐字识别器识别只能识别字顶向上的文字),能识别出的文字个数记为n1;将这组字旋顺时针转90度后再送入逐字识别器识别,能识别出的文字个数记为n2;d)如果n1>n2,则这行文字的初始状态是成行文字;如果n1<n2,则这行文字的初始状态是成列文字。

以下以图9和图10为例来说明确定各组成行文字的初始状态为成行文字还是为成列文字的方式。

如图9所示,图像901中示出了两列成列文字“北京欢迎您”901和“为人民服务”902以及两行成行文字“世界人民大团结”903和“北京您好”904。

在此示例中,认为图9所示的图像901已经过图像预处理。因此,可以对版面上的规范姿态的文字以字为单位进行识别和版面分析以将版面上的成行文字903和904和成列文字901和902分别定位。例如,可以将成列文字901和902逆时针旋转90度,以得到图10所示的图像1000。图像1000中,成列文字“北京欢迎您”901和“为人民服务”902分别被旋转为成行文字1001和1002,并且字顶朝向左方。将图像1000中的各行文字903、904、1001和1002按组切成逐个的字。将切好的一组字送入逐字识别器识别(该逐字识别器识别只能识别字顶向上的文字)。例如,能识别出的成行文字903的文字个数为6,将成行文字903旋顺时针转90度后再送入逐字识别器识别,能识别出的文字个数记为0,因此,可以确定这行文字的初始状态是成行文字。又例如,能识别出的成行文字1001的文字个数为0,将成行文字1001旋顺时针转90度后再送入逐字识别器识别,能识别出的文字个数记为5,因此,可以确定这行文字的初始状态是成列文字。本领域技术人员可以理解,图10所示的图像1000仅用于确定图像中的文字区域中是成行文字还是成列文字,而被用于对成行文字和成列文字定位。可以在图9所示的图像900中对成行文字和成列文字逐字定位。

图4示出根据本公开一实施方式的图像识别翻译方法的步骤s104的一个示例的流程图。步骤s104包括步骤s401和s402。

在步骤s401中,将版面上的成行文字和成列文字处的原文去除。

在步骤s402中,将原文的翻译结果按照与原文相同的字顶朝向逐字符地粘贴在原文所在位置处,并且调整翻译结果的字符大小以及行数或列数以使翻译结果适于显示在原文所在的显示区域中,其中,当原文为成行文字时,翻译结果为至少一行成行文字;并且当原文为成列文字时,翻译结果为至少一列成列文字。

在本公开的一个实施例中,可以基于智能版面分析的结果,对每个文字区域(无论是成行文字还是成列文字),我们可以将原文去除后将翻译结果在对应的原文位置贴上去。本领域技术人员可以理解,去除原文的算法可以从相关技术中获知,本公开对此不再赘述。由于成行文字与成列文字的走向不同,翻译结果中的文字顺序贴上去的方向也不同(即原文是成行文字,其翻译结果需要横向地逐字符贴上去;原文是成列文字,其翻译结果需要竖地向逐字符贴上去)。同时由于翻译结果文字的长短不一,调整(或渲染)字体的大小需要根据原来文字区域的大小来计算,主要需要计算渲染文字需要分为多少行来显示,以及渲染字体的宽度和高度参数。

在一个示例中,对翻译记过的智能排版算法可以用伪代码描述如下:

图5示出根据本公开一实施方式的图像识别翻译装置的结构框图。如图5所示的图像识别翻译装置包括图像预处理模块501、版面分析模块502、行列文字检测及识别模块503和翻译及排版模块504。

图像预处理模块501被配置为对图像进行预处理,以得到图像中的文字被调整到规范姿态的版面,其中,规范姿态为文字的姿态与对图像的正面视角垂直坐标系一致。

版面分析模块502被配置为对版面上的规范姿态的文字以字为单位进行识别和版面分析以将版面上的成行文字和成列文字分别定位。

行列文字检测及识别模块503被配置为以行和列为单位对规范姿态的文字进行检测以检测出成行文字和成列文字,并且以行和列为单位对检测出的成行文字和成列文字进行识别。

翻译及排版模块504被配置为根据行列文字检测及识别模块503对检测出的成行文字和成列文字进行识别的识别结果对文字进行翻译,并且依据版面上的成行文字和成列文字的定位显示翻译结果以替换原文。

在本公开的一个实施方式中,成行文字指的是横向排版的文字,成列文字指的是竖向排版的文字。

在本公开的一个实施方式中,对版面上的规范姿态的文字以字为单位进行识别和版面分析,指的是对经过预处理的图像进行智能版面分析,可以分析出版面上的成行文字和成列文字,并且可以逐字识别出初始状态为成行文字的成行文字。将版面上的成行文字和成列文字分别定位指的是可以确定成行文字和成列文字的位置,方便在翻译后排版时进行处理。

在本公开的一个实施方式中,行列文字检测及识别模块还被配置为:通过同一种区域级别检测算法来检测成行文字以及成列文字。在本公开的一个实施方式中,行列文字检测及识别模块还被配置为:通过同一种识别算法以行和列为单位来识别成行文字以及成列文字,其中,在对成列文字进行识别时,通过将成列文字整体逆时针旋转90度以转换为字顶朝向为左方的成行文字,以行为单位进行识别。

在本公开的一个实施方式中,对成行文字以及成列文字的检测是在图像预处理模块501对齐纠正后的图像上再做一遍文字检测,这样可以保证检测框方向是横平竖直的并且边界更加精准。由于文字区域已经对齐,这里没有必要再进行像素级别的分析,而是可以用patch(区域)级别的检测算法如单次检测器(ssd)来完成。ssd的原理可以从相关技术中获知,本公开对此不再赘述。注意,这里的检测算法的特点在于使用同一种ssd检测算法来检测成行文字以及成列文字,ssd对文字方向不敏感的特点保证了横排文字样本和竖排文字样本都可以混合在一起来训练其模型。因此,在本公开的实施方式中,以行和列为单位对规范姿态的文字进行检测以检测出成行文字和成列文字指的是采用统一的检测算法框架来检测成行文字和成列文字。此时的成行文字和成列文字的检测是以行和列为单位,而非以像素或字符为单位。

在本公开的一个实施方式中,以行和列为单位对检测出的成行文字和成列文字进行识别指的是采用统一的识别算法框架来识别成行文字和成列文字,而不会分别采用不同的算法框架来识别成行文字和成列文字。在本公开的一个示例中,对检测出的成行文字和成列文字进行识别指的算法的特点在于使用同一种识别算法框架来检测成行文字以及成列文字。例如,可以采用cnn+lstm(卷积神经网络+长短期记忆网络)的算法,该算法的原理可以从相关技术中获知,本公开对此不再赘述。该算法框架为了做到对成行文字与成列文字的兼容识别,可以结合前述的版面分析模块502的处理结果对成行文字和成列文字的检测结果进行以下处理:

a)如果是成行文字,可以直接送入cnn+lstm文字行识别模型来训练,lstm扫描的方向为从左到右扫描;

b)如果是成列文字,需要将文字patch逆时针旋转90度后再用来训练文字行识别模型。lstm扫描的方向仍然为从左到右扫描,只是这里对一行文字中的每个字而言,它是一列文字逆时针旋转了90度的样本,即同一个字现在有两种样本:a)中的是正常样本,b)中是旋转后的样本。对于识别来说,样本旋转对其没有影响,旋转后的样本与不旋转的样本同等地可以用来训练识别模型。

在本公开的实施方式中,使用同一种识别算法框架来识别成行文字和成列文字的好处是不用为成行文字与成列文字分别训练识别模型,只用在样本送入模型训练前做一些旋转处理即可,代价比较小,模型个数与总大小却可以得到节省。

在本公开的一个实施方式中,翻译及排版模块504对文字进行翻译的方案可以是相关技术中已知的方案,本公开对此不再赘述。在本公开的一个实施方式中,依据版面上的成行文字和成列文字的定位显示翻译结果以替换原文指的是将翻译结果的文字按照原文的行或列的方式显示在对应的原文所载的位置处并替换原文。

在本公开实施方式中,通过图像预处理模块,被配置为对图像进行预处理,以得到图像中的文字被调整到规范姿态的版面,其中,规范姿态为文字的姿态与对图像的正面视角垂直坐标系一致;版面分析模块,被配置为对版面上的规范姿态的文字以字为单位进行识别和版面分析以将版面上的成行文字和成列文字分别定位;行列文字检测及识别模块,被配置为以行和列为单位对规范姿态的文字进行检测以检测出成行文字和成列文字,并且以行和列为单位对检测出的成行文字和成列文字进行识别;翻译及排版模块,被配置为根据对检测出的成行文字和成列文字进行识别的识别结果对文字进行翻译,并且依据版面上的成行文字和成列文字的定位显示翻译结果以替换原文,可以在“图像预处理”与“翻译”两个环节之间加入自动版面分析,能自动框选图像中的文字区域,从而大幅度减轻了用户手工框选的负担。而且,能够自动检测和识别图片中的成行文字与成列文字,从而比相关技术中的翻译app的应用场景更为广阔。在“翻译”完成之后,本公开实施方式又提出了版面渲染功能,能将版面上的每行文字的翻译结果渲染到版面上原文的行列位置,替换掉原来的文字。处理所有的成行文字和成列文字后,可以最终实现将整个版面的翻译结果同时展示给用户。即,本公开实施方式的图像识别翻译方案适用于任何文字横排版和/或竖排版的场景,可以对横排版和/或竖排版的文字进行通用的检测和识别,而且可以对图像上的全部文字区域进行自动圈定、识别、翻译、排版,从而将用户负担降至最低。

图6示出根据本公开一实施方式的图像识别翻译装置的图像预处理模块501的一个示例的结构框图。图像预处理模块501包括文字区域分割子模块601、文字行列去噪子模块602和文字行列对齐子模块603。

文字区域分割子模块601被配置为通过文字区域分割算法对图像上的各个像素点进行是否为文字的二分类训练及预测,输出各个像素点是否为文字的二值图像。

文字行列去噪子模块602被配置为对二值图像进行连通域计算,并且去除二值图像中的文字行列中的噪音。

文字行列对齐子模块603被配置为检测文字区域的倾斜角度,并且根据检测出的倾斜角度将文字区域调整到竖直方向,以得到图像中的文字被调整到规范姿态的版面。

在本公开的一个示例中,文字区域分割可以采用基于深度学习的图像分割方案来对图像上的文字进行识别,这种识别具有像素级别的识别粒度。例如,文字区域分割可以采用基于深度学习卷积神经网络(cnn)的图像分割算法来完成。算法的思路是对一张输入图像上的每一个像素点进行是/不是文字的二分类训练与预测。训练样本可以为一批带像素粒度标注的诸如公交站牌或竖排版文章等图像,其中属于文字区域的像素点都标记为第1类,除文字外的其他区域上的像素点都标记为第2类。cnn模型训练后能具备相应的像素级别字符区域识别能力,也就是文字区域分割能力。在预测阶段,输入一张诸如公交站牌或竖排版文章等的图像给算法,算法能输出一张与输入图像同等分辨率的二值(0/1)图像,二值图像上的每一点即为对该像素是否为文字区域的二分类预测结果。

在本公开的一个示例中,文字行列去噪可以对文字区域分割结果进行提纯,去掉误识别的部分。例如,可以对二值图像进行连通域计算,然后采用图像连通域的膨胀/侵蚀算法来完成噪音的去除,这些算法可以采用相关技术中已知的图像处理算法。

在本公开的一个示例中,文字行列对齐可以将图像中倾斜(例如,拍照时拍得倾斜)的文字纠正到正面视角垂直坐标系上,方便后面的文字行列检测。例如,可以利用关键点检测来完成文字行列对齐。在本公开的一个示例中,文字行列对齐可以分两步:a)为每个文字连通域计算其外接矩形框(boundingbox),将连通域面积占其外接矩形框面积的比率定义为alpha,设定所有联通域的均值\hat{alpha}为优化指标。例如,优化方法为:在连通域图(二值图)上遍历,按1度的步长旋转图像从1度直至180度,最小的\hat{alpha}对应的角度即为偏斜角度。b)倾斜角度纠正:根据a)中计算得到的文字区域倾斜角度将诸如公交站牌或竖排版文章等的原图像进行等量的反向旋转,从而得到文字区域都在竖直方向上的纠正图像。

图7示出根据本公开一实施方式的图像识别翻译装置的版面分析模块502的一个示例的结构框图。版面分析模块502包括列调整子模块701、逐字识别子模块702和初始状态确定子模块703。

列调整子模块701被配置为将版面上的全部成列文字改变位置和朝向以形成字顶朝向为左方的成行文字。

逐字识别子模块702被配置为将成行文字分割为逐个字并按行分组进行逐字识别,并且将各组成行文字整体顺时针旋转90度以转换为对应的成列文字进行逐字识别,其中,仅字顶朝向为上方的字被识别出来。

初始状态确定子模块703被配置为确定各组成行文字的初始状态为成行文字还是为成列文字,其中,当一组成行文字被识别出的字数大于该组文字对应的成列文字被识别出的字数时,确定该组成行文字的初始状态为成行文字;并且当一组成行文字被识别出的字数小于该组文字对应的成列文字被识别出的字数时,确定该组成行文字的初始状态为成列文字。

在本公开的一个实施例中,列调整子模块701还被配置为:检测版面的各个文字区域的宽度和高度,并且当检测到版面的文字区域的宽度小于高度时,确定该文字区域中的文字为成列文字,将成列文字整体逆时针旋转90度以转换为字顶朝向为左方的成行文字。

在本公开的一个实施例中,初始状态指的是图像上的文字的初始状态是成行文字还是成列文字,而在进行版面分析和逐字识别时,是需要将初始状态成列的文字转换为成行文字,或者将初始状态成行的文字转换为成列的文字。

在本公开的一个示例中,版面分析模块502可以被称作智能版面分析模块,用于对图片上的文字排版进行分析,分别找到成行文字区域与成列文字区域。智能版面分析的作用是将版面上的成行文字与成列文字分别识别定位出来,方便后面排版时分别处理。图像预处理只能识别一片区域是否是文字区域,基于图像预处理的结果,智能版面分析模块可以通过下面的步骤判断该文字区域的初始状态是成行文字区域还是成列文字区域:a)先将所有成行文字和成列文字都拉到水平方向,也就是使文字行区域宽度>高度(初始状态的成行文字行可以不动,初始状态的成列文字行需要逆时针旋转90度);b)将一行文字切成逐个的字;c)将切好的一组字送入逐字识别器识别(该逐字识别器识别只能识别字顶向上的文字),能识别出的文字个数记为n1;将这组字旋顺时针转90度后再送入逐字识别器识别,能识别出的文字个数记为n2;d)如果n1>n2,则这行文字的初始状态是成行文字;如果n1<n2,则则这行文字的初始状态是成列文字。

图8示出根据本公开一实施方式的图像识别翻译装置的翻译及排版模块504的一个示例的结构框图。翻译及排版模块504包括原文去除子模块801和排版及调整子模块802。

原文去除子模块801被配置为将版面上的成行文字和成列文字处的原文去除。

排版及调整子模块802被配置为将原文的翻译结果按照与原文相同的字顶朝向逐字符地粘贴在原文所在位置处,并且调整翻译结果的字符大小以及行数或列数以使翻译结果适于显示在原文所在的显示区域中,其中,当原文为成行文字时,翻译结果为至少一行成行文字;并且当原文为成列文字时,翻译结果为至少一列成列文字。

在本公开的一个实施例中,可以基于智能版面分析的结果,对每个文字区域(无论是成行文字还是成列文字),我们可以将原文去除后将翻译结果在对应的原文位置贴上去。本领域技术人员可以理解,去除原文的算法可以从相关技术中获知,本公开对此不再赘述。由于成行文字与成列文字的走向不同,翻译结果中的文字顺序贴上去的方向也不同(即原文是成行文字,其翻译结果需要横向地逐字符贴上去;原文是成列文字,其翻译结果需要竖地向逐字符贴上去)。同时由于翻译结果文字的长短不一,调整(或渲染)字体的大小需要根据原来文字区域的大小来计算,主要需要计算渲染文字需要分为多少行来显示,以及渲染字体的宽度和高度参数。

在一个示例中,对翻译记过的智能排版算法可以用伪代码描述如下:

以上描述了图像识别翻译装置的内部功能和结构,在一个可能的设计中,该图像识别翻译装置的结构可实现为图像识别翻译设备,如图11中所示,该处理设备1100可以包括处理器1101以及存储器1102。

所述存储器1102用于存储支持图像识别翻译装置执行上述任一实施例中图像识别翻译方法的程序,所述处理器1101被配置为用于执行所述存储器1102中存储的程序。

所述存储器1102用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器1101执行。

所述处理器1101用于执行前述各方法步骤中的全部或部分步骤。

其中,所述图像识别翻译设备的结构中还可以包括通信接口,用于图像识别翻译设备与其他设备或通信网络通信。

本公开示例性实施例还提供了一种计算机存储介质,用于储存所述图像识别翻译装置所用的计算机软件指令,其包含用于执行上述任一实施例中图像识别翻译方法所涉及的程序。

图12是适于用来实现根据本公开一实施方式的图像识别翻译方法的计算机系统的结构示意图。

如图12所示,计算机系统1200包括中央处理单元(cpu)1201,其可以根据存储在只读存储器(rom)1202中的程序或者从存储部分1208加载到随机访问存储器(ram)1203中的程序而执行上述图1所示的实施方式中的各种处理。在ram1203中,还存储有系统1200操作所需的各种程序和数据。cpu1201、rom1202以及ram1203通过总线1204彼此相连。输入/输出(i/o)接口1205也连接至总线1204。

以下部件连接至i/o接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至i/o接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。

特别地,根据本公开的实施方式,上文参考图1描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行图1的数据处理方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。

附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。

作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。

以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1