杨万理,王 宁,王广俊
(西南交通大学土木工程学院,四川 成都 610031)
土木工程制图是为土木工程专业学生开设的一门必修的技术基础类课程,该课程是培养学生绘制和阅读工程图样基本能力的技术基础课。习题练习在训练空间思维能力和图形表达能力方面的作用不可忽视。从本科教育扩招以来,过小的师生比以及较大作业量,使得工程制图教师疲于批改作业,影响了作业批改质量与教师在其他科研项目上精力的投入,因此,对工程制图作业智能批改系统的研究是必要的。近年来,西北工业大学、西南交通大学分别对机械类、力学类作业批改系统进行了深入的研究。李西琴等对机械类制图作业系统中的图形识别技术进行了研究:许占民[1]研制了计算机辅助批改轴套类零件图作业课件;孙洁[2]采用“特征识别法”研究了轴类零件图中各种工艺结构的识别和尺寸标注的批改等。这些图形作业批改的思想与算法,是基于机械零件固有特征而提出的,尚不能完全满足土木工程习题中图形作业的要求。西南交通大学谢君华、王建等研究了力学课程作业系统中图形识别技术:提出了由图形类型、线条属性、图素参标和空间关系四类评判要素组成的识别评判标准[3];标注与图素隶属关系耦合识别方法以及矢量图素方向与数学表达式中标注变量正负号耦合识别方法[4]等。力学课程中图形识别技术,与土木工程制图作业图形识别有比较明显的区别,土木工程制图作业系统需要专门研究。何培英和常明[5]从系统设计、系统主要功能实现方面介绍了基于Web的工程制图作业批改系统的研制。张应中等[6]对工程制图作业的智能批改策略进行了深入探讨,提出一种基于正向推理的图形匹配识别算法。目前对工程制图作业智能批改系统的研究还不够深入、完善,在实际应用中还存在不少问题,对工程制图作业智能批改系统的进一步研究是极其必要的。
土木工程制图习题的类型主要有填空题、选择题、判断题、尺寸标注,以及作图题。本文主要对作图题的批改进行研究。基于自主研制的矢量图形平台(ATVGP),选择比较法作为批改方法,将作业批改过程分为前处理,作业批改和后处理3个阶段,对土木工程制图作业批改系统进行研究,并提出了曲线识别思路。
矢量图形平台是作业系统的基础。目前矢量图形平台主要分为两大类:①现有绘图软件(或二次开发后)作为图形平台[1,5];②自主研发图形平台[7]。第一类图形平台多具有一定的作业批改、作业评分、成绩统计及作业存取等功能,但是这要求学生首先要掌握这门绘图软件,与教学计划中先学习画法几何基本理论再学习计算机绘图的顺序相冲突;并且由于版权问题,基于该类图形平台的作业批改系统在推广方面受到制约。第二类图形平台无版权问题,具有在线绘图与作业储存的功能,但是不具备作业批改功能。因此,开发具有自主版权的图形平台,并研发能与该图形平台无缝连接的作业批改系统,是最优的选择。ATVGP是笔者使用VC++,专门为作业批改系统开发的矢量图形平台,如图1所示。
图1 图形平台ATVGP的运行界面
图形平台ATVGP具有绘制、编辑、保存土木工程制图习题中各类图形元素的基本功能,也具有尺寸标注、块操作等复杂功能,满足作业批改系统的需求。图形平台ATVGP的设计与实现细节请参阅作者发表于西南交通大学学报(社科版)上的文章《工程制图网上作业系统矢量图形平台的设计与实现》[8]。
矢量图形与位图是计算机图形中两类不同的图形。矢量图形由一系列点、线、面等图元组成,通过记录图元的坐标、方向、线宽、线型、色彩等数据表达图形;位图是像素图,每个像素点用二进制数据来描述其颜色与亮度等信息。矢量图形的识别通过检查图元的坐标、方向、线宽、线型等数据,来判断矢量图形的正确性。土木工程作业批改是以矢量图形的识别为基础,将学生答案与参考答案进行比较而实现的。通常每一道习题的答案,可能是包含多个不同类别的图元形成的图元集,作业批改时需要对学生答案中的每一个图元进行识别与判定。通常,判定结果有5种可能情况,以集合的形式表示于图2中。
每一个图元都是一个图形对象,其对象属性包含图元类别、位置、形状、线宽、线型等。每一次图元之间的比较,不仅仅是图形类别、位置、形状等关键数据的比较,还包含线型、线宽等特性的比较。比较的结果,将采用结果类的对象进行保存。
在工程制图作业手工批改过程中,大部分参考答案由教师事先作好的,学生若采用了不同的解题方法,教师临时判定该解题方法是否正确。总之,参考答案是由教师事先或临时确定。在作业批改系统中,参考答案可由两种方式提供:①每道题目的答案在出题时,由教师作好,按照某种对应关系与题目一同保存,在作业批改时将参考答案调出,与学生答案进行对比;②根据题目已知条件和投影原理,由系统构造出形体的空间形状及形体间的相对位置,再向某个方向投影得到参考答案。此方法需要系统具备从“二维→三维→二维”模拟人脑的空间想象能力。目前,这种高度人工智能的实现还比较困难。因此,采用预先制定参考答案,将学生答案与参考答案进行比较的批改方法,是目前切实可行的选择。
图2 学生答案与参考答案匹配结果类型
前处理是对被批改的答案进行判定前的处理,包括生成答案对象,归一化处理,建立评判准则等。经过前处理后的答案对象,具有标准的批改格式。
制作答案对象。一道绘图题目的答案可能是包含多个图元的图元集,作业批改是以答案即图元集为单位的。当参考答案或者学生答案绘制完成后,需要将答案所包含的所有图形元素,定义为一个整体,即参考答案对象或学生答案对象。答案对象由答案类生成,该类中包含了增添、删减各类图元、查询图元数量,保存答案对象等操作。在图形平台中,提供了4个默认的图层:草稿层,题目层,答题层和注释层。系统将答题层上所有的图元作为答案应包含的图元,因此在制作答案对象前,需要检查是否所有的答案图元都在答题层上,答题层上是否有多余的图元。
在制作参考答案对象时,还需要给答案设定分值,并确定答案中每个图元的分值,以及每个图元的数据、线宽、线型占该图元分值的百分比,如图3所示。系统提供了这些分值的默认值。图元的分值以及数据、线宽、线型占该图元分值的百分比,是通过评分标准类来定义。在答案类中,对参考答案的每个图元,都定义了评分标准类指针,用于记录该图元的分数分布。参考答案和学生答案名称相同,但类别不同。制作学生答案的对话框中没有分值设定功能,但仍具备答案对象编辑,以及对象中图元的增减操作功能,如图4所示。为了测试批改功能,图4中故意将学生答案画错。在图3和图4中,在列表框中被选中的图元是以虚线的方式显示的。
图3 参考答案的制作
图4 学生答案的制作
归一化处理。图元类型归一化。绘制一个简单图形,不同的绘图者将采用不同的绘图命令,采用不同的绘图方式来实现。如绘制一个矩形,可以采用矩形绘制命令,也可以采用多段线命令绘制,也可采用直线段命令绘制。不同的绘图命令,将生成不同类型的图元,这给作业批改过程中图元类型匹配带来困难。因此,对于可以视为直线段组成的图形,都转换为直线段,不论绘制该图采用的是矩形、多边形命令,还是多段线命令。
图元数量归一化。目测为单一图元组成的图形,可能是由多个图元排列、连接、搭接或重叠而成。这也是由不同的绘图过程引起的。如目测为一条直线段,可能确实仅有一条直线段,也可能由多条直线段首尾连接、部分搭接或者重叠形成,也可能这些直线段之间,没有精确连接,存在目测无法观察到的空缺。因此需要检测答案对象中的图元,进行归一化处理。对于未精确连接、存在微小空缺的情况,通过设定空缺的阈值来处理,若空缺长度超过阈值,当作两个图元处理,否则合并为一个图元。
图元位置归一化处理。根据形体的两个投影求作第三个投影是工程制图中常见的题型。第三个投影需要满足“长对正、高平齐、宽相等”的要求,能满足此要求的第三投影的位置有时并不确定。如已知形体的正面投影和水平投影,45°线并未给出,那么侧面投影的位置并不确定。学生答案对象与参考答案对象之间存在一定的平移关系。需要根据设定的原点,对答案对象进行位置归一化处理。
通过前处理,可以得到标准化的学生答案和教师答案。这些答案将通过网络上传至服务器中,教师可以手动发布批改命令,也可设置批改执行时间自动批改作业。作业批改分为4个层次进行,如图5所示。
(1) 答案级批改,即判断批改类型,批改类型主要有填空题、基本作图题、求距离类题目和求实形类题目等。批改类型在制作参考答案时可以通过教师指定,如图3中指定了批改类型为基本批改;也可使用系统自动判断的结果。不同的批改类型将启用不同的批改程序。
(2) 图元类级批改,即判定是否启用异类批改。一般情况下,是将学生答案与参考答案中同类型图元进行比较,如直线段与直线段比较,圆弧与圆弧比较。但也有例外,如采用四心法绘制椭圆,是用四段圆弧模拟椭圆;通过确定特殊点和一般位置点,用样条曲线来模拟圆柱、圆锥被平面切割产生的圆弧、椭圆弧等。这就需要调用异类批改(不同类别图元之间的匹配)来判断不同图元的拟合度。同类、异类批改的具体执行,是在第三层次批改实现。
(3) 图元级批改,通过从第二层次传递进来的学生答案图元和参考答案图元的指针,获取这两个图元各自的数据、线型、线宽信息,进行比较。线型、线宽的比较在本层次完成。数据的比较通过参数传递到第四层次批改完成。
(4) 数据级批改,本层次只是比较数据是否相等。这里并非绝对相等,而是差值的绝对值小于微小常量E。
在程序运行时,从最低层批改开始,都会将计算的结果返回到上一层。如数据级批改(第四层)将结果以布尔值的形式返回至图元级批改(第三层),图元集批改再将线型、线宽批改、数据批改结果返回至图元类级批改(第二层)。第二层次根据返回数据做出判断,是否需要继续遍历下一个同类图元。若遍历已经结束,仍未匹配到参考答案中的同类图元,那么启用异类匹配。若异类匹配仍无结果,那么将该图元标记为多余图元。在作业批改的第二层次中,将对学生答案中的每个图元都进行匹配,未匹配上的是多余图元;而在教师答案中未能匹配上的图元,是学生答案中缺少的图元。
异类匹配主要是曲线识别问题。针对矢量图形,提出了一种新的识别方法。这里曲线的识别分为两种情况:一是圆弧模拟椭圆弧;二是样条曲线模拟圆弧、椭圆弧。第二种识别较为复杂,识别过程分两阶段,以样条曲线模拟椭圆弧为例:①样条曲线的形状是由控制点,以及起点、终点的切线来确定的,若样条曲线起点、终点与椭圆弧的起点、终点相同,并且控制点都在椭圆弧上,那么可判定解题思路正确;②样条曲线起点、终点的切线方向影响样条曲线的形状,这可进一步通过重合度检测,即判断样条曲线和椭圆弧在外观上重合的程度。样条曲线在外观上表现为光滑的曲线,可以认为光滑的曲线是由长度很短的微线段连接而成。通过设定样条曲线的微线段步长Ls,可求得所有的微线段端点,样条曲线的控制点也包含在这些端点内。设端点总数为N,判定每一个端点是否都在圆弧上(端点与圆弧最近点的距离小于偏离常量E)。若满足条件的端点总数记为Nf,那么样条曲线S与圆弧的重合度为:可认为两条曲线是重合的,Ct为目标重合度。重合度判断的精度由微线段步长Ls,偏离常量E,目标重合度tC控制。实际上,样条曲线与样条曲线之间的识别也采用了异类识别的方式,即使表明上他们类别相同。因为完全重合的两条样条曲线,其控制点不一定完全一致。设两样条曲线分别为S1和S2,那么需要Cs1≤Ct并且同时Cs2≤Ct,才能认为两样条曲线重合。
图5 作业批改流程图
批改后的结果将随同学生答案一同保存在数据库中,等待下一步调用。
后处理是对学生作业批改结果进行展示的模块,该模块对应的按钮在学生作业批改完成后变得可用。后处理模块将调用学生作业和批改结果,后者以对话框的形式展示出来,如图6所示。
该对话框第一栏是对批改结果的管理,支持对一题多解批改结果的展示。本栏展示出答案名称、批改类型、得分等情况,本栏提供对每种答案进行操作的按钮。第二栏是对批改后答案显示的颜色设置。第三栏是第一栏中被选中答案的详细批改结果,通过选定学生答案中任意一个图元(该图元将以虚线方式显示),可以查看该图元的详细批改信息。如图6所示,当选中索引号为78的图元时,该图元的详细信息在对话框底部右侧的列表框中显示出来。该线条分配到的分值为5分,数据、线型和线宽分别为3、1、1分。该图元的数据和线宽正确,但是线型错误,因此扣掉1分,随后指出了学生答案中使用的错误线型,以及正确的线型。该图元的得分为4分,其他直线类型的图元都是正确的。在制作学生答案时,故意多画了一条圆弧。这条圆弧以红色显示,表示这是多余的图元,并按照图3中的设置,扣除3分。从图6可以看出,后处理模块能够清晰、准确的显示批改结果的详细信息,能够指出学生答案错误的原因,具有良好的交互性能。
图6 学生答案批改结果展示
高校的扩招导致过小的师生比,教师无法及时、细致地逐一批改土木工程制图作业,亟需改变传统的手工批阅作业方式,开发作业自动批改系统。本文在独立研发的矢量图形平台ATVGP的基础上,探讨了矢量图形的识别与作业批改系统的实现方案,并提出了一种曲线的识别方法,最后在VC++环境下编程,实现了土木工程制图作业的自动批改功能。本文以一道作业题作为实例,展示了土木工程制图作业批改系统的运行过程,结果表明系统能够正确地完成作业批改,判定得分,并指出错误之处。
[1]许占民.计算机辅助批改轴套类零件图作业软件的开发[D].西安: 西北工业大学, 2001.
[2]孙 洁.轴类零件图结构识别及尺寸标注批改技术的研究[D].西安: 西北工业大学, 2004.
[3]谢君华.基础力学作业图形识别技术的研究[D].成都:西南交通大学, 2005.
[4]王 建.力学课程网上作业系统相关技术的研究与开发[D].成都: 西南交通大学, 2011.
[5]何培英, 常 明.基于Web的工程制图作业批改系统[J].工程图学学报, 2001, 22(4): 156-161.
[6]张应中, 罗晓芳, 胡宜鸣, 孟淑华.工程制图智能电子习题集软件系统的设计与实现[J].工程图学学报, 2004,25(1): 104-108.
[7]王 袆, 谢步瀛.基于Java技术的远程教育图形平台的设计和实现[J].同济大学学报(自然科学版), 2002,30(3): 276-280.
[8]杨万理, 王 宁, 王广俊.工程制图网上作业系统矢量图形平台的设计与实现[J].西南交通大学学报(社会科学版), 2013, 14(S): 106-111.