CN118154679A - 托盘位姿确定方法、装置及存储介质 - Google Patents
托盘位姿确定方法、装置及存储介质 Download PDFInfo
- Publication number
- CN118154679A CN118154679A CN202211554579.7A CN202211554579A CN118154679A CN 118154679 A CN118154679 A CN 118154679A CN 202211554579 A CN202211554579 A CN 202211554579A CN 118154679 A CN118154679 A CN 118154679A
- Authority
- CN
- China
- Prior art keywords
- tray
- determining
- line
- line segment
- fork
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000003860 storage Methods 0.000 title claims abstract description 11
- 238000001514 detection method Methods 0.000 claims abstract description 66
- 230000011218 segmentation Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 8
- 238000005520 cutting process Methods 0.000 claims description 7
- 238000012216 screening Methods 0.000 description 17
- 238000013135 deep learning Methods 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000010845 search algorithm Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241001270131 Agaricus moelleri Species 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
Landscapes
- Image Analysis (AREA)
Abstract
本申请涉及一种托盘位姿确定方法、装置及存储介质,该方法包括:获取包含托盘前端面的初始图像,以及与所述初始图像中各像素点对应的深度数据;基于所述初始图像和所述深度数据,确定所述托盘的叉孔边界线;基于所述叉孔边界线的交点,确定叉孔顶点在所述初始图像中的坐标;基于所述叉孔顶点在所述初始图像中的坐标,获取所述托盘的位姿信息,在对托盘叉孔的尺寸规格和托盘朝向角度无统一要求的情况下准确获取托盘叉孔的位置和角度信息,使叉车根据该信息对托盘叉孔进行操作并进行作业,解决了相关技术中存在的托盘位姿检测的兼容性较差的问题。
Description
技术领域
本申请涉及视觉定位技术领域,特别是涉及一种托盘位姿确定方法、托盘位姿确定装置及计算机存储介质。
背景技术
在仓储物流领域中,使用自动导引运输车(Automated Guided Vehicle,AGV)对托盘进行作业能够大幅度地提升货物的运输和存取效率。现有技术中借助一些传感器和算法自动感知托盘的相对位姿,实现在计算机的控制下实现自动化作业,可以大大提高工作效率并降低人力成本。现有的托盘位姿检测算法包括基于3D点云、基于传统视觉、基于深度学习等多种方案。其中,基于3D点云的方案借助激光雷达或深度相机获取3D点云,对点云进行聚类分割和模板匹配来识别托盘叉孔,这类方法的使用条件较为苛刻,通常要求AGV的相机与托盘的前端面朝向角度的夹角在一定范围内,且要求托盘的前端面形状规整,叉孔尺寸满足预设规格要求,因此,这种方法对于前端面结构复杂或存在不规则结构,以及叉孔尺寸不满足预设要求的托盘识别准确率较低。同时由于点云数据较为庞大,导致位姿检测算法的处理耗时比较长。因此,提高托盘位姿检测的兼容性,同时降低检测时间,提高检测效率是目前迫切需要解决的问题。
针对相关技术中存在的托盘位姿检测的兼容性较差的问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种托盘位姿确定方法、托盘位姿确定装置及计算机存储介质,以解决相关技术中存在的托盘位姿检测的兼容性较差的问题。
第一个方面,在本实施例中提供了一种托盘位姿确定方法,所述方法包括:
获取包含托盘前端面的初始图像,以及与所述初始图像中各像素点对应的深度数据;
基于所述初始图像和所述深度数据,确定所述托盘的叉孔边界线;
基于所述叉孔边界线的交点,确定叉孔顶点在所述初始图像中的坐标;
基于所述叉孔顶点在所述初始图像中的坐标,获取所述托盘的位姿信息。
在其中的一些实施例中,所述基于所述初始图像和所述深度数据,确定所述托盘的叉孔边界线包括:
基于所述初始图像和所述深度数据,确定所述初始图像中的托盘区域;
对所述托盘区域进行图像识别,确定所述托盘的叉孔中心点;
对所述托盘区域进行角点检测和线段检测,得到第一角点集合和第一线段集合;
基于所述叉孔中心点与所述第一角点集合、第一线段集合的相对位置,确定所述叉孔边界线。
在其中的一些实施例中,所述基于所述叉孔中心点与所述第一角点集合、第一线段集合的相对位置,确定所述叉孔边界线包括:
基于所述叉孔中心点到所述第一角点集合中各角点的距离,以及到所述第一线段集合中各线段的距离,确定第二线段集合和第二角点集合;
基于所述第二线段集合中各线段与所述叉孔中心点连线的角度差,确定第三线段集合和第四线段集合;
基于所述第三线段集合与所述第四线段集合中各线段的夹角,确定叉孔的水平边界线和垂直边界线。
在其中的一些实施例中,所述基于所述第三线段集合与所述第四线段集合中各线段的夹角,确定叉孔的水平边界线和垂直边界线包括:
遍历所述第三线段集合与所述第四线段集合中的各线段,得到夹角在预设阈值范围内的水平边界线集合与垂直边界线集合;
基于所述水平边界线集合中各线段上的角点数量,确定两条水平边界线;
基于所述垂直边界线集合中各线段与所述水平边界线的夹角,确定四条垂直边界线。
在其中的一些实施例中,在所述基于所述水平边界线集合中各线段上的角点数量,确定两条水平边界线之后,所述方法还包括:
在所述水平边界线上各像素点对应的深度数据大于预设深度的情况下,舍弃所述水平边界线。
在其中的一些实施例中,所述基于所述第二线段集合中各线段与所述叉孔中心点连线的角度差,确定第三线段集合和第四线段集合包括:
对所述第二线段集合中各线段的水平倾斜角与所述叉孔中心点连线的水平倾斜角的差值排序;
基于所述差值排序,获取预设数量的差值最大和差值最小的线段;
基于所述差值最小的线段,生成第三线段集合;
基于所述差值最大的线段,生成第四线段集合。
在其中的一些实施例中,所述对所述托盘区域进行图像识别,确定所述托盘的叉孔中心点包括:
将托盘区域图像输入预先获取的像素分割模型,得到对应的叉孔二值化图像,所述托盘区域图像基于所述托盘区域对所述初始图像裁剪获得;
基于所述叉孔二值化图像,确定所述叉孔中心点。
在其中的一些实施例中,所述基于所述叉孔顶点在所述初始图像中的坐标,获取所述托盘的位姿信息包括:
基于所述叉孔顶点在所述初始图像中的坐标和对应的深度数据,获取叉孔的三维坐标;
基于所述三维坐标,获取所述托盘的前端面偏角。
第二个方面,在本实施例中提供了一种托盘位姿确定装置,所述托盘位姿确定装置包括:
第一获取模块,用于获取包含托盘前端面的初始图像,以及与所述初始图像中各像素点对应的深度数据;
第一确定模块,用于基于所述初始图像和所述深度数据,确定所述托盘的叉孔边界线;
第二确定模块,用于基于所述叉孔边界线的交点,确定叉孔顶点在所述初始图像中的坐标;
第二获取模块,用于基于所述叉孔顶点在所述初始图像中的坐标,获取所述托盘的位姿信息。
第三个方面,在本实施例中提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一个方面所述的托盘位姿确定方法的步骤。
与相关技术相比,在本实施例中提供的托盘位姿确定方法,通过获取包含托盘前端面的初始图像,以及与初始图像中各像素点对应的深度数据,获取包括叉孔的托盘前端面的图像信息和托盘前端面相对于相机的距离信息;通过基于初始图像和深度数据,确定托盘的叉孔边界线,对叉孔在图像中的位置进行定位;通过基于叉孔边界线的交点,确定叉孔顶点在初始图像中的坐标,根据叉孔边界线进一步确定叉孔顶点的二维坐标;通过基于叉孔顶点在初始图像中的坐标,获取托盘的位姿信息,在对托盘叉孔的尺寸规格和托盘朝向角度无统一要求的情况下准确获取托盘叉孔的位置和角度信息,使叉车根据该信息对托盘叉孔进行操作并进行作业,解决了相关技术中存在的托盘位姿检测的兼容性较差的问题。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请一些实施例的托盘位姿确定方法的计算机硬件设备框图;
图2是本申请一些实施例的托盘位姿确定方法的流程图;
图3是本申请一些实施例的基于初始图像和深度数据确定叉孔边界线的流程图;
图4是本申请一些实施例的托盘区域示意图;
图5是本申请一些实施例的基于叉孔中心点和第一角点集合、第一线段集合的相对位置确定叉孔边界线的流程图;
图6是本申请一些实施例的基于线段夹角确定叉孔边界线的流程图;
图7是本申请一些实施例的基于角度差确定第三线段集合和第四线段集合的流程图;
图8是本申请一些实施例的确定托盘的叉孔中心点的流程图;
图9是本申请一些实施例的基于叉孔顶点坐标获取托盘位姿信息的流程图;
图10是本申请一些实施例的相机平面与托盘前端面相对位置的俯视图;
图11是本申请一些优选实施例的托盘位姿确定方法的流程图;
图12是本申请一些实施例的托盘位姿确定装置的结构框图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
本申请实施例提供的托盘位姿确定方法实施例可以在终端、计算机、服务器或者类似的运算装置中执行。图1是本申请一些实施例中托盘位姿确定方法的计算机的硬件设备框图。如图1所示,计算机可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述计算机还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机的结构造成限制。例如,计算机还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的托盘位姿确定方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述网络包括计算机的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种托盘位姿确定方法,图2是本申请一些实施例的托盘位姿确定方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,获取包含托盘前端面的初始图像,以及与该初始图像中各像素点对应的深度数据。
在AGV上搭载RGB-D相机作为视觉传感器,在AGV的运行过程中可以直接获得周围环境的RGB图像和与该RGB图像对齐的深度数据。RGB图像是指图像中每个像素点都具有对应的R、G、B三种颜色数据的图像,深度数据是指每个像素点与相机之间的距离。对齐是指,该深度数据与RGB图像上每一个像素点一一对应。即通过RGB-D相机可以获取两个矩阵,第一个为RGB图像矩阵,第二个是深度数据矩阵,两个矩阵的像素点排列一致。也可以通过ToF相机与普通相机配合使用,分别获取RGB图像和深度数据,然后通过数据处理获得对齐的两种数据。
步骤S202,基于该初始图像和深度数据,确定托盘的叉孔边界线。
基于获得的RGB图像进行图像的识别,具体可以通过预先获得的深度学习目标检测模型,或其他图像识别方法检测该RGB图像中是否包含托盘前端面。该深度学习目标检测模型可以是以ShuffleNetV2作为骨干网络,通过对实际场景图片中托盘的位置和类别标注后进行训练获取的轻量模型,以减少实际检测过程中的计算量和运行时间。在检测到图片包含前端面的情况下,对图片中完整的托盘区域进行检测和标注。检测过程中,还可以根据深度数据对识别出的托盘区域进行修正。
获取RGB图像中的托盘区域后,可以进一步对托盘区域的叉孔进行识别。具体可以通过深度学习像素分割模型对该区域的图像进行像素分割,获取托盘区域的叉孔像素二值化图像,也可以使用其他图像识别算法获得叉孔像素二值化图像。该深度学习像素分割模型也可以是以ShuffleNetV2作为骨干网络,通过对实际场景图片中叉孔的轮廓标注后进行训练获取的轻量模型,以减少实际识别过程中的计算量和运行时间。该二值化图像可以将叉孔使用白色像素点显示,其余区域使用黑色像素点显示。根据该二值化图像,可以获得叉孔的轮廓和叉孔中心点。根据叉孔中心点和叉孔轮廓,可以直接通过图像处理直接获得叉孔边界线;还可以通过角点检测和线段检测的方式,获得托盘区域的多个角点和线段,根据叉孔中心点到这些角点和线段的距离,以及各角点和线段的相对位置,更为准确地确定叉孔边界线。
步骤S203,基于叉孔边界线的交点,确定叉孔顶点在初始图像中的坐标。
根据每个叉孔的边界线的交点,获得叉孔顶点在初始图像中的位置坐标。如果叉孔的边界线少于四条,可以根据叉孔中心点和已有的其他边界线位置进行对称计算来补充获得。
步骤S204,基于叉孔顶点在初始图像中的坐标,获取托盘的位姿信息。
叉孔顶点在初始图像中的坐标,是在图像坐标系中的二维坐标。根据相机内参,可以将该二维坐标转化为相机坐标系下的三维坐标和托盘前端面的朝向角度。基于叉孔顶点的三维坐标和托盘前端面的朝向角度,可以控制AGV按照该位姿信息自动规划取货路线,完成叉取托盘的操作。
通过上述步骤S201~S204,通过获取包含托盘前端面的初始图像,以及与初始图像中各像素点对应的深度数据,获取包括叉孔的托盘前端面的图像信息和托盘前端面相对于相机的距离信息;通过基于初始图像和深度数据,确定托盘的叉孔边界线,对叉孔在初始图像中的位置进行定位;通过基于叉孔边界线的交点,确定叉孔顶点在初始图像中的坐标,根据叉孔边界线进一步确定叉孔顶点的二维坐标;通过基于叉孔顶点在初始图像中的坐标,获取托盘的位姿信息,在对托盘叉孔的尺寸规格和托盘朝向角度无严格要求的情况下即可准确获取托盘叉孔的位置和角度信息,使叉车根据该位姿信息对托盘进行操作,解决了相关技术中存在的托盘位姿检测的兼容性较差的问题。
在其中的一些实施例中,图3是本申请一些实施例的基于初始图像和深度数据确定叉孔边界线的流程图,如图3所示,该流程包括如下步骤:
步骤S301,基于初始图像和深度数据,确定初始图像中的托盘区域。
通过深度学习目标检测模型检测初始图像,得到完整的托盘区域。图4是本申请一些实施例的托盘区域示意图。如图4所示,托盘区域图像中包括托盘前端面41,托盘前端面41上包括两个矩形叉孔42。每个叉孔42有一个中心点43。深度学习目标检测模型可以获得由多个托盘区域构成的集合,此时可以将置信度最高的作为最优的感兴趣托盘区域。托盘区域可以是一个矩形区域,该矩形的上下边界平行于初始图像的上下边界,该矩形的左右边界平行于初始图像的左右边界。
进一步地,在得到该托盘区域的基础上,可以使用该托盘区域中像素点的深度数据对托盘区域的上下左右边界进行修正,使边界上各像素点的深度数据保持在一定范围内。如果边界上存在深度过大或过小的像素点,可以调整该托盘区域的边界线。例如,如果右侧边界上的少量像素点深度过小,则存在一定的可能性是该边界线与托盘自身的轮廓重合,此时可以将托盘区域适当扩大。
步骤S302,对该托盘区域进行图像识别,确定托盘的叉孔中心点。
可以对该托盘区域图像通过深度学习像素分割模型进行像素分割,获得托盘前端面上的叉孔像素二值化图像。还可以通过其他图像识别和二值化方法,获取叉孔的二值化图像。该二值化图像与托盘区域图像大小相同,白色像素点对应叉孔区域,黑色像素点对应其他区域。对该二值化图像进行预处理,得到该托盘的两个叉孔中心点和叉孔轮廓。进一步地,在识别出该叉孔轮廓的基础上,由于深度学习像素分割模型分割出来的二值化图像的白色区域边界可能存在不准确的现象,为了进一步消除误差,还可以对叉孔轮廓进行修正。具体地,可以使用像素值邻域搜索算法,以托盘的两个叉孔中心点为中心向外扩散(像素点的RGB颜色值小于一定范围,可认为是一种颜色)来修正叉孔的像素边界,得到修正后的叉孔中心点和叉孔轮廓。
步骤S303,对托盘区域进行角点检测和线段检测,得到第一角点集合和第一线段集合。
角点是托盘区域图像中的重要特征点,可以是不同方向线条的交点、局部区域中灰度变化最大的像素点、物体边缘变化不连续的点等。线段可以包括图像中物体的轮廓线、像素点灰度变化的分界线等。角点检测和线段检测目前均有成熟算法,本实施例不再赘述。角点检测得到的角点构成第一角点集合,线段检测得到的线段构成第一线段集合。
步骤S302和步骤S303可以调换顺序。
步骤S304,基于叉孔中心点与第一角点集合、第一线段集合的相对位置,确定叉孔边界线。
根据已知的叉孔中心点在托盘区域图像中的位置,以及各角点、线段在托盘区域图像中的位置,可以得到各角点、线段与叉孔中心点之间的距离,以及两个叉孔中心点之间的距离。根据托盘的结构可知,托盘的两个叉孔之间的第一距离应远大于叉孔边缘到叉孔中心点的第二距离,且不同规格、不同大小的托盘的第一距离与第二距离的比例存在一个稳定的取值区间。因此,可以根据该比例关系对角点和线段进行过滤。此外,还可以根据第一线段集合中线段的倾斜角度、线段之间的夹角等因素,过滤掉不符合要求的线段,最终获取叉孔边界线。
通过上述步骤S301~S304,通过基于初始图像和深度数据,确定初始图像中的托盘区域,将后续的检测和识别对象缩小到托盘区域,减少后续的检测工作量,降低检测错误的概率;通过对该托盘区域进行图像识别,确定托盘的叉孔中心点,将叉孔中心点的位置作为边界线识别的重要基准;通过对托盘区域进行角点检测和线段检测,得到第一角点集合和第一线段集合,作为边界线的备选;通过基于叉孔中心点与第一角点集合、第一线段集合的相对位置,确定叉孔边界线,对第一线段集合中的各线段进行过滤,最终获得满足筛选条件的叉孔边界线,在对托盘叉孔的尺寸规格和托盘朝向角度没有严格要求的情况下可以准确获取托盘叉孔边界线,且不需要通过复杂的图像识别算法即可快速获得边界线位置,提高了叉孔检测和识别的效率,减少了检测时间。
在其中的一些实施例中,图5是本申请一些实施例的基于叉孔中心点和第一角点集合、第一线段集合的相对位置确定叉孔边界线的流程图,如图5所示,该流程包括如下步骤:
步骤S501,基于叉孔中心点到第一角点集合中各角点的距离,以及到第一线段集合中各线段的距离,确定第二线段集合和第二角点集合。
本实施例中,可以预先设置托盘的两个叉孔之间的第一距离与叉孔边缘到叉孔中心点的第二距离的比值范围为4~5。根据该范围以及已知的第一距离,可以获得第二距离的合理取值范围。根据该合理取值范围,可以过滤掉一部分距离叉孔中心点过远或过近的角点和线段,符合该取值范围的角点构成第二角点集合,符合该取值范围的线段构成第二线段集合。
步骤S502,基于第二线段集合中各线段与叉孔中心点连线的角度差,确定第三线段集合和第四线段集合。
根据托盘结构可知,在叉孔为矩形的情况下,叉孔的水平边界线与叉孔中心点的连线应为平行关系,叉孔的垂直边界线与叉孔中心点的连线应为垂直关系。因此,可以通过获取第二线段集合中的线段与叉孔中心点连线之间的角度差,分别筛选获得与叉孔中心点连线平行或接近平行的第三线段集合,以及与叉孔中心点连线垂直或接近垂直的第四线段集合,以进一步缩小叉孔边界线的候选线段的范围。这里的筛选条件可以是预先设置角度差的阈值,也可以是预先设置第三线段集合、第四线段集合的线段数量,根据夹角大小排序进行筛选。
步骤S503,基于第三线段集合与第四线段集合中各线段的夹角,确定叉孔的水平边界线和垂直边界线。
在第三线段集合与第四线段集合中,获取相互垂直或近似垂直的线段。在满足该条件的线段中,再通过其他筛选条件,例如线段上角点的数量,最终确定叉孔的水平边界线和垂直边界线。
通过上述步骤S501~S503,通过基于叉孔中心点到第一角点集合中各角点的距离,以及到第一线段集合中各线段的距离,确定第二线段集合和第二角点集合,即根据各线段到叉孔中心点的距离进行边界线的第一次筛选;通过基于第二线段集合中各线段与叉孔中心点连线的角度差,确定第三线段集合和第四线段集合,即根据各线段与叉孔中心点连线的角度差进行边界线的第二次筛选;通过基于第三线段集合与第四线段集合中各线段的夹角,确定叉孔的水平边界线和垂直边界线,即根据各线段之间的夹角进行第三次筛选,仅通过中心点与各线段的几何关系即可获取准确的叉孔边界线,不需要进行复杂的图像识别,提高了叉孔检测和识别的效率,减少了检测时间。
在其中的一些实施例中,图6是本申请一些实施例的基于线段夹角确定叉孔边界线的流程图,如图6所示,该流程包括如下步骤:
步骤S601,遍历第三线段集合与第四线段集合中的各线段,得到夹角在预设阈值范围内的水平边界线集合与垂直边界线集合。
依次获取第三线段集合中的各线段与第四线段集合中的各线段的夹角,确定两条线段是否垂直。由于托盘前端面的倾斜角度不同,相互垂直的两条线段在托盘区域图像中的夹角并不限于90度,可以是一个预先设置的阈值范围。如果夹角不在该阈值范围内,则可以明确这两条线段不是叉孔边界线。
步骤S602,基于水平边界线集合中各线段上的角点数量,确定两条水平边界线。
水平边界线是指位于同一托盘的两个叉孔上方和下方的两条边界线。根据水平边界线集合中各线段上的角点数量,以及这些线段到叉孔中心点的距离,确定两条水平边界线。在整个托盘区域图像中,叉孔的水平边界线连接两个叉孔,且边界线上的像素点灰度有较明显的差异,因此线段上角点的数量多;且两条水平边界线到叉孔中心点的距离应基本一致。因此,可以基于这两个因素设置筛选条件,例如,在满足角点数量条件的情况下,还满足两条线段到叉孔中心点的距离基本一致,且与其他线段相比到叉孔中心点的距离最短等。基于筛选条件最终获得两条水平边界线。
进一步地,通过上述方法确定水平边界线后,还可以通过水平边界线上像素点的深度数据进行水平边界线的修正。该方法包括:在水平边界线上各像素点对应的深度数据大于预设深度的情况下,舍弃该水平边界线。
在实际应用中,在托盘区域图像中的托盘叉孔附近可能存在一些物品对水平边界线的判定造成干扰。例如,托盘后方可能存在物体,该物体的轮廓线或其他特征线条可能被误判为水平边界线。此时通过将该线段上各像素点的深度数据与预设的深度数据比较,在大于预设深度的情况下,确定该水平边界线为误判,舍弃该水平边界线,重新选择水平边界线集合中的其他线段作为水平边界线。该方法可以避免叉孔边界线的误判,提高叉孔边界线检测的准确率。
步骤S603,基于垂直边界线集合中各线段与水平边界线的夹角,确定四条垂直边界线。
确定水平边界线后,根据垂直边界线集合中各线段与水平边界线的夹角,以及各线段到叉孔中心点的距离,确定垂直于水平边界线且到叉孔中心点的距离基本相等的四条垂直边界线。如果数量不够四条,可以根据叉孔中心点和已有的垂直边界线进行对称计算补充得到。另外,也可以使用与水平边界线修正相同的方法,通过垂直边界线上像素点的深度数据进行垂直边界线的修正。
根据已确定的水平边界线垂直边界线确定交点位置后,还可以使用初始的第一角点集合来修正该水平边界线和垂直边界线的交点,如果第一角点集合中存在角点与交点位置很近,例如小于一个预先设定的阈值,那么可以用该角点代替该交点位置,得到最终的叉孔顶点。
通过上述步骤S601~S603,通过遍历第三线段集合与第四线段集合中的各线段,得到夹角在预设阈值范围内的水平边界线集合与垂直边界线集合,根据水平边界线于垂直边界线的夹角进行边界线的筛选;通过基于水平边界线集合中各线段上的角点数量,确定两条水平边界线,根据线段上角点数量确定最终的水平边界线;通过基于垂直边界线集合中各线段与水平边界线的夹角,确定四条垂直边界线,根据水平边界线确定最终的垂直边界线,不需要进行复杂的图像识别,提高了叉孔检测和识别的效率,减少了检测时间。
在其中的一些实施例中,图7是本申请一些实施例的基于角度差确定第三线段集合和第四线段集合的流程图,如图7所示,该流程包括如下步骤:
步骤S701,对第二线段集合中各线段的水平倾斜角与叉孔中心点连线的水平倾斜角的差值排序。
叉孔中心点连线与叉孔水平边界线平行。水平倾斜角是指该连线与水平线的夹角,即与托盘区域图像的水平边界线的夹角。根据两个叉孔中心点连线的水平倾斜角,与第二线段集合中各线段的水平倾斜角的差值,确定哪些线段能够作为候选的水平边界线和垂直边界线。将各线段的差值按照从大到小或从小到大的顺序排序。
步骤S702,基于该差值排序,获取预设数量的差值最大和差值最小的线段。
预设数量可以根据实际需求确定。例如本实施例中,从第二线段集合中,确定差值最小的5个线段和差值最大的10个线段。
步骤S703,基于差值最小的线段,生成第三线段集合。
步骤S704,基于差值最大的线段,生成第四线段集合。
步骤S703与S704顺序可以调换。
通过上述步骤S701~S704,通过对第二线段集合中各线段的水平倾斜角与叉孔中心点连线的水平倾斜角的差值排序,根据线段与叉孔中心点连线的角度差对线段进行筛选;通过基于该差值排序,获取预设数量的差值最大和差值最小的线段,确定哪些线段能够作为候选的水平边界线和垂直边界线;通过基于差值最小的线段,生成第三线段集合,以及基于差值最大的线段,生成第四线段集合,进一步缩小了叉孔边界线的候选线段的范围,提升了叉孔边界线检测的准确率。
在其中的一些实施例中,图8是本申请一些实施例的确定托盘的叉孔中心点的流程图,如图8所示,该流程包括如下步骤:
步骤S801,将托盘区域图像输入预先获取的像素分割模型,得到对应的叉孔二值化图像,该托盘区域图像基于托盘区域对初始图像裁剪获得。
根据托盘区域的边界,对初始图像进行裁剪获得托盘区域图像。对该托盘区域图像通过深度学习像素分割模型进行像素分割,获得托盘前端面上的叉孔像素二值化图像。
步骤S802,基于叉孔二值化图像,确定叉孔中心点。
可以通过对该二值化图像进行预处理,得到该托盘的两个叉孔中心点和叉孔轮廓。例如,根据叉孔二值化图像中叉孔区域的各边尺寸,确定叉孔中心点的位置;或者根据叉孔各顶点的位置进行连线,确定叉孔中心点的位置等。
通过上述步骤S801~S802,通过将托盘区域图像输入预先获取的像素分割模型,得到对应的叉孔二值化图像,该托盘区域图像基于托盘区域对初始图像裁剪获得,通过图像二值化方式对叉孔进行定位;通过基于叉孔二值化图像,确定叉孔中心点,在不需要使用复杂的图像识别算法的情况下确定叉孔中心点,提高了叉孔检测效率,减少了叉孔检测时间。
在其中的一些实施例中,图9是本申请一些实施例的基于叉孔顶点坐标获取托盘位姿信息的流程图,如图9所示,该流程包括如下步骤:
步骤S901,基于叉孔顶点在初始图像中的坐标和对应的深度数据,获取叉孔的三维坐标。
叉孔顶点在初始图像中的坐标为像素坐标系的二维坐标。根据相机坐标系、图像坐标系和像素坐标系的转换关系,设相机内参为(fx,fy,cx,cy),其中fx、fy指相机在x方向和y方向上的焦距,cy、cy指图像坐标系原点在像素坐标系下的坐标。(u,v)为叉孔顶点的像素坐标,Zc为叉孔顶点的深度距离,根据叉孔顶点在相机坐标系下的三维坐标与像素坐标系下二维坐标的转换关系:
即可得到该叉孔顶点在相机坐标系下的三维坐标(Xc,Yc,Zc)。
步骤S902,基于该三维坐标,获取托盘的前端面偏角。
本实施例中设定托盘的前端面垂直于地平面,因此托盘的姿态只有一个自由度,即前端面偏角。图10是本申请一些实施例的相机平面与托盘前端面相对位置的俯视图,如图10所示,相机坐标系以相机的光心作为原点,相机坐标系的X-Y轴平面是1002,相机坐标系的Z轴为相机拍摄的深度方向。托盘的前端面是1001。前端面偏角是指在相机坐标系下托盘前端面1001与X-Y轴平面1002的夹角。因此,可通过在托盘前端面上任意两点对应的三维坐标A(x1,y1,z1)和B(x2,y2,z2)计算托盘前端面偏角/>本实施例中,可以使用两个叉孔中心点在相机坐标系中的三维坐标计算前端面偏角,也可以使用任意两个叉孔顶点的三维坐标进行计算。可通过下述公式计算前端面偏角/>
通过上述步骤S901~S902,通过基于叉孔顶点在初始图像中的坐标和对应的深度数据,获取叉孔的三维坐标,将叉孔顶点在像素坐标系的二维坐标转换为相机坐标系的三维坐标;通过基于该三维坐标,获取托盘的前端面偏角,获得托盘前端面相对于X-Y轴平面的偏转角度,获取托盘位姿信息,以供AGV根据位姿信息执行叉取操作。
下面通过优选实施例对本实施例进行描述和说明。图11是本优选实施例的托盘位姿确定方法的流程图。如图11所示,该流程包括如下步骤:
步骤S1101,采集实际场景的RGB图像和深度数据,对图像中的托盘进行标注,使用ShuffleNetV2作为骨干网络,训练一个轻量的深度学习目标检测模型M,用于完整的托盘区域检测;
步骤S1102,将待检测图片输入模型M,得到托盘集合,把置信度最高的作为最优的托盘ROI区域R;
步骤S1103,使用深度距离数据修正检测出来的R的上下左右边界,修正R边界上过大或过小的坐标,得到区域R1;
步骤S1104,根据R1边界对图像进行裁剪得到托盘区域图像G;
步骤S1105,采集实际场景的RGB图像和深度数据,对图像中的叉孔进行标注,使用ShuffleNetV2作为骨干网络,训练一个轻量的深度学习像素分割模型S,用于托盘前端面上2个叉孔区域的像素分割;
步骤S1101~S1104与步骤S1105可以调换。
步骤S1106,使用模型S得到G内前端面上的叉孔像素二值化图像,对图像进行预处理得到两个叉孔中心点C1和C2和叉孔轮廓;
步骤S1107,以C1和C2作为出发点,使用像素值邻域搜索算法(上下左右像素差<=20认为是连通的)来修正叉孔像素边界,得到两个新的叉孔中心点C1和C2和叉孔轮廓;
步骤S1108,对R1进行角点检测和线段检测,得到角点集合A和线段集合L;
步骤S1109,根据各角点和线段到中心点的距离(参考距离为两个中心点距离的1/4~1/5),得到左右叉孔区域附近的线段集合L1和角点集合A1;
步骤S1110,求出两个叉孔中心点连线的水平倾斜角CA,计算L1中所有线段的水平倾斜角集合L1A,计算得到L1A所有角度和CA的差值并按照从小到大的顺序排列,得到角度差值集合DA;
步骤S1111,从DA中得到前5个索引对应的线段集合,作为叉孔水平边界线候选集合HL;
步骤S1112,从DA中得到最后10个索引对应的线段集合,作为叉孔垂直边界线候选集合VL;
步骤S1113,遍历HL和VL,过滤得到线段夹角接近90度的线段集合HL1和VL1;
步骤S1114,结合到中心点的距离条件,把HL1中经过角点最多的2条线段筛选出来,作为上下边界线L1;
步骤S1115,使用深度距离来修正前端面叉孔的2条上下边界线L1;
步骤S1116,根据上下边界线L1和中心点距离,找出垂直于L1且符合距离的4条垂直边界线L2,如果不足4条,根据中心点和已有的线段来对称计算补充得到;
步骤S1117,使用深度距离来修正得到的2个叉孔垂直边界线L2;
步骤S1118,根据得到的横向线L1和垂直线L2求出线的交点,作为每个叉孔的候选上下左右角点;
步骤S1119,使用初始的角点集合A1来修正计算得到的角点,得到图像上叉孔最终的上下左右角点;
步骤S1120,使用相机内参,将像素坐标转化为相机坐标系下的三维坐标和托盘前端面朝向。
通过上述步骤S1101至S1120,通过深度学习模型完成托盘区域的检测和叉孔轮廓的识别,通过角点检测和线段检测获取候选的叉孔边界线;基于叉孔的两个中心点与各角点、各线段的相对位置,以及线段之间的夹角,对候选的叉孔边界线进行多次过滤和筛选,并根据边界线像素点的深度数据对边界线进行修正,最终确定叉孔边界线;基于叉孔边界线确定叉孔顶点的二维坐标;根据该二维坐标获取托盘位姿信息,在对托盘叉孔的尺寸规格和托盘朝向角度无严格要求的情况下即可准确获取托盘叉孔的位置和角度信息,使叉车根据该位姿信息对托盘进行操作,解决了相关技术中存在的托盘位姿检测的兼容性较差的问题,提高了托盘位姿获取效率。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在一些实施例中,本申请还提供了一种托盘位姿确定装置,该托盘位姿确定装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。
在一些实施例中,图12是本实施例的托盘位姿确定装置的结构框图,如图12所示,该装置包括:
第一获取模块1201,用于获取包含托盘前端面的初始图像,以及与初始图像中各像素点对应的深度数据;
第一确定模块1202,用于基于初始图像和深度数据,确定托盘的叉孔边界线;
第二确定模块1203,用于基于叉孔边界线的交点,确定叉孔顶点在初始图像中的坐标;
第二获取模块1204,用于基于叉孔顶点在初始图像中的坐标,获取托盘的位姿信息。
本实施例中的托盘位姿确定装置,通过第一获取模块1201获取包含托盘前端面的初始图像,以及与初始图像中各像素点对应的深度数据,获取包括叉孔的托盘前端面的图像信息和托盘前端面相对于相机的距离信息;通过第一确定模块1202基于初始图像和深度数据,确定托盘的叉孔边界线,对叉孔在初始图像中的位置进行定位;通过第二确定模块1203基于叉孔边界线的交点,确定叉孔顶点在初始图像中的坐标,根据叉孔边界线进一步确定叉孔顶点的二维坐标;通过第二获取模块1204基于叉孔顶点在初始图像中的坐标,获取托盘的位姿信息,在对托盘叉孔的尺寸规格和托盘朝向角度无严格要求的情况下即可准确获取托盘叉孔的位置和角度信息,使叉车根据该位姿信息对托盘进行操作,解决了相关技术中存在的托盘位姿检测的兼容性较差的问题。
在一些实施例中,第一确定模块包括第一确定子模块、第二确定子模块、检测子模块和第三确定子模块,第一确定子模块用于基于初始图像和深度数据,确定初始图像中的托盘区域,第二确定子模块用于对该托盘区域进行图像识别,确定托盘的叉孔中心点,检测子模块用于对托盘区域进行角点检测和线段检测,得到第一角点集合和第一线段集合,第三确定子模块用于基于叉孔中心点与第一角点集合、第一线段集合的相对位置,确定叉孔边界线。
本实施例中的托盘位姿确定装置,通过第一确定子模块基于初始图像和深度数据,确定初始图像中的托盘区域,将后续的检测和识别对象缩小到托盘区域,减少后续的检测工作量,降低检测错误的概率;通过第二确定子模块对该托盘区域进行图像识别,确定托盘的叉孔中心点,将叉孔中心点的位置作为边界线识别的重要基准;通过检测子模块对托盘区域进行角点检测和线段检测,得到第一角点集合和第一线段集合,作为边界线的备选;通过第三确定子模块基于叉孔中心点与第一角点集合、第一线段集合的相对位置,确定叉孔边界线,对第一线段集合中的各线段进行过滤,最终获得满足筛选条件的叉孔边界线,在对托盘叉孔的尺寸规格和托盘朝向角度没有严格要求的情况下可以准确获取托盘叉孔边界线,且不需要通过复杂的图像识别算法即可快速获得边界线位置,提高了叉孔检测和识别的效率,减少了检测时间。
在一些实施例中,第三确定子模块包括第一确定单元、第二确定单元和第三确定单元,第一确定单元用于基于叉孔中心点到第一角点集合中各角点的距离,以及到第一线段集合中各线段的距离,确定第二线段集合和第二角点集合,第二确定单元用于基于第二线段集合中各线段与叉孔中心点连线的角度差,确定第三线段集合和第四线段集合,第三确定单元用于基于第三线段集合与第四线段集合中各线段的夹角,确定叉孔的水平边界线和垂直边界线。
本实施例中的托盘位姿确定装置,通过第一确定单元基于叉孔中心点到第一角点集合中各角点的距离,以及到第一线段集合中各线段的距离,确定第二线段集合和第二角点集合,即根据各线段到叉孔中心点的距离进行边界线的第一次筛选;通过第二确定单元基于第二线段集合中各线段与叉孔中心点连线的角度差,确定第三线段集合和第四线段集合,即根据各线段与叉孔中心点连线的角度差进行边界线的第二次筛选;通过第三确定单元基于第三线段集合与第四线段集合中各线段的夹角,确定叉孔的水平边界线和垂直边界线,即根据各线段之间的夹角进行第三次筛选,仅通过中心点与各线段的几何关系即可获取准确的叉孔边界线,不需要进行复杂的图像识别,提高了叉孔检测和识别的效率,减少了检测时间。
在一些实施例中,第三确定单元包括遍历子单元、第一确定子单元和第二确定子单元,遍历子单元用于遍历第三线段集合与第四线段集合中的各线段,得到夹角在预设阈值范围内的水平边界线集合与垂直边界线集合,第一确定子单元用于基于水平边界线集合中各线段上的角点数量,确定两条水平边界线,第二确定子单元用于基于垂直边界线集合中各线段与水平边界线的夹角,确定四条垂直边界线。
本实施例中的托盘位姿确定装置,通过遍历子单元遍历第三线段集合与第四线段集合中的各线段,得到夹角在预设阈值范围内的水平边界线集合与垂直边界线集合,根据水平边界线于垂直边界线的夹角进行边界线的筛选;通过第一确定子单元基于水平边界线集合中各线段上的角点数量,确定两条水平边界线,根据线段上角点数量确定最终的水平边界线;通过第二确定子单元基于垂直边界线集合中各线段与水平边界线的夹角,确定四条垂直边界线,根据水平边界线确定最终的垂直边界线,不需要进行复杂的图像识别,提高了叉孔检测和识别的效率,减少了检测时间。
在一些实施例中,第三确定单元包括还包括舍弃子单元,舍弃子单元用于在水平边界线上各像素点对应的深度数据大于预设深度的情况下,舍弃该水平边界线。
本实施例中的托盘位姿确定装置,通过舍弃子单元在水平边界线上各像素点对应的深度数据大于预设深度的情况下,舍弃该水平边界线,以避免叉孔边界线的误判,提高叉孔边界线检测的准确率。
在一些实施例中,第二确定单元包括排序子单元、获取子单元、第一生成子单元和第二生成子单元,排序子单元用于对第二线段集合中各线段的水平倾斜角与叉孔中心点连线的水平倾斜角的差值排序,获取子单元用于基于该差值排序,获取预设数量的差值最大和差值最小的线段,第一生成子单元用于基于差值最小的线段,生成第三线段集合,第二生成子单元用于基于差值最大的线段,生成第四线段集合。
本实施例中的托盘位姿确定装置,通过排序子单元对第二线段集合中各线段的水平倾斜角与叉孔中心点连线的水平倾斜角的差值排序,根据线段与叉孔中心点连线的角度差对线段进行筛选;通过获取子单元基于该差值排序,获取预设数量的差值最大和差值最小的线段,确定哪些线段能够作为候选的水平边界线和垂直边界线;通过第一生成子单元基于差值最小的线段,生成第三线段集合,以及第二生成子单元基于差值最大的线段,生成第四线段集合,进一步缩小了叉孔边界线的候选线段的范围,提升了叉孔边界线检测的准确率。
在一些实施例中,第二确定子模块包括输入单元和第四确定单元,输入单元用于将托盘区域图像输入预先获取的像素分割模型,得到对应的叉孔二值化图像,该托盘区域图像基于托盘区域对初始图像裁剪获得,第四确定单元用于基于叉孔二值化图像,确定叉孔中心点。
本实施例中的托盘位姿确定装置,通过输入单元将托盘区域图像输入预先获取的像素分割模型,得到对应的叉孔二值化图像,该托盘区域图像基于托盘区域对初始图像裁剪获得,通过图像二值化方式对叉孔进行定位;通过第四确定单元基于叉孔二值化图像,确定叉孔中心点,在不需要使用复杂的图像识别算法的情况下确定叉孔中心点,提高了叉孔检测效率,减少了叉孔检测时间。
在一些实施例中,第二获取模块包括第一获取子模块和第二获取子模块,第一获取子模块用于基于叉孔顶点在初始图像中的坐标和对应的深度数据,获取叉孔的三维坐标,第二获取子模块用于基于该三维坐标,获取托盘的前端面偏角。
本实施例中的托盘位姿确定装置,通过第一获取子模块基于叉孔顶点在初始图像中的坐标和对应的深度数据,获取叉孔的三维坐标,将叉孔顶点在像素坐标系的二维坐标转换为相机坐标系的三维坐标;通过第二获取子模块基于该三维坐标,获取托盘的前端面偏角,获得托盘前端面相对于相机坐标系的X轴的偏转角度,获取托盘位姿信息,以供AGV根据位姿信息执行叉取操作。
此外,结合上述实施例中提供的托盘位姿确定方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种托盘位姿确定方法。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种托盘位姿确定方法,其特征在于,所述方法包括:
获取包含托盘前端面的初始图像,以及与所述初始图像中各像素点对应的深度数据;
基于所述初始图像和所述深度数据,确定所述托盘的叉孔边界线;
基于所述叉孔边界线的交点,确定叉孔顶点在所述初始图像中的坐标;
基于所述叉孔顶点在所述初始图像中的坐标,获取所述托盘的位姿信息。
2.根据权利要求1所述的方法,其特征在于,所述基于所述初始图像和所述深度数据,确定所述托盘的叉孔边界线包括:
基于所述初始图像和所述深度数据,确定所述初始图像中的托盘区域;
对所述托盘区域进行图像识别,确定所述托盘的叉孔中心点;
对所述托盘区域进行角点检测和线段检测,得到第一角点集合和第一线段集合;
基于所述叉孔中心点与所述第一角点集合、第一线段集合的相对位置,确定所述叉孔边界线。
3.根据权利要求2所述的方法,其特征在于,所述基于所述叉孔中心点与所述第一角点集合、第一线段集合的相对位置,确定所述叉孔边界线包括:
基于所述叉孔中心点到所述第一角点集合中各角点的距离,以及到所述第一线段集合中各线段的距离,确定第二线段集合和第二角点集合;
基于所述第二线段集合中各线段与所述叉孔中心点连线的角度差,确定第三线段集合和第四线段集合;
基于所述第三线段集合与所述第四线段集合中各线段的夹角,确定叉孔的水平边界线和垂直边界线。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第三线段集合与所述第四线段集合中各线段的夹角,确定叉孔的水平边界线和垂直边界线包括:
遍历所述第三线段集合与所述第四线段集合中的各线段,得到夹角在预设阈值范围内的水平边界线集合与垂直边界线集合;
基于所述水平边界线集合中各线段上的角点数量,确定两条水平边界线;
基于所述垂直边界线集合中各线段与所述水平边界线的夹角,确定四条垂直边界线。
5.根据权利要求4所述的方法,其特征在于,在所述基于所述水平边界线集合中各线段上的角点数量,确定两条水平边界线之后,所述方法还包括:
在所述水平边界线上各像素点对应的深度数据大于预设深度的情况下,舍弃所述水平边界线。
6.根据权利要求3所述的方法,其特征在于,所述基于所述第二线段集合中各线段与所述叉孔中心点连线的角度差,确定第三线段集合和第四线段集合包括:
对所述第二线段集合中各线段的水平倾斜角与所述叉孔中心点连线的水平倾斜角的差值排序;
基于所述差值排序,获取预设数量的差值最大和差值最小的线段;
基于所述差值最小的线段,生成第三线段集合;
基于所述差值最大的线段,生成第四线段集合。
7.根据权利要求2所述的方法,其特征在于,所述对所述托盘区域进行图像识别,确定所述托盘的叉孔中心点包括:
将托盘区域图像输入预先获取的像素分割模型,得到对应的叉孔二值化图像,所述托盘区域图像基于所述托盘区域对所述初始图像裁剪获得;
基于所述叉孔二值化图像,确定所述叉孔中心点。
8.根据权利要求1所述的方法,其特征在于,所述基于所述叉孔顶点在所述初始图像中的坐标,获取所述托盘的位姿信息包括:
基于所述叉孔顶点在所述初始图像中的坐标和对应的深度数据,获取叉孔的三维坐标;
基于所述三维坐标,获取所述托盘的前端面偏角。
9.一种托盘位姿确定装置,其特征在于,所述托盘位姿确定装置包括:
第一获取模块,用于获取包含托盘前端面的初始图像,以及与所述初始图像中各像素点对应的深度数据;
第一确定模块,用于基于所述初始图像和所述深度数据,确定所述托盘的叉孔边界线;
第二确定模块,用于基于所述叉孔边界线的交点,确定叉孔顶点在所述初始图像中的坐标;
第二获取模块,用于基于所述叉孔顶点在所述初始图像中的坐标,获取所述托盘的位姿信息。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的托盘位姿确定方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211554579.7A CN118154679A (zh) | 2022-12-06 | 2022-12-06 | 托盘位姿确定方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211554579.7A CN118154679A (zh) | 2022-12-06 | 2022-12-06 | 托盘位姿确定方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118154679A true CN118154679A (zh) | 2024-06-07 |
Family
ID=91291508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211554579.7A Pending CN118154679A (zh) | 2022-12-06 | 2022-12-06 | 托盘位姿确定方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118154679A (zh) |
-
2022
- 2022-12-06 CN CN202211554579.7A patent/CN118154679A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108012325B (zh) | 一种基于uwb和双目视觉的导航定位方法 | |
WO2018049998A1 (zh) | 交通标志牌信息获取方法及装置 | |
CN113012210B (zh) | 深度图的生成方法、装置、电子设备和存储介质 | |
WO2022188663A1 (zh) | 一种目标检测方法及装置 | |
CN111950426A (zh) | 目标检测方法、装置及运载工具 | |
US20040234124A1 (en) | Stereo calibration apparatus and stereo image monitoring apparatus using the same | |
CN105139416A (zh) | 一种基于图像信息和深度信息的物体识别方法 | |
CN114051628B (zh) | 一种确定目标对象点云集的方法及装置 | |
AU2021288667B2 (en) | Control method and apparatus for warehouse robot, and robot and warehouse system | |
CN107218927A (zh) | 一种基于tof相机的货物托盘检测系统和方法 | |
CN112097732A (zh) | 一种基于双目相机的三维测距方法、系统、设备及可读存储介质 | |
CN112184793B (zh) | 深度数据的处理方法、装置及可读存储介质 | |
CN116494253B (zh) | 目标物体抓取位姿获取方法及机器人抓取系统 | |
CN114611635B (zh) | 一种对象的识别方法、装置、存储介质及电子装置 | |
CN113267761A (zh) | 激光雷达目标检测识别方法、系统及计算机可读存储介质 | |
JP7432793B1 (ja) | 三次元点群に基づくマッピング方法、装置、チップ及びモジュール機器 | |
CN118154679A (zh) | 托盘位姿确定方法、装置及存储介质 | |
CN111899277A (zh) | 运动目标检测方法及装置、存储介质、电子装置 | |
CN116863371A (zh) | 一种基于深度学习的agv叉车货物托盘位姿识别方法 | |
CN111656404A (zh) | 图像处理方法、系统及可移动平台 | |
CN114693546B (zh) | 图像去噪方法、装置、电子设备和计算机可读存储介质 | |
CN116309817A (zh) | 一种基于rgb-d相机的托盘检测与定位方法 | |
CN114724111A (zh) | 一种基于deepstream的智能叉车识别避障方法 | |
CN114463751A (zh) | 基于神经网络和检测算法的边角定位方法及装置 | |
CN112785647A (zh) | 一种三目立体图像检测方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |