闲庭信步使用SV搭建图像测试平台:开篇

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

本系列是成工工作过程中的一个副产品,起因是前期项目需要,成工需要搭建一个视频的硬件平台实时提供所需规格的图像给算法工程师测试AI的大模型。而算法工程师基本不做图像的处理,只要特定规格的图片,所以图像的采集和处理都交给FPGA来做。

在FPGA的开发过程中,仿真测试是必不可少的,主要可以提高开发的效率,缩短开发的时间。而对图像的仿真测试,成工以前都是使用matlab来完成。主要使用matlab完成图像的读写,为fpga提供图像数据和将fpga处理后的数据通过图像显示出来;matlab还完成一些图像的处理,用来和fpga处理的结果进行比对。

仿真测试的流程是这样,成工在与同事共同开发的时候,同事一句我电脑上没装matlab,然后一句我根本就不会用matlab,弄得成工尴尬不已。于是成工只能咬咬牙,舍弃matlab,仅仅使用modelsim就完成图像的读写和处理,虽说是被逼无奈,但是确实大大提高了开发和测试的效率

本系列的命名为什么加上闲庭信步这个成语呢?主要原因是成工大约用了一周的时间一气呵成完成的这个系列,中间几乎没有卡壳,主要原因是成工刚开始工作就是从事摄像机和电子警察研发相关的工作,对图像的处理比较熟悉;而且这个图像的测试平台是成工一直想做的,现在有机会当然会全身心的投入。基于上面的原因,成工斗胆加上了闲庭信步这个成语。

事先说明一下,本系列暂不涉及任何的时序,也就是所有的测试都是在仿真0时刻完成的。在下个系列,《闲庭信步使用SV搭建图像仿真平台》会涉及到时序的部分。

为了让大家能够尽快的上手,成工推出了这个系列的教程,主要包括图像的读写和一些基本的变换和基本的处理,当然也包括如何生成测试图片,如何直方图统计,如何直方图均衡,如何生成正弦波图片,如何生成DDS图片,最后实现了一个基于cnn的数字识别。

当然,基于system verilog主要使用了面向对象的编程,也就是使用了class,每个class打包成不同的packet,测试的过程中直接调用不同class中的function和task即可。本系列成工做了三个packet,一个img_basic_pkt,主要完成图片和txt的读写,图像反转,归一化等等img_process_pkt包主要完成图像色彩通道分离,彩色图片转raw图片,测试图片生成,图像插值,gamma矫正,均值滤波,图像锐化,rgb和ycbcr互相转换,rgb和hsv互相转换,直方图统计,直方图均衡,直方图叠加到图片,图像sobel,图像二值化,图像腐蚀和膨胀,正弦波生成,DDS等img_cnn_pkt包主要完成了卷积,激活,池化,全连接等。如下所示。

有了这些packet,图像的处理就会非常的简单,比如我们要做图像基于直方图的均衡,并将均衡前后的直方图在图片上显示出来,直接调用相关的task即可。

仿真直接生成图片,效果一目了然。

成工认为这个图像测试平台的最大优势就是开放和可扩展,大家拿到文件后可以任意的扩展packet,class,function和task,高效快捷的实现各种功能。

而且有了这个图像测试平台,可以随意的查看中间的细节。比如基于cnn的数字识别,可以将中间步骤的结果保存成图片进行查看,initail块如下。

可以对下面的任何一张图片上的数据进行识别,比如选择最后的那张图片3。

modelsim的仿真结果会打印识别的数字是3。

输出文件夹也会有标准数字3的图片,同时还可以保存卷积激活后的30张中间图片,供有兴趣者研究。

最后成工放几张测试平台生成图片合成的动图。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值