当前位置: 首页 > news >正文

闲庭信步使用SV进行图像处理系列教程介绍

(如需要该系列的工程文件请关注知识星球:成工fpga,https://t.zsxq.com/DMeqH,关注即送200GB学习资料,链接已置顶!)

对于一个纯粹的算法人员,使用的可能是C/C++,当然也可能是python或者matlab,当然也可能是别的高级编程语言,成工在研究生期间就是做算法研究的,前期算法的仿真用的是matlab,后期在实际系统上验证是用c语言,当时不管是导师还是同学,甚至当时的我自己,都没有想过后来会从事FPGA的开发工作。

数字图像处理相关的书籍非常多,但是基于FPGA的数字图像处理的书籍不多,成工认为还不错的有两本,一本是牟新刚老师著的《基于FPGA的数字图像处理原理及应用》,也就封面如下的这本书。

这本书使用的图像测试平台是VS2015的MFC。也就是说,如果基于这本书完成数字图像的处理,要有熟悉MFC开发的人员,要有熟悉FPGA仿真的人员,还要有熟悉FPGA开发的人员。当然有的读者会说,本人不才,是集MFC开,FPGA仿真和FPGA开发的三位一体的大才,问题是你都是大才了,没必要为如何搭建测试平台烦恼了。对于一个FPGA初学者,能把FPGA的仿真和开发做好就不错了,很难有精力再去考虑测试平台的问题了。

另一本书是韩彬老师的《基于MATLAB与FPGA的图像处理教程》,这本书都不用成工多说,从书名就可以知道是基于matlab搭建的测试平台。

很多读者可能会问,没有测试平台就不能直接进行FPGA的图像处理的开发吗?这个当然是可以的,可以直接进行FPGA代码的设计,然后下载到开发板中看效果,但是前提条件是手头有图像处理相关的开发板。还有一个问题,如果是FPGA设计的有问题,通过仿真测试定位问题的效率要远远大于在FPGA硬件平台定位问题的效率!!!从事FPGA开发的人员应该都是深有感悟的!!!

现在问题来了,手头没有FPGA视频相关的开发板,也不会mfc,matlab,opencl等开发,当然也不是一无所有,亮出手中的底牌,仅仅一台电脑,就安装了modelsim这一个FPGA仿真的软件,到底能不能进行数字图像处理!!!

成工可以明确的告诉大家,仅仅使用system verilog+modelsim这两大利器,就可以进行数字图像的处理!这也是成工做《闲庭信步使用SV进行图像处理》这个系列的原因!这个系列的宗旨是大大降低入门数字图像的处理的门槛,可以同时学习到数字图像处理,SV,测试平台的搭建,仿真平台的搭建,图像处理的FPGA实现,硬件平台的测试等一系列的知识;同时,成工还会把开发设计中出现的一些问题和解决方案和大家分享,在问题中学习,感悟更深刻。

《闲庭信步使用SV进行图像处理》计划包括三个系列,第一个系列搭建图像测试平台,第二个系列使用图像测试平台加速FPGA的开发,第三个系列就是在FPGA开发板上测试图像处理。目前成工已经完成了前两个系列的整理,共67个工程,每个工程都可以通过双击top_tb.bat文件自动完成仿真测试。

第一个系列是《闲庭信步使用SV搭建图像测试平台》,也就是完成上面MFC或者MATLAB实现的功能。该系列不涉及任何的组合逻辑,成工会手把手带领大家搭建一个基于SV的图像测试平台,这个系列不仅可以学习图像处理的相关知识和算法,还可以学习到使用SV搭建测试平台的方法。该系列成工已经完成,共33课,如下所示:

每课的内容如下所示,完成这个系列,大家可以在各个包下的类中任意的增添图像处理的各种算法。

目前该系列下有三个packet,一个是img_basic_pkt,实现图像的各种读写和变化。

还有一个img_process_pkt,实现图像的各种处理算法。

还有一个img_cnn_pkt,实现了神经网络的各个功能模块。

有了这些包,图像算法的测试就变得非常的容易,比如直方图的统计和均衡,只需要调用相应包中每个类的相关task即可,一目了然。

通过保存的图片测试结果也是一目了然。

《闲庭信步使用SV进行图像处理》的第二个系列是《闲庭信步使用图像仿真测试平台加速FPGA的开发》,该系列首先基于上个系列的图像测试平台,使用interface完成FPGA的时序逻辑模块和测试平台的交互,所以将图像测试平台改名为图像仿真测试平台。这个系列的RTL代码都是可以直接拿到开发板去使用的,成工会详细的和大家讲解如何使用FPGA实现数字图像的处理。而且这个系列成工会进一步扩充图像处理的算法,比如图像的高斯和拉普拉斯金字塔,车牌检测等。该系列成工也已经完成,共34课,如下所示:

每一课的内容分别如下所示。

该系列增加了一个img_sequence_pkt包,实现了测试平台和时序逻辑间的数据交互。

如下是仿真文件的顶层,定义了interface,例化了video_ctrl模块,该模块用于产生图像的相关时序,还例化了top模块,该模块包括所有的图像处理的FPGA实现。138到162行的initial块完成了图像数据的读取,测试模型和FPGA仿真图片保存和图像数据的比对等功能。164到173行的initial块完成了测试平台和时序模块间的数据交互。

到了该系列的结束,src文件夹下会有所有的可综合的rtl代码,这些代码基本可以直接拿到开发板上使用,如下所示。

《闲庭信步使用SV进行图像处理》的第三个系列是《闲庭信步使用FPGA硬件平台完成数字图像处理》,该系列就是在FPGA开发板上实现相应的数字图像的处理。要在开发板上进行数字图像的处理,前期有一些工作要做,比如图像传感器的驱动,图像数据的DDR缓存,图像的显示,网络的配置等功能的开发,这些成工手头都有现成的模块,暂时还没有整理成系列的课程,看看大家的需求吧,成工也有可能先做别的系列,比如那个CPU和GPU的系列。

最后让大家欣赏一下该系列图像处理得到图片的动图,

http://www.xdnf.cn/news/1063729.html

相关文章:

  • 操作系统内核态和用户态--1-基础认识
  • 深入浅出:Go语言中的Cookie、Session和Token认证机制
  • Wire--编译时依赖注入工具
  • Qt + C++ 入门2(界面的知识点)
  • C# 数组(foreach语句)
  • Happy-LLM-Task04 :2.2 Encoder-Decoder
  • JVM(8)——详解分代收集算法
  • Python元组常用操作方法
  • LangGraph--基础学习(工具调用)
  • 最具有实际意义价值的比赛项目
  • 消融实验视角下基于混合神经网络模型的银行股价预测研究
  • WINUI/WPF——Button不同状态下图标切换
  • LLM-201: OpenHands与LLM交互链路分析
  • 【JS-4.3-鼠标常用事件】深入理解DOM鼠标事件:全面指南与最佳实践
  • Rabbitmq的五种消息类型介绍,以及集成springboot的使用
  • React JSX语法
  • OCCT基础类库介绍:Modeling Algorithm - Features
  • 软件工程期末试卷简答题版带答案(共21道)
  • 【DCS开源项目】—— Lua 如何调用 DLL、DLL 与 DCS World 的交互
  • Vue3 + TypeScript + xlsx 导入excel文件追踪数据流转详细记录(从原文件到目标数据)
  • 领域驱动设计(DDD)【3】之事件风暴
  • EasyExcel导出极致封装 含枚举转换 分页导出
  • GitHub Copilot快捷键
  • 缓存与加速技术实践-Kafka消息队列
  • 腾讯云IM即时通讯:开启实时通信新时代
  • Python中字符串常用的操作方法
  • Linux TCP/IP协议栈中的TCP输入处理:net/ipv4/tcp_input.c解析
  • 学习C++、QT---03(C++的输入输出、C++的基本数据类型介绍)
  • AI与SEO关键词协同进化
  • IEC61850 通信协议测试验证方法详解