CN114120349A - 基于深度学习的试卷识别方法及系统 - Google Patents

基于深度学习的试卷识别方法及系统 Download PDF

Info

Publication number
CN114120349A
CN114120349A CN202210020087.3A CN202210020087A CN114120349A CN 114120349 A CN114120349 A CN 114120349A CN 202210020087 A CN202210020087 A CN 202210020087A CN 114120349 A CN114120349 A CN 114120349A
Authority
CN
China
Prior art keywords
line
points
point
line segment
detection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210020087.3A
Other languages
English (en)
Other versions
CN114120349B (zh
Inventor
罗红亮
杨泽霖
杨科山
彭海波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Jing Gifted Wisdom Education Ltd By Share Ltd
Original Assignee
Shenzhen Jing Gifted Wisdom Education Ltd By Share Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Jing Gifted Wisdom Education Ltd By Share Ltd filed Critical Shenzhen Jing Gifted Wisdom Education Ltd By Share Ltd
Priority to CN202210020087.3A priority Critical patent/CN114120349B/zh
Publication of CN114120349A publication Critical patent/CN114120349A/zh
Application granted granted Critical
Publication of CN114120349B publication Critical patent/CN114120349B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Image Analysis (AREA)

Abstract

本发明提出了一种基于深度学习的试卷识别方法及系统,涉及机器学习技术领域,该方法包括:获取试卷图像;根据所述试卷图像,采用多任务并行模式进行检测识别;其中,检测识别任务包括:线段和实心点的检测,圆和曲线的检测,文字检测识别;检测识别的输出结果至少包括:实线、虚线、箭头、实心点、曲线、圆、文本内容;对检测识别的输出结果进行整合,将整合结果采用SVG绘制得到矢量图像。本发明通过任务并行的方式,可以快速检测识别试卷图片中的多种元素,处理效率高,识别结果准确,能够为教育行业的电子信息化提供有力的数据支持。

Description

基于深度学习的试卷识别方法及系统
技术领域
本发明涉及机器学习技术领域,尤指一种基于深度学习的试卷识别方法及系统。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
随着科技的不断发展,电子信息化在各行业中成为趋势,尤其是教育行业,电子信息化可以有效的提升检索效率,减少不必要的存储,甚至可以基于数据延伸出很多新的方向,如智能组卷,以图搜题,职能解答等。题库的电子信息化包括对于文字的信息化,还有图片的信息化。文字的识别是将一个图片中的文字转化为可编辑的文字,已达到可以查询与编辑的效果。图片信息化是将试卷中的插图和配图中的元素都识别出来,以一个可编辑的格式,通过SVG的形式表示出来,以达到可以编辑,搜索的目的。如果能实现配图识别,对行业的业务发展至关重要,这样就可以更精准的搜索题目,更快速的图片录入,将现有的图片更清晰的表示出来,甚至可以为自动解题打好基础。
在现有技术中,文字识别已经较为普遍,但是配图识别还是其中的技术难点,其难点至少包括:在处理图片时,图片高清化采用超分的原理,只能将图片的分辨率放大,并不能识别出图片中的元素,识别出的图片元素不可编辑。配图中有文字、线段、圆锥、曲线等复杂元素,在识别时,由于各种元素特征不同,相互干扰很难找到一种方法可以将其统一识别。
因此,亟需一种可以克服上述缺陷,能够准确识别试卷图像中多种元素信息的技术方案。
发明内容
为解决现有技术存在的问题,本发明提出了一种基于深度学习的试卷识别方法及系统。本发明采用任务并行的方式,对试卷图片同时执行点和线段检测识别、文字检测识别、圆和曲线检测识别,快速检测识别图片中的多种元素,识别效率高,并对每种检测识别任务进行了优化,有效提高了识别结果的准确性。
在本发明实施例的第一方面,提出了一种基于深度学习的试卷识别方法,包括:
获取试卷图像;
根据所述试卷图像,采用多任务并行模式进行检测识别;其中,检测识别任务包括:线段和实心点的检测,圆和曲线的检测,文字检测识别;检测识别的输出结果至少包括:实线、虚线、箭头、实心点、曲线、圆、文本内容;
其中,线段和实心点的检测是基于深度学习模型预测出线段的两个端点和实心点的热力图,找出热力图阈值最大区域的坐标,并将坐标映射回原图,得到实线、虚线、箭头、实心点坐标后,采用线段解析构成完整的几何图形;
圆和曲线的检测是基于深度学习模型预测出圆和曲线;
文字检测是基于单阶段目标检测算法FCOS,采用FPN特征金字塔和三分支的头检测网络;
对检测识别的输出结果进行整合,将整合结果采用SVG绘制得到矢量图像。
在本发明实施例的第二方面,提出了一种基于深度学习的试卷识别系统,包括:
图像获取模块,用于获取试卷图像;
检测识别模块,用于根据所述试卷图像,采用多任务并行模式进行检测识别;其中,检测识别任务包括:线段和实心点的检测,圆和曲线的检测,文字检测识别;检测识别的输出结果至少包括:实线、虚线、箭头、实心点、曲线、圆、文本内容;
其中,线段和实心点的检测是基于深度学习模型预测出线段的两个端点和实心点的热力图,找出热力图阈值最大区域的坐标,并将坐标映射回原图,得到实线、虚线、箭头、实心点坐标后,采用线段解析构成完整的几何图形;
圆和曲线的检测是基于深度学习模型预测出圆和曲线;
文字检测是基于单阶段目标检测算法FCOS,采用FPN特征金字塔和三分支的头检测网络;
试卷整合绘制模块,用于对检测识别的输出结果进行整合,将整合结果采用SVG绘制得到矢量图像。
在本发明实施例的第三方面,提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现基于深度学习的试卷识别方法。
在本发明实施例的第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现基于深度学习的试卷识别方法。
本发明提出了的基于深度学习的试卷识别方法及系统通过任务并行的方式,可以快速检测识别试卷图片中的多种元素,处理效率高,识别结果准确,能够为教育行业的电子信息化提供有力的数据支持。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明一实施例的基于深度学习的试卷识别方法流程示意图。
图2是本发明一实施例的采用多任务并行模式进行检测识别的流程示意图。
图3是本发明一实施例的线段和点的检测流程示意图。
图4是本发明一实施例的圆和曲线的检测流程示意图。
图5A是二值图的示意图。
图5B是高斯热力图的示意图。
图6A为随机生成的第一图片样例示意图。
图6B为随机生成的第二图片样例示意图。
图6C为随机生成的第三图片样例示意图。
图6D为随机生成的第四图片样例示意图。
图7是本发明一实施例的注意力层的计算过程示意图。
图8A是曲线检测的模型输出的结果图。
图8B是曲线检测的原图。
图8C是经过处理之后得到的曲线的形状图。
图8D是曲线检测的最终提取出的控制点画出的图形示意图。
图9A是圆检测的模型输出的结果图。
图9B是圆检测的原图。
图9C是经过处理之后得到的圆的形状图。
图9D是圆检测的最终提取出的控制点画出的图形示意图。
图10是本发明一实施例的文字检测识别的流程示意图。
图11是本发明一实施例的基于深度学习的试卷识别系统架构示意图。
图12是本发明一实施例的计算机设备结构示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种基于深度学习的试卷识别方法及系统,涉及机器学习技术领域。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
图1是本发明一实施例的基于深度学习的试卷识别方法流程示意图。如图1所示,该方法包括:
S101,获取试卷图像。
S102,根据所述试卷图像,采用多任务并行模式进行检测识别。
其中,检测识别任务包括:线段和实心点的检测,圆和曲线的检测,文字检测识别;
检测识别的输出结果至少包括:实线、虚线、箭头、实心点、曲线、圆、文本内容;
线段和实心点的检测是基于深度学习模型预测出线段的两个端点和实心点的热力图,找出热力图阈值最大区域的坐标,并将坐标映射回原图,得到实线、虚线、箭头、实心点坐标后,采用线段解析构成完整的几何图形;
圆和曲线的检测是基于深度学习模型预测出圆和曲线;
文字检测是基于单阶段目标检测算法FCOS,采用FPN特征金字塔和三分支的头检测网络。
S103,对检测识别的输出结果进行整合,将整合结果采用SVG绘制得到矢量图像。
为了对上述基于深度学习的试卷识别方法进行更为清楚的解释,下面结合每一步骤来进行详细说明。
S101,获取试卷图像;
试卷的图片可以采用拍照,或者通过题库生成,图像数据采用base64编码格式,以减小HTTP访问次数。
进一步的,可以对试卷图像进行预处理。
由于拿到的图像是base64编码,需要对base64编码进行解码还原成真实的图像;进而使用OpenCV中高斯滤波平滑图像,有效抑制噪声干扰。
S102,根据所述试卷图像,采用多任务并行模式进行检测识别。
参考图2,为本发明一实施例的采用多任务并行模式进行检测识别的流程示意图。如图2所示,具体流程包括:
线段和点的检测;圆和曲线的检测;文字检测识别;
由于图像中存在不同的元素,对此,本发明利用任务并行的模式进行检测识别,实现不排队,能快速有效完成检测识别任务。
下面参考图3,对线段和点的检测流程进行详细叙述。
如图3所示,线段和点的检测流程包括:
S301,基于深度学习ResNet+GaussianHeatmap关键点的方法对试卷图像进行线段端点和实心点的检测,模型的预测是预测输出线段端点和实心点的heatmap概率图;
其中,模型的输出为69个通道(5+64个channel),每个通道负责一项任务,前5个通道的任务分别是预测线段所有端点、实线、虚线、箭头、实心点在图像位置出现的概率图;剩下的64个通道用于预测线段上的端点的360°方向是否有其它端点和该端点连接成线段,经过线段的筛选,排除非必要线段;
具体的,对于剩下的64个通道,具体到每个channel负责预测的角度是5.625°;该步骤非常关键,在线段筛选的过程中排除一些不必要的线。
目前针对线段的描述有两种方法,第一种是根据线段的中点,第二方法是根据线段的两个端点描述一条线段。本发明采用线段的两个端点去描述,采用深度学习模型预测出图像中所有线段的端点;其次,实心点采用同一个模型预测出实心点的位置。
对于这个任务,实线、虚线、箭头同样属于线段,因此,结合当前的任务,模型采用深度卷积神经网络CNN,通过有监督学习,让模型预测出每个线段的端点。
S302,根据heatmap概率图,通过heat2endpoints算子获取实线、虚线、箭头与实心点的点坐标,并拟合得到线段;其中,heat2endpoints算子是一个概率图转坐标的过程,模型输出的是每个端点在图像中出现位置的概率图,根据概率图,选择阈值最大的区域作为端点的位置,得到端点在概率图中的位置,在映射回到原图,得到真实的坐标信息;
其中,具体方法包括:
S3021,将模型输出的各个通道图分别向左,向右,向下,向上进行翻转,得到左图、右图、上图、下图;
模型输出的是一个69维度的数组,因此,可以理解为模型输出69张图,这69张图是由模型最后一层全卷积的69(5+64)个输出通道来负责预测,每个通道负责预测输出一张heatmap图。
分别计算原图大于左图、原图大于右图,得到两张形状与原图一致的由布尔值组成的二值图,对两张二值图进行与运算得到一张形状与原图相同的sub_max1图;
对上图与下图采用相同计算方式,得到sub_max2图;
将sub_max1图与sub_max2图进行与运算(这里是将两图的对应位置做与运算),得到sub_max图;其中,sub_max图存储的为形状进行修剪过后的原图端点区域;该过程类似于修剪灌木丛上多余的枝桠以得到想要的形状。
计算原图大于第一阈值,得到布尔二值图,再与sub_max图进行与运算,得到端点图,所述端点图存有端点的位置;这里的第一阈值可以根据通道的不同而改变,例如实线通道的阈值设置低于实心点通道的阈值。
在本实施例中,根据点进行线段拟合,通用的线段检测中,或者是对于整个图中所有的点进行提取,然后拟合线段。这样的线段,在较为复杂的组合图形中,很容易出现原本两条相交的线段,交点错位的情况。本发明提出根据两个端点,对线段进行拟合。根据交点去拟合线段,可以有效解决上述问题。此方法避免了直接对图片中像素的线段拟合,可以有效的避免图片中线段的变形等问题。本发明根据上述步骤得到的端点的位置后,利用Line_Parser算子将实线与虚线里的点转为线段。
在检测点时,会带有方向参数,可以表示在这个方向,与另外一个点可以构成线段,对此,具体的处理流程为:
S3022,在试卷图像经过神经网络处理后,输出的heatmap是一个69维的数组,采用后64个通道任务预测线段端点在360°方向是否有点与它构成一条线段,使用MobulaOP框架调用CPP文件里的Line_Parser算子进行点到线段的转换。
具体的,模型输出的heatmap实际上就是模型输出69个关于预测点的概率图(也就是模型输出69维的数组),其中前5个通道负责预测出实线、虚线、线段端点、实心点以及箭头5个目标检测,后64个通道负责预测线段端点间是否有连接方向。由于模型预测本身也存在误差,为了降低模型带来的偏差,我们才增加线段端点两两之间连接方向为先验信息,采用64个通道任务预测线段端点在360°方向是否有点与它构成一条线段,也就是每个通道任务预测的范围是5.625°以内;使用MobulaOP框架调用CPP文件里的Line_Parser算子进行点到线段的转换。
其中,对端点图中的每一个端点分别进行计算,以当前点为中心点,在64个方向上查看维度值,如果当前点在其中一个方向上是一个线段的端点,维度值为1,否则为0;得到整个图片中所有的端点和端点的方向参数;若为一个孤点,所有方向参数都为0;筛选端点,在heatmap的一定区域内,对距离在预设距离范围内,且方向夹角在预设角度范围内的点,选取最亮的点作为区域内唯一的点;将筛选后的端点与维度值为1的其它端点组成线段,得到线段集合;将线段集合传入seg_line算子进行线段的筛选与拟合。
在seg_line算子中,线段集合的拟合过程包括:
利用置信度去除线段:
在seg_line算子中,对线段集合中一条线段的两个端点之间计算向量角度,分别得到两个端点构成的线段,将构成的线段与模型后64个通道预测出的线段进行比较分析,将两者比较置信度低于80分的排除,将高于80分的保留;
根据端点的欧式距离,删除线段:
在两条线段之间,计算第一线段的第一端点与第二线段的第一端点之间的欧氏距离,第一线段的第二端点与第二线段的第二端点之间的欧氏距离,若两个欧式距离均小于第一预设值,视为同一线段,删除其中一条线段;
以线段G与线段H为例,计算线段G端点1与线段H端点1,线段G端点2与线段H端点2之间的欧氏距离,若两个距离均小于0.001,则视为线段G与线段H为同一线段,删除线段G。
计算外积,合并线段:
计算两条线段之间的外积,判断是否相邻,若外积小于第二预设值,视为两线段相邻,进行线段合并;
计算长度,去除线段,修正端点:
计算线段长度,去除线段长度小于第三预设值的线段,按照线段长度对线段集合进行冒泡排序,当线段的一定范围内存在端点的数量大于第四预设值,对线段进行点修正算法计算,计算过程为:
假设计算目标为线段R与端点P,将线段R远端端点与端点P组合得到一个新向量RP,计算端点P到线段R的距离为lRP,计算公式为:
Figure 73191DEST_PATH_IMAGE001
其中,ABC是根据线段R的表达式得到;
d为端点P到线段R的垂直距离;
x 0为表示端点P的横坐标;
y 0为表示端点P的纵坐标;
对新向量RP的长度与距离lRP的平方差求根,得到RP_hat,计算RP_hat/lRP得到比值ratio;
计算线段R的两个端点之间的曼哈顿距离,得到二维数组R1,R1为:R.x2-R.x1与R.y2-R.y1;ratio×R1+线段R近端端点后得到的点,为修正之后的新端点;
调整交点:
对端点之间的距离小于第五预设值的线段进行交点判别,计算过程为:
线段T与线段S,其上的四个点为(x1,y1),(x2,y2),(x3,y3),(x4,y4),准交点的计算公式为:
x=((x3-x4)×((y1-y2)×x1-(x1-x2)×y1)-(x1-x2)×((y3-y4)×x3-(x3-x4)×y3))/((y1-y2)×(x3-x4)-(y3-y4)×(x1-x2));
y=((y3-y4)×((y1-y2)×x1-(x1-x2)×y1)-(y1-y2)×((y3-y4)×x3-(x3-x4)×y3))/((y1-y2)×(x3-x4)-(y3-y4)×(x1-x2));
以准交点(x,y)与线段T,线段S的各个端点组合得到四个向量,若准交点与线段T端点组成的两个向量长度小于线段T的长度,且准交点与线段S端点组成的两个向量长度小于线段S的长度,判定准交点为线段T与线段S之间的交点;计算所有线段的端点与新交点的向量长度,如果向量长度小于第六预设值,将端点调整为新交点;
判别箭头线:
在对实线通道与虚线通道进行seg_line计算得到实线、虚线之后,对实线与箭头通道里提取出来的箭头点进行判别以得到箭头线;其中,判别过程为:对所有线段进行遍历,每个端点分别与所有箭头点计算欧氏距离,若任意端点与箭头点的距离小于第二阈值,则判定实线是箭头线;
判别是否重合:
将箭头线与实线分开之后,将实线集合与虚线集合传入lines_comparison函数中进行对比,去除与虚线重合的实线;对比流程为:选取实线E与虚线F,计算实线E和虚线F对应端点之间的欧氏距离,若两个距离均小于第三阈值,则判定实线E与虚线F重合,在实线集合中去除实线E;
得到区分好的箭头线集合,实线集合,虚线集合与实心点集合,将集合重组得到原图中的所有线条及由线条组成的图形。
为了加快运算速度,以上提到的计算过程均通过MobulaOP框架调用CPP文件进行并行计算,相较于python版本的文件计算时间,本发明的计算过程仅是其十分之一到二十分之一。
参考图4,为本发明一实施例的圆和曲线的检测流程示意图。如图4所示,具体流程包括:
S401,将试卷图像输入到机器学习模型,输出曲线图层及圆图层;
S402,对曲线图层中的每一层进行处理并判别,判别通过后将数据输入机器学习算法中进行拟合,得到B样条控制点,将B样条控制点转为SVG文件所需的贝塞尔曲线控制点集合;
S403,对圆图层中的每一层进行处理并判别,判别通过后得到SVG文件所需的圆心与半径数据。
具体的,在S401中,基于深度学习的曲线与圆提取流程为:
S4011,获取需要识别的高清图像,对图像进行预处理,将其Resize为长宽均为32的倍数大小的图像,并转为二值图。
S4012,整理标注数据,将标注文件转化为训练所需的标签文件并保存到数据库中。
数据增广,使用随机动态生成库的方法,生成图像与标签数据;
优化模型,将生成的图像输入网络中,对模型进行预训练,输出预训练好的模型;
将预训练模型权重加载到模型上,输入标注过的真实图像进行Fine tune,输出训练好的模型;
将图像输入神经网络模型,获取结果,并将结果分为两部分:
第一部分经过判别与处理之后的数据输入机器学习回归算法中进行计算,得到多个点;
第二部分是将该些点转化为能够被SVG所使用的控制点,得到曲线控制点集合与圆心半径集合。
下面对S4012的具体过程进行叙述。
1、整理标注数据,并根据数据标注生成标签。
标记的数据中每条曲线都是一个由数十个点组成的有序集合,因为这些点彼此之间距离很短且完全按照曲线的形状分布,所以按照顺序将这些点连接起来就能够组成原图中的曲线。利用OpenCV图像库中的cv2.line函数与numpy库中numpy.zeros函数,生成网络所需要的标签图片。同时,经过实验对比,利用OpenCV库的高斯模糊手段生成的热力图标签效果好于单纯的二值图图片。因为单纯的二值图作为标签训练网络,会导致网络输出的图像连通性不够、表面不够平滑且无法利用腐蚀与膨胀等手段去除图像中的噪点。而二值热力图作为标签训练出来的网络输出图像表面平滑,图像完整、明显,且能够利用腐蚀与膨胀进行去噪,提升最终结果质量。因此,本发明采用二值热力图作为数据标签。产生这种差别的原因在于二值图与高斯热力图的区别。二值图的像素值只有0和1,因此二值图标签纤细,边缘明显,导致以此为标签的模型输出同样纤细,无法去噪。而高斯热力图则由更多的像素值组成、边缘向外有一个渐变区域,表现为边缘更为平滑,线条更明显,能够让模型输出足够明显的线条,保证在去噪之后仍旧保持足够的数据以供之后的算法进行拟合。参考图5A及图5B所示,图5A为二值图的示意图,图5B为高斯热力图的示意图。
圆图层的分析过程与曲线图层的分析过程类似,标签数据为两个点,第一个点是圆的中心点,第二个点则位于圆的边界上。因此只需要根据勾股定理计算第二个点与中心点的欧氏距离即可得到圆的半径。接着使用OpenCV库里的Cv2.circle函数就可以生成圆的标签图片。原图中每一条曲线,每一个圆都会有单独的标签图片。
2、数据增广。
数据增广手段包含两部分:
第一部分是随机动态生成图片,具体流程为:
生成随机背景图,图片颜色随机,背景里会有随机数量随机大小的实心圆,并经过高斯模糊处理以防止影响模型训练。接着在背景图片上随机画线,线条的长短粗细位置均为随机,作为噪声。考虑到实际应用中并不是每一张图片上都会存在圆与曲线,因此需要对是否生成圆或曲线分别进行概率判断,判定通过后先进行曲线的生成。将图片转为Image格式,利用aggDraw库进行贝塞尔曲线的绘制,并同时生成标签图片,曲线数量随机,每条曲线有三个控制点。接着进行圆以及标签的绘制。圆的数量随机,圆心位置随机,半径随机,完成之后就可以作为训练数据,加入模型训练,能够极大的提升模型的鲁棒性与模型性能。因为随机动态生成图片代表着所有使用的图片都是之前不存在,之后也不会存在的,用于模型训练能够完美的防止模型过拟合。而所有图片中存在统一的特征,也就是圆与曲线,代表着模型的训练损失越低,模型对于圆与曲线的特征就了解的越精确,性能与鲁棒性就越高。因此以随机动态生成图片的方法来对模型进行预训练是极为重要的。不过此方法虽然可以提升模型鲁棒性,但会延长模型训练时间,增加模型训练所需要的轮次,因此使用此方法前需要考虑。
第二部分则是将第一部分训练后的权重作为预训练权重,接着对标注图片进行随机旋转,随机上下翻转与随机左右翻转,加入训练。让模型更贴近实际使用中所面临的任务。参考图6A至图6D所示,图6A为随机生成的第一图片样例示意图,图6B为随机生成的第二图片样例示意图,图6C为随机生成的第三图片样例示意图,图6D为随机生成的第四图片样例示意图。随机生成的图像可以自定义大小,默认大小为224×224分辨率,而真实的图像则需要经过Resize之后才能输入网络进行训练。输入网络的图像的宽和高都必须是32的倍数。
3、优化模型。
虽然是编解码结构,但作为卷积神经网络的一种,U2Net同样具有卷积神经网络的缺点,那就是对于局部区域的特征信息关注的很好,但对于全局区域的特征信息关注却不够,因此,在标准的U2Net结构内的每个UNet的跳接线上,将原本简单的上采样与concatenate层改为了注意力层,通过添加注意力的形式来增加模型对于全局区域(整个图片)的特征信息的提取,进而提高了模型的性能。
注意力机制的原理为:对图片所有像素进行加权(即每个像素点的重要性),增大目标区域(圆与曲线)像素点的权重,缩小其他不重要区域的权重。通过这个流程能够增加模型对目标区域的注意力,称为注意力机制。
注意力层的计算过程如图7所示,其中,Wg为上一层模型神经元的输出,Wx为跳接线传过来的图片。
具体过程为:将Wg图片通过上采样放大至与Wx图片相同的大小;将Wg与Wx相加得到特征图;将特征图经过ReLU函数进行非线性激活得到大小与Wx相同的注意力系数图;将注意力系数图与Wx逐点相乘得到加权之后的图像,称为加权图;将加权图与Wx堆叠(concatenate)得到新特征图;将新特征图通过卷积与sigmoid激活层得到与Wx通道数(channel)相同的图片,即为注意力层的输出图;将输出图与Wx堆叠(concatenate)得到的图片即为模型下一层神经元的输入。
4、训练模型。
将Resize之后宽高为224×224的整张图片送入神经网络模型,对每一个像素进行分类,判断其是否在圆锥曲线上。使用反向梯度求导对模型进行一轮轮的修正,得到最终识别模型。
模型训练损失函数为BCELoss,需要分别对每一图层进行损失计算,得到的损失之和作为总损失进行反向梯度求导。优化器为RADAM优化器,学习率衰减策略为余弦退火热重启学习率,并使用0.1的梯度裁剪以防止梯度消失或爆炸。
整体训练流程大体分为两部分:
第一部分为预训练:
预训练以更大的数据量,更随机的数据来帮助训练模型的提取特征的能力,提升模型鲁棒性。这部分batch size为32,轮数在20轮左右。
第二部分为Fine tune训练:
为了更好的模型性能,训练中加入梯度累加训练策略,帮助模型更适应实际的使用环境。Fine tune训练batch size为16,梯度累计之后的batch size为64,训练轮数为150轮,同时保留最佳模型。
考虑到实际使用中图片上的曲线与圆的个数可能极多,因此将模型的输出设置为50层图层堆叠在一起,每一层都可能存有所需图像,因此需要对输出的每一层都进行判断与后处理。在得到模型的输出后,将其分为两部分,如,每25个图层为一部分。第一部分为图片里所有的曲线;第二部分为所有的圆,并进行不同的处理。
第一部分的输出由不同的曲线图层组成,每一层图层都可能存在一条单独的曲线,因此需要对每一层图层进行判断。
第二部分的输出由不同的圆图层组成,每一层图层都可能有一个圆,因此每一层圆图层都同样需要做判断处理,判断过程与曲线图层相同。因为圆对形状敏感,因此需要将经过判断之后的圆图层恢复为原图的形状,才能进行下一步的计算。
下面结合S402、S403对曲线图层、圆图层的判别处理过程进行说明:
S402,对曲线图层中的每一层进行处理并判别,判别通过后将数据输入机器学习算法中进行拟合,得到B样条控制点,将B样条控制点转为SVG文件所需的贝塞尔曲线控制点集合,包括:
对曲线图层中的每一层图层按照顺序(0,1,2,3,…)进行二值化处理,转为二值图;
对二值图进行OpenCV库的膨胀与腐蚀操作,去除会影响多元自适应样条回归算法效果的图片噪声。
利用numpy.where函数获得二值图中像素值不为0的像素点的位置,得到两个形状相同的分别存有像素点横纵坐标值的一维numpy array数组,根据数组的长度判断图层中是否存在曲线,若数组的长度低于第七预设值判定不存在曲线;
在存在曲线的图层中,将所有像素点存在的位置(横坐标数组与纵坐标数组)送入多元自适应回归样条算法进行计算,得到能拟合曲线的多个关键点。将整个曲率数组均分为多份,计算每份的平均值,通过平均值的大小变化来找出曲线的驻点数量(曲线所需的控制点数量);对驻点所在区间内的点进行选择,反算出贝塞尔曲线的控制点,按照这些控制点画出与原曲线形状一致的可编辑曲线;
其中,多元自适应回归样条算法的计算公式为:
Figure 475354DEST_PATH_IMAGE002
其中,
Figure 409812DEST_PATH_IMAGE003
为算法输出的拟合曲线纵轴数值;
x'为横轴数值;
k为样条曲线次数,选择为3;
c i 为第i个像素点纵坐标数值;
B i (x')为第i个样条曲线函数,B i (x')存在三种形式:常数1;hinge函数,max(0,x'-constant)或max(0,constant-x');两个或多个hinge函数相乘;其中,constant需要在输入数据前选择,策略采用十分法,x'的最大值,x'的最小值,x'最大值与最小值之间距离均分十份后得到的九个点。
由于多元自适应样条曲线算法对离群点较敏感,因此输入数据中不能有噪点的坐标,需要在之前的数据处理过程中去除噪点。所以标签文件选择抗去噪能力更好的高斯热力图。
S403,对圆图层中的每一层进行处理并判别,判别通过后得到SVG文件所需的圆心与半径数据,包括:
对圆图层中的每一层图层进行判别,判别过程与曲线图层相同;其中,对于每一个圆,取x轴的最大与最小值,y轴的最大与最小值,根据四个值计算圆的中心点与半径,画出与原图一致的可编辑的圆形。这里的x轴,y轴是笛卡尔坐标系的x轴与y轴,即图层的横纵轴。
最后,输出曲线控制点集合与圆心半径集合用于汇总为SVG文件。
在本发明实施例中,如半圆、四分之一圆、椭圆、半椭圆,归到曲线检测任务中实现。
参考图8A至图8D,图9A至图9D,分别为曲线检测和圆检测的输出结果示意图。
其中,图8A是曲线检测的模型输出的结果图。图9A是圆检测的模型输出的结果图。图8B是曲线检测的原图。图9B是圆检测的原图。图8C是经过处理之后得到的曲线的形状图。图9C是经过处理之后得到的圆的形状图。图8D是曲线检测的最终提取出的控制点画出的图形示意图。图9D是圆检测的最终提取出的控制点画出的图形示意图。在图8D、图9D中,通过“箭头记号”标记出了最终提取出的控制点画出的图形。图8D中标记的是向下开口的曲线,图9D中标记的是圆形。
本发明提出的文字检测识别任务相较于现有的文字识别,进行了较大的改进,具有文字简短但是位置灵活的特点。
现有基于文本行的检测效果不佳,通用的文字识别因为模型能力过大,会出现不适配的情况。对此,本发明提出使用更为灵活的目标检测(FCOS-FPN)代替基于长文本的文字检测(如,ctpn等常见文字检测模型),并且针对试卷配图构建数据集,训练一个专用的文字识别模型。
本发明使用基于深度学习检测与识别,采用FCOS-FPN+OCR的模型。具体的,首先,利用FCOS-FPN对于每一段文字进行检测,检测出后裁剪成多个单行文字的图片;使用OCR进行训练与识别。
与现有的文字检测与识别不同,本发明提出在通用的文字识别的模型基础上,专门对图像数据进行Fine tune,让模型对图片中的文字有着更好的检测和识别。
参考图10,为本发明一实施例的文字检测识别的流程示意图。如图10所示,具体流程为:
S501,对试卷图像做预处理,得到预处理后的图片;
其中,预处理至少包括:增加噪音,亮度变换,对比度的变换,利用仿射变化的同时,文字的框的位置和放射矩阵相乘做变换,进行数据增强操作,使新的图片上,文本框对应的是文字区域。
S502,训练文字检测和文字识别模型;
将输入数据送入backbone网络中获取输入数据的feature_map,在feature_map的每一点上面进行回归操作,进行网络训练获取网络模型;其中,backbone网络选用的resnet50。
将预训练的网络模型应用到测试图片中,从FPN的多个Head中获得预测的结果,使用NMS等后处理操作获得最终的结果。
其中,选用FCOS模型训练文字检测模型,采用FPN多头预测的方式进行文字检测,训练文字检测模型后,截取文字片段和文字对应的内容,按照OCR数据格式整理,送入OCR模型训练文字识别。
在实际应用场景中,可以采用FCOS+TPS文本检测,采用CRNN+CTC文本识别。
S503,按顺序拼接文字检测和文字识别的模型,得到输入图片、输出文字内容和对应坐标的函数;
S504,将预处理后的图片输入拼接模型,得到文字内容。
最终,对检测识别的输出结果进行整合,将整合结果采用SVG绘制得到矢量图像,以达到实现图片高清化的目的。
进一步的,本发明为了实现更高的并发及更快的响应,搭建了两层网络方式的网络服务。
本发明采用FLASK+TORNADO部署方式,意味着以接口的形式开放供其他计算机来访问。因此,整个架构由两部分组成:
第一部分是由服务端检测识别模块组成,其任务是完成对请求收到的图片数据的进行检测识别,并返回给客户端结果;
第二部分是由客户端UI界面设计显示SVG图形。
具体的,设置FLASK+TORNADO的网络框架,以两层网络形式进行检测识别;其中,每一检测识别任务以网络服务的形式存在,检测识别任务之间相互独立,当第一图片的一项检测识别任务完成后,进行下一图片的同一项检测识别任务。
例如,第一张图片的文字检测识别完,继续对该图片进行曲线检测,同时,可以进行第二张图片的文字检测。这样可以提升检测效率,最大化硬件使用效率。
本发明通过多任务并行模式进行检测识别,采取各司其职、不排队的工作机制,可以快速有效对图片进行高清化识别。在实际应用场景中,在E5-2680v3处理器,1080ti的显卡的服务器上,可以实现2秒完成检测,且准确率大于95%的识别服务。
本发明提出的试卷图片识别方法能够有效的将试卷中的图片,转换为基于XML的一种开放标准的矢量图形语言,可直接用代码来描绘图像,可用任何文字处理工具打开SVG图像,通过改变部分代码来使图像具有交互功能,并可以随时插入到HTML中通过浏览器来观看。
由于现有方法存储图像数据是直接保存jpg、png等方式,会造成图像质量损耗和需要耗费大量的硬件资源,不符合信息化时代图像数据存储发展的趋势,本发明能解决现有方法保存图片造成图片质量损V耗和占用巨大的硬件资源的问题,以达到图片高清化、图片编辑的目的。
试卷中图片识别在拍摄过程中,会出现纸张的变形,扭曲,角度倾斜的情况,对图片本身有干扰。为了避免这些干扰,能完整的识别出图片中所有元素且元素之间相互不干扰。本发明提出基于深度学习模型的快速检测识别系统,将图片中的不同种类元素检测识别出来。主要特征包括:基于深度学习线段检测、实心点检测、图片中的文字检测,其次是识别试卷中的圆锥曲线,本发明提出使用基于深度学习的像素分割的方法,训练了一个能快速将图片中的圆锥曲线的点分别检测出来,然后进行圆锥曲线拟合。最后是基于深度学习CRNN模型,标签为latex格式的文本识别,能够了解决教育行业中OCR识别特殊字符识别的难题。
本发明提出不同任务采用不同算法实现图片不同元素的检测识别,换言之,本发明采用任务并行的方式,将线段检测模块、文字检测识别模块、圆和曲线检测模型同时接收一张图片,同一时间处理各自的任务,能够快速检测识别图片中的元素。
为了实现快速的识别相应,多路并发的效果,本发明提出基于流水线的思路将识别服务部署在服务器上。
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
在介绍了本发明示例性实施方式的方法之后,接下来,参考图11对本发明示例性实施方式的基于深度学习的试卷识别系统进行介绍。
基于深度学习的试卷识别系统的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”或者“单元”,可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
基于同一发明构思,本发明还提出了一种基于深度学习的试卷识别系统,如图11所示,该系统包括:
图像获取模块1110,用于获取试卷图像;
检测识别模块1120,用于根据所述试卷图像,采用多任务并行模式进行检测识别;其中,检测识别任务包括:线段和实心点的检测,圆和曲线的检测,文字检测识别;检测识别的输出结果至少包括:实线、虚线、箭头、实心点、曲线、圆、文本内容;
其中,线段和实心点的检测是基于深度学习模型预测出线段的两个端点和实心点的热力图,找出热力图阈值最大区域的坐标,并将坐标映射回原图,得到实线、虚线、箭头、实心点坐标后,采用线段解析构成完整的几何图形;
圆和曲线的检测是基于深度学习模型预测出圆和曲线;
文字检测是基于单阶段目标检测算法FCOS,采用FPN特征金字塔和三分支的头检测网络;
试卷整合绘制模块1130,用于对检测识别的输出结果进行整合,将整合结果采用SVG绘制得到矢量图像。
应当注意,尽管在上文详细描述中提及了基于深度学习的试卷识别系统的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
基于前述发明构思,如图12所示,本发明还提出了一种计算机设备1200,包括存储器1210、处理器1220及存储在存储器1210上并可在处理器1220上运行的计算机程序1230,所述处理器1220执行所述计算机程序1230时实现前述基于深度学习的试卷识别方法。
基于前述发明构思,本发明提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现前述基于深度学习的试卷识别方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种基于深度学习的试卷识别方法,其特征在于,包括:
获取试卷图像;
根据所述试卷图像,采用多任务并行模式进行检测识别;其中,检测识别任务包括:线段和实心点的检测,圆和曲线的检测,文字检测识别;检测识别的输出结果至少包括:实线、虚线、箭头、实心点、曲线、圆、文本内容;
其中,线段和实心点的检测是基于深度学习模型预测出线段的两个端点和实心点的热力图,找出热力图阈值最大区域的坐标,并将坐标映射回原图,得到实线、虚线、箭头、实心点坐标后,采用线段解析构成完整的几何图形;
圆和曲线的检测是基于深度学习模型预测出圆和曲线;
文字检测是基于单阶段目标检测算法FCOS,采用FPN特征金字塔和三分支的头检测网络;
对检测识别的输出结果进行整合,将整合结果采用SVG绘制得到矢量图像。
2.根据权利要求1所述的方法,其特征在于,线段和实心点的检测方法具体包括:
基于深度学习ResNet+GaussianHeatmap关键点的方法对试卷图像进行线段端点和实心点的检测,模型的预测是预测输出线段端点和实心点的heatmap概率图;其中,模型的输出为69个通道,每个通道负责一项任务,前5个通道的任务分别是预测线段所有端点、实线、虚线、箭头、实心点在图像位置出现的概率图;剩下的64个通道用于预测线段上的端点的360°方向是否有其它端点和该端点连接成线段,经过线段的筛选,排除非必要线段。
3.根据权利要求2所述的方法,其特征在于,该方法还包括:
根据heatmap概率图,通过heat2endpoints算子获取实线、虚线、箭头与实心点的点坐标,并拟合得到线段;其中,heat2endpoints算子是一个概率图转坐标的过程,模型输出的是每个端点在图像中出现位置的概率图,根据概率图,选择阈值最大的区域作为端点的位置,得到端点在概率图中的位置,在映射回到原图,得到真实的坐标信息;
其中,具体方法包括:
将模型输出的各个通道图分别向左,向右,向下,向上进行翻转,得到左图、右图、上图、下图;
分别计算原图大于左图、原图大于右图,得到两张形状与原图一致的由布尔值组成的二值图,对两张二值图进行与运算得到一张形状与原图相同的sub_max1图;
对上图与下图采用相同计算方式,得到sub_max2图;
将sub_max1图与sub_max2图进行与运算,得到sub_max图;其中,sub_max图存储的为形状进行修剪过后的原图端点区域;
计算原图大于第一阈值,得到布尔二值图,再与sub_max图进行与运算,得到端点图,所述端点图存有端点的位置;
在试卷图像经过神经网络处理后,输出的heatmap是一个69维的数组,采用后64个通道任务预测线段端点在360°方向是否有点与它构成一条线段,使用MobulaOP框架调用CPP文件里的Line_Parser算子进行点到线段的转换;
其中,对端点图中的每一个端点分别进行计算,以当前点为中心点,在64个方向上查看维度值,如果当前点在其中一个方向上是一个线段的端点,维度值为1,否则为0;得到整个图片中所有的端点和端点的方向参数;若为一个孤点,所有方向参数都为0;筛选端点,在heatmap的一定区域内,对距离在预设距离范围内,且方向夹角在预设角度范围内的点,选取最亮的点作为区域内唯一的点;将筛选后的端点与维度值为1的其它端点组成线段,得到线段集合;将线段集合传入seg_line算子进行线段的筛选与拟合;其中,
在seg_line算子中,对线段集合中一条线段的两个端点之间计算向量角度,分别得到两个端点构成的线段,将构成的线段与模型后64个通道预测出的线段进行比较分析,将两者比较置信度低于80分的,将高于80分的保留;
在两条线段之间,计算第一线段的第一端点与第二线段的第一端点之间的欧氏距离,第一线段的第二端点与第二线段的第二端点之间的欧氏距离,若两个欧式距离均小于第一预设值,视为同一线段,删除其中一条线段;
计算两条线段之间的外积,判断是否相邻,若外积小于第二预设值,视为两线段相邻,进行线段合并;
计算线段长度,去除线段长度小于第三预设值的线段,按照线段长度对线段集合进行冒泡排序,当线段的一定范围内存在端点的数量大于第四预设值,对线段进行点修正算法计算,计算过程为:
假设计算目标为线段R与端点P(x 0y 0),将线段R远端端点与端点P(x 0y 0)组合得到一个新向量RP,计算端点P(x 0y 0)到线段R的距离为lRP,计算公式为:
Figure 95085DEST_PATH_IMAGE001
其中,ABC是根据线段R的表达式得到;
d为端点P到线段R的垂直距离;
x 0为表示端点P的横坐标;
y 0为表示端点P的纵坐标;
对新向量RP的长度与距离lRP的平方差求根,得到RP_hat,计算RP_hat/lRP得到比值ratio;
计算线段R的两个端点之间的曼哈顿距离,得到二维数组R1,R1为:R.x2-R.x1与R.y2-R.y1;ratio×R1+线段R近端端点后得到的点,为修正之后的新端点;
对端点之间的距离小于第五预设值的线段进行交点判别,计算过程为:
线段T与线段S,其上的四个点为(x1,y1),(x2,y2),(x3,y3),(x4,y4),准交点的计算公式为:
x=((x3-x4)×((y1-y2)×x1-(x1-x2)×y1)-(x1-x2)×((y3-y4)×x3-(x3-x4)×y3))/((y1-y2)×(x3-x4)-(y3-y4)×(x1-x2));
y=((y3-y4)×((y1-y2)×x1-(x1-x2)×y1)-(y1-y2)×((y3-y4)×x3-(x3-x4)×y3))/((y1-y2)×(x3-x4)-(y3-y4)×(x1-x2));
以准交点(x,y)与线段T,线段S的各个端点组合得到四个向量,若准交点与线段T端点组成的两个向量长度小于线段T的长度,且准交点与线段S端点组成的两个向量长度小于线段S的长度,判定准交点为线段T与线段S之间的交点;计算所有线段的端点与新交点的向量长度,如果向量长度小于第六预设值,将端点调整为新交点;
在对实线通道与虚线通道进行seg_line计算得到实线、虚线之后,对实线与箭头通道里提取出来的箭头点进行判别以得到箭头线;其中,判别过程为:对所有线段进行遍历,每个端点分别与所有箭头点计算欧氏距离,若任意端点与箭头点的距离小于第二阈值,则判定实线是箭头线;
将箭头线与实线分开之后,将实线集合与虚线集合传入lines_comparison函数中进行对比,去除与虚线重合的实线;对比流程为:选取实线E与虚线F,计算实线E和虚线F对应端点之间的欧氏距离,若两个距离均小于第三阈值,则判定实线E与虚线F重合,在实线集合中去除实线E;
得到区分好的箭头线集合,实线集合,虚线集合与实心点集合,将集合重组得到原图中的所有线条及由线条组成的图形。
4.根据权利要求1所述的方法,其特征在于,圆和曲线的检测方法具体包括:
将试卷图像输入到机器学习模型,输出曲线图层及圆图层;
对曲线图层中的每一层进行处理并判别,判别通过后将数据输入机器学习算法中进行拟合,得到B样条控制点,将B样条控制点转为SVG文件所需的贝塞尔曲线控制点集合;
对圆图层中的每一层进行处理并判别,判别通过后得到SVG文件所需的圆心与半径数据。
5.根据权利要求4所述的方法,其特征在于,对曲线图层中的每一层进行处理并判别,判别通过后将数据输入机器学习算法中进行拟合,得到B样条控制点,将B样条控制点转为SVG文件所需的贝塞尔曲线控制点集合,包括:
对曲线图层中的每一层图层按照顺序进行二值化处理,转为二值图;
对二值图进行OpenCV库的膨胀与腐蚀操作,去除会影响多元自适应样条回归算法效果的图片噪声;
利用nump.where函数获得二值图中像素值不为0的像素点的位置,得到两个形状相同的分别存有像素点横纵坐标值的一维numpy array数组,根据数组的长度判断图层中是否存在曲线,若数组的长度低于第七预设值判定不存在曲线;
在存在曲线的图层中,将所有像素点存在的位置送入多元自适应回归样条算法进行计算,得到能拟合曲线的多个关键点,将所述多个关键点经过两次求导获得每个点的曲率;将整个曲率数组均分为多份,计算每份的平均值,通过平均值的大小变化来找出曲线的驻点数量;对驻点所在区间内的点进行选择,反算出贝塞尔曲线的控制点,按照这些控制点画出与原曲线形状一致的可编辑曲线;
其中,多元自适应回归样条算法的计算公式为:
Figure 318256DEST_PATH_IMAGE002
其中,
Figure 320847DEST_PATH_IMAGE003
为算法输出的拟合曲线纵轴数值;
x'为横轴数值;
k为样条曲线次数,选择为3;
c i 为第i个像素点纵坐标数值;
B i (x')为第i个样条曲线函数,B i (x')存在三种形式:常数1;hinge函数,max(0,x'-constant)或max(0,constant-x');两个或多个hinge函数相乘;其中,constant需要在输入数据前选择,策略采用十分法,x'的最大值,x'的最小值,x'最大值与最小值之间距离均分十份后得到的九个点;
对圆图层中的每一层进行处理并判别,判别通过后得到SVG文件所需的圆心与半径数据,包括:
对圆图层中的每一层图层进行判别,判别过程与曲线图层相同;其中,对于每一个圆,取x轴的最大与最小值,y轴的最大与最小值,根据四个值计算圆的中心点与半径,画出与原图一致的可编辑的圆形。
6.根据权利要求1所述的方法,其特征在于,文字检测方法具体包括:
对试卷图像做预处理,得到预处理后的图片,其中预处理至少包括:增加噪音,亮度变换,对比度的变换,利用仿射变化的同时,文字的框的位置和放射矩阵相乘做变换;
选用FCOS模型训练文字检测模型,采用FPN多头预测的方式进行文字检测,训练文字检测模型后,截取文字片段和文字对应的内容,按照OCR数据格式整理,送入OCR模型训练文字识别;
按顺序拼接文字检测和文字识别的模型,得到输入图片、输出文字内容和对应坐标的函数;
将预处理后的图片输入拼接模型,得到文字内容。
7.根据权利要求1所述的方法,其特征在于,还包括:
设置FLASK+TORNADO的网络框架,以两层网络形式进行检测识别;其中,每一检测识别任务以网络服务的形式存在,检测识别任务之间相互独立,当第一图片的一项检测识别任务完成后,进行下一图片的同一项检测识别任务。
8.一种基于深度学习的试卷识别系统,其特征在于,包括:
图像获取模块,用于获取试卷图像;
检测识别模块,用于根据所述试卷图像,采用多任务并行模式进行检测识别;其中,检测识别任务包括:线段和实心点的检测,圆和曲线的检测,文字检测识别;检测识别的输出结果至少包括:实线、虚线、箭头、实心点、曲线、圆、文本内容;
其中,线段和实心点的检测是基于深度学习模型预测出线段的两个端点和实心点的热力图,找出热力图阈值最大区域的坐标,并将坐标映射回原图,得到实线、虚线、箭头、实心点坐标后,采用线段解析构成完整的几何图形;
圆和曲线的检测是基于深度学习模型预测出圆和曲线;
文字检测是基于单阶段目标检测算法FCOS,采用FPN特征金字塔和三分支的头检测网络;
试卷整合绘制模块,用于对检测识别的输出结果进行整合,将整合结果采用SVG绘制得到矢量图像。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一所述方法。
CN202210020087.3A 2022-01-10 2022-01-10 基于深度学习的试卷识别方法及系统 Active CN114120349B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210020087.3A CN114120349B (zh) 2022-01-10 2022-01-10 基于深度学习的试卷识别方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210020087.3A CN114120349B (zh) 2022-01-10 2022-01-10 基于深度学习的试卷识别方法及系统

Publications (2)

Publication Number Publication Date
CN114120349A true CN114120349A (zh) 2022-03-01
CN114120349B CN114120349B (zh) 2022-05-03

Family

ID=80363915

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210020087.3A Active CN114120349B (zh) 2022-01-10 2022-01-10 基于深度学习的试卷识别方法及系统

Country Status (1)

Country Link
CN (1) CN114120349B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114694165A (zh) * 2022-06-01 2022-07-01 济南大学 一种pid图纸智能识别与重绘方法
CN114898391A (zh) * 2022-07-12 2022-08-12 苏州阿尔脉生物科技有限公司 一种化学反应路线的确定方法、装置及电子设备
CN114974309A (zh) * 2022-07-29 2022-08-30 广州莱万科技股份有限公司 一种基于智能班牌的师生教学情况自动提醒方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109858374A (zh) * 2018-12-31 2019-06-07 武汉中海庭数据技术有限公司 高精度地图制作中箭头类标线自动提取方法和装置
CN110781648A (zh) * 2019-10-12 2020-02-11 安徽七天教育科技有限公司 一种基于深度学习的试卷自动转录系统及方法
US20200090539A1 (en) * 2018-08-13 2020-03-19 Hangzhou Dana Technology Inc. Method and system for intelligent identification and correction of questions
CN111627088A (zh) * 2020-04-03 2020-09-04 安徽七天教育科技有限公司 一种用于数学试卷图像识别的样本自动生成方法
JP2020161111A (ja) * 2019-03-27 2020-10-01 ワールド ヴァーテックス カンパニー リミテッド 神経網基盤機械翻訳およびマスコーパス(Math Corpus)を利用した数学問題概念類型予測サービス提供方法
CN112598000A (zh) * 2021-03-03 2021-04-02 北京世纪好未来教育科技有限公司 题目识别方法、装置、电子设备及计算机存储介质
CN113657354A (zh) * 2021-10-19 2021-11-16 深圳市菁优智慧教育股份有限公司 基于深度学习的答题卡识别方法及系统
CN113793292A (zh) * 2020-05-25 2021-12-14 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200090539A1 (en) * 2018-08-13 2020-03-19 Hangzhou Dana Technology Inc. Method and system for intelligent identification and correction of questions
CN109858374A (zh) * 2018-12-31 2019-06-07 武汉中海庭数据技术有限公司 高精度地图制作中箭头类标线自动提取方法和装置
JP2020161111A (ja) * 2019-03-27 2020-10-01 ワールド ヴァーテックス カンパニー リミテッド 神経網基盤機械翻訳およびマスコーパス(Math Corpus)を利用した数学問題概念類型予測サービス提供方法
CN110781648A (zh) * 2019-10-12 2020-02-11 安徽七天教育科技有限公司 一种基于深度学习的试卷自动转录系统及方法
CN111627088A (zh) * 2020-04-03 2020-09-04 安徽七天教育科技有限公司 一种用于数学试卷图像识别的样本自动生成方法
CN113793292A (zh) * 2020-05-25 2021-12-14 阿里巴巴集团控股有限公司 数据处理方法、装置、电子设备及存储介质
CN112598000A (zh) * 2021-03-03 2021-04-02 北京世纪好未来教育科技有限公司 题目识别方法、装置、电子设备及计算机存储介质
CN113657354A (zh) * 2021-10-19 2021-11-16 深圳市菁优智慧教育股份有限公司 基于深度学习的答题卡识别方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘洋等: "基于图像识别的网上阅卷系统的设计", 《电子技术与软件工程》 *
李彩虹等: "自动阅卷系统仿真", 《计算机仿真》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114694165A (zh) * 2022-06-01 2022-07-01 济南大学 一种pid图纸智能识别与重绘方法
CN114898391A (zh) * 2022-07-12 2022-08-12 苏州阿尔脉生物科技有限公司 一种化学反应路线的确定方法、装置及电子设备
CN114974309A (zh) * 2022-07-29 2022-08-30 广州莱万科技股份有限公司 一种基于智能班牌的师生教学情况自动提醒方法
CN114974309B (zh) * 2022-07-29 2022-11-08 广州莱万科技股份有限公司 一种基于智能班牌的师生教学情况自动提醒方法

Also Published As

Publication number Publication date
CN114120349B (zh) 2022-05-03

Similar Documents

Publication Publication Date Title
US11657602B2 (en) Font identification from imagery
CN114120349B (zh) 基于深度学习的试卷识别方法及系统
US10936911B2 (en) Logo detection
US9424493B2 (en) Generic object detection in images
WO2022033095A1 (zh) 一种文本区域的定位方法及装置
US7653244B2 (en) Intelligent importation of information from foreign applications user interface
CN109118473B (zh) 基于神经网络的角点检测方法、存储介质与图像处理系统
US20230021661A1 (en) Forgery detection of face image
JP2015087903A (ja) 情報処理装置及び情報処理方法
CN107886082B (zh) 图像中数学公式检测方法、装置、计算机设备及存储介质
US11809519B2 (en) Semantic input sampling for explanation (SISE) of convolutional neural networks
CN112101386A (zh) 文本检测方法、装置、计算机设备和存储介质
CN111414889B (zh) 基于文字识别的财务报表识别方法及装置
KR102026280B1 (ko) 딥 러닝을 이용한 씬 텍스트 검출 방법 및 시스템
WO2022125127A1 (en) Detection of image space suitable for overlaying media content
CN113592807A (zh) 一种训练方法、图像质量确定方法及装置、电子设备
CN112329744B (zh) 一种图片文字识别方法和装置
RU2777354C2 (ru) Система распознавания изображения: beorg smart vision
TW202409962A (zh) 可適性模型的自我訓練系統及使其進行自我訓練的方法
CN112085670A (zh) 一种联合语义可解释信息的图像修复方法及系统
CN117710208A (zh) 自适应模型的自我训练系统及使其进行自我训练的方法
CN114399655A (zh) 目标检测方法、系统及存储介质
CN117197818A (zh) 独立字符确定方法、装置、设备、存储介质和程序产品
CN115294636A (zh) 一种基于自注意力机制的人脸聚类方法和装置
CN111597375A (zh) 基于相似图片组代表特征向量的图片检索方法及相关设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant