2. 江苏省物联网与视觉智能处理工程技术研发中心,江苏 南通 226011
2. Jiangsu IOT and Visual Intelligent Processing Engineering Technology Research and Development Center, Nantong 226011, China
船舶在航行过程中,附近环境状况,特别是海上其他船舶、岛屿和礁石等各种目标通常是驾驶人员最关注的问题。准确分类海上目标,能有效提升驾驶人员对本船的控制能力,以及对本船附近环境的感知能力[1],不仅可以发现及追踪其他船舶,还可以避开危险障碍物,确保船舶安全稳定航行。激光雷达具有快速获取高精度点云数据的能力,且不受天气和季节等因素的影响,是采集海上环境信息的有效手段,研究船舶激光雷达点云数据分类方法已成为众多学者关注的热点课题。
雷相达等[2]利用整合迁移学习获取包含强度值和高程等信息的点云特征图,将其当作全卷积网络的输入,分类船舶激光雷达点云数据,该方法对单一和多目标均具有较好的分类性能,但创建分类模型时的参数优化过程较为复杂。任永梅等[3]使用密度网格法将点云数据转换为体素网格图像,将其作为三维卷积神经网络的输入,通过特征提取和网络训练获得船舶激光雷达点云数据分类结果,该方法能避免不均匀训练样本对分类结果的影响,但参数设定主观性较强。为解决以上方法存在的不足,本文提出机器学习算法的船舶激光雷达点云数据分类方法,利用机器学习算法中学习速率快,且具有平衡误差能力的随机森林算法,分类船舶激光雷达点云数据。
1 船舶激光雷达点云数据分类 1.1 船舶激光雷达点云数据滤波使用多旋翼无人机搭载激光雷达系统,获取船舶所处海洋环境的激光雷达点云数据,并将其运用形态学滤波算法进行处理,以区分出海洋点和海洋表面上的船舶以及礁石等非海洋点。形态学滤波算法由腐蚀、膨胀、开启和闭合4种运算组成。设置
$ \left( {f \otimes g} \right)\left( {i,j} \right) = Z\left( {i,j} \right) = \mathop {\min }\limits_{Z\left( {s,t} \right) \in w} {Z_0}\left( {s,t} \right) ,$ | (1) |
$ \left( {f \oplus g} \right)\left( {i,j} \right) = Z\left( {i,j} \right) = \mathop {\max }\limits_{Z\left( {s,t} \right) \in w} {Z_0}\left( {s,t} \right) 。$ | (2) |
式中:结构元素g的窗口用w描述;原始点云数据中网格标号
结合以上2个公式,可以得到开启和闭合运算的定义:
$ \left( {f \circ g} \right) = \left( {\left( {f \otimes g} \right) \oplus g} \right),$ | (3) |
$ \left(f·g\right)=\left(\left(f\oplus g\right)\otimes g\right)。$ | (4) |
船舶激光雷达点云数据滤波的过程如下:
1) 选取规模固定的结构元窗口w,并设置点云高程阈值
2) 采用开启运算对船舶激光雷达点云数据进行滤波,利用腐蚀运算获取窗口内各点的最小高程值,在此基础上,运用膨胀运算获取相应点的最大高程值;
3) 比较点云数据中各点的高程差,若其值超过设定阈值,则相应点为非海洋点,当完成全部点的判断后,即可实现海洋与其表面物体的分离[4]。
1.2 船舶激光雷达点云数据纹理特征提取根据获得的船舶激光雷达点云数据滤波结果,使用灰度共生矩阵提取其中非海洋点部分的纹理特征,具体过程描述如下:
1) 偏移点云生成和最近邻点对创建。假设船舶激光雷达非海洋点云数据X中,任意点的坐标用
$ {\boldsymbol{\varOmega}} _x^y = \left\{ {\left( {x_i^k,{y_{{j^k}}}} \right)\left\| {\left. {{x_i} - x_i^k} \right| < r,{j^k} = map\left( k \right),} \right.x_i^k \in X,{y_{{j^k}}} \in Y} \right\}。$ | (5) |
2) 利用邻近点集生成灰度共生矩阵。将船舶激光雷达非海洋点云数据的高程信息归一化到
$ \begin{split}&{\boldsymbol{GLC}}{{\boldsymbol{M}}_{{x_i}}} =\\ &\left[ \begin{array}{*{20}{c}} N\left( {0,0} \right) & N\left( {0,2} \right) & \cdots & N\left( {0,K - 1} \right) \\ N\left( {0,1} \right) & \cdots & \cdots & N\left( {1,K - 1} \right) \\ \cdots & \cdots & \cdots & \cdots \\ N\left( {K - 1,0} \right) & N\left( {K - 1,1} \right) & \cdots & N\left( {K - 1,K - 1} \right) \end{array} \right]。\end{split} $ | (6) |
式中:K为灰度共生矩阵的阶数;
3) 船舶激光雷达非海洋点云数据纹理特征的计算。点云纹理特征主要包括同质度、不相似性和角二阶矩,其中同质度用于反映纹理信息的清晰度,不相似性用于反映纹理信息的相似程度,角二阶矩用于反映纹理信息的稳定性[5]。描述3种点云纹理特征的计算过程为:
$ Hom = \sum\limits_c {\sum\limits_d {\frac{{N\left( {c,d} \right)}}{{1 + {{\left( {c - d} \right)}^2}}}} },$ | (7) |
$ Dis = \sum\limits_c {\sum\limits_d {N\left( {c,d} \right) \cdot \left| {c - d} \right|} } ,$ | (8) |
$ ASM = \sum\limits_c {\sum\limits_d {{{\left[ {N\left( {c,d} \right)} \right]}^2}} }。$ | (9) |
针对船舶激光雷达非海洋点云数据X中各点,分别计算0°,45°,90°和135°四个方向的3种纹理特征,并进行平均值计算,所得结果即为提取的点云数据纹理特征。
1.3 船舶激光雷达点云数据分类将提取的船舶激光雷达非海洋点云数据纹理特征当作输入样本,将船舶、礁石、浅滩、海上养殖场、海草、岛屿、渔栅以及垃圾堆积物8种海洋表面常见物体作为输出,运用随机森林算法对船舶激光雷达点云数据进行分类。
随机森林由若干棵相互独立的决策树组成,并且这些决策树可以并行构建。决策树包含节点和有方向边,其中节点分为叶节点和非叶子节点,两者分别表示样本的类别、判断样本类别的特征,各分支则代表输出结果。在利用决策树进行船舶激光雷达点云数据分类的过程中,以根节点为起点,依据非叶子节点表示的特征,搜索样本中与之相匹配的特征,并依据输出结果划分样本至相应分支的子节点,在此基础上继续移动到叶节点,样本的类别即为叶节点所表示的类别。生成决策树的关键环节为分裂特征选取,通常可以利用信息熵完成。假设船舶激光雷达非海洋点云数据纹理特征数据集用R描述,则其信息熵的计算过程如下式:
$ Info\left( R \right) = - \sum\nolimits_{i = 1}^m {{p_i}{{\log }_2}{p_i}}。$ | (10) |
式中:m为数据集R中包含的类别数,本文取8,即输出的8种海洋表面常见物体;
设船舶激光雷达非海洋点云数据纹理特征数据集R的分裂特征用A描述,当完成分裂时,数据集的信息熵可转化为下式:
$ Inf{o_A}\left( R \right) = \sum\nolimits_{j = 1}^k {\frac{{\left| {{R_j}} \right|Info\left( {{R_j}} \right)}}{{\left| R \right|}}}。$ | (11) |
式中:利用分裂特征将数据集进行划分,所得份数用k描述;第j份数据集用
在分裂特征选取过程中,应将使数据集信息熵达到最小的特征,换言之,使数据集信息增益达到最大的特征选作分裂特征。数据集信息增益的计算过程如下式:
$ Gain\left( A \right) = Info\left( R \right) - Inf{o_A}\left( R \right) 。$ | (12) |
以下为运用随机森林算法分类船舶激光雷达点云数据的具体过程:
1) 针对船舶激光雷达非海洋点云数据纹理特征构成的训练样本集,采用Bagging算法从中抽取
2) 依据式(10)~式(12)所示过程,利用
3) 随机从决策树各节点的m个特征中选择
4) 随机森林即
选取范围为875 m×695 m的船舶航行海域当作实验对象,海域内包含船舶、礁石和浅滩等目标,将激光雷达系统的回波次数设置为1~3次,飞行高度设置为200~3000 m,扫描角度和扫描频率分别设置为0~60°、0~50 Hz,使用多旋翼无人机搭载该系统采集范围海域的船舶激光雷达点云数据,将其运用本文方法依次实现滤波、纹理特征提取和分类处理。
本文方法采集的船舶激光雷达点云数据部分结果,用图1描述。从图1可以看出,本文方法采集的船舶激光雷达点云数据质量较高,可以清晰、完整地呈现船舶所处海域环境信息,因此表明,本文方法能为后续船舶激光雷达点云数据分类提供可靠的数据基础。
随机选取4张舰船激光雷达点云数据,在不同结构元窗口大小下,利用Kappa系数衡量本文方法对4张点云数据的滤波效果,该指标的取值介于0~1区间内,其值越接近于1,方法的滤波效果越优异,具体测试结果用表1描述。分析表1可以发现,随着结构元窗口大小持续增加,经过本文方法的滤波处理后,4张点云数据对应的Kappa系数均呈现出先上升,后下降的趋势,当结构元窗口为20 m时,4张点云数据对应的Kappa系数均达到最大值,此时的滤波效果处于最高水平。因此表明,将结构元窗口设置为20 m,能获得更理想的船舶激光雷达点云数据滤波性能。
使用本文方法提取某船舶激光雷达点云数据中,船舶和渔栅2种目标区域的纹理特征,所得结果用图2描述。从图2可以看出,船舶目标区域的纹理特征值呈均匀分布,渔栅目标区域的纹理特征值呈现出中间高、两边低的分布趋势,可表明本文方法能清晰呈现不同目标区域的点云数据特点,提取的纹理特征具有良好的可分性。
假设某船舶激光雷达点云数据中共包含4个船舶、2个海上养殖场和1个垃圾堆积物,三者分别用实心三角形、正方形以及圆形表示,使用本文方法分类该点云数据,并分别以实线框、虚线框、加粗虚线框标记各目标的分类结果,具体用图3描述。从图3可以看出,各标记框所标记的目标与其代表的目标类型完全一致,并且每个目标均被标记,因此表明本文方法可以全面、准确地分类船舶激光雷达点云数据。
为了全面掌握船舶所处海域的环境信息,从而保证船舶顺利完成既定任务,提出了基于机器学习算法的船舶激光雷达点云数据分类方法,该方法使用多旋翼无人机搭载激光雷达系统,采集的海域环境点云数据质量较高,并且该方法具有较理想的点云数据滤波和纹理特征提取效果,同时能实现船舶激光雷达点云数据中多种目标的全面、准确分类,对提升船舶领域的探测水平具有重要意义。
[1] |
张文豪, 李松, 马跃, 等. 星载光子计数激光雷达海面点云仿真方法[J]. 红外与毫米波学报, 2020, 39(4): 483-490. DOI:10.11972/j.issn.1001-9014.2020.04.013 |
[2] |
雷相达, 王宏涛, 赵宗泽, 等. 整合迁移学习与全卷积网络的小样本机载激光雷达点云分类[J]. 中国激光, 2021, 48(16): 138-149. |
[3] |
任永梅, 杨杰, 郭志强, 等. 基于三维卷积神经网络的点云图像船舶分类方法[J]. 激光与光电子学进展, 2020, 57(16): 230-238. |
[4] |
陈博伟, 庞勇, 李增元, 等. 基于随机森林的光子计数激光雷达点云滤波[J]. 地球信息科学学报, 2019, 21(6): 898-906. DOI:10.12082/dqxxkx.2019.190013 |
[5] |
顾尚泰, 王玲, 马燕新, 等. 基于分层墨卡托投影的激光雷达点云数据局部特征描述[J]. 光学学报, 2020, 40(20): 137-143. |