一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于图像和点云结合的货箱识别方法

2023-02-01 21:17:36 来源:中国专利 TAG:


1.本发明涉及计算机视觉、点云处理技术领域,具体而言,尤其涉及一种基于图像和点云结合的货箱识别方法。


背景技术:

2.随着冷链运输在货物进口方式的比重越来越大,在集装箱中的货物拆垛投入了大量的人力物力,因此需要一种全自动的视觉引导拆垛方案,然而冷链货物的货箱具有多种类,多尺寸,多颜色,多破损的极端情况,现有的二维视觉受图案的表面纹理以及光照等诸多因素影响,无法将其很好的识别。而3d点云视觉由于不受这些因素的影响近年来逐渐被应用。因此本发明提出一种在二维平面的层面和3d点云的层面相结合的方法将其中这些表面纹理复杂且在运输过程中容易产生破损的纸箱进行一个很好的识别。
3.二维视觉中深度学习方法以其优越的识别效果被广泛应用,本发明基于kaiming he在2017年中提出的mask r-cnn算法进行二维识别,mask r-cnn不仅相比于传统的视觉识别算法有着更高的识别准确率,而且在现有的深度学习算法中也有着很高的准确率。三维视觉中区域生长算法简单易实现,主要思想是逐点聚类,适用于小规模点云,有着很高的准确率和可观的识别速度。


技术实现要素:

4.根据上述提出的技术问题,提供一种基于图像和点云结合的货箱识别方法。本发明利用深度相机采集一些货箱图片,利用labelme对采集的数据进行标注,利用深度学习方法mask r-cnn进行训练,得到训练好的权重后连接相机进行预测,预测出每个货箱后交给点云分割方法来判断这些货箱中是否有破损严重无法用吸盘抓取的情况。
5.本发明采用的技术手段如下:
6.一种基于图像和点云结合的货箱识别方法,包括:
7.利用深度相机采集货箱图片,并对采集的货箱图片进行处理,形成训练集;
8.基于深度学习网络mask r-cnn对训练集中的图片进行训练,得到权重;
9.设置好相机与工控机ipc之间的通信接口,连接相机,利用得到的权重,预测在工作中输入的新的货箱图片,得到每个货箱的掩码,输出掩码的像素坐标;
10.根据像素坐标,计算点云中对应的点的索引范围;
11.根据索引范围,对点云进行区域生长分割,并根据点云分割结果判断是否破损严重。
12.进一步地,所述利用深度相机采集货箱图片,并对采集的货箱图片进行处理,形成训练集,包括:
13.对采集来的图片进行图像增强,使用labelme软件进行数据标注;
14.将图片和标注生成的json文件生成符合coco数据集格式的train.json,val.json以及test.json文件。
15.进一步地,所述基于深度学习网络mask r-cnn对训练集中的图片进行训练,得到权重,包括:
16.设置初始学习率为1e-4,优化器选择adam,训练50轮次,得到训练好的权重。
17.进一步地,所述利用得到的权重,预测在工作中输入的新的货箱图片,得到每个货箱的掩码,输出掩码的像素坐标,包括:
18.利用深度学习网络mask r-cnn的主干网络resnet50进行特征提取;
19.利用边界框回归对roi区域进行坐标平移和缩放;
20.利用非极大抑制得到目标框;
21.利用深度学习网络mask r-cnn的roialign层得到最终的掩码;
22.得到掩码后利用skimage库的findcontour函数对掩码进行边缘提取,得到一个掩码的边缘轮廓的所有像素坐标。
23.进一步地,所述根据像素坐标,计算点云中对应的点的索引范围,包括:
24.当图像识别出每个货箱的掩码后,按照每个掩码的像素坐标的索引范围对点云进行分割,深度相机的像素坐标和点云中的索引有如下对应关系:
25.index=512
×
y x
26.其中,(x,y)为图像中某一点的像素坐标,相机的分辨率为512
×
424。
27.进一步地,所述根据索引范围,对点云进行区域生长分割,并根据点云分割结果判断是否破损严重,包括:
28.根据曲率对点云排序;
29.将曲率最小值点添加到种子集,利用k维树搜索临近点计算与种子点法线角度差;
30.若该差值小于平滑阈值且该点曲率小于曲率阈值,则加入种子集,认为与种子点为一类;否则继续搜索临近点;
31.重复以上步骤直至遍历完所有点;
32.如果区域生长结果中聚类个数为1或聚类个数大于1但是聚类点数第一的类远超过剩下的类之和,出现这两种其中之一说明该货箱完整,可以抓取;否则认为该掩码对应的货箱破损情况严重,无法抓取。
33.进一步地,所述基于图像和点云结合的货箱识别方法还包括:当根据点云分割结果判断货箱完整时,对掩码的边缘进行再次处理,得到边缘的靠近中心点的最高点和最低点像素坐标,由于深度相机的像素坐标和相机坐标的具有天然的对应关系,可得到每个货箱的上边缘和下边缘的相机坐标,再由相机坐标转换到世界坐标:
34.(xw,yw,zw)
t
=r
·
(xc,yc,zc)
t
t1 t2[0035][0036][0037]
其中,r表示旋转矩阵,t1表示平移矩阵,t2为距离世界坐标系原点的测量值,(xw,yw,zw)
t
表示世界坐标系点,(xc,yc,zc)
t
表示相机坐标系点。
[0038]
较现有技术相比,本发明具有以下优点:
[0039]
1、本发明提供的基于图像和点云结合的货箱识别方法,利用深度相机采集一些货箱图片,利用labelme对采集的数据进行标注,利用深度学习方法mask r-cnn进行训练,得到训练好的权重后连接相机进行预测,预测出每个货箱后交给点云分割方法来判断这些货箱中是否有破损严重无法用吸盘抓取的情况。
[0040]
2、本发明提供的基于图像和点云结合的货箱识别方法,可以为完好货箱和破损严重货箱进行抓取等后续处理提供重要依据,这种方法可以有效的应对类似冷链集装箱中存在一定的破损货箱的识别拆垛。
[0041]
基于上述理由本发明可在计算机视觉、点云处理等领域广泛推广。
附图说明
[0042]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0043]
图1为本发明方法流程图。
[0044]
图2为本发明实施例提供的深度学习网络mask r-cnn的工作的整体架构图。
[0045]
图3为本发明实施例提供的有破损纸箱原图数据。
[0046]
图4为本发明实施例提供的mask r-cnn对于有破损的纸箱垛的识别情况。
[0047]
图5为本发明实施例提供的区域生长分割法对于有破损纸箱垛的识别情况。
具体实施方式
[0048]
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0049]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0050]
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0051]
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。同时,应当清楚,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员己知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任向具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号
和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0052]
在本发明的描述中,需要理解的是,方位词如“前、后、上、下、左、右”、“横向、竖向、垂直、水平”和“顶、底”等所指示的方位或位置关系通常是基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,在未作相反说明的情况下,这些方位词并不指示和暗示所指的装置或元件必须具有特定的方位或者以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制:方位词“内、外”是指相对于各部件本身的轮廓的内外。
[0053]
为了便于描述,在这里可以使用空间相对术语,如“在
……
之上”、“在
……
上方”、“在
……
上表面”、“上面的”等,用来描述如在图中所示的一个器件或特征与其他器件或特征的空间位置关系。应当理解的是,空间相对术语旨在包含除了器件在图中所描述的方位之外的在使用或操作中的不同方位。例如,如果附图中的器件被倒置,则描述为“在其他器件或构造上方”或“在其他器件或构造之上”的器件之后将被定位为“在其他器件或构造下方”或“在其位器件或构造之下”。因而,示例性术语“在
……
上方”可以包括“在
……
上方”和“在
……
下方”两种方位。该器件也可以其他不同方式定位(旋转90度或处于其他方位),并且对这里所使用的空间相对描述作出相应解释。
[0054]
此外,需要说明的是,使用“第一”、“第二”等词语来限定零部件,仅仅是为了便于对相应零部件进行区别,如没有另行声明,上述词语并没有特殊含义,因此不能理解为对本发明保护范围的限制。
[0055]
如图1所示,本发明提供了一种基于图像和点云结合的货箱识别方法,包括:
[0056]
s1、利用深度相机采集货箱图片,并对采集的货箱图片进行处理,形成训练集;
[0057]
s2、基于深度学习网络mask r-cnn对训练集中的图片进行训练,得到权重;
[0058]
s3、设置好相机与工控机ipc之间的通信接口,连接相机,利用得到的权重,预测在工作中输入的新的货箱图片,得到每个货箱的掩码,输出掩码的像素坐标;
[0059]
s4、根据像素坐标,计算点云中对应的点的索引范围;
[0060]
s5、根据索引范围,对点云进行区域生长分割,并根据点云分割结果判断是否破损严重。
[0061]
具体实施时,作文本发明优选的实施方式,所述步骤s1利用深度相机采集货箱图片,并对采集的货箱图片进行处理,形成训练集,包括:
[0062]
对采集来的图片进行图像增强,使用labelme软件进行数据标注;
[0063]
将图片和标注生成的json文件生成符合coco数据集格式的train.json,val.json以及test.json文件。
[0064]
具体实施时,作文本发明优选的实施方式,所述步骤s2基于深度学习网络mask r-cnn对训练集中的图片进行训练,得到权重,包括:
[0065]
设置初始学习率为1e-4,优化器选择adam,训练50轮次,得到训练好的权重。在本实施例中,mask r-cnn结构包括backbone主干网络部分,rpn区域建议网络部分,roialign层,全连接层等。
[0066]
具体实施时,作文本发明优选的实施方式,所述步骤s3利用得到的权重,预测在工作中输入的新的货箱图片,得到每个货箱的掩码,输出掩码的像素坐标,包括:
[0067]
利用深度学习网络mask r-cnn的主干网络resnet50进行特征提取;在本实施例
中,resnet可以看作由两个块(conv block和identity block)的组合而成,其中conv block输入和输出的维度是不一样的,所以不能连续串联,它的作用是改变网络的维度;identity block输入维度和输出维度相同,可以串联,用于加深网络的。在resnet中的第一布经过一个7
×
7卷积后,将与其相乘的激活函数relu修改为mish,mish相比于relu有着连续可微的特点,使神经网络反向传播的过程中更容易梯度优化,网络泛化效果更好,两种激活函数公式如下:
[0068][0069]
σ(x)=x
·
tanh(ln(1 e
x
))
[0070]
利用边界框回归对roi区域进行坐标平移和缩放;
[0071]
利用非极大抑制得到目标框;
[0072]
利用深度学习网络mask r-cnn的roialign层得到最终的掩码;
[0073]
得到掩码后利用skimage库的findcontour函数对掩码进行边缘提取,得到一个掩码的边缘轮廓的所有像素坐标。
[0074]
具体实施时,作为本发明优选的实施方式,所述步骤s4根据像素坐标,计算点云中对应的点的索引范围,包括:
[0075]
当图像识别出每个货箱的掩码后,按照每个掩码的像素坐标的索引范围对点云进行分割,深度相机的像素坐标和点云中的索引有如下对应关系:
[0076]
index=512
×
y x
[0077]
其中,(x,y)为图像中某一点的像素坐标,相机的分辨率为512
×
424。
[0078]
具体实施时,作文本发明优选的实施方式,所述步骤s5根据索引范围,对点云进行区域生长分割,并根据点云分割结果判断是否破损严重,包括:
[0079]
根据曲率对点云排序;
[0080]
将曲率最小值点添加到种子集,利用k维树搜索临近点计算与种子点法线角度差;
[0081]
若该差值小于平滑阈值且该点曲率小于曲率阈值,则加入种子集,认为与种子点为一类;否则继续搜索临近点;
[0082]
重复以上步骤直至遍历完所有点;
[0083]
如果区域生长结果中聚类个数为1或聚类个数大于1但是聚类点数第一的类远超过剩下的类之和,出现这两种其中之一说明该货箱完整,可以抓取;否则认为该掩码对应的货箱破损情况严重,无法抓取。
[0084]
在本实施例中,点云分割对不同物体的间隔有着严格的要求,即如果出现较严重的破损裂缝的情况在点云中易分割出来,而图像分割易把整个纸箱区域识别为一个整体,且标注破损货箱数据集时标注难度大,因此在图像法基础上增加点云法。
[0085]
实施例
[0086]
连接相机,拍摄不同规格的货箱图像作为数据集。
[0087]
将采集的数据集进行数据标注,标注软件选择labelme,然后将数据集按9:1划分为训练集和验证集。
[0088]
将标注好的图片和标注信息进行处理,生成符合coco格式的json文件。
[0089]
将mask r-cnn的主干网络的7
×
7卷积后的激活函数改为mish,该函数连续可微,
拥有更好的泛化性能。
[0090]
对mask r-cnn进行训练,设置学习率为1e-4,训练轮次50轮,优化器为sgd等等;使用coco数据集下的mask r-cnn预训练权重进行微调训练。
[0091]
使用训练好的自己数据集下的权重对送入实例分割网络mask r-cnn的每个货箱进行实例分割,得到每个货箱的mask掩码如图4所示。
[0092]
过滤掉识别出的非货箱物体,可以用z向距离来筛选,非货箱物体距离深度相机的距离远大于货箱距深度相机的距离,以此为筛选条件过滤。
[0093]
对每个货箱的mask进行边缘坐标的筛选,这里利用python的skimage库中的findcontour函数进行边缘像素坐标的提取。
[0094]
得到货箱的边缘像素坐标后,对其进行转化,转化成世界坐标,这里需要测量出搭载相机的舵机云台距离相机光心的长d,宽w(图中未标出),高h,这样可以求得当相机倾斜θ度时的相机坐标向世界坐标转化公式为:
[0095]
(xw,yw,zw)
t
=r
·
(xc,yc,zc)
t
t1 t2[0096][0097][0098]
其中,r表示旋转矩阵,t表示平移矩阵,(xw,yw,zw)
t
表示世界坐标系点,(xc,yc,zc)
t
表示相机坐标系点。
[0099]
以上步骤为正常无破损严重纸箱情况的识别抓取方案,如图4可以看到有一个破损的箱子也被识别出完整的mask掩码,如果这时不采取特定的抓取手段,可能会抓取失败,并且对后续的抓取造成严重影响。
[0100]
因此在这里提出图像和点云结合的方法来解决这一问题,当图像识别出每个货箱的mask后,会按照每个mask的像素坐标的索引范围对点云进行分割,深度相机的像素坐标和点云中的索引有如下对应关系:
[0101]
index=512
×
y x
[0102]
其中,(x,y)为图像中某一点的像素坐标,相机的分辨率为512
×
424。
[0103]
按照上面的索引计算方法可以得到一个索引范围,对该范围的点云进行区域生长实例分割,可以看到区域生长分割结果如图5所示。区域生长本质是一个聚类算法。涉及到的计算公式如下:
[0104]
每个点与其邻近点之间拟合的最小二乘局部平面p:
[0105][0106]
协方差矩阵m,kdtree搜索方法设置近邻搜索点数k,这里k=30:
[0107][0108]
对m特征值分解,求得特征值:
[0109]
λm-e=0
[0110]
m最小的特征值对应的特征向量即为近邻点之间拟合平面的法向量:λ0,λ1,λ2为m的特征值,且λ0≤λ1≤λ2;则表面曲率计算公式为:
[0111][0112]
在本实施例中,对于点云的操作使用python-pcl库进行,pcl对于点云的操作很方便,有很多内置的函数可供使用。
[0113]
区域生长聚类中可以按照聚出的每一个类的点数的多少进行排序。在对点云的区域生长分割中,我们可以看到,图像中那个破损的箱子在点云分割中是多个极其不完整的聚类,在这个索引范围内只有两种情况可以认为是一个完好的箱子,即该范围内只有一个聚类或有多个聚类但排名第一的聚类的点云数量远多于其他聚类。
[0114]
综上所述,根据这种图像和点云结合的办法,可以为完好货箱和破损严重货箱的抓取方式选择及后处理提供重要依据。
[0115]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献