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

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

3天内不再提示

FPGA硬件加速的图像大小调整案例分析

电子设计 来源:PYNQ开源社区 作者:PYNQ开源社区 2020-11-19 15:29 次阅读

概述

此项目解释了如何在FPGA上使用resizer IP来调整图像的大小。其中对比了两种图像大小调整的解决方案的运算速度,其中之一为使用Python Image Library通过软件算法实现图像大小调整,另一种使用Xilinx xfopencv library实现了在FPGA上硬件加速的图像大小调整。

初始化

1. 首先在SD卡内配置Pynq-Z2最新镜像PYNQ image v2.5并烧录在其中

2. 根据pynq.io上的官方指南配置环境

https://pynq.readthedocs.io/en/latest/getting_started/pynq_z2_setup.html)


根据数字编号依次连接并点亮板卡,最后在板卡出现BTN0~BTN3同时点亮闪烁一次后为开机完成状态。

3. 在笔记本电脑上配置网络,使得无线网卡的上网功能与Pynq-Z2连接的以太网网口共享,以做到Pynq-Z2同时能够上网。

4. 借用Xshell或者开源软件PuTTY对于Pynq-Z2端口进行SSH获得其新ip口,此时其一般会被重定向至192.168.137.X。此时在浏览器内登录此ip即可通过Jupyter Notebook与Pynq-Z2板卡通信

5. 在Jupyter Notebook中新建terminal并ping 182.61.200.6验证与百度的连接是否正常上述验证完成后即为Pynq-Z2板卡与网络的基础通信功能与配置完成。

快速开始

在Jupyter Notebook的Terminal中输入以下指令:

sudo pip3 install --upgrade git+

https://github.com/xilinx/pynq-helloworld.git

更新在Pynq-Z2内所有Packages并从github下载本次项目的代码。

(更新需要耐心等待一定时间。)

(项目Github文件及其详细代码请点击查看原文)

案例测试

1. 最终会在Files文件夹下生成名为helloworld/的文件夹,点开此文件夹可以看到两个Jupyter Notebook文件(.ipynb)。

2. 其中resizer_PS.ipynb的软件方案采用了Python内建的Python Imaging Library通过软件上的算法实现完成对于一张640*360的sample图像压缩为原图像的四分之一大小(320*180)。此软件方案通过PIL库加载与重置图像的大小,用numpy库存储图像的像素矩阵,用IPython.display在Jupyter notebook中显示图像。


3. 而resizer_PL.ipynb的FPGA硬件方案并没有直接在ARM核中单纯采用算法借用Python本地的内存进行运算后直接返回。而是先将图片数据通过ARM核从SD卡中读入,再以数据流的形式通过Python的本地内存的DRAM形式传入共享的物理内存中。



接下来通过AXI的内部连接将PS层面的数据传入PL层的可编辑逻辑单元,通过 Xilinx xfopencv library在DMA与Resize IP之间的运算最后将数据传回ARM核至SD卡。



最后,在缩小图片的演示最后我们可以看到PS方案得到的最快单次图像处理为24.1ms,而在PL方案中最快单次图像处理仅仅为8.95ms,在此实际图像案例上处理图像的时间效率上缩小了接近2.7倍。如果放至更多张更高像素的图片,相信此图像处理方案会有着较大优势。

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

    关注

    1602

    文章

    21320

    浏览量

    593156
  • 图像处理
    +关注

    关注

    26

    文章

    1224

    浏览量

    55823
  • Xilinx
    +关注

    关注

    70

    文章

    2121

    浏览量

    119372
  • python
    +关注

    关注

    51

    文章

    4675

    浏览量

    83466
收藏 人收藏

    评论

    相关推荐

    用DE1-SOC进行硬件加速的2D N-Body重力模拟器设计

    该项目的目标是创建一个用DE1-SOC进行硬件加速的2D N-Body重力模拟器。
    的头像 发表于 04-09 11:08 154次阅读
    用DE1-SOC进行<b class='flag-5'>硬件加速</b>的2D N-Body重力模拟器设计

    330-基于FMC接口的Kintex-7 XC7K325T PCIeX4 3U PXIe接口卡 图形图像硬件加速

    标签: Net FPGA , XC7K325T板卡 , XC7K325T处理板 , 软件无线电处理平台 , 图形图像硬件加速
    的头像 发表于 03-04 14:14 180次阅读
    330-基于FMC接口的Kintex-7 XC7K325T PCIeX4 3U PXIe接口卡 图形<b class='flag-5'>图像</b><b class='flag-5'>硬件加速</b>器

    【国产FPGA+OMAPL138开发板体验】(原创)7.硬件加速Sora文生视频源代码

    hardware_accelerator_done; // 硬件加速器完成信号(假设) // FPGA内部处理函数 always @(posedge clk or posedge reset) begin
    发表于 02-22 09:49

    音视频解码器硬件加速:实现更流畅的播放效果

    随着多媒体内容的日益丰富和高清化,传统的软件解码已经难以满足人们对流畅播放体验的需求。因此,音视频解码器硬件加速技术的出现,为提升播放效果带来了革命性的改变。 硬件加速的原理 硬件加速的核心
    的头像 发表于 02-21 14:40 283次阅读
    音视频解码器<b class='flag-5'>硬件加速</b>:实现更流畅的播放效果

    嵌入式多媒体系统中硬件加速技术的应用

    电子发烧友网站提供《嵌入式多媒体系统中硬件加速技术的应用.pdf》资料免费下载
    发表于 10-26 09:33 0次下载
    嵌入式多媒体系统中<b class='flag-5'>硬件加速</b>技术的应用

    【KV260视觉入门套件试用体验】硬件加速之—使用PL加速矩阵乘法运算(Vitis HLS)

    Virtual Cable)调试FPGA逻辑 三、硬件加速之—使用PL加速FFT运算(Vivado) 四、硬件加速之—使用PL加速矩阵乘法
    发表于 10-13 20:11

    【KV260视觉入门套件试用体验】 硬件加速之—使用PL加速FFT运算(Vivado)

    Cable)调试FPGA逻辑 三、硬件加速之—使用PL加速FFT运算(Vivado) 四、硬件加速之—使用PL加速矩阵乘法运算(Vitis
    发表于 10-02 22:03

    Alveo卡的区块链硬件加速器解决方案

    电子发烧友网站提供《Alveo卡的区块链硬件加速器解决方案.pdf》资料免费下载
    发表于 09-15 14:42 0次下载
    Alveo卡的区块链<b class='flag-5'>硬件加速</b>器解决方案

    Kria KR260机器人入门套件:通过硬件加速释放机器人

    电子发烧友网站提供《Kria KR260机器人入门套件:通过硬件加速释放机器人.pdf》资料免费下载
    发表于 09-14 10:16 4次下载
    Kria KR260机器人入门套件:通过<b class='flag-5'>硬件加速</b>释放机器人

    硬件加速自然语言理解解决方案

    电子发烧友网站提供《硬件加速自然语言理解解决方案.pdf》资料免费下载
    发表于 09-13 10:45 0次下载
    <b class='flag-5'>硬件加速</b>自然语言理解解决方案

    Hyperon—大数据应用的硬件加速解决方案

    电子发烧友网站提供《Hyperon—大数据应用的硬件加速解决方案.pdf》资料免费下载
    发表于 09-13 10:12 0次下载
    Hyperon—大数据应用的<b class='flag-5'>硬件加速</b>解决方案

    硬件加速人体姿态估计开源分享

    电子发烧友网站提供《硬件加速人体姿态估计开源分享.zip》资料免费下载
    发表于 06-25 10:27 0次下载
    <b class='flag-5'>硬件加速</b>人体姿态估计开源分享

    基于 FPGA 的目标检测网络加速电路设计

    (FPGA)来构建硬件加速电路,来提升计算CNN的性能。 其中 ASIC 具备高性能、低功耗等特点,但 ASIC 的设计周期长,制造成本高,而 GPU 的并行度高,计算速度快,具有深度流水线结构,非常
    发表于 06-20 19:45

    i.MX8m plus如何在ICC配置文件之间进行转换?

    我知道 NXP OpenCV fork 集成了 eIQ,用于 i.MX8m plus 上的硬件加速神经图像处理。 但是,非机器学习图像处理又如何呢,例如在 ICC 配置文件之间进行转换?NXP
    发表于 05-31 06:02

    如何使用RSA硬件加速能多快生成2048bit的密钥?

    面,可能会导致误判。尝试改正后,生成的密钥是正常的,但速度比OpenSSL纯软件慢。正常使用RSA硬件加速能多快生成2048bit的密钥?这个补丁有优化版吗?
    发表于 05-06 08:05