当前位置: 首页 > 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. 汇报期间…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、&#x1f44b;&#x1f3fb;前言 二、&#x1f608;sinx波动的基本原理 三、&#x1f608;波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、&#x1f30a;波动优化…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

C++:多态机制详解

目录 一. 多态的概念 1.静态多态&#xff08;编译时多态&#xff09; 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1&#xff09;.协变 2&#xff09;.析构函数的重写 5.override 和 final关键字 1&#…...