FPGA实现车牌的倾斜校正

来源 :科学时代·下半月 | 被引量 : 0次 | 上传用户:shushuclover1
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】作为车牌识别系统的关键环节,车牌倾斜直接导致车牌识别准确率降低。本文主要基于FPGA实现车牌倾斜校正算法,完成如下功能:采用Hough变换计算倾斜角度,采用CO RDIC(坐标旋转数字计算)算法计算三角函数值;采用双线性插值实现重采样。
  【关键词】倾斜校正;FPGA;Hough变换;CO RDIC
  引言
  随着我国科学和技术的日益发展,世界范围内汽车数量的增长,城市智能化交通系统(ITS, Intelligent Traffic System)[1]受到人们越来越多的关注并且成为了一个热门的研究领域。车牌识别(LPR, License Plate Recognition)作为重要技术已经成为系统关键部分的组成。采集到的车牌图像在一定程度上存在着角度的倾斜,若倾斜角度偏大,则会干扰到了字符识别的准确性,对字符进行分割和识别等工作带来相当大的困扰。所以说车牌倾斜校正在车牌识别系统中起到了重中之重的地位。基于FPGA在硬件层面对车牌图像进行倾斜校正,根据倾斜校正算法的特点要求的是实时性和并行性,因此FPGA能很好的达到系统要求,无论是在速度、稳健性、存储容量、复杂环境等方面都可以有可观的改善。并且基于FPGA的车牌图像倾斜校正系统可以广泛的应用在车牌图像处理和识别系统当中。
  系统的整体框架设计
  如图1所示为系统的整体设计框图,车牌图像经过DA转换模块ADV7180转换成图像数据,将数字图像输入到图片输入FIFO,再进入到Hough变换模块,同时由CORDIC算法得到的正余弦函数值存入片内ROM后,将函数值送到Hough变换模块进行倾斜角度的测量,将角度存入片内RAM中,进入图像旋转模块进行图像旋转,再对旋转后的图像进行双线性插值,将经过倾斜校正的车牌图像存入FIFO通过显示控制器到D/A转换模块ADV7123,最后通过VGA显示出倾斜校正后的车牌图像。
  车牌倾斜校正的软件实现
  对于车牌倾斜校正算法,要确定车牌的倾斜角,之后对其进行旋转,采用Hough变换测得直线,从而得到倾斜角,在Hough变换的过程中通过CORDIC算法来实现正余弦三角函数值的确定,通过基于CORDIC算法的Hough变换实现得到倾斜角度,最后对图像进行相应的旋转和插值,最终达到倾斜校正的目的。
  对于车牌倾斜校正算法的基本原理,Hough变换,CORDIC算法以及图像旋转原理和插值方法这些传统的方法,经过进一步的研究后得出新的优化算法。首先,倾斜校正算法由两部分来完成,一个是通过Hough变换来求得车牌图像的倾斜角度,第二部分是通过得到的倾斜角度,对车牌图像进行旋转为了产生“空洞现象”再进行插值方法,最终得到结果图像,以达到倾斜校正的目的。不论是Hough变换,还是旋转变换,都需要大量的三角函数计算,在FPGA硬件实现中,通常都是使用三角函数查找表来完成,在这里,将用到的是基于CODRIC算法来得到三角函数值,并存在FPGA内部的ROM中,来配合Hough变换的进行。
  采用CORDIC迭代算法的流水线结构[2],每一级CORDIC迭代运算都采用独立的一组运算单元,流水线被填满后,每个时钟周期都会计算得到一组数据,它的快速处理确保了数据实现实时高速处理的前提,每一级功能的实现都迭代一次,移位的位数与当前的迭代级数相等,选择加减法的依据由该级中Z的最高符号位来决定,从而得到下一级运算中的x、y、z值。经过流水线运算N级后,z等于0,x为初始值z0的余弦值,y为初始值z0的正弦值。每一级运算单元的结构主要由3个加(减)法器和2个移位器组成,级与级之间不需要其他的寄存器,直接相连。唯有值为arctan(2- i),可将其转换为二进制数后,在存储单元内提供查找表给每一级流水线。
  对于FPGA实现Hough变换主要分为对ρ值的计算和Hough变换空间点坐标值累加两部分。对于平面空间中的直线上的所有点,在参数空间中的正弦曲线都将交于一点,因此,对值进行计算,并且逐次加1,完成累加后,设定阈值,因此,在阈值上的点就是参数空间中相交的这个点,在平面空间中对应的就是要检测得到的直线,最后获得倾斜角度。ρ值的计算过程,用乘法模块计算α从CODRIC算法模块中sinα和cosα得出的值和空间坐标的x与y相乘的值,最后通过加法模块的运算得出ρ的值[3]。
  乘法模块的作用是完成倾斜校正算法中Hough变换和旋转算法中图像坐标变换所需要的乘法运算。在Hough变换中x,y是8bit,在图像旋转中,正余弦三角函数值是16bit,由此,本系统中,构造乘法模块的规格是8bit×16bit,这样才能进行乘法运算,在乘法模块的输入端是8bit和16bit的变量,输出端为24bit的数据。
  符号运算模块的作用是完成倾斜校正算法中符号数的处理和运算操作。这里主要是针对算法中的正余弦函数值以及在图像旋转算法中的减法运算结果可能为正也可能为负。对于sin和cos可以通过对sin_sign和cos_sign赋值来表示,0正,1负。在图像旋转中,x,y则用x_sign和y_sign赋值表示,0正,l负[4]。通过对符号进行异或运算得到叠加运算中的所有符号,最后得到运算结果。
  仿真结果
  采用ModelSim仿真工具进行仿真,下图为对系统整体仿真的波形图,并且对仿真的结果进行了分析。
  角度的精确值与系统中处理过后的三角函数值,精度基本为10- 5,所得误差在接受范围内。从仿真图可以看到,该系统能完成对倾斜车牌图像的校正,对于圖像的效果需要接下来的车牌识别的步骤得以完善,最终呈现出一副端正清晰地车牌图像。
  参考文献:
  [l]史其信,陆化普.中国ITS发展战略构想.公路交通科技.1998.
  [2] 孔德元.针对正余弦计算的CORDIC算法优化及其FPGA实现:[硕士学位论文].长沙:中南大学,2008.
  [3]商尔科,李健,安向京等.基于FPGA的实时Hough变换.计算机工程.2010,36(16).
  [4]曾祥萍.实时图像的电子消旋技术:[硕士学位论文].西安:中国科学院光电技术研究所,2006.
  [5]李洪伟.图像跟踪器中视频处理系统的设计与电子消像旋的实现:[硕士学位论文].成都:电子科技大学,2006.
  [6]王新新,于素萍,赵小明.基于CORDIC算法的Hough变换及其FPGA实现.通信技术2010,7(43)
  [7]Tso- Bing Juang,Ming- Y u Tsai.Para- CORDIC:Parallel CORDIC RotationAlgorithm[J].IEEE Transactions on Circuits and Systems,2004,51(8):1515- 1524.
其他文献
本文回顾分析了62例中西医结合治疗慢性肾功能不全的临床诊断,治疗过程,探讨了慢性肾功能不全的病理机制,同时分析了中药配方的药理作用。
临床经验丰富,针刺选穴既活血行气,又注意补气,气行则血行,气滞则血滞。选用刺络拔罐疗法,每次均可拔出大量淤血,淤血不去,而新血不生,祛瘀生新,是为皮肤病迅速起效的捷径。黄芪可以补
对于临床应用肝郁辨证的方法重要的是在于辨证思路的指导和治疗方法的体现。因此,在临床各科疾病中均可广泛应用。使用肝郁辨证方法应在整体脏腑辨证基础之上进行,应用的关键是
本介绍了两例利用泻青丸加味治疗目赤的临床过程及疗效。总结了出该药方适应证应该是感受风邪或风寒后,气机闭郁不通,郁滞化热,局部络脉扩张充血之症。
会议
目的:观察用直肠点滴法治疗脑出血昏迷的疗效.方法:用清开灵注射液80ml加40℃生理盐水40ml,按照直肠点滴疗法的操作方法直肠点滴.再用大黄炭50g研为极细末,加40℃生理盐水60m
前不久去参加中央四的中华情《情艺在线》节目,这期嘉宾有韩国的张佑赫,还有安又琪和我。小小的节目场地挤满了上百名来自张佑赫内地歌迷会的 MM。开场就是张佑赫的激情歌舞
一个瘫了十年、哑了十年的罪犯,在保定监狱干警倾注真情的教育挽救下,在日复一日、年复一年的改造感召下,终于从他瘫躺多年的床铺上站起来,颤颤巍巍地迈出了走向新生的宝贵一
在眼科血证的治疗中,张教授特备强调止血和祛瘀一直贯穿整个治疗过程中。这一方法既可达到加快瘀血斑及渗出物等的吸收目的,又可防止再次出血。
会议
覆土是栽培鸡腿菇的一个重要环节。覆土时菌种棒既有竖式也有横式,到底以哪一种方式好,针对这个问题,我们进行了试验,现将结果初报如下: 1 材料与方法 培养料为棉子壳87%,玉
新型冠状病毒肺炎(简称“新冠肺炎”)患者新型冠状病毒核酸复检阳性(简称“复阳”)虽然并未出现再次传染及临床症状加重的情况,但不能排除其潜在风险.分析新冠肺炎复阳现状,