FPGA应用于图像处理

FPGA应用于图像处理

FPGA(Field-Programmable Gate Array)直译过来就是现场可编程门阵列。是一种可以编程的逻辑器件,具有高度的灵活性,可以根据具体需求就像编程来实现不同的功能。

FPGA器件属于专用的集成电流中的一种半定制电路,是可编程的逻辑阵列,内部有基本的逻辑单元,可配置的逻辑块,数字时钟管理模块,嵌入式RAM,以及丰富的布线资源,有的FPGA内部还集成了SDRAM、Cortex-ARM硬核。采用Verilog或者VHDL进行编程。

既然大家能用到FPGA,说明大家在学校里面都上过数字电路实验课。通俗来讲,你可以直观的认为FPGA内部的各个逻辑块就像是实验室里面的各种芯片模组,使用Verilog编程进行逻辑资源的布线就相当于你面对一大堆的电子元器件,采用面包板以及杜邦线把你需要的功能连接起来。怎么连接以及连接线的方式就是你用verilog进行定义的。是不是很简单?

优缺点:

首先说一下FPGA的优缺点,

优点:

FPGA由逻辑单元,RAM,乘法器等硬件资源构成,通过这些资源的组合,可以实现乘法,寄存器,地址发生器等硬件电路;

FPGA可以通过使用框图或者Verilog HDL来设计,从简单的门电路到复杂的FIR电路都可以实现;

FPGA可以无限的重新编程,加载一个新的设计方案只需要几百毫秒,利用重配置电路可以减少硬件开销;

FPGA的工作频率由FPGA芯片以及设计决定,可以通过修改设计或者更换更快的FPGA芯片来达到某些要求严苛的工况。

缺点:

FPGA的所有功能均依靠硬件实现,无法实现分支条件跳转等操作;

FPGA只能实现定点运算;

小结:

FPGA依靠硬件来实现所有的功能,速度上可以和专用芯片相比,但是设计灵活性和通用处理器相比还有些许不足。

FPGA可以应用的行业:

视频处理;

图像分割;

数据延迟器和存储设计;

通讯行业;

安防;

工控业;

AI:(也是当前最火的行业);

####下面就对本人相对比较熟悉的图像处理行业进行简单介绍,浅谈一下自己的看法;

​ 我最开始学习的事51单片机,但是实际工作从事的事图像识别方向的应用开发,由于51单片机的先天性导致实际工作中很少使用,最开始使用得是ADI的Blackfin系列的DSP,随着图像分辨率的提高,以及处理算法的复杂度的上升,Blackfin处理器业渐渐不能满足实际需求;于是转向了FPGA,至此在FPGA上也使用了十多年了。

​ FPGA的优势之一就是流水线操作,虽然主频比CPU,GPU,NPU等低很多,但是采用流水线方式可以同时处理,也就能达到了很好的实时性。因此在一些实时性要求非常高的应用领域,做图像处理只能使用FPGA。这几年一直从事分选设备的图像处理方面的工作,目前在分选领域基本都是使用FPGA作为主处理器,不管是采用线阵传感器还是面阵传感器,FPGA从采集到图像数据开始,到下一次采集到新的图像数据,这个延时时间是固定的为行频或者帧频的间隔。这个优点是CPU无法满足的,只有FPGA的实时流水线结构才能才能满足大数据量的实时处理。

​ 传统的采用CPU,DSP等方式进行图像运算的方式是,首先CPU或者DSP把采集到的数据通过DMA或者其他总线方式搬运到内存中,然后CPU或DSP运算部分再从内存中读取数据进行处理,处理完成后再把处理结果保存到内存中,供其他函数进行访问;如果按照线阵传感器的行频格式进行处理,按照10K的行频计算,则每行数据的实践间隔是0.1ms,也就要求在0.1ms时间内必须把这一样数据处理完成,并把处理结果保存到内存。如果CPU或者DSP的主频足够高,理论上也是可行的,但是主频不可能无限提升。

​ 如果采用FPGA进行处理就完美的避免的频繁的访问内存了;因为FPGA对图像的处理事实时流水线的运算处理,FPGA内部的逻辑资源可以搭建若干个处理单元,每个处理单元都是同时工作的,当有足够多的处理单元时,虽然FPGA的主频较低,但是同时处理数据的能力将会非常大。
在这里插入图片描述

​ 上图就是一个简单的流水线示意图,第一行时数据A进来,第一个单元处理数据A,等到第二行的时候,数据A已经进入到的下一个处理单元,同时数据B进来,这是数据A和数据B分属如不同的处理单元,因此数据A和数据B可以被同时处理;当有足够多的处理单元时,可以对很多数据进行同时处理,数据A的输出仅仅是固定延迟若干个处理单元的个数个时钟。只要处理单元数固定,那么这个输出数据的延迟时间间隔也是固定的。

​ 例如实际应用中,FPGA直连Sensor,然后驱动Sensor,直接获取图像数据,第一个单元可以对获取的图像数据进行转换,如Bayer格式转RGB,RAW转RGB等;第二个处理单元可以对RGB数据进行差值运算、亚像素校正,第三个单元进行腐蚀/膨胀操作,第四个单元进行canny算子检测。。。。。。。

​ 这样的流水线的处理方式时按照Sensor输出的数据流的流动方向顺序处理的,它无法像CPU或者DSP那样缓存整幅图像进行无序操作,FPGA处理图像数据就相当于每个单元处理完成后就把处理结果交给下一个处理单元,每个处理单元只对当前进入的数据负责,不在保存中间结果数据;

​ 随着海量数据的算力需求越来越高,FPGA芯片将继续向更高密度、更高通信带宽方向发展,此外,异构计算融合等形式将越来越受推崇。并且从软件发展角度,也更注重配套的工具能力,提供高性能的AI加速能力。

FPGA的关键价值在于可编程性、灵活性,AI发展初期,很多新兴应用还在酝酿中,各类标准仍在演进,AI算法也在不断推陈出新,对于硬件的算力和灵活度要求很高,FPGA刚好契合这些需求。此外,在推理环节的小批量数据处理中,FPGA可凭借流水线并行,达到高并行、低延迟的效果。并且,受低延迟、数据隐私和带宽限制等因素驱动,FPGA能够满足低功耗、灵活以及快速响应等需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/90033.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TinyVue - 华为云 OpenTiny 出品的企业级前端 UI 组件库,免费开源,同时支持 Vue2 / Vue3,自带 TinyPro 中后台管理系统

华为最新发布的前端 UI 组件库,支持 PC 和移动端,自带了 admin 后台系统,完成度很高,web 项目开发又多一个选择。 关于 OpenTiny 和 TinyVue 在上个月结束的华为开发者大会2023上,官方正式进行发布了 OpenTiny&#…

使用VSCode SSH实现公网远程连接本地服务器开发的详细教程

文章目录 前言1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 前言 远程…

【二分】搜索旋转数组

文章目录 不重复数组找最小值,返回下标重复数组找最小值,返回下标不重复数组找target,返回下标重复数组找target,返回bool重复数组找target,返回下标 不重复数组找最小值,返回下标 class Solution {public …

Windows下 MySql通过拷贝data目录迁移数据库的方法

MySQL数据库的文件目录下图所示, 现举例说明通过COPY文件夹data下数据库文件,进行数据拷贝的步骤;源数据库运行在A服务器上,拷贝到B服务器,假定B服务器上MySQL数据库已经安装完成,为空数据库。 首先进入A服…

华为云渲染实践

// 编者按:云计算与网络基础设施发展为云端渲染提供了更好的发展机会,华为云随之长期在自研图形渲染引擎、工业领域渲染和AI加速渲染三大方向进行云渲染方面的探索与研究。本次LiveVideoStackCon 2023上海站邀请了来自华为云的陈普,为大家分…

百度“AI智障”到AI智能体验之旅

目录 前言一、百度PLATO1.抬杠第一名2.听Ta瞎扯淡3.TA当场去世了4.智障与网友的高光时刻 二、文心一言1.设计测试用例2.随意发问3.手机端约会神器 三、体验总结:四、千帆大模型 前言 最近收到了文心一言3.5大模型的内测资格,正巧之前也体验过它的前身&q…

Request对象和response对象

一、概念 request对象和response对象是通过Servlet容器(如Tomcat)自动创建并传递给Servlet的。 Servlet容器负责接收客户端的请求,并将请求信息封装到request对象中,然后将request对象传 递给相应的Servlet进行处理。类似地&…

SpringBoot入门篇1 - 简介和工程创建

目录 SpringBoot是由Pivotal团队提供的全新框架, 其设计目的是用来简化Spring应用的初始搭建以及开发过程。 1.创建入门工程案例 ①创建新模块,选择Spring初始化,并配置模块相关基础信息 ②开发控制器类 controller/BookController.jav…

短视频矩阵系统接口部署技术搭建

前言 短视频矩阵系统开发涉及到多个领域的技术,包括视频编解码技术、大数据处理技术、音视频传输技术、电子商务及支付技术等。因此,短视频矩阵系统开发人员需要具备扎实的计算机基础知识、出色的编程能力、熟练掌握多种开发工具和框架,并掌握…

全套解决方案:基于pytorch、transformers的中文NLP训练框架,支持大模型训练和文本生成,快速上手,海量训练数据!

全套解决方案:基于pytorch、transformers的中文NLP训练框架,支持大模型训练和文本生成,快速上手,海量训练数据! 1.简介 目标:基于pytorch、transformers做中文领域的nlp开箱即用的训练框架,提…

开源网安受邀参加软件供应链安全沙龙,推动企业提升安全治理能力

​8月23日下午,合肥软件行业软件供应链安全沙龙在中安创谷科技园举办。此次沙龙由合肥软件产业公共服务中心联合中安创谷科技园公司共同主办,开源网安软件供应链安全专家王晓龙、尹杰受邀参会并带来软件供应链安全方面的精彩内容分享,共同探讨…

政府网站定期巡检:构建高效、安全与透明的数字政务

在数字时代,政府网站已不仅仅是一个信息发布窗口,更是政府与公众互动的桥梁、政务服务的主要渠道以及数字化治理的重要平台。因此,确保政府网站的高效运行、信息安全与透明公开就显得尤为重要。在此背景下,定期的网站巡检与巡查成…

xfs ext4 结合lvm 扩容、缩容 —— 筑梦之路

ext4 文件系统扩容、缩容操作 扩容系统根分区 根文件系统在 /dev/VolGroup/lv_root 逻辑卷上,文件系统类型为ext4,大小为10G,现在要将其扩容成20G。 给空闲空间分区# 调整分区类型为LVM,也就是8e类型 fdisk /dev/sdb# 选定分区后使…

2023年高教社杯 国赛数学建模思路 - 案例:FPTree-频繁模式树算法

文章目录 算法介绍FP树表示法构建FP树实现代码 建模资料 ## 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就是频繁模式树算法&#xff0c…

JavaScript函数调用其他函数

在JavaScript中,函数可以调用其他函数。这通常被称为函数组合,它允许你通过将较简单的函数组合在一起来创建更复杂的功能。 例如:还是以之前的水果加工举例,但是现在我们需要输出,这个苹果有几块,橘子有几块…

计算机竞赛 基于大数据的时间序列股价预测分析与可视化 - lstm

文章目录 1 前言2 时间序列的由来2.1 四种模型的名称: 3 数据预览4 理论公式4.1 协方差4.2 相关系数4.3 scikit-learn计算相关性 5 金融数据的时序分析5.1 数据概况5.2 序列变化情况计算 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 &…

基于Java的旅游信息推荐系统设计与实现,springboot+vue,MySQL数据库,前后端分离,完美运行,有三万字论文。

基于Java的旅游信息推荐系统设计与实现,springbootvue,MySQL数据库,前后端分离,完美运行,有三万字论文。 前台主要功能:登录注册、旅游新闻、景区信息、美食信息、旅游线路、现在留言、收藏、预定旅游线路…

CAD打开对象捕捉设置的快捷键是什么?

CAD打开对象捕捉设置的快捷键是什么呢?今天就教大家如何操作。 方法 打开对象捕捉设置的快捷命令:SE。空格确定即可。 也可以输入快捷命令:DS也一样可以打开对象捕捉设置。血糖测试仪什么牌子好?盘点血糖检测仪的三大品牌! | 共…

visual studio 2022.NET Core 3.1 未显示在目标框架下拉列表中

问题描述 在Visual Studio 2022我已经安装了 .NET core 3.1 并验证可以运行 .NET core 3.1 应用程序,但当创建一个新项目时,目标框架的下拉列表只允许 .NET 6.0和7.0。而我在之前用的 Visual Studio 2019,可以正确地添加 .NET 核心项目。 …

【附源码】Axure RP Pro8.0安装教程|HTML|网页设计

软件下载 软件:Axure版本:8.0语言:简体中文大小:82.53M安装环境:Win11/Win10/Win8/Win7硬件要求:CPU2.0GHz 内存4G(或更高)下载通道①百度网盘丨下载链接:https://pan.baidu.com/s/…