基于FPGA并行计算的图像处理案例

图像处理算法在各种场景中都有广泛应用,借助于fpga并行计算的优势可以将算法性能有效提升,但为了提升系统整体性能,仅仅提升某一部分的性能是不够的,一个好的方法是在fpga内实现全部视频输入输出接口和图像算法的完整通路。本overlay的视频输入来自ov5640摄像头,包含多个可任意切换的图像处理算法,并包含了一个hdmi输出接口显示处理结果。
图像处理算法在各种场景中都有广泛应用,借助于fpga并行计算的优势可以将算法性能有效提升,但为了提升系统整体性能,仅仅提升某一部分的性能是不够的,一个好的方法是在fpga内实现全部视频输入输出接口和图像算法的完整通路。本overlay的视频输入来自ov5640摄像头,包含多个可任意切换的图像处理算法,并包含了一个hdmi输出接口显示处理结果。
设备清单
- pynq-z2套件
- ov5640 camera board
(如waveshare ov5640或者其它兼容版本)
- pmod-camera adapter
- hdmi monitor
系统架构
算法列表
overlay中实现了多个图像处理算法,在hls中实现并封装为ip后在block design中被调用,读者如有兴趣可以在github的/boards/src/ip/目录获取源代码。
1) rgb2hsv
2) subsample
3) equalizehist
4) gaussianblur
5) sobel
6) canny
7) dilation
8) erosion
快速开始
环境需求pynq v2.4,在pynq-z2板卡联网并启动后在终端中运行如下代码安装overlay到本地:
# (on pynq v2.4 only)
sudo pip3 install --upgrade git+https://github.com/xupsh/pynq-cv-ov5640.git
案例演示
notebook名称:pynq4cv.ipynb
在overlay中例化了一个i2c接口来对ov5640进行配置,我们可以在jupyter notebook上通过python对摄像头进行初始化,也可以通过改动ov5640_config.py文件的内容来修改配置。
接下来,我们对overlay中实现的图像处理算法进行配置。
配置完成后,还需要选择使能overlay中的某一个算法来对从ov5640获取的图像进行处理,默认不经过任何图像处理算法,从ov摄像头获取的图像直接在hdmi显示器上显示。
我们也可以抓取ov5640拍摄的图片并在jupyter notebook上显示。
接下来,我们可以使能不同的图像处理算法,通过观察hdmi显示器的输出,观察不同算法的处理结果。
在运行完毕后,记得关闭vdma,以防止运行其它overlay时报错。
总结与展望
本案例在pl内实现了一个完整的视频通路,对图像数据直接进行硬件加速处理。相比于usb摄像头减少了图像数据从ps到pl拷贝和回传的负载,提高了系统的性能同时极大降低了图像处理的延时


龙芯中科发布自重研发的新一代CPU——龙芯3号
Mini LED技术究竟有何魅力
计算变压器的参数知识讲解
未来VR教育的场景化学习优势将越发明显
Alp面向汽车应用推出AM/FM调谐器
基于FPGA并行计算的图像处理案例
一文了解通信技术的常用名词解释
串联谐振原理详解
2016年的AI,一场史无前例的技术营销
主板支持内存类型有哪些?
随着技术不断深入 作为安防重要板块的防盗报警也迎来了蜕变
IAR推出第五代工业级RTOS:PX5
四方光电车规级CO₂传感器获得知名新能源主机厂定点
三星Note7国行5988元起8月26日开售 未来还有皇帝版
oppoa55怎么样值得买吗?双5G大电池OPPO A55开箱体验分享
小米本月投入日本市场智能手机和家电制品
AM:热交联空穴导体助力23.9%效率的稳定的反式钙钛矿太阳能电池
行业 | Entegris收购MPD Chemicals,扩充高级沉积材料产品组合
电瓶修复小知识:电池变形故障现象的分析
多功能呼救原理电路