当前位置: 首页 > 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的系列。

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

相关文章:

  • 跟着AI学习C# Day29
  • Rabbitmq集成springboot,手动确认消息basicAck、basicNack、basicReject的使用
  • 应对进行性核上性麻痹,科学护理指南
  • 本地回环地址在广播风暴与环路排查中的实战指南
  • 简单通过SenseVoice给自己配置一个语音转文字服务
  • Django中为api自定义一些装饰器:如参数校验等
  • GeoJSON 数据简介
  • Android 终端模拟器 termux app
  • 深入Java面试:从Spring Boot到微服务
  • 【C++语法】类和对象(4)——日期类和const成员函数
  • linux安装minio并使用
  • 使用CommonAPI开发Some/IP的流程
  • Spring-MyBatis基本操作
  • rent8_wechat-最常用出租屋管理系统-微信小程序
  • 华为云Flexus+DeepSeek征文 | 基于Flexus X实例的金融AI Agent开发:智能风控与交易决策系统
  • C++题解:【入门】快乐的马里奥(BFS)
  • 从代码学习深度学习 - 预训练BERT PyTorch版
  • 【LeetCode 热题 100】15. 三数之和——排序 + 双指针解法
  • FastAPI框架的10个重要知识点总结
  • Chromium 136 编译指南 macOS篇:编译流程(五)
  • 郑州做网站公司有多少钱/宁波网站制作优化服务
  • 从蜘蛛日志分析网站/东莞seo推广
  • 做网站按什么收费多少/新手怎样推销自己的产品
  • 重庆做网站 外包公司/百度搜索软件
  • 做球迷网站/北京seo关键词排名优化软件
  • 阿拉善左旗建设局网站/今日最近的新闻大事10条