基于FPGA的车牌识别

这篇具有很好参考价值的文章主要介绍了基于FPGA的车牌识别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于FPGA进行车牌识别

  • 基于FPGA进行车牌识别
    • 1. 文件说明
    • 2. 程序移植说明
    • 3. 小小的编程感想

本项目的原理讲解视频已经上传到B站“基于FPGA进行车牌识别”。
本项目全部开源,见我本人的Github仓库“License-Plate-Recognition-FPGA”。


1. 文件说明

小技巧:下载整个Github文件夹:http://tool.mkblog.cn/downgit/#/home

1. 工程及源代码

里面包含了大磊FPGA的源代码,以及我自己的源代码。

其中,大磊FPGA的源代码包括一些的数字图像处理的模块。我自己的源代码则直接将Vivado 2022.1工程“ov5640_fun4_lcd_up3”放了上去,同时将工程中的比特流源代码及硬件约束文件单独拿了出来,需要的同学可以快速查看。

2. 软件处理

里面包括整个开发过程所用到的图片库,以及我自己写的MATLAB仿真源代码。这些汽车图片都是我在校园里拍的。

3. 基于FPGA的车牌识别.pdf

就是我在B站演示的PPT,需要自取。

4. 图库

本markdown文档中用到的图片,大家基本用不到所以不用看。

2. 程序移植说明

本人在开发时使用到的硬件:

  • FPGA开发工具:Vivado 2022.1。
  • 开发板:正点原子达芬奇PRO(xc7a100tfgg484-2)。
  • 摄像头:正点原子OV5640。
  • LCD显示屏:正点原子800*480显示屏。

首先,如果使用的硬件和本人一样,那么就可以直接打开Vivado下载比特流(开源文件夹中“工程及源代码\我自己的工程备份\比特流备份\ov5640_fun4_lcd.bit”),就可以看到我在视频中所演示的现象。

若配件不一样,或者使用其他版本的Vivado或者Altera那边的Quartus,可能打不开这个工程,就需要工程迁移。但好在本项目几乎用的都是纯Verilog,以及一些常见的IP核(clk、BRAM、FIFO、MIG),所以我直接将所有的源代码和约束文件都提取出来放在了“.\工程及源代码\我自己的工程备份\源代码及约束文件”,并且我下面将给出各个IP核的配置界面,以供大家参考。文章来源地址https://www.toymoban.com/news/detail-807314.html

车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别
1-1 时钟模块-clk_wiz_0配置
车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别
1-2 DDR3模块-mig_7series_0配置
  • 第一页默认。
  • 第三页默认。
  • 第四页选DDR3。
  • 第八页默认。
  • 第九页:Fixed Pin Out.
  • 第十页:选择“Read XDC/UDF”,然后选取工程文件夹中的“ddr3_xdc.ucf”,再点击“Validate”即可。
  • 第十一页及之后就按照默认选项“同意”即可。
车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别
1-3 DDR3模块-rd_fifo配置
  • DDR3模块-wr_fifo配置:与rd_fifo一样,只不过名称不一样。
车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别
1-4 数字图像处理模块-blk_mem_gen_0配置
车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别
1-5 Sobel边缘检测模块-cordic配置
车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别车牌识别的流程图基于fpga的,我的项目,fpga开发,图像处理,车牌识别
1-6 水平投影模块-projection_ram配置

3. 小小的编程感想

  1. 摄像头的信号。开发新的模块时,注意场同步信号vsync是低电平有效,而行同步信号href和行有效信号clken都是高电平有效。并且clken和href左对齐,且clken每两个时钟周期才有效一次(这是因为摄像头一次只能传输8bit数据,但是一个像素的数据为RGB565共16bit)。
  2. 卡了很久的bug:上电后画面总是停留在第一帧,然后就不动了。原来是没有给模块输入正常的时钟信号…
  3. 奇怪的硬件bug:上电后工作完全正常,但是过个两三分钟画面就会卡住不动了。最后我也不知道咋回事,打算第二天再看,结果第二天这个问题就突然好了。😂

到了这里,关于基于FPGA的车牌识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包