舰船科学技术  2022, Vol. 44 Issue (17): 140-143    DOI: 10.3404/j.issn.1672-7649.2022.17.028   PDF    
机器学习算法的船舶激光雷达点云数据分类
施亮1,2, 邢俊鑫2, 蔡艳婧2     
1. 香港理工大学 工程学院,香港 999077;
2. 江苏省物联网与视觉智能处理工程技术研发中心,江苏 南通 226011
摘要: 为提高对本船所处海域环境的感知能力,研究机器学习算法的船舶激光雷达点云数据分类方法。利用多旋翼无人机搭载激光雷达系统,获取船舶所处海域环境的点云数据,将其运用形态学滤波算法进行滤波处理,区分出点云数据中的非海洋点,使用灰度共生矩阵提取非海洋点部分的纹理特征,据其采用机器学习算法中的随机森林算法,实现船舶激光雷达点云数据分类。实验结果表明:为获得较理想的船舶激光雷达点云数据滤波性能,需将该方法的结构元窗口设置为20 m;该方法所提取非海洋点部分的纹理特征具有较好的可分性,并且对非海洋点部分的分类全面性和准确性较高。
关键词: 机器学习     船舶     激光雷达     点云数据分类     形态学滤波     随机森林    
Classification of ship LIDAR point cloud data based on machine learning algorithm
SHI Liang1,2, XING Jun-xin2, CAI Yan-jing2     
1. Faculty of Engineering. The Hong Kong Polytechnic University, Hongkong 999077, China;
2. Jiangsu IOT and Visual Intelligent Processing Engineering Technology Research and Development Center, Nantong 226011, China
Abstract: In order to improve the perception ability of ship managers to the sea environment where the ship is located, the classification method of ship LIDAR point cloud data based on machine learning algorithm is studied. The point cloud data of the marine environment where the ship is located is obtained by using the lidar system of the multi rotor UAV. The point cloud data is filtered by using the morphological filtering algorithm to distinguish the non ocean points in the point cloud data. The texture features of the non ocean points are extracted by using the gray level co-occurrence matrix. According to the random forest algorithm in the machine learning algorithm, the classification of the ship LIDAR point cloud data is realized. The experimental results show that in order to obtain better filtering performance of ship LIDAR point cloud data, the structural element window of this method should be set to 20 m. The texture features of non ocean points extracted by this method have good separability, and the classification of non ocean points is comprehensive and accurate.
Key words: machine learning     warship     lidar     classification of point cloud data     morphological filtering     random forest    
0 引 言

船舶在航行过程中,附近环境状况,特别是海上其他船舶、岛屿和礁石等各种目标通常是驾驶人员最关注的问题。准确分类海上目标,能有效提升驾驶人员对本船的控制能力,以及对本船附近环境的感知能力[1],不仅可以发现及追踪其他船舶,还可以避开危险障碍物,确保船舶安全稳定航行。激光雷达具有快速获取高精度点云数据的能力,且不受天气和季节等因素的影响,是采集海上环境信息的有效手段,研究船舶激光雷达点云数据分类方法已成为众多学者关注的热点课题。

雷相达等[2]利用整合迁移学习获取包含强度值和高程等信息的点云特征图,将其当作全卷积网络的输入,分类船舶激光雷达点云数据,该方法对单一和多目标均具有较好的分类性能,但创建分类模型时的参数优化过程较为复杂。任永梅等[3]使用密度网格法将点云数据转换为体素网格图像,将其作为三维卷积神经网络的输入,通过特征提取和网络训练获得船舶激光雷达点云数据分类结果,该方法能避免不均匀训练样本对分类结果的影响,但参数设定主观性较强。为解决以上方法存在的不足,本文提出机器学习算法的船舶激光雷达点云数据分类方法,利用机器学习算法中学习速率快,且具有平衡误差能力的随机森林算法,分类船舶激光雷达点云数据。

1 船舶激光雷达点云数据分类 1.1 船舶激光雷达点云数据滤波

使用多旋翼无人机搭载激光雷达系统,获取船舶所处海洋环境的激光雷达点云数据,并将其运用形态学滤波算法进行处理,以区分出海洋点和海洋表面上的船舶以及礁石等非海洋点。形态学滤波算法由腐蚀、膨胀、开启和闭合4种运算组成。设置 $ f\left( {x,y} \right) $ 代表船舶海洋环境激光雷达点云数据, $ g\left( {x,y} \right) $ 代表与点云数据尺寸和形状均相关的结构元,若使用二维网格保存点云数据,其中行列 $ \left( {x,y} \right) $ 值与网格标号 $ \left( {i,j} \right) $ 相对应,则腐蚀和膨胀2种运算的定义分别如下式:

$ \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描述;原始点云数据中网格标号 $ \left( {s,t} \right) $ 的像素值用 $ {Z_0}\left( {s,t} \right) $ 描述;完成形态学运算后,点云数据中网格标号 $ \left( {i,j} \right) $ 的像素值用 $ Z\left( {i,j} \right) $ 描述。

结合以上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,并设置点云高程阈值 $ {T_{\max }} $

2) 采用开启运算对船舶激光雷达点云数据进行滤波,利用腐蚀运算获取窗口内各点的最小高程值,在此基础上,运用膨胀运算获取相应点的最大高程值;

3) 比较点云数据中各点的高程差,若其值超过设定阈值,则相应点为非海洋点,当完成全部点的判断后,即可实现海洋与其表面物体的分离[4]

1.2 船舶激光雷达点云数据纹理特征提取

根据获得的船舶激光雷达点云数据滤波结果,使用灰度共生矩阵提取其中非海洋点部分的纹理特征,具体过程描述如下:

1) 偏移点云生成和最近邻点对创建。假设船舶激光雷达非海洋点云数据X中,任意点的坐标用 $ \left( {x,y} \right) $ 描述,将X沿着 $ \theta $ 方向移动d个单位,便能得到偏移点云Y。根据X创建二进制空间分割树,通过以r为半径的邻域搜索处理树中各点 $ {x_i} $ ,可获得最近邻点集 $ B\left( {{x_i},r} \right) = \left\{ {\left| {{x_i} - x_i^k} \right| < r} \right\} $ ,其中 $ {x_i} $ 的最近邻点个数和编码分别用nk描述,且k的取值介于 $ \left[ {0,n} \right] $ 范围内, $ {x_i} $ 的球邻域点集用 $ x_i^k $ 描述。根据创建的二进制空间分割树,在X中查找点 $ {y_i} $ 的最近邻点,并将其编码记作 $ {i^j} $ ,同时创建邻近点的键值对 $ map\left( {{i^j},j} \right) $ ,据其可以求出偏移点云Y $ x_i^k $ 的最近邻点 $ {y_{{j^k}}} $ ,因此最终的邻近点集可利用下式描述:

$ {\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) 利用邻近点集生成灰度共生矩阵。将船舶激光雷达非海洋点云数据的高程信息归一化到 $ \left[ {0,K} \right] $ 区间内,并结合上式创建灰度共生矩阵:

$ \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为灰度共生矩阵的阶数; $ N\left( {c,d} \right) $ 为灰度级cd的数量;cd $ x_i^k $ $ {y_{{j^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种海洋表面常见物体; $ {p_i} $ 为数据集Ri类别的占比。由该式可得,数据集的信息熵与数据集内不同类别样本占比的相似度具有正比关系。

设船舶激光雷达非海洋点云数据纹理特征数据集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份数据集用 $ {R_j} $ 描述。

在分裂特征选取过程中,应将使数据集信息熵达到最小的特征,换言之,使数据集信息增益达到最大的特征选作分裂特征。数据集信息增益的计算过程如下式:

$ Gain\left( A \right) = Info\left( R \right) - Inf{o_A}\left( R \right) 。$ (12)

以下为运用随机森林算法分类船舶激光雷达点云数据的具体过程:

1) 针对船舶激光雷达非海洋点云数据纹理特征构成的训练样本集,采用Bagging算法从中抽取 $ {N_t} $ 个样本当作训练样本子集,剩余样本当作测试样本子集。

2) 依据式(10)~式(12)所示过程,利用 $ {N_t} $ 个训练样本子集完成 $ {N_t} $ 个决策树的构建。

3) 随机从决策树各节点的m个特征中选择 $ {N_f} $ 个待选特征,并从中选择最优分裂特征以最大程度地分裂各决策树,停止条件为节点内的训练样本具有相同的类别。

4) 随机森林即 $ {N_t} $ 个决策树构成的集合,利用该随机森林对测试样本子集进行分类,通过各决策树的投票,将得票最多的类别作为船舶激光雷达点云数据分类结果。

2 结果分析

选取范围为875 m×695 m的船舶航行海域当作实验对象,海域内包含船舶、礁石和浅滩等目标,将激光雷达系统的回波次数设置为1~3次,飞行高度设置为200~3000 m,扫描角度和扫描频率分别设置为0~60°、0~50 Hz,使用多旋翼无人机搭载该系统采集范围海域的船舶激光雷达点云数据,将其运用本文方法依次实现滤波、纹理特征提取和分类处理。

本文方法采集的船舶激光雷达点云数据部分结果,用图1描述。从图1可以看出,本文方法采集的船舶激光雷达点云数据质量较高,可以清晰、完整地呈现船舶所处海域环境信息,因此表明,本文方法能为后续船舶激光雷达点云数据分类提供可靠的数据基础。

图 1 船舶激光雷达点云数据部分结果 Fig. 1 Partial results of ship LIDAR point cloud data

随机选取4张舰船激光雷达点云数据,在不同结构元窗口大小下,利用Kappa系数衡量本文方法对4张点云数据的滤波效果,该指标的取值介于0~1区间内,其值越接近于1,方法的滤波效果越优异,具体测试结果用表1描述。分析表1可以发现,随着结构元窗口大小持续增加,经过本文方法的滤波处理后,4张点云数据对应的Kappa系数均呈现出先上升,后下降的趋势,当结构元窗口为20 m时,4张点云数据对应的Kappa系数均达到最大值,此时的滤波效果处于最高水平。因此表明,将结构元窗口设置为20 m,能获得更理想的船舶激光雷达点云数据滤波性能。

表 1 船舶激光雷达点云数据滤波Kappa系数 Tab.1 Filtering test results of ship LIDAR point cloud data

使用本文方法提取某船舶激光雷达点云数据中,船舶和渔栅2种目标区域的纹理特征,所得结果用图2描述。从图2可以看出,船舶目标区域的纹理特征值呈均匀分布,渔栅目标区域的纹理特征值呈现出中间高、两边低的分布趋势,可表明本文方法能清晰呈现不同目标区域的点云数据特点,提取的纹理特征具有良好的可分性。

图 2 船舶激光雷达点云数据纹理特征提取结果 Fig. 2 Texture feature extraction results of ship LIDAR point cloud data

假设某船舶激光雷达点云数据中共包含4个船舶、2个海上养殖场和1个垃圾堆积物,三者分别用实心三角形、正方形以及圆形表示,使用本文方法分类该点云数据,并分别以实线框、虚线框、加粗虚线框标记各目标的分类结果,具体用图3描述。从图3可以看出,各标记框所标记的目标与其代表的目标类型完全一致,并且每个目标均被标记,因此表明本文方法可以全面、准确地分类船舶激光雷达点云数据。

图 3 船舶激光雷达点云数据分类结果 Fig. 3 Classification results of ship LIDAR point cloud data
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.