摘 要: 为了提高视频跟踪系统中目标检测的精度,提出了一种以FPGA为核心的目标检测方法。利用形态学对Sobel目标边缘检测的结果进行优化,在此基础上,改进新的目标检测算法弥补形态学优化存在的不足。FPGA实现结果表明,改进的目标检测方法可以实现任何阈值情况下目标边缘的深度优化,使得图像边缘更清晰、噪声更小。
关键词: 形态学; Sobel; FPGA;目标检测
在视频跟踪系统的研究中,目标检测是至关重要一环,其结果的好坏关系到图像的分析与识别,直接影响机器视觉系统对客观世界的理解。实现图像中目标边缘检测有许多不同的方法,也一直是图像处理的研究热点,人们期望找到一种定位准、抗噪强、不误检、不漏检的检测算法[1]。经典的算法中主要用梯度算子,较常用的有Roberts、Prewitt和Sobel算子,其中Sobel效果较好,但也存在不足之处,无法避免噪声,对后续的图像处理有很大的影响。
近年来,形态学在图像处理中起着重要的作用,它利用具有一定形态结构元素去度量、提取图像中对应的形状,以达到对图像目标分析和识别的目的[2]。形态学运算是物体形状集合与结构元素之间的相互作用,常用的运算有腐蚀、膨胀、开和闭,它对边缘方向不敏感,可以在很大程度上抑制噪声,探测真正的边缘。因此,将形态学应用于目标边缘检测既能有效地滤除噪声,又能保留图像中目标原有的细节信息,具有较好的边缘检测效果[3]。
此外,边缘检测对处理速度要求比较高且算法处理的数据量比较大,传统的软件实现会比较慢,无法达到实时的要求。而用FPGA芯片,用硬件设计来提高图像处理的速度,可满足系统实时要求。本文以FPGA为平台,利用形态学方法对Sobel边缘检测结果进行优化,并在此基础上提出了一种改进的边缘检测方法,使得图像中目标的边缘更加清晰、噪声更小。
1 视频跟踪系统的设计
通过摄像头获取实时图像并输入FPGA,根据目标检测、目标跟踪、云台控制等算法实现运动目标的自动跟踪,图1为系统整体设计。目标检测的好坏直接关系到目标跟踪及云台控制。
与传统的DSP跟踪平台相比,FPGA有着明显的优势:(1)信号并行处理;(2)系统设计灵活;(3)价格在不断降低。因此,采用FPGA作为视频跟踪系统处理平台是未来的必然趋势。
2 基于FPGA的形态学和Sobel目标检测
2.1 形态学和Sobel算法
形态学是分析几何形状以及结构的一种数学方法。常用的形态学运算有:腐蚀、膨胀、开和闭。
腐蚀(?专)的作用是消除物体边界点,膨胀(?茌)是把图像周围的背景点合并到物体中。
设A为一幅二值图像,B为结构元素,则膨胀运算定义为[4]:
膨胀运算为集合B首先做关于原点的映射,然后平移形成集合()a,最后计算集合a与集合A不为空集的结构元素参考点的集合。
膨胀可扩大图像;开运算可平滑图像轮廓,削弱狭窄,去掉细的突出;闭运算可平滑图像轮廓,它一般融合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝隙[5]。
Sobel是一种微分边缘检测算法,该算子是由两个卷积核g1(x,y)与g2(x,y)对原图像f(x,y)进行卷积运算而得到的。其数学表达式为:
根据Sobel原理可得出图2所示的Sobel边缘检测算法框图。首先利用卷积运算得出水平和垂直方向梯度,然后利用均方根运算将两个方向梯度结合,最后进行阈值处理来判断图像边缘并输出图像边缘检测结果[6]。
2.2 形态学优化在Sobel目标检测中存在的问题
形态学在一定条件下可对Sobel边缘检测结果进行优化,但也存在一些缺陷。图3设计了两种不同的实时图像目标检测方法,第一种为Sobel边缘处理得到图像中目标边缘,第二种为先经过Sobel边缘处理再进行形态学优化得到图像中目标边缘。
FPGA实现目标检测结果如图4所示,其中图4(a)和图4(c)分别为低阈值和高阈值时Sobel处理后结果,图4(b)和图4(d)分别为低阈值和高阈值时先经过Sobel处理再经过形态学优化得到的结果。对比图4(a)与图4(b)看出,低阈值情况下,采用Sobel和形态学的方法可以有效抑制Sobel边缘检测噪声,降低噪声,使图像边缘变得更加精细;对比图4(c)与图4(d)看出,随着判定阈值升高,形态学对Sobel边缘检测效果的优化效果越来越不明显,甚至开始出现边缘点丢失。
3 改进的目标边缘检测算法
为了得到更好的图像边缘细节和提高算子的抗噪能力,本文提出改进的目标边缘检测算法,流程如图5所示。
(1)对摄像头采集的原始实时图像进行格式转换,RGB格式变为灰度图像格式:
灰度值=R×0.299+G×0.587+B×0.114 (3)
(2)灰度图像分为两路,一路进行Sobel边缘检测,另一路先进行Sobel边缘检测再经过Dilation处理。
(3)Sobel边缘检测得到的每一帧图像边缘减去Sobel+Dilation边缘检测得到的图像边缘:
Bi(x,y)=Ii(x,y)-B(x,y) (4)
其中,Ii(x,y)表示当前帧Sobel边缘检测后各个像素点值,B(x,y)表示Sobel+Dilation边缘检测后各个像素点值。
(4)将步骤(3)得到的每一帧图像差值计为当前帧图像的噪声信息,得到噪声图像。
(5)Sobel边缘检测得到的图像边缘减去噪声图像,得到改进后的边缘图像:
Di(x,y)=Ii(x,y)-Bi(x,y) (5)
其中,Di(x,y)表示每帧图像最终得到的各个像素点的值。
4 试验结果及分析
4.1 目标边缘检测FPGA实现的主要模块
Sobel边缘检测的FPGA实现主要包含梯度计算和阈值处理,在实现时采用图像数据缓冲为图像做缓冲处理[7]。以下主要介绍图像数据缓冲和卷积计算模块的硬件实现,其中卷积运算如图6所示。
该模块采用3条线性缓冲器来实现Sobel算子对图像数据的卷积运算,X1~X9为Sobel算子的模板系数,P1~P9为Sobel算子3×3模板中需要处理的每个像素点灰度值,乘、加部分由QuartusII软件中宏功能模块库中的可编程多路并行加法器模块parallel_add与可编程乘加器altmult_add进行运算。
形态学处理FPGA实现过程与卷积运算非常相似,采用3条线性缓冲器来实现形态学运算。其中,在Dilation膨胀运算时,前一级检测的边缘数据送入Dilation运算模块,运算原理如图7所示,图中P1~P9为Dilation模块3×3运算模板中需要处理的图像边缘数据。
Dilation膨胀模块的核心部分Verilog HDL代码如下:
P9<=Line0;P8<=X9;P7<=X8;P6<=Line1;P5<=X6;P4<=
X5;P3<=Line2; P2<=X3;P1<=X2;
if(iDVAL)
oDATA<=P9|P8|P7|P6|P5|P4|P3|P2|P1;
else
oDATA<=0;
膨胀Dilation将P1~P9作“或”运算,腐蚀Erosion将像素点P1~P9作“与”运算。
4.2 FPGA目标边缘检测结果分析
该实时图像目标边缘检测在EP2C70 FPGA开发板上实现,视频图像由外部CMOS摄像头采集,处理完的数据由TRDB-LTM显示。系统运行在28 MHz时钟频率上,外部输入实时图像数据为640像素×480像素,1 024级灰度水平。表1为3种测试方案FPGA硬件资源使用情况,对比数据可以看出,改进的新算法资源利用率相当小,达到了目标边缘检测实时快速的设计要求。
改进算法的FPGA实现结果如图8所示,图8(a)为CMOS采集的原始彩色图像,图8(b)为格式转换后的灰度图像,图8(c)为低阈值下改进算法的目标检测结果,图8(d)为高阈值下改进算法的目标检测结果。
对比图4(b)和图4(d),从图8(c)和图8(d)可知,无论阈值如何变化,图像经过改进算法处理得到的目标边缘都相当清晰,而且在降低边缘图像噪声的同时,也弥补了形态学对Sobel边缘优化存在的细微空洞现象。
本文在FPGA平台实现了Sobel算子对实时图像中目标的边缘检测,以及使用形态学方法对Sobel检测结果进行了优化,并在此基础上提出了一种新的改进算法。与传统Sobel边缘检测相比,随着边缘阈值的改变,形态学方法对图像边缘优化呈现出不同的变化,当阈值升高到一定时,可以明显地感受到形态学优化效果不足,而新改进的算法可以在任何阈值情况下避免Sobel边缘检测的噪声,让边缘检测更清晰,进一步提高了图像边缘检测的精度。
参考文献
[1] 袁春兰,熊宗龙,周雪花,等. 基于Sobel算子的图像边缘检测研究[J]. 激光与2009,39(1):85-87.
[2] 邓彩霞,王贵彬,杨鑫蕊. 改进的抗噪形态学边缘检测算法[J]. 数据采集理,2013,28(6):739-745.
[3] 夏平,刘馨琼,向学军,等.基于形态学多结构基元的含噪图像边缘检测[J]2010,27(7):206-209.
[4] 赵洁,李玮,郝志鹏,等.基于改进Canny算子与图像形态学融合的边缘检测方法[J]. 微型机与应用,2011,30(10):44-47.
[5] 李峰. 基于数学形态学的图像边缘检测及其在虹膜定位中的应用研究[D].长沙:2009.
[6] 张丽红,凌朝东. 基于FPGA的Sobel边缘检测应用[J].电子技术应用,2011,37(8):26-29.
[7] 刘紫燕, 祁佳. 实时图像边缘检测形态学优化设计及FPGA实现[J].2013,39(9):132-134.