0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

454398 来源:PYNQ开源社区 作者:PYNQ开源社区 2020-11-04 12:07 次阅读

图像处理算法在各种场景中都有广泛应用,借助于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拷贝和回传的负载,提高了系统的性能同时极大降低了图像处理的延时
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    602978
  • 图像处理
    +关注

    关注

    27

    文章

    1289

    浏览量

    56722
收藏 人收藏

    评论

    相关推荐

    FPGA 实时信号处理应用 FPGA图像处理中的优势

    现场可编程门阵列(FPGA)是一种高度灵活的硬件平台,它允许开发者根据特定应用需求定制硬件逻辑。在实时信号处理图像处理领域,FPGA因其独
    的头像 发表于 12-02 10:01 413次阅读

    GPU加速计算平台是什么

    GPU加速计算平台,简而言之,是利用图形处理器(GPU)的强大并行计算能力来加速科学计算、数据分析、机器学习等复杂计算任务的软硬件结合系统。
    的头像 发表于 10-25 09:23 245次阅读

    FPGA加速深度学习模型的案例

    计算机主板上,以高速PCIe总线进行数据传输。 利用FPGA并行计算能力,快速处理大量的卷积计算。 可编程性
    的头像 发表于 10-25 09:22 214次阅读

    FPGA图像处理领域的优势有哪些?

    单元和可编程互联线,可以实现高度并行的数据处理。在图像处理任务中,如图像处理、特征提取和
    发表于 10-09 14:36

    基于FPGA+GPU异构平台的遥感图像切片解决方案

    大型遥感图像分割成图像切片信息,以便更有效地处理和分析图像数据。中科亿海微自主研制的AI目标识别加速卡,基于FPGA+GPU异构
    的头像 发表于 09-20 08:05 408次阅读
    基于<b class='flag-5'>FPGA</b>+GPU异构平台的遥感<b class='flag-5'>图像</b>切片解决方案

    FPGA在人工智能中的应用有哪些?

    和安全的云计算和网络服务。 三、具体应用场景 图像分类:在图像分类任务中,FPGA可以承担前置处理图像
    发表于 07-29 17:05

    基于FPGA图像采集与显示系统设计

    源和固有的并行处理能力,在数字信号处理、硬件加速、汽车电子等领域得到了广泛应用。在图像采集与显示系统中,FPGA能够实现高速、
    的头像 发表于 07-17 10:58 1837次阅读

    计算机视觉和图像处理的区别和联系

    计算机视觉和图像处理是两个密切相关但又有明显区别的领域。 1. 基本概念 1.1 计算机视觉 计算机视觉是一门研究如何使
    的头像 发表于 07-09 09:16 1281次阅读

    基于FPGA的类脑计算平台 —PYNQ 集群的无监督图像识别类脑计算系统

    FPGA 集群的硬件加速器,通过并行流水线结构实现 8 个神经元同时计算并采用分时复用 8 个神经元实现任意规模的脉冲神经网络的加速,并 使用 FPGA 实现 STDP 学习算法使
    发表于 06-25 18:35

    FPGA设计经验之图像处理

    NxN的算子中的N不能特别大。当然FPGA也可以接DDR把图像缓存到其中再读出来进行处理,但这种处理模式就和CPU差不多了,达不到最高的实时性。其实有些我们认为需要随机读取数据的
    发表于 06-12 16:26

    基于FPGA的实时边缘检测系统设计,Sobel图像边缘检测,FPGA图像处理

    计算机软件实现方式有更快的处理速度。 经验证,系统工作稳定,满足实时性要求 。 MATLAB 与 FPGA无线通信、图像处理、数字信号
    发表于 05-24 07:45

    fpga芯片的主要特点包括 fpga芯片上市公司

    FPGA芯片的主要特点包括以下几个方面: 高性能和实时性:FPGA芯片由数百万个逻辑单元组成,因此具有并行处理能力,其运行速度远超单片机和DSP。这种
    的头像 发表于 03-14 16:46 1128次阅读

    如何使用FPGA驱动并行ADC和并行DAC芯片?

    ADC和DAC是FPGA与外部信号的接口,从数据接口类型的角度划分,有低速的串行接口和高速的并行接口。
    的头像 发表于 02-22 16:15 3635次阅读
    如何使用<b class='flag-5'>FPGA</b>驱动<b class='flag-5'>并行</b>ADC和<b class='flag-5'>并行</b>DAC芯片?

    FPGA图像处理之CLAHE算法

    FPGA图像处理--CLAHE算法(一)中介绍了为啥要用CLAHE算法来做图像增强。
    的头像 发表于 01-04 12:23 2506次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>图像</b><b class='flag-5'>处理</b>之CLAHE算法

    OpenCL多Kernel并行计算结果讨论分析

    · GitHub 想要完成板卡上多核并行计算任务,需要包含多个例化单元的xclbin,对于要例化为多个计算单元的同一内核,可以使用nk标志指定 conn_u200.cfg 配置文件中的计算单元数量。同时
    发表于 12-31 21:31