手写内容去除方法、手写内容去除装置、存储介质转让专利

申请号 : CN202010072431.4

文献号 : CN111275139A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 何涛罗欢陈明权

申请人 : 杭州大拿科技股份有限公司

摘要 :

一种手写内容去除方法、手写内容去除装置和存储介质。手写内容去除方法包括:获取待处理文本页面的输入图像,其中,所述输入图像包括手写区域,所述手写区域包括手写内容;对所述输入图像进行识别,以确定所述手写区域中的所述手写内容;去除所述输入图像中的所述手写内容,以得到输出图像。

权利要求 :

1.一种手写内容去除方法,包括:

获取待处理文本页面的输入图像,其中,所述输入图像包括手写区域,所述手写区域包括手写内容;

对所述输入图像进行识别,以确定所述手写区域中的所述手写内容;

去除所述输入图像中的所述手写内容,以得到输出图像。

2.根据权利要求1所述的手写内容去除方法,其中,所述输入图像还包括文本印刷区域,所述文本印刷区域包括印刷内容,对所述输入图像进行识别,以确定所述手写区域中的手写内容,包括:利用区域识别模型对所述输入图像进行识别,以得到所述文本印刷区域和所述手写区域。

3.根据权利要求2所述的手写内容去除方法,其中,去除所述输入图像中的所述手写内容,以得到所述输出图像,包括:对所述手写区域进行标注,以得到手写区域标注框,其中,所述手写区域标注框包括所述手写区域;

从所述输入图像中切割去除所述手写区域标注框,以得到所述输出图像。

4.根据权利要求3所述的手写内容去除方法,其中,从所述输入图像中切割去除所述手写区域标注框,以得到所述输出图像,包括:从所述输入图像中切割去除所述手写区域标注框,以得到中间输出图像;

对所述中间输出图像进行二值化处理,以得到所述输出图像。

5.根据权利要求1所述的手写内容去除方法,其中,所述输入图像还包括文本印刷区域,所述文本印刷区域包括印刷内容,对所述输入图像进行识别,以确定所述手写区域中的手写内容,包括:利用区域识别模型对所述输入图像进行识别,以得到所述文本印刷区域和所述手写区域,利用像素识别模型对所述手写区域进行像素识别,以确定在所述手写区域中所述手写内容对应的手写内容像素。

6.根据权利要求5所述的手写内容去除方法,其中,去除所述输入图像中的所述手写内容,以得到所述输出图像,包括:获取替换像素值;

利用所述替换像素值替换所述手写内容像素的像素值,以从所述输入图像去除所述手写内容而得到所述输出图像。

7.根据权利要求6所述的手写内容去除方法,其中,利用所述替换像素的像素值替换所述手写内容像素的像素值,以从所述输入图像去除所述手写内容以得到所述输出图像,包括:利用所述替换像素的像素值替换所述手写内容像素的像素值,以从所述输入图像去除所述手写内容而得到中间输出图像;

对所述中间输出图像进行二值化处理,以得到所述输出图像。

8.根据权利要求6所述的手写内容去除方法,其中,所述替换像素值为所述手写区域中除了所述手写内容像素之外的任意一个像素的像素值;或者,所述替换像素值为所述手写区域中除了所述手写内容像素之外的所有像素的像素值的平均值。

9.根据权利要求2-8任一项所述的手写内容去除方法,其中,所述待处理文本页面为试卷或习题,所述印刷内容包括题干,所述手写内容包括答案。

10.根据权利要求1-8任一项所述的手写内容去除方法,其中,所述手写内容包括手写字符。

11.根据权利要求1-8任一项所述的手写内容去除方法,其中,获取所述待处理文本页面的输入图像包括:获取所述待处理文本页面的原始图像,其中,所述原始图像包括待处理文本区域;

对所述原始图像进行边缘检测,以确定所述原始图像中的所述待处理文本区域;

对所述待处理文本区域进行转正处理,以得到所述输入图像。

12.一种手写内容去除装置,包括:

存储器,用于非暂时性存储计算机可读指令;以及处理器,用于运行所述计算机可读指令,其中,所述计算机可读指令被所述处理器运行时执行根据权利要求1-11任一项所述的手写内容去除方法。

13.根据权利要求12所述的手写内容去除装置,还包括:图像获取部件,其中,所述图像获取部件用于获得作业图像,所述存储器还用于存储所述作业图像,所述处理器还用于读取并处理所述作业图像以得到输入图像。

14.一种存储介质,非暂时性地存储计算机可读指令,其中,当所述计算机可读指令由计算机执行时可以执行根据权利要求1-11任一项所述的手写内容去除方法。

说明书 :

手写内容去除方法、手写内容去除装置、存储介质

技术领域

[0001] 本公开的实施例涉及一种手写内容去除方法、手写内容去除装置和存储介质。

背景技术

[0002] 目前,经常发生学生忘记带作业或者丢失作业的情况,此时,家长或者学生可以向其他同学询问作业内容,然而,有时其他同学已经完成了相关作业内容,因此其他同学拍摄的作业的照片中包括该同学的答题内容,不便于该学生再次进行答题。此外,用户通过手机拍摄的作业照片往往由于拍摄环境光照的不同,会在作业照片中产生阴影等,直接打印该作业照片,则打印机会将作业照片中的阴影部分直接打印,浪费墨水,也影响阅读。

发明内容

[0003] 本公开至少一实施例提供一种手写内容去除方法,包括:获取待处理文本页面的输入图像,其中,所述输入图像包括手写区域,所述手写区域包括手写内容;对所述输入图像进行识别,以确定所述手写区域中的所述手写内容;去除所述输入图像中的所述手写内容,以得到输出图像。
[0004] 例如,在本公开一实施例提供的手写内容去除方法中,所述输入图像还包括文本印刷区域,所述文本印刷区域包括印刷内容,对所述输入图像进行识别,以确定所述手写区域中的手写内容,包括:利用区域识别模型对所述输入图像进行识别,以得到所述文本印刷区域和所述手写区域。
[0005] 例如,在本公开一实施例提供的手写内容去除方法中,去除所述输入图像中的所述手写内容,以得到所述输出图像,包括:对所述手写区域进行标注,以得到手写区域标注框,其中,所述手写区域标注框包括所述手写区域;从所述输入图像中切割去除所述手写区域标注框,以得到所述输出图像。
[0006] 例如,在本公开一实施例提供的手写内容去除方法中,从所述输入图像中切割去除所述手写区域标注框,以得到所述输出图像,包括:从所述输入图像中切割去除所述手写区域标注框,以得到中间输出图像;对所述中间输出图像进行二值化处理,以得到所述输出图像。
[0007] 例如,在本公开一实施例提供的手写内容去除方法中,所述输入图像还包括文本印刷区域,所述文本印刷区域包括印刷内容,对所述输入图像进行识别,以确定所述手写区域中的手写内容,包括:利用区域识别模型对所述输入图像进行识别,以得到所述文本印刷区域和所述手写区域,利用像素识别模型对所述手写区域进行像素识别,以确定在所述手写区域中所述手写内容对应的手写内容像素。
[0008] 例如,在本公开一实施例提供的手写内容去除方法中,去除所述输入图像中的所述手写内容,以得到所述输出图像,包括:获取替换像素值;利用所述替换像素值替换所述手写内容像素的像素值,以从所述输入图像去除所述手写内容而得到所述输出图像。
[0009] 例如,在本公开一实施例提供的手写内容去除方法中,利用所述替换像素的像素值替换所述手写内容像素的像素值,以从所述输入图像去除所述手写内容以得到所述输出图像,包括:利用所述替换像素的像素值替换所述手写内容像素的像素值,以从所述输入图像去除所述手写内容而得到中间输出图像;对所述中间输出图像进行二值化处理,以得到所述输出图像。
[0010] 例如,在本公开一实施例提供的手写内容去除方法中,所述替换像素值为所述手写区域中除了所述手写内容像素之外的任意一个像素的像素值;或者,所述替换像素值为所述手写区域中除了所述手写内容像素之外的所有像素的像素值的平均值。
[0011] 例如,在本公开一实施例提供的手写内容去除方法中,所述待处理文本页面为试卷或习题,所述印刷内容包括题干,所述手写内容包括答案。
[0012] 例如,在本公开一实施例提供的手写内容去除方法中,所述手写内容包括手写字符。
[0013] 例如,在本公开一实施例提供的手写内容去除方法中,获取所述待处理文本页面的输入图像包括:获取所述待处理文本页面的原始图像,其中,所述原始图像包括待处理文本区域;对所述原始图像进行边缘检测,以确定所述原始图像中的所述待处理文本区域;对所述待处理文本区域进行转正处理,以得到所述输入图像。
[0014] 本公开至少一实施例提供一种手写内容去除装置,包括:存储器,用于非暂时性存储计算机可读指令;以及处理器,用于运行所述计算机可读指令,其中,所述计算机可读指令被所述处理器运行时执行根据上述任一实施例所述的手写内容去除方法。
[0015] 例如,本公开一实施例提供的手写内容去除装置还包括:图像获取部件,所述图像获取部件用于获得作业图像,所述存储器还用于存储所述作业图像,所述处理器还用于读取并处理所述作业图像以得到输入图像。
[0016] 本公开至少一实施例提供一种存储介质,非暂时性地存储计算机可读指令,其中,当所述计算机可读指令由计算机执行时可以执行根据上述任一实施例所述的手写内容去除方法。

附图说明

[0017] 为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
[0018] 图1为本公开至少一实施例提供的一种手写内容去除方法的示意性流程图;
[0019] 图2A为本公开至少一实施例提供的一种原始图像的示意图;
[0020] 图2B为本公开至少一实施例提供的一种输出图像的示意图;
[0021] 图3为本公开至少一实施例提供的一种手写内容去除装置的示意性框图;
[0022] 图4为本公开至少一实施例提供的一种存储介质的示意图;
[0023] 图5为本公开至少一实施例提供的一种硬件环境的示意图。

具体实施方式

[0024] 为了使得本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0025] 除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
[0026] 为了保持本公开实施例的以下说明清楚且简明,本公开省略了部分已知功能和已知部件的详细说明。
[0027] 本公开至少一实施例提供一种手写内容去除方法、手写内容去除装置和存储介质。手写内容去除方法包括:获取待处理文本页面的输入图像,其中,输入图像包括手写区域,手写区域包括手写内容;对输入图像进行识别,以确定手写区域中的手写内容;去除输入图像中的手写内容,以得到输出图像。
[0028] 该手写内容去除方法能够有效去除输入图像中的手写区域内的手写内容,以便于输出新的页面以进行填写。此外,手写内容去除方法还可以将输入图像转化为方便打印的形式,以便于用户可以将输入图像打印为纸质形式进行填写。
[0029] 下面结合附图对本公开的实施例进行详细说明,但是本公开并不限于这些具体的实施例。
[0030] 图1为本公开至少一实施例提供的一种手写内容去除方法的示意性流程图;图2A为本公开至少一实施例提供的一种原始图像的示意图;图2B为本公开至少一实施例提供的一种输出图像的示意图。
[0031] 例如,如图1所示,本公开实施例提供的手写内容去除方法包括步骤S10至S12。
[0032] 如图1所示,首先,手写内容去除方法在步骤S10,获取待处理文本页面的输入图像。
[0033] 例如,在步骤S10中,输入图像包括手写区域,手写区域包括手写内容。输入图像可以为任何包括手写内容的图像。
[0034] 例如,输入图像可以为通过图像采集装置(例如,数码相机或手机等)拍摄的图像,输入图像可以为灰度图像,也可以为彩色图像。需要说明的是,输入图像是指以可视化方式呈现待处理文本页面的形式,例如待处理文本页面的图片等。
[0035] 例如,手写区域并没有固定的形状,而是根据手写内容而定,也就是说,具有手写内容的区域即为手写区域,手写区域可以为规则形状(例如,矩形等),也可以为不规则的形状。手写区域可以包括填充区域、手写的草稿或者其他手写标记的区域等。
[0036] 例如,输入图像还包括文本印刷区域,文本印刷区域包括印刷内容。文本印刷区域的形状也可以为规则形状(例如,矩形等),也可以为不规则的形状。在本公开的实施例中,以每个手写区域的形状为矩形和每个文本印刷区域的形状为矩形为例进行说明,本公开包括但不限于此。
[0037] 例如,待处理文本页面可以包括试卷、习题、表格、合同等。试卷可以为各个学科的试卷,例如,语文、数学、外语(例如,英语等),类似地,习题也可以为各个学科的习题集等;表格可以为各种类型的表格,例如,年终总结表、入职表、价格汇总表、申请表格等;合同可以包括劳动合同等。本公开对待处理文本页面的类型不作具体限制。
[0038] 例如,待处理文本页面可以为纸质形式的文本,也可以为电子形式的文本。例如,当待处理文本页面为试卷或习题时,印刷内容可以包括题干,手写内容可以包括用户(例如,学生、老师等)填写的答案(此时,答案为用户填写的答案,并不是正确答案或标准答案)、计算草稿或者其他手写标记等。印刷内容还可以包括各种符号、图形等;当待处理文本页面为入职表时,印刷内容可以包括“姓名”、“性别”、“民族”、“工作履历”等内容,而手写内容可以包括用户(例如,职工等)填写在入职表中的用户的姓名、性别(男或女)、民族和工作经历等手写信息。
[0039] 例如,待处理文本页面的形状可以为矩形等形状,输入图像的形状可以为规则形状(例如,平行四边形、矩形等),以便于进行打印。然而,本公开不限于此,在一些实施例中,输入图像也可以为不规则形状。
[0040] 例如,由于图像采集装置采集图像时图像可能会发生变形,从而输入图像的尺寸和待处理文本页面的尺寸不相同,然而本公开不限于此,输入图像的尺寸和待处理文本页面的尺寸也可以相同。
[0041] 例如,待处理文本页面包括印刷内容和手写内容,印刷内容可以为印刷得到的内容,手写内容为用户手写的内容,手写内容可以包括手写字符。
[0042] 需要说明的是,“印刷内容”不仅仅指代通过输入装置在电子设备上输入的文字、字符、图形等内容,在一些实施例中,当待处理文本页面为试卷或习题时,题干也可以是由用户手写的,此时,印刷内容则为印刷得到的用户手写的题干。
[0043] 例如,印刷内容可以包括各种语言的文字,例如,中文(例如,汉字或拼音)、英文、日文、法文、韩文等,此外,印刷内容还可以包括数字、各种符号(例如,大于符号、小于符号、加号、乘号等)和各种图形等。手写内容也可以为包括各种语言的文字、数字、各种符号和各种图形等。
[0044] 例如,在图2A所示的示例中,待处理文本页面100为习题,由四条边界线线(直线101A-101D)围成的区域表示待处理文本页面对应的待处理文本区域100。在该待处理文本区域100中,印刷区域包括题干区域,印刷内容可以包括各个题干,例如,“1.看钟面,写时间”、“2.在钟面上画出时针和分针”、“看一部电影大约要花1()30()”等,印刷内容还可以包括待处理文本区域100中的各个时钟图形、二维码图形等;手写区域包括手写答案区域,手写内容可以包括用户采用铅笔填写的答案,例如,在文本“我们一天在校时间约6(小时)”中,括号中的汉字“小时”为手写内容,在文本“一人唱一首歌要5分钟,9个人同时唱这一首歌要(5)分钟”中,括号中的数字“5”为手写内容。
[0045] 例如,输入图像可以包括多个手写内容和多个印刷内容。多个手写内容彼此间隔,多个印刷内容也彼此间隔。例如,多个手写内容中的部分手写内容可以相同(即手写内容的字符相同,然而手写内容的具体形状不相同);多个印刷内容中的部分印刷内容也可以相同。本公开不限于此,多个手写内容也可以彼此不相同,多个印刷内容也可以彼此不相同。如图2A所示,“练速度”和“练准确率”为彼此间隔的两个印刷内容,文本“吃午饭需要花20(分钟)”中的“分钟”和“做一套广播体操的时间约10“分钟””中的“分钟”为彼此间隔的两个手写内容,且该两个手写内容相同。
[0046] 例如,在一些实施例中,步骤S10可以包括:获取待处理文本页面的原始图像,其中,原始图像包括待处理文本区域;对原始图像进行边缘检测,以确定原始图像中的待处理文本区域;对待处理文本区域进行转正处理,以得到输入图像。
[0047] 例如,可以采用神经网络或基于OpenCV的边缘检测算法等方法对原始图像进行边缘检测,以确定待处理文本区域。例如,OpenCV为一种开源计算机视觉库,基于OpenCV的边缘检测算法包括Sobel、Scarry、Canny、Laplacian、Prewitt、Marr-Hildresh、scharr等多种算法。
[0048] 例如,对原始图像进行边缘检测,以确定原始图像中的待处理文本区域,可以包括:对原始图像进行处理,获得原始图像中灰度轮廓的线条图,其中,线条图包括多条线条;将线条图中相似的线条进行合并,得到多条初始合并线条,并根据多条初始合并线条确定一边界矩阵;将多条初始合并线条中相似的线条进行合并得到目标线条,并且将未合并的初始合并线条也作为目标线条,由此得到多条目标线条;根据边界矩阵,从多条目标线条中确定多条参考边界线;通过预先训练的边界线区域识别模型对原始图像进行处理,得到原始图像中待处理文本页面的多个边界线区域;针对每一边界线区域,从多条参考边界线中确定与该边界线区域对应的目标边界线;根据确定的多条目标边界线确定原始图像中待处理文本区域的边缘。
[0049] 例如,在一些实施例中,对原始图像进行处理,获得原始图像中灰度轮廓的线条图,包括:通过基于OpenCV的边缘检测算法对原始图像进行处理,获得原始图像中灰度轮廓的线条图。
[0050] 例如,将线条图中相似的线条进行合并,得到多条初始合并线条,包括:获取线条图中的长线条,其中,长线条为长度超过第一预设阈值的线条;从长线条中获取多组第一类线条,其中,第一类线条包括至少两个依次相邻的长线条,且任意相邻的两长线条之间的夹角均小于第二预设阈值;针对每一组第一类线条,将该组第一类线条中的各个长线条依次进行合并得到一条初始合并线条。
[0051] 例如,边界矩阵按照以下方式确定:对多条初始合并线条以及长线条中未合并的线条进行重新绘制,将重新绘制的所有线条中的像素点的位置信息对应到整个原始图像的矩阵中,将原始图像的矩阵中这些线条的像素点所在位置的值设置第一数值、这些线条以外的像素点所在位置的值设置为第二数值,从而形成边界矩阵。
[0052] 例如,将多条初始合并线条中相似的线条进行合并得到目标线条,包括:从多条初始合并线条中获取多组第二类线条,其中,第二类线条包括至少两个依次相邻的初始合并线条,且任意相邻的两初始合并线条之间的夹角均小于第三预设阈值;针对每一组第二类线条,将该组第二类线条中的各个初始合并线条依次进行合并得到一条目标线条。
[0053] 例如,第一预设阈值可以为2个像素的长度,第二预设阈值和第三预设阈值可以为15度。需要说明的是,第一预设阈值、第二预设阈值和第三预设阈值可以根据实际应用需求设置。
[0054] 例如,根据边界矩阵,从多条目标线条中确定多条参考边界线,包括:针对每一条目标线条,将该目标线条进行延长,根据延长后的该目标线条确定一线条矩阵,然后将该线条矩阵与边界矩阵进行对比,计算延长后的该目标线条上属于边界矩阵的像素点的个数,作为该目标线条的成绩,即将该线条矩阵与边界矩阵进行对比来判断有多少像素点落入到边界矩阵里面,也就是判断两个矩阵中有多少相同位置的像素点具有相同的第一数值例如255,从而计算成绩,其中,线条矩阵与边界矩阵的大小相同;根据各个目标线条的成绩,从多条目标线条中确定多条参考边界线。需要说明的是,成绩最好的目标线条的数量可能为多条,因此,根据各个目标线条的成绩,从多条目标线条中确定成绩最好的多条目标线条作为参考边界线。
[0055] 例如,线条矩阵按照以下方式确定:对延长后的目标线条或直线进行重新绘制,将重新绘制的线条中的像素点的位置信息对应到整个原始图像的矩阵中,将原始图像的矩阵中线条的像素点所在位置的值设置为第一数值、线条以外的像素点所在位置的值设置为第二数值,从而形成线条矩阵。
[0056] 例如,针对每一边界线区域,从多条参考边界线中确定与该边界线区域对应的目标边界线,包括:计算每一条参考边界线的斜率;针对每一个边界线区域,利用霍夫变换将该边界线区域转换为多条直线,并计算多条直线的平均斜率,再判断多条参考边界线中是否存在斜率与平均斜率相匹配的参考边界线,如果存在,将该参考边界线确定为与该边界线区域相对应的目标边界线;如果判断出多条参考边界线中不存在斜率与平均斜率相匹配的参考边界线,则针对该边界线区域转换得到的每一条直线,将该直线形成的线条矩阵与边界矩阵进行对比,计算该直线上属于边界矩阵的像素点的个数,作为该直线的成绩;将成绩最好的直线确定为与该边界线区域相对应的目标边界线;其中,线条矩阵与边界矩阵的大小相同。需要说明的是,如果成绩最好的直线有多条,则根据排序算法将其中最先出现的一条直线作为最佳边界线。
[0057] 例如,边界线区域识别模型是基于神经网络的模型。边界线区域识别模型可以通过机器学习训练建立。
[0058] 例如,对原始图像进行边缘检测之后可以确定多条目标边界线(例如,四条目标边界线),待处理文本区域即由多条目标边界线确定,例如,根据多条目标边界线的多个交点和多条目标边界线即可确定待处理文本区域,每两条相邻的目标边界线相交得到一个交点,多个交点和多个目标边界线共同限定了原始图像中的待处理文本所在的区域。例如,在图2A所示的示例中,待处理文本区域可以为四条目标边界线围成的习题区域。四条目标边界线均为直线,四条目标边界线分别为第一目标边界线101A、第二目标边界线101B、第三目标边界线101C和第四目标边界线101D。除了待处理文本区域之外,原始图像还可以包括非文本区域,例如,图2A中的四条边界线围成的区域之外的区域。
[0059] 例如,在一些实施例中,对待处理文本区域进行转正处理,以得到输入图像,包括:对待处理文本区域进行投影变换,以得到待处理文本区域的正视图,该正视图即为输入图像。投影变换(Perspective Transformation)是将图片投影到一个新的视平面(Viewing Plane)的技术,也称作投影映射(Projective Mapping)。由于拍照所得的原始图像中,待处理文本的真实形状在原始图像中发生了变化,即产生了几何畸变。如图2A所示的原始图像,待处理文本(即习题)的形状本来为矩形,但是原始图像中的待处理文本的形状发生了变化,变为了不规则的多边形。因此,对原始图像中的待处理文本区域进行投影变换,可以将待处理文本区域由不规则的多边形变换为矩形或平行四边形等,即将待处理文本区域进行转正,从而去除几何畸变的影响,得到原始图像中待处理文本的正视图。投影变换可以根据空间投影换算坐标来处理待处理文本区域中的像素以获取待处理文本的正视图,在此不做赘述。
[0060] 需要说明的是,在另一些实施例中,也可以不对待处理文本区域进行转正处理,而直接从原始图像中切割待处理文本区域,以得到单独的待处理文本区域的图像,该单独的待处理文本区域的图像即为输入图像。
[0061] 例如,原始图像可以为图像采集装置直接采集到的图像,也可以是对图像采集装置直接采集到的图像进行预处理之后获得的图像。原始图像可以为灰度图像,也可以为彩色图像。例如,为了避免原始图像的数据质量、数据不均衡等对于手写内容去除的影响,在处理原始图像前,本公开实施例提供的手写内容去除方法还可以包括对原始图像进行预处理的操作。预处理可以消除原始图像中的无关信息或噪声信息,以便于更好地对原始图像进行处理。预处理例如可以包括对图像采集装置直接采集到的图像进行缩放、剪裁、伽玛(Gamma)校正、图像增强或降噪滤波等处理。
[0062] 值得注意的是,在一些实施例中,原始图像即可以作为输入图像,在此情况下,例如,可以直接对原始图像进行识别以确定原始图像中的手写内容;然后去除原始图像中的手写内容,以得到输出图像;或者,可以直接对原始图像进行识别以确定原始图像中的手写内容;然后去除原始图像中的手写内容,以得到中间输出图像;然后对中间输出图像进行边缘检测,以确定中间输出图像中的待处理文本区域;对待处理文本区域进行转正处理,以得到输出图像,也就是说,在本公开的一些实施例中,可以先去除原始图像中的手写内容,以得到中间输出图像,然后在对中间输出图像进行边缘检测和转正处理。
[0063] 接下来,如图1所示,在步骤S11,对输入图像进行识别,以确定手写区域中的手写内容。
[0064] 例如,在一些实施例中,步骤S11可以包括:利用区域识别模型对输入图像进行识别,以得到文本印刷区域和手写区域。需要说明的是,在本公开中,“确定手写内容”并不表示需要确定手写内容中的具体字符,而是需要确定手写内容在输入图像中的位置,例如,在该实施例中,由于手写内容位于手写区域内,从而“得到手写区域”即表示确定手写区域中的手写内容。
[0065] 例如,区域识别模型表示对输入图像进行区域识别(或划分)的模型,区域识别模型可以采用机器学习技术(例如,神经网络技术)实现并且例如运行在通用计算装置或专用计算装置上,该区域识别模型为预先训练好的模型。例如,应用于区域识别模型的神经网络可以包括深度卷积神经网络、掩膜区域卷积神经网络(Mask-RCNN)、深度残差网络、注意力模型等。
[0066] 例如,利用区域识别模型对输入图像的区域(例如,文本印刷区域或手写区域)进行识别包括识别出区域的边界。例如,在区域以矩形来界定,且该矩形的相邻两条边分别平行于与水平方向平行的水平线和与竖直方向平行的竖直线的情况下,可以通过确定该矩形的至少三个顶点来确定该区域;在区域以平行四边形来界定的情况下,可以通过确定该平行四边形的至少三个顶点来确定该区域;在区域以四边形(例如,梯形、任意不规则的四边形等)来界定,且该四边形的至少一条边界也可以相对于水平线或竖直线倾斜,可以通过确定该四边形的四个顶点来确定该区域。
[0067] 接下来,如图1所示,在步骤S12,去除输入图像中的手写内容,以得到输出图像。
[0068] 例如,步骤S12包括:对手写区域进行标注,以得到手写区域标注框;从输入图像中切割去除手写区域标注框,以得到输出图像。
[0069] 例如,手写区域标注框包括手写区域,也就是说,手写区域标注框覆盖手写区域。
[0070] 例如,可以基于神经网络实现对手写区域进行标注。在一些实施例中,可以利用Mask-RCNN对手写区域进行标注,以得到手写区域标注框,Mask-RCNN的处理流程可以包括:输入的一幅待处理图像(即输入图像),然后对待处理图像进行预处理操作,或者该待处理图像为预处理后的图像;然后,将该待处理图像输入到一个预训练好的神经网络中获得对应的特征图像(feature map);接着,对特征图像中的每一点设定预定数量的感兴趣区域(region of interest,ROI),从而获得多个候选ROI;接着,将这些候选的ROI送入区域候选网络(Region Proposal Networks,RPN)进行二值分类(前景或背景)和边框回归
(Bounding-box regression),过滤掉不感兴趣区域,从而得到目标ROI;接着,对目标ROI进行ROIAlign操作(即先将待处理图像和特征图像的像素对应起来,然后将特征图像和固定的特征对应起来);最后,对这些目标ROI进行分类、边框回归和掩膜区域生成,从而得到手写区域的手写区域标注框。对目标ROI进行边框回归可以使得到的手写区域标注框更加贴近手写内容的实际位置。例如,当将Mask-RCNN应用到手写内容识别时,可以直接获取到手写内容的掩膜区域,然后利用外接矩形标注框标注该手写内容的掩膜区域。也就是说,外接标注框包括该掩膜区域。
[0071] 例如,手写区域标注框通过手写区域标注框的中心坐标以及手写区域标注框的长度和高度确定。不同手写内容可以具有不同形状的手写区域标注框。
[0072] 例如,从输入图像中切割去除手写区域标注框,以得到输出图像,包括:从输入图像中切割去除手写区域标注框,以得到中间输出图像;对中间输出图像进行二值化处理,以得到输出图像。
[0073] 二值化处理是将中间输出图像上的像素点的灰度值设置为0或255,也就是使得整个中间输出图像呈现出明显的黑白效果的过程,二值化处理可以使中间输出图像中数据量大为减少,从而能凸显出目标的轮廓。二值化处理可以将中间输出图像转换为黑白对比较为明显的灰度图像(即输出图像),转换后的灰度图像的噪声干扰较少,可以有效提高输出图像中的内容的辨识度和打印效果。
[0074] 例如,从输入图像中切割去除手写区域标注框之后,手写区域标注框对应的区域内的所有像素均被去除,即输入图像中的手写区域标注框对应的区域的像素为空,即没有像素。在对中间输出图像进行二值化处理时,中间输出图像中的像素为空的区域不进行任何处理;或者,在对中间输出图像进行二值化处理时,也可以将中间输出图像中的像素为空的区域利用灰度值255进行填充。
[0075] 例如,中间输出图像进行二值化处理后,最终得到输出图像可以方便用户将该输出图像打印成为纸质形式。例如,当输入图像为习题时,可以将输出图像打印成为纸质形式以供学生作答。
[0076] 例如,二值化处理的方法可以是阈值法,阈值法包括:设置二值化阈值,将中间输出图像中的每个像素的像素值与二值化阈值进行比较,若中间输出图像中的某像素的像素值大于或等于二值化阈值,则将该像素的像素值设置为255灰阶,若中间输出图像中的某像素的像素值小于二值化阈值,则将该像素的像素值设置为0灰阶,由此即可实现对中间输出图像进行二值化处理。
[0077] 例如,二值化阈值的选取方法包括双峰法、P参数法、大律法(OTSU法)、最大熵值法、迭代法等。
[0078] 例如,在一些实施例中,对中间输出图像进行二值化处理包括:获取中间输出图像;对中间输出图像进行灰度化处理,得到中间输出图像的灰度图像;根据第一阈值,对灰度图像进行二值化处理,得到中间输出图像的二值化图像;以二值化图像为导向图,对灰度图像进行导向滤波处理,得到滤波图像;根据第二阈值,确定滤波图像中的高值像素点,高值像素点的灰度值大于第二阈值;根据预设扩充系数,对高值像素点的灰度值进行扩充处理,得到扩充图像;对扩充图像进行清晰化处理,得到清晰图像;对清晰图像的对比度进行调整,以得到输出图像。
[0079] 例如,灰度化处理的方法包括分量法、最大值法、平均值法和加权平均法等。
[0080] 例如,预设扩充系数为1.2-1.5,例如,1.3。将每个高值像素点的灰度值都乘以预设扩充系数,以对高值像素点的灰度值进行扩充处理,从而得到黑白对比更加明显的扩充图像。
[0081] 例如,第二阈值为滤波图像的灰度均值与灰度值的标准差之和。
[0082] 例如,对扩充图像进行清晰化处理,得到清晰图像,包括:采用高斯滤波对扩充图像进行模糊化处理,得到模糊图像;根据预设混合系数,将模糊图像和扩充图像按比例进行混合,得到清晰图像。
[0083] 例如,假设f1(i,j)为扩充图像在(i,j)处的像素点的灰度值,f2(i,j)为模糊图像在(i,j)处的像素点的灰度值,f3(i,j)为清晰图像在(i,j)处的像素点的灰度值,k1为扩充图像的预设混合系数,k2为模糊图像的预设扩充系数,则f1(i,j)、f2(i,j)、f3(i,j)满足如下关系:
[0084] f3(i,j)=k1f1(i,j)+k2f2(i,j)。
[0085] 例如,扩充图像的预设混合系数为1.5,模糊图像的预设混合系数为-0.5。
[0086] 例如,对清晰图像的对比度进行调整包括:根据清晰图像的灰度均值,对清晰图像的每个像素点的灰度值进行调整。
[0087] 例如,可以通过如下公式对清晰图像的每个像素点的灰度值进行调整:
[0088]
[0089] 其中,f'(i,j)为增强图像在(i,j)处的像素点的灰度值, 清晰图像的灰度均值,f(i,j)为清晰图像在(i,j)处的像素点的灰度值,t为强度值。例如,强度值可为0.1-0.5,例如,强度值可为0.2。在实际应用中,强度值可根据最终所要达到的黑白增强效果进行选取。
[0090] 例如,在另一些实施例中,步骤S11可以包括:利用区域识别模型对输入图像进行识别,以得到文本印刷区域和手写区域;利用像素识别模型对手写区域进行像素识别,以确定在手写区域中手写内容对应的手写内容像素。在该实施例中,由于手写内容像素即可表示手写内容的位置,从而“确定手写内容像素”即表示确定手写区域中的手写内容。
[0091] 例如,像素识别模型表示对手写区域内的手写内容进行像素识别的模型,像素识别模型可以识别手写区域内的手写内容对应的手写内容像素。像素识别模型也可以基于神经网络而实现区域识别,例如,应用于像素识别模型的神经网络可以包括深度卷积神经网络等。
[0092] 例如,如图1所示,步骤S12包括:获取替换像素值;利用替换像素值替换手写内容像素的像素值,以从输入图像去除手写内容而得到输出图像。
[0093] 例如,替换像素值可以为手写区域中除了手写内容像素之外的任意一个像素的像素值;或者,替换像素值为手写区域中除了手写内容像素之外的所有像素的像素值的平均值(例如,几何平均值);或者,替换像素值也可以为固定值,例如,255灰阶值。需要说明的是,可以利用像素识别网络直接提取手写区域中的除了手写内容像素之外的任意一个像素,以得到替换像素值;或者,可以利用像素识别网络提取手写区域中除了手写内容像素之外的所有像素,然后基于所有像素的像素值得到替换像素值。
[0094] 例如,利用替换像素的像素值替换手写内容像素的像素值,以从输入图像去除手写内容以得到输出图像,包括:利用替换像素的像素值替换手写内容像素的像素值,以从输入图像去除手写内容而得到中间输出图像;对中间输出图像进行二值化处理,以得到输出图像。
[0095] 需要说明的是,区域识别模型进行区域识别、二值化处理等的说明可以参考上述的相关描述,重复之处不再赘述。
[0096] 例如,对图2A所示的原始图像进行手写内容去除处理后,可以得到如图2B所示的输出图像,该输出图像为二值化后的图像。如图2B所示,在该输出图像中,所有手写内容均被去除,从而得到没有答案的习题。
[0097] 需要说明的是,在本公开的实施例中,模型(例如,区域识别模型、像素识别模型等任意模型)不是仅仅的数学模型,而是可以接收输入数据、执行数据处理、输出处理结果的模块,该模块可以是软件模块、硬件模块(例如硬件神经网络)或采用软硬结合的方式实现。在一些实施例中,区域识别模型和/或像素识别模型包括存储在存储器中的代码和程序;处理器可以执行该代码和程序以实现如上所述的区域识别模型和/或像素识别模型的一些功能或全部功能。在又一些实施例中,区域识别模型和/或像素识别模型可以包括一个电路板或多个电路板的组合,用于实现如上所述的功能。在一些实施例中,该一个电路板或多个电路板的组合可以包括:(1)一个或多个处理器;(2)与处理器相连接的一个或多个非暂时的计算机可读的存储器;以及(3)处理器可执行的存储在存储器中的固件。
[0098] 应了解,在本公开的实施例中,在获取输入图像前,手写内容去除方法还包括:训练阶段。训练阶段包括对区域识别模型和像素识别模型进行训练的过程。需要说明的是,区域识别模型和像素识别模型可以被分别训练,或者,可以同时对区域识别模型和像素识别模型进行训练。
[0099] 例如,可以通过标注有文本印刷区域(例如,标注出的文本印刷区域的数量至少为一个)和手写区域(例如,标注出的手写区域的数量至少为一个)的第一样本图像对待训练区域识别模型进行训练以得到的区域识别模型。例如,待训练区域识别模型的训练过程可以包括:在训练阶段,利用标注有文本印刷区域和手写区域的多张第一样本图像训练待训练的区域识别模型,以得到区域识别模型。
[0100] 例如,利用多张第一样本图像训练待训练区域识别模型包括:从多张第一样本图像获取当前第一样本图像;利用待训练区域识别模型对当前第一样本图像进行处理,以得到训练文本印刷区域和训练手写区域;根据当前第一样本图像中标注出的文本印刷区域和手写区域和训练文本印刷区域和训练手写区域,通过第一损失函数计算待训练区域识别模型的第一损失值;根据第一损失值对待训练区域识别模型的参数进行修正,在第一损失函数满足第一预定条件时,得到训练完成的区域识别模型,在第一损失函数不满足第一预定条件时,继续输入第一样本图像以重复执行上述训练过程。
[0101] 例如,在一个示例中,上述第一预定条件对应于在输入一定数量的第一样本图像的情况下,第一损失函数的损失收敛(即第一损失值不再显著减小)。例如,在另一个示例中,上述第一预定条件为训练次数或训练周期达到预定数目(例如,该预定数目可以为上百万)。
[0102] 例如,可以通过标注有手写内容像素的第二样本图像对待训练像素识别模型进行训练以得到的像素识别模型。在标注第二样本图像中的手写内容像素时,可以对第二样本图像进行放大从而将全部手写内容像素准确地标注出来。根据各种手写特征(例如,像素灰度特征、字体特征等)进行机器学习以建立像素识别模型。
[0103] 例如,待训练像素识别模型的训练过程可以包括:在训练阶段,利用标注有手写内容像素的多张第二样本图像训练待训练的像素识别模型,以得到像素识别模型。
[0104] 例如,利用多张第二样本图像训练待训练区域识别模型包括:从多张第二样本图像获取当前第二样本图像;利用待训练像素识别模型对当前第二样本图像进行处理,以得到训练手写内容像素;根据当前第二样本图像中标注出的手写内容像素和训练手写内容像素,通过第二损失函数计算待训练像素识别模型的第二损失值;根据第二损失值对待训练像素识别模型的参数进行修正,在第二损失函数满足第二预定条件时,得到训练完成的像素识别模型,在第二损失函数不满足第二预定条件时,继续输入第二样本图像以重复执行上述训练过程。
[0105] 例如,在一个示例中,上述第二预定条件对应于在输入一定数量的第二样本图像的情况下,第二损失函数的损失收敛(即第二损失值不再显著减小)。例如,在另一个示例中,上述第二预定条件为训练次数或训练周期达到预定数目(例如,该预定数目可以为上百万)。
[0106] 本领域技术人员可以理解,多张第一训练样本图像和多张第二训练样本图像可以是相同的也可以是不同的。
[0107] 本公开至少一实施例还提供一种手写内容去除装置,图3为本公开至少一实施例提供的一种手写内容去除装置的示意性框图。
[0108] 如图3所示,该手写内容去除装置300包括处理器302和存储器301。应当注意,图3所示的手写内容去除装置300的组件只是示例性的,而非限制性的,根据实际应用需要,该手写内容去除装置300还可以具有其他组件。
[0109] 例如,存储器301用于非暂时性存储计算机可读指令;处理器302用于运行计算机可读指令,计算机可读指令被处理器302运行时执行根据上述任一实施例所述的手写内容去除方法。
[0110] 本公开实施例提供的手写内容去除装置300可以用于实现本公开实施例提供的手写内容去除方法,该手写内容去除装置300可被配置于电子设备上。该电子设备可以是个人计算机、移动终端等,该移动终端可以是手机、平板电脑等具有各种操作系统的硬件设备。
[0111] 例如,如图3所示,手写内容去除装置300还可以包括图像获取部件303。图像获取部件303用于获得作业图像,例如,获得纸质作业的作业图像。存储器301还可以用于存储作业图像;处理器302还用于读取并处理作业图像以得到输入图像。需要说明的是,作业图像可以为上述手写内容去除方法的实施例中描述的原始图像。
[0112] 例如,图像获取部件303即为上述手写内容去除方法的实施例中描述的图像采集装置,例如,图像获取部件303可以是智能手机的摄像头、平板电脑的摄像头、个人计算机的摄像头、数码照相机的镜头、或者甚至可以是网络摄像头。
[0113] 例如,在图3所示的实施例中,图像获取部件303、存储器301和处理器302等物理上可以集成在同一电子设备内部,图像获取部件303可以为电子设备上配置的摄像头。存储器301和处理器302经由内部总线接收从图像获取部件303发送的图像。又例如,图像获取部件
303和存储器301/处理器302在物理位置上也可以分离配置,存储器301和处理器302可以集成在第一用户的电子设备(例如,第一用户的电脑、手机等)中,图像获取部件303可以集成在第二用户(第一用户和第二用户不相同)的电子设备中,第一用户的电子设备和第二用户的电子设备在物理位置上可以分离配置,且第一用户的电子设备和第二用户的电子设备之间可以通过有线或者无线方式进行通信。也就是说,由第二用户的电子设备上的图像获取部件303采集原始图像之后,第二用户的电子设备可以经由有线或者无线方式将该原始图像发送至第一用户的电子设备,第一用户的电子设备接收该原始图像并对该原始图像进行后续处理。例如,存储器301和处理器302也可以集成在云端服务器中,云端服务器接收原始图像并对原始图像进行处理。
[0114] 例如,手写内容去除装置300还可以包括输出装置,输出装置用于输出该输出图像。例如,输出装置可以包括显示器(例如,有机发光二极管显示器、液晶显示器)、投影仪等,显示器和投影仪可以用于显示输出图像。需要说明的是,输出装置还可以包括打印机,打印机用于将输出图像进行打印。
[0115] 例如,处理器302和存储器301等组件之间可以通过网络连接进行通信。网络可以包括无线网络、有线网络、和/或无线网络和有线网络的任意组合。网络可以包括局域网、互联网、电信网、基于互联网和/或电信网的物联网(Internet of Things)、和/或以上网络的任意组合等。有线网络例如可以采用双绞线、同轴电缆或光纤传输等方式进行通信,无线网络例如可以采用3G/4G/5G移动通信网络、蓝牙、Zigbee或者WiFi等通信方式。本公开对网络的类型和功能在此不作限制。
[0116] 例如,处理器302可以控制手写内容去除装置300中的其它组件以执行期望的功能。处理器302可以是中央处理单元(CPU)、张量处理器(TPU)或者图形处理器(GPU)等具有数据处理能力和/或程序执行能力的器件。中央处理元(CPU)可以为X86或ARM架构等。GPU可以单独地直接集成到主板上,或者内置于主板的北桥芯片中。GPU也可以内置于中央处理器(CPU)上。
[0117] 例如,存储器301可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机可读指令,处理器302可以运行所述计算机可读指令,以实现手写内容去除装置300的各种功能。在存储介质中还可以存储各种应用程序和各种数据等。
[0118] 关于手写内容去除装置300执行手写内容去除方法的过程的详细说明可以参考手写内容去除方法的实施例中的相关描述,重复之处不再赘述。
[0119] 本公开至少一实施例还提供一种存储介质,存储介质为非瞬时性存储介质。图4为本公开至少一实施例提供的一种存储介质的示意图。例如,如图4所示,在存储介质500上可以非暂时性地存储一个或多个计算机可读指令501。例如,当所述计算机可读指令501由计算机执行时可以执行根据上文所述的手写内容去除方法中的一个或多个步骤。
[0120] 例如,该存储介质500可以应用于上述手写内容去除装置300中,例如,其可以包括手写内容去除装置300中的存储器301。
[0121] 例如,关于存储介质500的说明可以参考手写内容去除装置300的实施例中对于存储器的描述,重复之处不再赘述。
[0122] 图5为本公开至少一实施例提供的一种硬件环境的示意图。本公开的实施例提供的手写内容去除装置可以应用在互联网系统。
[0123] 利用图5中提供的计算机系统可以实现本公开中涉及的手写内容去除装置。这类计算机系统可以包括个人电脑、笔记本电脑、平板电脑、手机及任何智能设备。本实施例中的特定系统利用功能框图解释了一个包含用户界面的硬件平台。这种计算机系统可以包括一个通用目的的计算机设备,或一个有特定目的的计算机设备。两种计算机设备都可以被用于实现本实施例中的手写内容去除装置。计算机系统可以实施当前描述的实现手写内容去除方法所需要的信息的任何组件。例如:计算机系统能够被计算机设备通过其硬件设备、软件程序、固件以及它们的组合所实现。为了方便起见,图5中只绘制了一台计算机设备,但是本实施例所描述的实现手写内容去除方法所需要的信息的相关计算机功能是可以以分布的方式、由一组相似的平台所实施的,分散计算机系统的处理负荷。
[0124] 如图5所示,计算机系统可以包括通信端口250,与之相连的是实现数据通信的网络,例如,通信端口250可以与上面描述的图像获取部件403进行通信。计算机系统还可以包括一个处理器组220(即上面描述的处理器),用于执行程序指令。处理器组220可以由至少一个处理器(例如,CPU)组成。计算机系统可以包括一个内部通信总线210。计算机系统可以包括不同形式的程序储存单元以及数据储存单元(即上面描述的存储器或存储介质),例如硬盘270、只读存储器(ROM)230、随机存取存储器(RAM)240,能够用于存储计算机处理和/或通信使用的各种数据文件,以及处理器组220所执行的可能的程序指令。计算机系统还可以包括一个输入/输出组件260,输入/输出组件260可以支持计算机系统与其他组件(例如,用户界面280,用户界面280可以为上面描述的显示器)之间的输入/输出数据流。计算机系统也可以通过通信端口250发送和接收信息及数据。
[0125] 在一些实施例中,上述计算机系统可以用于组成互联网通信系统中的服务器。互联网通信系统的服务器可以是一个服务器硬件设备,或一个服务器群组。一个服务器群组内的各个服务器可以通过有线的或无线的网络进行连接。一个服务器群组可以是集中式的,例如数据中心。一个服务器群组也可以是分布式的,例如一个分布式系统。
[0126] 需要说明的是,本公开的框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机程序指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
[0127] 对于本公开,还有以下几点需要说明:
[0128] (1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
[0129] (2)为了清晰起见,在用于描述本发明的实施例的附图中,层或结构的厚度和尺寸被放大。可以理解,当诸如层、膜、区域或基板之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
[0130] (3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
[0131] 以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。