李 宏,宋乔乔,孔德超,牛丽娜
(中南大学信息科学与工程学院,湖南长沙410083)
随着自主学习教育理念的深入,大学越来越注重实践教育。综合性实验教学体系正在逐步形成。目前,很多高校都开设了融合多课程的综合性实践课程[1,2]。
我校自08年启用新的教学培养方案,增设课外自主选修学分,学生可通过发表论文、参加竞赛和选修课外研修课程等方式获得学分,以此培养学生自主学习和实践的能力。为此,我们开设了一门课外的研修综合性实验课程,为部分学生提供锻炼和个性化培养的平台。实验课程将DSP、数字图像处理和模式识别3门课程相结合[3],面向工程实例,以车牌识别系统LPR(License Plate Recongnition)的开发作为整个实验的内容。在整个实验课程结束后,学生要运用数字图像处理和模式识别知识,完成一个基于DSP的车牌识别原型系统。与传统的综合性实验相比,这种面向实际应用的教学方法,不但增加了学生对课程的兴趣,而且使学生能够应用DSP进行人工智能领域的综合应用开发,提高学生从事实际工作的能力,真正达到学以致用的教学效果[4]。
车牌识别系统的工作方式是:摄像机获取视频信号,在得到一帧视频图像数据并存入SDRAM后,DSP开始对数据进行处理。当检测到车牌位置后,从车牌图像中提取字符并进行识别,结果通过RS232传给PC机。
车牌识别系统一般可顺序分为车辆图像获取、车牌定位和字符识别三大部分。其中车牌定位又分为图像预处理、车牌定位、车牌校正和车牌字符分割等步骤;字符识别又包括特征提取和字符识别等。其流程如图1所示。
图1 车牌识别系统流程图
车牌识别系统的工作原理是通过摄像头采集车牌图像,经过平滑、二值化、边缘检测和中值滤波完成图像预处理;通过定位算法确定车牌在整幅图像中的位置,若车牌图像倾斜,则进行校正;然后是字符分割和归一化处理;分割完成后,提取字符的特征值,通过神经网络等方法进行识别,最后把识别结果通过串口发给PC机。
实验课程的设计就是以上述车牌识别系统的原理和流程为基础的。
我校DSP实验课程采用基于DM642芯片的试验箱作为硬件平台。该试验箱具有出色的对外接口能力,布局合理,实用性强,提供了丰富的教学实验和底层硬件测试程序和算法例程,兼顾了教学和科研。其结构如图2所示。
在此平台中,车牌识别系统实验分为采集与显示、车牌定位与分割和字符识别等三个部分。其中,采集与显示部分要求学生掌握VP口的开关设置、IIC总线的控制以及EDMA模块的编程控制;车牌定位与分割部分促进学生对DSP的外部存储器接口EMIF模块编程和软件移植的理解;字符识别部分考察学生程序优化和UART模块编程的能力。通过此组实验,学生不但能够掌握DSP各模块实际的开发方法,而且能够将各模块结合,系统地完成一个具有实际意义的工程项目。
图2 试验箱结构框图
图像的采集与显示实验[5]难度较大。首先,需要使用芯片支持库CSL(Chip Support Library)提供的控制外设的C语言接口和所有模块函数,完成对DSP系统的硬件资源管理,包括硬件设备静态初始化及动态应用,达到对各模块控制的目的;图像采集由VP口实现,通过将DM642上的VP1口配置成单通道视频输入口,使8位的IT U-R BT.656数据流进入VP1口,经BT.656捕获通道进入视频缓冲区;当图像经过摄像头进入VP口后,通过IIC总线来配置视频解码器读写操作的初始化,将模拟信号转换为数字信号;然后,为了实现片内存储器、片内外设以及外部存储空间之间的数据传递,将采集的图像暂时存放,用于对EDMA进行配置和初始化等,实现视频缓冲区和片内存储器之间的数据传递;最后,将VP2配置成单通道视频输出口,编程控制显示功能的开关,并将VP2作为Vout口与液晶显示屏相连,才能在显示屏上直观地看到图像采集、车牌定位和字符分割的效果。
如此众多模块合作才能实现视频采集与回放的功能,难度较大。因此,我们把这部分实验设计成纠错与改错的形式,为学生提供完整的图像采集与回放源代码。我们在各模块程序的关键语句上有意设置参数错误,学生可以通过自学,发现和修改这些错误,并调试程序,最终实现实时采集与回放。这样的设计有助于学生有选择性地掌握重点,更快地进入角色。例如IIC总线的设置中,我们将下段程序提供给学生,但各别语句的参数设置是错误的,学生可通过学习CSL进行修改,快速掌握DSP中CSL的使用。
在采集与显示功能实现的基础上,车牌定位和分割实验的重点放在软件移植和编程方法上。图像预处理、车牌定位、字符分割和字符识别等众多的源代码涉及了程序和海量数据的存储问题,这里用到了EMIF内存扩展模块。EMIF在内存中的地址映射分为4个可独立寻址空间CE[3:0],通过初始化将CE0空间配置成64位用于SDRAM内存的映射,将CE1空间配置成8位用于Flash和UART的映射。其中,SDRAM用来存储海量数据,并通过SDRAM控制命令对存储器进行读写控制,使用Flash存储器保存程序代码和一些掉电后仍需保存的数据,并通过对CPLD编程实现对Flash各页的操作。
这部分实验通过一个基于DSP的图像阈值分割原型系统的实例来进行。我们首先给出详细的实验步骤、调试方法和算法源代码,学生运用上述的采集与显示实验成果,为其添加其它功能和实现。然后,基于VC的平滑处理、边缘检测和中值滤波等数字图像处理方法的源代码,学生可以根据DSP的C语言编程方法,完成程序从VC到DSP的移植,有能力的学生还可对算法进行添加、删减和改进,以提高车牌识别的正确率;最后要求学生实现车牌定位功能,即能够在液晶屏上看到定位效果,效果的好坏将成为成绩评定的标准。
学生在这部分实验中首先添加特征提取和识别的程序,完成UART模块的传输功能;接着利用图像视频处理库对整个原型系统的程序进行优化,提高程序的运行速度和整个工程的效率。
UART作为DM642与PC机的通信接口部分,与DM642之间通过8位总线传输数据,通过编程将UART配置成RS232标准,实现将识别结果发送给PC机的功能。实验提供UART的硬件调试程序和串口通信软件,学生可以通过例程添加UART配置程序,学会使用串口通信软件,最终将识别结果传送到PC机上,并在串口通信软件中显示识别结果,完成整个基于DSP的车牌识别原型系统;实验还提供100个测试样本,学生对完成的系统进行测试,并以识别的正确率作为成绩的评定标准。
TI公司提供了一系列针对DM642芯片进行过优化的图像视频处理库IMGLIB,库函数都是一些常用的图像视频处理算法,可以在C代码中直接调用,我们可以借用这些函数,得到比用标准C写成的相同算法代码更快的速度。学生可根据自身条件选择完成程序优化,并将此作为成绩评定的标准。
本实验课程设置2学分32学时,采用开放式教学方法[6],网络化管理模式,实现网络选课、预约与评分。进入实验室前,学生必须参加资格考核,对10个基本实验进行调试,完成6个以上者才能开始参加车牌识别系统的开发。学生在修完实验课程后,经由网络提交审核申请和实验报告,成绩评定合格后将得到学分。
课程的成绩评定的标准是量化的,即按照学生是否完成对应的实验项目、是否达到要求的识别率来评判学生成绩的等级,这种利用量化的标准给学生打分的方法更加客观,更好操作。
我校部分05级本科生已经通过选修此门综合性实验课程获得了课外研修学分。实践证明,该实验课程取得了良好的教学效果,得到了学生的肯定。课外研修综合实验课程是目前教学改革的重要课题,本文提出的课题为高校实验教学改革的实施提供了一条途径。这项大胆尝试,对学生自主学习能力的提高有推进作用。
[1] 庄乾起.开发多课程综合实验设备加强创新能力培养[J].南京:电气电子教学学报,2002,24(2)
[2] 黄雪梅.机电设备及自动化系统综合性实践课程研究[J].武汉:理工高教研究,2008,27(4)
[3] 于复生,高翔,李凡,冰江涛.基于单片机的机电综合实验系统的研究与实现[J].南京:电气电子教学学报,2003,25(6)
[4] 全吉男.通过改造实验室设备培养学生综合能力[J].上海:实验室研究与探索,1998,17(5)
[5] 张炜,胡云龙,吴镇扬.DM 642的性能及其在视频处理实验中的应用[J].南京:电气电子教学学报,2005,27(5)
[6] 许建华.应将单片机引入开放性实验[J].南京:电气电子教学学报,2001,23(6)