基于FPGA和机器视觉的车辆目标检测
发布时间:2020-06-05 08:31
【摘要】:近年来,各大企业和高校研究机构等都开始了对自动驾驶和深度学习技术的研究,车辆目标检测技术是自动驾驶技术里非常重要的环节,不仅需要考虑识别的准确率还需要考虑到算法性能。性能问题也是目前研究遇到的一个较大挑战,目前有两种手段提高算法的性能,一种是通过算法的优化如网络优化、参数简化等来实现软件加速,另一种则是通过选用运算能力强的载体实现硬件加速。首先研究将车辆目标检测的所有算法运行在PC的CPU上的情况,分析其各部分性能,探究其耗时较大且加速可行的部分进行硬件加速,经过研究最终对卷积神经网络运算部分采取硬件加速。然而考虑到自动驾驶场景中,GPU算法加速功耗高,不能保障车辆行驶中的节能性和安全性;ASIC算法加速的灵活性差,不能保障新算法的及时更迭。而FPGA载体可以集高灵活性、低功耗性及强大的运算能力于一体。本设计通过PC的CPU+SOC芯片的架构来研究对神经网络分类算法加速的性能提升,其中SOC采用的是Xilinx高性能芯片ZYNQ7035,其处理器部分负责与PC通过高速千兆以太网进行交互及数据流控制,其硬件逻辑部分则负责神经网络分类算法的硬件加速实现。本设计对数据流控制进行了一定的优化,使得数据的吞吐量得到了将近一倍的提升。本研究的重点是用FPGA对神经网络进行算法加速,包含彩色图像数据流串行转换及传输、卷积层、激活函数层、池化层及全连接层的各层运算。在参数上,保证对准确率和召回率影响很小的情况下,利用定点化来节省权值参数、偏置参数及运算结果的存储资源及运算资源。存储资源采用的是BRAM资源,用于存储训练好的权值参数及卷积运算的结果。运算资源采用的是DSP资源,本设计共占用800个DSP资源,可以并行同时进行800对权值参数和数据的定点相乘。编程中利用数据流控制、流水线思想、多模块并行、加法树、高速缓存等并行编程思想完成算法加速;利用定点化、资源分时复用等硬件编程思想完成面积优化;利用状态机独热码、寄存器分割等硬件编程思想完成时序优化。最终实现FPGA的卷积神经网络推断加速性能是ARM CPU的3224倍,Intel core i7-8750 CPU的15倍。由此可见FPGA对神经网络分类运算的加速效果较好;且其编程灵活性较高,在其他深度学习场景中只需更新权值参数及增加状态机即可针对其他神经网络运算进行加速;以及其功耗较低,可以在车辆检测场景中得到应用。
【图文】:
像素分布不均匀,随机性大,只能对特定形状的物体进行搜索,当一个物体具有多种尺度的时候,使用该算法进行计算的复杂度则会很高。一般的超像素图像分割方法:图像分割是指将图像按照颜色、亮度、纹理及位置详细划分为多个子区域图像的过程,这些子区域一般会保留物体的边界信息,这些划分出来的子区域又称为超像素[12]。以简单线性迭代聚类 SLIC 为例,这是基于聚类的一个超像素分割,不仅可以分割灰度图还可以分割彩色图像,可以人为的设置需要分割的超像素数量,但是本方法仅适用于对纹理简单且边缘清晰的物体进行分割,车辆的纹理一般较为复杂,通过此方法很难较好的分割车辆候选区域。选择性搜索[13](Selective Search,简称 SS):如图 2-2 是 SS 算法的效果图,其按照层次对图像分割的区域逐渐合并。它结合了穷举搜索和图像分割。与穷举搜索类似的是,它的目标是捕获所有可能的对象位置。而与图像分割类似的是,它是利用图像的各种特征为指引对图像进行细分。SS 算法并不是使用单一方法来产生可能的对象位置,而是用多种方法相互补充来进行图像搜索,以产生尽可能多的图像目标候选框。与穷举搜索相比,减少大量的候选框数量使得后续的神经网络不必处理大量的冗余信息,使得处理更加高效。
图 3-2 PS 中的硬件资源、外设、接口、控制器等3.2.3AXI 总线协议AXI 协议表示的是高级可拓展接口,他是 ARM AMBA 开发标准的一部分[23]。AMBA 标准本是 ARM 开发用于单片机的。2009 年的时候,Xilinx 与 ARM 合作为基于 FPGA 的高性能系统设计定义了 AXI4 规范,,并在其新一代 SOC 芯片上采用了 AMBA AXI4 协议。AXI 总线可以灵活使用,一般情况下用于处理器和硬件逻辑间的信息交互,AXI4 分为 3 类总线协议,根据具体情况选用合适的协议传输。AXI4 协议:用于存储器映射连接,AXI4 共包含 5 个不同的通道(读地址通道 AR、写地址通道 AW、读数据通道 R、写数据通道 W 和写响应通道 B),每个通道由一个信号集合所构成,并使用 valid 信号和 ready 信号握手机制保证数据的可靠传输。AXI4-Lite 协议:轻量 AXI 协议,是 AXI 的子集,专用于对硬件逻辑中的控制寄存器进行通信,这个接口的规模较小(不支持猝发通信、乱序传输、互斥操作等等),但是足以进行寄存器命令的传输。
【学位授予单位】:电子科技大学
【学位级别】:硕士
【学位授予年份】:2019
【分类号】:U463.6;TP391.41;TN791
本文编号:2697780
【图文】:
像素分布不均匀,随机性大,只能对特定形状的物体进行搜索,当一个物体具有多种尺度的时候,使用该算法进行计算的复杂度则会很高。一般的超像素图像分割方法:图像分割是指将图像按照颜色、亮度、纹理及位置详细划分为多个子区域图像的过程,这些子区域一般会保留物体的边界信息,这些划分出来的子区域又称为超像素[12]。以简单线性迭代聚类 SLIC 为例,这是基于聚类的一个超像素分割,不仅可以分割灰度图还可以分割彩色图像,可以人为的设置需要分割的超像素数量,但是本方法仅适用于对纹理简单且边缘清晰的物体进行分割,车辆的纹理一般较为复杂,通过此方法很难较好的分割车辆候选区域。选择性搜索[13](Selective Search,简称 SS):如图 2-2 是 SS 算法的效果图,其按照层次对图像分割的区域逐渐合并。它结合了穷举搜索和图像分割。与穷举搜索类似的是,它的目标是捕获所有可能的对象位置。而与图像分割类似的是,它是利用图像的各种特征为指引对图像进行细分。SS 算法并不是使用单一方法来产生可能的对象位置,而是用多种方法相互补充来进行图像搜索,以产生尽可能多的图像目标候选框。与穷举搜索相比,减少大量的候选框数量使得后续的神经网络不必处理大量的冗余信息,使得处理更加高效。
图 3-2 PS 中的硬件资源、外设、接口、控制器等3.2.3AXI 总线协议AXI 协议表示的是高级可拓展接口,他是 ARM AMBA 开发标准的一部分[23]。AMBA 标准本是 ARM 开发用于单片机的。2009 年的时候,Xilinx 与 ARM 合作为基于 FPGA 的高性能系统设计定义了 AXI4 规范,,并在其新一代 SOC 芯片上采用了 AMBA AXI4 协议。AXI 总线可以灵活使用,一般情况下用于处理器和硬件逻辑间的信息交互,AXI4 分为 3 类总线协议,根据具体情况选用合适的协议传输。AXI4 协议:用于存储器映射连接,AXI4 共包含 5 个不同的通道(读地址通道 AR、写地址通道 AW、读数据通道 R、写数据通道 W 和写响应通道 B),每个通道由一个信号集合所构成,并使用 valid 信号和 ready 信号握手机制保证数据的可靠传输。AXI4-Lite 协议:轻量 AXI 协议,是 AXI 的子集,专用于对硬件逻辑中的控制寄存器进行通信,这个接口的规模较小(不支持猝发通信、乱序传输、互斥操作等等),但是足以进行寄存器命令的传输。
【学位授予单位】:电子科技大学
【学位级别】:硕士
【学位授予年份】:2019
【分类号】:U463.6;TP391.41;TN791
【参考文献】
相关期刊论文 前1条
1 任薇;任明武;;面向车辆防撞的车底阴影检测方法[J];计算机工程与设计;2015年05期
相关硕士学位论文 前5条
1 周马莉;基于视觉的无人驾驶车前方车辆检测方法研究与实现[D];南京理工大学;2018年
2 黄海洋;面向大数据的CPU/GPU/FPGA计算平台研究[D];电子科技大学;2017年
3 王震宇;无人驾驶车辆换道控制方法研究[D];东南大学;2016年
4 丁乐乐;基于深度学习和强化学习的车辆定位与识别[D];电子科技大学;2016年
5 韵卓;基于DSP的道路前方车辆识别算法研究[D];吉林大学;2014年
本文编号:2697780
本文链接:https://www.wllwen.com/kejilunwen/dianzigongchenglunwen/2697780.html