CN117058700B - 答题卡识别方法、装置、设备和存储介质 - Google Patents

答题卡识别方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN117058700B
CN117058700B CN202310807597.XA CN202310807597A CN117058700B CN 117058700 B CN117058700 B CN 117058700B CN 202310807597 A CN202310807597 A CN 202310807597A CN 117058700 B CN117058700 B CN 117058700B
Authority
CN
China
Prior art keywords
picture
level
answer sheet
standard picture
standard
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.)
Active
Application number
CN202310807597.XA
Other languages
English (en)
Other versions
CN117058700A (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.)
Beijing Bosi Chuangcheng Technology Development Co ltd
Original Assignee
Beijing Bosi Chuangcheng Technology Development Co 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 Beijing Bosi Chuangcheng Technology Development Co ltd filed Critical Beijing Bosi Chuangcheng Technology Development Co ltd
Priority to CN202310807597.XA priority Critical patent/CN117058700B/zh
Publication of CN117058700A publication Critical patent/CN117058700A/zh
Application granted granted Critical
Publication of CN117058700B publication Critical patent/CN117058700B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/42Document-oriented image-based pattern recognition based on the type of document
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/96Management of image or video recognition tasks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/12Detection or correction of errors, e.g. by rescanning the pattern
    • G06V30/133Evaluation of quality of the acquired characters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/416Extracting the logical structure, e.g. chapters, sections or page numbers; Identifying elements of the document, e.g. authors

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开提供了一种答题卡识别方法、装置、设备和存储介质,包括获取待识别答题卡的初始图片;对初始图片进行预处理,得到待识别答题卡的标准图片;基于当前系统资源的占用等级,判断标准图片是否有效;在判断标准图片有效的情况下,由标准图片中识别出试卷编号以及各题目的答案。由于本申请可以根据系统资源的占用情况选择不同精度的标准图片进行处理,从而可以确保在不同的系统资源占用情况下,都可以高有效性的进行答题卡识别。

Description

答题卡识别方法、装置、设备和存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种答题卡识别方法、装置、设备和存储介质。
背景技术
随着答题卡的广泛普及和使用,越来越多的测试需要通过答题卡进行答题,尤其在远程教学场景下,通常由老师远程分发试卷数据,学生接收到试卷数据后自行打印答题卡进行作答,并在作答结束后将答题卡上传至可以进行答题卡识别的识别系统。该识别系统将对答题卡上的客观题进行机器判读,同时将主观题的答案提取出来交由老师进行人工判读,并综合机器判读和人工判读给出最终的试卷评分反馈给学生。然而,识别系统的系统资源是有限的,在大量学生集中上传答题卡时,将造成系统响应变慢,从而相同时间内可以有效识别出的答题卡数量降低。因此,如何在大量学生集中上传答题卡时提高答题卡识别的有效性,是本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本公开提出了一种答题卡识别方法、装置、设备和存储介质,可以确保在不同的系统资源占用情况下,都可以高有效性的进行答题卡识。
根据本公开的第一方面,提供了一种答题卡识别方法,包括:
获取待识别答题卡的初始图片;
对所述初始图片进行预处理,得到所述待识别答题卡的标准图片;
基于当前系统资源的占用等级,判断所述标准图片是否有效;
在判断所述标准图片有效的情况下,由所述标准图片中识别出试卷编号以及各题目的答案。
在一种可能的实现方式中,在基于当前系统资源的占用等级,判断所述标准图片是否有效时,包括:
在所述占用等级为所述第一等级时,直接判定所述标准图片为有效图片;
在所述占用等级不是所述第一等级时,获取所述标准图片的像素信息,并基于所述像素信息和确定的占用等级对所述标准图片的有效性进行判定。
在一种可能的实现方式中,在获取所述标准图片的像素信息,并基于所述像素信息和确定的占用等级对所述标准图片的有效性进行判定时,包括:
在所述占用等级为第二等级时,根据所述像素信息对所述标准图片的有效性进行判定;
在所述占用等级为第三等级时,根据所述像素信息以及所述标准图片中定位标识的清晰度对所述标准图片的有效性进行判定;
在所述占用等级为第四等级时,根据所述像素信息、所述标准图片中定位标识的清晰度以及所述标准图片中试卷内容清晰度对所述标准图片的有效性进行判定。
在一种可能的实现方式中,在获取待识别答题卡的初始图片时,包括:
判断所述初始图片是否满足预设的安全防护条件;
在判断所述初始图片满足所述安全防护条件的情况下,将所述初始图片加入到待识别任务队列中。
在一种可能的实现方式中,所述安全防护条件包括:所述初始图片的文件大小小于预设的文件大小阈值、所述初始图片的格式符合预设的可支持图片格式以及在服务系统为Linux的情况下所述初始图片的权限为只读中的至少一种。
在一种可能的实现方式中,在对所述初始图片进行预处理,得到所述待识别答题卡的标准图片时,包括:
对所述初始图片进行膨胀处理、腐蚀处理、等比缩放处理、灰度处理、模糊处理以及二值化处理中的至少一种预处理操作,得到预处理图片;
对所述预处理图片中的定位标识进行识别,并确定所述定位标识在所述初始图片上的中心位置;
根据所述定位标识在所述初始图片上的中心位置,采用仿射变换,将预处理图片转换为所述待识别答题卡的标准图片。
在一种可能的实现方式中,在由所述标准图片中识别出试卷编号以及各题目的答案时,包括:
由所述标准图片中分割出表征试卷编号的条码区域,并对所述条码区域进行解析,得到试卷编号;
基于所述试卷编号,获取试卷中各题目的答题区域在所述待识别答题卡中的位置以及区域尺寸和各题目的题目类型;
基于各题目的答题区域在所述待识别答题卡中的位置以及区域尺寸,由所述标准图片中分割出各题目的答题区域;
基于各题目的答题区域和所述题目类型,识别出试卷中各题目的答案。
根据本公开的第二方面,提供了一种答题卡识别装置,包括:
图片获取模块,用于获取待识别答题卡的初始图片;
预处理模块,用于对所述初始图片进行预处理,得到所述待识别答题卡的标准图片;
清晰度判断模块,用于基于当前系统资源占用等级,判断所述标准图片是否清晰;
答题卡识别模块,用于在判断所述标准图片清晰的情况下,由所述标准图片中识别出试卷编号以及试卷中各题目的答案。
根据本公开的第三方面,提供了一种答题卡识别设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行本公开第一方面所述的方法。
根据本公开的第四方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现本公开第一方面所述的方法。
在本公开中一种答题卡识别方法,包括获取待识别答题卡的初始图片;对初始图片进行预处理,得到待识别答题卡的标准图片;基于当前系统资源的占用等级,判断标准图片是否有效;在判断标准图片有效的情况下,由标准图片中识别出试卷编号以及各题目的答案。由于本申请可以根据系统资源的占用情况选择不同精度的标准图片进行处理,从而可以确保在不同的系统资源占用情况下,都可以高有效性的进行答题卡识别。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开一实施例的答题卡识别方法的流程图;
图2示出根据本公开一实施例的答题卡的界面图;
图3示出根据本公开一实施例的边界识别结果的界面图;
图4示出根据本公开一实施例的标准图片的界面图;
图5示出根据本公开一实施例的条码区域的界面图;
图6示出根据本公开一实施例的子答题区域的界面图;
图7示出根据本公开一实施例的答题卡别方法的示例流程图;
图8示出根据本公开一实施例的答题卡识别装置的示意性框图;
图9示出根据本公开一实施例的答题卡识别设备的示意性框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
<方法实施例>
图1示出根据本公开一实施例的答题卡识别方法的流程图。该方法由可以进行答题卡识别的识别系统实施。如图1所示,该方法包括步骤S1100-S1400。
S1100,获取待识别答题卡的初始图片。
具体地,学生在通过答题卡完成作答后,可以通过拍照或者扫描的方式得到答题卡初始图片,并通过与识别系统通信连接的前端设备将答题卡的初始图片发送至识别系统,这样,识别系统便可以获取到待识别答题卡的初始图片。其中,该前端设备可以是手机,可以是电脑,可以是学习机,还可以是其它智能设备,在此不再赘述。
在一种可能的实现方式中,为了防止识别系统被恶意攻击以及使用高峰期出现的聚集性请求,在获取到待识别答题卡的初始图片时,需要判断初始图片是否满足安全防护条件,在满足安全防护条件的情况下,再将其加入至待识别任务队列中等待进一步处理。
在一种可能的实现方式中,安全防护条件可以包括初始图片的文件大小小于预设的文件大小阈值、初始图片的格式符合预设的可支持图片格式以及在服务系统为Linux的情况下初始图片的权限为只读中的至少一种。
此处需要说明的是,有些恶意攻击会向识别系统中上传一个较大的图片文件,以占用识别系统中的大量资源,这样,识别系统便没有办法及时响应正常用户的使用需求,从而影响用户的使用体验。为了防止此种类型的恶意攻击,需要限定识别系统最大支持的图片文件大小(maxFileSize),将maxFileSize作为预设的文件大小阈值,并设置包括初始图片的文件大小小于预设的文件大小阈值的安全防护条件。这样,在获取到初始图片时,便可以判断初始图片文件的文件大小是否小于maxFileSize:在小于maxFileSize的情况下,判断该初始图片满足安全防护条件,并执行将初始图片加入待识别任务队列中的操作;在大于等于maxFileSize的情况下,判断该初始图片不满足安全防护条件,并执行向前端设备返回False提示、删除识别系统中接收到的初始图片的操作。
进一步地,为了防止不支持的图片格式进入识别系统,导致识别系统报错,需要限定识别系统可支持的图片格式(fileTypes),并设置包括初始图片的格式符合预设的可支持图片格式的安全防护条件。这样,在获取到初始图片时,便可以判断初始图片文件的格式是否符合fileTypes:在符合fileTypes的情况下,判断该初始图片满足安全防护条件,并执行将初始图片加入待识别任务队列中的操作;在不符合fileTypes的情况下,判断该初始图片不满足安全防护条件,并执行向前端设备返回False提示、删除识别系统中接收到的初始图片的操作。其中,预设的可支持图片格式可以以数组形式传入,例如:[“jpg”,“png”]。
进一步地,Linux系统下,为了预防php或java ssh等早期存在安全漏洞的服务在接触到初始图片的情况下,将初始图片作为脚本执行,需要设置包括初始图片的权限为只读的安全防护条件。这样,在获取初始图片时,便可以判断初始图片的权限是否为只读:在权限为只读的情况下,断该初始图片满足安全防护条件,并执行将初始图片加入待识别任务队列中的操作;在权限不是只读的情况下,断该初始图片不满足安全防护条件,并执行设置初始图片权限为只读的操作,并在权限设置完毕后将其加入待识别任务队列中。
在一种可能的实现方式中,安全防护条件中包括初始图片的文件大小小于预设的文件大小阈值、初始图片的格式符合预设的可支持图片格式以及在服务系统为Linux的情况下初始图片的权限为只读三项内容,在该实施例中,在获取到初始图片时,可以依次执行如下步骤:
第一,判断初始图片的文件大小是否小于maxFileSize,在小于maxFileSize的情况下,执行下一步;在大于等于maxFileSize的情况下,执行向前端返回False提示、删除识别系统中接收到的初始图片的操作。
第二,判断初始图片的格式是否符合fileTypes,在符合fileTypes的情况下,执行下一步;在不符合fileTypes的情况下,执行向前端返回False提示、删除识别系统中接收到的初始图片的操作。
第三,判断当前识别系统是否为Linux系统,在当前系统为Linux系统的情况下,将初始图片的权限设置为只读,并将权限为只读的初始图片作为满足安全防护条件的初始图片,并将其加入到待识别队列中等待处理。在当前系统不是Linux系统的情况下,直接将文件大小小于maxFileSize且符合fileTypes的初始图片作为满足安全防护条件的初始图片,并将其加入至待识别队列中等待处理。
在一种可能的实现方式中,在将初始图片加入到待识别任务队列中时,还包括记录该初始图片的日志信息。其中,该日志信息包括初始图片的上传用户ID,来源IP,文件路径中的至少一种。这样,在发现非法文件后,便可以根据日志信息查询非法文件的来源,以追究相关人员的法律责任。
在将初始图片加入待识别队列以后,便可以由待识别队列中按序读取初始图片,并对读取到的初始图片执行步骤S1200。
S1200,对初始图片进行预处理,得到待识别答题卡的标准图片。
在一种可能的实现方式中,在对初始图片进行预处理,得到待识别答题卡的标准图片时,可以包括以下步骤:
第一,对初始图片进行膨胀处理、腐蚀处理、等比缩放处理、灰度处理、模糊处理以及二值化处理中的至少一种预处理操作,得到预处理图片。
为了有效地去除初始图片中的干扰信息,在一种可能的实现方式中,在获取到初始图片后,将对初始图片依次进行膨胀处理、腐蚀处理、等比缩放处理、灰度处理、模糊处理以及二值化处理。
在一种可能的实现方式中,在对初始图片依次进行膨胀处理、腐蚀处理、等比缩放处理、灰度处理、模糊处理以及二值化处理时,可以基于opencv实现。具体步骤如下:
首先,使用opencv的imread方法读取初始图片。
其次,使用opencv的dilate函数和erode函数,依次对初始图片进行膨胀处理和腐蚀处理,以去除初始图片中的细小边框,避免细小边框对后续定位标识识别的影响。其中,dilate函数中卷积核尺寸、膨胀像素值以及erode函数中的卷积核尺寸、膨胀像素值可以根据初始图片的尺寸进行设置。举例来说,在初始图片的宽为2694px、高为3924px时,可以将dilate函数中的卷积核尺寸设置为7x7,膨胀像素值设置为1px。将erode函数中的卷积核尺寸设置为7x7,腐蚀像素值设置为1px。
然后,将腐蚀处理后的图片进行等比例缩放。具体地,将腐蚀处理后的图片中较短的一边缩放为第一设定宽度,并选择长边等比缩放。其中,该第一设定宽度可以根据初始图片的尺寸进行设置。举例来说,在初始图片的宽为2694px、高为3924px时,可以将第一设定宽度设置为640px。通过等比缩放处理可以减少后续的计算量,从而提高答题卡识别的效率。
接着,使用opencv的cvtColor函数,将等比例缩放后的图片转换为灰度图。
接着,使用opencv的GaussianBlur函数,对得到的灰度图进行模糊处理,以进一步去除图片中的噪点。其中,在进行模糊处理时,可以将GaussianBlur函数中的窗口尺寸设置为3x3,将标准差设置为0,以达到更好的去躁效果。
最后,使用opencv的adaptiveThreshold函数,将模糊处理后的图片进行自适应二值化处理,并将二值化处理后的图片作为最终得到的预处理图片。其中,在进行二值化处理时,可以将adaptiveThreshold函数中的参数设置为255,cv.ADAPTIVE_THRESH_MEAN_C,cv.THRESH_BINARY,11,9。
第二,对预处理图片中的定位标识进行识别,并确定定位标识在初始图片上的中心位置。
此处需要说明的是,定位标识用于对答题卡进行定位,为了通过更少的定位标识准确地实现对答题卡的定位,在示例1中,可以在答题卡的左上角,右上角,左下角以及右下角分别设置一个第一定位标识(共计3个第一定位标识),该第一定位标识的渲染效果为一个空心矩形加一个实心矩形。在答题卡的右下角设置一个第二定位标识,该第二定位标识的渲染效果为两个空心矩形。
进一步地,可以将示例1中,第一定位标识外部空心矩形的长宽均设置为56px,线条宽度设置为8px,将内部的实心矩形的长宽均设置为24px。第二定位标识外部空心矩形的长宽均设置为56px,线条宽度设置为8px,将内部矩形长宽均设置为24px,线条宽度设置为8px。以提高定位标识的识别效率和准确性。参照上述参数设置定位标识得到的答题卡可以如图2所示。
续上示例1,在对预处理图片中的定位标识进行识别时,可以基于opencv实现,具体地步骤如下:
首先,使用opencv中的cv2.Canny函数查找出预处理图片中的所有边界。其中,cv2.Canny函数所使用的参数可以设置为50,150,5,识别出的所有边界可以参见图3所示。
其次,使用opencv中的cv2.findContours函数,由图3所示的所有边界中查到所有具有闭合边界的轮廓。
然后,由查询到的所有轮廓中,查找3层的轮廓(即图3中位于左上、右上、左下的三个3层的轮廓),并将其作为位于左上、右上、左下的3个第一定位标识。
进一步地,若识别出的3层的轮廓数量多于3个,则针对每个3层的轮廓,执行如下操作:计算最外面一层和中间层的第一面积比,并判断第一面积比是否在第一预设范围内,若在第一预设范围内时,则将其选出来作为位于左上、右上、左下的3个第一定位标识。其中,该第一预设范围可以是1.90至2.02。优选地,在第一面积比为1.96时,将其选出来作为位于左上、右上、左下的3个第一定位标识。
进一步地,在通过第一面比阈值筛选出的3层的轮廓数量仍然多于3个,则进一步计算中间层和里层的第二面积比,并判断第二面积比是否在第二预设范围内,若在第二预设范围内时,则将其筛选出来作为位于左上、右上、左下的3个第一定位标识。其中,该第二预设范围可以是5.3至5.58)。优选地,在第二面积比为5.44时,将其选出来作为位于左上、右上、左下的3个第一定位标识。
通过以上三个步骤的筛选即可以准确地识别出位于左上、右上、左下的3个第一定位标识。
接着,由查询到的所有轮廓中,查找4层的轮廓(如图3中位于右下的1个4层的轮廓),将其作为位于右下的1个第二定位标识。
进一步地,查找到的4层的轮廓数量多于1个,可以忽略最内侧的轮廓,然后参照位于第一定位标识的识别过程,最终筛选出一个4层的轮廓作为位于右下角的第二定位标识。
在识别出4个定位标识后,便可以通过等比计算,找到4个定位标识在初始图片上的位置,进而基于各定位标识在初始图片上的位置,使用opencv中moments函数确定出各定位标识在初始图片上的中心位置。
第三,根据定位标识在初始图片上的中心位置,采用仿射变换,将预处理图片转换为待识别答题卡的标准图片。其中,以A4纸张为例,标准图片效果如图4所示,四个定位点位于图片四个顶点,图片宽度为1762px,高度为1762px。
续上示例1,在确定4个定位标识在初始图片上的中心位置后,可以使用opencv中的v2.getPerspectiveTransform和cv2.warpPerspective对预处理图片进行仿射变换,将其转换到标准尺寸上,从而得到如图4所示的标准图片。
在得到标准图片后,便可以执行S1300,基于当前系统资源的占用等级,判断标准图片是否有效。
在一种可能的实现方式中,可以根据CPU占用率或者内存占用率将系统资源的占用等级划分为至少两个,分别为第一等级以及其它等级。在占用等级为第一等级时,直接判定标准图片为有效图片,在占用等级不是第一等级时,将获取标准图片的像素信息,并基于标注图片的像素信息和确定的占用等级对标准图片的有效性进行判定。
在一种可能的实现方式中,根据内存占用率将系统资源占用等级具体划分为了四等,分别为第一等级(leve0)、第二等级(leve1)、第三等级(leve2)和第四等级(leve3)。其中,在内存占用率低于20%情况下,确定系统资源的占用等级为第一等级。在内存占用率高于或等于20%,且低于40%时情况下,确定系统资源的占用等级为第二等级。在内存占用率高于或等于40%,且低于80%时情况下,确定系统资源的占用等级为第三等级。在内存占用率高于或等于80%时情况下,确定系统资源的占用等级为第四等级。由此可见,占用等级越高,系统资源越紧张。
在占用等级为第二等级时,根据标准图片的像素信息对标准图片的有效性进行判定。具体地,该像素信息为像素尺寸,在占用等级为第二等级时,获取标准图片的像素尺寸,判断该像素尺寸是否小于标准像素尺寸,在小于标准像素尺寸的情况下,判定该标准图片有效。其中,标准像素尺寸根据应用场景进行设置,优先地,可以将该标准像素尺寸设置为(2400PX,5000PX)。
在占用等级为第二等级时,根据像素信息以及标准图片中定位标识的清晰度对标准图片的有效性进行判定。具体地,获取标准图片的像素尺寸,判断该像素尺寸是否小于标准像素尺寸,在小于标准像素尺寸的情况下,继续判断标准图片中定位标识的清晰度,在定位标识的清晰也满足要求时,判定该标准图片有效。
在占用等级为第四等级时,根据像素信息、标准图片中定位标识的清晰度以及标准图片中试卷内容清晰度对标准图片的有效性进行判定。具体地,获取标准图片的像素尺寸,判断该像素尺寸是否小于标准像素尺寸,在小于标准像素尺寸的情况下,继续判断标准图片中定位标识的清晰度,在定位标识的清晰满足要求的情况下,继续判断标准图片中试卷的清晰度,在试卷的清晰度也满足要求的情况下,判定该标准图片有效。
也就是说,系统资源的占用等级越高,有效性识别的标准越高,从而可以集中有限的资源进行高质量标准图片的处理,从而确保每张被处理的标准图片中都可以有效的识别出答题卡中的答案,从而提高答题卡识别的有效性。例如,针对100个标准图片,经过处理后,20个无法识别出答案,80个可以识别出答题,则在系统资源相对较多的情况下,对100个标准图片均进行识别处理,从而得到80个答题卡的识别结果,同时返回20个识别错误的提示。在系统资源紧张的情况下,仅对80个标准图片进行识别处理,从而也可以得到80个答题卡的识别结果,从而使得系统资源相对较多的情况下以及较少的情况下,都可以完成80个答题卡的有效识别,确保在系统资源紧张的情况下也可以高有效性的进行答题卡识别。
下面结合一个具体的示例对步骤S1300进行详细说明。在该示例中,在获取到标准图片的后,可以按照如下步骤进行标准图片有效性的判断:
第一,当level为0时,直接判定标准图片为有效图片并相前端设备返回True提示;否则进入下一步。
第二,获取标准图片的像素尺寸,判断其像素尺寸是否超出预设像素尺寸,若超出预设像素尺寸,判定标准图片无效并向前端设备返回False提示;否则,当level为1时,判定标准图片有效并向前端设备返回True提示,当level不为1时,进入下一步。
第三,校验定位标识的第一清晰度,在第一清晰度不满足要求时,判定标准图片无效并向前端设备返回False提示;否则,当level为2时,判定标准图片有效并向前端返回True提示,当level不为2时,进入下一步。
在一种可能的实现方式中,在校验定位标识的第一清晰度,基于各定位标识的色值平均值实现。
针对如图4的标准图片中的4个定位标识,在基于各定位标识的色值平均值校验定位标识的第一清晰度时,可以包括以下步骤:
首先,根据标准图片的尺寸,确定标准图片中各定位标识的位置。具体地,在标准图片的宽度为w,高度为h时,则标准图片中各定位标识的边长k=B*w,其中,B等于定位标识边长与答题区域宽度的比值。举例来说,在如图2所示的答题卡中,B=0.0317。以标准图片的左上角为坐标原点,则四个定位标识在标准图片中的位置分别为(0,0,k,k),(w-k,0,k,k),(0,h-k,k,k),(w-k,h-k,k,k)。
其次,计算各定位标识所在位置处的平均色值,并对计算出的各平均色值求平均值,得到所有定位标识的平均色值。举例来说,左上角定位标识所在位置处(0,0,k,k)的平均色值为A1,右上角定位标识所在位置处(w-k,0,k,k)的平均色值为A2,左下角定位标识所在位置处(0,h-k,k,k)的平均色值为A3,右下角定位标识所在位置处,(w-k,h-k,k,k)的平均色值为A4,则所有定位标识的平均色值N1=(A1+A2+A3+A4)/4。
最后,判断所有定位标识的平均色值是否满足在预设第一色值范围内,若在第一色值范围内,则判定定位标识的第一清晰度满足要求,否则判定第一清晰度不满足要求。其中,第一色值范围可以根据识别系统开发以来,识别成功的答题卡的定位标识的色值平均值范围确定。优选地,第一色值范围的最小值为121.77,最大值为179.86。在该实施例中,若计算得到的所有定位标识的色值平均值N1>=121.77且N1<=179.86,则可以判定定位标识的第一清晰度满足要求,否则判定第一清晰度不满足要求。
此处需要说明的是,在该实施例中,四个定位标识均为黑白色,不存在干扰色,因此,采用上述可以简单高效地判断定位标识是否清晰。
第四,校验试卷编号的第二清晰度,在第二清晰度不满足要求时,判定标准图片无效并向前端返回False提示;否则,当level为3时,判定标准图片有效并向前端返回True提示。
在一种可能的实现方式中,在校验试卷编号的第二清晰度,基于标准图片上预设区域内的色值平均值实现。
对如图4的标准图片,在基于标准图片上预设区域内的色值平均值校验试卷编号的第二清晰度时,可以包括以下步骤:
首先,根据标准图片的尺寸,确定标准图片中预设区域的位置。具体地,在标准图片的宽度为w,高度为h时,则标准图片中预设区域的高度r=C*w。其中,C等于答题卡顶部区域(即答题卡顶部至试卷标识底部的区域)与整个答题卡高度的比值。举例来说,如图4所示的答题卡中,C=0.073。以标准图片的左上角为坐标原点,则该预设区域的位置为(0,0,w,r)。
其次,计算预设区域内的色值平均值,并判断预设区域内的色值平均值是否在第二色值范围内,若在第二色值范围内,则判定试卷的第二清晰度满足要求,否则判定第二清晰度不满足要求。其中,第二色值范围可以根据识别系统开发以来,识别成功的答题卡的预设区域的色值平均值范围确定。优选地,第二色值范围的最小值可以为197.34。在该实施例中,若计算得到的预设区域的色值平均值N2>=197.34,则可以判定判定试卷的第二清晰度满足要求,否则判定第二清晰度不满足要求。
通过根据系统资源的占用情况,动态调整标准图片有效性的判断标准,可以确保系统的高可用性。
在判断标准图片有效的情况下,便可以执行步骤S1400,在判断标准图片有效的情况下,由标准图片中识别出试卷编号以及各题目的答案。其中,该试卷编号可以包括产品号、学科ID、试卷ID、当前答题卡的页数中的至少一种。其中,产品号用于标识试卷所来源的产品。
在一种可能的实现方式中,在由标准图片中识别出试卷编号以及各题目的答案时,可以包括以下步骤:
第一,由标准图片中分割出表征试卷编号的条码区域,并对条码区域进行解析,得到试卷编号。
具体地,识别系统中预先存储有标准图片中条码区域的位置信息,这样,在获取到有效的标准图片后,便可以获取到条码区域的位置信息,并基于条码区域的位置信息由标准图片中分割出如图5所示的条码区域。
在分割出条码区域后,可以调用python pyzbar的pyzbar.decode的方法,对截取出的条码区域进行解析,从而得试卷编号。其中,该试卷编号由产品名,学科ID,试卷ID,页数分隔符和页码中的至少一项信息拼接得到。该产品名用于标识试卷所来源。举例来说,通过对图5所示的条码区域进行解析,得到的试卷编号为G0199999999P01,其中,G为产品名,01为学科ID,99999999为试卷ID,P为页数分隔符,01为页码。
第二,基于试卷编号,获取试卷中各题目的答题区域在所述待识别答题卡中的位置以及区域尺寸和各题目的题目类型。
此处需要说明的是,本申请中识别的答题卡是由识别系统生成的。具体地,该识别系统中预先存储有多种试卷,在进行测试时,老师可以由系统中选择目标试卷,并将目标试卷发送至各个学生,学生在接收到试卷后,打开试卷,并点击试卷中的生成答题卡标识,此时,该识别系统将自动生成目标试卷的答题卡并记录该答题卡的试卷编号,同时记录该试卷编号与答题卡中各题目的题目类型、各题目的答题区域在待识别答题卡中的位置以及区域尺寸的映射关系表。这样,得到试卷编号后,便可以通过查询映射关系表的方式,得到该试卷中各题目的题目类型以及各题目的答题区域在待识别答题卡中的位置以及区域尺寸。
第三,基于各题目的答题区域在待识别答题卡中的位置以及区域尺寸,由所述标准图片中分割出各题目的答题区域。具体地,基于各题目的答题区域在待识别答题卡中的位置以及区域尺寸,使用opencv mat即可以由标准图片中分割出各题目的答题区域。
第四,基于各题目的答题区域和题目类型,识别出试卷中各题目的答案。
在一种可能的实现方式中,题目类型可以包括客观题和主观题中的至少一种。其中,该客观题可以包括选择题和判断题中的至少一种,该主观题可以包括填空题、简答题和通用题中的至少一种。
在当前需识别的答题区域对应的题目类型为客观题时,可以选择客观题处理器,以通过客观题处理器自动识别出客观题的答案,并对客观题的答案进行机器判卷。
下面以选择题为例,对客观题答案识别和判卷的过程进行说明。具体地,在当前答题区域对应的题目类型为选择题时,将按照生成答题卡时记录的各选择题的答题区域位置和尺寸,分割出如图6所示的子答题区。然后,在由子答题区域中切分出4个矩形区域,分别对应A、B、C、D四个选项。接着,计算各矩形区域内的色值平均值,将色值平均值最低的矩形区域对应的选项最为该题的答案。最后,由识别系统中获取该题对应的标准答案,以基于标准答案对该题的答案进行机器判读。
在当前需识别的答题区域对应的题目类型为主观题时,可以选择主观题处理器对当前的答题区域进行处理,并将处理后的答题区域发送至老师,这样,老师便可以对主观题的答案进行判读。
在一种可能的实现方式中,主观题处理器在获取到主观题的答题区域时,依次对答题区域进行锐化处理和二值化处理,从而使得答题区域中的答案更加清晰,方便老师进行判卷。
在完成客观题的机器判读以及主观题的人工判读后,将综合判读结果给出试卷评分,并通过前端设备反馈给学生。
在一种可能的实现方式中,在由标准图片中识别出试卷编号以及试卷中各题目的答题区域后,还包括:对试卷编号以及各题目的答题区域进行分层缓存。具体地,采用阿里云OSS(可使用类似服务代替)对答题卡中分割出的各题目的答题区域进行存储。采用RDS服务对答题卡的试卷编号以及映射关系表等关系型数据进行存储。同时,通过Redis结果查询服务,缓存学生对试卷成绩的结果查询条目,该层的高效性,满足基本信息查询的效率。通过数据同步服务器,根据数据库sql操作日志,实时将结果更新到redis层。通过以上分级存储的方式,可以有效解决用户高峰期,数据阻塞的问题,提高用户的查询效率。
本公开提供了一种答题卡识别方法,包括获取待识别答题卡的初始图片;对初始图片进行预处理,得到待识别答题卡的标准图片;基于当前系统资源的占用等级,判断标准图片是否有效;在判断标准图片有效的情况下,由标准图片中识别出试卷编号以及各题目的答案。由于本申请可以根据系统资源的占用情况选择不同精度的标准图片进行处理,从而可以确保在不同的系统资源占用情况下,都可以高有效性的进行答题卡识别。
<方法示例>
图7示出根据本公开一实施例的答题卡识别方法的示例流程图。如图7所示,该方法包括步骤S2100-S2900。
S2100,获取待识别答题卡的初始图片,并判断初始图片是否满足预设的安全防护条件。
S2200,在判断初始图片满足安全防护条件的情况下,将初始图片加入到待识别任务队列中。
S2300,由任务队列中按序获取初始图片,并加载到识别系统内存中。
S2400,对于加载至识别系统内存的初始图片进行预处理,得到所述待识别答题卡的标准图片。
S2500,基于当前系统资源的占用等级,判断当前标准图片是否有效。
S2600,在判断当前标准图片有效的情况下,由标准图片中识别出试卷条码,并通过解析试卷条码,得到试卷编号。
S2700,根据试卷编号查询各题目的答题区域在所述待识别答题卡中的位置以及区域尺寸和题目类型,并基于查询到的各题目在题卡中的位置以及区域尺寸,分割出各题目的答题区域。
S2800,结合各题目的题目类型以及分割出的答题区域,识别客观题答案,并优化主观题的答案图片(即答题区域)。
S2900,将识别结果入库,并提供查询服务。
此处需要说明的是,在判断初始图片不满足安全防护条件的情况下,以及判定当前标准图片无效的情况下,将向前端设备返回失败提示以及失败原因。
<装置实施例>
图8示出根据本公开一实施例的答题卡识别装置的示意性框图。如图8所示,答题卡识别装置100包括:
图片获取模块110,用于获取待识别答题卡的初始图片;
预处理模块120,用于对所述初始图片进行预处理,得到所述待识别答题卡的标准图片;
清晰度判断模块130,用于基于当前系统资源占用等级,判断所述标准图片是否清晰;
答题卡识别模块140,用于在判断所述标准图片清晰的情况下,由所述标准图片中识别出试卷编号以及试卷中各题目的答案。
<设备实施例>
图9示出根据本公开一实施例的答题卡识别设备的示意性框图。如图9所示,答题卡识别设备200包括:处理器210以及用于存储处理器210可执行指令的存储器220。其中,处理器210被配置为执行可执行指令时实现前面任一所述的答题卡识别方法。
此处,应当指出的是,处理器210的个数可以为一个或多个。同时,在本公开实施例的答题卡识别设备200中,还可以包括输入装置230和输出装置240。其中,处理器210、存储器220、输入装置230和输出装置240之间可以通过总线连接,也可以通过其他方式连接,此处不进行具体限定。
存储器220作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序和各种模块,如:本公开实施例的答题卡识别方法所对应的程序或模块。处理器210通过运行存储在存储器220中的软件程序或模块,从而执行答题卡识别设备200的各种功能应用及数据处理。
输入装置230可用于接收输入的数字或信号。其中,信号可以为产生与设备/终端/服务器的用户设置以及功能控制有关的键信号。输出装置240可以包括显示屏等显示设备。
<存储介质实施例>
根据本公开的第四方面,还提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器210执行时实现前面任一所述的答题卡识别方法。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (7)

1.一种答题卡识别方法,其特征在于,包括:
获取待识别答题卡的初始图片;
对所述初始图片进行预处理,得到所述待识别答题卡的标准图片;
基于当前系统资源的占用等级,判断所述标准图片是否有效;
在判断所述标准图片有效的情况下,由所述标准图片中识别出试卷编号以及各题目的答案;
其中,所述占用等级包括第一等级、第二等级、第三等级和第四等级;
在基于当前系统资源的占用等级,判断所述标准图片是否有效时,包括:
在所述占用等级为所述第一等级时,直接判定所述标准图片为有效图片;
在所述占用等级为第二等级时,根据像素信息对所述标准图片的有效性进行判定;
在所述占用等级为第三等级时,根据所述像素信息以及所述标准图片中定位标识的清晰度对所述标准图片的有效性进行判定;
在所述占用等级为第四等级时,根据所述像素信息、所述标准图片中定位标识的清晰度以及所述标准图片中试卷内容清晰度对所述标准图片的有效性进行判定;
在对所述初始图片进行预处理,得到所述待识别答题卡的标准图片时,包括:
对所述初始图片进行膨胀处理、腐蚀处理、等比缩放处理、灰度处理、模糊处理以及二值化处理中的至少一种预处理操作,得到预处理图片;
对所述预处理图片中的定位标识进行识别,并确定所述定位标识在所述初始图片上的中心位置;
根据所述定位标识在所述初始图片上的中心位置,采用仿射变换,将预处理图片转换为所述待识别答题卡的标准图片;
其中,所述定位标识包括三个第一定位标识和一个第二定位标识,所述三个第一定位标识分别设置在答题卡的左上角、右上角以及左下角,所述第一定位标识的渲染效果为个空心矩形加一个实心矩形,所述第二定位标识设置在答题卡的右下角,所述第二定位标识的渲染效果为两个空心矩形;
在对所述预处理图片中的定位标识进行识别,并确定所述定位标识在所述初始图片上的中心位置时,包括:
使用opencv中的cv2.Canny函数查找出预处理图片中的所有边界;
使用opencv中的cv2.findContours函数,由所有边界中查到所有具有闭合边界的轮廓;
由查询到的所有轮廓中,查找3层的轮廓,并将其作为位于左上、右上、左下的3个第一定位标识;
由查询到的所有轮廓中,查找4层的轮廓,并将其作为位于右下的1个第二定位标识。
2.根据权利要求1所述的方法,其特征在于,在获取待识别答题卡的初始图片时,包括:
判断所述初始图片是否满足预设的安全防护条件;
在判断所述初始图片满足所述安全防护条件的情况下,将所述初始图片加入到待识别任务队列中。
3.根据权利要求2所述的方法,其特征在于,所述安全防护条件包括:所述初始图片的文件大小小于预设的文件大小阈值、所述初始图片的格式符合预设的可支持图片格式以及在服务系统为Linux的情况下所述初始图片的权限为只读中的至少一种。
4.根据权利要求1所述的方法,其特征在于,在由所述标准图片中识别出试卷编号以及各题目的答案时,包括:
由所述标准图片中分割出表征试卷编号的条码区域,并对所述条码区域进行解析,得到试卷编号;
基于所述试卷编号,获取试卷中各题目的答题区域在所述待识别答题卡中的位置以及区域尺寸和各题目的题目类型;
基于各题目的答题区域在所述待识别答题卡中的位置以及区域尺寸,由所述标准图片中分割出各题目的答题区域;
基于各题目的答题区域和所述题目类型,识别出试卷中各题目的答案。
5.一种答题卡识别装置,其特征在于,包括:
图片获取模块,用于获取待识别答题卡的初始图片;
预处理模块,用于对所述初始图片进行预处理,得到所述待识别答题卡的标准图片;
清晰度判断模块,用于基于当前系统资源占用等级,判断所述标准图片是否清晰;
答题卡识别模块,用于在判断所述标准图片清晰的情况下,由所述标准图片中识别出试卷编号以及试卷中各题目的答案;
其中,所述占用等级包括第一等级、第二等级、第三等级和第四等级;
所述清晰度判断模块,在基于当前系统资源的占用等级,判断所述标准图片是否有效时,具体用于:
在所述占用等级为所述第一等级时,直接判定所述标准图片为有效图片;
在所述占用等级为第二等级时,根据像素信息对所述标准图片的有效性进行判定;
在所述占用等级为第三等级时,根据所述像素信息以及所述标准图片中定位标识的清晰度对所述标准图片的有效性进行判定;
在所述占用等级为第四等级时,根据所述像素信息、所述标准图片中定位标识的清晰度以及所述标准图片中试卷内容清晰度对所述标准图片的有效性进行判定;
所述预处理模块,在对所述初始图片进行预处理,得到所述待识别答题卡的标准图片时,具体用于:
对所述初始图片进行膨胀处理、腐蚀处理、等比缩放处理、灰度处理、模糊处理以及二值化处理中的至少一种预处理操作,得到预处理图片;
对所述预处理图片中的定位标识进行识别,并确定所述定位标识在所述初始图片上的中心位置;
根据所述定位标识在所述初始图片上的中心位置,采用仿射变换,将预处理图片转换为所述待识别答题卡的标准图片;
其中,所述定位标识包括三个第一定位标识和一个第二定位标识,所述三个第一定位标识分别设置在答题卡的左上角、右上角以及左下角,所述第一定位标识的渲染效果为个空心矩形加一个实心矩形,所述第二定位标识设置在答题卡的右下角,所述第二定位标识的渲染效果为两个空心矩形;
所述预处理模块,在对所述预处理图片中的定位标识进行识别,并确定所述定位标识在所述初始图片上的中心位置时,具体用于:
使用opencv中的cv2.Canny函数查找出预处理图片中的所有边界;
使用opencv中的cv2.findContours函数,由所有边界中查到所有具有闭合边界的轮廓;
由查询到的所有轮廓中,查找3层的轮廓,并将其作为位于左上、右上、左下的3个第一定位标识;
由查询到的所有轮廓中,查找4层的轮廓,并将其作为位于右下的1个第二定位标识。
6.一种答题卡识别设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现权利要求1至4中任意一项所述的方法。
7.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至4中任意一项所述的方法。
CN202310807597.XA 2023-07-03 2023-07-03 答题卡识别方法、装置、设备和存储介质 Active CN117058700B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310807597.XA CN117058700B (zh) 2023-07-03 2023-07-03 答题卡识别方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310807597.XA CN117058700B (zh) 2023-07-03 2023-07-03 答题卡识别方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN117058700A CN117058700A (zh) 2023-11-14
CN117058700B true CN117058700B (zh) 2024-03-22

Family

ID=88652514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310807597.XA Active CN117058700B (zh) 2023-07-03 2023-07-03 答题卡识别方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN117058700B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108171297A (zh) * 2018-01-24 2018-06-15 谢德刚 一种答题卡识别方法及装置
CN110766015A (zh) * 2019-10-11 2020-02-07 深圳市鹰硕技术有限公司 一种答题卡识别方法、装置和服务器、系统及存储介质
WO2022057708A1 (zh) * 2020-09-15 2022-03-24 杭州大拿科技股份有限公司 自动填写答案的方法、电子设备和可读存储介质
CN114995914A (zh) * 2022-06-23 2022-09-02 中国平安财产保险股份有限公司 图片数据的处理方法、装置、计算机设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108171297A (zh) * 2018-01-24 2018-06-15 谢德刚 一种答题卡识别方法及装置
CN110766015A (zh) * 2019-10-11 2020-02-07 深圳市鹰硕技术有限公司 一种答题卡识别方法、装置和服务器、系统及存储介质
WO2022057708A1 (zh) * 2020-09-15 2022-03-24 杭州大拿科技股份有限公司 自动填写答案的方法、电子设备和可读存储介质
CN114995914A (zh) * 2022-06-23 2022-09-02 中国平安财产保险股份有限公司 图片数据的处理方法、装置、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于灰度图像的答题卡识别技术;杨青燕;彭延军;;山东科技大学学报(自然科学版)(第03期);全文 *

Also Published As

Publication number Publication date
CN117058700A (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
CN110517246B (zh) 一种图像处理方法、装置、电子设备及存储介质
CN111737478B (zh) 文本检测方法、电子设备及计算机可读介质
CN110490141B (zh) 一种填涂信息的识别方法、装置、终端及存储介质
CN111626249B (zh) 题目图像中几何图形的识别方法、装置和计算机存储介质
CN111985465A (zh) 文本识别方法、装置、设备及存储介质
CN111461100A (zh) 一种票据识别方法、装置、电子设备和存储介质
CN111046644A (zh) 一种答题卡模板生成方法、识别方法、装置及存储介质
CN111915635A (zh) 支持自阅卷的试题解析信息生成方法及系统
CN115018565A (zh) 一种广告传媒图像识别方法、系统、设备及可读存储介质
US7724981B2 (en) Adaptive contrast control systems and methods
CN109741273A (zh) 一种手机拍照低质图像的自动处理与评分方法
CN110210467B (zh) 一种文本图像的公式定位方法、图像处理装置、存储介质
CN112419207A (zh) 一种图像矫正方法及装置、系统
CN110135409B (zh) 识别模型的优化方法和装置
CN112989768B (zh) 连线题批改方法、装置、电子设备及存储介质
CN108647570B (zh) 斑马线检测方法、装置及计算机可读存储介质
CN117058700B (zh) 答题卡识别方法、装置、设备和存储介质
CN113221897B (zh) 图像矫正方法、图像文本识别方法、身份验证方法及装置
CN110660000A (zh) 数据预测方法、装置、设备及计算机可读存储介质
CN111008987A (zh) 基于灰色背景中边缘图像提取方法、装置及可读存储介质
CN107330470B (zh) 识别图片的方法和装置
CN113920526A (zh) 试卷图像处理方法、电子设备及存储介质
CN115438808A (zh) 一种智慧灯杆故障智能上报方法、装置和系统
CN113159029A (zh) 一种图片中局部信息精准抓取的方法和系统
CN111753842A (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