基于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编写完成,纯逻辑版本,真实有效,有截图为证,哈哈。我只是共享一些思路,编程的核心就是思路,思路有了,代码就是体力活。

相关推荐
乌恩大侠2 小时前
O-RAN Fronthual CU/Sync/Mgmt 平面和协议栈
5g·平面·fpga开发·架构
DS小龙哥15 小时前
基于Zynq FPGA的雷龙SD NAND存储芯片性能测试
fpga开发·sd nand·雷龙·spi nand·spi nand flash·工业级tf卡·嵌入式tf卡
上理考研周导师1 天前
第二章 虚拟仪器及其构成原理
fpga开发
FPGA技术实战1 天前
《探索Zynq MPSoC》学习笔记(二)
fpga开发·mpsoc
bigbig猩猩2 天前
FPGA(现场可编程门阵列)的时序分析
fpga开发
Terasic友晶科技2 天前
第2篇 使用Intel FPGA Monitor Program创建基于ARM处理器的汇编或C语言工程<二>
fpga开发·汇编语言和c语言
码农阿豪2 天前
基于Zynq FPGA对雷龙SD NAND的测试
fpga开发·sd nand·spi nand·spi nand flash·工业级tf卡·嵌入式tf卡
江山如画,佳人北望2 天前
EDA技术简介
fpga开发
淘晶驰AK2 天前
电子设计竞赛准备经历分享
嵌入式硬件·fpga开发