

机器学习与计算机视觉(FPGA的图像处理方法)
source link: https://feixiaoxing.blog.csdn.net/article/details/105722745
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

机器学习与计算机视觉(FPGA的图像处理方法)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
在传统的图像处理过程中,很多算法都是由cpu来完成的。但是由于cpu是一条指令、一条指令来完成的,整个时间上处理比较长。因此如果在图像处理的过程中出现标定、噪声处理、hsv提取、灰度化、旋转、算子计算、二值化、膨胀、腐蚀多次操作之后,那么整个计算时间是挺长的,因为每次处理的时候都需要将循环处理每个像素值,时间上是非常可观的。所以,要想提高处理的速度,满足实时性能要求,要么cpu频率高一些,要么使用fpga、cuda、asic等处理方法来优化算法。
fpga目前的应用场合主要是硬件协议和算法。相比较具体的硬件协议,fpga在算法这一块的加速效果也是非常明显的。对于软件工程师来说,特别是嵌入式软件工程师来说,用fpga做算法是很好的一个选择。
1、fpga优化的基本原理
如果cpu是对单个像素进行处理,那么fpga可以并发同时处理多个像素,这是优化的关键。传统图像算法之间没有依赖关系,这也决定了并发处理多个像素的做法是可以的,也是可行的。
2、fpga可以适配哪些算法
基础的图像算法都可以用fpga进行优化,比如下面
A、灰化
B、RGB -> HSV
C、直方图
D、高斯噪声处理
E、均值计算
F、二值化
G、Canny算子计算类
H、差值运算
I、腐蚀、膨胀
J、FFT、DFT等算法
K、旋转
L、上下、左右翻转
M、图像差值计算等等
3、fpga不适宜的计算
除了传统经典的图像算法,fpga并不适宜那些复杂的算法,比如说区域查找、深度学习、rcnn、ssd、yolo等复杂的算法。这部分内容可以用cpu来完成,或者芯片厂商提供的sdk来加速完成,比如arm nn等等。
4、比较适合做实验的fpga平台
zynq,除了fpga,还有arm
5、fpga适合的应用场景
fpga整体成本略高,比较适合对处理性能有要求、同时价格不敏感的场景
6、可能代替fpga的方案
现在除了fpga之外,另外一个比较好的框架就是nvidia的cuda。cuda的处理思路和fpga比较类似,但是它设计起来比较简单,可以用类c的代码完成fpga需要的大部分功能。
7、将来的趋势
未来一段时间内,fpga、dsp、cuda、多核cpu、asic都会存在,关键取决于应用场景,每一种方案都有自己的优势。只是从成本来说,cuda可能会代替fpga,而asic最终会从所有方案中脱颖而出。
Recommend
-
17
机器学习与计算机视觉(被忽视的isp图像处理)
-
6
返回主目录 4 图像基本特效 4-1 图像特效介绍 图像特效分为以下几个,分别是: 毛玻璃效果4...
-
4
学fpga(hls之图像处理)
-
6
【计算机视觉】OpenCV 4高级编程与项目实战(Python版)【1】:图像处理基础 ...
-
9
fpga图像处理(基于camera的图像读取和显示)
-
16
fpga图像处理(基于sd卡图像读取和显示) ...
-
10
fpga图像处理(sobel算子)
-
13
fpga图像处理(二值化)
-
10
Java机器视觉:利用OpenCV进行图像处理和识别 作者:编程技术汇 2023-10-12 09:21:41 开发 Java可以通过OpenCV进行图像处理和识别,Op...
-
3
如果需要其他图像处理的文章及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPracti...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK