试论计算机视觉实践教学中的创新
2015-03-07杨冰
杨 冰
(杭州电子科技大学 计算机学院,浙江 杭州 310018)
试论计算机视觉实践教学中的创新
杨冰
(杭州电子科技大学 计算机学院,浙江 杭州 310018)
摘要:随着计算机视觉在生活中应用的越来越广泛,计算机视觉课程也引起广大学生的兴趣。针对计算机视觉实践教学中存在的一些低效问题,在教学中设计了计算机视觉实践教学层次模型,同时利用开源计算机视觉库来指导学生进行工程实践的教学方式。实践表明,层次模型可以帮助学生由浅入深地理解计算机视觉基础理论,同时开源计算机视觉库既能简化计算机视觉方法的编程,又能切实地提升学生的实践动手能力,增强学生的学习兴趣。整门课程的设计可以使学生能够更好地理解及掌握计算机视觉的相关知识,为以后从事相关研究工作奠定基础。
关键词:计算机视觉;实践教学; 开源计算机视觉库
计算机视觉(Computer Vision)是一门融合了图像分析与处理、计算机科学与工程、信号处理、物理学、应用数学和统计学、神经生理学和认知科学等多门学科的综合性学科[1]。其研究目的是使得计算机对于客观存在的三维世界具备智能化的理解以及识别能力[2]。随着与之相关的应用越来越普遍于我们的生活,学生们对这门课有着浓厚的兴趣。如何使得学生在动手实践的基础上,能够加深对于计算机视觉的理解,是我们教师首先应该注重的问题。
一、实践教学存在问题
目前,大多数高校的计算机视觉实践教学中普遍利用Matlab提供的图像处理开发工具进行实验教学[3]。由于Matlab程序移植性较差,学生在完成实验课程后并不能直接掌握计算机视觉实际的软件开发和应用,从而不利于学生的工程实践能力的提升。另外一方面,作为一种商业软件,正版的Matlab软件购买费用较为昂贵,这也限制了Matlab在计算机视觉实践教学的应用范围。
而在实际的授课过程中,我们发现,计算机视觉实践教学中存在着效率低的问题,学生积极性不高。经过大量调查,低效原因分析如下:
1.教学任务设计合理性差
无论是理论教学亦或是实践教学,课程任务的设计都至关重要。作为工科课程,整门课程的逻辑结构尤其需要清晰。教学任务设计不合理,会影响学生对于课程的理解,进而影响学习效率,无法完成预期的教学目标。另外,如果教学任务设计的逻辑性不强,学生在课程结束后只能掌握学习了哪些知识,无法理清为什么学习以及学习了之后能做什么。因此,在计算机视觉实践课程中,必须结合学生的实际动手能力,设计逻辑性较强的教学任务,顺利完成教学目标。
2.教学内容太抽象
计算机视觉的任务是使计算机能够模拟人类的视觉,完成人类视觉所能够进行的工作。理论课程的讲授目前一般采用多媒体教学的方式,局限于课本内容,不够生动具体。学生对理论课程不感兴趣,导致在相应实践课程上需要重新学习理论算法,严重影响学生的积极性,课堂教学效率低。
3.实践难度大
对于本科学生来说,理解计算机视觉基础理论已经有难度,要求用代码实现出来,难度更大。一般现在高校普遍采用MATLAB作为平台。作为专门的矩阵处理语言平台,MATLAB在处理图像数据上有着其他语言难以达到的优势,然而学生对于MATLAB中的函数并不能很好的掌握,甚至需要从头学习,代码实践的难度反而增大。
二、实践课程改进措施
计算机视觉在越来越多的领域中发挥着重要的作用。因此,为了使得学生既能够掌握计算机视觉的基本理论和技术,又能提升工程实践能力,在计算机视觉实践教学工作中,通过反复的摸索研究,,我们针对现有的问题,提出了课程改进措施:(1)设计了计算机视觉实验教学层次模型,在教学中的各个阶段加以实践,从而循序渐进地加强学生对基础理论的认知,以及如何将理论转换为课程实践,结合具体问题展开,提高学生处理实际问题的能力。清晰的展开层次模型中逻辑脉络,以使学生真正的掌握课程的逻辑结构。(2)针对层次模型中的低层,中层,高层,引入贴近现实的案例进行处理,增加教学内容的生动性。(3)引入Intel公司开发的开源的跨平台计算机视觉库OpenCV[4](Open Source Computer Vision Library,开源计算机视觉库),该开源库由C函数以及C++类构成。由于OpenCV具有较强的可移值性和通用性,学生可以较为便利地利用该开源库开发出计算机视觉的实践项目,同时还可查看算法的代码实现,提高学生的编程能力。
(一)计算机视觉实践教学层次模型的设计
本课程之前,大学四年级的本科生已经学习过图像处理与计算机视觉的理论知识,然而无法与现实对接,以及无法整理出清晰的逻辑线,是一个普遍存在的问题。在对计算机视觉理论与技术体系[5]充分调研的基础上,引导学生由浅入深地学习和掌握计算机视觉基本知识,我们在实践教学中设计了计算机视觉的层次模型,将教学目标和任务划分为三个层次,即:低层视觉、中层视觉、高层视觉。通过层次模型的展开,学生能够由浅及深的掌握计算机视觉的知识,在逻辑上更深入的理解、掌握和运用。
在该教学层次模型中,各个层次所针对的计算机视觉主要问题如下:
1.低层视觉:针对单幅图像本身及其内在属性的分析及处理,主要涉及到图像的变换,如图像灰度变换、图像增强、图像边缘检测、图像模板滤波等。
2.中层视觉:对图像的内容进行分析,提取有代表性的中层特征,对应于人类的视觉感官系统。
3.高层视觉:侧重于针对图像内容进行理解和语义高层认知,使得计算机具有类似人脑的智能化能力,能够在一定程度上完成人类感官认知完成的工作,例如图像识别,图像分类等。
在我们的教学层次模型中,低层视觉内容可以服务于中层视觉,中层视觉同时又可以服务于高层视觉。因此,在教学实践中,我们首先安排学生进行低层视觉层次的学习任务,对图像的基本内容进行深入的了解与掌握,编写代码完成相应的计算机视觉处理问题。这一过程,就实践的内容而言,针对学生对理论概念不易形成物理空间上的认知问题,采用大量在日常生活中获取到的图像作为处理样本,贴近现实生活的同时又理解了知识点。在此基础上,进一步引导学生展开中层视觉层次模型的学习,中层视觉特征主要包括SIFT特征点等,该层次模型的建立比前一层次更接近人类的视觉感官认知。学生可以从这一层次的学习中,掌握到人眼视觉在计算机中模拟的奥秘,加深对计算机视觉的理解高层视觉层次模型的建立,是基于人类对于图像的语义的理解,例如带有复杂背景的图像中的物体的识别。在整个学习过程中,对于实践的内容,遵循低层-中层-高层的发展,逻辑线则是由“图像内容-人类视觉感知-图像语义内容”,由浅及深,使得学生对计算机视觉的知识认知逐步加深,然后再通过工程实践升华对理论知识的理解。基于如上讨论,我们的教学任务设置的比较合理,层次性逻辑性强,难度遵循教育学普遍原理[5],学生在有余力的完成教学任务的同时,培养出分析问题解决问题的能力。
(二) 实践教学案例及OpenCV实现
在我们计算机视觉实践教学中,采用基于项目教学法[6]的思想。学生完成一个项目通常需要以下四个过程:(1)项目背景技术分析;(2)项目具体流程图设计;(3)基于OpenCV软件实现;(4)实现结果讨论分析与展示。在上述每个阶段都要求学生及时和教师进行讨论,根据学生所反映的问题,教师有针对性地进行指导,从而在解决实际问题过程中提高学生的工程实践能力。
针对课程教学内容抽象以及实践难度较大的问题,我们结合计算机视觉基本理论和体系结构,并参考国外大学的相关教学经验,在设计的层次教学模型基础上,实验项目设置试举例如下:
1.低层视觉
图像边缘是指图像局部强度变化最显著的部分,主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间。图像边缘检测一般采用Sobel算子和Laplacian算子,利用OpenCV边缘检测Sobel算子和Laplacian算子处理结果见图1:
图1 使用OpenCV对图像进行边缘检测的结果图
2.中层视觉
SIFT(Scale-invariant feature transform)[7]是一种检测局部特征的算法。由于SIFT 特征是基于物体上的一些局部外观的兴趣点而与图像的大小和旋转无关,同时该特征对于光线、噪声、些微视角改变的容忍度也相当高,因此在物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比对等领域有着广泛的应用。
图2为使用OpenCV提取两幅不同大小和方向Lena图像SIFT特征并进行特征点配准的例子,从图中可以看出,SIFT特征匹配的精度相当高。
图2 使用OpenCV提取SIFT特征并进行图像配准示意图
3.高层视觉
人脸检测是模式识别和人工智能领域中一个很重要的课题,人脸检测[8]从本质上讲就是要定位图像中的人脸的位置,并将其标识出来。人脸检测在视频监控、教育应用等诸多领域都有广泛的应用,因此具有重要的商业和科研价值。Paul Viola[8]首先将Adaboost 算法应用于人脸检测系统,人脸检测的精度和速度都取得了满意的结果,因而得到了广泛的应用。
OpenCV包含了对Adaboost 算法实现,通过下述步骤:(1)加载分类器 (2)读入待检测图像或者视频 (3)检测人脸 (4)显示检测结果,就可以实现一个人脸检测的程序。图3显示了利用OpenCV进行人脸检测的一个实例。
图3 使用OpenCV进行人脸检测示意图
从上面的举例可以看出,教学案例的设置是具有递进性的。采用OpenCV完成实践,OpenCV中设有计算机视觉的函数库,可以直接调用。MATLAB主要用于研究算法,OpenCV则可以开发实际的应用,直接与硬件结合,形成可实用的软件,这个对学生也是一项比较直观的激励。
三、结论
在对计算机视觉理论与技术体系充分调研的基础上,本实践教学中设计了计算机视觉实验教学层次模型,同时引入OpenCV开源库来进行工程实践。通过在实际教学中的探索,我们认为,层次模型可以帮助学生由浅入深地理解计算机视觉基础理论和典型方法,课程整体的逻辑结构性也可以很好的掌握,同时OpenCV开源库既能简化计算机视觉的编程,又能切实地提升学生的实践能力。因此,本文方法有效地提高了实验教学效果,丰富了计算机视觉课程的实验教学方式,激发了学生的学习主动性和积极性。
参考文献
[1]谢飞. 基于计算机视觉的自动光学检测关键技术与应用研究 [D]. 南京:南京大学出版社, 2013.
[2]刘海洋,刘元安,高锦春,等. 基于发布订阅结构的计算机视觉跟踪研究[J]. 计算机学报, 2012, 35(8): 1767-1773.
[3]黄展鹏,蒋世忠,刘金裕. 基于Web的数字图像处理虚拟实验室的实现 [J]. 实验技术与管理, 2010, 27(12): 110-112.
[4]钟足峰. 基于OpenCV的实验室监控系统的研究与实现[J]. 实验技术与管理, 2010, 27(1): 100-101.
[5]姚国正, 汪云九. D.Marr及其视觉计算理论[J]. 国外自动化, 1984, 6(6): 55-57.
[6]郭艳光, 赵希光. 在高校计算机基础教学中实施项目教学法的探索[J]. 计算机教育, 2011, 6(6): 48-49.
[7]Csurka G, Bray C, Dance C, et al. Visual categorization with bags of keypoints [C]. Prague: Czech Republic, 2004: 1-22.
[8]Viola P, Jones M J. Robust Real-Time Face Detection [J]. International Journal of Computer Vision, 2004, 57(2):137-154.
A Discussion on Innovation in Practical Teaching of Computer Vision
YANG Bing
(SchoolofComputing,HangzhouDianziUniversity,HangzhouZhejiang310018,China)
Abstract:Computer vision course attracts more and more students’ interest due to its wide applications in human life. To overcome some low efficiency problems existing in practical teaching of computer vision, this paper contrives the hierarchical model for computer vision practical teaching, and proposes to use the OpenCV (Open Source Computer Vision Library) to guide students to arrange engineering projects. Experimental results show that the hierarchical model can help students to understand the basic theory of computer vision step by step, while the OpenCV could not only simplify the computer vision programming, but also steadily improve students’ practical ability and enhance their learning interest. Generally speaking, the design of the entire course enables students to understand and master the knowledge of the computer vision better so as to build up a solid foundation for their relevant future research work.
Key words:computer vision; practical teaching; OpenCV
中图分类号:G420
文献标识码:B
文章编号:1001-9146(2015)02-0063-04
作者简介:杨冰(1985-),女,安徽砀山人,讲师,模式识别、计算机视觉、机器学习.
基金项目:国家自然科学基金(61402143);浙江省自然科学基金(LQ14F020040);杭州电子科技大学科研启动基金(KYS055613014)
收稿日期:2014-10-31
DOI:10.13954/j.cnki.hduss.2015.02.011