本发明涉及船舶识别技术领域,具体涉及一种基于点云图像的船舶识别方法及装置。
背景技术:
船舶识别技术在军事领域和民用领域已经广泛应用,比如海上交通监控、海上搜救以及海洋污染监控等方面。船舶图像的主要类型有合成孔径雷达图像、红外图像、可见光图像以及激光雷达点云图像等。合成孔径雷达图像可以使用雷达全天候获取,但其分辨率低,并且雷达的价格比较高。红外图像通过热成像进行监控,也可全天候获取,但其边缘模糊,信噪比差,一般作为可见光图像的补充信息进行船舶识别。使用摄像机采集的可见光图像分辨率高,能够提供丰富的视觉信息,但容易受到光照强度、天气因素的影响。激光雷达点云图像属于三维图像,包含船舶的所有空间信息,并且受光照因素的影响较小。
目前的船舶识别方法主要有两大类,一类是基于传统手工特征的船舶识别方法,另一类是基于深度学习的船舶识别方法。传统方法提取的特征有较大局限性,不仅依赖专家知识,而且需要耗费大量人力和时间。基于深度学习的船舶识别方法将特征提取和分类器训练整合在一起,可以自动获取结构信息,具有强大的特征提取能力,克服了传统方法面临的手工设计特征的问题。在图像识别领域,主要使用深度学习中的卷积神经网络方法进行处理。基于卷积神经网络的可见光船舶识别方法已经取得了较好的识别效果,但在光照较差或极端天气情况等影响下摄像机无法获得可见光图像。
技术实现要素:
本发明的目的在于克服上述技术不足,提供一种基于点云图像的船舶识别方法及装置,解决现有技术中船舶图像识别受到光照影响无法进行准确识别的技术问题。
为达到上述技术目的,本发明的技术方案提供一种基于点云图像的船舶识别方法,包括以下步骤:
构建船舶点云图像数据集,对所述船舶点云图像数据集中每一点云图像进行船舶标定类别标签;
将所述船舶点云图像数据集中点云图像转换为三维体素网格图像,以所述三维体素网格图像作为样本数据对三维卷积神经网络进行训练,得到分类模型;
利用所述分类模型对待识别点云图像进行分类识别。
本发明还提供一种基于点云图像的船舶识别装置,包括处理器以及存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现所述基于点云图像的船舶识别方法。
与现有技术相比,本发明的有益效果包括:本发明首先获取船舶的点云图像构建船舶点云图像数据集,由于点云图像的获取不会受到光照条件差的影响,因此本发明中船舶识别不会受到光照的影响。由于点云图像是非结构化数据,因此将其先转换为规则的三维体素网格图像后再输入三维卷积神经网络进行训练,最后得到分类模型,从而实现船舶的自动分类识别,将点云图像转换为三维体素网格图像后再进行训练,可以加快训练速度,提高分类模型的识别准确率。
附图说明
图1是本发明提供的基于点云图像的船舶识别方法一实施方式的流程图;
图2是本发明提供的几种不同类别船舶的点云图一实施方式的点云图像样本图;
图3是本发明提供的三维卷积神经网络一实施方式的网络结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1
如图1所示,本发明的实施例1提供了基于点云图像的船舶识别方法,以下简称本方法,包括以下步骤:
s1、构建船舶点云图像数据集,对所述船舶点云图像数据集中每一点云图像进行船舶标定类别标签;
s2、将所述船舶点云图像数据集中点云图像转换为三维体素网格图像,以所述三维体素网格图像作为样本数据对三维卷积神经网络进行训练,得到分类模型;
s3、利用所述分类模型对待识别点云图像进行分类识别。
本实施例首先获取船舶的点云图像构建船舶点云图像数据集,由于点云图像的获取不会受到光照条件差等因素的影响,因此本方法实现船舶识别不会受到光照的影响。由于点云图像是非结构化数据,因此需要将其先转换为规则的三维体素网格图像后再输入三维卷积神经网络(threedimensionalconvolutionalneuralnetwork,3dcnn)来提取特征,最后得到分类模型。得到分类模型后,将待识别点云图像转换为三维网格体素图像后输入到三维卷积神经网络中提取特征,再将提取特征输入到训练好的分类模型中进行预测,得到船舶预测类别标签,实现点云图像船舶识别。将点云图像转换为三维体素网格图像后再进行训练,可以加快训练速度,提高分类模型的识别准确率。
本发明提供的基于深度学习的激光雷达点云图像船舶识别方法能够解决在光照条件差等因素的影响下无法使用可见光进行船舶图像识别的问题,并且识别准确率高,训练速度快。
优选的,构建船舶点云图像数据集,具体为:
获取各类船舶的三维模型,从所述三维模型采样得到单个视角的点云图像;
通过三维仿射变换对所述点云图像进行扩容,得到所述船舶点云图像数据集。
构建船舶点云图像数据集的过程是:由于目前没有公开可用的使用激光雷达获取的船舶点云图像数据集,所以本发明实施例采用如下方法模拟激光雷达获取点云图像,具体为:先获取各类船舶的三维模型,本实施例需要识别的船舶类型有五种,分别为游艇、皮划艇、帆船、客船以及货船;然后从三维模型采样得到如图2所示的单个视角的点云图像,再通过三维仿射变换对点云图像进行扩容得到船舶点云图像数据集。
优选的,通过三维仿射变换对所述点云图像进行扩容,具体为:
通过三维仿射变换对每一所述点云图像进行旋转变换,每旋转设定角度得到一幅新增的点云图像;
对旋转变换后得到的每一点云图像进行平移变换,每平移一设定距离得到一幅新增的点云图像。
通过三维仿射变换对点云图像沿着z轴进行旋转,并对点云图像标记类别。本实施例中每旋转10度获取一幅点云图像,因此每一类船舶获得360/10=36张不同视角的点云图像,5类船舶的三维模型,共对应180张点云图像。进一步对180张点云图像分别沿x轴作20米、40米以及60米平移变换,因此构建的船舶点云图像数据集共包含了720张点云图像,并以.pcd格式对点云图像进行存储。作旋转和平移的目的是实现数据增强,扩大数据集,提高模型的泛化能力和识别能力。
三维仿射变换就是对点云图像的原始坐标值进行缩放、旋转、平移后得到新的坐标值。本发明中仅对原始点云图像的坐标做旋转和平移操作。假设原始点云图像的坐标为x=(x,y,z),三维仿射变换后的点云图像的坐标为y=(x′,y′,z′)。由坐标x得到坐标y的计算公式为:
y=ax b
b=[b00b01b02]t
其中,a为旋转矩阵,b为平移矩阵。
更具体的,假设xy平面坐标系沿着z轴旋转θ,并沿x轴平移距离d,则新坐标系中的坐标值可以表示为如下矩阵形式:
再增加一个维度就可以将旋转变换和平移变换进行统一,表示为如下形式:
优选的,获取各类船舶的三维模型,具体为:
从pascal3d 制作的三维模型数据集中获取船舶cad三维模型。
优选的,将所述船舶点云图像数据集中点云图像转换为三维体素网格图像,具体为:使用密度网格法将所述点云图像转换为三维体素网格图像;
分别计算所述三维体素网格图像中每个网格的命中状态和穿透状态:
其中,
根据所述命中状态和穿透状态计算网格的后验平均值:
其中,
判断所述后验平均值是否大于设定阈值,如果大于,则网格被占用,否则网格没有被占用:
将被占用的网格的值设为1得到所述三维体素网格图像。
由于点云是非结构化数据,因此需要将目前将点云图像转换为比较规则的三维体素网格图像后,再输入到三维卷积神经网络中来提取特征。
根据空间占用率估计立体网格,每个网格有两个状态,占用(即包含点云,用1表示)或未占用(即不含点云,用0表示)。
使用密度网格法将点云图像转为三维体素网格图像,具体如下:对于给定的坐标为(i,j,k)的网格,用zt表示空间中每个网格被占用的状态,zt=1表示网格被占用,zt=0表示网格没有被占用。通过计算的后验平均值判断网格是否被占用,本实施例根据实验数据设置设定阈值为0.8,当后验平均值大于0.8时判定网格被占用,否则网格不被占用。最后把被占用的网格的值全设为1来组成三维体素网格图像,输入到三维卷积神经网络中。本实施例中体素网格的分辨率设置为(0.2m)3,体素网格的尺寸为48×48×48。
优选的,以所述三维体素网格图像作为样本数据对三维卷积神经网络进行训练,得到分类模型,具体为:
依次将每一所述三维体素网格图像输入所述三维卷积神经网络,提取不同类型船舶的图像特征,利用softmax函数根据所述图像特征得到预测类别标签,利用损失函数计算所述预测类别标签与所述标定类别标签之间的误差,根据所述误差调整所述三维卷积神经网络的权值和偏差,得到所述分类模型。
将训练集的点云图像转换为三维体素网格图像输入到三维卷积神经网络中提取不同类型的船舶图像特征,利用softmax函数得到点云图像的预测类别标签,这个过程也称之为前向传播过程。接着计算预测类别标签和标记的标定类别标签之间的误差,通过反向传播过程调整权值和偏差,使误差最小化,得到最优的分类模型。
优选的,所述三维卷积神经网络包括卷积层、池化层、全连接层以及softmax层;
所述卷积层的激活函数为prelu函数,所述全连接层的激活函数为relu函数。
本实施例使用的三维卷积神经网络结构如图3所示,其包括3个卷积层,一个池化层,两个全连接层和一个softmax层。具体如下:
卷积层(f,d,s)的输入数据是四维的量,其中三个维度是d×d×d的滤波器尺寸信息,另一个维度是特征映射。
所以第一个卷积层conv3d(32,5,2)表示将输入的三维体素网格图像与32个核尺寸为5×5×5,步长为2的卷积核进行卷积,生成32个22×22×22的特征映射。
第二个卷积层conv3d(32,3,1)表示用32个尺寸为3×3×3,步长为1的卷积核对32个22×22×22的特征映射进行卷积,生成32个20×20×20的特征映射。
第三个卷积层conv3d(64,3,1)表示用64个尺寸为3×3×3,步长为1的卷积核对32个20×20×20的特征映射进行卷积,生成64个18×18×18的特征映射。
卷积层3比卷积层2的卷积核数量多取了一倍,是为了提升特征提取效果。
池化层(m,s)对上一层的卷积结果进行降维,减少计算量,本实施例选用最大池化,可以更多的保留图像纹理信息。
因此第一个池化层maxpooling3d(2,2)表示采用的核尺寸为2×2×2,步长为2,池化操作后,生成64个9×9×9的特征映射。
全连接层有n个输出神经元。它连接上层提取到的所有特征,将特征降维为全连接的一维特征,最终将输出神经元送入到输出层分类。
因此,第一个全连接层fc1(512)表示有512个输出神经元。
第二个全连接层fc2(128)表示有128个输出神经元。
softmax层也称为第三个全连接层或者输出层,输出节点为5,输出的节点数和船舶点云图像数据集中的船舶类型的数量一致。
卷积层使用的激活函数是非线性的激活函数prelu(parametricrectifiedlinearunit),防止在输入值小于0时,出现参数不更新的现象。全连接层使用的激活函数是修正线性单元relu函数。prelu函数和relu函数的表达式分别如下:
其中x表示输入值,i表示不同的通道,ai是一个固定值,本发明中ai取0.1。
本实施例使用的三维卷积神经网络参数设置为:学习率为0.001,批处理尺寸batchsize为32,训练周期为50,由于训练集样本为580张,所以50个训练周期总共需要迭代908次。
优选的,利用损失函数计算所述预测类别标签与所述标定类别标签之间的误差,具体为:
其中,j(θ)为误差,m为进行训练的三维体素网格图像的数量,x(i)为样本数据,i=1,2,…,m,y(i)为标定类别标签,hθ(x(i))是针对每一船舶类别估算出概率值的假设函数,j为船舶类别编号,j=1,2,…,k,k为船舶类型的数量,1{true}=1,1{false}=0;
θ为模型参数:
所述假设函数为:
其中,p(y=j|x)针对第j类船舶估算的概率值。
损失函数是衡量模型预测值和真实值之间的差异的函数。本发明实施例使用的损失函数是交叉熵损失函数,对于有m个样本x(i)的训练集{(x(1),y(1)),(x(2),y(2)),…,(x(m),y(m))},若训练集共有k种船舶类别,则有标定类别标签y(i)∈{1,2,…,k},对于给定的输入数据x(i),使用交叉熵损失函数计算误差值。
优选的,根据所述误差调整所述三维卷积神经网络的权值和偏差,得到所述分类模型,具体为:
采用adam优化算法求解损失函数的最小值,得到优化后的所述分类模型。
adam优化算法求解损失函数的最小值,进而得到最优的分类模型。传统的随机梯度下降算法的学习率在卷积神经网络训练过程中保持不变,而adam优化算法通过计算梯度的一阶矩估计和二阶矩估计为不同参数设计自适应的学习率。本实施例中adam优化算法的参数取默认参数,即初始学习率取0.001,一阶矩估计的指数衰减率取0.9,二阶矩估计的指数衰减率取0.999,epsilon的取值为1e-08,这个值非常小,是为了防止出现除以0的情况。
优选的,本方法还包括:
将所述船舶点云图像数据集分为训练集和测试集两部分;
通过所述训练集训练得到所述分类模型,通过所述测试集对所述分类模型进行测试,得到所述分类模型的分类准确率。
具体的,训练集中点云图像占船舶点云图像数据集的80%,测试集中点云图像占船舶点云图像数据集的20%,同时为了保证数据的平衡性,使每一类船舶的训练样本和测试样本的比例为4:1。因此,由于本实施例中训练集中点云图像为580张,每一类点云图像有116张。因此,测试集中点云图像设置有140张,每一类点云图像有28张。
将测试集中点云图像要转换为三维占用网格体素数据后输入到三维卷积神经网络中提取特征,再将提取特征输入到训练好的分类模型中进行测试,得到船舶类别,实现点云图像船舶识别。
本实施例用测试集的140张点云图像测试得到的识别准确率结果是95.71%,训练时间49.735s。而传统方法中提取特征后进行k-means聚类的时间为10607s,相比之下,本发明的方法不仅识别准确率高,不需要人工提取特征,而且运算速度也快,在目标识别和智能交通等领域具有广阔的应用前景。
实施例2
本发明的实施例2提供了基于点云图像的船舶识别装置,包括处理器以及存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现实施例1提供的基于点云图像的船舶识别方法。
具体的,处理器可采用inter(r)core(tm)i9-7980xe@2.6ghz处理器,32gb内存,使用python3.5在tensorflow框架上进行软件编程。
本发明实施例提供的基于点云图像的船舶识别装置,用于实现基于点云图像的船舶识别方法,因此,基于点云图像的船舶识别方法所具备的技术效果,基于点云图像的船舶识别装置同样具备,在此不再赘述。
以上所述本发明的具体实施方式,并不构成对本发明保护范围的限定。任何根据本发明的技术构思所做出的各种其他相应的改变与变形,均应包含在本发明权利要求的保护范围内。
1.一种基于点云图像的船舶识别方法,其特征在于,包括以下步骤:
构建船舶点云图像数据集,对所述船舶点云图像数据集中每一点云图像进行船舶标定类别标签;
将所述船舶点云图像数据集中点云图像转换为三维体素网格图像,以所述三维体素网格图像作为样本数据对三维卷积神经网络进行训练,得到分类模型;
利用所述分类模型对待识别点云图像进行分类识别。
2.根据权利要求1所述的基于点云图像的船舶识别方法,其特征在于,构建船舶点云图像数据集,具体为:
获取各类船舶的三维模型,从所述三维模型采样得到单个视角的点云图像;
通过三维仿射变换对所述点云图像进行扩容,得到所述船舶点云图像数据集。
3.根据权利要求2所述的基于点云图像的船舶识别方法,其特征在于,通过三维仿射变换对所述点云图像进行扩容,具体为:
通过三维放射变换对每一所述点云图像进行旋转变换,每旋转设定角度得到一幅新增的点云图像;
对旋转变换后得到的每一点云图像进行平移变换,每平移一设定距离得到一幅新增的点云图像。
4.根据权利要求2所述的基于点云图像的船舶识别方法,其特征在于,获取各类船舶的三维模型,具体为:
从pascal3d 数据集中获取船舶的三维模型。
5.根据权利要求1所述的基于点云图像的船舶识别方法,其特征在于,将所述船舶点云图像数据集中点云图像转换为三维体素网格图像,具体为:使用密度网格法将所述点云图像转换为三维体素网格图像;
分别计算所述三维体素网格图像中每个网格的命中状态和穿透状态:
其中,
根据所述命中状态和穿透状态计算网格的后验平均值:
其中,
判断所述后验平均值是否大于设定阈值,如果大于,则网格被占用,否则网格没有被占用:
将被占用的网格的值设为1得到所述三维体素网格图像。
6.根据权利要求1所述的基于点云图像的船舶识别方法,其特征在于,以所述三维体素网格图像作为样本数据对三维卷积神经网络进行训练,得到分类模型,具体为:
依次将每一所述三维体素网格图像输入所述三维卷积神经网络,提取不同类型船舶的图像特征,利用softmax函数根据所述图像特征得到预测类别标签,利用损失函数计算所述预测类别标签与所述标定类别标签之间的误差,根据所述误差调整所述三维卷积神经网络的权值和偏差,得到所述分类模型。
7.根据权利要求6所述的基于点云图像的船舶识别方法,其特征在于,利用损失函数计算所述预测类别标签与所述标定类别标签之间的误差,具体为:
其中,j(θ)为误差,m为进行训练的三维体素网格图像的数量,x(i)为样本数据,i=1,2,…,m,y(i)为标定类别标签,hθ(x(i))是针对每一船舶类别估算出概率值的假设函数,j为船舶类别编号,j=1,2,…,k,k为船舶类型的数量,1{true}=1,1{false}=0;
θ为模型参数:
所述假设函数为:
其中,p(y=j|x)针对第j类船舶估算的概率值。
8.根据权利要求6所述的基于点云图像的船舶识别方法,其特征在于,根据所述误差调整所述三维卷积神经网络的权值和偏差,得到所述分类模型,具体为:
采用adam优化算法求解损失函数的最小值,得到优化后的所述分类模型。
9.根据权利要求1所述的基于点云图像的船舶识别方法,其特征在于,还包括:
将所述船舶点云图像数据集分为训练集和测试集两部分;
通过所述训练集训练得到所述分类模型,通过所述测试集对所述分类模型进行测试,得到所述分类模型的分类准确率。
10.一种基于点云图像的船舶识别装置,其特征在于,包括处理器以及存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现如权利要求1-9任一所述的基于点云图像的船舶识别方法。
技术总结