1.本发明涉及港口散装货物自动化作业技术领域,尤其涉及一种基于点云深度学习的散货船只船体结构识别方法。
背景技术:
2.随着港口无人化程度不断发展,港口自动化作业的程度不断提高。散装物料装船或者卸船时,通常使用激光雷达实时地扫描港口散货作业现场,输出港口散货作业的点云。对于港口散货作业的点云,使用传统滤波的方法处理,准确度不高;使用图像深度学习方法,需要把点云的三维数据转化成图像的二维数据,损失大量的信息,准确度不高。目前,点云的深度学习方法主要应用在机器人领域和融合感知领域。高校、研究所和大型科技公司都在积极推动点云深度学习的研究和应用。点云深度学习方法是港口自动化行业的技术趋势。点云的目标检测方法在智能驾驶领域有大范围的应用,实时而且高效。点云部件分割方法的研究和应用处于发展探索阶段,可以处理不复杂的业务场景。
3.基于点云深度学习的船只船体结构识别,有利于识别不同的船体结构,有利于提升作业效率和安全性,因此提供一种基于点云深度学习的散货船只船体结构识别方法,是很有必要的。
技术实现要素:
4.有鉴于此,本发明提出了一种针对港口的特定的散货船只的基于点云深度学习的散货船只船体结构识别方法。
5.本发明的技术方案是这样实现的:本发明提供了一种基于点云深度学习的散货船只船体结构识别方法,包括如下步骤:
6.s1:采用激光雷达扫描得到港口装船、卸船作业的点云,过滤掉岸上的部分,得到滤波后的点云;
7.s2:根据港口散货的作业场景,制定船只的点云的目标检测的标注规范;
8.s3:把步骤s2中进行了目标检测的标注的船只的点云输入到点云目标检测模型中进行训练,直到点云目标检测模型的损失函数达到收敛条件;
9.s4:把步骤s1滤波后的点云输入到步骤s3训练好的点云目标检测模型中,点云目标检测模型根据输入的清晰可见的船只的点云,采用3d框标记各船只,获得3d框的位置和对应的船只的类别;
10.s5:根据3d框与散货作业机械的相对位置,以及3d框对应的船只的类别,取含有优先级最高的散货船只的点云的3d框;
11.s6:根据港口散货作业场景和散货船只的类别,制定散货船只的点云部件分割的标注规范;利用步骤s5中得到的3d框的位置信息和类别信息,对3d框范围内的点云进行点云部件分割标注;
12.s7:对经过点云部件分割标注后的散货船只的点云块,使用策略进行采样和坐标
归一化;
13.s8:把步骤s7采样和坐标归一化后的散货船只的点云块输入到点云部件分割模型中进行训练,直到模型的损失函数收敛为止;
14.s9:利用训练好的点云部件分割模型对s7处理后的点云,分割出散货船只的三维结构;根据步骤s7中保留的每个点云块的归一化参数,使模型的预测结果还原到归一化之前的含有船只的点云块大小。
15.在以上技术方案的基础上,优选的,步骤s2所述的船只的点云的目标检测的标注规范,是在步骤s1的基础上,对清晰可见的船只进行点云目标检测的标注,构建一个最小体积的3d框(xmin,xmax,ymin,ymax,zmin,zmax)来包裹船只,并标记此3d框的类别,(xmin,ymin,zmin)和(xmax,ymax,zmax)分别是距离3d框原点距离最近和最远的两个顶点;一个3d框只包含一个船只,港口散货的作业场景如有一艘以上的船只,则分别对不同的船只对应建立3d框,任意两个相邻的3d框之间没有重叠部分;获取了3d框后,对3d框所在范围内的船只的点云,进行特征提取。
16.优选的,步骤s4所述把步骤s1滤波后的点云输入到步骤s3训练好的点云目标检测模型中,点云目标检测模型根据输入的清晰可见的船只的点云,采用3d框标记各船只,获得3d框的位置和对应的船只的类别,是采用点云目标检测模型预测出包含有清晰可见的各船只的3d框的位置信息和对应的船只类别,位置信息即六个顶点参数xmin、xmax、ymin、ymax、zmin和zmax,利用六个顶点参数和船只类别从步骤s1滤波后的点云中,提取含有单个散货船只的点云块;预测出的3d框对应的船只的类别为无盖板散货船只、平盖板散货船只、竖盖板散货船只或者非散货船只中的一种。
17.进一步优选的,步骤s5所述根据3d框与散货作业机械的相对位置,以及3d框对应的船只的类别,取含有优先级最高的散货船只的点云的3d框,是在散货作业场景中,选择优先级最高的散货船只,根据3d框与作业机械的相对位置和3d框的类别,确定含有正在作业船只的3d框。
18.更近一步优选的,所述选择优先级最高的散货船只,是港口的散货船只包括正在进港的散货船只、正在出港的散货船只、排队等待作业的船只和正在作业的散货船只;不同的散货船只之间的相对位置不固定;港口的散货自动化作业聚焦正在作业的散货船只,并将正在作业的散货船只的优先级设定为最高。
19.再进一步优选的,步骤s6所述根据港口散货作业场景和散货船只的类别,制定散货船只的点云部件分割的标注规范,是将无盖板散货船只、平盖板散货船只或者竖盖板散货船只的点云,分别标注为船头子类别、船身子类别、隔板/盖板子类别、物料子类别、船尾子类别、水面子类别、抓斗子类别和噪点子类别。
20.优选的,步骤s7所述对经过点云部件分割标注后的散货船只的点云块,使用策略进行采样和坐标归一化,步骤s7所述对经过点云部件分割标注后的散货船只的点云块,使用策略进行采样和坐标归一化,是当点云块的点的数量多于指定的第一预设点数时,采用体素化采样;当点云块的点的数量少于指定的第一预设点数时,从点云块的点中随机重复采样,将重复的采样点加入到点云块中,重复的采样点的数量等于使用策略前的点云块的点的数量与指定的第一预设点数的差值;
21.通过以上策略保证输入到部件分割模型中点云的点数量是相同的,并对每个3d框
中的各点云块的坐标进行归一化操作,保留每个点云块的归一化参数。
22.更进一步优选的,步骤s8所述点云部件分割模型,其约束条件为:1)点云部件分割模型训练和推理时,输入点云部件分割模型中的每个点云块的点的数量必须是一致的;2)输入的数据是点云块中每个点的三维坐标及其对应的散货船只的类别属性;3)点云部件分割模型只针对散货船只使用;4)即使船只的点云不完整,包含此船只的点云块也作为输入使用;5)只针对散货船只进行点云部件分割,非散货船只不适用于本方案的点云部件分割模型。
23.本发明提供的一种基于点云深度学习的散货船只船体结构识别方法,相对于现有技术,具有以下有益效果:
24.(1)本方案针对基于图像深度学习识别散货船只准确度不足的问题,提出了一种基于点云深度学习的散货船只船体结构识别方法。该方法通过点云目标检测模型得到含有散货船只的3d框,基于3d框与港口作业机械的相对位置和3d框的类别,筛选出含有作业散货船只的3d框,针对筛选出的3d框,从整个点云提取出作业散货船只的点云块,用点云部件分割模型对此点云块,分割出散货船只的三维结构;能够应用在港口散货的实时自动化作业场景的识别用途中。
附图说明
25.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
26.图1为本发明一种基于点云深度学习的散货船只船体结构识别方法的训练模式的流程图;
27.图2为本发明一种基于点云深度学习的散货船只船体结构识别方法的推理模式的流程图;
28.图3为本发明一种基于点云深度学习的散货船只船体结构识别方法对平盖板散货船只的预测效果图;
29.图4为本发明一种基于点云深度学习的散货船只船体结构识别方法对竖盖板散货船只的预测效果图;
30.图5为本发明一种基于点云深度学习的散货船只船体结构识别方法对无盖板散货船只的预测效果图。
具体实施方式
31.下面将结合本发明实施方式,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
32.如图1所示,本发明提供了一种基于点云深度学习的散货船只船体结构识别方法,包括如下步骤:
33.s1:采用激光雷达扫描得到港口装船、卸船作业的点云,过滤掉岸上的部分,得到滤波后的点云;
34.过滤掉岸上部分的点云,可以减少不必要的计算量,缩小后续点云数据处理时的候选区域范围。
35.需要说明的是,上述过滤掉岸上部分的点云,是以港口散货作业坐标系下的坐标值作为依据,令港口岸边和水面的分界线为x轴方向,y轴方向的定义是垂直于x轴方向并且与水面处于同一平面,y轴的正方向是指由岸边指向水面的方向。z轴的正方向是垂直于水面向上的。剔除岸上的点,即剔除y轴坐标小于0的点。
36.s2:根据港口散货的作业场景,制定船只的点云的目标检测的标注规范。
37.此处制定的船只的点云的目标检测的标注规范,是在步骤s1过滤掉岸上部分的点云的基础上,对清晰可见的船只进行点云目标检测的标注,构建一个最小体积的3d框(xmin,xmax,ymin,ymax,zmin,zmax)来包裹船只,并标记此3d框的类别,(xmin,ymin,zmin)和(xmax,ymax,zmax)分别是距离3d框原点距离最近和最远的两个顶点;一个3d框只包含一个船只,港口散货的作业场景如有一艘以上的船只,则分别对不同的船只对应建立3d框,任意两个相邻的3d框之间没有重叠部分。
38.这里的3d框具有四个不同的类别,即无盖板散货船只、平盖板散货船只、竖盖板散货船只和非散货船只。对于散货船只的三种类别,即无盖板散货船只、平盖板散货船只和竖盖板散货船只,由于船只船舱口的差异较大,容易区分。非散货船只是指拖船、巡逻船、客船或者加油船等等。需要说明的是,与激光雷达的距离越远,船只就越残缺不全,点密度就越小。因此,激光雷达输出的点云,会有残缺不全、不清晰的船只。这些船只距离作业机械距离较远,无需进行点云目标检测的标注。
39.s3:把步骤s2中进行了目标检测的标注的船只的点云输入到点云目标检测模型中进行训练,直到点云目标检测模型的损失函数达到收敛条件。
40.对进行了目标检测的标注的船只的点云输入到点云目标检测模型中进行训练,作为本方案的一种具体实施方式,可以采用神经网络centerpoint对进行了目标检测的标注的船只的点云输入进行特征提取和训练。神经网络centerpoint是一种应用点云深度学习进行目标检测的方法,算法处理流程是用3dbackbone从点云中提取地图视图特征表示,然后用2dcnn架构检测头找到对象中心,并使用中心特征回归到完整的3d边界框。该框预测用于提取估计的3d边界框的每个面的3d中心处的点特征,这些点特征将传递到mlp中以预测iou引导的置信度得分和框回归优化。该算法是一种成熟的算法,本领域技术人员很容易获取该算法的相关内容,在此不再赘述。当然,点云目标检测模型的方法有很多,上述用神经网络centerpoint举例说明的内容不视为对本方案的限定,本领域技术人员可以根据需要,选择其他本领域公知的点云目标检测模型来实现基于点云的目标检测的训练。
41.s4:把步骤s1滤波后的点云输入到步骤s3训练好的点云目标检测模型中,点云目标检测模型根据输入的清晰可见的船只的点云,采用3d框标记各船只,获得3d框的位置和对应的船只的类别。
42.具体是采用上一步中训练后的点云目标检测模型来预测出3d框的位置信息,即六个顶点参数xmin、xmax、ymin、ymax、zmin和zmax,利用六个顶点参数从步骤s1滤波后的点云中,提取含有单个散货船只的点云块;预测出的3d框对应的船只类别为无盖板散货船只、平
盖板散货船只、竖盖板散货船只或者非散货船只中的一种。点云块的边界即六个顶点参数,3d框的六个顶点决定了3d框的长宽高,每个点云都是三维数据,均具有xyz三个轴向的坐标。采用3d框对每一个船只的点云分别进行划分,得到若干个3d框对应的点云块和3d框的类别。
43.s5:根据3d框与散货作业机械的相对位置,以及3d框对应的船只的类别,取含有优先级最高的散货船只的点云的3d框。
44.本步骤的具体内容是在散货作业场景中,选择优先级最高的散货船只,是港口的散货船只包括正在进港的散货船只、正在出港的散货船只、排队等待作业的船只和正在作业的散货船只;不同的散货船只之间的相对位置不固定;港口的散货自动化作业聚焦正在作业的散货船只,并将正在作业的散货船只的优先级设定为最高。含有优先级最高的散货船只的点云的3d框,也可以理解为3d框的对应的优先级。
45.s6:根据港口散货作业场景和散货船只的类别,制定散货船只的点云部件分割的标注规范;利用步骤s5中得到的3d框的位置信息和类别信息,对3d框范围内的点云进行点云部件分割标注。
46.无盖板散货船只、平盖板散货船只和竖盖板散货船只,这三种散货船只的部件分割标注规则,特别是船舱口部分,有很大的差别。步骤s6是将无盖板散货船只、平盖板散货船只或者竖盖板散货船只的点云,分别标注:无盖板散货船只标注为船头子类别、船身子类别、隔板子类别、物料子类别、船尾子类别、水面子类别、抓斗子类别和噪点子类别;对于竖盖板散货船只标注为:船头子类别、船身子类别、盖板子类别、物料子类别、船尾子类别、水面子类别、抓斗子类别和噪点子类别;对于平盖板散货船只标注为船头子类别、船身子类别、盖板子类别、物料子类别、船尾子类别、水面子类别、抓斗子类别和噪点子类别。
47.从3d框范围内的散货船只点云提取散货船只的点云块不超出3d框的边界。另外,在3d框范围内,不仅含有散货船只,还含有水面、悬浮的噪点,这些噪点可能是船舱口上方物料的溜筒或者漂浮的灰尘等等。点云部件分割标注既对3d框中的散货船只标注,也对水面和噪点进行标注,以便更好地分割出散货船只船体的三维结构。
48.对于无盖板船只,没有设置盖板,只有对应的隔板子类别,有盖板的船只则对应标注其盖板子类别是竖盖板或者平盖板。
49.s7:对提取的含有船只的点云块,使用策略进行采样和坐标归一化。
50.具体的,是当点云块的点的数量多于指定的第一预设点数时,采用体素化采样;当点云块的点的数量少于指定的第一预设点数时,从点云块的点中随机重复采样,将重复的采样点加入到点云块中,重复的采样点的数量等于使用策略前的点云块的点的数量与指定的第一预设点数的差值;
51.通过以上策略保证输入到部件分割模型中点的数量是相同的,并对每个3d框中的各点云块的坐标进行归一化操作,保留每个点云块的归一化参数。
52.s8:把步骤s7采样和坐标归一化后的含有船只的点云块输入到点云部件分割模型中进行训练,直到模型的损失函数收敛为止。
53.再进一步优选的,步骤s8所述点云部件分割模型,其约束条件为:1)点云部件分割模型训练和推理时,输入点云部件分割模型中的每个点云块的点的数量必须是一致的;2)输入的数据是点云块中每个点的三维坐标及其对应的散货船只的类别属性;3)点云部件分
割模型只针对散货船只使用;4)即使船只的点云不完整,包含此船只的点云块也作为输入使用;5)只针对散货船只进行点云部件分割,非散货船只不适用于本方案的点云部件分割模型。
54.对进行了点云部件分割的标注的船只的点云输入到点云部件分割模型中进行训练,作为本方案的一种具体实施方式,可以采用神经网络randla-net对进行了点云部件分割的标注的船只的点云输入进行特征提取和训练。神经网络randla-net是一种应用点云深度学习进行部件分割的方法,算法处理流程是运用随机采样,快速处理大场景点云,用local spatial encoding模块聚合点的领域特征;用dilated residual block模块下采样,扩大网络的感受野;再用feature decoder模块上采样,和用multi-layer perceptron将上文相同维度的特征信息进行融合;连接3个full connection层,最后输出采样后的点云中每个点的类别。该算法是一种成熟的算法,本领域技术人员很容易获取该算法的相关内容,在此不再赘述。当然,点云部件分割模型的方法有很多,上述用神经网络randla-net举例说明的内容不视为对本方案的限定,本领域技术人员可以根据需要,选择其他本领域公知的点云部件分割模型来实现基于点云的部件分割的训练。
55.s9:利用训练好的点云部件分割模型对s7处理后的点云,分割出散货船只的三维结构;根据步骤s7中保留的每个点云块的归一化参数,使模型的预测结果还原到归一化之前的含有船只的点云块大小。
56.这里需要先将点云块输入到点云部件分割模型中进行训练,直到点云部件分割模型的损失函数达到收敛条件后;重新输入待分割的点云块到训练后的点云部件分割模型中,由点云部件分割模型预测出散货船只的船体结构。云部件分割模型预测出的平盖板散货船只、竖盖板散货船只和无盖板散货船只的船体结构的示意图分别如图3、图4和图5所示。
57.首次运行时采用图1的流程,待模型训练完毕后,可以采用图2的流程。
58.本方案的核心思想是:第一种方案:步骤s1滤波后的点云,用点云目标检测模型识别出含有单个可见船只的所有3d框,再筛选出含有一个或者多个正在作业散货船只的3d框,每个3d框包含一艘散货船只,基于3d框的信息从整个点云提取出点云块,再对此点云块进行部件分割,分割出作业船只的三维船体结构。
59.当然,也可以是采用第二种方案:对步骤s1滤波后的点云,直接进行部件分割,分割出所有可见散货船只的三维船体结构。从点云数据标注上来,这种方法的数据标注成本很高,部件分割标注比目标检测标注,难度更大,标注时间更长,成本更高,标注的精度更低,与此同时。部件分割模型比目标检测模型,计算量更大,模型推理时间更长。
60.一般情况下,激光雷达的扫描是聚焦在作业的散货船只上。因此,在整个点云中,作业散货船只的那部分点云最清晰,且点云密度最大。非作业散货船只距离激光雷达越远,船只点云越不清晰,点云密度越小。对于复杂的散货作业场景,比如距离非常近的多艘散货船只,第一种方案的预测效果比第二种方案的预测效果更好。
61.散货船只船体形状多变,传统滤波算法规则过于简单,不能处理一些特殊形状的散货船只,比如船舱口形状。港口如有多艘船只之间的距离比较近,传统的滤波算法无法过滤掉排队的船只。此时要么进行人工操控散货作业,要么使散货船只之间的距离比较远,以便传统滤波算法能够过滤掉排队的散货船只。船身两侧船舷边站立的多个行人会妨碍传统
滤波算法。
62.对于无盖板散货船只,物料越接近满仓的时候,船舱口的特征就越不明显,越不容易提取船舱口的位置。空仓或者船舱少物料的情况下,利用船舱口的高度差,容易提取船舱口的位置,方便自动化作业时定位抓料和放料的位置。
63.对于竖盖板和平盖板散货船只,两个船舱口中间的船身部分,有突出物高出了船舱口的平面高度,如克林吊、机电箱等等,妨碍了传统滤波算法对有盖板散货船只的识别。
64.相对于水面,散货船只出现俯仰角,靠近船头的部分和靠近船尾的部分之间货物量差距明显,容早造成船身平面与水面不是平行的。使传统滤波算法失效。
65.通过采用本方案的自动化作业的散货船只识别通过率明显高于传统滤波算法。自动化作业的测试方法是,用本方案的输出结果得到的船舱口矩形框,和手动精细标记的船舱口矩形框误差不超过0.5米,就算自动化作业通过。
66.以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。