基于FPGA的模板匹配红外目标跟踪算法设计

为什么要写这篇文章

我写这篇文章的原因是一天在B站看到了一个大神发的视频是关于跟踪一个无人机的,看到作者跟网友的回复说是用的图像匹配算法,我就在网上搜索相关资料,最终找到一篇文献。文献中对该算法的评价很高,满足制导系统的实时性要求,用FPGA实现该算法具有运算速度快,可靠性高,功耗低等优势。

鉴于文献对FPGA 实现该算法的评价这么高,作为一名FPGA工程师肯定要把它搞出来。我花费了一些时间学习相关资料,把原理搞清楚后,开始设计逻辑框架和相关代码。

FPGA实现图像算法的难点

虽说所有的编程语言在计算机中最终的表现形式都是0和1,但是要在FPGA上实现还是有些难度。

在FPGA上实现图像算法主要考虑以下几点:

第一点:图像的实时性问题

用matlab软件做图像算法的方式就是对一张静态图像进行研究,FPGA是要对视频流数据进行实时处理。

第二点:FPGA资源利用问题

FPGA内部的资源是有限的,尤其是BLOCK_RAM资源可怜的很,所以在设计程序时要充分利用好BLOCK_RAM,可以的话最好是反复使用,就像SpaceX公司研发的重复使用火箭猎鹰号一样。

第三点:对算法原理的实现步骤不能完全照搬使用

算法的灵魂,我们要完全一致,但是对于算法的实现方式上要根据FPGA的特点进行一定的转化,不能完全照搬。

以上三点是我自己对FPGA实现图像算法的理解,希望对大家有帮助,下面开始学习这个模板匹配算法。

模板匹配跟踪算法理解

文献中对该算法的描述:模板匹配相关跟踪算法是近距成像末制导常用的算法,通过选定搜索区与模板,搜索区中模板平移相似度匹配的方法得出跟踪点所在的位置。

大白话理解就是:首选在一幅图像中划出一片区域叫做搜索区,然后拿着目标的照片在搜索区里面逐一排查,直到找到最像照片目标的数据,找到后把这个区域标定出来就OK。

FPGA系统框架设计

整个系统我主要分为以上几个部分:

alg_control模块:该模块负责这个整个系统的调度和管理,相当于司令部指挥其他模块工作;

64*64搜索区模块:根据alg_control下发的坐标信息快速划出搜索区范围;

20*20模板存储模块:实现目标数据的存储功能;

Matrix_alg模块:实现该算法的匹配运算功能。

在实现该算法时,要注意的几个要点:

  1. 搜索区和模板区的边界问题,要处理好;
  2. 在运算工程中会产生大量数据,这些数据如何处理是关键。

本算法全部是用verilog编写完成,纯逻辑版本,真实有效,有截图为证,哈哈。我只是共享一些思路,编程的核心就是思路,思路有了,代码就是体力活。

相关推荐
LCMICRO-133108477463 分钟前
长芯微LCMDC8685完全P2P替代ADS8685,16位模数转换器(ADC)
单片机·嵌入式硬件·fpga开发·硬件工程·dsp开发·模数转换器adc
szxinmai主板定制专家21 分钟前
基于ARM+FPGA高性能MPSOC 多轴伺服设计方案
arm开发·人工智能·嵌入式硬件·fpga开发·架构
nuoxin1141 小时前
CYUSB4024-FCAXI 是一款USB 20Gbps 控制器-富利威
网络·人工智能·嵌入式硬件·fpga开发·dsp开发
LCMICRO-1331084774612 小时前
长芯微LCMDC8584完全P2P替代ADS8584,是一款16位、4通道同步采样的逐次逼近型(SAR)模数转换器(ADC)
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·模数转换器adc
尤老师FPGA21 小时前
Framebuffer的讲解
fpga开发
FPGA的花路1 天前
ZYNQ 程序固化与升级指南
fpga开发·vitis·一键烧录脚本·zynq程序构成
ALINX技术博客1 天前
【黑金云课堂】FPGA技术教程:PLL锁相环实验和MIO应用
fpga开发·fpga
Byron Loong1 天前
【常识】通俗易懂的讲CPU,GPU,MCU,FPGA,DSP的区别和特点
单片机·嵌入式硬件·fpga开发
gaoxcv2 天前
TDC相关的一些方法
fpga开发
我爱C编程2 天前
【3.4】双口RAM模块的FPGA实现
fpga开发·fpga·fft·双口ram