Vivado HLS实现Canny边缘检测硬件加速实现方法.doc
《Vivado HLS实现Canny边缘检测硬件加速实现方法.doc》由会员分享,可在线阅读,更多相关《Vivado HLS实现Canny边缘检测硬件加速实现方法.doc(6页珍藏版)》请在三一文库上搜索。
1、Vivado HLS实现Canny边缘检测硬件加速实现方法摘要:针对Canny边缘检测算法在实时图像处理过程中运算耗时长、数据运算量大的缺点,研究了利用Vivado HLS实现Canny边缘检测算法的硬件加速方法。该方法由FPGA的逻辑资源生成算法对应的RTL级硬件电路,实现算法硬件加速。实验结果表明,该方法能快速实时检测图像边缘,有效降低FPGA设计图像算法的难度,可以应用到实时视频图像处理中。0 引言边缘检测是图像特征提取、目标识别的基础,图像边缘提取的好坏直接影响后续处理的难易度和准确度。在众多边缘提取算法中,Canny边缘提取算法由于其良好的检测效果在图像处理中得到广泛应用。而现阶段的
2、工业视觉检测中,图像处理多为PC平台或者ARM平台,在这些平台下,Canny边缘检测由于计算量大、耗时长,对平台本身性能要求也很高。FPGA凭借高速并行性的特性,在进行图像处理时能很好地保证系统的实时性,因此越来越多开发人员使用FPGA进行图像处理1-3。但在现有的文献中,有些受FPGA的历史功能设计局限,过多地关注FPGA底层设计,有些采用中值滤波、改进高斯滤波模板进行Canny边缘检测,设计周期较长,硬件加速效果不明显。武汉科技大学彭习武等采用了Xilinx公司的Vivado HLS(高层次综合)实现改进的Sobel边缘检测4,取得了较好的实时检测效果,但需选择不同的结构元素对不同的目标图
3、像进行膨胀腐蚀,算法占用硬件资源较多。本文采用Vivado HLS实现Canny边缘检测硬件加速实现方法,研究通用性好、设计周期短、硬件资源消耗少的FPGA加速算法。1 Canny算法基本原理Canny边缘检测5算法是CANNY J于1986年提出的,算法目标是在图像中找到最佳边缘。其主要步骤为:(1)图像高斯滤波:对原始图像进行高斯滤波,降低输入图像中的噪声对后续图像处理的干扰,有效提升算法抗噪能力。(2)梯度计算:选择Sobel的水平与垂直方向33窗口模板算子与图像阵列进行计算,原始图像为I(i,j),得到水平与垂直方向的偏导数,水平、垂直方向梯度偏导数分别为Gx和Gy:(3)非极大值抑制
4、:遍历图像,若像素点的幅值大于其梯度方向的幅值,则可能为边缘点;否则不是边缘,对其进行抑制。(4)双阈值处理:通过设定阈值Th、Tl(一般情况下Tl=0.4Th),抑制后的图像像素梯度值大于Th的是边缘点,小于Tl的一定不是边缘点,如果处于两者之间,判断当前像素的邻域像素中是否有边缘点,若有,则为边缘点,否则就不是边缘。2 Vivado HLS实现方式Vivado HLS是Xilinx公司推出的加速数字系统设计开发工具,直接使用C+、C+或SystemC开发的高层描述来综合数字硬件,替代用VHDL或Verilog实现FPGA硬件设计6,实现设计的功能和硬件分离,不需要关心低层次具体细节,具有很
5、强的灵活性,有效降低数字系统设计开发周期。Vivado HLS在算法优化指标和FPGA硬件设计方式指标是一致的:(1)面积,算法硬件资源使用的数量;(2)速度,硬件电路处理数据的速率。一般的设计是对两者之间的特殊需求进行优化,得到合理的方案。2.1 Vivado HLS设计流程Vivado HLS设计流程如图1所示。C代码设计和C测试集设计是HLS设计流程的输入;C功能性验证能确保代码功能的完整性;高层综合能产生所需的各个设计文件;C/RTL协同仿真可以进行预期值与输出的对比;设计迭代是通过不断地调整指令得到预期需要的优化设计,在不改变C代码的情况下,由优化指令转化成小面积高吞吐率的RTL电路
6、7;最后RTL电路被综合成FPGA逻辑模块。2.2 Vivado HLS图像实时加速Vivado HLS图像实时加速设计的方式如图2所示。视频流进入FPGA后,由AXI4-Stream协议将数据流转换为HLS视频库下的hls:Mat格式,在进行对应的图像FPGA加速处理后,将hls:Mat格式重新转换为AXI4-Stream数据流。Vivado HLS提供了以下几个方面功能对图像视频处理建模8:(1)内存行缓存(Memory Line Buffer);(2)内存窗口缓存(Memory Window Buffer);(3)视频数据支持格式类型;(4)视频函数库。HLS内存行缓存实质是能存储多行像
7、素数据的多维移位寄存器9,而窗口缓存是行缓存的一个子集,这两种存储结构一般被综合为Block RAM,并且行缓存的宽度决定了图像算法能进行硬件加速的最大图像宽度。Vivado HLS对一帧图像像素的遍历是通过创建上述两种缓存实现的,图3是遍历图像像素的计算内核路径。Vivado HLS下图像处理基于视频流访问,因此,基于随机存储访问的图像处理方式需要进行转换,综合为FPGA处理下的图像数据流处理方式,实现图像算法的硬件加速。3 Vivado HLS实现Canny边缘检测根据Vivado HLS设计流程,Canny边缘检测的硬件加速实现流程如图4所示。3.1 图像数据流输入图像数据通过AXI4-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Vivado HLS实现Canny边缘检测硬件加速实现方法 HLS 实现 Canny 边缘 检测 硬件加速 方法
链接地址:https://www.31doc.com/p-3274849.html