赵俊红
(华南理工大学 自动化科学与工程学院,广州 510641)
2017年,教育部复旦共识强调新工科建设需要加强研究和实践[1],实验教学是培养学生实践能力的重要环节。在新工科建设背景下,实验教学内容应包含更多的综合性实验,要在实验教学过程中加深对理论知识的理解和掌握,切实提高实践能力。
数字图像处理是迅猛发展的新兴学科,是自动化学科的重要应用领域,强调实践性。数字图像处理课程有相应配套的实验课程,而现有实验课程往往偏重于讲解各种图像处理工具包的使用方法,利用工具包进行验证性实验,缺少综合性实验,导致部分学生做完实验后只记得工具包中的函数,而对具体理论并没有加深理解,实践能力提高有限,设计出既能深化理论知识又能提高实践能力的综合性实验非常有必要[2-3]。
现有一些图像处理软件能对照片中的折痕、残缺、斑点等瑕疵进行一定程度的自动修复,能达到较好效果,如Photoshop Elements 2020能将图像中较大物体消除而不会出现明显的视觉痕迹。可设计一个综合性实验来模拟Photoshop Elements 2020软件,以实现数字图像的修复功能,学生需综合运用理论知识来进行实践活动。
图像修复技术在文物修缮、图片美化等方面发挥着重要作用。现有修复算法很多,其中Criminisi的修复算法效果相对较好,于是选择该算法进行实验教学设计。
矩形图像1为待修复图像I,待修复区域为Ω,源区域为Φ(Φ=I-Ω),其待修复区域边界定义为δΩ,Criminisi算法先计算δΩ上所有像素点的优先权P(p),优先权最大的点p所在区域块选为待修复区域块ψp。然后,在源区域Φ中选择与待修复区域块ψp中所有像素的误差平方和(SSD,Sum of Squared Difference)最小的最佳匹配块ψq,将对应像素填充到待修复区域块ψp中并更新δΩ,循环往复至Ω为空。
图1 图像修复Criminisi算法
优先权公式为
P(p)=C(p)·D(p)
(1)
其中,C(p)为置信度项,D(p)为数据项,其定义分别为
(2)
|ψp|是ψp的面积,np是点p的单位法向量,α是归一化因子,通常取α为255。对于C(q),有:
(3)
⊥表示垂直化操作,Ix和Iy表示p点在x,y方向的偏差分。∇Ip⊥表示源图像中p点所在的等位线方向。
(4)
图2 图像修复效果示意
本实验是综合设计型实验,通过实验教学能加深对理论知识的理解,能有效提高学生的文献检索能力、动手实践能力和自主学习能力。
学生已经可以利用现有的图像处理工具包进行一些简单的验证性实验,基本无科技文献专业数据库检索经验,无图像处理综合设计型实验经验,这些都使得进行综合性实验具有必要性。
学生具有基本的数字图像处理理论知识,已经学习C++语言和MATLAB语言,部分学生自学了PYTHON语言。图像修复实验中所需要的基本理论知识已在理论课程中学习过,但和课本知识相比,实操难度增大,高于一般的验证性实验,具有一定的障碍性[5],可通过查阅资料、加深理解和深化算法来完成[6-7],以保证综合性实验的可行性。
步骤1:激发并保持学生的学习兴趣[8-9]。兴趣是最好的老师,学生对有兴趣的事情能保持较好的专注力,能进行自主学习[10]。首先,教师通过Photoshop Elements 2020直观演示自动修复图像效果。其次,演示其他修复应用软件并与Photoshop Elements 2020进行对比,通过不断调整需修复的折痕、残缺、斑点的面积大小来直观观察不同软件的自动修复能力,可观察到Photoshop Elements 2020对大面积的修复能力要优于其他软件。最后,引导出能进行大面积修复的基于样本的Criminisi算法。
步骤2:训练文献检索能力。文献检索能力关系到本实验能否正确完成,因为实验中要理解Criminisi算法的原理并实现,还需阅读大量的文献来完成算法改进。而学生几乎没有专业的数据库搜索经验,所以需首先训练文献检索能力。
课前,利用微课向学生简单介绍中国知网、IEEE库、web of Science、OSA美国光学会、ACM期刊和会议库、EI-village2等,布置一个符合学生现有知识水平的文献检索任务,如图像分割方法综述,学生通过该任务能迅速掌握相关数据库的使用和检索项的提炼。
步骤3:训练科技文献阅读能力。通过数据库找到合适的科技文献后,需要阅读科技文献找到自己需要的内容。学生几乎没有科技期刊文献阅读经验,需利用微课讲解如何阅读科技文献。以一篇图像分割的科技文献为例,通过讲解让学生掌握科技文献的基本结构,学会如何快速阅读科技文献并获取相关知识,还要学会如何对文献进行精读和泛读。
步骤4:阅读并实现图像修复原型算法。A.Criminisi的论文Region Filling and Object Removal by Exemplar-based Image Inpainting发表在IEEE transactions on image processing上,篇幅较长,共13页,大部分学生由于第一次接触英文长文文献难免有畏难情绪,此时可采取小组学习法来完成课外阅读任务,4~5人组成读书小组进行探讨,形成读书笔记。正确理解该算法才能正确编程,为了保证理解认识未出现偏差或错误,课堂教学上,各小组要展示读书笔记,教师参与讨论,确保每个学生都能正确理解原型算法。经过两年教学,证明该方法行之有效,学生通过课后阅读、课堂展示和探讨能够较好地掌握该算法原理。至此,就完成了实验预习,有效避免了学生照抄实验指导书和预习报告流于形式的情况。
实现算法过程中会涉及理论课中已学过的图像输入输出、彩色模型转换、梯度运算等操作,在深刻理解相关理论的同时提高了学生的编程能力和实践能力。此环节是在课后完成。
步骤5:鼓励学生对原型算法进行改进。理解和实现原型算法后,为了培养学生的创新能力,鼓励学生对原算法进行改进。鉴于学生现有知识水平,教师指导学生可在以下四方面进行改进:①改进原算法中的优先权计算公式。②样本块大小的改进。③相似性度量的改进。④样本块搜索策略的改进。
对①而言,可引导学生分析原型算法中的P(p)=C(p)·D(p)。由于置信度和数据项之间是相乘关系,会使得如C(P)太小,即使数据项D(p)有较大值也会迅速拉低P(p)接近零,这就使得不同D(p)之间的差异被削弱,使得修复点p的选择随机性增强,因此要改进优先权计算公式。对②而言较为简单,学生可对修复的时间代价进行比较来选择合适的样本块大小。对③而言,原算法采用的是待修复块和样本块之间的SSD来作为刻画二者之间相似性的特征量,但此特征量对图像旋转、亮度变化的鲁棒性较差。理论课程由于课时紧张的原因,对特征量的选取只做了一般性了解。但图像特征量的设计是图像识别中非常重要的环节,要鼓励学生多做探究。教学显示,学生能通过查阅资料得到更优的特征量。对④而言,难度最大,原型算法中样本块的搜索是全局遍历的,为了缩短搜索时间,需采用一些优化的搜索算法。而这部分内容在理论课程中没有讲授,学生需要自主学习相关的优化搜索算法。教学结果显示,小部分学有余力的学生能够完成。改进中的①②③要求所有学生必须完成,④可以选做。
在此步骤中,教师起指导作用,指引实验进行的方向,具体的改进方案、实施方法都需要学生自行完成。学生是在教师主导下进行自主学习,能够培养学生的创新能力和实践能力。教师指导部分在课堂完成,学生实现部分在课后完成。
步骤6:撰写实验报告。完成上述实践步骤后,学生需按照科技论文格式撰写实验报告,提高科研素养。此步骤在课后完成。
步骤7:考核方式。采用小组答辩的方式,教师和其他组别人员进行提问,此种方式能有效避免抄袭或同组组员的依赖思想,能够较真实反映出学生的知识水平。原型算法改进部分允许学生失败,应重点考查算法的改进思路[11-12]。
两年的教学实践表明,学生能够通过课前微课教学掌握科技文献的检索方法和阅读方法,能够理解并实现图像修复原型算法,能在课后通过查阅资料、讨论来完成对算法的改进分析。评教结果显示,学生对此种实验教学过程的认可度较高。
该综合性实验教学以切实提高学生的实践能力为设计原则,面向具备相关知识的高年级本科生开设。教学内容和步骤与理论课程紧密联系,又有一定拔高,能培养学生的文献检索能力、理论联系实践的能力和自主学习能力。