紧密摆放的托盘位姿识别方法和装置、计算机设备、介质与流程

阅读: 评论:0



1.本技术涉及叉车技术领域,特别是涉及一种紧密摆放的托盘位姿识别方法和装置、计算机设备、介质。


背景技术:



2.叉车,作为现代物流运输的重要搬运工具,是成件托盘货物进行装卸、堆垛和短距离运输、重物搬运作业的各种轮式搬运车辆。广泛应用于港口、车站、机场、货场、工厂车间、仓库、流通中心和配送中心等,并可进入船舱、车厢和集装箱内进行托盘货物的装卸、搬运作业,是托盘运输、集装箱运输中必不可少的设备。而叉车实现搬运的关键是如何实现对托盘位姿的定位。
3.目前对托盘的识别和定位主要靠2d激光测距仪,然而,从2d深度信息捕获的特征信息只有距离和长度,只能考虑一个平面上的墩孔长度,无法扩展到整个托盘,导致托盘位姿定位不准确。因此,如何实现叉车对待取托盘位姿的准确定位,成为本领域技术人员亟需解决的技术问题。


技术实现要素:



4.基于此,有必要针对上述技术问题,提供一种能够实现待取托盘位姿准确定位的紧密摆放的托盘位姿识别方法和装置、计算机设备、介质。
5.第一方面,本技术提供了一种紧密摆放的托盘位姿识别方法。所述方法包括:
6.获取目标取货区域的原始3d点云数据;其中,所述目标取货区域放置有待取托盘,多个所述待取托盘紧密摆放,所述待取托盘包括多个托盘脚墩;
7.从所述原始3d点云数据中选择多个目标点,并对所述多个目标点进行投影,得到原始托盘图像;
8.根据所述原始托盘图像从原始3d点云数据中提取所述待取托盘对应的目标点云数据;
9.根据所述目标点云数据计算得到所述待取托盘的位姿信息。
10.在其中一个实施例中,所述从所述原始3d点云数据中选择多个目标点,包括:
11.根据预设的目标位对所述原始3d点云数据进行过滤处理,得到第一点云数据;
12.对所述第一点云数据进行体素过滤,得到多个目标点。
13.在其中一个实施例中,所述根据所述原始托盘图像从原始3d点云数据中提取所述待取托盘对应的目标点云数据,包括:
14.对所述原始托盘图像进行图像识别处理,得到托盘识别区域;其中,所述托盘识别区域用于表征所述待取托盘处于所述原始托盘图像的区域;
15.根据所述托盘识别区域对所述原始3d点云数据进行滤波处理,得到滤波后的点云数据;
16.将滤波后的所述点云数据进行拟合处理,得到所述待取托盘对应的目标点云数
据。
17.在其中一个实施例中,所述对所述原始托盘图像进行图像识别处理,得到托盘识别区域,包括:
18.根据预设的目标识别算法对所述原始托盘图像进行目标识别,得到多个目标识别区域;其中,每一所述目标识别区域包括托盘在原始托盘图像中的图像位置信息;
19.根据所述图像位置信息计算得到每一所述目标识别区域对应的中心位置信息;
20.根据预设的目标位和所述中心位置信息,对每一所述目标识别区域进行筛选处理,得到托盘识别区域;其中,所述托盘识别区域与所述待取托盘对应。
21.在其中一个实施例中,所述根据预设的目标识别算法对所述原始托盘图像进行目标识别,得到多个目标识别区域,包括:
22.对所述原始托盘图像进行网格划分,得到多个网格单元;
23.对每一所述网格单元进行目标检测,得到每一网格单元对应的多个目标检测区域;
24.根据所述每一网格单元对应的多个目标检测区域和预设的目标标记区域,计算得到每一所述目标检测区域对应的边界重叠度;
25.根据重叠度阈值和所述边界重叠度,对所述目标检测区域进行筛选处理,得到所述目标识别区域。
26.在其中一个实施例中,所述根据所述目标点云数据计算得到所述待取托盘的位姿信息,包括:
27.将所述目标点云数据分割为多个第二点云数据;其中,每一所述第二点云数据包括多个点云;
28.对所述第二点云数据进行排序处理,得到排序后的第二点云数据,并根据预设的聚类半径对排序后的每一所述第二点云数据进行欧式聚类,得到每一所述第二点云数据对应的聚类结果;其中,所述聚类结果用于表征所述第二点云数据是否包括所有所述托盘脚墩;
29.若所述第二点云数据对应的聚类结果表征所述第二点云数据包括所有所述托盘脚墩,则获取所述第二点云数据中的每一点云对应的坐标,得到脚墩坐标数据;
30.根据所述脚墩坐标数据计算得到所述待取托盘的位姿信息。
31.在其中一个实施例中,所述根据预设的聚类半径对每一所述第二点云数据进行欧式聚类,得到每一所述第二点云数据对应的聚类结果,包括:
32.根据所述聚类半径对每一所述第二点云数据进行欧式聚类,得到每一所述第二点云数据对应的聚类体的聚类数量、聚类体的聚类宽度和聚类体之间聚类间距;
33.若所述聚类体的聚类数量大于或者等于所述托盘脚墩对应的托盘墩数,且所述聚类宽度和脚墩宽度阈值之间的差值小于宽度差阈值,且最近邻的聚类体之间的所述聚类间距小于卡板误差阈值,则所述聚类结果表征所述第二点云数据包括所有所述托盘脚墩。
34.第二方面,本技术还提供了一种紧密摆放的托盘位姿识别装置。所述装置包括:
35.点云获取模块,用于获取目标取货区域的原始3d点云数据;其中,所述目标取货区域放置有待取托盘,多个所述待取托盘紧密摆放,所述待取托盘包括多个托盘脚墩;
36.图像投影模块,用于从所述原始3d点云数据中选择多个目标点,并对所述多个目
标点进行投影,得到原始托盘图像;
37.点云提取模块,用于根据所述原始托盘图像从原始3d点云数据中提取所述待取托盘对应的目标点云数据;
38.位姿计算模块,用于根据所述目标点云数据计算得到所述待取托盘的位姿信息。
39.第三方面,本技术还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面实施例所述的紧密摆放的托盘位姿识别方法。
40.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面实施例所述的紧密摆放的托盘位姿识别方法。
41.上述紧密摆放的托盘位姿识别方法和装置、计算机设备、介质,通过获取目标取货区域的原始3d点云数据,其中,目标取货区域放置有待取托盘,多个待取托盘紧密摆放,待取托盘包括多个托盘脚墩,然后从原始3d点云数据中选择多个目标点,并对多个目标点进行投影,得到原始托盘图像,再根据原始托盘图像从原始3d点云数据中提取待取托盘对应的目标点云数据,最后再根据目标点云数据计算得到待取托盘的位姿信息。本技术实施例的技术方案,通过结合原始3d点云数据和原始托盘图像实现了对待取托盘的位姿识别,提高了待取托盘位姿识别的准确性。
附图说明
42.图1为一些实施例中紧密摆放的托盘位姿识别方法的流程示意图;
43.图2为一些实施例中像素坐标系、激光坐标系和体素坐标系的关系示意图;
44.图3为图1中步骤106的具体方法的流程示意图;
45.图4为图3中步骤302的具体方法的流程示意图;
46.图5为图4中步骤402的具体方法的流程示意图;
47.图6为图1中步骤108的具体方法的流程示意图;
48.图7为图6中步骤604的具体方法的流程示意图;
49.图8为另一些实施例中紧密摆放的托盘位姿识别方法的流程示意图;
50.图9为一些实施例中紧密摆放的托盘位姿识别装置的结构框图;
51.图10为一个实施例中计算机设备的内部结构图。
具体实施方式
52.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
53.在一个实施例中,如图1所示,提供了一种紧密摆放的托盘位姿识别方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于搬运设备,还可以应用于包括搬运设备和服务器的系统,并通过搬运设备和服务器的交互实现。其中,搬运设备指的是用于搬运货物的运输设备,搬运设备可以但不限于是自动引导车(automated guided vehicle,agv小车)和叉车中的至少一种,其中叉车可以但不限于是无人搬运叉车。
该紧密摆放的托盘位姿识别方法包括以下步骤:
54.步骤102,获取目标取货区域的原始3d点云数据;其中,目标取货区域放置有待取托盘,多个待取托盘紧密摆放,待取托盘包括多个托盘脚墩。
55.托盘,是一种成组运输货物的载货工具。
56.其中,待取托盘指的是目标取货区域中需要搬运设备进行取货所指定的托盘。
57.点云数据,是指在一个三维坐标系统中的一组向量的集合,这些向量通常以x、y、z三维坐标的形式表示,点云数据可能还含有颜信息、反射强度信息。
58.其中,步骤102中的目标取货区域指的是搬运设备叉取托盘的区域,该目标取货区域放置有若干个待取托盘,待取托盘上可以放置有待取的货物,也可以没有放置待取的货物。每一个待取托盘都包括托盘脚墩。
59.原始3d点云数据可以通过3d激光获取,也可以通过其他手段获取得到,对于此本技术不作具体限制。如通过3d激光获取得到,则3d激光可以安装在搬运设备上。例如,可以将3d激光安装于叉车叉臂间中间点处,以通过3d激光获取得到目标取货区域的原始3d点云数据。当然,3d激光也可以安装在叉车的其他位置,或者安装于目标取货区域的其他位置,对于此,本技术不作具体限制。
60.在一些实施例中,将3d激光安装于叉车叉臂间中间点处,这样能够保证激光设备在进行激光扫描时不会被货物遮挡,从而提高激光扫描准确性。通过3d激光获取的原始3d点云数据,则原始3d点云数据处于激光坐标系下,该激光坐标系的原点可以设置在3d激光的安装位置,也可以设置在其他位置,对于此,本技术不作具体限制。
61.步骤104,从原始3d点云数据中选择多个目标点,并对多个目标点进行投影,得到原始托盘图像。
62.在步骤104中,由于原始3d点云数据处于激光坐标系中,可以选择坐标系中的一个面对原始3d点云数据进行筛选,从而选择得到多个目标点,然后,选择该面作为投影面,对多个目标点进行投影处理,得到原始托盘图像。
63.在一些实施例中,对多个目标点进行投影处理,得到原始托盘图像,可以包括以下步骤:
64.对多个目标点进行投影,得到初步投影图像。
65.对初步投影图像进行灰度处理,得到原始托盘图像。
66.如图2所示,图2为本技术实施例提供的像素坐标系、激光坐标系和体素坐标系的关系示意图。在本实施例中,将多个目标点进行投影,得到初步投影图像,此时该初步投影图像为rgb图像,对该初步投影图像建立像素坐标系,该像素坐标系的原点保持与体素坐标系的原点一致,该像素坐标系的原点为体素坐标系中的(x
min
,y
min
)点,即图中的(x_min,y_min)点。对于像素坐标系中的每个像素点,如果该像素点中存在目标点,则对应的像素灰度值为255,如果该像素点中不存在目标点,则对应的像素灰度值为0。通过这样设置,实现了对初步投影图像的灰度化,得到了原始托盘图像。这样设置,使得原始托盘图像中只包括了和待取托盘相关的信息,从而便于后续实现对待取托盘的位姿识别,提高了待取托盘位姿识别的准确性。
67.步骤106,根据原始托盘图像从原始3d点云数据中提取待取托盘对应的目标点云数据。
68.在步骤106中,通过原始托盘图像确定待取托盘所处的大概区域,确定待取托盘所处的大概区域后,再从原始3d点云数据中提取出该大概区域对应的点云数据,即可得到待取托盘对应的目标点云数据。
69.步骤108,根据目标点云数据计算得到待取托盘的位姿信息。
70.在步骤108中,通过前述步骤得到待取托盘对应的目标点云数据后,即可根据目标点云数据计算得到待取托盘的位姿信息,该位姿信息可以用待取托盘的x、y、z和yaw表示,yaw表示偏航角信息。
71.得到托盘位姿信息后,搬运设备开始取货任务。
72.需要说明的是,上述的托盘位姿识别方法在搬运设备进行托盘取货的过程中一直执行。
73.上述紧密摆放的托盘位姿识别方法中,通过获取目标取货区域的原始3d点云数据,其中,目标取货区域放置有待取托盘,多个待取托盘紧密摆放,待取托盘包括多个托盘脚墩,然后从原始3d点云数据中选择多个目标点,并对多个目标点进行投影,得到原始托盘图像,再根据原始托盘图像从原始3d点云数据中提取待取托盘对应的目标点云数据,最后再根据目标点云数据计算得到待取托盘的位姿信息。通过这样设置,结合原始3d点云数据和原始托盘图像实现了对待取托盘的位姿识别,提高了待取托盘位姿识别的准确性。
74.在一些实施例中,步骤104包括以下步骤:根据预设的目标位对原始3d点云数据进行过滤处理,得到第一点云数据;对第一点云数据进行体素过滤,得到多个目标点。
75.其中,目标位指的是待取托盘相对于搬运设备所在的坐标系的理想坐标位姿,具体包括但不限于待取托盘相对于搬运设备所在坐标系在x轴方向上的纵向宽度、待取托盘相对于搬运设备所在坐标系在y轴方向上的横向长度、待取托盘相对于搬运设备所在坐标系在z轴方向上的垂直高度,以及待取托盘的托盘平面相较于搬运设备所在的坐标系在y轴方向上的夹角中的至少一种。
76.在一些实施例中,目标位可以用x0,y0,z0,th0表示,其中,x0表示待取托盘相对于搬运设备所在坐标系在x轴方向上的纵向宽度,y0表示待取托盘相对于搬运设备所在坐标系在y轴方向上的横向长度,z0表示待取托盘相对于搬运设备所在坐标系在z轴方向上的垂直高度,th0表示待取托盘的托盘平面相较于搬运设备所在的坐标系在y轴方向上的夹角。
77.当搬运设备运行到目标取货区域后,搬运设备将待取托盘的目标位下发给感知算法模块。感知算法模块,是服务器上用于过滤点云数据的模块。
78.在一些实施例中,感知算法模块根据目标位,对原始3d点云数据进行过滤得到第一点云数据的过程为:感知算法模块获取提前标定好的激光外参和提前在感知算法模块上配置好的待取托盘的托盘尺寸参数,并根据托盘尺寸参数从原始3d点云数据中提取与待取托盘的尺寸相匹配的点云数据,作为第一点云数据。
79.其中,激光外参指的是激光设备与其他坐标系,例如与搬运设备所在坐标系之间的坐标系转换关系。托盘尺寸参数,包括但不限于托盘长度、托盘宽度和托盘高度中的至少一种。
80.在一些实施例中,对第一点云数据进行激光坐标系下的xoy平面的体素过滤,具体为:
81.在预先设定尺寸的长方体体素网格中,取激光坐标系下y值最大的点替代每一个
立方体体素网格中的所有点,从而得到多个目标点。即对于每一个立方体体素网格中,选择该体素网格中y值最大的点,作为对应的目标点。其中,每一立方体可以设置为1cm*1cm*1cm。当然也可以是其他尺寸的设置,可以根据实际情况进行设置,对于此,本技术不作具体限制。
82.请参照图3,在一些实施例中,步骤106包括但不限于以下步骤:
83.步骤302,对原始托盘图像进行图像识别处理,得到托盘识别区域;其中,托盘识别区域用于表征待取托盘处于原始托盘图像的区域。
84.步骤304,根据托盘识别区域对原始3d点云数据进行滤波处理,得到滤波后的点云数据。
85.在一些实施例的步骤304中,根据前述步骤得到待取托盘对应得托盘识别区域后,通过托盘识别区域对原始3d点云数据进行滤波处理,得到目标点云数据,该目标点云数据用于表征待取托盘对应的点云数据。
86.具体地,可以对原始3d点云数据进行直通滤波处理,得到滤波后的点云数据。
87.步骤306:将滤波后的点云数据进行拟合处理,得到待取托盘对应的目标点云数据。
88.在一些实施例中,对滤波后的点云数据进行平面拟合处理,将符合设定距离的点提取,以得到目标点云数据。其中,设定距离为预先设定的,可以根据实际情况进行修改,对于此,本技术不作具体限制。
89.具体地,可以采取ransac(random sample consensus,随机抽样一致)算法随机取点做拟合,设定距离可以采取2cm或者3cm,通过使用ransac算法对滤波后的点云数据进行平面拟合,以将符合设定距离的点提取得到目标点云数据。
90.在一些实施例钟,步骤304包括以下步骤:
91.获取托盘识别区域的x的最大值和最小值,以及获取托盘识别区域的y的最大值和最小值。
92.根据托盘识别区域的x的最大值和最小值、以及托盘识别区域的y的最大值和最小值,对原始3d点云数据进行直通滤波处理,得到滤波后的点云数据。
93.具体地,首先获取托盘识别区域的中心坐标点,其中,该中心坐标点为像素坐标系下的托盘识别区域的中心坐标点,将该中点坐标点转换到激光坐标系下,然后,获取激光坐标系下的获取托盘识别区域的横坐标的最大值和最小值,以及获取托盘识别区域的纵坐标的最大值和最小值,再以托盘识别区域的横坐标的最大值和最小值、托盘识别区域的纵坐标的最大值和最小值所限定的范围,对原始3d点云数据进行过滤处理,即可得到目标点云数据。
94.请参照图4,在一些实施例中,步骤302包括但不限于以下步骤:
95.步骤402,根据预设的目标识别算法对原始托盘图像进行目标识别,得到多个目标识别区域;其中,每一目标识别区域包括托盘在原始托盘图像中的图像位置信息。
96.具体地,在一些实施例的步骤402中,目标识别算法选择yolo算法,使用yolo算法对原始托盘图像进行目标识别,以识别出存在待取托盘的多个目标识别区域。每一目标识别区域包括托盘在原始托盘图像中的图像位置信息,每一目标识别区域都可能存在至少一个待取托盘,图像位置信息指的是托盘处于原始托盘图像中的位置区域。
97.在一些实施例中,目标识别区域为目标瞄框,用目标瞄框处于像素坐标系中的像素坐标点来表示图像位置信息、目标匹配的置信度和iou值。其中,目标匹配的置信度表征目标匹配的可能性。例如,用目标瞄框的左上角和右下角的像素坐标点来表示图像位置信息。
98.yolo(you only look once:unified,real-time object detection),是一种对象检测算法,它能够立即识别图像中的对象、以及对象的位置和相对位置。
99.步骤404,根据图像位置信息计算得到每一目标识别区域对应的中心位置信息。
100.在一些实施例的步骤404中,图像位置信息表示托盘处于原始托盘图像中的位置区域,则可以根据图像位置信息计算得到每一目标识别区域对应的中心位置信息。例如,当用目标瞄框的左上角和右下角的像素坐标点来表示图像位置信息时,左上角的像素坐标点用(x
min
,y
min
)表示,右下角的像素坐标点用(x
max
,y
max
)表示,则托盘对应的中心位置信息对应的像素坐标点为
101.步骤406,根据预设的目标位和中心位置信息,对每一目标识别区域进行筛选处理,得到托盘识别区域;其中,托盘识别区域与待取托盘对应。
102.在一些实施例的步骤406中,目标位指的是待取托盘相对于搬运设备所在的坐标系的理想坐标位姿,具体包括但不限于待取托盘相对于搬运设备所在坐标系在x轴方向上的纵向宽度、待取托盘相对于搬运设备所在坐标系在y轴方向上的横向长度、待取托盘相对于搬运设备所在坐标系在z轴方向上的垂直高度,以及待取托盘的托盘平面相较于搬运设备所在的坐标系在y轴方向上的夹角中的至少一种。
103.在一些实施例中,目标位可以用(x0,y0,z0,th0)表示,其中,x0表示待取托盘相对于搬运设备所在坐标系在x轴方向上的纵向宽度,y0表示待取托盘相对于搬运设备所在坐标系在y轴方向上的横向长度,z0表示待取托盘相对于搬运设备所在坐标系在z轴方向上的垂直高度,th0表示待取托盘的托盘平面相较于搬运设备所在的坐标系在y轴方向上的夹角,中心位置信息用像素坐标点表示。根据目标位和中心位置信息,对每一目标识别区域进行筛选处理,得到托盘识别区域的具体过程为:
104.遍历每一个目标识别区域的中心位置信息的像素横坐标值,计算每两个目标识别区域的像素横坐标值的差的绝对值,如果差的绝对值大于预先设定的横坐标阈值,则说明该目标识别区域对应的托盘之间不相邻,在这种情况下,选择最接近目标位中x0对应的目标识别区域作为托盘识别区域。如果绝对值小于或等于横坐标阈值,则说明该目标识别区域对应的托盘紧挨,在这种情况下,遍历每个目标识别区域的中心位置信息的像素纵坐标值,选择最接近目标位中y0对应的目标识别区域作为托盘识别区域。通过这样设置,能够准确到待取托盘对应的托盘识别区域,从而提高了待取托盘位姿识别的准确性。
105.请参照图5,在一些实施例中,步骤402具体包括以下步骤:
106.步骤502,对原始托盘图像进行网格划分,得到多个网格单元。
107.在一些实施例的步骤502中,原始托盘图像有多个像素点组成,且原始托盘图像处于像素坐标系中,因此,可以直接在像素坐标系中对原始托盘图像进行网格划分,得到多个网格单元。
108.步骤504,对每一网格单元进行目标检测,得到每一网格单元对应的多个目标检测
区域。
109.在一些实施例的步骤504中,对于前述步骤划分的每一个网格单元,都选择一个预先设定固定数量的边界框进行目标检测,得到多个目标检测区域。预先设定的固定数量可以选3个,也可以选择其他个数,对于此,本技术不作具体限制。
110.步骤506,根据每一网格单元对应的多个目标检测区域和预设的目标标记区域,计算得到每一目标检测区域对应的边界重叠度。
111.在一些实施例的步骤506中,对于每一个网格单元中的多个目标检测区域,只选择与目标标记区域iou最大的目标检测区域来负责预测是否存在待取托盘。目标标记区域指的是人为标记的正确结果,待取托盘所处的大概位置,即下发至感知算法模块的目标位。
112.iou(intersection over union,重叠度)是一种测量在特定数据集中检测相应物体准确度的一个标准。iou是一个简单的测量标准,只要是在输出中得出一个预测范围(bounding boxes)的任务都可以用iou来进行测量。iou可以通过目标标记区域和目标检测区域重叠部分的面积,除以目标标记区域和目标检测区域的并集部分面积,计算得到。
113.在得到目标检测区域和确定目标标记区域后,根据iou的定义能够计算得到每一个网格单元中的每一个目标检测区域和目标标记区域的重叠度,得到每一目标检测区域对应的边界重叠度,以便于后续对目标检测区域进行筛选处理,得到目标识别区域,从而提高托盘位姿识别的准确性。
114.步骤508,根据重叠度阈值和边界重叠度,对目标检测区域进行筛选处理,得到目标识别区域。
115.在一些实施例的步骤508中,当边界重叠度大于重叠度阈值时,则表示目标检测区域和目标标记区域为正匹配,在这种情况下,在目标检测区域中能够检测得到待取托盘。当边界重叠度小于或者等于重叠度阈值时,则表示目标检测区域和目标标记区域为零匹配或者负匹配,在这种情况下,在目标检测区域中不能够检测到待取托盘。因此,将边界重叠度大于重叠度阈值对应的目标检测区域作为目标识别区域,而边界重叠度小于或者等于重叠度阈值对应的目标检测区域筛选掉,不作为目标识别区域。
116.需要说明的是,重叠度阈值为预先设定的,在一些实施例中,重叠度阈值为0.5,当然重叠度阈值也可以设置为其他值,可以根据实际情况进行修改,对于此,本技术不作具体限制。
117.在一些实施例中,如图6所示,步骤108包括但不限于以下步骤:
118.步骤602,将目标点云数据分割为多个第二点云数据;其中,每一第二点云数据包括多个点云。
119.在一些实施例的步骤602中,基于激光坐标系的某一个平面,以预先设定的间距对目标点云数据进行分段分割,并获取分段分割后的点云坐标,得到多个第二点云数据。
120.在一些实施例中,基于激光坐标系的xoz平面,以间距1cm的方式对目标点云数据进行分段分割,并获取分割后的点云坐标,且将获取得到的点云坐标保存在数组中,得到多个第二点云数据。对于数组中的每一个元素,即为一个第二点云数据,每个第二点云数据都包括多个点云。
121.步骤604,对第二点云数据进行排序处理,得到排序后的第二点云数据,并根据预设的聚类半径对排序后的每一第二点云数据进行欧式聚类,得到每一第二点云数据对应的
聚类结果;其中,聚类结果用于表征第二点云数据是否包括所有托盘脚墩。
122.具体地,在一些实施例的步骤604中,首先遍历多个第二点云数据中的每个点云数据,将每个第二点云数据中的点云按照点云横坐标值从小到大进行排序,得到排序处理后的第二点云数据,然后根据预先设定的聚类半径对每一第二点云数据进行欧式聚类,得到每一第二点云数据对应的聚类结果,其中,聚类结果用于表征第二点云数据是否包括待取托盘的所有托盘脚墩。
123.由于物体是连续的,因此排序后的点必定是连续的,只有连续的点才构成一个物体,因此,通过将每个第二点云数据中的点云按照点云横坐标值从小到大进行排序,得到排序处理后的第二点云数据,以判断第二点云数据中的点云是否连续。
124.欧式聚类是一种基于欧氏距离度量的聚类算法。
125.需要说明的是,聚类半径为预先设定的,可以根据实际情况进行更改,对于此本技术不作具体限定。在一些实施例中,聚类半径设置为5cm,然后,根据5cm的聚类半径对每一排序处理后的第二点云数据进行欧式聚类,得到每一排序处理后的第二点云数据对应的聚类结果。
126.步骤606,若第二点云数据对应的聚类结果表征第二点云数据包括所有托盘脚墩,则获取第二点云数据中的每一点云对应的坐标,得到脚墩坐标数据。
127.在一些实施例的步骤606中,当第二点云数据对应的聚类结果表征第二点云数据包括待取托盘所有托盘脚墩时,说明该第二点云数据中点云为待取托盘的托盘脚墩,在这种情况下,获取第二点云数据中的每一点云对应的坐标,即可得到待取托盘中每一托盘脚墩对应的脚墩坐标数据。其中,该脚墩坐标数据用于表征待取托盘中每一托盘脚墩的中心坐标值。
128.步骤608,根据脚墩坐标数据计算得到待取托盘的位姿信息。
129.在一些实施例的步骤608中,计算得到待取托盘的所有托盘脚墩对应的脚墩坐标数据后,能够直接计算得到待取托盘的位姿信息。具体为:
130.首先根据所有托盘脚墩对应的脚墩坐标数据计算得到中心坐标值,即可得到待取托盘的中心坐标值,待取托盘的中心坐标值可以用(x,y,z)表示。
131.然后计算相邻托盘脚墩之间的差值,即可得到待取托盘的偏航角。待取托盘的偏航角通过公式(1)计算得到,公式(1)具体为:
[0132][0133]
在公式(1)中,yaw表示待取托盘的偏航角,z_max、x_max分别表示某一托盘脚墩对应的脚墩坐标数据中的空间方向上的坐标值和横坐标值,z_min、x_min分别表示另一个托盘脚墩对应的脚墩坐标数据中的空间方向上的坐标值和横坐标值。其中,空间方向上的坐标值用于表达三维笛卡尔坐标系中的深度。
[0134]
在一些实例中,在公式(1)中,z_max表示的脚墩坐标数据中的空间方向上的坐标值最大值,x_max表示脚墩坐标数据中的空间方向上的坐标值最大值对应的托盘脚墩的横坐标值,类似的,z_min表示托盘脚墩对应的脚墩坐标数据中的空间方向上的坐标值最小值,x_min表示脚墩坐标数据中的空间方向上的坐标值最小值对应的托盘脚墩的横坐标值。
[0135]
计算得到待取托盘的偏航角、中心坐标值后,即可确定待取托盘的位姿信息,该位
姿信息可以用(x,y,z,yaw)表示。
[0136]
在一些实施例中,如图7所示,步骤604包括但不限于以下步骤:
[0137]
步骤702,根据聚类半径对每一第二点云数据进行欧式聚类,得到每一第二点云数据对应的聚类体的聚类数量、聚类体的聚类宽度和聚类体之间聚类间距。
[0138]
在一些实施例的步骤702中,根据聚类半径对每一个第二点云数据中的点云进行聚类处理,得到多个聚类体、聚类体的聚类数量、聚类体的聚类宽度和聚类体之间的聚类间距。聚类间距指的是聚类体和最临近的聚类体之间的间距。
[0139]
步骤704,若聚类体的聚类数量大于或者等于托盘脚墩对应的托盘墩数,且聚类宽度和脚墩宽度阈值之间的差值小于宽度差阈值,且最近邻的聚类体之间的聚类间距小于卡板误差阈值,则聚类结果表征第二点云数据包括所有托盘脚墩。
[0140]
在一些实施例的步骤704中,当聚类体的聚类数量小于托盘脚墩对应的托盘墩数时,对应的第二点云数据不符合一个待取托盘的规格,在这种情况下,不能将对应的第二点云数据作为待取托盘对应的点云数据来处理。因此,只有在满足聚类体的聚类数量大于或者等于托盘脚墩对应的托盘墩数的情况下,即只有确认第二点云数据为待取托盘对应的点云数据时,才能做后续的判断。
[0141]
脚墩宽度阈值指的是托盘脚墩的实际墩宽,当聚类宽度和脚墩宽度阈值的差值,小于宽度差阈值时,说明聚类宽度符合脚墩宽度阈值。宽度差阈值为预先设定的,可以根据实际情况进行修改。例如宽度差阈值可以选择0.1cm。
[0142]
当最近邻的聚类体之间的聚类间距和实际托盘脚墩之间的间距的差值,小于卡板误差阈值时,则说明聚类间距符合卡板误差阈值,卡板误差阈值为预先设定的,可以根据实际情况进行修改。例如,在本实施例中卡板误差阈值可以选择0.1cm。
[0143]
当聚类体的聚类数量大于或者等于托盘脚墩对应的托盘墩数,且聚类宽度符合脚墩宽度阈值,聚类间距符合卡板误差阈值的情况下,说明第二点云数据对应的聚类结果,能够用于表征第二点云数据包括所有托盘脚墩。
[0144]
请参照图8,在一些实施例中,紧密摆放的托盘位姿识别方法包括以下步骤:
[0145]
步骤802,获取目标取货区域的原始3d点云数据;其中,目标取货区域放置有待取托盘,多个待取托盘紧密摆放,待取托盘包括多个托盘脚墩。
[0146]
步骤804,根据预设的目标位对原始3d点云数据进行过滤处理,得到第一点云数据。
[0147]
步骤806,对第一点云数据进行体素过滤,得到多个目标点。
[0148]
步骤808,对多个目标点进行投影,得到初步投影图像,对初步投影图像进行灰度处理,得到原始托盘图像。
[0149]
步骤810,对原始托盘图像进行网格划分,得到多个网格单元。
[0150]
步骤812,对每一网格单元进行目标检测,得到每一网格单元对应的多个目标检测区域。
[0151]
步骤814,根据每一网格单元对应的多个目标检测区域和预设的目标标记区域,计算得到每一目标检测区域对应的边界重叠度。
[0152]
步骤816,根据重叠度阈值和边界重叠度,对目标检测区域进行筛选处理,得到目标识别区域;其中,每一目标识别区域包括托盘在原始托盘图像中的图像位置信息。
[0153]
步骤818,根据图像位置信息计算得到每一目标识别区域对应的中心位置信息。
[0154]
步骤820,根据目标位和中心位置信息,对每一目标识别区域进行筛选处理,得到托盘识别区域;其中,托盘识别区域与待取托盘对应。
[0155]
步骤822,根据托盘识别区域对原始3d点云数据进行滤波处理,得到滤波后的点云数据。
[0156]
步骤824,对滤波后的点云数据进行拟合处理,得到待取托盘对应的目标点云数据。
[0157]
步骤826,将目标点云数据分割为多个第二点云数据;其中,每一第二点云数据包括多个点云。
[0158]
步骤828,对第二点云数据进行排序处理,得到排序后的第二点云数据,并根据预设的聚类半径对排序后的每一第二点云数据进行欧式聚类,得到每一第二点云数据对应的聚类结果;其中,聚类结果用于表征第二点云数据是否包括所有托盘脚墩。
[0159]
步骤830,若第二点云数据对应的聚类结果表征第二点云数据包括所有托盘脚墩,则获取第二点云数据中的每一点云对应的坐标,得到脚墩坐标数据。
[0160]
步骤832,根据脚墩坐标数据计算得到待取托盘的位姿信息。
[0161]
具体地,步骤802~830的具体实施例请参照图1~图7中的实施例,在此不在一一赘述。
[0162]
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0163]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的紧密摆放的托盘位姿识别方法的紧密摆放的托盘位姿识别装置。
[0164]
在一个实施例中,如图9所示,提供了一种紧密摆放的托盘位姿识别装置,包括:点云获取模块902、图像投影模块904、点云提取模块906和位姿计算模块908,其中:
[0165]
点云获取模块902,用于获取目标取货区域的原始3d点云数据;其中,目标取货区域放置有待取托盘,多个待取托盘紧密摆放,待取托盘包括多个托盘脚墩。
[0166]
图像投影模块904,用于从原始3d点云数据中选择多个目标点,并对多个目标点进行投影,得到原始托盘图像。
[0167]
点云提取模块906,用于根据原始托盘图像从原始3d点云数据中提取待取托盘对应的目标点云数据。
[0168]
位姿计算模块908,用于根据目标点云数据计算得到待取托盘的位姿信息。
[0169]
在一些实施例中,图像投影模块904包括初步过滤子模块和体素过滤子模块:
[0170]
初步过滤子模块,用于根据预设的目标位对原始3d点云数据进行过滤处理,得到第一点云数据。
[0171]
体素过滤子模块,用于对第一点云数据进行体素过滤,得到多个目标点。
[0172]
在一些实施例中,点云提取模块906包括图像识别子模块和滤波子模块,其中:
[0173]
图像识别子模块,用于对原始托盘图像进行图像识别处理,得到托盘识别区域;其中,托盘识别区域用于表征待取托盘处于原始托盘图像的区域;。
[0174]
滤波子模块,用于根据托盘识别区域对原始3d点云数据进行滤波处理,得到待取托盘对应的目标点云数据。
[0175]
在一些实施例中,图像识别子模块包括目标识别单元、位置信息计算单元和区域筛选单元,其中:
[0176]
目标识别单元,用于根据预设的目标识别算法对原始托盘图像进行目标识别,得到多个目标识别区域;其中,每一目标识别区域包括托盘在原始托盘图像中的图像位置信息。
[0177]
位置信息计算单元,用于根据图像位置信息计算得到每一目标识别区域对应的中心位置信息。
[0178]
区域筛选单元,用于根据预设的目标位和中心位置信息,对每一目标识别区域进行筛选处理,得到托盘识别区域;其中,托盘识别区域与待取托盘对应。
[0179]
在一些实施例中,目标识别单元包括网格划分子单元、目标检测子单元、重叠度计算子单元和边缘区域筛选子单元,其中:
[0180]
网格划分子单元,用于对原始托盘图像进行网格划分,得到多个网格单元。
[0181]
目标检测子单元,用于对每一网格单元进行目标检测,得到每一网格单元对应的多个目标检测区域。
[0182]
重叠度计算子单元,用于根据每一网格单元对应的多个目标检测区域和预设的目标标记区域,计算得到每一目标检测区域对应的边界重叠度。
[0183]
边缘区域筛选子单元,用于根据重叠度阈值和边界重叠度,对目标检测区域进行筛选处理,得到目标识别区域。
[0184]
在一些实施例中,位姿计算模块包括点云分割子模块、聚类子模块、坐标获取子模块和位姿计算子模块,其中:
[0185]
点云分割子模块,用于将目标点云数据分割为多个第二点云数据;其中,每一第二点云数据包括多个点云。
[0186]
聚类子模块,用于根据预设的聚类半径对每一第二点云数据进行欧式聚类,得到每一第二点云数据对应的聚类结果;其中,聚类结果用于表征第二点云数据是否包括所有托盘脚墩。
[0187]
坐标获取子模块,用于若第二点云数据对应的聚类结果表征第二点云数据包括所有托盘脚墩,则获取第二点云数据中的每一点云对应的坐标,得到脚墩坐标数据。
[0188]
位姿计算子模块,用于根据脚墩坐标数据计算得到待取托盘的位姿信息。
[0189]
在一些实施例中,聚类子模块包括欧式聚类单元和判断单元,其中:
[0190]
欧式聚类单元,用于根据聚类半径对每一第二点云数据进行欧式聚类,得到每一第二点云数据对应的聚类体的聚类数量、聚类体的聚类宽度和聚类体之间聚类间距。
[0191]
判断单元,用于若聚类体的聚类数量大于或者等于托盘脚墩对应的托盘墩数,且聚类宽度和脚墩宽度阈值之间的差值小于宽度差阈值,聚类间距小于卡板误差阈值,则聚类结果用于表征第二点云数据包括所有托盘脚墩。
[0192]
上述紧密摆放的托盘位姿识别装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0193]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种紧密摆放的托盘位姿识别方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0194]
本领域技术人员可以理解,图10中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0195]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现第一方面实施例中的紧密摆放的托盘位姿识别方法。
[0196]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现第一方面实施例中的紧密摆放的托盘位姿识别方法。
[0197]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0198]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛
盾,都应当认为是本说明书记载的范围。
[0199]
以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。

技术特征:


1.一种紧密摆放的托盘位姿识别方法,其特征在于,所述方法包括:获取目标取货区域的原始3d点云数据;其中,所述目标取货区域放置有待取托盘,多个所述待取托盘紧密摆放,所述待取托盘包括多个托盘脚墩;从所述原始3d点云数据中选择多个目标点,并对所述多个目标点进行投影,得到原始托盘图像;根据所述原始托盘图像从原始3d点云数据中提取所述待取托盘对应的目标点云数据;根据所述目标点云数据计算得到所述待取托盘的位姿信息。2.根据权利要求1所述的方法,其特征在于,所述从所述原始3d点云数据中选择多个目标点,包括:根据预设的目标位对所述原始3d点云数据进行过滤处理,得到第一点云数据;对所述第一点云数据进行体素过滤,得到多个目标点。3.根据权利要求1所述的方法,其特征在于,所述根据所述原始托盘图像从原始3d点云数据中提取所述待取托盘对应的目标点云数据,包括:对所述原始托盘图像进行图像识别处理,得到托盘识别区域;其中,所述托盘识别区域用于表征所述待取托盘处于所述原始托盘图像的区域;根据所述托盘识别区域对所述原始3d点云数据进行滤波处理,得到滤波后的点云数据;将滤波后的所述点云数据进行拟合处理,得到所述待取托盘对应的目标点云数据。4.根据权利要求3所述的方法,其特征在于,所述对所述原始托盘图像进行图像识别处理,得到托盘识别区域,包括:根据预设的目标识别算法对所述原始托盘图像进行目标识别,得到多个目标识别区域;其中,每一所述目标识别区域包括托盘在原始托盘图像中的图像位置信息;根据所述图像位置信息计算得到每一所述目标识别区域对应的中心位置信息;根据预设的目标位和所述中心位置信息,对每一所述目标识别区域进行筛选处理,得到托盘识别区域;其中,所述托盘识别区域与所述待取托盘对应。5.根据权利要求4所述的方法,其特征在于,所述根据预设的目标识别算法对所述原始托盘图像进行目标识别,得到多个目标识别区域,包括:对所述原始托盘图像进行网格划分,得到多个网格单元;对每一所述网格单元进行目标检测,得到每一网格单元对应的多个目标检测区域;根据所述每一网格单元对应的多个目标检测区域和预设的目标标记区域,计算得到每一所述目标检测区域对应的边界重叠度;根据重叠度阈值和所述边界重叠度,对所述目标检测区域进行筛选处理,得到所述目标识别区域。6.根据权利要求1至5任意一项所述的方法,其特征在于,所述根据所述目标点云数据计算得到所述待取托盘的位姿信息,包括:将所述目标点云数据分割为多个第二点云数据;其中,每一所述第二点云数据包括多个点云;对所述第二点云数据进行排序处理,得到排序后的第二点云数据,并根据预设的聚类半径对排序后的每一所述第二点云数据进行欧式聚类,得到每一所述第二点云数据对应的
聚类结果;其中,所述聚类结果用于表征所述第二点云数据是否包括所有所述托盘脚墩;若所述第二点云数据对应的聚类结果表征所述第二点云数据包括所有所述托盘脚墩,则获取所述第二点云数据中的每一点云对应的坐标,得到脚墩坐标数据;根据所述脚墩坐标数据计算得到所述待取托盘的位姿信息。7.根据权利要求6所述的方法,其特征在于,所述根据预设的聚类半径对每一所述第二点云数据进行欧式聚类,得到每一所述第二点云数据对应的聚类结果,包括:根据所述聚类半径对每一所述第二点云数据进行欧式聚类,得到每一所述第二点云数据对应的聚类体的聚类数量、聚类体的聚类宽度和聚类体之间聚类间距;若所述聚类体的聚类数量大于或者等于所述托盘脚墩对应的托盘墩数,且所述聚类宽度和脚墩宽度阈值之间的差值小于宽度差阈值,且所述聚类间距小于卡板误差阈值,则所述聚类结果表征所述第二点云数据包括所有所述托盘脚墩。8.一种紧密摆放的托盘位姿识别装置,其特征在于,所述装置包括:点云获取模块,用于获取目标取货区域的原始3d点云数据;其中,所述目标取货区域放置有待取托盘,多个所述待取托盘紧密摆放,所述待取托盘包括多个托盘脚墩;图像投影模块,用于从所述原始3d点云数据中选择多个目标点,并对所述多个目标点进行投影,得到原始托盘图像;点云提取模块,用于根据所述原始托盘图像从原始3d点云数据中提取所述待取托盘对应的目标点云数据;位姿计算模块,用于根据所述目标点云数据计算得到所述待取托盘的位姿信息。9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

技术总结


本申请涉及一种紧密摆放的托盘位姿识别方法和装置、计算机设备、介质。所述方法包括:获取目标取货区域的原始3D点云数据;其中,所述目标取货区域放置有待取托盘,多个所述待取托盘紧密摆放,所述待取托盘包括多个托盘脚墩;从所述原始3D点云数据中选择多个目标点,并对所述多个目标点进行投影,得到原始托盘图像;根据所述原始托盘图像从原始3D点云数据中提取所述待取托盘对应的目标点云数据;根据所述目标点云数据计算得到所述待取托盘的位姿信息。采用本方法能够实现托盘位姿的准确定位识别。识别。识别。


技术研发人员:

杨秉川 方牧 鲁豫杰 李陆洋 王琛 方晓曼

受保护的技术使用者:

未来机器人(深圳)有限公司

技术研发日:

2022.10.11

技术公布日:

2022/12/30

本文发布于:2023-01-01 17:14:54,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/4/50205.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:托盘   所述   目标   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图