APP下载

自适应OSTU算法在舰船边缘检测中的应用及其FPGA实现

2019-07-08李世文李立聪

软件导刊 2019年6期

李世文 李立聪

摘 要:针对舰船边缘信息检测实时性差、检测效果不佳等问题,通过选取适用于舰船边缘检测的数学形态运算与最大类间方差二值法的方法,并结合 FPGA并行处理能力,构建舰船边缘检测硬件平台。在该硬件平台上,采用FPGA对舰船目标相关算法进行硬件实现。从舰船图像处理结果分析可知,采用传统CPU进行算法处理需要约120ms,采用FPGA实现仅需21.2ms,采用FPGA加速后处理速度提高5倍以上,完全可满足实时性要求,因此该方法具有良好的应用前景。

关键词:FPGA;OSTU;数学形态;边缘检测

DOI:10. 11907/rjdk. 191442

中图分类号:TP317.4

文献标识码:A文章编号:1672-7800(2019)006-0176-05

Abstract: In order to solve the problems of poor real-time performance and poor detection effect in ship edge information detection, this paper constructs a hardware platform for ship edge detection by choosing the methods of mathematical morphology operation and OSTU, and combining the parallel processing ability of FPGA. On this hardware platform, we use FPGA to implement the related algorithm of ship target. From our analysis of the results of ship image processing, it takes about 120ms to process the ship image using traditional CPU. It takes about 21.2ms to implement by using FPGA. The speed of post-processing accelerated by using FPGA is  five times faster than traditional CPU, which can meet the real-time requirements and has broad application prospects.

Key Words: FPGA; OSTU;  mathematical morphology; edge detection

0 引言

舰船目标边缘信息非常丰富,通过提取舰船目标边缘信息可以进一步识别舰船目标,因此舰船边缘信息提取研究具有重要意义,目前在具体目标识别系统中已有相关应用。但是舰船目标边缘检测具有以下特点:首先舰船目标所处环境非常复杂,包括复杂多变的海面背景和舰船在航行中激起的浪花轨迹等,其次对边缘检测系统实时性要求高。

目前国内外众多学者对舰船目标边缘检测进行了深入研究[1-6]。文献[1]基于SIM 模型的目标检测技术,采用事前设定的阈值二值化及腐蚀膨胀进行前期预处理,但图像提取效果不佳;文献[2]利用支持向量机并结合船体边缘信息识别检测目标,但还是采用传统方法获取边缘信息;文献[3]采用多向梯度的舰船边缘检测,可以有效去除海洋虚电噪声,识别率较高;文献[4]采用模板匹配方法,但先验信息获取较困难;文献[5]主要采用模糊Sobel算子进行边缘检测,提高了边缘检测准确度;文献[6]主要利用海洋和舰船的纹理进行检测,对海上航行的船只检测效果较好,但在码头停靠时检测效果不佳。同时上述文献在边缘检测中均采用软件实现相关算法,导致实时性差。

针对上述问题,本文采用FPGA对相关算法进行硬件加速。FPGA指现场可编程门阵列,其最大优势是其并行处理能力,而数学形态学和OSTU算法具有形态分析和算法处理的并行实现结构,所以适用于FPGA。因此本文通过FPGA实现OSTU和数学形态算法,以此实现舰船目标边缘检测[7]。

1 舰船目标边缘检测流程及方案设计

1.1 基于FPGA的舰船目标边缘检测流程

舰船目标边缘检测流程如图1所示。首先获取待测彩色图像,然后对图像进行灰度化,由于图像在拍摄过程中,受环境等原因影响存在噪聲干扰,需进行中值滤波消去图像噪声干扰。滤波后图像进行最大类间方差二值化运算,对图像进行分割,OSTU算法利用统计学相关知识确定一个最佳阈值,然后根据该阈值对图像进行分割。

由于舰船图像存在海洋背景、浪花等干扰,不能直接获取舰船图像边缘,需进一步对图像进行形态运算,即进行腐蚀、膨胀等运算消除相应背景干扰,之后采用Sobel算子进行舰船图像边缘检测。

1.2 基于FPGA 的设计方案

舰船目标检测的FPGA设计方案如图2所示。FPGA内部电路主要包括控制模块、中值滤波模块、最大类间方差二值化模块、数学形态运算模块、边缘检测模块、SDRAM控制模块和协调模块各种状态的机控制电路[8-9]。电路工作时,舰船图像传入FPGA后,利用中值滤波对灰度化后的舰船目标图像进行滤波,滤波后的图像存入动态存储器中。在中值滤波的同时利用OSTU图像相关像素进行统计、计算获取舰船目标图像最佳自适应分割阈值,再从地图存储器中读出处理后的舰船目标图像,由于在中值滤波后获得了分割阈值,本文利用该阈值对舰船目标图像作二值化处理,然后通过Sobel算子运算进行舰船目标图像边缘检测,将检测到的舰船图像送往显示器。

2 舰船目标图像FPGA实现

2.1 舰船目标图像中值滤波及其FPGA实现

由于舰船处于复杂的环境,在图像传输、图像拍摄等过程中存在噪声,影响图像真实性,所以需要对图像进行滤波。本文在FPGA中采用中值滤波的方式,中值滤波采用非线性平滑技术处理图像,尤其对椒盐噪声的滤波效果非常好,同时中值滤波在滤波时对舰船边缘影响较小。

中值滤波指用像素点灰度值的中值替代具体某点的像素值。中值滤波在FPGA中的实现方法多样,本文采用Shift_RAM实现中值滤波。在FPGA中实现中值滤波包括3个步骤:①在Shift_RAM中保存3行数据,之后在每行对这3个像素进行并行排序;②获取3个像素中的最大值、最小值和中间值;③将得到的最大值、最小值和中间值再次求中值,该值为求得的中值。具体实现过程如图3所示,中值滤波包括緩存器、排序模块和D触发器。图像数据通过Shift_RAM进行数据缓存和移位操作,首先每行相应像素数据通过模块1-3进行排序,在FPGA中并行执行3个像素数据的排序。

接着排序模块4-6对已处理后的数据再次进行处理,处理过程是把排序模块1-3中的最大值作为排序输出输入到排序模块4中,最小值输入到排序模块6中,中间值输入到排序模块5中。将排序模块4的最小值、排序模块5的中间值和排序模块6的最大值输入到排序模块7中,然后由排序模块7对这3个数进行排序,取中间值位置滤波输出的结果。中值滤波在FPGA中实现后,在Modelsim中对其进行仿真。从仿真结果可以看出,中值滤波符合设计要求。

3 实验结果

完成系统硬件平台设计之后,本文利用从网络下载的图片对相关算法进行测试,测试时利用MATLAB把图片转换成imag.txt文件,然后通过串口把图片数据发给FPGA,FPGA把数据存储在SDRAM中,之后从SDRAM中读出图像并进行处理,相关算法完成处理后通过USB串口在电脑中显示。

将相关算法处理后的图像进行分析,其中图11是目标原图,图12是本文采用自适应阈值进行二值化分割后的结果,图13是本文采用文献[8]中的方法进行二值化分割后的结果,对比两种分隔情况可以看出来,利用OSTU分隔方法进行分隔的图像边缘信息更加丰富,图像细节更加清晰。

利用OSTU算法进行图像二值化后,再进行腐蚀和膨胀处理。由于舰船在航行中引起的浪花对舰船目标实际边缘影响最大,需要对图像进行滤波以进一步消除相关干扰,本文主要采用数学形态的滤波方法消除噪声干扰。图14是经过腐蚀和膨胀之后的舰船目标,从图14可以看出经过形态滤波之后很大一部分干扰信息被消除。图15是在形态滤波的基础上舰船目标边缘检测结果,边缘检测本身具有平滑作用,所以从图15可以看出,经过OSTU算法和数学形态滤波技术处理后可以较精准地确定舰船目标边缘信息,没有经过数学形态而直接进行边缘检测得到的边缘信息如图16所示,可以看出没有形态滤波边缘检测图像里干扰信息非常大。

同时本文在FPGA中对相关算法加以实现,由于FPGA并行处理能力非常强,所以目标边缘检测实时性很高,从实验和仿真结果来看,仿真时采用仿真频率为50MHz的时钟驱动,在FPGA中处理600×480图像大约需21.2ms,每秒钟大约可处理207幅图像,完全可以满足舰船目标对系统实时性要求。

4 结语

本文提出利用自适应OSTU算法和数学形态学的方法对舰船目标进行边缘检测,并利用FPGA硬件平台对相关算法加以实现。测试结果表明,利用OSTU算法对舰船目标进行二值化的分割效果更好,利用数学形态学的方法可以更好地消除包括复杂的海水背景和航行波浪产生的影响。同时由于本系统采用FPGA进行实现,耗时比传统方法提高5倍以上。但本文采用自适应OSTU算法获取的图像阈值为全局阈值,在图像分割中受光照不均匀等因素影响较大,这也是下一步待研究解决的问题。

参考文献:

[1] 宋明珠,张素霞. 含噪光学遥感图像海面弱小舰船目标检测[J]. 光学学报2017,24(37):1-7.

[2] 吴飞,汪渤,周志强. 基于船头特征提取和轮廓定位的港口舰船检测[J]. 北京理工大学学报,2018,20(38):387-393.

[3] 胡耀辉,张科,邢超. 基于海天线的舰船弱小目标检测[J]. 西北工业大学学报,2019,37(1):35-40.

[4] LI WK,FU K,SUN H. Integrated localization and recognition for inshore ships in large scene remote sensing images[J]. IEEE Geoscience and Remote Sensing Letters.2017,14(6): 936-940.

[5] GONZALEZ C I,MELIN P,CASTRO J R,et al. An improved Sobel edge detection method based on generalized type-2 fuzzy logic[J].Soft Computing,2016,20(2):773-784.

[6] YANG G,LI B ,JI S. Ship detection from optical satellite images based on sea surface analysis[J]. IEEE Geoscience and Remote Sensing Letters , 2014, 11(3): 641-645.

[7] 杜默,王清理. 基于双边缘检测的目标定位技术[J]. 计算机与现代化,2016, 56(1):56-59.

[8] 侯宏录,张文芳. 基于 FPGA 的 SDRAM 控制器设计方案[J]. 兵工自动化, 2012, 31(2):57-60.

[9] 梁晨,赵邦信. 基于 FPGA 和DDR3 SDRAM 的大规模查找表设计与实现[J]. 电子器件,2017,40(4): 849-855.

[10] 宋森森,賈振红,杨杰. 结合Ostu阈值法的最小生成树图像分割算法[J]. 计算机工程与应用,2018,56(1):1-7.

[11] 赵冬梅,杨薇. 数学形态滤波的图像边缘检测[J]. 舰船科学技术,2018, 40(5A):31-35.

[12] 郭海涛,徐雷,赵红叶. 一种抑制声呐图像散斑噪声的形态学滤波器[J]. 仪器仪表学报,2015,36(3):654-660.

[13] 仝海峰. 基于FPGA实时Sobel边缘检测形态学优化设计[J]. 微电子学,2015,6(45):781-784.

[14] 叶惠娇,冉全,成果. FPGA 图像边缘检测系统的设计与实现[J]. 计算机应用与软件,2018,12(35):237-302.

[15] 李正,张海. 一种基于梯度方向一致性的边缘检测新算法[J]. 电子与信息学报,2016, 38(7):1674-1681.

[16] 徐文晴,王敏. 基于自适应形态学滤波的红外小目标检测算法[J]. 激光与红外,2017, 47(1):108-113.

[17] 金大超,冷建伟. 基于 FPGA-边缘检测算法的设计[J]. 电子设计工程,2017, 25(13):159-162.

[18] 温杰,李锦明. 基于 FPGA 的实时图像边沿检测系统的实现[J]. 电子技术应用,2015,41(10):65-67.

[19] 何春华,张雪飞,胡迎春. 基于改进 Sobel 算子的边缘检测算法的研究[J]. 光学技术,2015,38(3):323-327.

[20] 董立红,彭业勋,符立梅. 基于Sobel边缘检测的圆周Harris角点检测算法[J]. 西安科技大学学报,2019,2(38):374-380.

(责任编辑:江 艳)