(本系列只需要modelsim即可完成数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击top_tb.bat文件就可以完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程文件请关注知识星球:成工fpga,https://t.zsxq.com/DMeqH,关注即送200GB学习资料,链接已置顶!)
车牌识别终于要完成了,同时《闲庭信步使用图像验证平台加速FPGA的开发》这个系列也要马上结束了,成工看来,做工程简单,写文章倒是比较困难一下,特别是想把相关的知识和技巧写出来能让大家理解更加困难。由于时间的原因,成工有一些文章写的有些粗糙,基本就是代码和图片的叠加。至于怎么才能做好一个系列的教程,成工也在思考和反思,后面的系列一定会有改进。
至于为什么要在别人工程的基础上进行改进,首先是借鉴别人的思路,同时结合成工的这套图像验证平台,来让大家感受到确实可以加速FPGA的开发;同时增加自动化仿真的功能,中间的处理都可以通过保存图片查看,加深大家对算法的理解;其次就是读别人的工程,消化掉,再进行改进,花费的精力并不比从零开始设计工作量小,接手别人工作的朋友都应该感同身受。
言归正传,上篇我们对车牌的每个字符都完成了模版的匹配并得到模版的编号,其实知道模版的编号也就是知道匹配的内容了,我们把相关的数字,字母,汉字的字模事先保存好,编号顺序和用来匹配的模版的顺序一样,就可以根据匹配模版的编号取出相应的字模来。
在\src\plate_add_gui文件夹下新建plate_add_gui.sv文件,文件中有相关字符的字模信息,这些也是大磊老师他们做好的,我们可以拿过来直接使用。
首先我们来定义一下字符显示的颜色,字符显示的位置,高度和宽度。
然后在相应的区域显示相关的字符信息即可,显示的方式就是根据字库中字模的信息在相应的区域用黑白色显示。
字符显示区域显示字符,其它区域还是原图像数据。
在top文件中例化了plate_location,location_out,char_segmentation,char_sgm_out,char_recognization,char_recg_out,plate_add_gui等模块,至此车牌识别的整个工程搭建完成。
在tb_image_sim文件的initial块中,完成相关图片的保存。
双击sim文件夹下的top_tb.bat文件,完成系统的自动化仿真。
完成四幅图像的处理和保存,处理时间较长,modelsim的Transcript有如下的打印信息。
最后我们打开img/output文件夹,就可以看到相关的图片。
这个车牌识别是正确的,并不是所有的车牌都能正确的识别,下面几幅就是识别失败的。所以该工程并不能直接在项目中使用,除非输出的图像完全符合要求。成工用这个实例是用来说明有了图像验证平台可以加速FPGA的开发,特别是在没有硬件的前提下,可以尽可能的把仿真过程中暴露出来的问题解决掉。