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
    +关注

    关注

    1655

    文章

    22287

    浏览量

    630303
  • 图像处理
    +关注

    关注

    28

    文章

    1340

    浏览量

    59177
  • Xilinx
    +关注

    关注

    73

    文章

    2192

    浏览量

    129938
  • python
    +关注

    关注

    57

    文章

    4858

    浏览量

    89586
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FPGA和GPU加速的视觉SLAM系统中特征检测器研究

    特征检测是SLAM系统中常见但耗时的模块,随着SLAM技术日益广泛应用于无人机等功耗受限平台,其效率优化尤为重要。本文首次针对视觉SLAM流程开展硬件加速特征检测器的对比研究,通过对比现代SoC平台
    的头像 发表于 10-31 09:30 302次阅读
    <b class='flag-5'>FPGA</b>和GPU<b class='flag-5'>加速</b>的视觉SLAM系统中特征检测器研究

    常用硬件加速的方法

    之前总结了一些常用硬件加速方法 1)面积换速度:也就是串转并运算,可以多个模块同时计算; 2)时间换空间:时序收敛下通过频率提高性能,虽然面积可能稍微加大点; 3)流水线操作:流水线以面积换性能,以
    发表于 10-29 06:20

    硬件加速模块的时钟设计

    硬件加速模块需要四个时钟,分别为clk_l , clk_r , clk_c , clk_n 。 clk_l : 整个硬件加速模块为了最大化的节约时间成本而采用了类似处理器的流水线设计,具体上将每一层
    发表于 10-23 07:28

    FAQ_MA35D1如何将 SD 卡大小调整为最大?

    FAQ_MA35D1 将 SD 卡大小调整为最大
    发表于 09-03 06:13

    如何验证硬件加速是否真正提升了通信协议的安全性?

    验证硬件加速是否真正提升通信协议的安全性,需从 安全功能正确性、抗攻击能力增强、安全性能适配、合规一致性 等核心维度展开,结合实验室测试与真实场景验证,避免 “硬件参与即安全提升” 的表面判断。以下
    的头像 发表于 08-27 10:16 818次阅读
    如何验证<b class='flag-5'>硬件加速</b>是否真正提升了通信协议的安全性?

    有哪些方法可以确保硬件加速与通信协议的兼容性?

      确保硬件加速与通信协议的兼容性,核心是从 硬件选型、协议标准匹配、软硬件接口适配、全场景测试验证 四个维度建立闭环,避免因硬件功能缺失、接口不兼容或协议特性支持不全导致的性能损耗、
    的头像 发表于 08-27 10:07 657次阅读

    如何利用硬件加速提升通信协议的安全性?

    产品实拍图 利用硬件加速提升通信协议安全性,核心是通过 专用硬件模块或可编程硬件 ,承接软件层面难以高效处理的安全关键操作(如加密解密、认证、密钥管理等),在提升性能的同时,通过硬件
    的头像 发表于 08-27 09:59 644次阅读
    如何利用<b class='flag-5'>硬件加速</b>提升通信协议的安全性?

    【米尔MYC-YM90X安路飞龙DR1开发板】HMI人机界面开发

    运行、人机交互、高层协议处理等。 FPGA 逻辑:负责实时信号处理、硬件加速(如 AI 推理、图像处理)、自定义接口适配、高速数据采集等。 接口定义:规划处理器与 FPGA 的通信方
    发表于 08-14 21:26

    大模型推理显存和计算量估计方法研究

    GPU、FPGA硬件加速。通过分析硬件加速器的性能参数,可以估算模型在硬件加速下的计算量。 四、实验与
    发表于 07-03 19:43

    推动硬件辅助验证平台增长的关键因素

    硬件加速和基于FPGA的原型设计诞生于1980年代中期,开发者将当时初露头角的现场可编程门阵列(FPGA)率先应用于硅前设计的原型验证,由此催生了一种全新的验证工具,打破了软件仿真的主导局面。
    的头像 发表于 06-11 14:42 830次阅读
    推动<b class='flag-5'>硬件</b>辅助验证平台增长的关键因素

    当我问DeepSeek AI爆发时代的FPGA是否重要?答案是......

    在AI时代,FPGA(现场可编程门阵列)具有极其重要的地位,主要体现在以下几个方面: 1.硬件加速与高效能 • 并行处理能力:FPGA内部由大量可编程逻辑单元组成,能够实现高度并行的数据处理。这种
    发表于 02-19 13:55

    FPGA图像处理基础----实现缓存卷积窗口

    像素行与像素窗口 一幅图像是由一个个像素点构成的,对于一幅480*272大小的图片来说,其宽度是480,高度是272。在使用FPGA进行图像处理时,最关键的就是使用
    的头像 发表于 02-07 10:43 1417次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>图像</b>处理基础----实现缓存卷积窗口

    数据中心中的FPGA硬件加速

      再来看一篇FPGA的综述,我们都知道微软包括国内的云厂商其实都在数据中心的服务器中部署了FPGA,所以这篇论文就以数据中心的视角,来看下FPGA这个硬件加速器。 还是一样,想要论文
    的头像 发表于 01-14 10:29 1203次阅读
    数据中心中的<b class='flag-5'>FPGA</b><b class='flag-5'>硬件加速</b>器

    FPGA在AI方面有哪些应用

    提供了强有力的支持。 一、FPGA 在深度学习中的应用 深度学习是 AI 的重要分支,涉及海量的数据运算。FPGA 能够针对深度学习算法中的卷积、池化等核心运算进行硬件加速优化。例如,在图像
    的头像 发表于 01-06 17:37 2102次阅读

    基于FPGA实现图像直方图设计

    简单,单采用FPGA来实现直方图的统计就稍显麻烦。若使用Xilinx和Altera的FPGA芯片,可以使用HLS来进行图像加速处理。但这暂时不是我的重点。 用C语言实现直方图统计:u
    的头像 发表于 12-24 10:24 1204次阅读
    基于<b class='flag-5'>FPGA</b>实现<b class='flag-5'>图像</b>直方图设计