基于FPGA的均值滤波(一)

均值滤波的数学表达式列出:

由上述公式列出求图像均值的步骤:

(1)获取当前窗口所有像素。

(2)计算当前窗口所有像素之和。

(3)将(2)结果除以当前窗口数据总数。

(4)滑动窗口到下一个窗口,直到遍历完整幅图像。

滤波采用滑动窗口方法实现整幅图的遍历,因此,采用流水线结构来设计是最合适的。对于流水线结构来说,每个像素的运算方法是一致的,需要考虑的只是边界像素的处理问题。

以5x5的均值滤波窗口为例,如上图所示,首先看一下二维窗口求和模块。

一般情况下,先将二维的计算步骤化为一维的操作。假设现在完成第一行的求和操作,接下来需要“等”下一行的求和操作完成。在FPGA中,等待的实现方法就是进行缓存。二维操作转换为一维操作后的结构如下图所示:

接下来的问题就是如何进行一维向量求和,对于1x5的向量求和而言,当前数据需要“等到”下4个数据到来之后才能得到连续5个数据,并执行加法操作。以及预期的是,还是需要把前几个数据单独缓存起来,一个指定位宽的寄存器即可满足要求。同步5个连续的输入数据如下图所示。

最后的问题是求取窗口的均值,需要将上述计算出来的和除以一个归一化系数,也就是整个窗口的像素数目。在FPGA里卖弄不直接进行除法操作,而是通过近似的乘加方法来实现。

原文发布于微信公众号 - 瓜大三哥(xiguazai_tortoise)

原文发表时间:2017-08-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏CreateAMind

DeepMind时间序列生成模型

使用vae推理;lstm 时间相关建模;external memory加强记忆;和神经图灵机 可微分计算机等进行比较。

1302
来自专栏目标检测和深度学习

手把手教你搭建目标检测器-附代码

1272
来自专栏机器学习算法原理与实践

支持向量机原理(四)SMO算法原理

  在SVM的前三篇里,我们优化的目标函数最终都是一个关于$\alpha$向量的函数。而怎么极小化这个函数,求出对应的$\alpha$向量,进而求出分离超平面我...

1022
来自专栏数值分析与有限元编程

坐标映射

建立等参单元,需要另外一个自然坐标系下的参考单元。对于物理坐标系下的任意一点,在自然坐标系下的参考单元中,有唯一的一个点与之对应;反过来对于自然坐标系下参考单元...

3054
来自专栏AI研习社

TensorFlow | 自己动手写深度学习模型之全连接神经网络

前半个多月总共写了三篇深度学习相关的理论介绍文章,另外两个月前,我们使用逻辑回归算法对sklearn里面的moons数据集进行了分类实验,最终准确率和召回率都达...

55510
来自专栏云时之间

深度学习与神经网络:mnist数据集实现手写数字识别

对于mnist数据集,具体的一些介绍我这里就不搬运过来了,这里我直接说我们如何在TensorFlow上使用mnist数据集.

39311
来自专栏企鹅号快讯

用keras搭建3D卷积神经网络

资源: 3D卷积神经网络相关博客:http://blog.csdn.net/lengxiaomo123/article/details/68926778 ker...

7407
来自专栏大数据智能实战

tensorflow 1.01中GAN(生成对抗网络)手写字体生成例子(MINST)的测试

为了更好地掌握GAN的例子,从网上找了段代码进行跑了下,测试了效果。具体过程如下: 代码文件如下: import tensorflow as tf from ...

51710
来自专栏生信小驿站

无监督学习 聚类分析②划分聚类分析

同样是聚类分析,上一次介绍的是层次聚类分法,这种方法输出的聚类树状图是其最大的优点,但是层次分析法的缺点就在于适合的样本数比较小,大概在150个左右。所以,当我...

931
来自专栏用户2442861的专栏

python pyplot accuracy cost曲线绘制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haluoluo211/article/d...

1183

扫码关注云+社区

领取腾讯云代金券