基于USB摄像头的实验报告成绩录入系统

时间:2022-09-19 09:53:01

基于USB摄像头的实验报告成绩录入系统

摘要:大学物理实验成绩的录入一直是老师们亟待解决的问题,因为工作量大而繁琐,极容易出错,还浪费老师的科研时间。为了减少此类不必要的重复劳动,该文设计了一个使用VB技术完成的成绩录入系统,首先要对原来的实验报告纸稍加修改,之后利用USB摄像头实验报告纸拍摄成图像以供系系统统进行识别,将识别所得数字信息录入到Excel表格中,最终按比例合成学生的实验成绩

关键词: USB摄像头;实验报告成绩;录入系统

中图分类号:TP315 文献标识码:A 文章编号:1009-3044(2013)36-8423-03

近年来,由于高校招生人数大量上升,使得在校大学生越来越多,特别是理工科学生占了大多数,而几乎所有的理工科学生都会有一门课程,就是大学物理实验。但是学校的物理实验教师只有几个,要负责全校所有院系的物理实验课,课后还要进行实验报告的收缴、批改和分数录入工作,这让物理实验教师感觉分身乏术,其中分数录入工作是最繁琐、最费时间的事情,这种机械式的工作浪费了教师宝贵的科研时间,而且容易使教师产生疲劳感,分数的录入也会有失误。

随着计算机技术的快速发展和普及,利用现代化设备代替这类的纯机械式劳动已经成为不可扭转的趋势。如诞生于20世纪60年代的光标阅读机OMR(optical mark reader),然而,由于其是采用光机电技术中的反射阅读技术原理设计,因而它对答题卡上的信息点位置及大小要求极高,填涂规范性也高,除此之外,它还有使用成本高,容易卡机,功能单一的缺点。自动化扫描阅卷系统[1]也已研制出来,教师可以自行设计试卷,用普通的纸张打印,通过扫描到计算机中利用软件进行识别就可以自动阅卷了。

大学物理实验老师由于经费有限,不可能买一套市面上出售的扫描阅卷系统回来,且所用的答题卡格式较为固定,与学校使用的实验报告纸格式相差甚远,操作起来比较繁琐。因此本文将探讨是否可以利用成本低廉的设备和自己设计的特定的实验报告纸进行数字图像的识别以及成绩录入工作。

1 系统功能实现

1.1 实验报告模板的设计

考虑到教师都有一份存有所带班级全部学生信息的Excel表格,里面有学生的学院,班级,学号,姓名等信息,使用其中具有简单性、唯一性的学号信息就可以完成本系统的成绩录入功能了。设计的实验报告模板如图1所示,其中识别区域为黑框所围部分,利用0 到9这10个数字做成小方格,学生和教师只要用黑色签字笔在相应的方格里做上记号就可以了,无论是“—”、“[×]”还是别的记号,都可以通过本系统识别出来。

1.2 实验报告图片的获取

通过USB摄像头拍摄学生的实验报告,截图后再复制粘贴到picture控件中。利用电脑配备的USB摄像头进行视频控制时需要用到两个API函数:capCreateCaptureWindow和SendMessage。其中,capCreateCaptureWindow是用来创建一个视频窗口,通过USB摄像头捕捉到的图像就显示在此窗口内,函数的返回值代表窗口的句柄。窗口创建完毕后,就需要用SendMessage向它发送信息,进而控制摄像窗口。

1.3 图片数据的扫描

要获得视频窗口捕捉到的实验报告图片的各像素点的颜色值,使用的是“GetPixel”函数,该函数的声明如下[3]:

Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long

其中hdc是设备环境句柄,x和y为对象中某个像素的位置坐标,此函数返回值为长整形。

此外还需要对每点的RGB色彩值进行分离,分别得到R,G和B的值。

1.4 图像的二值化

由于拍摄条件和外界光线的影响,所得到的图片不像扫描仪中那么黑白分明,因此,需要对图像进行二值化处理,具体分为两个过程:一将三原色转换为灰度;二将灰度转换为RGB。为了使识别目标更明确,受到的干扰更少,设计识别区域时将黑框内的所有方格和提示字的颜色都设置为25%灰度值[4-5],这样一来,学生和教师能看到小方格,拍摄后又可以通过阈值分割法设置一个阈值把这些小方格以及光照信息抹除,只留下学生和教师的填涂信息以供识别。

图2 实验报告二值化前后示例

图2是将实验报告图像二值化的前后对比图,处理后的图像只有黑白两种颜色,实际拍摄时,识别框内由于光线原因,处理后仍会有一些干扰点,但这并不影响识别,因为本系统是通过比较各个小区域中含有像素点的个数多少来确定结果的,干扰点像素聚集个数少,一般不影响比较结果。

1.5信息识别

二值化后,首先要确定的是识别区域的坐标信息。首先要检测出左侧这条粗直线,选择某一行图形进行分析,检测到连续的两个黑点就停下,记录此时的i值,再继续检测到连续的两个白点,也记录下此时的i值,两个i值的差就是这条粗直线的宽度了,只需再确认这条短横线的上下区域所含的黑色像素点的个数是否足够构成一条粗直线,就可以完全确定已检测到识别框。

有了识别框的坐标,就可以计算各个小方格的区域坐标,表格中每一列画了10个小格,分别是数字0-9,每一行有14列有用信息格,左右边界的距离差除以17就可以得到每一小格的宽度m,上下边界的距离差除以11就可以得到每一小格的高度n,然后循环检测每个小格的像素个数,纵向比较像素个数最多的那个小格对应的数字就是所需要的信息。

1.6 成绩录入

事先建立一个Excel文件,里面存放所有学生的基本信息。首先要确定表格中有效行,这样便于控制下面将要进行的比对工作的行范围。这里,要对第一列的学号进行检索,如有连续的三格为空白,则检索停止,记录下有效行数j。再将之前图像识别所得到的学生学号与表格中的学号进行比对,找到相同的学号后比对停止,系统将识别所得实验序号若记为x,则成绩录入到此行第(2x+2)列,操作成绩录入到(2x+3)列加上2,这样就完成了成绩的录入工作。

期末结束后,教师可以通过成绩汇总按钮进行成绩的处理,按下成绩汇总按钮后,会弹出一个提示框,教师可根据实际情况输入一个n值作为本学期所做实验的次数,在这之前教师要自行将免做的实验和假期冲掉的实验所对应的成绩设置为-99,最后将每行所有不等于-99的成绩全部相加求平均就得到大学物理实验报告的期末成绩了,再将这个成绩放在每行的第三个单元格就完成了实验报告成绩的合成工作。

1.7 容错处理

当拍摄图片二值化后有时会出现较大误差,如识别框粗直线不够直,线内有一些白色点等,所以系统应该具有一定的纠错能力。如在识别粗直线时,不要求这条线上所有点都是黑点,只要有70%以上就可以确定此处存在一条粗直线,而不是任意的干扰记号。

对框中的信息进行识别,通过比较哪个格子含有的像素点数最多来确定所选数字,这样如果格子中有污点,甚至是不经意划下的线条,也不会影响最终结果。

1.8 校验

录入成绩时,如果识别的学号在表格中不存在,或者同一学生出现两次相同实验项目的成绩,就说明识别出错了。针对这两种情况,系统设计了相应的解决措施:一、若识别的学号不存在,可能是实验报告的摆放过于倾斜,这时教师可以选择重新摆放实验报告,或者直接在Textbox中输入正确信息进行录入;二、若出现相同的信息,则弹出相应提示框,提醒教师与哪位同学的哪份实验重合,请进行人工核对。

2 小结

本文对如何自动录入学生的实验报告成绩展开了研究,在Visual Basic环境下成功实现了对实验报告图像的处理与识别,该系统的实现为今后开发更多实际应用(如教学系统中学生签到、仪器设备管理系统、商品销售系统等)进行了重要的技术储备,为它们提供了一个很好的输入接口,可进行二次开发,硬件要求低,具有便宜高效的特点。

参考文献:

[1] 宋峥峥.自动化扫描阅卷系统的研究与实现[D].北京:华北电力大学,2008.

[2] 吴柏雄.摄像头阅卷系统关键技术的分析与应用[J].计算机系统应用,2010,19(2):147-151.

[3] 苏瑞,韩中孝.Visual Basic开发实用编程200例[M].北京:中国铁道出版社,2006:221-223.

[4] 杨青燕,彭延军.基于灰度图像的答题卡识别技术[J].山东科技大学学报:自然科学版,2009,28(3):99-102

[5] 李红兵,金艳云.基于摄像头和条形码的实验仪器管理系统[J].电脑知识与技术,2012,8(31):7587-7588.

上一篇:电视栏目包装中数码技术的应用 下一篇:《电子商务概论》课程教学方法改革的相关思考