模拟V1平台与算法硬件实现
1. 模拟V1平台相关内容
1.1 锥体滤波网络特性
在细胞(15, 15)(施加“脉冲”的位置)随时间变化时,输出幅度在空间上急剧衰减。这表明该网络的“首选输入”是一个占据小空间的快速闪烁点,证实了滤波器的高通特性。此外,从图12.15(a)到图12.15(c),时间特性(时间常数)随空间变化,即图12.15(c)中的响应衰减时间比图12.15(a)中的长,这证实了锥体滤波网络的时空不可分离特性。
1.2 视觉皮层感受野建模
Mineiro和Zipser提出了一个用于视觉皮层中简单细胞时空感受野的二阶(时间)模型。其在频域中的感受野由以下公式给出:
[
H_v(\omega_x,\omega_y) = \frac{\hat{T}
{\Omega_t}[\hat{X}
{1\omega_x,\omega_y}(1 + j\Omega_t - \hat{W}
{22\omega_x,\omega_y}) + \hat{W}
{22\omega_x,\omega_y}\hat{X}
{2\omega_x,\omega_y}]}{\hat{W}
{12\omega_x,\omega_y}\hat{W}
{21\omega_x,\omega_y} - (1 + j\Omega_t - \hat{W}
{11\omega_x,\omega_y})(1 + j\Omega_t - \hat{W}
{22\omega_x,\omega_y})}
]
其中,(\hat{T}
{\Omega_t})表示感受野时间轮廓的可分离部分,并且:
[
\hat{W}
{12\omega_x,\omega_y} = \hat{W}
{21\omega_x,\omega_y} = -Be^{-\frac{\sigma_m^2(\omega_x^2 + \omega_y^2)}{4\pi}}
]
[
\hat{W}
{11\omega_x,\omega_y} = -j\frac{v_0\tau}{2\pi}(\omega_x + \omega_y)e^{-\frac{\sigma_m^2(\omega_x^2 + \omega_y^2)}{4\pi}} = -\hat{W}
{22\omega_x,\omega_y}
]
[
\hat{X}
{1\omega_x,\omega_y} = -j\frac{C}{2}[e^{j\varphi}e^{-\frac{\sigma_x^2(\omega_x - \omega
{x0})^2 + \sigma_y^2(\omega_y - \omega_{y0})^2}{4\pi^2}} + e^{-j\varphi}e^{-\frac{\sigma_x^2(\omega_x + \omega_{x0})^2 + \sigma_y^2(\omega_y + \omega_{y0})^2}{4\pi^2}}]
]
[
\hat{X}
{2\omega_x,\omega_y} = -j\frac{C}{2}[e^{j\varphi}e^{-\frac{\sigma_x^2(\omega_x + \omega
{x0})^2 + \sigma_y^2(\omega_y + \omega_{y0})^2}{4\pi^2}} + e^{-j\varphi}e^{-\frac{\sigma_x^2(\omega_x - \omega_{x0})^2 + \sigma_y^2(\omega_y - \omega_{y0})^2}{4\pi^2}}]
]
这里,(B)、(C)、(v_0)、(\tau)、(\omega_{x0})、(\omega_{y0})、(\sigma_m)、(\sigma_x)、(\varphi)和(\sigma_y)是实常数。原方程(12.41)只有一个空间维度,这里将其扩展到了两个空间维度。方程(12.44)和(12.45)是通过对具有相位偏移(\varphi)的二维正弦调制的二维高斯函数进行傅里叶变换得到的。从(12.42)到(12.45),包含了高斯、高斯导数和类似Gabor的空间频率变量函数。
对于特定参数值,在((\omega_x,\omega_y) \in (-\pi,\pi] \times (-\pi,\pi])范围内,(12.42)和(12.43)可以近似为:
当(\sigma_m = \sqrt{2})时,
[
\hat{W}
{12\omega_x,\omega_y} = \hat{W}
{21\omega_x,\omega_y} \approx -\frac{B}{4}[2 + \Gamma_{1,0} + \Gamma_{0,1}]
]
当(\sigma_m = \sqrt{2})时,
[
\hat{W}
{11\omega_x,\omega_y} = -\hat{W}
{22\omega_x,\omega_y} \approx -jA(\Delta_{1,0} + \Delta_{0,1}), A = \frac{3.04v_0\tau}{2\pi}
]
其中,空间正弦函数的缩写为:
[
\Gamma_{\xi_x,\xi_y} = \cos(\xi_x\omega_x + \xi_y\omega_y)
]
[
\Delta_{\xi_x,\xi_y} = \sin(\xi_x\omega_x + \xi_y\omega_y)
]
方程(12.41)的分母可以近似为:
[
\frac{B^2}{16}(5 + 4\Gamma_{1,0} + 4\Gamma_{0,1} + \Gamma_{1,-1} + \Gamma_{1,1} + \frac{\Gamma_{2,0}}{2} + \frac{\Gamma_{0,2}}{2}) - A^2(1 - \frac{\Gamma_{2,0}}{2} - \frac{\Gamma_{0,2}}{2} + \Gamma_{1,-1} - \Gamma_{1,1}) - 1 + \Omega_t^2 - 2j\Omega_t
]
我们评估方程(12.50)的幅度,它是其实部(R_v)和虚部(I_v)的平方和:
[
R_v = \left[\frac{B^2}{16}(5 + 4\Gamma_{1,0} + 4\Gamma_{0,1} + \Gamma_{1,-1} + \Gamma_{1,1} + \frac{\Gamma_{2,0}}{2} + \frac{\Gamma_{0,2}}{2}) - A^2(1 - \frac{\Gamma_{2,0}}{2} - \frac{\Gamma_{0,2}}{2} + \Gamma_{1,-1} - \Gamma_{1,1}) - 1 + \Omega_t^2\right]^2
]
[
I_v = 4\Omega_t^2
]
当(\Omega_t)变化时,(12.51)的可视化结果表明,空间响应关于(\Omega_t = 0)线对称,未观察到时空方向选择性。这是因为(12.51)和(12.52)都是(\Omega_t)的偶函数,原(12.42)到(12.43)也是如此。因此,(12.41)中由于频域时空方向选择性导致的任何速度选择性纯粹是由分子项引起的。
使用关系(z_x^{\xi_x} = e^{j\xi_x\omega_x})和(z_y^{\xi_y} = e^{j\xi_y\omega_y})以及欧拉定理,将(12.46)和(12.47)用变量(z_x)和(z_y)表示,方程(12.41)的分母可以近似为以下时空传递函数(STTF)的频率响应:
[
\left[\frac{5B^2}{16} - 1 - A^2 + \frac{B^2}{8}(z_x + z_x^{-1} + z_y + z_y^{-1}) + (\frac{B^2}{32} - \frac{A^2}{2})(z_xz_y + z_x^{-1}z_y^{-1} + z_xz_y^{-1} + z_x^{-1}z_y) + (\frac{B^2}{64} + \frac{A^2}{2})(z_x^2 + z_y^2 + z_x^{-2} + z_y^{-2}) - 2p_t - p_t^2\right]^{-1}
]
这对应于一个具有一阶和二阶时间导数扩散到地的网络。
1.3 复杂细胞感受野建模
实现复杂细胞感受野的实用模型是通过组合一系列具有空间重叠(近似)但空间相位不同的神经元的结果得到的。带通时空滤波器可用于表示此类复杂细胞的线性部分。
可以使用基于空间频率相关的时间极点放置技术(SDTP放置技术)设计这种滤波器的复数形式,创建一个低通复数滤波器原型。Ip提出了SDTP技术的三维版本,然后可以应用频率移位方法创建一个复带通滤波器原型。基于两层TDCNN的SFG实现可用于复带通滤波器,一层的输出产生对称感受野响应,另一层产生反对称响应。两层方法的优点是复值带通滤波器的两层版本只需要与4个最近的细胞交互,从而简化了路由。
2. 算法硬件实现相关内容
2.1 算法硬件映射概述
这里考虑两个案例研究,将算法映射到硬件。目标硬件平台是现场可编程门阵列(FPGA),它具有细粒度并行性和可重构性,能为许多应用提供加速。
2.2 案例一:生物启发的复杂可转向小波实现
将一种新颖的、受生物启发的复杂可转向小波实现映射到可重构逻辑。这种小波构造将图像进行子带分解,分解为方向和尺度选择性通道,用于分析目的。该构造利用极可分离函数,使得方向选择性可以独立于径向频率(或尺度选择性)指定。由于它受生物启发且实现所需的内核数量少,因此能实现高效的硬件设计。
2.3 案例二:人脸认证算法加速
研究的算法是迹变换,它用于人脸认证任务并取得了较好的认证率。但该变换的计算复杂度高,限制了其在实际环境中的应用。不过,其固有的并行性可以在硬件实现中被利用,从而加速算法。
2.4 FPGA介绍
FPGA于1984年首次推出,是一种半导体设备,在制造后可以编程执行操作。它包含可编程的逻辑和互连组件,可编程逻辑可配置执行各种功能,可编程互连负责连接不同组件以实现更复杂的功能。
FPGA的构建块通常包含一个具有四个输入的查找表(LUT)、一个触发器和一些支持逻辑。最初,FPGA只有可编程逻辑和互连,后来为了满足更强大设备的需求和进入DSP市场,FPGA供应商在设备中添加了嵌入式乘法器、嵌入式随机存取存储器(RAM)模块。如今,高端FPGA中的嵌入式乘法器被DPS块取代,一些设备还包含硬核处理器。
FPGA的细粒度并行性和可重构性使其成为许多应用加速的理想选择。最初,FPGA被用作快速原型开发设备,随着ASIC制造成本的增加,FPGA在很多情况下成为了目标平台。
以下是FPGA发展历程的一个简单表格:
| 发展阶段 | 主要特点 |
| ---- | ---- |
| 初始阶段 | 只有可编程逻辑和互连 |
| 发展阶段 | 添加嵌入式乘法器、嵌入式RAM模块 |
| 高端阶段 | 嵌入式乘法器被DPS块取代,部分含硬核处理器 |
下面是一个简单的mermaid流程图,展示算法映射到FPGA的基本流程:
graph LR
A[算法选择] --> B[分析算法并行性]
B --> C[划分算法为并行块]
C --> D[映射到FPGA]
D --> E[测试和优化]
2.5 算法在FPGA上的具体映射过程
2.5.1 复杂可转向小波实现的映射
将复杂可转向小波实现映射到FPGA时,具体步骤如下:
1.
算法分析
:
- 对复杂可转向小波算法进行深入研究,明确其利用极可分离函数进行子带分解的原理,确定方向和尺度选择性通道的计算方式。
- 分析算法中各个计算步骤的依赖关系和并行性,找出可以并行执行的部分,例如不同方向和尺度的通道计算可能可以并行进行。
2.
硬件资源规划
:
- 根据算法的复杂度和所需的计算量,规划FPGA上的资源使用。确定需要多少查找表(LUT)、触发器、嵌入式乘法器或DPS块等资源来实现算法。
- 考虑数据存储需求,规划嵌入式RAM模块的使用,确保数据能够高效地存储和读取。
3.
模块划分
:
- 将算法划分为多个功能模块,例如子带分解模块、方向选择模块、尺度选择模块等。每个模块负责完成特定的计算任务。
- 设计模块之间的接口,确保数据能够在模块之间正确传输和共享。
4.
代码编写与综合
:
- 使用硬件描述语言(如Verilog或VHDL)编写每个模块的代码。在代码中,充分利用FPGA的并行性,实现算法的高效执行。
- 对编写好的代码进行综合,将其转换为FPGA可以实现的逻辑电路。在综合过程中,优化代码以减少资源占用和提高运行速度。
5.
布局布线与配置
:
- 进行布局布线,将综合后的逻辑电路放置在FPGA的物理资源上,并确定各个模块之间的互连方式。
- 生成配置文件,将配置文件下载到FPGA中,使FPGA按照设计的算法进行工作。
2.5.2 人脸认证算法(迹变换)的映射
对于人脸认证算法(迹变换)在FPGA上的加速,具体操作步骤如下:
1.
算法复杂度分析
:
- 详细分析迹变换算法的计算复杂度,找出计算量较大的部分,例如矩阵运算等。
- 确定算法中的并行性,例如矩阵的不同行或列的计算可以并行进行。
2.
并行架构设计
:
- 根据算法的并行性,设计适合FPGA的并行架构。可以采用流水线架构、多处理器并行架构等,提高算法的执行速度。
- 设计数据的流动方式,确保数据能够高效地在各个处理单元之间传输。
3.
硬件资源分配
:
- 根据并行架构的需求,分配FPGA上的资源。合理使用LUT、触发器、嵌入式乘法器或DPS块等资源,以实现算法的加速。
- 考虑数据存储和缓存的需求,分配足够的嵌入式RAM模块来存储中间结果和数据。
4.
代码实现与优化
:
- 使用硬件描述语言编写算法的代码,实现设计好的并行架构。在代码中,注意优化数据的访问和处理,减少延迟。
- 对代码进行优化,例如采用更高效的算法实现、减少不必要的计算等,提高硬件的利用率和算法的执行速度。
5.
测试与验证
:
- 在FPGA上对实现的算法进行测试,使用实际的人脸数据进行验证。检查算法的正确性和加速效果,确保认证率符合要求。
- 根据测试结果,对算法和硬件设计进行调整和优化,进一步提高性能。
2.6 映射结果分析
2.6.1 速度提升
与软件实现相比,将算法映射到FPGA上通常可以获得显著的速度提升。例如,复杂可转向小波实现和人脸认证算法(迹变换)在FPGA上的执行速度可能比软件实现快数倍甚至数十倍。这是因为FPGA的细粒度并行性允许算法中的多个计算任务同时执行,大大缩短了整体的计算时间。
2.6.2 误差分析
在硬件实现中,由于采用了固定点表示,可能会引入一定的误差。需要对系统中插入的误差进行分析,评估误差对算法性能的影响。例如,在人脸认证算法中,误差可能会影响认证率,需要通过调整硬件设计或算法参数来减小误差,确保系统的准确性。
2.7 应用示例
2.7.1 复杂可转向小波实现的应用
复杂可转向小波实现可以应用于图像分析领域,例如图像特征提取、图像分类等。通过将图像分解为方向和尺度选择性通道,可以提取出图像的重要特征,用于后续的分析和处理。在实际应用中,FPGA上实现的复杂可转向小波算法可以快速处理大量的图像数据,提高分析效率。
2.7.2 人脸认证算法的应用
人脸认证算法(迹变换)在安防、门禁系统等领域有广泛的应用。通过在FPGA上加速该算法,可以实现实时的人脸认证,提高系统的安全性和响应速度。例如,在门禁系统中,能够快速准确地识别人员身份,允许合法人员进入,阻止非法人员进入。
以下是算法映射到FPGA的优势总结表格:
| 优势 | 说明 |
| ---- | ---- |
| 速度提升 | 利用FPGA的并行性,显著缩短算法执行时间 |
| 可重构性 | 可以根据不同的算法需求重新配置FPGA |
| 资源高效利用 | 合理分配FPGA资源,提高资源利用率 |
下面是一个mermaid流程图,展示算法在FPGA上的应用流程:
graph LR
A[数据输入] --> B[FPGA算法处理]
B --> C[结果输出]
C --> D[应用场景(如图像分析、人脸认证)]
综上所述,将算法映射到FPGA上是一种有效的加速方法,可以提高算法的执行效率和应用的实时性。通过合理的设计和优化,可以充分发挥FPGA的优势,实现高效的硬件计算。在实际应用中,需要根据具体的算法和需求,选择合适的映射方法和硬件资源,以达到最佳的性能和效果。
超级会员免费看
1572

被折叠的 条评论
为什么被折叠?



