基于光学遥感卫星近红外谱段的海面船舶在轨识别方法
技术领域
本发明涉及目标检测识别技术领域,具体是海面船舶检测识别技术领域,特别是涉及一种基于光学遥感卫星近红外谱段的海面船舶在轨识别方法。
背景技术
因太空中的卫星不受地理位置的约束,可对全球任意点进行观测,是海面船舶信息获取的重要手段之一。现阶段针对海面船舶遥感主要分为雷达载荷和光学载荷两部分。其中雷达载荷具有全天时、全天候探测等优势,不受海浪、海面耀斑等干扰,现已发展了多种针对雷达影像的船舶识别方法,如星载SAR船舶及尾迹探测技术研究(张宇等,《遥感技术与应用》,2003年第1期第31-35页),但雷达信号噪声较大,分辨率较低,并且需要信息反演;光学载荷具有分辨率高、可视化程度高的优势,但受天气影响大,识别过程中对海浪、海面耀斑等较为敏感,为提高光学载荷检测能力,研究人员提出了较多的处理方法,如显著性、机器学习、深度学习等方法,但公开的方法大多存在复杂度较高,难以在轨直接应用的问题。
光学遥感卫星成像能力受到星上存储和数传带宽的限制,存在拍多存不了,存多传不了的现象,一种简单有效的方式是在轨对拍摄的影像进行处理,仅仅存储和下传最为关心的信息,进而提高卫星的拍摄能力。在轨信息处理需求方面,以海面船舶信息获取最为突出,地球海域辽阔,船舶目标在整幅卫星影像的占比很小,因此,开发在轨船舶检测识别技术,是未来发展的重要趋势之一。目前亟需设计一种海面船舶在轨识别方法,以满足海面船舶检测识别需求。
发明内容
基于此,有必要针对现有技术中海面船舶检测识别方法存在的问题,提供一种基于光学遥感卫星近红外谱段的海面船舶在轨识别方法,该方法可实现快速、高精度、低复杂度检测,可直接应用在光学遥感卫星的近红外图像在轨识别。
为解决上述问题,本发明采取如下的技术方案:
一种基于光学遥感卫星近红外谱段的海面船舶在轨识别方法,包括以下步骤:
获取光学遥感卫星拍摄的近红外多光谱遥感图像,并对所述近红外多光谱遥感图像进行位深转换,得到转换后的8bit图像;
对所述8bit图像进行图像二值化处理,获得所述8bit图像对应的第一二值化图像;
对所述第一二值化图像进行连通域检测;
对进行连通域检测后的所述第一二值化图像进行目标分割,得到分割后的图像;
对所述分割后的图像进行图像二值化处理,获得所述分割后的图像对应的第二二值化图像;
对所述第二二值化图像进行形态学处理,得到形态学处理后的待处理图像;
对所述待处理图像进行连通域检测;
对进行连通域检测后的所述待处理图像进行船舶粗检测,得到目标疑似感兴趣区域;
计算所述目标疑似感兴趣区域中目标的长度、宽度和置信度,并根据所述长度、所述宽度和所述置信度获得船舶精检测结果;
进行图像二值化处理的过程包括以下步骤:
计算待二值化处理的图像的自适应阈值,所述待二值化处理的图像为所述8bit图像或者所述分割后的图像;
以所述自适应阈值为参考,将所述待二值化处理的图像中灰度值小于所述自适应阈值的像素点的灰度值设置为0,将灰度值大于所述自适应阈值的像素点的灰度值设置为255;
其中,计算待二值化处理的图像的自适应阈值的步骤包括:
计算所述待二值化处理的图像的初始化阈值;
遍历所述待二值化处理的图像中的每一个像素点,计算灰度值小于所述初始化阈值的像素点的数量和灰度和,计算灰度值大于所述初始化阈值的像素点的数量和灰度和,并根据所述灰度值小于所述初始化阈值的像素点的数量和灰度和以及灰度值大于所述初始化阈值的像素点的数量和灰度和对所述初始化阈值进行修正,得到修正初始化阈值;
对所述修正初始化阈值进行迭代计算,得到所述待二值化处理的图像的自适应阈值。
与现有技术相比,本发明具有以下有益效果:
本发明利用近红外光谱在船舶识别上的物理优势,提出了一套可在轨实现的船舶识别方法,该方法通过海陆、云等目标分割,采取形态学处理及采取粗、精检测相结合的方法,实现了高精度检测识别。本发明算法结构明晰,计算复杂度低,适用于在轨实现。
附图说明
图1为本发明一种基于光学遥感卫星近红外谱段的海面船舶在轨识别方法其中一个实施例的流程示意图;
图2为近红外多光谱遥感图像;
图3为位深转换后的8bit图像;
图4为第一二值化图像;
图5为分割后的图像;
图6为第二二值化图像;
图7为形态学处理后的待处理图像;
图8为船舶粗检测后得到的目标疑似感兴趣区域;
图9为图8中目标疑似感兴趣区域的瓦片图像;
图10为图8对应的船舶精检测结果图像。
具体实施方式
海面船舶的识别可直接服务于海运贸易监管、船舶失事救助及国防安全等领域。光学遥感卫星以其高分辨率、大幅宽的优势,成为海面船舶信息获取的重要手段之一;卫星对海面拍摄时,获取的影像存在大量的无效数据,通过在轨进行船舶检测识别,仅仅存储目标区域图像和船舶信息,可大幅提升星上存储效率,提高卫星单轨信息获取能力。为避免海面耀斑、海浪、云、礁石等干扰,近年来发展了显著性检测、机器学习和深度学习等检测方法,但受其算法复杂度的束缚,现阶段难以在轨应用;仅采取RGB三通道遥感图像检测率较低,难以满足使用要求。近红外谱段可较好地分割海面背景和船舶目标,是海面船舶检测的重要信息获取手段之一。本发明基于光学遥感卫星推扫载荷的近红外谱段,提出了一套海面船舶在轨识别方法,该方法对图像进行海陆或云层自适应分割;再对存留的图像进行自适应二值化;接着,采用形态学处理和物理约束方法,初步对目标进行检测识别;最后利用目标长度、宽度、置信度等判定,进一步实现精细识别,并输出结果。该方法算法成熟度高、复杂度较低,适用于在轨应用需求。下面将结合附图及较佳实施例对本发明的技术方案进行详细描述。
在其中一个实施例中,如图1所示,本发明公开一种基于光学遥感卫星近红外谱段的海面船舶在轨识别方法,该方法包括如下的步骤一至步骤十。
步骤一、图像位深转换
首先获取光学遥感卫星拍摄的近红外多光谱遥感图像(记为RM)。这里仅以采用长光卫星技术有限公司的“吉林一号视频卫星”获取的近红外推扫图像为例进行说明,如图2所示,该近红外多光谱遥感图像的图像存储量化位数为16bit,图像大小为1264*6000像素,地面分辨率约为2.4m。
光学遥感卫星为提高信息获取能力,一般将多光谱图像量化位数为12-16bit。为了提高目标检测能力及精度,同时降低硬件平台资源开销,本方法对近红外多光谱遥感图像进行位深转换,得到转换后的8bit图像(记为RM8bit),将近红外多光谱遥感图像量化转化为8bit图像,一方面可降低处理开销,另一方面保障图像的有效信息丰富程度,以便于进行后续的处理。本发明中采用的图像位深转换方式如下式所示:
RM8bit=255×(RM-min(RM))/[max(RM)-min(RM)] (1)
其中,RM表示光学遥感卫星拍摄的近红外多光谱遥感图像,max(RM)表示取近红外多光谱遥感图像中灰度值的最大值,min(RM)表示取近红外多光谱遥感图像中灰度值的最小值。
采用上述图像位深转换方式对图2所示的近红外多光谱遥感图像进行转换后,得到如图3所示的位深转换后的8bit图像。
步骤二、RM8bit图像二值化
在本步骤中,对RM8bit进行图像二值化处理,获得RM8bit对应的第一二值化图像(记为RM8bit_Binary)。
本实施中对待二值化处理的图像进行图像二值化处理的过程包括以下步骤:
a、计算待二值化处理的图像的自适应阈值
具体自适应阈值计算方法如下:
Step1:计算初始化阈值
首先计算待二值化处理的图像的初始化阈值(记为Thread_init),并得到待二值化处理的图像的宽度和高度,分别记为W和H。初始化阈值的计算公式如下:
Thread_init=[max(RM)-min(RM)]/2 (2)
Step2:计算修正初始化阈值
遍历待二值化处理的图像中的每一个像素点,搜集并计算待二值化处理的图像中灰度值小于初始化阈值(Thread_init)的像素点的数量(above_num)和灰度和(above_sum),同时计算待二值化处理的图像中灰度值大于初始化阈值(Thread_init)的像素点的数量(below_num)和灰度和(below_sum),并根据above_num、above_sum、below_num和below_sum对Thread_init进行修正,得到修正初始化阈值(记为Thread_re)。修正初始化阈值的计算公式如下:
Thread_re=[above_sum/above_num+below_sum/below_num]/2 (3)
Step3:迭代计算
定义迭代变量:iteration=0;
While((Thread_re-Thread_init)>2&&(iteration<50))
{
迭代次数:iteration++;
更新初始化阈值:Thread_init=Thread_re;
执行Step2;
得到新的Thread_re;
}
直到while条件终止。
迭代计算完成后,最终得到待二值化处理的图像的自适应阈值(记为Thread_img)。
b、图像二值化处理
以Thread_img为参考,对待二值化处理的图像进行二值化处理,即将待二值化处理的图像中灰度值小于Thread_img的像素点的灰度值设置为0,将灰度值大于Thread_img的像素点的灰度值设置为255,处理后得到待二值化处理的图像对应的二值化图像。
将上述待二值化处理的图像替换为RM8bit,即可得到RM8bit对应的RM8bit_Binary。
利用上述图像二值化处理方法对图3所示的位深转换后的8bit图像进行图像二值化处理,得到如图4所示的对应的第一二值化图像。
步骤三、RM8bit_Binary连通域检测
对RM8bit_Binary进行连通域检测,本发明中仅计算外连通域。
步骤四、海陆及云等目标分割
在本步骤中,对进行连通域检测后的RM8bit_Binary进行海陆及云等目标的分割,得到分割后的图像(记为CM)。
进一步地,可以通过设定连通域的面积阈值和周长阈值,实现较大面积陆地或云层的分割,得到CM,具体包括以下过程:
首先,为进行连通域检测后的RM8bit_Binary中的连通域设定面积阈值(记为S_1)和周长阈值(记为P_1)。优选地,本实施例中面积阈值为S_1=10000pixel(像素),周长阈值为P_1=10000pixel(像素)。
其次,计算进行连通域检测后的RM8bit_Binary中每个连通域的面积和周长,并将面积大于S_1或者周长大于P_1的连通域的灰度值设置为0,从而得到CM。
对图4所示的第一二值化图像进行连通域检测后,再采用上述分割方法对进行连通域检测后的图4进行海陆及云等目标的分割,得到如图5所示的分割后的图像。
步骤五、CM图像二值化
在本步骤中,对CM进行图像二值化处理,获得CM对应的第二二值化图像(记为CM_Binary)。
以CM替换步骤二中的待二值化处理的图像,即可得到CM对应的CM_Binary。
对图5所示的分割后的图像进行图像二值化处理,得到如图6所示的第二二值化图像。
步骤六、CM_Binary形态学处理
在本步骤中,对CM_Binary进行形态学处理,得到形态学处理后的待处理图像(记为CM_BM)。
对CM_Binary进行形态学处理包括腐蚀操作和膨胀操作,具体包括以下步骤;
首先,对CM_Binary进行膨胀操作,其中核函数为3*3的矩形核,迭代次数为1次;
接着,对进行膨胀操作后的图像进行腐蚀操作,其中核函数为3*3的矩形核,迭代次数为1次;
最后,再对进行腐蚀操作后的图像进行膨胀操作,其中核函数为3*3的矩形核,迭代次数为2次。
经过上述膨胀-腐蚀-膨胀一系列操作后,得到CM_BM。
对图6所示的第二二值化图像进行形态学处理后,得到如图7所示的形态学处理后的待处理图像。
步骤七、CM_BM连通域检测
对CM_BM进行连通域检测,本发明中仅计算外连通域。
步骤八、船舶粗检测
在本步骤中,对进行连通域检测后的CM_BM进行船舶粗检测,得到目标疑似感兴趣区域(Area OfInteresting,AOI)。图2对应的船舶粗检测结果如图8所示,图9所示为图8中编号为(1)-(20)的目标疑似感兴趣区域对应的瓦片图像。
进一步地,可以通过连通域的面积、周长、面积周长比及紧致度等参数开展船舶粗检测,得到目标疑似感兴趣区域,该步骤具体包括以下过程:
首先,为进行连通域检测后的CM_BM中的连通域设定面积阈值、周长阈值、面积周长比阈值(记为S_P)和紧致度阈值(记为ThComp),其中面积阈值包括面积最大值(记为SMax)和面积最小值(记为SMin),周长阈值包括周长最大值(记为PMax)和周长最小值(记为PMin)。同时,构建关于连通域的面积(记为S)、周长(记为P)、面积周长比(记为S/P)及紧致度(记为Comp)的判定条件,其中判定条件如下:
1)SMin<S<SMax;
2)PMin<P<PMax;
3)S/P>S_P;
4)Comp>ThComp;
其中,Comp的计算方法如下式所示:
Comp=40*PI*S/P2 (4)
式(4)中,PI为常数π,S为连通域的面积,P为连通域的周长。
其次,计算步骤七中提取的每个连通域的S、P、S/P及Comp,并判断每个连通域的S、P、S/P及Comp是否全部满足上述判定条件中的条件1)-4),将满足上述所有4个条件的连通域区域视为目标疑似感兴趣区域并进行存储,,存储的内容主要包括连通域(即目标疑似感兴趣区域)的矩形区域坐标(记为PosBuf)和船舶粗检测得到的船舶数量(记为CNum)。
优选地,SMax为10000pixel(像素),SMin为100pixel(像素),PMax为1000pixel(像素),PMin为50pixel(像素),S_P为3pixel(像素),ThComp为1pixel(像素)。
步骤九、船舶精检测
计算步骤八中船舶粗检测得到的目标疑似感兴趣区域中目标的长度、宽度和置信度,并根据目标的长度、宽度和置信度实现船舶的精细检测,获得船舶精检测结果。图10为图8对应的船舶精检测结果图像。
在本步骤中,对于目标疑似感兴趣区域中目标的长度和宽度可采用现有技术中的计算方法实现,例如可以采用Henning Heiselberg在论文“ADirect and FastMethodology for Ship Recognition in Sentinel-2Multispectral Imagery”(RemoteSens.2016,8(12),1033;https://doi.org/10.3390/rs8121033)采取的连通域内目标长度、宽度和旋转角度的计算方法,具体计算方法可参见该论文,这里不再累述。
设定目标长度宽度比阈值(记为Th_LtoW)为Th_LtoW=3;
根据目标长度宽度比阈值选择满足精检测条件的连通域区域,其中精检测条件为:
L/W>Th_LtoW (5)
其中,L为目标长度,W为目标宽度;
对满足上述精检测条件的目标计算置信度(记为Con),计算方法如下:
Con=CSum/L/W (6)
其中,CSum为连通域内非零像素点的数量。由于目标计算中的非整数问题,为避免置信度计算后大于1,因此需对计算的置信度进行判断,若置信度大于1,则修改置信度为:Con'=2-Con。
根据各个目标的置信度确定船舶精检测结果,例如,将各个目标按照置信度由高至低进行排序,将置信度大于0.8的前十个目标作为最终的船舶精检测结果,船舶精检测结果包括解算得到的目标的长度、宽度和置信度,以及目标对应的目标疑似感兴趣区域的宽度、高度以及位置等信息。表1为图10所示船舶精检测结果图像中置信度大于0.8的前十个目标对应的船舶精检测结果,表中“NO.”代表序号,“confidance”代表置信度,“x”代表目标疑似感兴趣区域左上角对应的原始图像x坐标,“y”代表目标疑似感兴趣区域左上角对应的原始图像y坐标,“width_img”代表目标疑似感兴趣区域的宽度,“height_img”代表目标疑似感兴趣区域的高度,“width”代表解算得到的目标宽度,“length”代表解算得到的目标长度。
表1
NO. |
confidance |
x |
y |
width_img |
height_img |
width |
length |
0 |
0.9916009389 |
727 |
1294 |
53 |
55 |
11.35317 |
42.36352 |
1 |
0.9881186365 |
765 |
2070 |
41 |
59 |
10.92477 |
39.89300 |
2 |
0.9829241245 |
474 |
1467 |
48 |
53 |
10.05412 |
38.23659 |
3 |
0.9785079581 |
897 |
1332 |
47 |
56 |
10.97712 |
39.59675 |
4 |
0.9746048956 |
860 |
1944 |
40 |
48 |
9.78325 |
30.00488 |
5 |
0.9739857484 |
653 |
184 |
44 |
58 |
11.45146 |
39.49150 |
6 |
0.9732421950 |
945 |
1674 |
45 |
58 |
11.14510 |
39.76118 |
7 |
0.9712031965 |
750 |
1691 |
43 |
59 |
11.29641 |
39.83924 |
8 |
0.8844482782 |
804 |
5539 |
51 |
62 |
10.53301 |
59.68287 |
9 |
0.8750448360 |
788 |
5511 |
40 |
46 |
10.51255 |
40.22196 |
步骤十、结果输出
将精检测结果按照置信度由高至低进行输出存储,输出存储的内容主要包括:目标置信度、目标疑似感兴趣区域的位置、目标长度(单位为pixel)、目标宽度(单位为pixel)。
本发明采取的识别方法主要是面向大型船舶,因此在面积、周长上的阈值设置较大,通过修改相关阈值,本发明亦可适用于小型船舶的识别领域。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。