本发明涉及自主检测导航技术领域,具体涉及一种基于形态学的水陆空交界线检测方法、基于形态学的水陆空交界线检测系统、介质和设备。
背景技术:
如今,无人船愈发受到广大科研人员的关注,在短短几年间,无人船的研究便取得了很大的研究成果。目前关于无人船的研究主要集中在水域,例如水质监测、水下地形测绘、救援、渔政巡逻等重要用途。为了达到无人船的自主导航要求,首先要完成海天线的检测。然而现有成熟的海天线检测算法,面对更复杂的水陆环境却显得束手无策。因此,研究一种水陆空交界线快速检测的技术,在面对多元复杂的水陆环境时,也能快速准确的检测出水陆线,为无人船在湖泊中的障碍物检测、跟踪,无人船的路径规划提供重要的参考特征,是本领域技术人员所关注的重点问题。
技术实现要素:
为了克服现有技术存在的缺陷与不足,本发明提供一种基于形态学的水陆空交界线检测方法,能快速准确的检测出水陆空交界线,为无人船在湖泊里完成自主导航提供了参考标准。
本发明的第二目的在提供一种基于形态学的水陆空交界线检测系统。
本发明的第三目的在于提供一种存储介质。
本发明的第四目的在于提供一种计算设备。
为了达到上述目的,本发明采用以下技术方案:
一种基于形态学的水陆空交界线检测方法,包括下述步骤:
s1:对获得的原始图片进行预处理,预处理包括:尺度缩放、高斯模糊去噪和颜色空间转换处理,得到预处理后图像,所述颜色空间转换处理将rgb颜色空间转换到hsv颜色空间;
s2:对预处理后图像hsv颜色空间中的亮度通道v进行形态学梯度处理,得到形态学梯度图;
s3:对形态学梯度图进行分水岭分割处理,得到分割图;
s4:对分割图采用边缘检测算法提取陆天线和水陆线。
作为优选的技术方案,步骤s1所述的对获得的原始图片进行预处理,具体步骤为:
对每一帧图像经过尺度缩放处理后变成640x480,然后采用7x7的窗口对缩放后的图像进行高斯模糊去噪处理,最后由rgb颜色空间转换到hsv颜色空间。
作为优选的技术方案,步骤s2所述的对预处理后图像hsv颜色空间中的亮度通道v进行形态学梯度处理,具体步骤为:
膨胀粗化图像中的高亮区域得到膨胀图,腐蚀细化图像中的高亮区域得到腐蚀图,膨胀图减去腐蚀图,得到天空区域、陆地区域和水面区域的边界线被增强的边界,
形态学梯度图由下列公式给出:
g(x,y)=dilate(x,y)-erode(x,y);
dilate(x,y)=max(s,t)∈b{f(x+s,y+t)};
erode(x,y)=min(s,t)∈b{f(x+s,y+t)};
其中g(x,y)是形态学梯度图,dilate(x,y)是膨胀图,erode(x,y)是腐蚀图,f(x,y)表示v通道图像,b(s,t)表示一个7×7的核;
作为优选的技术方案,步骤s3所述对形态学梯度图像进行分水岭分割处理,具体步骤为:
s31:定义m1,m2···mr表示形态学梯度图g(x,y)的区域最小值点的坐标集合,定义c(mi)表示与区域最小值mi相联系的汇水盆地中的点的坐标集合,符号max和min用于表示形态学梯度图g(x,y)的最大值和最小值,定义集合t[n]表示满足g(s,t)<n的坐标(s,t)的集合,即:
t[n]={(s,t)|g(s,t)<n};
几何上t[n]表示g(s,t)中位于平面g(s,t)=n下方的点的坐标的集合,随着水位以整数从n=min+1到n=max+1不断上升;
s32:定义cn(mi)表示汇水盆地中与淹没阶段的最小值mi相关联的点的坐标集,cn(mi)表示二值图像,由下述公式给出:
cn(mi)=c(mi)∩t[n];
c(mi)表示与区域最小值mi相联系的汇水盆地中的点的坐标集合;
s33:定义c[n]表示阶段n中已被水淹没的汇水盆地的集合;
定义c[max+1]表示所有汇水盆地的集合;
s34:采用寻找分水线的算法,令c[min+1]=t[min+1]进行初始化,然后进行递归处理,由c[n-1]计算c[n];
由c[n-1]计算c[n]的具体过程如下所述:
令q表示t[n]中的连通分量的集合,然后对每个连通分量q∈q[n],有如下三种可能性:
(a)q∈c[n-1]为空集;
(b)q∈c[n-1]包含c[n-1]的一个连通分量;
(c)q∈c[n-1]包含c[n-1]的一个以上连通分量;
由c[n-1]构建c[n]取决于这三个条件中的哪一个成立,当遇到一个新的最小值时,条件(a)发生;当q位于某些局部最小值的汇水盆地内时,条件(b)发生;当遇到全部或者部分分割两个或多个汇水盆地的山脊线时,条件(c)发生。
作为优选的技术方案,步骤s4所述的对分割图采用边缘检测算法提取陆天线和水陆线,具体采用经典sobel边缘检测算子gx、gy检测出陆天线和水陆线,步骤如下所述:
s41:水平变化:将灰度图像f(x,y)与一个大小为3的内核gx进行卷积,得到横向边缘检测的图像sx:
s42:垂直变化:将灰度图像f(x,y)与一个大小为3的内核gy进行卷积,得到纵向边缘检测的图像sy:
s43:在图像上的每一点,结合sx与sy计算出近似梯度s;
为了到达上述第二目的,本发明采用以下技术方案:
一种基于形态学的水陆空交界线检测系统,包括:图像预处理模块、形态学梯度处理模块、分割处理模块和水陆空交界线提取模块,
所述图像预处理模块包括尺度缩放单元、高斯模糊去噪处理单元、颜色空间转换单元,用于对获得的图像进行预处理,分别进行尺度缩放、高斯模糊去噪处理,将图像rgb颜色空间转换到hsv颜色空间;
所述形态学梯度处理模块用于膨胀粗化图像中的高亮区域得到膨胀图,腐蚀细化图像中的高亮区域得到腐蚀图,膨胀图减去腐蚀图,得到形态学梯度图;
所述分割处理模块用于将形态学梯度图进行分水岭分割处理;
所述水陆空交界线提取模块用于将提取图像的陆天线和水陆线,采用边缘检测算法对分割图进行提取。
作为优选的技术方案,还包括图像获取模块,所述图像获取模块采用摄相机。
为了达到上述第三目的,本发明采用以下技术方案:
一种存储介质,存储有程序,所述程序被处理器执行时实现上述基于形态学的水陆空交界线检测方法。
为了达到上述第四目的,本发明采用以下技术方案:
一种计算设备,包括处理器和用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现上述的基于形态学的水陆空交界线检测方法。
本发明与现有技术相比,具有如下优点和有益效果:
(1)本发明在面对多元复杂的水陆环境时,能快速准确的检测出水陆空交界线,为无人船在湖泊中的障碍物检测、跟踪,无人船的路径规划提供重要的参考标准。
(2)在湖泊环境中,水陆空交界线的检测受到天空、水面倒影、水面光反射、水波、陆地上的花草树木和建筑物的影响,并且这些影响的边缘强度不亚于水陆空交界线的梯度,而且水陆空交界线的形状各异导致不能使用直线特征提取,本发明采用了形态学的技术方案解决了上述消极因素对水陆空交界线检测干扰的技术问题,达到了快速准确地检测出水陆空交界线的技术效果。
附图说明
图1为本实施例基于形态学的水陆空交界线检测方法的流程示意图;
图2(a)-图2(e)为本实施例基于形态学的水陆空交界线检测方法的测试样本;
图3中(1)行-(5)行分别为图2(a)-图2(e)测试样本基于形态学的水陆空交界线检测方法的高斯模糊图、hsv颜色空间v通道图、形态学梯度图、分水岭分割图和经典sobel边缘检测图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1
如图1所示,本实施例提供一种基于形态学的水陆空交界线检测方法,具体步骤如下所述:
s1:对pointgrey摄相机获取的原始图片进行预处理;
对每一帧图像经过尺度缩放处理后变成640x480.然后采用7x7的窗口对缩放后的图像进行高斯模糊去噪处理,最后由rgb颜色空间转换到hsv颜色空间;
s2:对亮度通道(v通道)进行形态学梯度处理;
hsv颜色空间消除了色调、饱和度、亮度通道三个通道的相关性,有利于图像处理;通过大量的图像对比,发现陆地区域的亮度远远低于天空区域和水面区域,基于此特征,对亮度通道进行形态学梯度处理,增强区域间的边界线具体步骤如下所述:
膨胀粗化图像中的高亮区域得到膨胀图,腐蚀细化图像中的高亮区域得到腐蚀图,膨胀图减去腐蚀图,得到天空区域、陆地区域和水面区域间的边界,膨胀和腐蚀的差强调了区域间的边界,而同质区域不受影响。
形态学梯度图由下列表达式给出:
g(x,y)=dilate(x,y)-erode(x,y);
其中g(x,y)是形态学梯度图,dilate(x,y)是膨胀图,erode(x,y)是腐蚀图,
膨胀图由下列表达式给出:
dilate(x,y)=max(s,t)∈b{f(x+s,y+t)};
腐蚀图由下列表达式给出:
erode(x,y)=min(s,t)∈b{f(x+s,y+t)};
其中f(x,y)是一幅v通道图像,而b(s,t)是一个7×7的核。依据本实施例处理的图像特征,通过大量实验对比,7×7的核是最佳的核,核作为一个“探测器”以明确的特性检验给定的一幅图像,它的中间有一个单独定义出来的参考点,称其为锚点。膨胀是将图像f(x,y)和7×7的核b(s,t)进行卷积,即计算核覆盖区域的最大值,并把这个最大值赋值给参考点指定的像素;腐蚀与膨胀是一对相反的操作,即计算核覆盖区域的最小值并把这个最小值赋值给指定的像素。
s3:对形态学梯度图进行分水岭分割处理;
s31:定义m1,m2···mr表示形态学梯度图g(x,y)的区域最小值点的坐标集合,定义c(mi)表示与区域最小值mi相联系的汇水盆地中的点的坐标集合,符号max和min用于表示形态学梯度图g(x,y)的最大值和最小值,定义集合t[n]表示满足g(s,t)<n的坐标(s,t)的集合,即:
t[n]={(s,t)|g(s,t)<n};
几何上t[n]是g(s,t)中位于平面g(s,t)=n下方的点的坐标的集合。随着水位以整数从n=min+1到n=max+1不断上升,地形被水淹,在水位以任意增量n增加的时候,从上向下观察xy平面,会看到一幅二值图像;
s32:定义cn(mi)表示汇水盆地中与淹没阶段的最小值mi相关联的点的坐标集,cn(mi)表示二值图像,由下述公式给出:
cn(mi)=c(mi)∩t[n];
s33:定义c[n]表示阶段n中已被水淹没的汇水盆地的集合;
定义c[max+1]表示所有汇水盆地的集合;
s34:采用c[min+1]=t[min+1]初始化寻找分水线的算法,然后进行递归处理,由c[n-1]计算c[n];
由c[n-1]计算c[n]的具体过程如下所述:
令q表示t[n]中的连通分量的集合,然后对每个连通分量q∈q[n],由如下三种可能性:
(a)q∈c[n-1]为空集;
(b)q∈c[n-1]包含c[n-1]的一个连通分量;
(c)q∈c[n-1]包含c[n-1]的一个以上连通分量;
由c[n-1]构建c[n]取决于这三个条件中的哪一个成立,当遇到一个新的最小值时,条件(a)发生;当q位于某些局部最小值的汇水盆地内时,条件(b)发生;当遇到全部或者部分分割两个或多个汇水盆地的山脊线时,条件(c)发生。
在本实施例中,使用g(x,y)中对应于现有灰度值的n值就可以改善分水岭分割算法的效率;根据g(x,y)的直方图,可以确定这些值,以及最小值和最大值。形态学分水岭分割旨在精准的分割出天空区域、陆地区域和水面区域,为水陆空交界线的提取提供了保障。
s4:对分割图用边缘检测算法提取陆天线和水陆线;
s41:水平变化:将灰度图像f(x,y)与一个大小为3的内核gx进行卷积,得到横向边缘检测的图像sx:
s42:垂直变化:将灰度图像f(x,y)与一个大小为3的内核gy进行卷积,得到纵向边缘检测的图像sy:
s43:在图像上的每一点,结合sx与sy计算出近似梯度s;
上述利用经典sobel边缘检测算子gx、gy检测出两条线,上边是陆天线,下边是水陆线。本实施例对分割图用边缘检测算法提取陆天线和水陆线,与robert,prewitt,canny对比,经典的sobel算子针对水陆天图像边缘提取效果最佳,经典的sobel算子可以准确地描述出水陆空交界线。
如图2(a)-图2(e)所示,在本实施例中,选取五个样本作为测试数据,包括五种不同的水域环境,不同季节和不同光照条件的样本。
如图3所示,(1)行-(5)行对应五个样本:图3(a)、图3(b)、图3(c)、图3(d)、图3(e)按照上述步骤执行后的效果图,依次是:高斯模糊图、hsv颜色空间v通道图、形态学梯度图、分水岭分割图、经典sobel边缘检测图。
本实施例提供的基于形态学的水陆空交界线检测方法,首先对摄像机获取的高分辨率图像进行预处理,包括尺寸缩放、高斯模糊、颜色空间转换。其次对hsv颜色空间三个通道进行大量实验对比,抓住v(亮度)通道的鲜明特点。然后对v通道依次进行形态学梯度、形态学分水岭分割处理。最后利用边缘检测算子便能快速准确的提取出水陆空交界线。本实施例可以通过pointgrey摄相机,pointgrey摄相机分辨率/帧频:1920×1200/162fps、rgb输出格式、5gbit/s的传输速率、重量90克、5v供电,对各种水域的每一帧水陆图进行形态学操作,实验证明,该基于形态学的水陆空交界线检测方法能够快速准确的检测出水陆空交界线,为无人船实现自主导航提供重要的参考标准,使无人船能够适应多样的水域环境。
实施例2
本实施例还提供一种基于形态学的水陆空交界线检测系统,包括:图像预处理模块、形态学梯度处理模块、分割处理模块和水陆空交界线提取模块,所述图像预处理模块包括尺度缩放单元、高斯模糊去噪处理单元、颜色空间转换单元,用于对获得的图像进行预处理,分别进行尺度缩放、高斯模糊去噪处理,将图像rgb颜色空间转换到hsv颜色空间;
在本实施例中,形态学梯度处理模块用于膨胀粗化图像中的高亮区域得到膨胀图,腐蚀细化图像中的高亮区域得到腐蚀图,膨胀图减去腐蚀图,得到形态学梯度图;分割处理模块用于将形态学梯度图进行分水岭分割处理;水陆空交界线提取模块用于将提取图像的陆天线和水陆线,采用边缘检测算法对分割图进行提取。
在本实施例中,基于形态学的水陆空交界线检测系统还包括图像获取模块,本实施例采用pointgrey摄像机,可以安装在无人船上,实时采集图像信息。
实施例3
本实施例还提供一种存储介质,存储介质可以是rom、ram、磁盘、光盘等储存介质,该存储介质存储有一个或多个程序,所述程序被处理器执行时,实现实施例1基于形态学的水陆空交界线检测方法:
s1:对pointgrey摄相机获取的原始图片进行预处理;
对每一帧图像经过尺度缩放处理后变成640x480.然后采用7x7的窗口对缩放后的图像进行高斯模糊去噪处理,最后由rgb颜色空间转换到hsv颜色空间;
s2:对亮度通道(v通道)进行形态学梯度处理;
hsv颜色空间消除了色调、饱和度、亮度通道三个通道的相关性,有利于图像处理;通过大量的图像对比,发现陆地区域的亮度远远低于天空区域和水面区域,基于此特征,对亮度通道进行形态学梯度处理,增强区域间的边界线具体步骤如下所述:
膨胀粗化图像中的高亮区域得到膨胀图,腐蚀细化图像中的高亮区域得到腐蚀图,膨胀图减去腐蚀图,得到天空区域、陆地区域和水面区域间的边界,膨胀和腐蚀的差强调了区域间的边界,而同质区域不受影响。
形态学梯度图由下列表达式给出:
g(x,y)=dilate(x,y)-erode(x,y);
其中g(x,y)是形态学梯度图,dilate(x,y)是膨胀图,erode(x,y)是腐蚀图,
膨胀图由下列表达式给出:
dilate(x,y)=max(s,t)∈b{f(x+s,y+t)};
腐蚀图由下列表达式给出:
erode(x,y)=min(s,t)∈b{f(x+s,y+t)};
其中f(x,y)是一幅v通道图像,而b(s,t)是一个7×7的核。核作为一个“探测器”以明确的特性检验给定的一幅图像,它的中间有一个单独定义出来的参考点,称其为锚点。膨胀是将图像f(x,y)和7×7的核b(s,t)进行卷积,即计算核覆盖区域的最大值,并把这个最大值赋值给参考点指定的像素;腐蚀与膨胀是一对相反的操作,即计算核覆盖区域的最小值并把这个最小值赋值给指定的像素。
s3:对形态学梯度图进行分水岭分割处理;
s31:定义m1,m2···mr表示形态学梯度图g(x,y)的区域最小值点的坐标集合,定义c(mi)表示与区域最小值mi相联系的汇水盆地中的点的坐标集合,符号max和min用于表示形态学梯度图g(x,y)的最大值和最小值,定义集合t[n]表示满足g(s,t)<n的坐标(s,t)的集合,即:
t[n]={(s,t)|g(s,t)<n};
几何上t[n]是g(s,t)中位于平面g(s,t)=n下方的点的坐标的集合。随着水位以整数从n=min+1到n=max+1不断上升,地形被水淹,在水位以任意增量n增加的时候,从上向下观察xy平面,会看到一幅二值图像;
s32:定义cn(mi)表示汇水盆地中与淹没阶段的最小值mi相关联的点的坐标集,cn(mi)表示二值图像,由下述公式给出:
cn(mi)=c(mi)∩t[n];
s33:定义c[n]表示阶段n中已被水淹没的汇水盆地的集合;
定义c[max+1]表示所有汇水盆地的集合;
s34:采用c[min+1]=t[min+1]初始化寻找分水线的算法,然后进行递归处理,由c[n-1]计算c[n];
由c[n-1]计算c[n]的具体过程如下所述:
令q表示t[n]中的连通分量的集合,然后对每个连通分量q∈q[n],由如下三种可能性:
(a)q∈c[n-1]为空集;
(b)q∈c[n-1]包含c[n-1]的一个连通分量;
(c)q∈c[n-1]包含c[n-1]的一个以上连通分量;
由c[n-1]构建c[n]取决于这三个条件中的哪一个成立,当遇到一个新的最小值时,条件(a)发生;当q位于某些局部最小值的汇水盆地内时,条件(b)发生;当遇到全部或者部分分割两个或多个汇水盆地的山脊线时,条件(c)发生。形态学分水岭分割旨在精准的分割出天空区域、陆地区域和水面区域,为水陆空交界线的提取提供了保障。
s4:对分割图用边缘检测算法提取陆天线和水陆线;
s41:水平变化:将灰度图像f(x,y)与一个大小为3的内核gx进行卷积,得到横向边缘检测的图像sx:
s42:垂直变化:将灰度图像f(x,y)与一个大小为3的内核gy进行卷积,得到纵向边缘检测的图像sy:
s43:在图像上的每一点,结合sx与sy计算出近似梯度s;
上述利用经典sobel边缘检测算子gx、gy检测出两条线,上边是陆天线,下边是水陆线。
实施例4
本实施例还提供一种计算设备,该计算设备包括该计算设备包括处理器和存储器,存储器存储有一个或多个程序,处理器执行存储器存储的程序时,实现上述基于形态学的水陆空交界线检测方法,该方法包括下述步骤:
s1:对pointgrey摄相机获取的原始图片进行预处理;
对每一帧图像经过尺度缩放处理后变成640x480.然后采用7x7的窗口对缩放后的图像进行高斯模糊去噪处理,最后由rgb颜色空间转换到hsv颜色空间;
s2:对亮度通道(v通道)进行形态学梯度处理;
hsv颜色空间消除了色调、饱和度、亮度通道三个通道的相关性,有利于图像处理;通过大量的图像对比,发现陆地区域的亮度远远低于天空区域和水面区域,基于此特征,对亮度通道进行形态学梯度处理,增强区域间的边界线具体步骤如下所述:
膨胀粗化图像中的高亮区域得到膨胀图,腐蚀细化图像中的高亮区域得到腐蚀图,膨胀图减去腐蚀图,得到天空区域、陆地区域和水面区域间的边界,膨胀和腐蚀的差强调了区域间的边界,而同质区域不受影响。
形态学梯度图由下列表达式给出:
g(x,y)=dilate(x,y)-erode(x,y);
其中g(x,y)是形态学梯度图,dilate(x,y)是膨胀图,erode(x,y)是腐蚀图,
膨胀图由下列表达式给出:
dilate(x,y)=max(s,t)∈b{f(x+s,y+t)};
腐蚀图由下列表达式给出:
erode(x,y)=min(s,t)∈b{f(x+s,y+t)};
其中f(x,y)是一幅v通道图像,而b(s,t)是一个7×7的核。核作为一个“探测器”以明确的特性检验给定的一幅图像,它的中间有一个单独定义出来的参考点,称其为锚点。膨胀是将图像f(x,y)和7×7的核b(s,t)进行卷积,即计算核覆盖区域的最大值,并把这个最大值赋值给参考点指定的像素;腐蚀与膨胀是一对相反的操作,即计算核覆盖区域的最小值并把这个最小值赋值给指定的像素。
s3:对形态学梯度图进行分水岭分割处理;
s31:定义m1,m2···mr表示形态学梯度图g(x,y)的区域最小值点的坐标集合,定义c(mi)表示与区域最小值mi相联系的汇水盆地中的点的坐标集合,符号max和min用于表示形态学梯度图g(x,y)的最大值和最小值,定义集合t[n]表示满足g(s,t)<n的坐标(s,t)的集合,即:
t[n]={(s,t)|g(s,t)<n};
几何上t[n]是g(s,t)中位于平面g(s,t)=n下方的点的坐标的集合。随着水位以整数从n=min+1到n=max+1不断上升,地形被水淹,在水位以任意增量n增加的时候,从上向下观察xy平面,会看到一幅二值图像;
s32:定义cn(mi)表示汇水盆地中与淹没阶段的最小值mi相关联的点的坐标集,cn(mi)表示二值图像,由下述公式给出:
cn(mi)=c(mi)∩t[n];
s33:定义c[n]表示阶段n中已被水淹没的汇水盆地的集合;
定义c[max+1]表示所有汇水盆地的集合;
s34:采用c[min+1]=t[min+1]初始化寻找分水线的算法,然后进行递归处理,由c[n-1]计算c[n];
由c[n-1]计算c[n]的具体过程如下所述:
令q表示t[n]中的连通分量的集合,然后对每个连通分量q∈q[n],由如下三种可能性:
(a)q∈c[n-1]为空集;
(b)q∈c[n-1]包含c[n-1]的一个连通分量;
(c)q∈c[n-1]包含c[n-1]的一个以上连通分量;
由c[n-1]构建c[n]取决于这三个条件中的哪一个成立,当遇到一个新的最小值时,条件(a)发生;当q位于某些局部最小值的汇水盆地内时,条件(b)发生;当遇到全部或者部分分割两个或多个汇水盆地的山脊线时,条件(c)发生。形态学分水岭分割旨在精准的分割出天空区域、陆地区域和水面区域,为水陆空交界线的提取提供了保障。
s4:对分割图用边缘检测算法提取陆天线和水陆线;
s41:水平变化:将灰度图像f(x,y)与一个大小为3的内核gx进行卷积,得到横向边缘检测的图像sx:
s42:垂直变化:将灰度图像f(x,y)与一个大小为3的内核gy进行卷积,得到纵向边缘检测的图像sy:
s43:在图像上的每一点,结合sx与sy计算出近似梯度s;
上述利用经典sobel边缘检测算子gx、gy检测出两条线,上边是陆天线,下边是水陆线。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。