基于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核的配置界面,以供大家参考。
- 第一页默认。
- 第三页默认。
- 第四页选DDR3。
- 第八页默认。
- 第九页:Fixed Pin Out.
- 第十页:选择“Read XDC/UDF”,然后选取工程文件夹中的“ddr3_xdc.ucf”,再点击“Validate”即可。
- 第十一页及之后就按照默认选项“同意”即可。
- DDR3模块-wr_fifo配置:与rd_fifo一样,只不过名称不一样。
3. 小小的编程感想
- 摄像头的信号。开发新的模块时,注意场同步信号vsync是低电平有效,而行同步信号href和行有效信号clken都是高电平有效。并且clken和href左对齐,且clken每两个时钟周期才有效一次(这是因为摄像头一次只能传输8bit数据,但是一个像素的数据为RGB565共16bit)。
- 卡了很久的bug:上电后画面总是停留在第一帧,然后就不动了。原来是没有给模块输入正常的时钟信号…
- 奇怪的硬件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中配置如下内容:…...
Linux基本指令实现4及热键指令详解
目录 Linux热键补充: 1.bc指令: Tab键的智能补充: ctrlc键: uname指令: lscpu指令: lsmem指令: df -h指令: 关机指令: 扩展指令: Linux热键补充&#…...
系统调用与API
系统调用介绍 什么是系统调用 为了让应用程序有能力访问系统资源,也为了让程序借助操作系统做一些由操作系统支持的行为,每个操作系统都会提供一套接口,以供应用程序使用。系统调用涵盖的功能很广,有程序运行所必需的支持…...
OpenPCDet系列 | 5.4.1 DenseHead中的AnchorGenerator锚框生成模块
文章目录 AnchorGenerator模块AnchorGenerator.generate_anchors函数 AnchorGenerator模块 首先,根据点云场景将其划分为一个个grid,这个grid size是可以通过配置文件设定的点云场景方位和voxel大小计算出来的。 POINT_CLOUD_RANGE: [0, -39.68, -3, 6…...
【开发者指南】如何在MyEclipse中使用HTML或JSP设计器?(上)
MyEclipse v2022.1.0正式版下载 一、HTML & JSP 可视化设计器 本文简要介绍了 MyEclipse HTML 和 JSP Web 设计器的概念、功能和基本操作过程。这两个设计器具有相似的功能和相同的操作模型,但本文为专门针对其类型的内容。本文档中的示例是使用 MyEclipse HT…...
Node开发Web后台服务
简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。 能方便地搭建响应速度快、易于扩展的网络应用&#…...
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,是一种内存映射文件的技术。mmap可以将一个文件或者其它对象映射到进…...
深入了解云计算:发展历程、服务与部署模型、未来趋势与挑战
开篇博主 bluetata 的观点:PaaS 服务必将是未来10年云计算权重最高的趋势(05/02/2023 15:32) 文章目录 一、前言二、认识了解云计算2.1 什么是云计算2.1.1 维基百科上的云计算定义2.1.2 NIST 标准云计算定义2.1.3 如果被面试如何解释云计算 2…...
使用乐鑫 Web IDE 助力物联网开发
乐鑫 Web IDE 是基于 Eclipse Theia 的框架,支持 ESP-IDF VS Code 插件同时具备多项辅助工具。您可以观看我们在 Espressif DevCon22 上的演示视频,了解它的实际应用。 【乐鑫开发者大会-21】搭载 ESP-IDF Visual Studio Code 插件的乐鑫 …...
Maven(5)---Maven的部署和发布
Maven的部署和发布 在前面的博客中,我们已经学习了Maven的基础知识、依赖管理、插件和生命周期,以及多模块项目管理。本篇博客将介绍Maven的部署和发布功能。 什么是部署和发布 在软件开发过程中,部署和发布是非常重要的环节。部署是指将软…...
内网渗透之权限维持-黄金白银票据隐藏账户远控-RustDeskGotoHTTP
0x01权限维持-隐藏用户 CreateHiddenAccount工具 CreateHiddenAccount -u test -p Psswrd用户管理能查看到,命令查看看不到,单机版无法删除(不在任何组),域环境(在administrator组中)可以删除 0x02权限维持-黄金白银票据 ⻩⾦票据⽣成攻…...
动态规划——带权活动选择
带权活动选择Time Limit: 3000 MSMemory Limit: 1000 KB Description 给定n个活动,活动ai表示为一个三元组(si,fi,vi),其中si表示活动开始时间,fi表示活动的结束时间,vi表示活动的权重, si<fi。带权活动选择问题是选择一些活…...
软考A计划-真题-分类精讲汇总-第十八章(面向对象程序设计)
点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…...
【C++ 入坑指南】(09)数组
文章目录 简介一维数组1. 定义2. 特点3. 用途4. 示例 二维数组1. 定义2. 用途3. 示例 简介 C 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。 一维数组 1. 定义…...
Vue.js
文章目录 Vue(前端框架)data基本语法v-bind(属性)v-if(条件)v-formethods事件v-model表单绑定todolist(添加删除展示内容,含上下移动)es6语法生命周期函数axios发送ajax请…...
博士毕业答辩流程 注意事项
前言:2023年5月17日14:00-17:00,与实验室其他同学一起旁听了本实验室的博士论文答辩。接下来,我对博士毕业答辩的大致流程进行简要介绍,并对个环节的注意事项进行总结归纳,供毕业生参考。 目录 1. 准备阶段2. 汇报期间…...
ApiPost实战指南:从接口创建到团队协作的全流程解析
1. 从零开始创建你的第一个接口 刚接触ApiPost时,我最先被它的简洁界面吸引。作为一款国产的API开发工具,它完美解决了我们团队在接口调试和文档管理上的痛点。下面我就用最直白的方式,带你走完创建接口的全流程。 打开ApiPost后,…...
:RAG 入门-向量嵌入与检索召
这,是一个采用C精灵库编写的程序,它画了一幅漂亮的图形: 复制代码 #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:从工具级到框架级的演化 AI Skills(AI 技能) 的概念最早在 Claude Code 等前沿 Agent 实践中被强化。最初,Skills 被视为“工具级”的增强,如简单的文件读写或终端操作,方便用户快速…...
logging-flume高可用性设计:故障恢复与负载均衡最佳实践
logging-flume高可用性设计:故障恢复与负载均衡最佳实践 【免费下载链接】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# 开发模式,即所谓的“工程导向型”开发,要求开发者创建一个复杂的项目结构,包括项目文件(.csproj)、解决方案文件(.sln)、属性设置以及依赖…...
大寰AG-95夹爪通讯协议转换器配置指南:从Modbus-RTU到多协议兼容
1. 大寰AG-95夹爪通讯协议转换器入门指南 第一次接触大寰AG-95夹爪的通讯协议转换器时,我完全被各种专业术语搞晕了。后来在实际项目中反复调试才发现,这东西就像个"翻译官",专门解决不同设备之间的"语言不通"问题。AG-9…...
编写程序实现智能户外帐篷湿检测,内部结露时,提示“通风除湿”。
智能户外帐篷湿度检测系统:从原理到实现一、实际应用场景描述在户外露营场景中,帐篷内部湿度受外界环境(如雨天、清晨露水)和人体活动(呼吸、汗液蒸发)影响显著。当帐篷内湿度超过70%时,空气中的…...
千帆竞发:126颗卫星升空背后的全球卫星互联网竞速
2026年4月7日21时32分,长征八号运载火箭在海南商业航天发射场拔地而起,以“一箭十八星”的方式将千帆星座第七批18颗组网卫星送入预定轨道。发射取得圆满成功。此次发射后,千帆星座在轨卫星总数达到126颗,标志着我国自主可控的低轨…...
开源工具探索——OpenDroneMap:从无人机影像到三维地理信息的自动化构建
1. 为什么你需要了解OpenDroneMap? 如果你手头有一台消费级无人机,或者正在从事地理信息相关工作,那么OpenDroneMap(简称ODM)绝对值得你花时间研究。这个开源工具能把杂乱无章的航拍照片,自动转换成专业级的…...
终极指南:5步掌握waifu2x-caffe图像超分辨率技术
终极指南:5步掌握waifu2x-caffe图像超分辨率技术 【免费下载链接】waifu2x-caffe waifu2xのCaffe版 项目地址: https://gitcode.com/gh_mirrors/wa/waifu2x-caffe waifu2x-caffe是一款基于深度学习的图像超分辨率工具,专门用于二次元插画和照片的…...
