基于Canny算子和高斯形态学的船舶检测方法与流程

文档序号:16633714发布日期:2019-01-16 06:49阅读:180来源:国知局
基于Canny算子和高斯形态学的船舶检测方法与流程

本发明涉及水面目标检测领域,具体是指基于可见光技术的船舶检测。



背景技术:

现有的水面目标检测算法可大致分为以下三类:基于红外技术的水面目标检测,基于雷达技术的水面目标检测和基于可见光技术的水面目标检测。

基于红外图像的弱目标比背景具有更高的灰度值,使得红外图像中的海上目标与背景差异显著,这一优势使得众多专家学者都在积极研究红外图像中的水上目标检测方法。红外图像中的水天线具有比较明确的结构特征,可有效地区分图像的水面和天空区域。针对红外图像中的这一特点,王悦行等人对红外图像中的海天线进行检测和判定,并利用加权的mean-shift算法对红外图像目标进行检测,郑华也利用了红外图像中检测到的水天线确定红外图像的目标范围。

在远离陆地的海难事故区域,红外图像采集设备拍摄到的遇险人员在图像中通常表现为小目标,而且遇险人员的成像区域常常出现在水天线附近。因此,不少学者首先确定红外图像中的水天线区域,根据检测到的水天线位置找到图像中小目标的具体位置,为海上搜救提供可视化的信息依据。但红外检测系统具有噪声偏大,目标与背景之间边缘比较模糊的特点,而船载摄像机拍摄的红外图像经常抖动,这对海上目标检测造成了较大干扰。

基于雷达技术的水面目标检测效果受到海杂波的影响较大,雷达图像中的海杂波非高斯特性和非平稳统计特性使得基于雷达的水面目标的检测效果受到更加严峻的挑战。因此,很多学者对海杂波的产生机理展开研究,构建相应的海杂波分布模型。研究人员发现韦布尔分布(weibulldistribution),瑞利分布(rayleighdistribution)、k分布和对数正态分布四种模型能够较好地拟合海杂波分布。基于谱估计的方法可有效抑制雷达图像的海杂波。在此基础上,利用分形理论、经验模态分解和目标特征提取等方法提取各类水面目标,比如水面低(高)速小目标,水面舰船目标等。

船舶的智能化识别程度越来越高,基于机器视觉方法的水面目标检测研究引起了越来越多的关注。由于天气、光照等因素变化导致水上场景动态变化,使得基于可见光的水面目标检测方法面临极大的挑战。任蕾、冉鑫等人针对可见光的水上目标检测展开了多项研究,并指出利用可见光技术展开水上目标检测相关研究,需要克服以下四个方面的困难:①目标所占像素较少,背景和噪声占据了可见光视频序列的大多数像素,图像信噪比较小;②海浪起伏、阳光照射和雨雪雾等不同海况和天气情况对水面目标检测带来了较大干扰;③包含水上目标的可见光视频图像中,水上目标可能会短暂地被海浪遮挡,造成检测算法丢失水面目标,降低算法的检测精度;④采集水面目标检测视频的摄像设备常常固定在船舶或者直升机中。摄像设备常受到风、浪、涌、船舶或者直升机等外界因素的影响,可能导致摄像设备采集的视频画面存在抖动现象,这要求水面目标检测算法具有较好的鲁棒性。



技术实现要素:

本发明的目的是为了提供一种基于canny算子和高斯形态学的船舶检测方法,对视频图像帧中正常成像大小的船舶进行目标检测,识别船舶目标。本发明中正常成像大小的船舶图像是指:船舶成像尺寸不小于该帧图像实际尺寸的0.15%,且成像长度或宽度不小于13个像素。该方法包含船舶轮廓提取,噪声消除和船舶轮廓重建三个部分。通过将此船舶检测方法应用于不同水上交通状态和船舶尾迹干扰的船舶检测,验证结果表明,本发明的方法在不同的测试场景中对船舶轮廓的识别均获得较高的精确率。

为达到上述目的,本发明提出一种基于canny算子和高斯形态学的船舶检测方法,适用于对视频的图像帧中,正常成像大小的船舶图像边缘的检测,包括以下步骤:

s1、对原始海事监控视频图像帧使用二维高斯滤波器去除图像噪声,得到去噪的船舶图像帧;

s2、利用canny算子,提取所述去噪的船舶图像帧中的船舶轮廓信息;

s3、根据所述船舶轮廓信息,计算自适应高斯滤波器的权值参数,根据所述权值参数,采用自适应高斯滤波器对所述船舶轮廓信息,进一步平滑去噪处理;

s4、对步骤s3的处理结果,利用形态学方法的开运算操作重构船舶轮廓,获得最终的船舶检测结果。

所述步骤s1包括以下步骤:

s11、根据所述二维高斯滤波器的核函数获得高斯卷积矩阵,所述高斯卷积矩阵的元素是图像卷积的权值;其中w是像素点与x轴之间的距离,而h代表该像素点到y轴的距离,σ是高斯核函数的标准差;

s12、对所述原始海事监控视频图像帧的任一像素,将该像素的邻域像素与所述高斯卷积矩阵进行卷积操作,对每个像素点的像素取邻域内像素的加权平均值,获得该像素点高斯去噪后的像素值,实现对图像帧去噪,得到所述去噪船舶图像帧。

所述高斯卷积矩阵为3×3大小的矩阵。

所述步骤s2包括以下步骤:

s21、计算所述去噪的船舶图像帧中所有像素的梯度方向和梯度幅度,提取船舶图像帧的所有可能边缘信息;

s22、使用梯度的非最大值抑制机制,滤除所述可能边缘信息中的非船舶的轮廓信息,剔除错误的船舶边缘点,得到真实的船舶边缘像素;

s23、利用双阈值法进一步排除所述船舶边缘像素中虚假的船舶边缘点,提取得到真实的所述船舶轮廓信息。

所述步骤s21包括以下步骤:

s211、设置x轴的卷积掩模矩阵y轴的卷积掩模矩阵针对所述去噪的船舶图像帧中的每个像素点,分别在x和y方向利用cx、cy,对像素点的灰度值进行卷积,获取梯度信息,卷积方法为:

其中,i(i,j)是像素点(i,j)的灰度值,p(i,j)和q(i,j)分别代表该像素点在x和y方向的梯度信息;

s212、根据步骤s211中获得的像素点(i,j)在x和y方向的梯度信息,计算该像素点的梯度幅度g(i,j)和梯度方向θ(i,j):

将g(i,j)大于预设阈值的像素点集合作为船舶图像帧的所有可能边缘信息。

所述步骤s23包括以下步骤:

s231、设定强边缘阈值t1和弱边缘阈值t2,其中t1>t2;

s232、g(i,j)表示像素点(i,j)的梯度幅度,g(i,j)大于t1时,则将像素点(i,j)作为强边缘点,所有强边缘像素点都是船舶轮廓点;如果t1>g(i,j)>t2,则将该像素点(i,j)作为弱边缘像素点;

s233、根据八连通度规则连接强边缘点和弱边缘点,获取canny算子最终的船舶轮廓信息。

所述步骤s3中,包括步骤:

s31、令步骤s2提取的船舶轮廓信息中的船舶轮廓为s(x,y),β为自适应高斯滤波器的权值参数,e(β)表示所述自适应高斯滤波器的期望值,g(x,y)表示所述自适应高斯滤波器算子,运算符*表示g(x,y)和s(x,y)的卷积操作,▽算子是偏导运算符,参数λ是表征e(β)收敛速度的系数,则e(β)的表达式为:

e(β)=∫∫[(s(x,y)-g(x,y)*s(x,y))2+λ((▽β)-1)2],

求得e(β)的最小值;

s32、根据所述e(β)最小值,求出β的值,作为所述自适应高斯滤波器的最优权值参数;令sp(x,y)为自适应高斯滤波器滤波后的船舶轮廓,所述自适应滤波器根据β的值,利用公式对船舶轮廓s(x,y)进行进一步平滑滤波去噪。

所述步骤s4包括以下步骤:

s41、对步骤s3中获得的进一步平滑去噪处理的船舶轮廓信息进行腐蚀操作,完全去除背景物体的边缘;

s42、对腐蚀操作后的船舶轮廓信息进行膨胀操作,重构真实的船舶轮廓,获得最终的船舶检测结果。

与现有技术相比,本发明提供的一种融合canny算子和高斯形态学运算的目标检测方法,为了实现正常成像尺寸的船舶目标检测,首先利用canny算子初步获得图像序列的船舶轮廓。在此基础上,利用高斯滤波算子滤除canny算子提取的船舶轮廓中噪声对应的轮廓像素。最后,利用形态学的开运算操作重构船舶轮廓,获得最终的船舶检测结果。相应的实验结果表明,在不同的检测环境下,提出的正常成像尺寸的船舶目标检测方法均可获得比传统的船舶检测方法更低的误检率和漏检率。

附图说明

为了更清楚地说明本发明技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图:

图1为本发明的基于canny算子和高斯形态学的船舶检测方法的流程图。

图2为基于nms机制的像素点的梯度计算示意图。

图3为本发明的视频帧中交通不繁忙的场景图。

图4为本发明的视频帧中交通繁忙的场景图。

图5为本发明的视频帧中船舶航行尾迹干扰的场景图。

图6为对图3采用本发明的方法的检测结果。

图7为对图3采用普通高斯算法的检测结果。

图8为对图4采用本发明的方法的检测结果。

图9为对图4采用普通高斯算法的检测结果。

图10为对图5采用本发明的方法的检测结果。

图11为对图5采用普通高斯算法的检测结果。

具体实施方式

为了更好地理解本发明的技术特征、目的和效果,下面结合附图对本发明进行更为详细地描述。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明专利。需要说明的是,这些附图中均采用非常简化的形式且均使用非精准的比率,仅用于方便、清晰地辅助说明本发明专利。

本发明提出一种基于canny算子和高斯形态学(cannyoperatorandgaussian-morphology,cgm)的船舶检测方法,适用于对视频的图像帧中,正常成像大小的船舶图像的检测。本发明中正常成像大小的船舶图像是指:船舶成像尺寸不小于该帧图像实际尺寸的0.15%,且成像长度或宽度不小于13个像素。本发明的船舶监控视频来源于上海海事局(maritimesafetyadministration,msa)的cctv(电子巡航闭路电视closed-circuittelevisionsystem)系统。

船舶轮廓信息是区分船舶及其周围环境的重要特征,本发明所述的船舶检测方法是通过提取图像中的船舶轮廓信息来实现的。

如图1所示,根据本发明的检测方法具体流程为:

s1、对原始海事监控视频图像帧使用二维高斯滤波器去除图像噪声,得到去噪的船舶图像帧;

s2、利用canny算子,提取所述去噪船舶图像帧中的船舶轮廓信息;

s3、根据所述船舶轮廓信息,计算自适应高斯滤波器的权值参数,根据所述权值参数,采用自适应高斯滤波器对所述船舶轮廓信息,进一步平滑去噪处理;

s4、对步骤s3的处理结果,利用形态学方法的开运算操作重构船舶轮廓,获得最终的船舶检测结果。

步骤s1具体如下:

由于cctv系统在采集船舶监控图像过程中很容易受到摄像设备抖动等外界干扰,这导致视频极易被噪声污染,需要先对船舶监控视频的图像帧去噪处理,排除船舶视频图像中潜在的噪声。鉴于高斯分布可以很好地拟合图像噪声,我们使用二维高斯滤波器去除图像噪声。所述二维高斯滤波器的核函数如下所示:

其中w是像素点与x轴之间的距离,而h代表该像素点到y轴的距离,σ是高斯核函数的标准差;

通过高斯核函数获得高斯卷积矩阵,所述矩阵的元素是图像卷积的权值。对于给定的船舶图像帧的任一像素,通过该像素的邻域像素与卷积矩阵的卷积操作,对每个像素点的像素取邻域内像素的加权平均值,获得该像素高斯去噪后的像素值。

噪声的原始像素灰度值高于其相邻像素,上述高斯平滑操作可明显降低噪声的灰度值。卷积矩阵的阶数越高,图像的去噪效果越好。然而,高阶的卷积矩阵会降低图像的边缘检测性能。已有的研究表明,3×3阶的卷积矩阵是经典的卷积矩阵,具有较好的图像去噪效果,且兼顾边缘检测需求,因此本发明中使用3×3阶矩阵作为默认的高斯卷积矩阵。

在噪声干扰比较严重的图像序列中,优秀的检测算子应该具备的三项基本要求①检测算子可以发现尽可能多的边缘;②检测到的边缘与实际边缘吻合;③实际边缘应仅被标注一次,而噪声不应被标记为边缘。canny算子符合上述要求,且对物体边缘的检测效果优于prewitt,sobel和laplacian等边缘检测算子。因此在步骤s2中本发明首先采用canny算子实现对船舶轮廓的初步提取。具体如下:

s21、对步骤s1降噪后的船舶图像帧,计算所有像素的梯度方向和梯度幅度,提取船舶图像帧的所有边缘信息;

设置x轴的卷积掩模矩阵

y轴的卷积掩模矩阵

针对所述去噪船舶图像帧中的每个像素点,分别在x和y方向利用cx、cy,对像素点的灰度值进行卷积,获取梯度信息,卷积方法为:

其中,i(i,j)是像素点(i,j)的灰度值,p(i,j)和22q(i,j)分别代表该像素点在x和y方向的梯度信息;

令g(i,j)表示像素点(i,j)的梯度幅度,θ(i,j)表示像素点(i,j)的梯度方向,

获得该像素点的梯度幅度和梯度方向;g(i,j)越大,(i,j)为边缘点的概率越高。因此,这里将g(i,j)大于预设阈值的像素点集合作为船舶图像帧的所有可能边缘信息。

s22、使用梯度的nms(non-maximumsuppression非最大值抑制)机制,滤除步骤s21得到的非船舶的轮廓信息,排除虚假的船舶边缘点,找到真实的船舶边缘像素;

如图2所示,令pc为中心点像素,p1,p2,p3和p4为pc的邻域点,图中端点g1和g2的连线是就点pc的梯度方向。

nms的判断机制为,如果中心点pc的梯度幅度小于g1(或者g2)的梯度幅度,则nms机制认为该图像帧的点pc不属于船舶的轮廓点。

s23、利用双阈值法进一步排除虚假的船舶边缘点,提取真实的船舶轮廓。

双阈值法的原理为:首先设定强边缘阈值t1和弱边缘阈值t2,其中t1>t2;g(i,j)表示像素点(i,j)的梯度幅度,g(i,j)大于t1时,则将像素点(i,j)作为强边缘点,所有强边缘像素点都是船舶轮廓点;如果t1>g(i,j)>t2,则将该像素点(i,j)作为弱边缘像素点(这里t2即可作为上述的预设阈值,那么可能边缘信息包括所有g(i,j)大于t2的像素点);

根据八连通度规则连接强边缘点和弱边缘点,获取canny算子最终的船舶轮廓信息。八连通度规则是指,若像素点(i,j)的8邻近区域中有非零像素(i′,j′)存在,则对像素点(i,j)和(i′,j′)连线作为轮廓线。至此,完成canny算子的边缘检测。

步骤s3具体如下:

令s(x,y)为步骤s2提取的船舶轮廓信息中的船舶轮廓;sp(x,y)为自适应高斯滤波器滤波后的船舶轮廓;已知自适应高斯滤波后的船舶轮廓sp(x,y)近似等于s(x,y)和s(x,y)二阶导数的和,如公式所示,

β为自适应高斯滤波器的权值参数,决定自适应高斯滤波器对s(x,y)边缘像素的模糊效果,β2是所述自适应高斯滤波器的方差。要获得自适应高斯滤波器的最优效果,首先要找到最优的β值。

令e(β)表示所述自适应高斯滤波器的期望值,g(x,y)表示所述自适应高斯滤波器算子,运算符*表示g(x,y)和s(x,y)的卷积操作,▽算子是偏导运算符,参数λ是表征e(β)收敛速度的系数,则e(β)的表达式为:

e(β)=∫∫[(s(x,y)-g(x,y)*s(x,y))2+λ((▽β)-1)2](9)

求得e(β)的最小值;根据e(β)最小值,求出β值;以β作为自适应高斯滤波器的最优权值参数。所述自适应滤波器根据β的值,利用公式(8)对船舶轮廓s(x,y)进行进一步平滑滤波去噪。

步骤s4具体如下:

由于步骤s2中的canny算子也保留了图像的部分背景对应的轮廓。例如,常见的浮标。由于浮标不是图像噪声,因此canny算子并不能消除浮标对应的边缘信息。利用浮标等背景物体的成像尺寸远小于船舶的成像尺寸,本发明利用形态学算法的腐蚀操作进一步去除canny算子提取的船舶轮廓的背景边缘。

s41、对步骤s3中获得的平滑去噪处理的船舶轮廓信息进行腐蚀操作,完全去除背景物体的边缘;

s42、对腐蚀操作后的船舶轮廓信息进行膨胀操作,重构真实的船舶轮廓,获得最终的船舶检测结果。

下面对本发明的方法进行检测实验及分析。

本发明的检测实验采用基于64位的win10操作系统,cpu的主频为3.4ghz,内存为8gb,仿真实验的平台是python(2.7版本)和opencv库(2.4.13版本)。

本发明的海事监控视频采用上海港cctv监控视频,上海港巨大的集装箱吞吐量导致上海港腹地内的航道是国内内河运输最为繁忙的航道之一。因此采用其监控视频进行船舶检测具有一定的实际意义。

本发明的对比检测方法为传统的高斯滤波船舶检测算法。虽然帧差法是背景建模和目标检测领域常用方法之一,但是帧差法并不适合本发明的船舶检测。这主要是因为本发明的船舶检测视频,部分图像帧的船舶处于抛锚状态,而帧差法会把抛锚的船舶认定为背景。因此,使用帧差法对本发明的船舶监控视频进行检测,其检测精度较低。另外一种常用的检测方法是基于高斯滤波器的船舶检测,由于高斯滤波器是基于图像的灰度分布区分船舶和背景像素,因此,基于高斯方法的滤波器不会将锚泊船标注为背景。基于此,我们分别应用本章提出的方法和传统高斯方法对海事监控视频中的船舶进行检测。为方便起见,本章提出的船舶检测算法和传统的高斯滤波船舶检测算法分别记为cgm和gaussian。

我们将采集的cctv视频划分为交通不繁忙、交通繁忙、船舶航行尾迹干扰三个典型场景分别如图3、图4、图5所示。交通繁忙和交通不繁忙的场景用于评估不同交通状态下,本发明方法的检测性能,船舶航行尾迹干扰场景用于验证本发明方法的鲁棒性。本实验定义交通繁忙的场景为图像帧包含的船舶数量不少于10艘,而交通不繁忙的场景是指图像帧的船舶数量不多于5艘。对三种场景分别用cgm和gaussian检测算法进行船舶检测。每个场景的视频帧速率是30帧每秒(fps),每帧的分辨率为1280×720。交通不繁忙场景共有539帧图片,交通繁忙场景共有660帧图片,船舶航行尾迹干扰场景对应的视频长度为330帧。由于我们采集的海事监控视频,船舶移动缓慢。如果船舶没有明显的航行状态变化(如转弯,交叉会遇,加速等),视频帧之间的差异可以忽略不计,因此我们使用船舶监控视频的关键帧来评价算法的检测性能。通过分别提取三种场景下的船舶监控视频中100个关键帧的检测结果,统计和对比两种船舶检测算法的性能。

本发明方法的船舶检测方法的评估指标为召回率和精确率。召回率(re)和精确率(pr)的定义如公式(10)和(11)所示。re表明已经检测到船舶目标中,目标为真实船舶的正确率。re值越高表示检测结果越好。参数pr代表检测器的精确性。pr值越高表示被检测算子误检的数量越少。

其中t表示算法正确检测到的船舶数量,tf表示算法漏检的船舶数量,ft表示算法误检的船舶数量。

检测效果如下所述:

图6、图7分别为cgm算法和gaussian算法对图3所示交通不繁忙场景第2帧图像的检测结果。如图6、图7所示,提出的cgm算法几乎能检测到该帧所有的船舶,而gaussian算法的检测结果显示该算法检测到多个虚警目标。图6、图7显示在海上交通不繁忙的情况下,cgm算法的检测效果明显好于gaussian算法的检测结果。

图8、图9分别为cgm算法和gaussian算法对图4所示交通繁忙场景第14帧图像的检测结果。如图8、图9所示,在海上交通繁忙的情况下,cgm算法的检测性能基本保持不变,而gaussian算法的误检率和漏检率情况明显增加。

表1的交通不繁忙和交通繁忙场景中,两种算法的召回率和精确率分布也验证了上述分析。对于交通不繁忙场景而言,cgm方法的召回率为0.96,而gaussian算子的召回率仅为0.70,cgm算法的召回率比gaussian算子的召回率高37%。cgm算法的召回率指标表明cgm大概能检测到监控视频中96%的船舶,而gaussian算子召回率表明其大约能检测到海事视频序列中70%的船舶。不过,cgm算法和gaussian算法的检测精度相同,两种算法的检测精度均为94%。对于交通繁忙场景而言,高斯算子的re为0.47,大约等于cgm算子召回率的一半。高斯算子召回率指标说明,该算法不能有效地应对海上交通繁忙状态的船舶检测任务。高斯算子检测精确率仅为0.78,这也印证了上述分析。而提出的cgm算法的召回率和精确率分别为0.96和0.91,这说明cgm算法在海上交通繁忙情况下也能获得较好的船舶检测效果。因此,我们可以认为提出的cgm算法在交通繁忙或不繁忙状态下都能获得较好的检测效果。

为了进一步验证cgm算法的鲁棒性,对图5所示的,含有船舶航行尾迹干扰场景的海事监控视频进行船舶检测实验。图10、图11分别为cgm算法和gaussian算法,对图5所示航行尾迹干扰场景第3帧图像的检测结果。如图10、图11所示,白色船舶航行过程中产生了明显的航行尾迹,该航行尾迹极大地挑战了船舶检测算法的鲁棒性。图10显示船舶的航行尾迹并没有弱化cgm算法检测性能,即提出的cgm方法并没有将航行尾迹识别为船舶,说明cgm算法能够较好地抑制船舶航行尾迹。而图11显示,gaussian算子的检测性能受到了船舶航行尾迹的严重干扰,即gaussian算子将船舶的航行尾迹识别为运动中的船舶。

表1显示,航行尾迹干扰场景对应的cgm算法的召回率和精确率分别为0.90和0.98。cgm算法在三种不同场景下的召回率和精确率均保持平稳,这说明cgm算法在不同船舶检测场景下具有较好的鲁棒性。航行尾迹干扰场景对应的gaussian算法的船舶检测平均精确率和平均召回率分别为0.88和0.60,说明gaussian算法平均检测精度约为88%,且高斯算子只能检测到视频序列中约60%的船舶,即高斯算子对海事监控视频的平均漏检率高达40%。

根据表1,在交通不繁忙、交通繁忙、船舶航行尾迹干扰三个典型场景中,cgm算子的船舶检测性能优于gaussian算子,其平均精确率和评价召回率均为0.94。基于上述定量和定性分析可知,在不同的海事监控场景下,cgm算法均可提供稳定的船舶检测性能。

表1不同场景下cgm算法与gaussian方法的检测性能

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1