百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

「学术论文」基于Sobel算法图像边缘检测的FPGA实现

bigegpt 2024-10-06 02:45 25 浏览

摘要:

针对嵌入式软件无法满足数字图像实时处理速度问题,提出用硬件加速器的思想,通过FPGA实现Sobel边缘检测算法。通过乒乓操作、并行处理数据和流水线设计,大大提高算法的处理速度。采用模块的硬件设计,保证了系统的可移植性和系统的扩展性。最后使用Verilog HDL编程实现算法处理,并用Modelsim和MATLAB进行了仿真和验证。

中文引用格式:杜正聪,宁龙飞. 基于Sobel算法图像边缘检测的FPGA实现[J].电子技术应用,2016,42(10):89-91,95.

英文引用格式:Du Zhengcong,Ning Longfei. Image edge detection based on Sobel algorithm in FPGA implementation[J].Application of Electronic Technique,2016,42(10):89-91,95.

?

0 引言

图像的边缘检测是数字图像处理领域的一项关键技术,是图像分割、运动检测、目标跟踪、人脸识别等技术的基础[1]。随着电子信息技术的高速发展,图像的边缘检测在航天、工业、医学、军事等领域有着广泛的应用和发展[2]。在这些应用中,通常选用ARM和DSP等作为处理器,通过嵌入式软件来处理信息,但随着待处理信息量越来越大,算法复杂度越来越高,单核处理器处理速度已不能满足某些系统的需求。

本文在研究Sobel算法[3]的基础上,针对嵌入式软件无法满足实时数据处理速度的要求,引入硬件加速器的思想,采用RAM+FPGA硬件结构,通过嵌入式软件提供从机接口,控制加速器进行工作,硬件加速器(FPGA)通过模块化设计,采用流水线设计和乒乓操作大幅提高实时处理数据速度,实现图像的边缘检测。从机接口一般通过嵌入式软件读写寄存器来完成。

1 边缘检测和Sobel算法

边缘检测是分析视频和图像的重要方法,主要检测和确定图像在哪些区域上亮度发生突变,这些亮度突变的区域通常就是物体的边缘。

以灰度图像为例,分辨率为M×N的图像由M×N个像素组成。Sobel 检测法把中心像素点和离它最近的8个像素点每个乘以一个系数后相加,类似卷积的过程来估计每个像素点x、y方向上的导数值。该系数通常用一个卷积表(Convolution Mask)来表示。分别用于计算x和y方向导数值的Sobel卷积表Dx和Dy如下所示[4]

把每个像素值分别乘以卷积表中对应的数,再把相乘得到的9个数相加就得到了x方向和y方向的偏导数值Dx和Dy。然后,利用这两个偏导数值计算中心像素点的导数。

计算公式如下:

由于开平方和平方函数都是单调的,实际计算幅度的最大值、最小值与近似以后计算的最大值、最小值发生在图像的同一个地方。并且,与计算平方和开平方相比,计算绝对值所用的硬件资源少得多。若要找到导数幅值的最大值和最小值,对式(1)作如下简化:

需要重复地计算图像中每个像素位的导数幅值。但是,注意到环绕图像边缘的像素点并没有一个完整的相邻像素组来计算偏导数和导数,所以要对这些像素进行单独处理。最简单的方法就是把图像中边缘像素点的导数值|D|设置为0。

2 Sobel边缘检测法的硬件实现

2.1 Sobel加速器结构

硬件加速实质上是通过增加运算并行性达到加速的目的,常常采用硬件复制和流水线的方法。

边缘检测加速器系统的原理框图如图1所示。视频或图像数字信号通过 I/O 控制器输入,保存在存储器中;在RAM处理器控制下运行的硬件加速器,读入存储器中存储的帧图像(数据),并进行边缘检测算法实现,最后将得到相应的导数图像写入存储器。在实际应用中,选取硬件加速器对时耗大的算法进行加速,大大降低其他处理器(如 DSP、ARM 等)的负担。

I/O控制器和加速器通过DMA(Direct Memory Access)方式直接发起对内存的访问而不通过处理器,大大加快访问内存的速度。为避免多个设备同时访问内存发生冲突,在系统中引入仲裁器。仲裁器的仲裁策略为:唯一申请者获得资源。这样,ARM(CPU)对加速器进行配置,配置待处理数据源地址和目标地址,然后启动加速器,释放总线资源;ACC在接收到启动命令之后,要申请资源,完成算法实现后,用中断的方式反馈给RAM(CPU),同时释放资源。

2.2 基于FPGA的硬件加速器

图像边缘检测数据具有数据量大,可并行处理及重复操作等特点,用FPGA可实现硬件并行处理信息;通过流水线设计技术和乒乓操作的架构设计,可以进一步提高实现算法组合逻辑处理速度和系统处理信息的吞吐量,因此FPGA对处理图像边缘检测数据有着天然的优势。本文采用面向流处理的加速器处理按照顺序到达的数据流。

系统基于Altera公司的Cyclone IV系列FPGA,采用从顶向下模块化设计方法,利用攀岩法建模,具有良好的移植性和系统扩展性。图2为边缘检测实时处理图。

图3为硬件加速器模块设计图。设计中将系统数据流和控制流分开进行,这样在设计数据流时就不必在意数据何时输入何时输出的问题,而把这些问题转移到控制流设计阶段中去。在控制流设计阶段系统地考虑数据流的控制,将使得电路设计更加系统,修改更加方便。控制流的设计一般借助于状态机(FSM)。

以实现分辨率600×400的8 bit灰度图片为例,系统设计数据总线位宽32 bit,通过总线分时复用,分别从memory取数据,放置32 bit*_row_reg寄存器,为减少产生无效数据,增加硬件设计的复杂性,等待数据分别装满*_row_reg寄存器,才开始移位计算Sobel算子结果,这就造成移位时不能写入数据,写入数据时不能移位,产生大量的等待时间。本文通过插入*_row移位寄存器,把写数据和移位分开处理,实现系统的全线流水。

对于Sobel算法单元,为了节约资源和提高处理速度,有些设计采用分布式算法,利用查找表代替乘法器进行乘法运算[5],这样无法做到对任意随机数据的处理。本文为避免使用乘法器,通过移位实现乘法运算。数据流水进入产生的无效数据设置为左边界,数据流水排除的无效数据设置为右边界,顶行和末行为无效行设置上下边界。图4为Sobel算法架构图。

3 系统仿真和结果分析

本文采用600×400的灰度图像作为研究对象,仿真和验证结果如图5所示。

通过MATLAB将灰度图片imag1.bmp(任意格式)处理转换成imag.txt文件,存储在Memory中,用Verilog实现Sobel算法,Modelsim仿真数据生成data.txt文件,再利用MATLAB将data.txt文件通过门限处理转换成图片tes.bmp。用MATLAB直接调用Sobel函数处理初始灰度模式图片,生成图片imag2.bmp,比较两图片,验证FPGA处理的正确性。

从仿真结果和实验所得图像来看,该设计很好地完成了Sobel算法的边缘检测任务,使用RAM+FPGA加速器结构,以50 MHz(实验仿真使用值)时钟驱动为例,处理一幅600×400图像,所需时间为19.2 ms,每秒可处理图像208幅,满足实时系统要求,解决单核处理器运算时间长的问题。解放控制单元去实现更复杂的控制和功能。

4 结论

本文基于FPGA引用硬件加速器思想,解决嵌入式软件无法满足信息的实时性处理问题,用Verilog编程硬件实现图像数字信号读写、Sobel算法实现,完成图像边缘检测;通过FPGA乒乓操作、并行处理和流水线设计完成数据量大、重复率高的图像边缘检测数据处理,大大提高了系统效率,达到了实时性要求。同时引用模块化的设计方法,自顶向下利用攀岩法建模,使得设计具有良好的可移植性和系统可扩展性,具有极大的实用价值。

参考文献

[1] 何俊峰.基于视觉原理的图像边缘检测算子研究[D].武汉:华中科技大学,2006.

[2] Yu Yuanhui,Chang Chinchen.A new edge detection approach based on image context analysis[J].SCI,Image and Vision Computing,2006,24:1090-1102.

[3] 林伟,周剑扬.图像边缘检测高速数字滤波器设计与实现研究[J].现代电子技术,2006(6):26-29.

[4] 吴海彬,何祖恩,李文锦.基于改进Sobel算子的图像边缘检测及其嵌入式实现[J].机床与液压,2009,37(10):133-136.

[5] 叶敏,周文晖,顾伟康.基于FPGA的实时图像滤波及边缘检测方法[J].传感技术学报,2007,20(3):623-627.

相关推荐

5分钟调色大片的方法(5分钟调色大片的方法有哪些)

哈喽大家好。在大家印象中一定觉得ps非常难学非常难。大家不要着急,小编的教学都是针对ps零基础的同学的,而且非常实用哦。只要大家跟着图文练习一两遍,保证大家立马学会~!好了,废话少说,下面开始我们今天...

闪白特效原来是这么用的(闪白特效怎么使用)

作者|高艳侠订阅|010-86092062闪白特效是影视作品中应用比较多的效果之一,那么具体该在哪些场景使用闪白特效?具体该如何操作?下面就以AdobePremiere(以下简称PR)为例,...

ppt常用小图标去哪里找?3个矢量素材网站推荐!

ppt是一个注重可视化表达的演示载体,除了高清图片,ppt中另一类常用的素材是各种小图标,也叫矢量图标,巧妙运用小图标能提升整体美观度和表现力,那么ppt常用小图标去哪里找呢?为方便各位快速找到合适的...

有什么好用的截图录屏工具?试试这9款

经常有朋友反馈苦于缺乏截屏和录屏的趁手工具,本期我们分享几个相当好用的截屏和录屏工具,希望能帮到大家。ScreenToGifScreenToGif是一款免费且开源的录屏工具。此款工具最大的特点是可以...

配色苦手福音!专业快速色环配色PS插件

今天橘子老师给的大家介绍的是一款快速配色的插件,非常强大配色苦手福音来啦!(获取方式见文末)【插件介绍】配色在后期设计中占有主导地位,好的配色能让作品更加抢眼Coolorus这款专业的配色插件,能够...

如何用PS抠主体?(ps怎么抠主体)

1.主体法抠图-抠花苞和花梗导入一张荷花苞的照片,点击上图中顶部“选择”菜单栏,下拉单击“主体”。可以看到,只有花苞被选中,但是花梗并没有被选中。接下来单击上图中左侧工具栏的“快速选择工具”,上图中顶...

2799元的4K电视,有保障吗?(买4k电视机哪个品牌好)

在上一期《电脑报》的3·15专题报道中,我们揭露了一款不靠谱的42英寸4K智能电视——TCLD42A561U。这款售价2699元的4K智能电视不仅4K画质方面存在严重问题,而且各种功能和应用体验也不理...

苹果电脑的Touch Bar推出一段时间了 这款工具可以帮你开发适用于它的APP

距离苹果推出带有TouchBar的MacBookPro已经有一段时间了,除了那些像Adobe、Google和Microsoft大公司在开发适用于TouchBar的应用之外,其实还有很多独立的开...

如魔法般吸取颜色的桌灯(如魔法般吸取颜色的桌灯叫什么)

色彩为生活带来的感官刺激,逐渐被视为理所当然。一盏桌灯运用它的神奇力量,将隐藏于物件中的颜色逐一释放,成为装点环境的空间魔法师。ColorUp是一款可以改变颜色的吸色台灯,沿用传统灯泡的造型,融入了拾...

一篇文章带你用jquery mobile设计颜色拾取器

【一、项目背景】现实生活中,我们经常会遇到配色的问题,这个时候去百度一下RGB表。而RGB表只提供相对于的颜色的RGB值而没有可以验证的模块。我们可以通过jquerymobile去设计颜色的拾取器...

ps拾色器快捷键是什么?(ps2019拾色器快捷键)

ps拾色器快捷键是什么?文章末尾有获取方式,按照以下步骤就能自动获得!学会制作PS特效需要一定程度的耐心和毅力。初学者可以从基本的工具和技术开始学习,逐渐提高他们的技能水平。同时,观看更多优秀的特效作...

免费开源的 Windows 截图录屏工具,支持 OCR 识别和滚动截图等

功能很强大、安装很小巧的免费截图、录屏工具,提供很多使用的工具来帮我么能解决问题,推荐给大家。关于ShareXShareX是一款免费的windows工具,起初是一个小巧的截图工具,经过多年的迭...

入门到精通系列PS教程:第13篇 · 拾色器、颜色问题说明及补充

入门到精通系列PS教程:第13篇·拾色器、颜色问题说明及补充作者|侯潇问题说明我的第12篇教程里,有个小问题没有说清楚。要说是错误,又不算是错误,只是没有说准确。写完那篇教程后,因为已经到了深...

PS冷知识:用吸管工具吸取屏幕上的任意颜色

今天,我们给大家介绍PS中的一个冷知识:用吸管工具可以吸取屏幕上的任意颜色。其实,操作起来是非常简单的。大多数情况下,我们认为,PS的吸管工具只能吸取PS软件作图区域范围内的颜色,最多加上画布四周的...

Windows 11 将提供内置颜色选择器工具

Windows11内置了颜色选择器,可以扫描并识别屏幕上的颜色并生成颜色代码。此外,微软还利用人工智能技术,让屏幕上的文本扫描和选择变得更加便捷。这两项功能均已在SnippingToolv1...