FPGA高端项目:FPGA帧差算法多目标图像识别+目标跟踪,提供11套工程源码和技术支持

目录

  • 1、前言
    • 免责声明
  • 2、相关方案推荐
    • FPGA帧差算法单个目标图像识别+目标跟踪
  • 3、详细设计方案
    • 设计原理框图
    • 运动目标检测原理
    • OV5640摄像头配置与采集
    • OV7725摄像头配置与采集
    • RGB视频流转AXI4-Stream
    • VDMA图像缓存
    • 多目标帧差算法图像识别+目标跟踪模块
    • 视频输出
    • Xilinx系列FPGA工程源码架构
    • Altera系列FPGA工程源码架构
  • 4、工程代码1详解-->OV5640输入HDMI输出,Xilinx--Artix7版本
  • 5、工程代码2详解-->OV5640输入HDMI输出,Xilinx--Kintex7版本
  • 6、工程代码3详解-->OV5640输入HDMI输出,Xilinx--Zynq7010版本
  • 7、工程代码4详解-->OV7725输入HDMI输出,Xilinx--Zynq7010版本
  • 8、工程代码5详解-->OV5640输入HDMI输出,Xilinx--Zynq7020版本
  • 9、工程代码6详解-->OV7725输入HDMI输出,Xilinx--Zynq7020版本
  • 10、工程代码7详解-->OV5640输入LCD输出,Xilinx--Zynq7020版本
  • 11、工程代码8详解-->OV7725输入LCD输出,Xilinx--Zynq7020版本
  • 12、工程代码9详解-->OV5640输入HDMI输出,Xilinx--Zynq7100版本
  • 13、工程代码10详解-->OV7725输入HDMI输出,Xilinx--Zynq7100版本
  • 14、工程代码11详解-->OV5640输入HDMI输出,Altera--Cyclone IV版本
  • 15、工程移植说明
    • vivado版本不一致处理
    • FPGA型号不一致处理
    • 其他注意事项
  • 16、上板调试验证并演示
    • 准备工作
    • OV5640输入版本工程演示
    • OV7725输入版本工程演示
    • LCD显示屏输出版本工程演示
  • 17、福利:工程源码获取

FPGA高端项目:FPGA帧差算法多目标图像识别+目标跟踪,提供11套工程源码和技术支持

1、前言

本设计使用Xilinx系列FPGA实现帧差算法的多目标运动物体图像识别+目标跟踪,可实时识别多个目标的运动物体,并将其在画面中框出来实时锁定,可模拟无人机空中侦查,发现目标并实时锁定跟踪,然后可操作发射导弹将其摧毁,也可在地面实时搜索空中目标,如搜索无人机,一单发现即锁定,然后可将其画面回传控制室,然后驱离或击落,也可作为公路车流、广场人流实时统计监控,甚至可以作为家里监控老鼠报警器,一单鼠洞有老鼠移动,则实时识别并报警。。。

本设计使用Xilinx系列FPGA实现实时识别跟踪多目标运动物体应用,输入源为各类Sensor,可以是廉价的ov5640、ov7725等,也可以是HDMI接口的Sensor(可以用笔记本电脑作为输入模拟),FPGA通过i2纯、总线配置Sensor,然后采集Sensor视频数据,然后调用Xilinx官方的Video In To AXI4-Stream IP核将RGB视频转换为AXI4-Stream视频流;然后调用Xilinx官方的AXI4-Stream Broadcaster将AXI4-Stream视频流复制为2份,其中一份先经过Xilinx官方的VDMA缓存后读出,作为帧差算法的第一帧来源,另外一份和VDMA缓存后读出的AXI4-Stream视频流一起被送入帧差多目标识别跟踪算法模块,该模块是一个集成设计模块,包含了RGB转灰度、帧差提取、图像腐蚀、图像膨胀、多目标识别标记等模块,最后输出用红框标记的运动目标图像;然后调用Xilinx官方的Video Timing Controller和AXI4-Stream To Video Out IP核将AXI4-Stream视频流转换为RGB视频流;然后调用自研的RGB转HDMI模块将视频输出显示器显示即可;

提供vivado2019.1和Quartus 18.1版本的工程源码共计11套,详情见下表:
在这里插入图片描述
这里说明一下提供的11套工程源码的作用和价值,如下:

工程源码1
使用开发板的FPGA型号为Xilinx–Artix7–100T;输入源为ov5640摄像头,输入分辨率为1280x720@30Hz;经过帧差多目标运动物体识别跟踪算法后,以HDMI接口输出,输出分辨率为1280x720@60Hz;HDMI编码方式为纯verilog代码方案;适用于Xilinx–Artix7系列FPGA开发板使用;

工程源码2
使用开发板的FPGA型号为Xilinx–Kintex7–325T;输入源为ov5640摄像头,输入分辨率为1280x720@30Hz;经过帧差多目标运动物体识别跟踪算法后,以HDMI接口输出,输出分辨率为1280x720@60Hz;HDMI编码方式为纯verilog代码方案;适用于Xilinx–Kintex7系列FPGA开发板使用;

工程源码3
使用开发板的FPGA型号为Xilinx–Zynq7010;输入源为ov5640摄像头,输入分辨率为1280x720@30Hz;经过帧差多目标运动物体识别跟踪算法后,以HDMI接口输出,输出分辨率为1280x720@60Hz;HDMI编码方式为纯verilog代码方案;适用于Xilinx–Zynq7000系列FPGA开发板使用;

工程源码4
使用开发板的FPGA型号为Xilinx–Zynq7010;输入源为ov7725摄像头,输入分辨率为640x480@60Hz;经过帧差多目标运动物体识别跟踪算法后,以HDMI接口输出,输出分辨率为640x480@60Hz;HDMI编码方式为纯verilog代码方案;适用于Xilinx–Zynq7000系列FPGA开发板使用;

工程源码5
使用开发板的FPGA型号为Xilinx–Zynq7020;输入源为ov5640摄像头,输入分辨率为1280x720@30Hz;经过帧差多目标运动物体识别跟踪算法后,以HDMI接口输出,输出分辨率为1280x720@60Hz;HDMI编码方式为纯verilog代码方案;适用于Xilinx–Zynq7000系列FPGA开发板使用;

工程源码6
使用开发板的FPGA型号为Xilinx–Zynq7020;输入源为ov7725摄像头,输入分辨率为640x480@60Hz;经过帧差多目标运动物体识别跟踪算法后,以HDMI接口输出,输出分辨率为640x480@60Hz;HDMI编码方式为纯verilog代码方案;适用于Xilinx–Zynq7000系列FPGA开发板使用;

工程源码7
使用开发板的FPGA型号为Xilinx–Zynq7020;输入源为ov5640摄像头,输入分辨率为800x480@30Hz;经过帧差多目标运动物体识别跟踪算法后,以4.3寸屏LCD接口输出,输出分辨率为800x480@60Hz;LCD编码方式为纯verilog代码方案;适用于Xilinx–Zynq7000系列FPGA开发板使用;

工程源码8
使用开发板的FPGA型号为Xilinx–Zynq7020;输入源为ov7725摄像头,输入分辨率为640x480@60Hz;经过帧差多目标运动物体识别跟踪算法后,以4.3寸屏LCD接口输出,输出分辨率为800x480@60Hz;LCD编码方式为纯verilog代码方案;适用于Xilinx–Zynq7000系列FPGA开发板使用;

工程源码9
使用开发板的FPGA型号为Xilinx–Zynq7100;输入源为ov5640摄像头,输入分辨率为1280x720@30Hz;经过帧差多目标运动物体识别跟踪算法后,以HDMI接口输出,输出分辨率为1280x720@60Hz;HDMI编码方式为纯verilog代码方案;适用于Xilinx–Zynq7000系列FPGA开发板使用;

工程源码10
使用开发板的FPGA型号为Xilinx–Zynq7100;输入源为ov7725摄像头,输入分辨率为640x480@60Hz;经过帧差多目标运动物体识别跟踪算法后,以HDMI接口输出,输出分辨率为640x480@60Hz;HDMI编码方式为纯verilog代码方案;适用于Xilinx–Zynq7000系列FPGA开发板使用;

工程源码11
使用开发板的FPGA型号为Altera–Cyclone IV–EP4CE10F17C8;输入源为ov5640摄像头,输入分辨率为640x480@60Hz;经过帧差多目标运动物体识别跟踪算法后,以HDMI接口输出,输出分辨率为640x480@60Hz;HDMI编码方式为纯verilog代码方案;适用于Altera–Cyclone系列FPGA开发板使用;

本文详细描述了Xilinx系列FPGA帧差算法实现多目标图像识别+目标跟踪,工程代码编译通过后上板调试验证,可直接项目移植,适用于在校学生做毕业设计、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字成像和图像传输领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

免责声明

本工程及其源码即有自己写的一部分,也有网络公开渠道获取的一部分(包括CSDN、Xilinx官网、Altera官网等等),若大佬们觉得有所冒犯,请私信批评教育;基于此,本工程及其源码仅限于读者或粉丝个人学习和研究,禁止用于商业用途,若由于读者或粉丝自身原因用于商业用途所导致的法律问题,与本博客及博主无关,请谨慎使用。。。

2、相关方案推荐

FPGA帧差算法单个目标图像识别+目标跟踪

本设计是Xilinx系列FPGA帧差算法实现多目标图像识别+目标跟踪,适用于跟踪多个运动目标,也有适用于只跟踪单个目标的方案,即FPGA帧差算法单个目标图像识别+目标跟踪方案,该方案我之前专门推出过博客介绍,感兴趣的可以去看看,博客地址如下:
点击直接前往

3、详细设计方案

设计原理框图

工程源码设计原理框图如下:
在这里插入图片描述

运动目标检测原理

运动目标检测原理:先将RGB图像转为灰度图只取亮度分量y,如果一个物体是运动的,那么前后两张或几张灰度图的同一位置的像素值应该是变化的,试想,如果是静止物体,比如一幅画,那么任意时刻,同一位置像素点的值不变才对,如果运动了,像素点的值自然也就改变了,很好理解,这个叫做帧差算法,这里的像素点差值有个范围,叫做阈值,cdn上有大佬说70~100是理想值。

OV5640摄像头配置与采集

视频输入源由多种方案可供选择,比如廉价的OV5640、OV7725摄像头等;工程源码1、2、3、5、7、9、11使用OV5640摄像头,ov5640需要i2c配置才能使用,需要i2c配置分辨率,然后将DVP接口的两个时钟一个像素的GRB565视频数据采集为一个时钟一个像素的RGB565或者RGB888视频数据;以工程7为例,ov5640i2c配置及采集代码如下,其他工程与之类似:
在这里插入图片描述
注意!!4.3寸LCD屏输出的工程源码,OV5640摄像头配置由SDK软件代码完成,与上述的有FPGA纯verilog配置方式不一样;

OV7725摄像头配置与采集

视频输入源由多种方案可供选择,比如廉价的OV5640、OV7725摄像头等;工程源码4、6、8、10使用OV7725摄像头,OV7725需要i2c配置才能使用,需要i2c配置分辨率,然后将DVP接口的两个时钟一个像素的GRB565视频数据采集为一个时钟一个像素的RGB565或者RGB888视频数据;以工程8为例,OV7725配置及采集代码如下,其他工程与之类似:
在这里插入图片描述
注意!!4.3寸LCD屏输出的工程源码,OV7725摄像头配置由SDK软件代码完成,与上述的有FPGA纯verilog配置方式不一样;

RGB视频流转AXI4-Stream

采集到的摄像头视频是RGB888视频流,调用Xilinx官方的Video In To AXI4-Stream IP核将RGB视频转换为AXI4-Stream视频流;后调用Xilinx官方的AXI4-Stream Broadcaster将AXI4-Stream视频流复制为2份,其中一份先经过Xilinx官方的VDMA缓存后读出,作为帧差算法的第一帧来源,另外一份和VDMA缓存后读出的AXI4-Stream视频流一起被送入帧差多目标识别跟踪算法模块;这里要将RGB888视频流转AXI4-Stream是因为需要用到Xilinx官方的VDMA图像缓存方案,VDMA的用户接口必须是AXI4-Stream;调用Video In To AXI4-Stream与AXI4-Stream Broadcaster如下:
在这里插入图片描述

VDMA图像缓存

这里需要调用两路VDMA,一路用于缓存第一帧视频,作为帧差算法的第一帧来源,经过帧差算法后再调用第二路VDMA,用于缓存后输出图像,架构如下:
在这里插入图片描述

多目标帧差算法图像识别+目标跟踪模块

该模块具体性能表现如下:
1:支持多个运动目标识别跟踪,最多支持16个目标;
2:代码精简,集成度高;
3:时序收敛,稳定性强;
4:参数化配置,可在parameter参数中配置图像分辨率;
5:用户接口为AXI4-Stream,方便与Xilinx系列FPGA对接;
6:资源占用很小,如下:
在这里插入图片描述
该模块是整个工程的核心,是一个集成设计模块,包含了RGB转灰度、帧差提取、图像腐蚀、图像膨胀、多目标识别标记等模块,最后输出用红框标记的运动目标图像;模块代码架构如下:
在这里插入图片描述
该模块有两个用户接口用户控制,如下:

 	input  [ 7:0] 		Diff_Threshold  ,	//帧差阈值,默认75 
	output [ 3:0]       target_num_out  ,   //最终目标数目

其中:
Diff_Threshold为帧差阈值,默认75 ,工程里通过一个VIO进行动态配置,正常情况下不需要配置;
target_num_out 为最终识别到的目标个数,输出给用户查看,工程里通过一个AXI GPIO对该接口进行采集,并在SDK代码里通过串口打印输出该数值给用户查看,也就是说,串口会实时打印识别到的运动目标个数,在SDK软件代码的while()死循环中,设置的是300ms打印一次;

视频输出

采用Xilinx官方经典的Video Timing Controller+AXI4-Stream To Video Out方案,其中Video Timing Controller IP核为输出系统提供标准的VGA时序,AXI4-Stream To Video Out IP核将AXI4-Stream视频流转换为RGB视频流;最终的输出接口采用了HDMI或者LCD方案,用户根据自己的硬件情况选择哪一种;HDMI输出采用纯verilog编码实现的RGB转HDMI模块,代码架构如下,LCD方案与之类似:
在这里插入图片描述
工程中将Video Timing Controller、AXI4-Stream To Video Out、HDMI输出集成到了一起做了模块封装,如下,LCD输出方案则没有封装:
在这里插入图片描述
注意!!
由于LCD显示方案为了适应不同分辨率的LCD显示屏,Video Timing Controller采用了动态配置方案,通过SDK软件代码根据识别到的LCD分辨率做动态调整,该方案通过AXI4_Lite接口动态配置MMCM源语的寄存器,与DRP接口配置效果一样;该方案有漂亮国某知名高校研发推广,被国内各大友商采用。。。

Xilinx系列FPGA工程源码架构

Xilinx系列FPGA工程源码架构由两部分组成,一是Block Design搭建的PL端FPGA逻辑设计,二是由SDK搭建的PS端软件设计;PL端FPGA逻辑设计主要负责视频采集、算法、视频输出等部分工作;PS端软件设计主要负责各种IP初始化、配置等部分工作;

以工程7为例,Block Design设计如下,其他工程与之类似:
在这里插入图片描述
综合后的RTL代码架构如下:
在这里插入图片描述
以工程7为例,SDK软件设计如下,其他工程与之类似:
在这里插入图片描述

Altera系列FPGA工程源码架构

Altera系列FPGA工程源码架构如下:
在这里插入图片描述

4、工程代码1详解–>OV5640输入HDMI输出,Xilinx–Artix7版本

开发板FPGA型号:Xilinx–Artix7–xc7a100tfgg484-2;
开发环境:Vivado2019.1;
输入:OV5640摄像头,分辨率1280x720@30Hz;
输出:HDMI,纯verilog编码,分辨率1280x720@60Hz;
图像处理:帧差算法多目标图像识别+目标跟踪;
工程作用:掌握FPGA帧差算法多目标图像识别+目标跟踪的设计方法;
工程Block Design和工程代码架构请参考第3章节《Xilinx系列FPGA工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

5、工程代码2详解–>OV5640输入HDMI输出,Xilinx–Kintex7版本

开发板FPGA型号:Xilinx–Kintex7–xc7k325tffg676-2;
开发环境:Vivado2019.1;
输入:OV5640摄像头,分辨率1280x720@30Hz;
输出:HDMI,纯verilog编码,分辨率1280x720@60Hz;
图像处理:帧差算法多目标图像识别+目标跟踪;
工程作用:掌握FPGA帧差算法多目标图像识别+目标跟踪的设计方法;
工程Block Design和工程代码架构请参考第3章节《Xilinx系列FPGA工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

6、工程代码3详解–>OV5640输入HDMI输出,Xilinx–Zynq7010版本

开发板FPGA型号:Xilinx–Zynq7010–xc7z010clg400-2;
开发环境:Vivado2019.1;
输入:OV5640摄像头,分辨率1280x720@30Hz;
输出:HDMI,纯verilog编码,分辨率1280x720@60Hz;
图像处理:帧差算法多目标图像识别+目标跟踪;
工程作用:掌握FPGA帧差算法多目标图像识别+目标跟踪的设计方法;
工程Block Design和工程代码架构请参考第3章节《Xilinx系列FPGA工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

7、工程代码4详解–>OV7725输入HDMI输出,Xilinx–Zynq7010版本

开发板FPGA型号:Xilinx–Zynq7010–xc7z010clg400-2;
开发环境:Vivado2019.1;
输入:OV7725摄像头,分辨率640x480@60Hz;
输出:HDMI,纯verilog编码,分辨率640x480@60Hz;
图像处理:帧差算法多目标图像识别+目标跟踪;
工程作用:掌握FPGA帧差算法多目标图像识别+目标跟踪的设计方法;
工程Block Design和工程代码架构请参考第3章节《Xilinx系列FPGA工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

8、工程代码5详解–>OV5640输入HDMI输出,Xilinx–Zynq7020版本

开发板FPGA型号:Xilinx–Zynq7010–xc7z020clg400-2;
开发环境:Vivado2019.1;
输入:OV5640摄像头,分辨率1280x720@30Hz;
输出:HDMI,纯verilog编码,分辨率1280x720@60Hz;
图像处理:帧差算法多目标图像识别+目标跟踪;
工程作用:掌握FPGA帧差算法多目标图像识别+目标跟踪的设计方法;
工程Block Design和工程代码架构请参考第3章节《Xilinx系列FPGA工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

9、工程代码6详解–>OV7725输入HDMI输出,Xilinx–Zynq7020版本

开发板FPGA型号:Xilinx–Zynq7010–xc7z020clg400-2;
开发环境:Vivado2019.1;
输入:OV7725摄像头,分辨率640x480@60Hz;
输出:HDMI,纯verilog编码,分辨率640x480@60Hz;
图像处理:帧差算法多目标图像识别+目标跟踪;
工程作用:掌握FPGA帧差算法多目标图像识别+目标跟踪的设计方法;
工程Block Design和工程代码架构请参考第3章节《Xilinx系列FPGA工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

10、工程代码7详解–>OV5640输入LCD输出,Xilinx–Zynq7020版本

开发板FPGA型号:Xilinx–Zynq7010–xc7z020clg400-2;
开发环境:Vivado2019.1;
输入:OV5640摄像头,分辨率800x480@30Hz;
输出:4.3寸LCD屏,纯verilog编码,分辨率800x480@60Hz;
图像处理:帧差算法多目标图像识别+目标跟踪;
工程作用:掌握FPGA帧差算法多目标图像识别+目标跟踪的设计方法;
工程Block Design和工程代码架构请参考第3章节《Xilinx系列FPGA工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

11、工程代码8详解–>OV7725输入LCD输出,Xilinx–Zynq7020版本

开发板FPGA型号:Xilinx–Zynq7010–xc7z020clg400-2;
开发环境:Vivado2019.1;
输入:OV7725摄像头,分辨率640x480@60Hz;
输出:4.3寸LCD屏,纯verilog编码,分辨率800x480@60Hz;
图像处理:帧差算法多目标图像识别+目标跟踪;
工程作用:掌握FPGA帧差算法多目标图像识别+目标跟踪的设计方法;
工程Block Design和工程代码架构请参考第3章节《Xilinx系列FPGA工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

12、工程代码9详解–>OV5640输入HDMI输出,Xilinx–Zynq7100版本

开发板FPGA型号:Xilinx–Zynq7100–xc7z100ffg900-2;
开发环境:Vivado2019.1;
输入:OV5640摄像头,分辨率1280x720@30Hz;
输出:HDMI,纯verilog编码,分辨率1280x720@60Hz;
图像处理:帧差算法多目标图像识别+目标跟踪;
工程作用:掌握FPGA帧差算法多目标图像识别+目标跟踪的设计方法;
工程Block Design和工程代码架构请参考第3章节《Xilinx系列FPGA工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

13、工程代码10详解–>OV7725输入HDMI输出,Xilinx–Zynq7100版本

开发板FPGA型号:Xilinx–Zynq7100–xc7z100ffg900-2;
开发环境:Vivado2019.1;
输入:OV7725摄像头,分辨率640x480@60Hz;
输出:HDMI,纯verilog编码,分辨率640x480@60Hz;
图像处理:帧差算法多目标图像识别+目标跟踪;
工程作用:掌握FPGA帧差算法多目标图像识别+目标跟踪的设计方法;
工程Block Design和工程代码架构请参考第3章节《Xilinx系列FPGA工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

14、工程代码11详解–>OV5640输入HDMI输出,Altera–Cyclone IV版本

开发板FPGA型号:Altera–Cyclone IV–EP4CE10F17C8;
开发环境:Quartus (Quartus Prime 18.1) ;
输入:OV5640摄像头,分辨率640x480@60Hz;
输出:HDMI,纯verilog编码,分辨率640x480@60Hz;
图像处理:帧差算法多目标图像识别+目标跟踪;
工程作用:掌握FPGA帧差算法多目标图像识别+目标跟踪的设计方法;
工程Block Design和工程代码架构请参考第3章节《Altera系列FPGA工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

15、工程移植说明

vivado版本不一致处理

1:如果你的vivado版本与本工程vivado版本一致,则直接打开工程;
2:如果你的vivado版本低于本工程vivado版本,则需要打开工程后,点击文件–>另存为;但此方法并不保险,最保险的方法是将你的vivado版本升级到本工程vivado的版本或者更高版本;
在这里插入图片描述
3:如果你的vivado版本高于本工程vivado版本,解决如下:
在这里插入图片描述
打开工程后会发现IP都被锁住了,如下:
在这里插入图片描述
此时需要升级IP,操作如下:
在这里插入图片描述
在这里插入图片描述

FPGA型号不一致处理

如果你的FPGA型号与我的不一致,则需要更改FPGA型号,操作如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更改FPGA型号后还需要升级IP,升级IP的方法前面已经讲述了;

其他注意事项

1:由于每个板子的DDR不一定完全一样,所以MIG IP需要根据你自己的原理图进行配置,甚至可以直接删掉我这里原工程的MIG并重新添加IP,重新配置;
2:根据你自己的原理图修改引脚约束,在xdc文件中修改即可;
3:纯FPGA移植到Zynq需要在工程中添加zynq软核;

16、上板调试验证并演示

准备工作

需要如下器材设备:
1、FPGA开发板;
2、OV5640或OV7725摄像头;
2、HDMI连接线和显示器;

OV5640输入版本工程演示

工程1、2、3、5、7、9、11使用OV5640输入,帧差算法多目标图像识别+目标跟踪输出效果如下:

OV5640输入FPGA帧差算法多目标图像识别+目标跟踪

OV7725输入版本工程演示

工程4、6、8、10使用OV5640输入,帧差算法多目标图像识别+目标跟踪输出效果如下:

OV7725输入FPGA帧差算法多目标图像识别+目标跟踪

LCD显示屏输出版本工程演示

工程7、8使用LCD显示屏输出效果如下:

FPGA帧差算法多目标图像识别+目标跟踪LCD输出

17、福利:工程源码获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
在这里插入图片描述
此外,有很多朋友给本博主提了很多意见和建议,希望能丰富服务内容和选项,因为不同朋友的需求不一样,所以本博主还提供以下服务:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/581638.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32之HAL开发——ADC入门介绍

ADC简介 模数转换,即Analog-to-Digital Converter,常称ADC,是指将连续变量的模拟信号转换为离散的数字信号的器件,比如将模温度感器产生的电信号转为控制芯片能处理的数字信号0101,这样ADC就建立了模拟世界的传感器和…

机器学习每周挑战——百思买数据

最近由于比赛,断更了好久,从五一开始不会再断更了。这个每周挑战我分析的较为简单,有兴趣的可以将数据集下载下来试着分析一下,又不会的我们可以讨论一下。 这是数据集: import pandas as pd import numpy as np impo…

leetcode_38.外观数列

38. 外观数列 题目描述:给定一个正整数 n ,输出外观数列的第 n 项。 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。 你可以将其视作是由递归公式定义的数字字符串序列: countAndSay(1…

bugku-ok

打开文件发现有很多ok的字符 转在线地址解码

基于3D机器视觉的注塑缺陷检测解决方案

注塑检测是对注塑生产过程中的产品缺陷进行识别和检测的过程。这些缺陷可能包括色差、料流痕、黑点(包括杂质)等,它们可能是由多种因素引起,如原料未搅拌均匀、烘料时间过长、工业温度局部偏高、模具等问题造成的。不仅影响产品的…

Stable Diffusion教程:文生图

最近几天AI绘画没有什么大动作,正好有时间总结下Stable Diffusion的一些基础知识,今天就给大家再唠叨一下文生图这个功能,会详细说明其中的各个参数。 文生图是Stable Diffusion的核心功能,它的核心能力就是根据提示词生成相应的…

【喜报】科大睿智为武汉博睿英特科技高质量通过CMMI3级评估咨询工作

武汉博睿英特科技有限公司是信息通信技术产品、建筑智慧工程服务提供商。其拥有专注于航空、政府、教育、金融等多行业领域的资深团队,及时掌握最新信息通信应用技术,深刻理解行业业务流程,擅于整合市场优质资源,积极保持与高校产…

redis ZRANGE 使用最详细文档

环境: redis_version:7.2.2 本文参考 redis 官方文档1 语法 ZRANGE key start stop [BYSCORE | BYLEX] [REV] [LIMIT offset count] [WITHSCORES]参数含义key是有序集合的键名start stop在不同语境下,可用值不一样BYSCORE | BYLEX按照分数查询 | 相…

【汇编】#6 80x86指令系统其二(串处理与控制转移与子函数)

文章目录 一、串处理指令1. 与 REP 协作的 MOVS / STOS / LODS的指令1.1 重复前缀指令REP1.2 字符串传送指令(Move String Instruction)1.2 存串指令(Store String Instruction)1.3 取字符串指令(Load String Instruct…

[华为OD]给定一个 N*M 矩阵,请先找出 M 个该矩阵中每列元素的最大值 100

题目: 给定一个 N*M 矩阵,请先找出 M 个该矩阵中每列元素的最大值,然后输出这 M 个值中的 最小值 补充说明: N 和 M 的取值范围均为:[0, 100] 示例 1 输入: [[1,2],[3,4]] 输出: 3 说…

【UE5】数字人基础

这里主要记录一下自己在实现数字人得过程中涉及导XSens惯性动捕,视频动捕,LiveLinkFace表捕,GRoom物理头发等。 一、导入骨骼网格体 骨骼网格体即模型要在模型雕刻阶段就要雕刻好表捕所需的表情体(blendshape),后面表捕的效果直…

机器学习:基于Sklearn框架,使用逻辑回归对由心脏病引发的死亡进行预测分析

前言 系列专栏:机器学习:高级应用与实践【项目实战100】【2024】✨︎ 在本专栏中不仅包含一些适合初学者的最新机器学习项目,每个项目都处理一组不同的问题,包括监督和无监督学习、分类、回归和聚类,而且涉及创建深度学…

数据分析-----方法论

什么是数据分析方法 数据分析方法:将零散的想法和经验整理成有条理的、系统的思路,从而快速地解决问题。 案例: 用户活跃度下降 想法: APP出现问题?去年也下降了吗?是所有的人群都在下降吗&#xff1f…

vscode中新建vue项目

vscode中新建vue项目 进入项目文件夹,打开终端 输入命令vue create 项目名 如vue create test 选择y 选择vue3 进入项目,运行vue项目 输入命令cd test和npm run serve

Spark RDD

Spark RDD操作 Spark执行流程 在上一讲中,我们知道了什么是Spark,什么是RDD、Spark的核心构成组件,以及Spark案例程序。在这一讲中,我们将继续需要Spark作业的执行过程,以及编程模型RDD的各种花式操作,首…

蓝桥杯ctf2024 部分wp

数据分析 1. packet 密码破解 1. cc 逆向分析 1. 欢乐时光 XXTEA #include<stdio.h> #include<stdint.h> #define DELTA 0x9e3779b9 #define MX (((z>>5^y<<2)(y>>3^z<<4))^((sum^y)(key[(p&3)^e]^z))) void btea(unsigned int* v…

【Python 对接QQ的接口】简单用接口查询【等级/昵称/头像/Q龄/当天在线时长/下一个等级升级需多少天】

文章日期&#xff1a;2024.04.28 使用工具&#xff1a;Python 类型&#xff1a;QQ接口 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 AES解密处理&#xff08;直接解密即可&#xff09;&#xff08;crypto-js.js 标准算法&#xff09;&…

纯血鸿蒙APP实战开发——监听HiLog日志实现测试用例验证

介绍 日常中在进行测试用例验证时&#xff0c;会出现部分场景无法通过判断UI的变化来确认用例是否正常运行&#xff0c;我们可以通过监听日志的方式来巧妙的实现这种场景。本示例通过监听hilog日志的回调&#xff0c;判断指定日志是否打印&#xff0c;来确定测试用例的执行结果…

Linux 第十三章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

IDEA主题美化【保姆级】

前言 一款好的 IDEA 主题虽然不能提高我们的开发效率&#xff0c;但一个舒适简单的主题可以使开发人员更舒适的开发&#xff0c;时常换一换主题可以带来不一样的体验&#xff0c;程序员的快乐就这么简单。话不多说&#xff0c;先上我自己认为好看的主题设置。 最终效果图: 原…