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

箱体的位姿识别方法及装置、终端、存储介质与流程

2022-03-09 02:21:21 来源:中国专利 TAG:


1.本发明涉及识别技术领域,特别涉及一种箱体的位姿识别方法及装置、终端、存储介质。


背景技术:

2.仓储物流智能化包括通过机械手对箱体垛型进行拆解、码放、整合等操作,而在操作前需要对垛型进行识别。由于在垛型中,一般来说最高层箱体最易操作,且码放箱体时需要基于最高层箱体的码放情况给出码放建议,因此机械手操作垛型前需要识别最高层各箱体的箱体边缘,进而识别箱体摆放情况,以给出拆解、码放、整合执行方案的参考。
3.现有技术中,2d视觉识别时,由于纸箱存在自然纹理,因此会影响轮廓识别的准确性;3d视觉识别时,由于纸箱往往紧密贴合在一起,也很难从点云数据中把单个纸箱分割出来。而深度学习方法需要采集大量的数据样本,使用不便。
4.因此,亟需一种箱体的位姿识别方法及装置、终端、存储介质来解决上述问题。


技术实现要素:

5.本发明解决的技术问题在于,提供了一种箱体的位姿识别方法及装置、终端、存储介质,能减少数据处理量,而且能够快速识别箱体边缘,从而更易于识别出垛体中的箱体的位姿。
6.本发明解决其技术问题是采用以下的技术方案来实现的:
7.一种箱体的位姿识别方法,包括:获取初步处理后的点云数据,所述点云数据包括垛体中被区分的箱体边缘点;从所述点云数据中获取垛体最上层点云;根据所述最上层点云,生成所述最上层点云的深度图,所述深度图中包括至少一个箱体以及其边缘信息;根据至少一个预设的模板,通过匹配识别所述深度图中的箱体,并通过所述箱体的点云数据获取所述箱体的位姿。
8.在本发明的较佳实施例中,上述获取初步处理后的点云数据的步骤,包括:获取所述垛体的初始点云数据和图像,所述初始点云数据和图像存在对应关系;获取所述图像中箱体的边缘轮廓信息,以获取所述箱体边缘点的像素坐标;根据所述像素坐标获取对应的边缘点云数据,并将其设置为无效数据。
9.在本发明的较佳实施例中,上述获取初步处理后的点云数据的步骤,还包括:根据预设的空间过滤范围,对所述初始点云数据进行过滤处理,以获取所述点云数据。
10.在本发明的较佳实施例中,上述从所述点云数据中获取垛体最上层点云的步骤,包括:旋转所述点云数据,使得点云坐标系z轴垂直于垛体平面;根据所述点云数据中z值的分布,设立z值的间隔区间;获取至少一个所述间隔区间内的点云作为最上层点云。
11.在本发明的较佳实施例中,上述获取至少一个所述间隔区间内的点云作为最上层点云的步骤,包括:遍历所述间隔区间,获取所述间隔区间内的点云数量;当所述点云数量大于设定的数量阈值时,结束遍历,提取当前区间内的点云,作为最上层点云。
12.在本发明的较佳实施例中,上述旋转所述点云数据的步骤,包括:根据预设的旋转矩阵旋转所述点云数据,所述旋转矩阵为相机坐标系到垛体平面的旋转矩阵。
13.在本发明的较佳实施例中,上述预设的模板包括:根据所述箱体的尺寸,确认或生成的所述箱体的图像模板;和/或根据所述箱体的尺寸范围和预设策略函数,确认或生成的满足所述尺寸范围的多个图像模板。
14.一种箱体的位姿识别装置,包括:数据获取模块、点云提取模块、深度图生成模块和识别模块;所述数据获取模块,获取初步处理后的点云数据,所述点云数据包括垛体中被区分的箱体边缘点;所述点云提取模块,用于从所述点云数据中获取垛体最上层点云;所述深度图生成模块,用于根据所述最上层点云,生成所述最上层点云的深度图,所述深度图中包括至少一个箱体以及其边缘信息;所述识别模块,用于根据至少一个预设的模板,通过匹配识别所述深度图中的箱体,并通过所述箱体的点云数据获取所述箱体的位姿。
15.一种终端,包括:存储器、处理器;其中,所述存储器上存储有箱体的位姿识别程序,所述箱体的位姿识别程序被所述处理器执行时实现如上述中任一项所述的箱体的位姿识别方法的步骤。
16.一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述中任一项所述的箱体的位姿识别方法的步骤。
17.本发明采用上述技术方案达到的技术效果是:获取初步处理后的点云数据,所述点云数据包括垛体中被区分的箱体边缘点;从所述点云数据中获取垛体最上层点云;根据所述最上层点云,生成所述最上层点云的深度图,所述深度图中包括至少一个箱体以及其边缘信息;根据至少一个预设的模板,通过匹配识别所述深度图中的箱体,并通过所述箱体的点云数据获取所述箱体的位姿。通过上述方式,能减少数据处理量,且能够准确识别箱体边缘,便于从紧密排布的垛体中识别出单个箱体,进行位姿计算。
18.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明。
附图说明
19.图1为本发明实施例示出一种箱体的位姿识别方法的流程示意图。
20.图2为本发明实施例示出的一种初始点云数据初步处理方法的流程示意图。
21.图3为本发明实施例示出的一种箱体的位姿识别装置的结构示意图。
22.图4为本发明实施例示出的一种终端的结构示意图。
具体实施方式
23.为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明的实施例保护的范围。通过具体实施方式的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加
深入且具体的了解,而且所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
24.请参考图1,图1为本发明实施例示出一种箱体的位姿识别方法的流程示意图。如图1所示,该方法包括以下步骤:
25.步骤s11:获取初步处理后的点云数据,点云数据包括垛体中被区分的箱体边缘点;
26.可选地,垛体是由多个箱体进行堆垛而构成的,所述垛体中的箱体可以是规格相同的,也可以是规格不同的,在此不进行限定。所述箱体可以是货箱、货架等长方体或立方体结构,在此不进行限定。
27.请参阅图2,图2为本发明实施例示出的一种初始点云数据初步处理方法的流程示意图。经过图2所示步骤,对获取的初始点云数据进行处理后,能获取步骤s11中所述的初步处理后的点云数据。
28.如图2所示,初始点云数据初步处理方法,包括以下步骤:
29.步骤s110:获取垛体的初始点云数据和图像,初始点云数据和图像存在对应关系;
30.步骤s111:获取所述图像中箱体的边缘轮廓信息,以获取所述箱体边缘点的像素坐标;
31.步骤s112:根据所述像素坐标获取对应的边缘点云数据,并将其设置为无效数据。
32.可选地,通过图像采集装置获取垛体的图像和初始点云数据,利用边缘检测算法识别垛体的图像中各箱体的边缘轮廓得到边缘点的像素坐标。然后根据图像的像素与初始点云数据之间一一映射的关系,获取边缘轮廓对应的边缘点云数据。再将边缘轮廓对应的边缘点云数据设置为无效数据,例如,进行置零处理,以对垛体中的箱体进行初步分割。
33.其中,图像采集装置位于垛体的上方,一般位于垛体的正上方,也可以在垛体的侧上方倾斜安装,只需要保证图像采集装置能够采集垛体顶层的相关数据即可。
34.示例性地,通过rgbd相机获取垛体的2d图像/原始深度图像和初始点云数据。其中,初始点云数据和图像的像素之间是一一对应关系,可通过索引互相映射。然后根据图像边缘检测算法如canny算法对所述图像进行边缘检测,以获取图像中各箱体的边缘轮廓,然后根据边缘轮廓的像素坐标,获取对应的边缘点云数据,并将其进行置零处理,即将各箱体边缘点云坐标设置为(0,0,0),经过初步处理后,点云数据中各箱体之间边缘被区分,箱体之间的间隔增大,从而更容易对箱体进行识别。
35.在一实施方式中,步骤s11:获取初步处理后的点云数据,可以但不限于包括:根据预设的空间过滤范围,对初始点云数据进行过滤处理,以获取垛体的点云数据。
36.其中,空间过滤范围由用户根据实际情况(预估的垛体的长宽高数据)自定义设置。
37.空间过滤范围可以理解为为获取点云数据的voi(volume of interest)或roi(region of interest)所设置的过滤模板。通过过滤处理可以过滤非垛体/垛体以外的点云数据,加快箱体识别速度和识别橹棒性。设定方式有多种形式,可以在可视化的3d界面直接输入预估的垛体尺寸参数,也可以直接在图像中框选roi区域,从而确定垛体的x,y方向的范围,而z的范围通过实际垛体最低处和最高处离相机的距离进行确定。其中,框选的roi一般为整个堆垛在图像或空间的位置。
38.示例性地,通过点云的空间过滤范围,将初始点云数据中不在范围内的点云数据
设置为无效数据,以过滤环境中垛体以外的干扰点。也就是,在环境中选定垛体,以将垛体以外的点云数据全部设置为无效数据,仅保留垛体的点云数据,排除垛体以外的噪点对箱体识别的干扰,以加快识别速度。
39.通过对上述初始点云数据进行初步处理,可以让垛体中各箱体之间的间隔在最后所生成的深度图上面变大,和/或将其它疑似边界的地方过滤,以增强形状匹配的效果。其中,其他疑似边界的地方,例如,箱体表面有纹理的部分。
40.步骤s12:从点云数据中获取垛体最上层点云;
41.可选地,步骤s12:从点云数据中获取垛体最上层点云,包括:旋转所述点云数据,使得点云坐标系z轴垂直于垛体平面;根据所述点云数据中z值的分布,设立z值的间隔区间;获取至少一个所述间隔区间内的点云作为最上层点云。
42.可选地,旋转所述点云数据的步骤,包括:根据预设的旋转矩阵旋转所述点云数据,所述旋转矩阵为相机坐标系到垛体平面的旋转矩阵。
43.其中,用于旋转点云数据的旋转矩阵可以为3x3矩阵。
44.示例性地,可以在安装好相机后通过标定相机外参获取旋转矩阵r,这种方法需要在拆垛前在拆垛平面放置一个标定板,拍摄多个角度下标定板的图像进行求解,也可以直接通过点云拟合出拆垛平面来确定(点云拟合平面可以求出法向量,然后固定一个z轴旋转量,求出r矩阵)。
45.具体地,点云数据经过旋转后,点云坐标系与相机坐标系不再重合,点云坐标系的z轴垂直于拆垛平面。一般可取垂直于拆垛平面向上的方向为z轴的正方向,即垛体顶层部分的点云z值最大。
46.其中,根据所述点云数据中z值的分布,设立z值的间隔区间。其间隔区间可以在z值的整个取值范围内均匀设置,也可以只在z值区间中对应顶层区域范围附近进行细分,在此不进行限定。
47.其中,获取至少一个所述间隔区间内的点云作为最上层点云,即按照点云z轴的最大值至最小值(即垛体从上至下)的顺序,将至少一个间隔区间内的点云作为最上层点云,该最上层点云为一个薄层,一般指垛体顶层的顶部薄层的点云。通过提取最上层点云进行处理,有效地减少了点云的处理量,从而降低计算量。在存在高层噪点的情况下,一般通过设定数量阈值进行过滤,可以避免高层噪点影响最上层点云的提取。其中,高层噪点是指垛体上方的噪点。
48.示例性地,通过旋转矩阵r旋转点云,经旋转的点云坐标系z轴垂直于拆垛平面向上(相当于把点云转换到空间三维坐标系中,z的大小代表高度,方便定义最上层)。通过点云数据z值的分布设立间隔区间,该设立间隔区间的步骤可以理解为只考虑z值,从而将点云数据变成了一个1维的分布,在这个1维分布取间隔将点云数据划分。例如,z值分布在[100,200],则区间划分值可以为(101,102,...,199),间隔区间为[100,101],...[199,200]。
[0049]
可选地,获取至少一个所述间隔区间内的点云作为最上层点云的步骤,包括:遍历所述间隔区间,获取所述间隔区间内的点云数量;当区间内的点云数量大于设定的数量阈值时,结束遍历,提取当前区间内的点云,作为最上层点云。
[0050]
根据点云数据z值的分布设立间隔区间后,为了快速获取最上层点云,对于上层z
值取值大的情况,采用z值区间取值从大至小的顺序依次遍历;当点云数量大于设定的数量阈值时,结束遍历,提取当前区间内的点云,作为最上层点云。例如,预定的数量阈值为1000,z值位于区间[100,200],区间划分值为(101,102,...,199),间隔区间为[100,101],...[199,200],遍历顺序为[200,199],然后[199,198]......,直到点云数量满足条件,即大于预定的数量阈值,则结束遍历,然后将当前区间内的点云看作为最上层点云,即一个薄层。
[0051]
其中,设定的数量阈值,一般为最小长宽尺寸箱体在设定的z值区间间隔中所包括的点云数量,可以通过点云的生成间隔以及箱体的尺寸范围进行确定。相当于只需要处理最上层的点云数据,而不用处理全部点云数据,减少了数据的处理量。
[0052]
步骤s13:根据最上层点云,生成最上层点云的深度图,深度图中包括至少一个箱体以及其边缘信息;
[0053]
为了方便进行形状匹配,一般将点云转化为深度图,在深度图中进行箱体匹配。
[0054]
经过前述步骤对采集的初始点云数据进行初步处理,箱体边缘点的点云数据被区分开,使得本步骤中生成的深度图中各个箱体的边缘显示更为明显。
[0055]
具体地,该步骤中的深度图只包含最上层点云,是个为了方便图像处理虚拟生成的图像。该深度图与通过图像采集装置获取的图像相比,图中冗余信息大大减少,箱体之间的边缘更为突出。
[0056]
可选地,通过所提取的最上层点云,计算其x,y方向的边界,即计算最上层点云中x,y值取值的最大值和最小值,该最大值和最小值均为统计值。
[0057]
可选地,通过上述边界和预设的点云间距可得到目标深度图的长和宽,进而将点云映射到深度图中,其中,通过统计z值的分布,将z值映射到灰度级的取值区间[0,255]中。
[0058]
其中,点云间距是指相邻两个点云之间的距离。
[0059]
通过上述处理去除了点云数据x,y值的单位属性的,将z值转化为深度图中的灰度值,便于进行图像处理。被设为无效数据的箱体边缘在深度图中显示为黑色,由于z值所属区间不同,映射后相应点云在深度图中显示的颜色也不相同,可以有效地对相邻且高度差较小的箱体进行区分。
[0060]
步骤s14:根据至少一个预设的模板,通过匹配识别深度图中的箱体,并通过箱体的点云数据获取箱体的位姿。
[0061]
可选地,在深度图中识别到箱体,提取其坐标信息,进而确定其对应的最上层点云数据,然后根据点云求解其位姿。
[0062]
示例性地,通过预先确认或生成的模板/图像模板,使用形状匹配算法(linemod算法)匹配识别深度图中的箱体,然后根据箱体坐标信息获取对应的点云,再通过箱体对应的点云,来计算箱体位姿。
[0063]
可选地,预设的模板包括:根据所述箱体的尺寸,确认或生成的所述箱体的图像模板;和/或根据所述箱体的尺寸范围和预设策略函数,确认或生成满足所述尺寸范围的多个图像模板。
[0064]
在获取待拆垛箱体的模板信息时,包括两种情况:箱体尺寸已知,可以获取到箱体的具体尺寸大小,例如,{[0.35,0.20],[0.51,0.30]},可以直接输入数据生成图像模板;箱体尺寸未知,则需要通过策略函数自动生成满足尺寸范围的尺寸模板集,然后根据尺寸模
板集生成多个图像模板。
[0065]
具体地,尺寸模板集的表现形式虽是列表的形式,但实际处理时会根据尺寸列表自动生成箱体的图像模板(图像模板可以理解为一个白色的矩形,背景为黑色),作为形状匹配算法的图像模板参数。
[0066]
一般由于图像采集装置/相机从垛体上方进行数据采集,所以只需知道正对图像采集设备的箱体面的尺寸,即只需要知道箱体的长l和宽w便可,设定l大于等于w。
[0067]
其中,策略函数是根据业务和实际需求,自定义的一种尺寸生成方法。例如,已知尺寸范围(s,l)和尺寸间距d,那么总共可生成((l-s)/d 1)!个模板。
[0068]
尺寸间距是指尺寸之间最小差值。尺寸范围和尺寸间距属于先验数据,一般人为设定。如果垛体是由大小不同的箱体组成的,可以输入预估的箱体尺寸范围。
[0069]
通过上述方式,可以支持垛体中箱体尺寸一致和箱体尺寸不一致两种拆垛场景。
[0070]
本发明提供的箱体的位姿识别方法,通过对获取的初始点云数据进行过滤,并对图像进行边缘检测确认箱体边缘,将各箱体边缘点对应的点云数据设置为无效数据的方式,实现初始点云数据去噪以及边缘初步提取,得到初步处理后的垛体的点云数据;然后通过提取垛体点云数据的最上层点云,生成深度图,而深度图中可以通过不同的颜色显示高度不同的箱体的形状;再通过形状匹配算法将预先确定或生成的图像模板与深度图中的箱体进行匹配,在深度图中识别到箱体后,提取其坐标信息,进而确定其对应的最上层点云,根据点云求解箱体位姿。通过上述方式,可以去除噪点干扰,增加各箱体边缘之间的间距,还可以减少数据处理量,能够更快速确认箱体边缘,从而更易于识别出垛体中的箱体位姿。
[0071]
可选地,根据上述方法可以准确计算出垛体中单个箱体在相机坐标系下的位姿,通过手眼标定关系,可将该位姿转换到机械臂基坐标系下,机械臂就可以根据所得位姿移动过去进行抓取箱体。
[0072]
请参阅图3,图3为本发明实施例示出的一种箱体的位姿识别装置的结构示意图。如图3所示,箱体的位姿识别装置,包括:数据获取模块10、点云提取模块20、深度图生成模块30和识别模块40。
[0073]
数据获取模块10,用于获取初步处理后的点云数据,所述点云数据包括垛体中被区分的箱体边缘点。
[0074]
点云提取模块20,用于从所述点云数据中获取垛体最上层点云。
[0075]
深度图生成模块30,用于根据所述最上层点云,生成所述最上层点云的深度图,所述深度图中包括至少一个箱体以及其边缘信息。
[0076]
识别模块40,用于根据至少一个预设的模板,通过匹配识别所述深度图中的箱体,并通过所述箱体的点云数据获取所述箱体的位姿。
[0077]
可选地,箱体的位姿识别装置还包括:图像获取模块;所述图像获取模块,用于获取所述垛体的图像信息。
[0078]
本实施方式所述的箱体的位姿识别装置,可以用于执行上述方法中任一步骤,具体可参阅上述实施方式,在此不过多叙述。
[0079]
请参阅图4,图4为本发明实施例示出的一种终端的结构示意图。本发明具体实施例并不对终端的具体实现做限定。
[0080]
如图4所示,该终端可以包括:存储器(memory)101、存储控制器102、处理器
(processor)103和外设接口104。
[0081]
本领域普通技术人员可以理解,相对于处理器103来说,所有其他的组件均属于外设,处理器103与这些外设之间通过一个或多个外设接口104相耦合。外设接口104可基于以下标准实现:通用异步接收/发送装置(universal asynchronous receiver/transmitter,uart)、通用输入/输出(general purpose input output,gpio)、串行外设接口(serial peripheral interface,spi)、内部集成电路(inter-integrated circuit,i2c),但不并限于上述标准。在一些实例中,外设接口104可仅包括总线;在另一些实例中,外设接口104还可包括其他元件,如一个或者多个控制器,例如用于连接液晶显示面板的显示控制器或者用于连接存储器的存储控制器。此外,这此控制器还可以从外设接口104中脱离出来,而集成于处理器103内或者相应的外设内。
[0082]
存储器101可用于存储软件程序以及模块,处理器103通过运行存储在存储器101内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器101可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器101可进一步包括相对于处理器103远程设置的存储器,这些远程存储器可以通过网络连接至移动电子装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0083]
应该理解的是,虽然附图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0084]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或网络设备等)执行本发明实施例各个实施场景所述的方法。
[0085]
以上结合附图详细描述了本发明的优选实施方式,但是本发明并不限于上述实施方式中的具体细节,上述实施例及附图是示例性的,附图中的模块或流程并不一定是实施本发明实施例所必须的,不能理解为对本发明的限制,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型和组合,这些简单变型和组合均属于本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献