当前位置: 首页 > news >正文

基于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。
  • 摄像头:正点原子OV5640。
  • LCD显示屏:正点原子800*480显示屏。

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

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

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

3. 小小的编程感想

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

相关文章:

基于FPGA的车牌识别

基于FPGA进行车牌识别 基于FPGA进行车牌识别 1. 文件说明2. 程序移植说明3. 小小的编程感想 本项目的原理讲解视频已经上传到B站“基于FPGA进行车牌识别”。 本项目全部开源,见我本人的Github仓库“License-Plate-Recognition-FPGA”。 1. 文件说明 小技巧&…...

Qt - 进程/线程 补充进阶

Qt - 进程/线程 补充进阶 多线程quit / eixt / terminate QThread例子tdicethread 类.h.cpp widget 类.h.cpp 线程同步 多线程 quit / eixt / terminate quit 应用程序或线程安全的取消事件处理队列的执行,并随后使线程退出(如果只希望结束线程并保证它…...

spring笔记

spring 和 springboot的区别 自动配置原理 beanFactory接口和ApplicationContext接口 两个都是 IOC 容器 ApplicationContext接口是BeanFactory接口实现类的子类 功能: ApplicationContext扩展BeanFactory BeanFactoryApplicationContext控制反转国际化支持 …...

最大熵模型

最大熵模型(maximum entropy model)由最大熵原理推导实现 最大熵原理 最大熵原理是概率模型学习的一个准则。最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型时最好…...

微服务中网关的配置

一、添加 Spring Cloud Gateway 依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId> </dependency>二、配置网关路由 在application.yaml中配置如下内容&#xff1a…...

Linux基本指令实现4及热键指令详解

目录 Linux热键补充&#xff1a; 1.bc指令&#xff1a; Tab键的智能补充&#xff1a; ctrlc键&#xff1a; uname指令&#xff1a; lscpu指令&#xff1a; lsmem指令&#xff1a; df -h指令&#xff1a; 关机指令&#xff1a; 扩展指令&#xff1a; Linux热键补充&#…...

系统调用与API

系统调用介绍 什么是系统调用 为了让应用程序有能力访问系统资源&#xff0c;也为了让程序借助操作系统做一些由操作系统支持的行为&#xff0c;每个操作系统都会提供一套接口&#xff0c;以供应用程序使用。系统调用涵盖的功能很广&#xff0c;有程序运行所必需的支持&#xf…...

OpenPCDet系列 | 5.4.1 DenseHead中的AnchorGenerator锚框生成模块

文章目录 AnchorGenerator模块AnchorGenerator.generate_anchors函数 AnchorGenerator模块 首先&#xff0c;根据点云场景将其划分为一个个grid&#xff0c;这个grid size是可以通过配置文件设定的点云场景方位和voxel大小计算出来的。 POINT_CLOUD_RANGE: [0, -39.68, -3, 6…...

【开发者指南】如何在MyEclipse中使用HTML或JSP设计器?(上)

MyEclipse v2022.1.0正式版下载 一、HTML & JSP 可视化设计器 本文简要介绍了 MyEclipse HTML 和 JSP Web 设计器的概念、功能和基本操作过程。这两个设计器具有相似的功能和相同的操作模型&#xff0c;但本文为专门针对其类型的内容。本文档中的示例是使用 MyEclipse HT…...

Node开发Web后台服务

简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型&#xff0c;使其轻量又高效。Node.js 的包管理器 npm&#xff0c;是全球最大的开源库生态系统。 能方便地搭建响应速度快、易于扩展的网络应用&#…...

Linux下对mmap封装使用

Linux下对mmap封装使用 1、mmap简介2、Linux下mmap使用介绍2.1、mmap函数2.2、munmap函数 3、对mmap进行封装4、对封装类MEM_MAP进行测试5、mmap原理6、源代码下载 1、mmap简介 mmap即memory map&#xff0c;是一种内存映射文件的技术。mmap可以将一个文件或者其它对象映射到进…...

深入了解云计算:发展历程、服务与部署模型、未来趋势与挑战

开篇博主 bluetata 的观点&#xff1a;PaaS 服务必将是未来10年云计算权重最高的趋势&#xff08;05/02/2023 15:32&#xff09; 文章目录 一、前言二、认识了解云计算2.1 什么是云计算2.1.1 维基百科上的云计算定义2.1.2 NIST 标准云计算定义2.1.3 如果被面试如何解释云计算 2…...

使用乐鑫 Web IDE 助力物联网开发

乐鑫 Web IDE 是基于 Eclipse Theia 的框架&#xff0c;支持 ESP-IDF VS Code 插件同时具备多项辅助工具。您可以观看我们在 Espressif DevCon22 上的演示视频​​​​​​​&#xff0c;了解它的实际应用。 【乐鑫开发者大会-21】搭载 ESP-IDF Visual Studio Code 插件的乐鑫 …...

Maven(5)---Maven的部署和发布

Maven的部署和发布 在前面的博客中&#xff0c;我们已经学习了Maven的基础知识、依赖管理、插件和生命周期&#xff0c;以及多模块项目管理。本篇博客将介绍Maven的部署和发布功能。 什么是部署和发布 在软件开发过程中&#xff0c;部署和发布是非常重要的环节。部署是指将软…...

内网渗透之权限维持-黄金白银票据隐藏账户远控-RustDeskGotoHTTP

0x01权限维持-隐藏用户 CreateHiddenAccount工具 CreateHiddenAccount -u test -p Psswrd用户管理能查看到&#xff0c;命令查看看不到&#xff0c;单机版无法删除(不在任何组)&#xff0c;域环境(在administrator组中)可以删除 0x02权限维持-黄金白银票据 ⻩⾦票据⽣成攻…...

动态规划——带权活动选择

带权活动选择Time Limit: 3000 MSMemory Limit: 1000 KB Description 给定n个活动&#xff0c;活动ai表示为一个三元组(si,fi,vi)&#xff0c;其中si表示活动开始时间&#xff0c;fi表示活动的结束时间&#xff0c;vi表示活动的权重, si<fi。带权活动选择问题是选择一些活…...

软考A计划-真题-分类精讲汇总-第十八章(面向对象程序设计)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…...

【C++ 入坑指南】(09)数组

文章目录 简介一维数组1. 定义2. 特点3. 用途4. 示例 二维数组1. 定义2. 用途3. 示例 简介 C 支持数组数据结构&#xff0c;它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据&#xff0c;但它往往被认为是一系列相同类型的变量。 一维数组 1. 定义…...

Vue.js

文章目录 Vue&#xff08;前端框架&#xff09;data基本语法v-bind&#xff08;属性&#xff09;v-if&#xff08;条件&#xff09;v-formethods事件v-model表单绑定todolist&#xff08;添加删除展示内容&#xff0c;含上下移动&#xff09;es6语法生命周期函数axios发送ajax请…...

博士毕业答辩流程 注意事项

前言&#xff1a;2023年5月17日14:00-17:00&#xff0c;与实验室其他同学一起旁听了本实验室的博士论文答辩。接下来&#xff0c;我对博士毕业答辩的大致流程进行简要介绍&#xff0c;并对个环节的注意事项进行总结归纳&#xff0c;供毕业生参考。 目录 1. 准备阶段2. 汇报期间…...

ApiPost实战指南:从接口创建到团队协作的全流程解析

1. 从零开始创建你的第一个接口 刚接触ApiPost时&#xff0c;我最先被它的简洁界面吸引。作为一款国产的API开发工具&#xff0c;它完美解决了我们团队在接口调试和文档管理上的痛点。下面我就用最直白的方式&#xff0c;带你走完创建接口的全流程。 打开ApiPost后&#xff0c;…...

:RAG 入门-向量嵌入与检索召

这&#xff0c;是一个采用C精灵库编写的程序&#xff0c;它画了一幅漂亮的图形&#xff1a; 复制代码 #include "sprites.h" //包含C精灵库 Sprite turtle; //建立角色叫turtle void draw(int d){for(int i0;i<5;i)turtle.fd(d).left(72); } int main(){ …...

AI开发-python-langchain框架(--langchain与milvus的结合 )舱

一、 什么是 AI Skills&#xff1a;从工具级到框架级的演化 AI Skills&#xff08;AI 技能&#xff09; 的概念最早在 Claude Code 等前沿 Agent 实践中被强化。最初&#xff0c;Skills 被视为“工具级”的增强&#xff0c;如简单的文件读写或终端操作&#xff0c;方便用户快速…...

logging-flume高可用性设计:故障恢复与负载均衡最佳实践

logging-flume高可用性设计&#xff1a;故障恢复与负载均衡最佳实践 【免费下载链接】logging-flume Apache Flume is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log-like data 项目地址: http…...

SDD基于规范编程-OpenSpec及SuperPowers档

智能体时代的代码范式转移与 C# 的战略转型 传统的 C# 开发模式&#xff0c;即所谓的“工程导向型”开发&#xff0c;要求开发者创建一个复杂的项目结构&#xff0c;包括项目文件&#xff08;.csproj&#xff09;、解决方案文件&#xff08;.sln&#xff09;、属性设置以及依赖…...

大寰AG-95夹爪通讯协议转换器配置指南:从Modbus-RTU到多协议兼容

1. 大寰AG-95夹爪通讯协议转换器入门指南 第一次接触大寰AG-95夹爪的通讯协议转换器时&#xff0c;我完全被各种专业术语搞晕了。后来在实际项目中反复调试才发现&#xff0c;这东西就像个"翻译官"&#xff0c;专门解决不同设备之间的"语言不通"问题。AG-9…...

编写程序实现智能户外帐篷湿检测,内部结露时,提示“通风除湿”。

智能户外帐篷湿度检测系统&#xff1a;从原理到实现一、实际应用场景描述在户外露营场景中&#xff0c;帐篷内部湿度受外界环境&#xff08;如雨天、清晨露水&#xff09;和人体活动&#xff08;呼吸、汗液蒸发&#xff09;影响显著。当帐篷内湿度超过70%时&#xff0c;空气中的…...

千帆竞发:126颗卫星升空背后的全球卫星互联网竞速

2026年4月7日21时32分&#xff0c;长征八号运载火箭在海南商业航天发射场拔地而起&#xff0c;以“一箭十八星”的方式将千帆星座第七批18颗组网卫星送入预定轨道。发射取得圆满成功。此次发射后&#xff0c;千帆星座在轨卫星总数达到126颗&#xff0c;标志着我国自主可控的低轨…...

开源工具探索——OpenDroneMap:从无人机影像到三维地理信息的自动化构建

1. 为什么你需要了解OpenDroneMap&#xff1f; 如果你手头有一台消费级无人机&#xff0c;或者正在从事地理信息相关工作&#xff0c;那么OpenDroneMap&#xff08;简称ODM&#xff09;绝对值得你花时间研究。这个开源工具能把杂乱无章的航拍照片&#xff0c;自动转换成专业级的…...

终极指南:5步掌握waifu2x-caffe图像超分辨率技术

终极指南&#xff1a;5步掌握waifu2x-caffe图像超分辨率技术 【免费下载链接】waifu2x-caffe waifu2xのCaffe版 项目地址: https://gitcode.com/gh_mirrors/wa/waifu2x-caffe waifu2x-caffe是一款基于深度学习的图像超分辨率工具&#xff0c;专门用于二次元插画和照片的…...