APP下载

计算机视觉课程综合教学案例设计与实践

2023-06-04张林沈莹

高教学刊 2023年16期
关键词:计算机视觉教学案例实践教学

张林 沈莹

摘  要:针对计算机视觉课程核心知识点分散、较难以掌握的问题,设计并实践综合性教学案例“环视系统构建及基于环视的语义信息提取”。以此案例为载体,讲授相机模型、相机标定、几何变换和深度学习等知识点,让学生在实践中学习、在学习中实践。该案例的有效性已在同济大学的教学实践中得到充分验证。

关键词:计算机视觉;教学案例;实践教学;环视系统;核心知识点

Abstract: To solve the problem that the knowledge points of computer vision are scattered and difficult to master, a comprehensive teaching case "construction of the surround-view system and semantic information extraction from the SVS" is designed and practiced. We take this teaching case as the carrier to teach knowledge points such as camera model, camera calibration, geometric transformation and deep learning. In this way, students can learn and practice simultaneously. The effectiveness of the proposed teaching case has been fully verified in the teaching practice of Tongji University.

Keywords: computer vision; teaching case; teaching by practice; surround-view system; core knowledge point

近年来,随着全世界对人工智能技术重视程度的日益提升,我国也加大了对人工智能专业人才的培养投入,许多高校陆续设置了人工智能专业并开设了相关课程[1-2]。在大多数高校制定的人工智能课程群方案中,计算机视觉都被列为了核心课程。因此,研究计算机视觉课程的教学实践共性规律、研究如何提升该课程的教学质量,具有重要的现实意义。

计算机视觉是最近30年发展起来的一门新兴学科[3],是一门研究如何使机器感知和理解周围世界的科学。更确切地说,该学科要解决的主要科学问题是如何利用计算机对传感器(如图像传感器、深度信息传感器、声音传感器等)采集的信号进行分析,从而实现对客观世界的度量与理解。

近10年来,随着人工智能领域技术,如深度学习技术的飞速发展,计算机视觉学科在很多问题上,如人脸识别、目标检测与跟踪、像素级分割、场景理解和三维重建等,也取得了突破性的进展,其应用范围也变得日益广阔。在此大背景下,全球各大高校陆续开设了计算机视觉课程。同济大学软件学院的计算机视觉课程开设于2010年秋季学期,是全国范围内较早在本科阶段开设此课程的院系[4]。在教学过程中,我们发现该课程具有如下教学难点:1)该课程的理论性和实践性都很强,学生较难掌握;2)核心知识点较为分散,难以组织在统一的逻辑框架之下;3)该学科目前仍处于快速发展阶段,如何把当前该领域最新的思想和方法融入到教学环节中也是任课教师要面临的巨大挑战。为了有效解决这些问題,我们设计了面向计算机视觉课程的综合性教学实践案例“环视系统构建与基于环视的语义信息提取”,其有效性已在教学实践中得到了检验。

一  案例概述

此案例为面向计算机视觉课程的综合性实践教学案例,覆盖的理论教学内容主要包括相机模型与内参标定、环视系统标定及语义目标检测三部分内容,最终目标是让学生综合运用所学知识完成车载环视系统的构建及基于环视图的语义信息提取任务。

(一)  教学目标

本案例面向软件工程、计算机科学与技术等计算机相关学科本科专业的高年级学生,要求学生有一定的编程经验,熟悉C++、Python等语言,并熟练掌握高等数学、线性代数等相关内容。在该案例教学过程中,学生需要分组完成环视系统构建与基于环视的语义信息提取系统的设计与实现。

在具体的教学过程中,该案例可分为相机模型与标定、环视系统标定及环视语义目标检测与分类3个阶段。

第一阶段:讲授相机模型、非线性最小二乘法、相机内参标定,让学生使用相机拍摄标定板图像并完成相机的内参标定。

第二阶段:讲授几何变换、几何变换群、线性最小二乘法和单应性估计等知识点,让学生在标定场用实验车获取数据,编写程序实现对环视系统相机外参的标定。

第三阶段:讲授机器学习基础、深度卷积神经网络、视觉目标检测与分类等知识点,带领学生实地采集典型道路环境下的环视图像样本,并完成图像标注与网络训练,最终验证目标检测与分类模型的性能。

(二)  案例材料准备

学生需掌握线性代数基础、数字图像处理的知识,具备基本的编程能力。此外,根据课程讲授进度和案例执行情况,需有针对性地提前阅读相关文献及资料[3-4]。在进行授课前,本案例需要准备如下实验器材。

1)车载广角鱼眼相机(视场在185°以上)4个(如图1(a)所示)。

2)实验平台车1台(如图1(b)所示)。

3)棋盘格平面标定板1块(如图1(c)所示)。

4)棋盘格平面标定场或标定布1块(如图1(d)所示)。

二  案例教学要点

本案例主要介绍计算机视觉知识在具体项目中的运用情况,借此从理论与实践两方面让学生掌握相关知识和技能。课程依照项目过程,主要分为相机模型与内参标定、环视系统标定及环视语义信息提取3个阶段。在具体授课过程中,授课教师应当注重数学理论与工程问题解决方案的相互结合,依照由浅入深,由一般到特殊的思路,从最基本的基礎理论出发,逐步过渡到真实案例中使用的具体技术。同时,每个阶段都要安排相应的实验讨论环节,让学生通过实践真正理解和掌握所学内容。

(一)  相机模型与内参标定

在进行相机模型的教授之前,授课教师首先需要依照学生情况,决定是否进行基础线性代数知识的补充,这些知识应涵盖矩阵与向量的定义、矩阵乘法、矩阵行列式计算及矩阵求导等内容。在确保学生具有所需的数学基础后,从一般情况入手,讲解针孔相机模型,分析相机成像过程包含的4个坐标系(世界坐标系、相机坐标系、归一化平面坐标系和像素坐标系)与相机内外参数的定义,让学生理解相机的基本成像流程。在此基础上,进一步讲授相机的畸变模型,分析径向畸变与切向畸变产生的原因,并用数学表达式给出严谨的定义。之后,逐步聚焦于车载环视系统中使用到的鱼眼相机,讲述鱼眼相机的畸变模型,并分析对比鱼眼相机畸变模型和普通相机畸变模型的异同。

目前,相机内参标定使用最广泛的方法是张正友标定法[5]。该方法通过从不同角度观察有具体尺度信息的平面模式,对相机内畸变参数给出估计。由于理论过于繁复,教师应当依照教学时间与学生基础合理安排课程。

当理论教学完成后,需设置实验课程,让学生把理论算法进行编程实现。学生需通过小组合作,用相机从不同角度拍摄标定板,并使用OpenCV或者其他框架编写程序,计算相机内参并完成畸变矫正。如果图像畸变校正效果不佳,需带领学生对可能的原因进行深入分析(如特征点检测不准、拍摄角度过于单一、相机畸变过大导致模型难以拟合等)。

(二)  环视系统标定

环视系统的标定与环视图的生成主要基于射影空间几何变换的理论。授课内容需遵循由简至繁的原则,从欧氏变换开始,逐步增加变换的自由度,依次讲解欧氏变换、相似变换、仿射变换与射影变换。为估计两平面之间的单应性变换矩阵,教师还应对单应性估计与线性最小二乘法进行讲解,剖析如何通过四组二维点对或者更多的点对来估计两平面之间的单应性变换。最后,讲解环视系统中相机外参的标定流程。

环视系统的标定通常依赖棋盘格平面标定场或标定布,如图1(d)所示。如果条件受限,也可使用砖块大小一致的砖地之类的具有尺度信息的平面模式替代。在标定过程中,通常以车辆后轴中心作为车辆坐标系原点,车辆需要被驾驶到固定的位置上,让车辆后轴中心对准标定场内一个固定的角点。之后,采集4个广角鱼眼相机的图像并完成去畸变操作。此时,去畸变后的图像平面与地平面之间存在着单应性变换映射关系。通过在图像上找出角点的像素坐标,并利用格子的尺度性找到其在地面坐标系中的坐标,就获得了一组二维点对。利用超过4组(通常使用8组以上)的点对,就可以解算出地面平面坐标系到去畸变图像平面坐标系之间的映射关系。

学生应当分组编写鱼眼相机畸变去除与单应性估计的程序,并在实际场地完成标定,计算去畸变图像与地平面之间的单应性矩阵。最后,结合单应性矩阵与相机畸变系数,生成从鸟瞰视图坐标系到原始鱼眼图像坐标系的映射表,从鱼眼视图生成鸟瞰视图。在得到4个方向的鸟瞰视图之后,需要观察每个摄像头的视场范围,找出其重叠的部分,确定出相邻两个视图的图像拼接线,将4幅鸟瞰图像拼接成完整的鸟瞰环视图像,如图2所示。

在课后学生应当查阅相关文献并分组讨论分析以下几点问题:①常见的环视系统标定方案包含哪些?优劣是什么?②影响环视图像精度的因素主要有哪些?③如果相机位置发生改变,在不进行重新标定的前提下,是否有方法可以修正错位的环视图?

(三)  环视语义目标检测与分类

标定好了环视相机系统以后,就可以学习如何在环视图中提取语义信息。在正常道路环境下,环视图中包含的常见语义特征包括车道线、行进指示标识、泊车位、泊车位序号和减速带等,教师可以根据实际情况选取想要提取的目标类别。对环视图中语义目标进行检测与分类主要依赖深度学习的相关知识。教师需首先对机器学习与深度学习的基础知识进行讲授,尤其是应包括卷积神经网络、目标检测中常见的网络结构、基于深度学习的语义分割等内容。

比如,泊车位检测是一个较为典型的目标检测与分类问题。该问题可以分解成泊车位标志点模式检测和局部图像块分类2个子问题[6-8]。常见的目标检测神经网络都能用来解决泊车位标志点模式检测这个问题,本案例选择了性能较好且使用较为广泛的YOLO系列检测子。局部图像块分类问题是一个典型的图像模式分类任务,可以用任何流行的图像分类深度神经网络来解决,比如AlexNet、ResNet、DenseNet等。

此外,神经网络的性能和训练数据集的数据数量与种类有着很大的关系,因此教学中还应当涵盖数据集的选取、标注与扩充等内容。教师需带领学生采集各种情况下的环视图像数据,需尽可能覆盖室内、室外、傍晚路灯光照和树荫遮挡等各种实际情况。然后,再进行数据的标注与扩充。

在具体教学安排中,学生需要小组合作,完成数据采集与标注、训练集与测试集的划分、深度学习环境配置和深度神经网络的训练与测试等一系列流程,在实践过程中掌握深度学习技术在计算机视觉任务中的运用方式。如果时间与实力允许,鼓励学生自行探索提升系统性能的方法并尝试实现。

三  案例教学组织方式

为引导学生系统地学习和实践本综合教学案例,本案例教学计划总共安排7周时间,分为理论教学、实践教学和项目交流与答辩3个环节。

(一)  理论教学

理論教学环节安排3周时间,由教师讲授相关的理论知识,包括环视系统构建过程中涉及的基础知识(相机成像模型、射影几何等)、线性最小二乘法、非线性最小二乘法、人工神经网络及目前学界前沿的视觉目标检测网络结构等。同时,除了理论授课外,案例为每一堂课都准备了上机练习或者扩展阅读资料。上机练习可以帮助学生加深对理论知识点的理解。扩展阅读资料是对课堂内容的补充。由于课堂时间有限,教师无法做到对所讲授的知识点面面俱到。学生通过阅读这些资料可以了解课堂上没有触及到的细节,以及该研究课题的学界前沿成果。

(二)  实践教学

实践教学可安排2周时间,学生需自由组队完成一个完整的车载环视及环视语义信息提取系统。学生需要结合理论教学环节所学知识,分析该项目中需要解决哪些问题,之后进行合理分工,完成项目,编写代码并撰写文档。在实践过程中,学生会碰到一些棘手的问题,这时就需要他们自己去查阅资料,搜集并研读相关文献,以解决问题。教师在该阶段需要和各个学生保持定期的沟通,确保每个组项目的顺利进行,并解答他们的问题。

(三)  项目交流与答辩

安排2周时间进行项目交流与答辩。经过之前5周的学习和实践,学生基本可以按照教学计划完成一个较为完整的车载环视系统。这之后,安排2周时间进行最后的归纳总结。学生需要在这2周中回顾之前的教学知识并结合自己项目的完成情况,撰写完整的项目文档。文档需包括(但并不限于)背景、概述、项目实施细节、实验结果及总结5个部分。在课程的最后,安排答辩环节。每个小组的成员需要制作答辩PPT,对自己项目的完成情况进行汇报。教师和其他学生听取汇报,并提出问题或者建议。希望学生在答辩与交流的过程中能够回顾项目完成的过程,并通过听取他人意见、对比不同小组的完成情况,发现工作中的亮点以及值得进一步研究的内容。

四  结束语

为了有效提升计算机视觉课程的教学效果,使学生更加深入牢固地掌握课上所讲授的理论内容,我们设计并实践了综合教学案例“环视系统构建及基于环视的语义信息提取”。从2016年开始,本综合性教学案例已经在我们的计算机视觉课程中完整使用了6个周期,取得了良好的应用效果,获得了同济大学相关专家和学生的好评,并引起了强烈的反响。该案例也获得了2019年全国软件工程教学案例比赛一等奖。在今后的教学实践中,我们将认真听取相关专家和学生的建设性意见,对该综合案例不断完善,与时俱进,从而持续提升该课程的教学质量。

参考文献:

[1] 沈莹,高珍,张林.模式识别课程中的思政建设[J].教育现代化,2020,7(94):113-115,155.

[2] 沈莹,高珍,张林.《用户交互技术》荣誉课程建设方案探讨[J].教育现代化,2020,7(89):104-108.

[3] SONKA M, HLAVAC V, BOYLE R. Image Processing, Analysis, and Machine Vision[M]. Stamford: CENGAGE Learning, 2008.

[4] 张林,沈莹.面向计算机视觉课程的综合性实验平台[J].计算机教育,2017(5):136-139.

[5] ZHANG Z. Flexible camera calibration by viewing a plane from unknown orientations[C]//Proceedings of International Conference on Computer Vision, 1999:666-673.

[6] ZHANG L, HUANG J, LI X, et al. Vision-based parking-slot detection: A DCNN-based approach and a large-scale benchmark dataset[J]. IEEE Trans. Image Processing, 2018(27):5350-5364.

[7] HUANG J, ZHANG L, SHEN Y, et al. DMPR-PS: A novel approach for parking-slot detection using directional marking-point regression[C]//Proceedings of IEEE Int'l Conf. Multimedia and Expo, 2019:212-217.

[8] LI L, ZHANG L, LI X, et al. Vision-based parking-slot detection: A benchmark and a learning-based approach[C]// Proceedings of IEEE Int'l Conf. Multimedia and Expo, 2017:649-654.

猜你喜欢

计算机视觉教学案例实践教学
机器视觉技术发展及其工业应用
危险气体罐车液位计算机视觉监控识别报警系统设计
小学数学课堂导入技巧及案例分析
反转课堂模式与数学教学案例
促进初中化学定量观建构的教学案例
茶学专业校企合作实践教学探索
《电气工程毕业设计》 课程的教学设计
小学数学“反思型” 教学的探索与实践
高职院校商务礼仪课程教学改革探索刍议
《数据库高级应用》教学创新方法研究