基于FPGA的Sobel算子并行计算研究

合集下载

基于FPGA的Sobel算子图像边缘检测算法

基于FPGA的Sobel算子图像边缘检测算法
Ke y wo r d s : F P GA; S o b e l o p e r a t o r ; e d g e d e t e c t i o n; me g a f u n e t i o n
0 引言
二维 图像窗 口中央的像素灰度用 0来代替 。 图1 ( a ) 为一帧图像 的 3× 3区域 , P为 各点的灰 度值 , 图l ( b ) 和图 1 ( e ) 分别为 S o b e l 算子水平 、 垂直方 向梯度算子 。
o p e r a t o r a l g o i r t h m b a s e d o n Ah e r a DE 2 —7 0 w h i c h i n c l u d e d a C MOS 5 mi l l i o n p i x e l s c a me r a nd a LC D. T h e a l g o i r t h m w a s p r o —
由于图像的边缘 蕴含了丰富的内在信息 , 是图像 的基 本 特征之一 。图像边缘检测 不仅能减少 所处理 的, 又能保 留图
边缘检 测算法处理后 由液 晶显示器显示。算法采用 了可编程宏功 能模 块与 V e r i l o g H D L语 言相结合 的方法 实现 , 实验 结
果表 明 , 基于 F P G A的硬件 系统能够很好 的实现 S o b e l 算子边缘检 测算法 , 通过设 置合 适的梯 度比较 阀值 , 较 为理 想的提
YANG Xi n — h u a , KO U We i — g a n g
( 1 . C o l f e g e o f E l e c t r i c a l a n d I n f o r ma t i o n E n g i n e e r i n g , L nz a h o u Un i v e r s i t y o f T e c h n o l o g y , L nz a h o u 7 3 0 0 5 0 , C h i n a ;

基于Sobel算子的数字图像边缘检测与FPGA实现

基于Sobel算子的数字图像边缘检测与FPGA实现

a d i t g a e n aFP n n e r t d i GA h p o i n p r a c i f l x S a t n3 XC3 5 5 X i S 0- PQ2 . e sm u a e e u ti d c t st a h r s n e GA 08Th i l t d r s l n i a e h t e p e e t d FP t c i h p XC3 5 - P S 0 5 Q2 8 c n r n a 3 M Hzs e d F n ly t e e p rm e t 0 a u t1 4 p e . i a l , h x e i n sd n o t n ma e o 0 4 X 1 2 i e s Th wa o e t e a i g f 1 2 0 4 p x l. e
级 . 大 大 增 加 了设 计 过 程 和 最 后 工 程 的 灵 活 性 。 这
S b l . 检 测 算 子 结 合 了边 缘 检 测 和 平滑 算 子 . 其 在 o e: 缘  ̄ 使 嘈杂 的环 境 下 有 良 好 的 检 测 能 力 。因此 本 文 选 择 S b l o e算子 应
一二 、 Biblioteka e边 缘 检 测 原 理 sbl
图 像 边 缘 是 图 像 的 基 本 特 征 之 一 , 包 含 对 人 类 视 觉 它
直 是 一 个 难 题 。虽 然 DSP 备 指 令 流 水 线 特 性 和 很 高 的 具
t he Edge D e ec i i t lI a nd is r alza i t ton ofD gia m ge a t e i ton by FPG A ec t hni que bas d e on be SO lope a o r tr

FPGA实现图像的边缘检测:Sobel算子

FPGA实现图像的边缘检测:Sobel算子

FPGA实现图像的边缘检测:Sobel算⼦ “边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的⽬的是标识数字图像中亮度变化明显的点。

图像属性中的显著变化通常反映了属性的重要事件和变化。

这些包括(i)深度上的不连续、(ii)表⾯⽅向不连续、(iii)物质属性变化和(iv)场景照明变化。

边缘检测是图像处理和计算机视觉中,尤其是特征提取中的⼀个研究领域。

图像边缘检测⼤幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结构属性。

常⽤的边缘检测模板有Laplacian算⼦、Roberts算⼦、Sobel算⼦、log(Laplacian-Gauss)算⼦、Kirsch算⼦和Prewitt算⼦等。

”——百度百科《边缘检测》 Sobel算⼦是常⽤的边缘检测模板,算法⽐较简单,实际应⽤中效率⽐ canny 边缘检测效率要⾼,但是边缘不如 Canny 检测的准确,但是很多实际应⽤的场合,Sobel 边缘却是⾸选,尤其是对效率要求较⾼,⽽对细纹理不太关⼼的时候。

在技术上,Sobel 算⼦是⼀离散性差分算⼦,⽤来运算图像亮度函数的灰度之近似值。

在图像的任何⼀点使⽤此算⼦,将会产⽣对应的灰度⽮量或是其法⽮量。

Sobel 边缘检测通常带有⽅向性,可以只检测竖直边缘或垂直边缘或都检测。

Sobel边缘检测的核⼼在于像素矩阵的卷积,卷积对于数字图像处理⾮常重要,很多图像处理算法都是做卷积来实现的。

卷积运算的本质就是对指定的图像区域的像素值进⾏加权求和的过程,其计算过程为图像区域中的每个像素值分别与卷积模板的每个元素对应相乘,将卷积的结果作求和运算,运算到的和就是卷积运算的结果。

矩阵的卷积公式如下: ......我也没怎么看明⽩这公式,继续往下看吧。

⼀、实现步骤1、Sobel 提供了⽔平⽅向和垂直⽅向两个⽅向的滤波模板。

设 x ⽅向和 y ⽅向的卷积因⼦分别为 G x 和 G y,模板如下所⽰,A为原图像。

基于改进Sobel算子的实时边缘检测及其FPGA实现

基于改进Sobel算子的实时边缘检测及其FPGA实现

• 118•基于改进Sobel算子的实时边缘检测及其FPGA实现四川大学电子信息学院 代临风 邓洪敏提出了一种改进的Sobel 算子:在传统Sobel 算子的基础上,使用快速中值滤波滤除系统杂波、加入旋转模式下的CORDIC (Co-ordinate Rotation Digital Computer )算法,增加了Sobel 算子的模板数,使系统的检测精度提高、并利用双滤波器求出局部图像像素点的均值作为自适应阈值,提高了检测算法在局部图像特性上的适应性。

最后,将所提算法运用到FPGA 处理平台上,并进行图像边缘检测的验证。

实验结果表明,该方法提取得到的边缘更加精细,局部特性更好,抗噪声能力更强,且由于FPGA 的高主频和并行性,硬件资源的占用率大大降低,系统整体处理时间大大减少。

引言:随着电子、计算机领域工程技术的迅猛发展,图像边缘检测已经成为图像处理技术中关键的一项。

图像边缘是图像的基本特征([1]陆小锋,张俊豪,陆晓成,等.基于FPGA 的图像分块实时边缘检测系统[J].电视技术,2012,36(21):51-54),图像的边缘区域集中着大量的图像信息,具有不确定性,是图像中属性变换最为剧烈的一部分。

在许多的工程应用中我们都会用到图像的边缘处理作为基础从而进行之后的更为高级的图像处理,比如:人脸识别、车牌识别、手写体识别等。

在研究边缘检测算法时,通常采用基于图像强度的一阶或二阶导数,根据其变化规律和一定的检测规则,判定图像的边缘。

常见的边缘检测算子有Robert 算子,Sobel 算子、Prewitt 算子、Laplacian 算子、LOG 算子、Canny 算子等([2]米曾真,谢志江,陈涛,等.重轨图像增强与边缘提取的关键技术[J].光学精密工程,2012,20(7):1645-1652)。

但是导数很容易受到噪声的影响([5]毛星云,冷雪飞,等.OpenCV3编程入门[M].北京:电子工业出版社),因此必须在边缘检测算子中加入滤波器用以抑制噪声。

基于FPGA的Sobel算子的边缘响应算法实现

基于FPGA的Sobel算子的边缘响应算法实现

边缘检测算法主要用于地面复杂背景下的球 形目标检测,由于缺少地面背景和目标的有关灰 度信息方面的先验知识,可以确定利用的只有边 缘信息。边缘用于寻找区域的边界,利用图像函数 在单个像素的一个邻域处的特性来计算。因此,描 述边缘的检测算子可以用一阶或二阶偏导数来实 现。常用基于梯度的边缘检测方法,主要有Ro— bens、Sobel、Laplace算子。
缘方向。这个结果以19位数据形式输出,低16位 为数据位,高3位为模板号。
(3)数据存储模块B与数据存储模块A功能 相同,存储的数据是边缘响应的结果(低16位)并 带边缘方向(高3位),数据宽度为19位。数据的 存入和取出的设计中仍需注意尽量少地使用存储 空间,并要兼顾存人的数据不会覆盖未被取出的 数据和避免数据重复取出的情况。送给后面模块 做“非最大值抑制”时需10个数据为一组并行送 出,9个位于模板位置数据的数据位和位于模板中 间位置的数据的边缘方向。
·34·
航空兵器2007年第6期

二J麟黼.. =爪瓣 熏 16位数据
…….一q个1^待耕摇
串行输入 l璎AM广1出模块I
曦l 磊刨 }咧枷些趱赫户 jt
刊些筮矍l

::l匹疆蹦 板
计 算
一]模判块断l1
边缘响应结果及:
边缘方向输出!同iii百k
!I垦△丛r
数据 并行 输出
抑制结果 判断
—延 模
一1
—2
一l
—1

一l



一2





—1


图1 Sobel边缘算子(其余6个方向可通过简单旋转得到)
1 用SobeI算子实现边缘检测算法的步骤 基于sobel算子的边缘检测算法流程图如图2

基于FPGA的像边缘检测算法优化研究

基于FPGA的像边缘检测算法优化研究

基于FPGA的像边缘检测算法优化研究基于FPGA的边缘检测算法优化研究摘要:边缘检测是计算机视觉领域的重要技术,在图像处理、目标识别等领域有着广泛的应用。

然而,传统的边缘检测算法存在计算复杂度高、运算速度慢等问题。

本文基于FPGA硬件实现,通过对边缘检测算法进行优化,提高检测效率和准确性。

1. 引言边缘检测是计算机视觉领域中的一项基础任务,其目的是找到图像中灰度变化较大的位置,从而提取出图像中的边缘信息。

目前常用的边缘检测算法有Sobel算子、Prewitt算子、Canny算子等。

然而,这些算法在软件端实现时,计算复杂度较高,无法满足实时性要求。

因此,采用FPGA进行算法优化具有重要意义。

2. FPGA的优势FPGA(Field Programmable Gate Array)是一种可编程逻辑器件,具有高度并行处理能力和灵活性。

相比于传统的处理器,FPGA可以针对特定应用进行定制化设计,提供更高的计算性能和更低的功耗。

3. 算法优化技术为了提高边缘检测算法的运算速度和准确性,在FPGA上进行算法优化是必要的。

针对传统算法中的矩阵运算和逻辑判断等计算密集型操作,可以采用以下优化技术:3.1 并行计算利用FPGA的并行计算能力,将图像分割成多个小区域,在每个区域上同时进行边缘检测计算,将计算时间大大减少。

3.2 算法硬件化将边缘检测算法转化为硬件电路,并使用FPGA的可编程特性实现。

这样可以加速算法的执行速度,避免了软件运行时的瓶颈。

3.3 数据流水线通过将数据处理过程分解成多个流水级,使得数据多路复用,从而提高算法的数据处理能力。

4. 算法实现与测试我们选取了Canny算子作为基准算法,并在FPGA上进行优化实现。

通过对比传统软件实现和FPGA实现的运行时间和准确性,验证了FPGA在边缘检测算法优化方面的优势。

5. 实验结果与分析通过实验测试,我们得出了以下结论:(1)经过FPGA优化的边缘检测算法相比于传统软件实现,在运算速度上有了明显的提升,可以满足实时性要求;(2)FPGA实现的边缘检测算法在准确性上与传统软件实现基本保持一致;(3)与硬件电路相比,FPGA具有更高的灵活性和可重构性,可以适应不同的边缘检测算法需求。

基于FPGA的图像边缘检测Sobel算法的研究与实现

基于FPGA的图像边缘检测Sobel算法的研究与实现

基于FPGA的图像边缘检测Sobel算法的研究与实现作者:张伟来源:《电脑知识与技术》2014年第20期摘要:图像边缘是图像识别信息最集中的地方,Sobel算法是基于一阶导数的边缘检测,通过逼近导数来找到边缘。

FPGA(Field Programmable Gate Array)即现场可编程门列阵,是在可编程逻辑器件(Programmable Logic Device)基础上发展的一种产物。

该文即是采用FPGA技术实现基于Sobel算子的边缘检测算法。

关键词:图像边缘;FPGA;Sobel算法;边缘检测中图分类号:TP313 文献标识码:A 文章编号:1009-3044(2014)20-4810-03Research and Implementation of FPGA Image Edge Detection Based on Sobel AlgorithmZHANG Wei(School of Electronics and Information, Tianjin University, Tianjin 300000,China)Abstract: The image edge is the most concentrated place image identification information,Sobel algorithm is a derivative based edge detection, the derivative approximation to find the edge. FPGA (Field Programmable Gate Array) is a field programmable gate array, the programmable logic device (Programmable Logic Device) is a kind of product development based on. This paper is to realize Sobel operator edge detection algorithm based on the FPGA technology.Key words: image edge; FPGA; Sobel algorithm; edge detection图像边缘是图像特性(如像素灰度、纹理等)分布不连续处、图像周围特性有阶跃或屋脊变化的那些像素的集合,是图像识别信息最集中的地方[1]。

基于FPGA的Sobel边缘检测算法研究与实现

基于FPGA的Sobel边缘检测算法研究与实现
水文 监测 站 通 常 位 于偏 僻 地 区 ,工 作 环 境 恶 劣 ,因此 利用 机 器 代 替 人 工来 完 成 水 位 的 采 集 识 别成 为未 来 水域监 测 的发 展方 向 。在近 些年 来 的 研究 中 ,我 国科 研 人 员 已经提 出通 过 无 线 网络 进 行水 文监 测 ,但仍 需 工作人 员 在后 台值 守 ,智 能 化 有待 提高 。水 文 监 测 系 统 对 实 时性 的要 求 很 高 , 因此 对处 理 速 度要 求 很 严 苛 ,而 现 阶段 单 独使 用 软件 的方 法很 难满 足 需求 。
181
若 G大 于 阈值 ,则 该点 为边 缘 点 。梯 度 方 向

(2) 计算 式 为 :
用下 式计 算 得到 该点 的灰 度值 :
G=
(3)
但 为 了提高 运算 效率 ,经 常使 用绝 对值 计算 ,
即 :
Gl= I GxI+ l GyI
(4)
(5)
3 Sobel算 子边 缘检 测 的硬件 实现 3.1 硬件 系统结 构
FPGA具有 高 速 并 行 处 理 、高 性 能 及 灵 活 性 等特 点 ,可 以通 过 外 部 按键 改变 阈值 得 到 不 同的 处理 效果 。Sobel算 子 的优 势 在 于平 滑去 噪 ,对 水 文监 测处 理 有极 大 帮 助 。FPGA在 对 底 层 图像 进 行 处理 时 ,处 理速 度 得到 了提 升 ,符 合监 测 系统 所 需 的实 时性 要求 ,因 此 在视 频 图像 处 理 领 域 也 得 到 了广 泛 的使 用 。笔 者 以 Sobel算 子 为 基 础 ,对 阈值 的调整 方 式进 行 改进 ,使 它更 适 合 现 场 工 作 环 境 ,实 现 Sobel阈值 的 可调 性 ,同 时增 强 了它 在 监 控领 域 的应 用 性 。最 后 采 用 Verilog语 言 实 现 图像 的边 缘 检测 。 1 边缘检 测概 述

基于FPGA的并行计算技术

基于FPGA的并行计算技术

基于FPGA的并行计算技术基于FPGA的并行计算技术是利用现场可编程门阵列(FPGA)进行高性能并行计算的技术。

FPGA是一种自定义硬件的形式,它可以通过重新配置门电路来实现特定的计算任务。

相比于传统的通用处理器,FPGA具有可并行化、低功耗和高密度等优势,因此在并行计算领域具有广泛的应用。

首先,基于FPGA的并行计算技术能够充分利用FPGA的并行处理能力。

FPGA由大量的基本逻辑单元(Logic Slice)组成,每个逻辑单元都可以独立地进行计算操作。

这使得FPGA能够同时执行多个计算任务,实现真正的并行计算。

与传统的多核处理器相比,FPGA可以根据任务的要求灵活配置计算资源,从而有效提高计算效率。

其次,基于FPGA的并行计算技术可以通过数据流架构实现高效的数据并行处理。

数据流架构是一种基于数据依赖的并行计算模型,它将计算任务划分为多个具有数据依赖关系的子任务,并利用并行处理器同时执行这些子任务。

在FPGA上实现数据流架构,可以通过数据流图描述任务之间的数据依赖关系,并利用FPGA的高可编程性将数据流图映射到硬件逻辑上。

这种方式可以充分利用FPGA的并行计算能力,并通过数据流调度算法实现任务之间的流水线执行,从而提高计算效率。

另外,基于FPGA的并行计算技术还可以通过向量化计算实现高效的数据并行处理。

向量化计算是利用向量寄存器对数据进行并行处理的技术,在FPGA上可以采用SIMD(单指令多数据流)架构实现。

FPGA的可编程性可以使得向量寄存器的宽度和数量得以灵活配置,从而满足不同应用的需求。

通过向量化计算,可以充分发挥FPGA的并行计算能力,并实现高效的数据处理。

此外,基于FPGA的并行计算技术还可以通过硬件加速实现高性能的并行计算。

FPGA具有高度可编程性的特点,可以通过定制的硬件逻辑实现特定的计算任务。

对于一些计算密集型的应用,FPGA可以通过编写硬件描述语言(HDL)代码实现硬件加速,从而显著提高计算性能。

基于FPGA的图像处理算法性能优化研究

基于FPGA的图像处理算法性能优化研究

基于FPGA的图像处理算法性能优化研究随着科技的迅猛发展,图像处理技术日益成熟,应用范围也越来越广泛。

同时,硬件设备的性能越来越强大,让图像处理算法的效率得到了很大提高。

在这个背景下,基于可编程逻辑器件的图像处理算法性能优化研究也越来越受到关注。

FPGA是一种可编程逻辑器件,具有高度的灵活性和可重构性,能够实现图像处理算法的高效实现。

在进行图像处理时,FPGA主要通过滤波、边缘检测、二值化等操作来实现对图像的优化处理。

因此,针对这些算法,对FPGA进行优化是十分必要的。

在图像处理算法中,常用的算法有Sobel算子、Canny算子、Haar小波等。

针对这些算法,有不同的优化方案。

首先是针对FPGA资源的优化,包括硬件资源的合理利用和资源调度的优化。

其次是针对FPGA设计的优化,包括数据的流水线传输和数据存储的优化。

最后是针对算法自身的优化,针对复杂度较高的算法进行简化和分解,使得FPGA能够实现更高效的处理。

对于Sobel算子来说,可以通过对其实现过程进行完善,将其分解成多个简单的操作步骤。

同时,在对Sobel算子进行优化时,应该避免一些浪费性的操作。

例如,在计算中过程中可以避免使用乘法和除法,而是采用移位和加减。

这些简单的优化能够大幅度地提高Sobel算子的性能。

对于Canny算子,其主要是由高斯滤波、非极大值抑制、边缘检测等多个模块组成。

为了提高Canny算子的性能,可以采用串行化架构,将不同的模块拆分出来分别实现,然后利用DMA传输数据,尽可能减少处理时间。

在进行Canny算子优化时,还需要对不同模块进行精细的调度和流水线组织,以实现算法的高效处理。

除了Sobel算子和Canny算子,还有一些常用的图像处理算法需要进行优化。

例如,针对Haar小波变换,可以采用多级分解思路,将其分解成多级小波变换,进而实现大量数据的测量。

同时,对于一些内存操作应该进行优化,避免数据在内存之间的不必要拷贝和传输,以尽量减少处理时间。

219506018_基于FPGA_的多方向阈值自适应Sobel_算法实现

219506018_基于FPGA_的多方向阈值自适应Sobel_算法实现

第9期2023年5月无线互联科技Wireless Internet TechnologyNo.9May,2023作者简介:程伟涛(1998 ),男,安徽巢湖人,硕士研究生;研究方向:图像处理㊂基于FPGA 的多方向阈值自适应Sobel 算法实现程伟涛,郭来功,汪㊀强(安徽理工大学电气与信息工程学院,安徽淮南232001)摘要:Sobel 边缘检测技术是图像处理中最基本的技术之一㊂传统算法速度较慢且只有垂直和水平两个方向的梯度,对于一些其他方向的边缘检测效果不明显㊂文章设计了一种四方向(0ʎ,45ʎ,90ʎ,135ʎ)的Sobel 算法来提高边缘检测的准确性,针对传统Sobel 边缘检测算法阈值设置会出现偏差的缺点,基于中值滤波,采用自适应算法提高阈值准确性㊂本设计采用Verilog 语言编程㊂仿真结果表明:多方向阈值自适应Sobel 处理速度快,自适应阈值合理,边缘的完整性比传统方法有显著提高㊂关键词:Sobel ;自适应阈值;FPGA ;MATLAB 中图分类号:TP391㊀㊀文献标志码:A0㊀引言㊀㊀传统Sobel 算子只有水平和垂直两个方向[1]㊂传统Sobel 算法具有阈值无法自适应的缺点㊂本实验采用多方向的自适应阈值Sobel 算法[2],利用中值滤波的思想来实现自适应阈值㊂边缘检测在速度和准确性上,已经有多种提高方式[3]㊂应用单片机㊁数字信号处理芯片来进行图像处理,采用串行方式,实时性和系统性能并不理想[4]㊂因此,实验采用FPGA 的瞬时并行处理数据的特点,可以满足实时性要求[5]㊂FPGA 这一特性的处理速度远远快于软件处理平台[6]㊂1㊀传统Sobel 边缘检测㊀㊀传统Sobel 算子是一阶的边缘检测算子,采用的是x 和y 方向的两个3ˑ3的卷积因子,记为Gx 和Gy,卷积因子由图1所示㊂Gx 为垂直梯度方向,用于检测水平边缘;Gy 为水平梯度方向,用于检测垂直边缘[7],如图1所示㊂将x 和y 两个方向的卷积因子和原灰度图像对应位置的灰度值进行卷积,f (x ,y )为图像的矩形窗口,见公式(1)和(2)㊂图1㊀Gx(左)和Gy(右)卷积因子g x (x ,y )=ð1i =-1ð1j =-1G x (i ,j )ˑf (x +i ,y +i )(1)g y (x ,y )=ð1i =-1ð1j =-1G y (i ,j )ˑf (x +i ,y +i )(2)选取一个3ˑ3窗口的灰度值,记为:a 1㊁a 2㊁a 3㊁b 1㊁b 2㊁b 3㊁c 1㊁c 2和c 3㊂将它们和x ㊁y 方向的卷积因子分别进行卷积,得出结果就是x 和y 方向的灰度值,为g 1和g 2,根据公式(1)和(2)可得g 1和g 2的结果㊂根据公式(3)计算出这个3ˑ3的窗口的梯度值大小,记为G xy ㊂但是考虑到FPGA 的资源占用问题,本实验采用简单的绝对值求和的方式来计算最终的梯度值㊂如公式(4):G xy =g 12+g 22(3)G xy =g 1+|g 2|(4)实验计算出窗口的梯度值,然后进行图像分割㊂将公式(4)的结果和给出的阈值做比较,设阈值大小为T ,大于阈值的赋值为1,小于阈值的赋值为0㊂G =1,G xy >T 0,G xy <T{(5)2㊀改进的Sobel 算子2.1㊀四方向Sobel 算子㊀㊀传统Sobel 算子的检测方向只有x 和y 两个方㊀㊀向,当像素点其他方向的幅值较高,而x 和y 方向的幅值较低,传统算法无法检测到边缘点㊂本文在水平和竖直两个方向的基础上,增加了45ʎ和135ʎ两个方向,同样采用3ˑ3大小的窗口,全部4个卷积因子如图2所示,从左到右分别是0ʎ㊁45ʎ㊁90ʎ和135ʎ,分别记为G 1㊁G 2㊁G 3和G 4㊂将0ʎ㊁45ʎ㊁90ʎ和135ʎ方向的算子与目标窗口进行卷积,得到改进的梯度计算结果为记为g 1,g 2,g 3,g 4,见公式(8):图2㊀四方向算子㊀㊀g 1=(a 3+2b 3+c 3)-(a 1+2b 1+c 1)g 2=(c 1+2c 2+c 3)-(a 1+2a 2+a 3)g 3=(b 3+2a 3+a 2)-(c 2+2c 1+b 1)g 4=(a 2+2a 1+b 1)-(b 3+2c 3+c 2)ìîíïïïïïï(8)将所求的4个方向的差分的绝对值相加,即为最终的梯度值,如公式(9)所示㊂G xy =|g 1|+|g 2|+|g 3|+|g 4|(9)2.2㊀自适应阈值㊀㊀计算自适应阈值通常采用大津法或基于直方图的方法等,这一类的算法较为复杂,一般应用于软件实现,而在硬件上这一类方法不太容易实现㊂本文参考的是中值滤波的思想,考虑到图像灰度值都是非负数,所以比较大小对的方式可以直接使用有符号数减法来表示㊂同时,本研究对张琪等[5]的方法做出改进:第一步,在3ˑ3的窗口中,先将每一行按照从大到小的顺序排列,得到一个新矩阵㊂第二步,找出这个新矩阵第一列的最大值(MAX _MAX )和最小值(MAX _MIN ),第二列的中间值(MID _MID )以及第三列的最大值(MIN _MAX )和最小值(MIN _MIN )㊂第三步,找出第二步5个数值的中值,即为阈值T ㊂这种方法所需要比较的数值较多,步骤较为烦琐,因此对第二步做出改进㊂第二步中第一列的最大值就已经确定为第三步的最大值,同理第三列的最小值也是第三步的最小值,因此可以直接将这两个数值去掉,在MAX _MIN ,MID _MID ,MIN _MAX 中比较出中值㊂3㊀系统框架3.1㊀FIFO 数据处理㊀㊀Sobel 数据处理采用的FIFO 求和的思想㊂本实验选取一个3ˑ3的窗口数据,因此采用FIFO 来处理数据[8]㊂两个FIFO 的作用是缓存两行,可以得到三行数据㊂这里用到了FPGA 的流水线特性,其优点可以实现数据的无缝缓存和处理,不仅节约了缓存区空间,而且提高了数据流的处理速度[9]㊂将数据写入寄存器之后,需要将寄存器里的数据进行Sobel 处理,因此,再次定义一个读出标志信号,当行计数器计数到第三行的时候,将缓存的数据往外读出㊂对数据进行Sobel 运算和阈值计算㊂3.2㊀Sobel 模块㊀㊀数据由FIFO 进入Sobel 模块之后,由于时序信号需要延迟一个周期,因此,每一列的数据都会比前一列慢一个时钟周期,当FPGA 标志信号有效时,可以得出Sobel 计算所需要的9个数据㊂根据公式(8)和公式(9),计算出灰度值㊂模块由一个最高位判断框和一个数据选择器组成,当最高位是0时,表示正数,此时输出的绝对值就是本身,当最高位是1的时候,表示为负数,就需要对负数进行取反码再加一位㊂利用加法器和减法器计算出g1,g2,g3,g4,然后对这4个梯度值进行绝对值求和,所得结果为梯度值g xy㊂3.3㊀阈值自适应模块㊀㊀4个方向的Sobel算法抗噪能力并没有多高,因此使用自适应阈值尽可能地避免噪声的干扰㊂本实验根据中值滤波的原理,找出窗口的中值作为图像的阈值,这种方法相对简单,易于实现㊂实验利用FPGA 的并行特性,信号进入Sobel模块之后,分成两个方向,一个方向是进入Sobel灰度值计算模块,另一部分是进行阈值自适应㊂3.4㊀边缘判定模块㊀㊀边缘判定条件是阈值比较㊂计算所得的灰度值和自适应阈值模块给出的常数做出对比,大于这个常数,则判断为边缘,高电平为FF,显示为白色;小于或者等于给定的阈值,则判断不是边缘,为低电平00,显示为黑色㊂4㊀实验结果与分析㊀㊀本过FPGA对图像进行边缘检测㊂首先使用㊀㊀MATLAB2018a版本对图像进行预处理㊂所处操作环境是Windows10系统,CPU为i5-7300,GPU为1050Ti㊂采用的数据是一个大小为541ˑ541的Lena 灰度图㊂经过QuartusⅡ13.1软件编写Verilog HDL 语言来实现数据的传递㊁处理,通过Modelsim10.4和MATLAB双重验证算法的可行性㊂在Verilog的测试文件中,新建一个txt文件,将最终仿真的数据存入这个txt文件,然后在MATLAB中打开这个txt文件,得到最终的边缘检测图㊂图片选用的是一张541ˑ541的Lena图㊂实验结果如图3所示㊂从a,b,c,d依次是原灰度图㊁人为设置阈值为116的传统Sobel检测图㊁认为设置阈值为70的传统Sobel检测图以及改进之后的自适应阈值的Sobel检测图㊂结合原图发现,图3(a)对比图3(d),两者使用同样的阈值,有4处比较明显的边缘没有检测到,由图中红色圈标记可以看出㊂图3(c)和图3(d)也有3处比较明显的差距㊂总体来说都是在45ʎ和135ʎ方向上差距明显,边缘的完整性比两方向的Sobel检测算法好㊂在运算速度上, FPGA的所用时间约为0.05s,而传统Sobel时间约为2.63s,速度提升了50倍㊂5㊀结语㊀㊀本文分析了边缘检测的作用以及传统Sobel边缘㊀㊀图3㊀改进前后的对比检测算子的优缺点,并针对缺点做出两处改进㊂第一个改进就是将边缘检测的方向由x和y两个方向增加到0ʎ㊁45ʎ㊁90ʎ和135ʎ4个方向㊂第二个是对阈值设定做出改进,将原先的人为设置改成自适应阈值㊂在速度方面,结合FPGA并行特性和流水性,运行速度高于软件的运行速度,处理一张大小为541ˑ541的图片所用时间仅为0.05s,而软件平台的处理时间为2.6s,速度提升了50倍㊂对比传统Sobel算子,改进之后检测的边缘效果明显优于传统算法㊂参考文献[1]刘逢丁,曹杰,王营博,等.激光雷达距离像的实时边缘检测[J].光学技术,2021(4):404-409. [2]陈磊,叶焱.多方向自适应阈值边缘检测算法及FPGA并行实现[J].无线通信技术,2019(4):21-26.[3]ALMOMANY A,ALOMARI A M,JARRAH A,et al. An OpenCL-based parallel acceleration of a Sobel edge detection algorithm Using Intel FPGA technology[J]. South African Computer Journal,2020(1):3-26. [4]祁欣,陈剑锋,罗伟林.图像预处理算法的FPGA 实现[J].国外电子测量技术,2021(2):102-107. [5]张棋,贾方秀,殷婷婷.基于改进Sobel算法的实时图像边缘检测系统设计[J].仪表技术与传感器, 2018(2):101-104,108.[6]叶惠娇,冉全,成果.FPGA图像边缘检测系统的设计与实现[J].计算机应用与软件,2018(12):237-240,302.[7]谭媛,黄辉先,徐建闽,等.基于改进Sobel算子的遥感图像道路边缘检测方法[J].国土资源遥感,2016 (3):7-11.[8]SUDHARSHAN K M.Design of a Sobel Edge Detection Algorithm on FPGA[J].Turkish Journal of Computer and Mathematics Education(TURCOMAT), 2021(12):2458-2462.[9]陈鑫元,李筠,杨海马,等.自适应阈值图像二值化及形态学处理的FPGA实现[J].电子测量技术, 2016(7):67-71.(编辑㊀王永超)Implementation of multidirectional threshold adaptive Sobel algorithm based on FPGACheng Weitao Guo Laigong Wang QiangSchool of Electrical and Information Engineering Anhui University of Science and TechnologyHuainan232001 ChinaAbstract Sobel edge detection technology is one of the most basic technologies in image processing.The traditional algorithm is slow and has only two gradients in the vertical and horizontal directions.The effect of edge detection in some other directions is not obvious.This paper designs a four-direction0ʎ 45ʎ 90ʎ 135ʎSobel algorithm to improve the accuracy of edge detection.Aiming at the defect that the threshold setting of the traditional Sobel edge detection algorithm may deviate based on median filtering adaptive algorithm is adopted to improve the accuracy of the threshold.The design is programmed in Verilog language.The simulation results show that the multi-directional threshold adaptive Sobel processing speed is fast the adaptive threshold is reasonable and the integrity of the edge is significantly improved than the traditional method.Key words Sobel adaptive threshold FPGA MATLAB。

基于FPGA联合Sobel算法的实时图像边沿检测系统的设计与实现

基于FPGA联合Sobel算法的实时图像边沿检测系统的设计与实现

基于FPGA联合Sobel算法的实时图像边沿检测系统的设计与实现王晓娟;翟成瑞【摘要】边沿检测技术作为数字图像处理领域的重要一支,在目标匹配,交通管控,国防安全等多个领域有着广泛的应用,能够精确高效地实现边沿检测对于后续进行更高层次的图像识别以及图像处理有着密切的联系;为了实现实时有效的图像边沿检测提出了基于FPGA结合Sobel算法的实时图像边沿检测系统,硬件使用流水线结合并行处理的解决方案,能够有效提高图像处理的速度;算法设计采用Sobel算法,不但简化了运算同时获得了不错的检测效果;实验结果显示,系统可高效地达成实时图像边沿检测的设计目的,而且提升了图像的处理效率与边沿检测的效果,便于满足后续图像处理的要求.【期刊名称】《计算机测量与控制》【年(卷),期】2017(025)001【总页数】4页(P34-37)【关键词】FPGA;Sobel算法;图像边沿检测【作者】王晓娟;翟成瑞【作者单位】中北大学,太原030051;中北大学,太原030051【正文语种】中文【中图分类】TP3图像形状信息的边沿信息作为图像信息的重要组成部分,是图像的一个重要特征。

边沿检测是进行图像处理分析,计算机以及人类视觉和模式识别技术的重要前提,其不但可以减少图像处理的数据量,同时能够最大限度保留图像中物体的形状信息,当前已经在目标识别与跟踪,计算机视觉等领域获得了非常广泛的应用。

因而,研究设计出能够实时,准确,高效,稳定实现边沿检测的系统,对于图像处理具有极其关键的使用价值和理论意义[1]。

在实际工程需求中,图像的处理系统对于实时性的要求比较高,同时由于图像的数据量越来越大等问题,依靠单纯的软件系统来对图像进行实时处理已经显得力所不及,为此,采用FPGA或者DSP等硬件设备设计实时图像处理系统成为当前的主流[2]。

由于DSP仍然采用串行指令执行系统,这很大程度上影响了他的执行效率以及吞吐量,而且扩展性不佳。

另一方面,由于FPGA逻辑结构独特,存储资源丰富,同时具有实时性,可靠性以及灵活性等方面的优势,使得其在众多的图像处理芯片中脱颖而出,得到了越来越广泛的关注和使用。

基于FPGA的Sobel边缘检测的实现

基于FPGA的Sobel边缘检测的实现

基于FPGA的Sobel边缘检测的实现 前⾯我们实现了使⽤PC端上位机串⼝发送图像数据到VGA显⽰,通过MATLAB处理的图像数据直接是灰度图像,后⾯我们在此基础上修改,从⽽实现,基于FPGA的动态图⽚的Sobel边缘检测、中值滤波、Canny算⼦边缘检测、腐蚀和膨胀等。

那么这篇⽂章我们将来实现基于FPGA的Sobel边缘检测。

图像边缘:简⾔之,边缘就是图像灰度值突变的地⽅,亦即图像在该部分的像素值变化速度⾮常之快,这就好⽐在坐标轴上⼀条曲线有刚开始的平滑突然来个⼤转弯,在变化出的导数⾮常⼤。

Sobel算⼦主要⽤作边缘检测,在技术上,它是⼀离散型差分算⼦,⽤来计算图像亮度函数灰度之近似值。

在图像的恩和⼀点使⽤此算⼦,将会产⽣对应的灰度⽮量或是其法⽮量。

边缘是指其周围像素灰度急剧变化的那些像素的集合。

边缘存在于⽬标、背景和区域之间,所以,他是图像分割所以来的最重要的依据。

由于边缘是位置的标志,对灰度的变化不敏感,因此,边缘也是图像匹配的重要的特征。

Sobel边缘检测的核⼼在于像素矩阵的卷积,卷积对于数字图像处理⾮常重要,很多图像处理算法都是做卷积来实现的。

卷积运算的本质就是对制定的图像区域的像素值进⾏加权求和的过程,其计算过程为图像区域中的每个像素值分别与卷积模板的每个元素对应相乘,将卷积的结果作求和运算,运算到的和就是卷积运算的结果。

卷积公式如下。

3x3的窗⼝M与卷积模板C的卷积运算如下。

Gx和Gy是sobel的卷积因⼦,将这两个因⼦和原始图像做如下卷积。

如图3-22所⽰。

Sobel卷积因⼦其中A代表原始图像。

得到图像中的每⼀个点的横向纵向灰度值Gx、Gy。

最后通过如下公式来计算改点灰度的⼤⼩。

但是通常为了提⾼效率,使⽤不开平⽅的近似值,虽然这样做会损失精度,,使⽤并⾏流⽔线的设计思想将Sobel算⼦的实现划分为五个步骤,加流⽔线后的计算可以将整个模块的计算提⾼5倍。

(1)计算Gx与Gy与模板每⾏的乘积(2)两个3x3矩阵的卷积即将每⼀⾏每⼀列对应相乘然后想加(3)求得3*3模板运算后的Gx、Gy(4)求Gx^2 + Gy^2的结果,和Gx和Gy的平⽅和(需要消耗两个时钟)(5)求Gx^2 + Gy^2的平⽅根边缘检测同样需要⽣成3x3矩阵⽽这与中值滤波和均值滤波中⽣成3X3矩阵的⽅法是完全⼀样的,3X3矩阵的⽣成⽅法可以参考前⾯的博客:最近发现Xilinx也有⾃⼰的Shift RAM,Shift_RAM简直就是为3X3矩阵⽽⽣的,所以这我使⽤Xilinx shift_RAM来实现3X3矩阵,配置如下:这⾥Xilinx的shift_ram⼀次只能⽣成⼀⾏数据,所以我采⽤两个IP Core和正在输⼊的⼀⾏来⽣成三⾏数据这是我设计的模块端⼝,clken为串⼝接收的完成标志信号,接收到的⼋位数据输⼊,最后经过Sobel算⼦计算完成后,将单bit数据通过位扩展为⼗六位输出。

基于FPGA的并行计算技术

基于FPGA的并行计算技术

基于FPGA的并行计算技术更新于2012-03-13 17:15:57 文章出处:互联网1 微处理器与FPGA微处理器普遍采用冯·诺依曼结构,即存储程序型计算机结构,主要包括存储器和运算器2个子系统。

其从存储器读取数据和指令到运算器,运算结果储存到存储器,然后进行下一次读取-运算-储存的操作过程。

通过开发专门的数据和指令组合,即控制程序,微处理器就可以完成各种计算任务。

冯·诺依曼型计算机成功地把信息处理系统分成了硬件设备和软件程序两部分,使得众多信息处理问题都可以在通用的硬件平台上处理,只需要开发具体的应用软件,从而极大地降低了开发信息处理系统的复杂性。

然而,冯·诺依曼型计算机也有不足之处,由于数据和指令必须在存储器和运算器之间传输才能完成运算,使得计算速度受到存储器和运算器之间信息传输速度的限制,形成所谓的冯·诺依曼瓶颈[1];同时,由于运算任务被分解成一系列依次执行的读取-运算-储存过程,所以运算过程在本质上是串行的,使并行计算模式在冯·诺依曼型计算机上的应用受到限制。

受到半导体物理过程的限制,微处理器运算速度的提高已经趋于缓慢,基于多核处理器或者集群计算机的并行计算技术已经逐渐成为提高计算机运算性能的主要手段。

并行计算设备中包含多个微处理器,可以同时对多组数据进行处理,从而提高系统的数据处理能力。

基于集群计算机的超级计算机已经成为解决大型科学和工程问题的有利工具。

然而,由于并行计算设备中的微处理器同样受冯·诺依曼瓶颈的制约,所以在处理一些数据密集型,如图像分析等问题时,计算速度和性价比不理想。

现场可编程门阵列(FPGA)是一种新型的数字电路。

传统的数字电路芯片都具有固定的电路和功能,而FPGA可以直接下载用户现场设计的数字电路。

FPGA技术颠覆了数字电路传统的设计-流片-封装的工艺过程,直接在成品PFGA芯片上开发新的数字电路,极大地扩大了专用数字电路的用户范围和应用领域。

基于OpenCL与FPGA异构模式的Sobel算法研究

基于OpenCL与FPGA异构模式的Sobel算法研究

基于OpenCL与FPGA异构模式的Sobel算法研究鲍云峰;曾张帆;唐文龙;田茂【期刊名称】《计算机测量与控制》【年(卷),期】2018(026)001【摘要】With the rapid development of computer science and technology,the application of real-time image processing in embedded field is becoming more and more extensive.However,traditional hardware has not been parallelized because of its own structure.Referring to the issue that high performance image processing solution required on video surveillance,machine vision,video compression,medical image analysis,the solution based on OpenCL software model and FPGA heterogeneous mode is proposed to solve the problem of high performance computing,to realize the image display and OpenCL acceleration,the algorithm is used to analyze the parallelism based on the Sobel edge detection as the research object,using the OpenCL acceleration of the kernel algorithm,which is compared with basic ARM platform and OpenCL shared memory acceleration mechanism,launching performance test,then studying the acceleration effect.It is experimentally showed that the use of the system to deal with different resolution images,OpenCL accelerating subsystem processing will be about 100 times better performance improvement than based on the on-chip ARM hardcore software processing,under achieving the same functions.%随着计算机科学技术的迅速发展,嵌入式领域实时图像处理应用越来越广泛,然而传统硬件因为自身架构导致并行化程度不高,针对在视频监控、机器视觉、视频压缩、医疗影像分析等领域需要对图像进行高性能计算的问题,提出一种以OpenCL软件模型和FPGA异构模式的高性能图像处理解决方案,实现了图像显示和OpenCL加速功能,以Sobel边缘检测算法为研究对象,进行了算法并行性分析,并在系统中运用OpenCL加速内核算法,与基本的ARM平台和OpenCL共享内存加速机制相比较,展开性能测试,对加速效果进行了研究;实验数据表明,使用该系统处理不同分辨率的图像,OpenCL加速子系统的处理较基于片上ARM硬核的软件处理,实现相同功能上有100倍左右的性能提升.【总页数】6页(P216-221)【作者】鲍云峰;曾张帆;唐文龙;田茂【作者单位】湖北大学计算机与信息工程学院,武汉430062;湖北大学计算机与信息工程学院,武汉430062;湖北大学计算机与信息工程学院,武汉430062;湖北大学计算机与信息工程学院,武汉430062【正文语种】中文【中图分类】TP274【相关文献】1.基于异构平台的自适应图像去马赛克的OpenCL加速 [J], 田旭文;朱茂华2.基于ARM和FPGA的Sobel边缘检测异构系统 [J], 孙志豪;徐政;石润彬;吴晨健3.Zynq异构FPGA平台的OpenCL框架研究 [J], 赵灵超;柴志雷;王芝斌4.基于FPGA的Sobel边缘检测算法研究与实现 [J], 孙百洋;冷建伟;赵嘉祺5.基于FPGA的异构加速卡OpenCL架构研究及性能优化 [J], 赵贺辉因版权原因,仅展示原文概要,查看原文内容请购买。

Sobel边缘检测的FPGA实现

Sobel边缘检测的FPGA实现

Sobel 边缘检测的FPGA 实现李 明,赵勋杰,毛伟民(苏州大学物理科学与技术学院 江苏苏州 215006)摘 要:为了采用FP GA 来实时实现Sobel 边缘检测,设计者往往自己编写代码。

在此介绍基于Quartus Ⅱ提供的参数可设置宏功能模块,实现Sobel 边缘检测的新方案。

该方案获得了比用户编写的代码更优的综合和实现结果,节省了宝贵的设计时间,并且获得了很好的边缘检测效果。

关键词:FP GA ;Sobel ;边缘检测;Megaf unctions中图分类号:TN911173 文献标识码:A 文章编号:10042373X (2009)162044203Implementation of Sobel Edge Detection B ased on FPG AL I Ming ,ZHAO Xunjie ,MAO Weimin(Department of Physical Science and Technology ,Soochow University ,Suzhou ,215006,China )Abstract :To realize real 2time Sobel 2edge detection using FP GA ,designers often encode their own logic.A new design scheme of Sobel 2edge detection based on the Quartus Ⅱ2provided parameterizable Megaf unctions is introduced.The scheme gets more efficient logic synthesis and device implementation than coding users ′own logic ,saves valuable design time and ob 2tains very good result.K eywords :FP GA ;Sobel ;edge detection ;Megaf unctions收稿日期:20092032260 引 言随着设计复杂度的增加,使用IP 核已经成为一种常用的设计方法。

基于可编程逻辑阵列的索贝尔边缘检测算法的两种实现方案

基于可编程逻辑阵列的索贝尔边缘检测算法的两种实现方案

基于可编程逻辑阵列的索贝尔边缘检测算法的两种实现方案张海斌;朱苏磊;徐明亮【摘要】基于可编程逻辑阵列(FPGA)的片上可编程及并行流水线具有处理快、实时性等优点,采用Quartus II自带知识产权(IP)核进行设计的方案耗资源多,处理速度慢,针对于此提出了改进的索贝尔(Sobel)算子方案,使以上缺点得到改善;结合Matlab和Modelsim对这两种方案的仿真和验证结果表明,改进后的Sobel算子方案明显优于Quartus II自带IP核进行设计的方案,并且能很好地实现图像边缘检测,减少了偏差.%In this paper,two kinds of edge detection scheme based on Field Programmable Gate Array(FPGA) are realized and analyzed by using the Sobel operator.In view of the design which utilizes the intellectual property(IP) cores embedded in the Quartus II has some disadvantages such as more resources are consumed、process is relatively slow and so on,an improved scheme which improves the first design′s shortcomings is proposed.Simulation and verification results of these two schemes which are combined with Matlab and Modelsim show that the improved Sobel operator scheme is better than the previous scheme designed by using IP cores embedded in the Quartus II,achieving a good image detection and reducing errors.【期刊名称】《上海师范大学学报(自然科学版)》【年(卷),期】2017(046)002【总页数】7页(P247-253)【关键词】边缘检测;可编程逻辑阵列;数字图像处理【作者】张海斌;朱苏磊;徐明亮【作者单位】上海师范大学信息与机电工程学院,上海 200234;上海师范大学信息与机电工程学院,上海 200234;上海师范大学信息与机电工程学院,上海 200234【正文语种】中文【中图分类】TN911.73数字图像处理就是采用计算机或嵌入式系统对图像进行深度加工,并从中获得有用的信息.伴随着计算机技术、集成电路技术的飞速发展,数字图像处理技术也得到了很大的发展,并且也出现了许多与数字图像处理技术相关的新理论、新技术、新设备.这些新理论、新技术在工业生产、科学研究、医疗卫生等领域得到了广泛应用,对社会的发展及人类生活水平的提高做出了极大的贡献[1].边缘是图像的基本特征,是指图像灰度变化率最大的位置,由图像像素点数据局部的不连续而形成.边缘的表现形式有图像纹理结构的突变及灰度级的突变,彩色变化等等,边缘检测利用物体与背景在某些特征上的差异而实现.由于实时图像边缘检测算法涉及到的数据量大,一般运算器的顺序执行或者传统软件处理实时图像很难满足要求.而采用可编程逻辑阵列(FPGA)的流水线和并行处理技术,不仅可以提高数字图像的处理速度,也可以在一定程度上满足实时系统中的应用需求.边缘检测算子可以分为一阶微分算子和二阶微分算子.常见的一阶微分算子有Prewitt算子,Canny算子、Sobel算子、Roberts Cross算子,Kirsch算子,罗盘算子等等;二阶微分算子包括Laplacian算子以及高斯-拉普拉斯(LOG)算子等等[2].本研究主要介绍了基于FPGA的索贝尔(Sobel)边缘检测算法实现的两种方案,方案一完全采用Quartus II自带的知识产权核(IP)核进行实现,实现简单、工程周期短,但占用逻辑资源多,设计效果不够理想;方案二针对方案一的缺点进行了改进,改善了系统处理速度,减少了逻辑资源的消耗,在一定程度上改善了设计效果,优化了系统性能.1.1 Sobel边缘检测算子索贝尔算子(Sobel operator)是数字图像处理中的常用算子之一,在图像边缘检测和噪声滤波中都有运用,它是离散型差分算子,用来提取图像亮度函数的梯度近似值.在图像的任何像素点上运用这一算子,都可以产生对应像素点的梯度矢量或是其法矢量[2].现在假设图像数据点上有9个像素点:现用一个二次曲面z(x,y)来拟合这9个点的灰度值,即用来近似图像灰度函数f(x,y),并使均方误差最小.令分别对a、b、c、d、e、g的一阶偏导数为0,联立解得各个系数.将二次曲面z(x,y)对x,y求偏导数,得到梯度的幅度值[3]:[f(i+1,j-1)+2f(i+1,j)+f(i+1,j+1)]+[f(i-1,j-1)+2f(i,j-1)+f(i+1,j-1)]-[f(i-1,j+1)+2f(i,j+1)+f(i+1,j+1)].它的两个卷积模块为:1.2 基于FPGA的Sobel算子实现框图Sobel边缘检测算法的实现主要包括三个模块,如图1所示.图1中,前两个模块主要是实现图像像素点的梯度值计算,图像数据输入通过数据缓存模块构成3×3矩阵像素阵列,然后再分别计算水平梯度和垂直梯度,然后把两个方向上的梯度结合起来,接着通过门限处理模块,实现判别输出.假设输入的像素值依次为:p11、p12、p13、p21、p22、p31、p32、p33,那么在垂直方向上的梯度和在水平方向上的梯度分别为:GV=(p11+2p12+p13)-(p31+2p32+p33).梯度结合后的梯度值G为:通常为了提高程序的运行速度都采用如下的公式:门限处理模块之后输出数值P22,当设定的门限值大于G时,输出为0,当G大于设定的门限值时输出为255.综上分析Sobel算子在理论设计上容易实现,并且具有滤除噪声的作用,所以适合用在图像噪声较多的图像处理中.2.1 图像缓存实现由于Sobel算子理论基于3×3像素块计算中心像素梯度,构造3×3像素矩阵特别重要,要实现这个效果,必须使用一个容量足够大的存储单元来缓存串行输入的图像数据流,并把串行数据转化成并行的3行像素值,这样在3个像素时钟后就可以得到3×3图像像素矩阵.过去常使用先入先出(FIFO)作为图像数据的存储方式,但对FIFO 的读写操作较为复杂.而本设计中主要是调用了Quartus II软件自带的altshift_taps移位寄存器宏模块.软件中提供的altshift_taps宏模块是一个可设置参数的并具有多个端口(Taps)输出的移位寄存器,每一个抽头在移位寄存器链的指定位置上输出数据.对于Matlab经常应用的256×256大小图像进行Sobel边缘检测,altshift_taps模块配置为8 bit输入/8 bit输出、3个抽头,相邻两个抽头有256个registor(寄存单元).经过预处理的9个图像灰度像素点进入缓冲区后数据流如,图2所示.2.2 卷积计算和门限比较模块编写的卷积计算模块是为了得到水平的、垂直的两个方向上的梯度值,要达到卷积运算的效果需要做大量的乘法、加法运算.若是采用以往分立的D触发器、加法器和乘法器来完成,可以实现预期的功能,但其结构复杂,设计繁琐.在本方案中先通过调用Quartus II开发工具提供的IP核模块中的可编程乘加法器altmult_add、可编程多路加法器parallel_add以及开方模块(altsqrt)来实现.其原理如图3所示.图3中前面的3个Line就是缓存数据模块,而后面的实现水平梯度和垂直梯度的计算及开方后的结果再与门限比较,输出判别后的结果.考虑到上述方案调用IP时,占用FPGA逻辑资源大,在处理数据乘、开方时,占用大量CPU资源,提出了改进设计方案.3.1 图像缓冲模块设计改进基于图2的图像数据缓冲模块的数据流结构,构想在shift_RAM中存储2行数据,同时与当前的输入行数据组成3行的陈列,具体的实现步奏如下:(1) 首先,将输入的信号用像素使能时钟同步一拍,以保证数据和宏模块altshift_taps输出的数据保持同步,主要实现代码如图4所示.(2) 例化并输入row3_data,经过Modelsim仿真可以观察到3行数据同时存在.(3) row_data读取信号的分析及生成数据在altshift-taps里存储消耗一个时钟,因此3×3阵列阵列读取使能需要一个时钟的偏移.(4) 此时,根据read_image_clken信号直接读取3×3像素阵列,最后得到的matrix_p11、matrix_p12、matrix_p13、matrix_p21、matrix_p22、matrix_p23、matrix_p31、matrix_p32、matrix_p33即为得到的3×3像素阵列,主要代码如图5所示.3.2 卷积模块的实现在1.2节中,可以利用(7),(8)式实现Sobel算子算像素点P22处的水平和垂直梯度值计算,在上面构成的3×3陈列中可以得到图像的每一个像素值,所以只要把(7),(8)式用Verilog语言实现就可以了,水平梯度值计算主要代码如图6所示.这里只分析像素P22在水平上的梯度值,从3×3矩阵模块中出来的像素值matrix_p11,matrix_p12,matrix_p13,matrix_p21,matrix_p22,matrix_p23,matrix_p31,matrix_p32,matrix_p33都是reg无符号数型,即分别为P1、P2、P3、…、P9,在计算机内部数字乘以2就是bit位向左移一位,代码中通过暂存正结果和负结果,通过比较这个数值的大小最终给出水平上的梯度值.垂直上的梯度值同理实现.接着另一个进程中实现平方加的结果,最后再把平方加的结果送入开方模块SQRT中,输出对应像素点的估算梯度值,得到的梯度估算值与阀门值比较得出该像素点是否为边缘像素点.4.1 两种方案在Quartus II下的分析对比两种方案都是基于altera的CycloneIVE EP4CE10F17C8为目标芯片,在Quartus II下编译综合,得出两种方案的硬件资源使用情况综合报告及在约定输入时钟25 mHz时TimeQuest的时序分析报告如表1、2所示.从表1、2可以看出方案二明显比方案一占用资源少,首先,内嵌乘法器只占用了9%,这样数据处理大大减少;其次,专用逻辑寄存器和引脚也明显减少,这样可以在FPGA 上留用更多的资源来处理其他信息;最后在25 mHz时钟约束下,从TimeQuest的分析时钟看,方案一最大工作效率为34.19 mHz,方案二可以达到47.78 mHz,这可以看出优化后的方案二数据处理速度明显提高,满足实时性的要求.4.2 仿真结果分析采用Matlab对灰度图像的各个像素点以16进制存储在image.txt文本文件下,然后将本文文件下的数据通过函数readmemh(image.txt,data_mem)读到存储器类型的data_mem中,再通过always进程通过寻址方式把各个图像数据输给输入端口.在仿真时再通过函数fdisplay(文件句柄,“数据存储格式”,模块输出端口)将两个方案处理后的数据分别存储在ima_process.txt文本里,再采用Matlab软件把ima_process.txt里的数据通过相应函数实现处理后的图像显示,具体代码如图7所示.图8,9分别为输入相同图像数据时在Modelsim下两种方案的Sobel边缘检测仿真结果,门限设定都为200,从图8,9中可以看出在clk时钟的作用下,图像的各个像素值逐个输进输入端口,可以从输出端口(oDATA、post_img_Bits)看到只有两种状态,若该点在边缘上,则通过系统后该点值变为0xff,若不在边缘则变为0x00.两种方案可以实现对图像的边缘检测.图10是设定阈值为200时两种方案对图像边缘提取后的结果对比,从图10中可以看出方案二的处理效果明显比方案一好,进一步说明改进后的方案优于采用IP核的方案;处理后的图片边沿明显出现了误判,这是没有对边沿像素点采取处理的结果,在实际工程中可以对图像边沿采取重叠复制、忽略处理等方法.本文作者基于FPGA采用两种设计方案对Sobel边缘检测进行了实现并仿真分析,首先方案一中完全采用Quartus II自带的IP核设计各个模块,实现图像各个像素值卷积实现图像边缘检测,针对方案一占用FPGA逻辑资源多,处理图像数据慢等特点,设计了另一种设计方案,一方面,针对数据的左移一位(乘2)的思想很好地实现了数据点的水平和垂直梯度的提取,这样大大减少了FPGA内嵌乘法器的使用,也减少了结果误差的舍入;另一方面,为了构建3×3的图像矩阵,就需要构建图像数据缓冲模块,方案一中采用的图像数据缓冲模块完全采用3个taps的数据缓冲模块,每个taps 的深度均为图片行的像素点,这样FPGA的逻辑资源很大程度上就被浪费了,影响FPGA的性能.为了改善这种状况,方案二只调用了2个taps的数据缓冲模块,并结合输入的数据端口利用FIFO的思想构成3×3矩阵,很好地改善了方案一中的占用逻辑资源较大的情况.综合对比两种方案,改善后的方案明显比方案一效果好,消耗资源少,耗时少,并且处理效果较好,完全满足实时图像处理的要求.导师简介: 朱苏磊(1975-),女,副教授,主要从事图像处理及嵌入式方面的研究.E-mail:****************【相关文献】[1] Fang H R.The application of FPGA in image edge detection [J].Information and Communication,2015(1):9-11.[2] Yan L,Lei B,Ding W,et al.Based on local adaptive thresholds edge detection of colorimage color difference [J].Journal of Electronics and Information,2012,34(9):2058-2063. [3] Liao C Z.A Sobel edge-detection algorithm based on FPGA and emulation [J].Journal of Yangtze University,2015,12 (7):37-40.[4] Pan M,Chen Y,Li Q.Design of image sampling system based on FPGA [J].Research and Development,2012,31 (3):58-61.[5] Ruan Q Q,Ruan Y Z.Image processing [M].Beijing:Publishing House of Electronics Industry,2014.[6] Xia Y W.Verilog course in digital systems design [M].Beijing:Beihang University Press,2008.[7] Zhang Z Y.The master of Matlab [M].Beijing:Beihang University Press,2011.[8] Zhang Y J.Design and algorithm realization of FPGA-based image processing systems[D].Chongqing:Chongqing University,2006.[9] Wu Y.Basic algorithms of digital image processing based on FPGA design and implementation [D].Harbin:Harbin Institute of Technology,2008.。

基于FPGA器件的Sobel算法实现

基于FPGA器件的Sobel算法实现

基于FPGA器件的Sobel算法实现
0 引言
边缘检测技术是图像处理的一项基本技术,在工业、航天、医学、军事等领域中有着广泛的应用。

边缘检测算法的实现涉及复杂的计算步骤,故对处理速度有较高要求。

采用FPGA 器件实现系统设计是一种纯硬件的解决方案,该方案可以使系统具备较高的实时性,能比较好地解决软件编程方式所导致的处理速度问题。

1 Sobel 算法
在众多的图像边缘检测算法中,Soble 算法具有计算简便、检测效果好等优点,是一种被广泛应用的算法。

Sobel 算法依据图像边缘的灰度值会产生突变
的原理,来对像素的灰度值进行处理。

在图1 所示的3×3像素窗中,中间像素[i,j]为待检测像素,Sobel 算法分别对此像素窗进行水平(H)、垂直(V)、左对
角(L)、右对角(R)四个方向的灰度值滤波运算,公式如下:
c=2。

这里的H,V,L,R 是为了计算梯度的大小和方向。

梯度大小可由下
式得到普遍估计:
若此幅值大于给定的某阈值,则可判定像素点[i,j]为边缘像素,否则为一
般像素。

梯度方向与四个滤波值中绝对值最大的方向一致。

2 系统设计
一个完整的图像边缘检测系统主要包括以下三个功能模块:像素窗生成模块、边缘检测模块以及输出处理模块,图2 所示是边缘检测系统示意图。

其中像素窗生成模块主要负责生成供边缘检测模块计算的3×3像素窗;边缘检测模块采用Soble 算法对此像素窗进行处理,以判断中心像素是否为边缘像素;输出处理模块负责后续处理任务(如生成完整的边缘图像)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7!, # P ’ A算子
图像锐化 技 术 用 于 加 强 图 像 中 的 目 标 边 界 和 图 像 细 节 $ 微分法是图像锐化方 法 之 一 & 由 数 学 分 析 可 知 $ 可 微 函数 G! !$ "#的梯度为 % ( )5 U 52 ; 0 C !$ G! "# <G <G -9 L <! <" ! # "
!"" # $ % &算子的并行处理结构
表第 -.! 行 " 依此类推 ( 对于一般的灰度图像 " 其象 素 的 灰 度 值 一 般 用 / 位 表 示 " 考虑到计算 过 程 中 可 能 出 现 负 数 和 溢 出 问 题 ( 因 此 " 数据在开始 计 算 前 先 在 最 高 位 补 零 " 使 数 据 宽 度 变 为 ! 0 位 " 计算完成后可再裁剪为 / 位 ( 图 " 中 比 较 器 的 作 用 是 将求得的 ’ ( & ) *梯度与门限做比较 " 从而增强边界 (
由于图像并行处理技术可大 幅 度 提 高 处 理 速 度 " 因 而 获得了广泛的运用 ( 常用的并行处 理 有 两 种 最 基 本 的 连 接
"% 模式 $ &图
! # 的流水线连接和图 ! ! # 并行阵列连接 ( ! % &
’" 仿真结果
采用 1 5 ! 6 + 0 7 8 ! 9 9 !芯片进行仿 * 2 ) 3 %公司的 4
% $ ! " # $ % & ’ $ 1< 4 5: ; > B 5 3 3 8 1 ? ; 5 0 F< 8 = 5 8 = 0 55 C 55 1 4 0 1 B 5 = 5 1 < A > M 5 F > 5 ; 0 < > ; 8 3> ? < 5 19 3 5 C T_ > E< > 8 = ; > I 5 8 < 3: ; > B 5 3 3 8 1 5 5 C 2> 2 2 : : 23 : $ M 5 B 0 9 3 5> ? < 4 5 ? 0 3 < C 5 S M 5 B > = 5 30N 5 ; > M F 5 = T < 8 3C 8 ? ? 8 B 9 F < < >9 3 5: 9 ; 5 3 > ? < E 0 ; 5> ;2 5 1 5 ; 0 F 4 0 ; C E 0 ; 5 < >= 5 5 < < 4 5 ; 5 9 8 ; 5 = 5 1 < > ? ; 5 0 F < 8 = 5 G: j I 5 F > = 5 1 < ? > ;V & R)$ E 5B 0 19 3 5 8 < < >8 = ; > I 5B 0 F B 9 F 0 < 8 > 13 5 5 C? > ;A > M 5 F> 5 ; < > ; T% 4 8 3: 0 5 ;: ; 5 3 5 1 < 30N 8 1 C> ?: 0 ; 0 F F 5 F: ; > B 5 3 3 8 1 > 1 S : : : : : 2B $ 3 < ; 9 B < 8 > 1> ? A > M 5 F > 5 ; 0 < > ; 0 1 C 8 < 3V & R) M 0 3 5 C 8 = F 5 = 5 1 < 8 1 5 < 4 > C T% 4 5 B > ; ; 5 B < 1 5 3 3 0 1 C ? 5 0 3 8 M 8 F 8 < 0 I 5M 5 5 1: ; > I 5 CM < 4 5 > ; 5 < 8 B 0 1 0 F S : : 2= G4 G $ 3 8 30 1 C3 8 = 9 F 0 < 8 > 1 T% 4 5: ; > B 5 3 3 8 1 5 5 CB 0 1M 52 ; 5 0 < F 1 4 0 1 B 5 CM 3 8 1 0 ; 0 F F 5 F: ; > B 5 3 3 8 1 > 1 3 < ; 9 B < 8 > 1 0 1 C= 5 5 < < 4 50 B < 9 0 F < 0 3 N T G 23 : G5 G9 2: 2B % " " ( ) + , % # A > M 5 F > 5 ; 0 < > ; V & R)" 0 ; 0 F F 5 F: ; > B 5 3 3 8 1 8 = 0 55 C 55 1 4 0 1 B 5 = 5 1 < : : 2 2 2 *
!% 规定该点的灰度值为一个特定 )$ " 即& 门限 ( 时 "
"""" ! 电子技术应用 "
’ ! # #
在做边缘增强过 程 中 " 当某点梯度值大于或等于某一
+" *! ,#$

" #! ( !! " # " # 其他 " # %!
)
! # $
图 "" 实现 ’ ( & ) *算子的并行结构
其中 " 输入 ! 代表图像象 素 阵 列 的 第 - 行 " 输 入 " 代
5"
#
$ #
"7 #
" # 6" 5 7 " # 6" 6 8
!! $ # 6$
函数在该点的 方 !$ !! 其指向是 G! "#最大增加率的方向 &
收稿日期 !$ # # * " " $ Q
6 8 6" 6$ 6"
! 方向算子 !!!!!" 方向算子 > M 5 F梯度的模的近似表达式为 % !! 所采用的 A
> M 5 F算 子 进 行 物 体 的 边 缘 增 !! 在实时图像 处 理 中 $ 用 A 强是经常用到的算法 $ 由于对 处 理 速 度 要 求 较 高 $ 因 此 用 纯软件的方法很难达到要求 & 实时 图 像 处 理 常 用 到 对 图 像 进行求和 ’ 卷积 ’ 边缘提取 ’ 图 像 分 割 及 特 征 提 取 等 不 同 种类 ’ 不同层次的处理 & 现在 $ 图 像 实 时 处 理 系 统 一 般 采 用V & R )Y/ A & 的结构 $ 对于一 些 运 算 结 构 简 单 $ 但 要 处 理大量数据 的 算 法 一 般 采 用 V & R ) !V 8 5 F C& ; > ; 0 == 0 M F 5 2 #芯片 来 实 现 $ 对 于 运 算 复 杂 $ 但 处 理 的 数 据 R 0 < 5) ; ; 0 G 量小的算法一般用 / A & 处理器来实现 & 由于求一个点 的 A > M 5 F梯 度 模 计 算 量 较 大 $ 因 而 $ 本 文对用 V & R ) 实现 A > M 5 F算子进行了研究 &
, $ B 0U 1 ! > P 4 * ’ B1 4 " 4 A A ’ A1 " # ( ’ * * ) + 0, # P ’ AS ’ " 4 # " .# 6# %
" $ $g).RP ) -g 0 1 F 8 8 1 2 2
! $ $ " " T/ 5 0 ; < = 5 1 <> ?@ > = 9 < 5 ; 1 ? > ; = 0 < 8 > 1D 1 8 1 5 5 ; 8 1 @ 4 8 1 0@ 8 I 8 F) I 8 0 < 8 > 1V F 8 1 > F F 5 5 R 9 0 1 4 0 1$ Q " ] ’ # !$ @ 4 8 1 0 : : 2 2 G 2@ 2 2 $ $ # $ T1 3 < 8 < 9 < 5? > ;& 0 < < 5 ; 1X 5 B > 1 8 < 8 > 10 1 C) ; < 8 ? 8 B 8 0 F 1 < 5 F F 8 5 1 B 5 _ 9 0 O 4 > 1 1 8 I 5 ; 3 8 < ?A B 8 5 1 B 5f % 5 B 4 1 > F > 79 4 0 1$ * ’ # # ! *$ @ 4 8 1 0 2 2 2H G> 2 G
电 子 技 术
艾扬利等:基于 V & R) 的 A > M 5 F算子并行计算研究
基于 U 1 ! > 的, # P ’ A算子并行计算研究
艾扬利"! 杨 ! 兵$
! " T 中国民航飞行学院 计算机信息工程系 ! 四川 广汉 !Q " ] ’ # !" # $ T 华中科技大学 图像识别与人工智能研究所 ! 湖北 武汉 !* ’ # # ! * 摘 ! 要 ! 由于在实时图像处理中常用 A > M 5 F算子对图像边缘进行增强 ! 如 何 提 高 处 理 速 度 成 为 问 题 的 关 键 " 采 用 纯 软 件 的方法或普通结构的硬件电路难以满足实时要求 ! 鉴于近年来 V & R) 芯片的迅速发展以 及 其 良 好 的 可 编 程 结 构 ! 为 实 现 A > S M 5 F算子的快速计算提供了硬件保证 " 提出了一种 A > M 5 F算 子 的 并 行 处 理 结 构 ! 提 高 了 处 理 速 度 ! 并 给 出 了 基 于 V & R) 的 实 现方法 " 进行了理论分析及仿真实验 ! 证明了该方法的正确性和可行性 " 由于采用并行结构 ! 使处理速 度 大 为 提 高 ! 满 足 了 实际任务的要求 " 关键词 !A > M 5 F算子 #V & R)# 并行处理 # 图像边缘增强 中图分类号 !% ## & ’ ( " T * "!!!!! 文献标识码 !)!!!!! 文章编号 !" # # * ’ ! ’ + " $ # # , ( # * $ # $
相关文档
最新文档