基于视觉和主动交互的包装箱分割错误的检测与矫正方法
技术领域
本发明属于物流技术领域,尤其涉及基于视觉和主动交互的包装箱分割错误的检测与矫正方法。
背景技术
目前,业内常用的现有技术是这样的:
在现代物流行业中,包装箱的拆跺分拣是一项繁重而重复的工作。不少机器人公司试图用机器人取代人完成这一部分任务。由机器人替代人来进行拆跺分拣的首要问题在于:如何对密集的包装箱进行准确的分割和识别,从而引导机器人进行精确地抓取。实际中包装箱的尺寸变化范围很大,摆放的角度和姿态不定,包装箱之间间隙很小,这些因素导致对包装箱的分割失败率很高。而现有的对包装箱最先进的分割和识别方法,是基于深度学习的目标检测模型。目标检测模型通过海量数据的训练,具有对包装箱强大的识别和分割能力。尽管目前最好的目标检测模型针对包装箱的拆跺分拣问题有着很不错的效果,但在实际中依然存在两个问题:一是箱子上纹理图案出现贯穿箱体的分割线时,容易导致网络预测的过分割现象,即将一个箱子识别成多个箱子;二是箱子之间摆放密集,箱体之间间隙过小时,会使得箱子彼此分界不明,容易导致网络预测的欠分割现象,即将多个箱子识别成一个箱子。包装箱的过分割和欠分割问题都会导致机器人的抓取失败,严重时甚至可能会导致货物的摔毁。
综上所述,现有技术存在的问题是:
现有技术中箱子上纹理图案出现贯穿箱体的分割线时,容易导致网络预测的过分割现象,即将一个箱子识别成多个箱子;箱子之间摆放密集,箱体之间间隙过小时,会使得箱子彼此分界不明,容易导致网络预测的欠分割现象,即将多个箱子识别成一个箱子。包装箱的过分割和欠分割问题都会导致机器人的抓取失败,严重时甚至可能会导致货物的摔毁。
解决上述技术问题的难度和意义:
难度:物流包装箱拆跺分拣场景比较复杂,其物品过于密集,往往是几十个箱子紧密堆叠,区分度较低;箱子纹理图案千差万别,纹理和箱子边缘容易混淆,难以辨识。以上因素导致对拆跺场景的箱子准确分割难度很大,失败率较高。意义:基于深度学习的箱子分割结果存在的主要问题为箱子的欠分割和过分割,解决这两个问题能够为箱子准确分割提供有力保证,也是机器人精确抓取的基础,能够为物流的自动装卸技术提供基本保障。
发明内容
针对现有技术存在的问题,本发明提供了基于视觉和主动交互的包装箱分割错误的检测与矫正方法。
本发明是这样实现的,基于视觉和主动交互的包装箱分割错误的检测与矫正方法,具体包括以下步骤:
步骤一:基于目标检测模型结果的区域提取;根据目标检测模型的预测得到对应包装箱的掩码结果,取出对应的图片像素区域;将对应的掩码区域转化成三维点云;采用随机抽样一致算法对包装箱的抓取平面进行提取,将属于平面的局内点作为最终有效点集,采用计算点集的最小面积包围矩形的算法,估算出包装箱抓取顶面的矩形边界;
步骤二:基于二维视觉算法的疑似错误分割检测:根据已经提取出包装箱抓取面矩形包围框,将对应的包装箱从RGB图像中分割出来,进行疑似错误分割检测;
步骤三:基于主动交互式策略的错误分割判定:采用一种机器人主动交互式的方式,对疑似错误的分割进行逐一认定;
步骤四:错误分割的矫正及正确抓取位置计算:在机器人对疑似错误箱体进行移动之后,通过二次拍照检测,将之前的错误分割进行矫正;矫正后采用对抓取点估计的方法重新计算包装的抓取点位置以及姿态。
进一步,步骤一中,将对应的掩码区域转化成三维点云,采用深度图转三维点云算法,具体为:
一个空间点[x,y,z]和它在图像中的像素坐标[u,v,d](d指深度数据)的对应关系如下:
d=z·s
其中,fx,fy是指相机在x,y两个轴上的焦距,Cx,Cy指相机的光圈中心,s指深度图的缩放因子;这个公式是从(x,y,z)推导到(u,v,d);反之,本发明也可以把它写成已知(u,v,d),推导(x,y,z)的方式;公式见下式,从该公式的对应关系,可以从深度图得到三维点云。
z=d/s
x=(u-cx)·z/fx
y=(v-cy)·z/fy
进一步,步骤二中,错误分割检测分为欠分割检测和过分割检测。
进一步,步骤二中,欠分割检测,采用边缘检测算法进行前分割处理,具体为:
(1)对当前的包装箱区域进行边缘线提取;
(2)对所有提取的边缘线进行二次处理。
进一步,步骤二中,过分分割,采用相邻包围框检测的算法,对过分割的箱子进行识别,具体为:
(1)根据目标检测模型的结果,对所有的包装箱的最小包围矩形进行提取;
(2)以最高包装箱的高度为准(默认抓取最高处的箱体),查找在同一高度上的其余包装箱,将得到的包装箱通过筛选条件进行逐一匹配排除;
(3)通过检测流程,将潜在的过分割包装箱识别出来。
进一步,步骤二中,筛选条件具体为:
(1)包装箱的抓取面的法向必须一致;
(2)包装箱的最小包围矩形的边必须有一条长度相同;
(3)包装箱的最小包围矩形的某一边必须临近,近似共边。
进一步,步骤三中,错误分割判定,具体为:
利用机器人抓手对疑似分割错误的箱子进行试抓取,在水平方向上进行一定的移动,同时追踪已检测的包装箱位置,通过前后两次包装箱的位置和大小的变化来最终判断是否存在欠分割和过分割的问题。
进一步,步骤四中,对抓取点估计的方法具体算法为:
(1)通过抓取面的最小矩形框,计算矩形框的中心点,此中心点将作为抓取的初始位置;
(2)根据吸手大小以及最小包围矩形框的边走向,以中心点为抓手中心,生成与矩形框边平行的抓手区域;
(3)用抓手区域和周围等高的包装箱抓取面做求交计算,如果发生重合,根据重合的包装箱大小和位置,重新调整抓手的中心位置,直到不与其余包装箱重合为止;通过上述算法可以快速计算出抓取点的位置,引导机器人进行准确地抓取。
综上所述,本发明的优点及积极效果为:
本发明首先基于二维视觉算法,对目标检测模型预测的结果可能出现的欠分割和过分割问题进行预判,然后引导机器人的抓手对目标进行试抓取,同时追踪箱体的大小和位置变化,检测对比是否与先验的分割结果吻合,如若吻合则继续完成对目标的抓取,否则实施对错误分割的矫正。本发明基于视觉的交互式策略能够对分割错误的包装箱进行有效地矫正,避免了包装箱摔毁的危险,极大地提高了机器人对包装箱准确抓取的鲁棒性。
经过测试572张图片中包含过分割和欠分割问题的423个子区域,正确检测出其中401个,漏检率仅为5.2%。在这些检测出的401个错误分割中,通过主动交互技术矫正的个数为396,矫正率达到98.75%:
从上述表格数据可以看出,本发明基于视觉的错误分割检测技术的漏检率还是很低的。
本方法结合视觉算法对箱子的欠分割和过分割问题进行检测和矫正,检测迅速有效,漏检率低,避免了包装箱摔毁的危险,极大地提高了机器人对包装箱准确抓取的鲁棒性。
附图说明
图1是本发明实施例提供的基于视觉和主动交互的包装箱分割错误的检测与矫正方法流程图。
图2是本发明实施例提供的目标检测模型网络结构示意图。
图3是本发明实施例提供的基于目标检测模型结果的区域提取流程图。
图4是本发明实施例提供的欠分割检测示意图。
图5是本发明实施例提供的过分割检测示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对以上存在的问题,本发明拟从二维视觉算法入手,对包装箱可能出现的过分割或欠分割现象进行预判,然后利用机器人的抓手对包装箱进行交互式地检测与确认,最后再通过二次检测完成对包装箱错误分割的矫正与抓取位置的计算,从而为机器人的准确抓取提供有力保证。
下面结合附图对本发明的应用原理进行详细的说明;
如图1所示,本发明实施例提供的基于视觉和主动交互的包装箱分割错误的检测与矫正方法,具体包括以下步骤:
S101:基于目标检测模型结果的区域提取;根据目标检测模型的预测得到对应包装箱的掩码结果,取出对应的图片像素区域;将对应的掩码区域转化成三维点云;采用随机抽样一致算法对包装箱的抓取平面进行提取,将属于平面的局内点作为最终有效点集,采用计算点集的最小面积包围矩形的算法,估算出包装箱抓取顶面的矩形边界;
S102:基于二维视觉算法的疑似错误分割检测:根据已经提取出包装箱抓取面矩形包围框,将对应的包装箱从RGB图像中分割出来,进行疑似错误分割检测;
S103:基于主动交互式策略的错误分割判定:采用一种机器人主动交互式的方式,对疑似错误的分割进行逐一认定;
S104:错误分割的矫正及正确抓取位置计算:在机器人对疑似错误箱体进行移动之后,通过二次拍照检测,将之前的错误分割进行矫正;矫正后采用对抓取点估计的方法重新计算包装的抓取点位置以及姿态。
步骤S101中,本发明实施例提供的将对应的掩码区域转化成三维点云,采用深度图转三维点云算法,具体为:
一个空间点[x,y,z]和它在图像中的像素坐标[u,v,d](d指深度数据)的对应关系如下:
d=z·s
其中,fx,fy是指相机在x,y两个轴上的焦距,Cx,Cy指相机的光圈中心,s指深度图的缩放因子;这个公式是从(x,y,z)推导到(u,v,d);反之,本发明也可以把它写成已知(u,v,d),推导(x,y,z)的方式;公式见下式,从该公式的对应关系,可以从深度图得到三维点云。
z=d/s
x=(u-cx)·z/fx
y=(v-cy)·z/fy
步骤S102中,本发明实施例提供的错误分割检测分为欠分割检测和过分割检测。
步骤S102中,本发明实施例提供的欠分割检测,采用边缘检测算法进行前分割处理,具体为:
(1)对当前的包装箱区域进行边缘线提取;
(2)对所有提取的边缘线进行二次处理。
步骤S102中,本发明实施例提供的过分分割,采用相邻包围框检测的算法,对过分割的箱子进行识别,具体为:
(1)根据目标检测模型的结果,对所有的包装箱的最小包围矩形进行提取;
(2)以最高包装箱的高度为准(默认抓取最高处的箱体),查找在同一高度上的其余包装箱,将得到的包装箱通过筛选条件进行逐一匹配排除;
(3)通过检测流程,将潜在的过分割包装箱识别出来。
步骤S102中,本发明实施例提供的筛选条件具体为:
(1)包装箱的抓取面的法向必须一致;
(2)包装箱的最小包围矩形的边必须有一条长度相同;
(3)包装箱的最小包围矩形的某一边必须临近,近似共边。
步骤S102中,本发明实施例提供的错误分割判定,具体为:
利用机器人抓手对疑似分割错误的箱子进行试抓取,在水平方向上进行一定的移动,同时追踪已检测的包装箱位置,通过前后两次包装箱的位置和大小的变化来最终判断是否存在欠分割和过分割的问题。
步骤S104中,本发明实施例提供的对抓取点估计的方法具体算法为:
(1)通过抓取面的最小矩形框,计算矩形框的中心点,此中心点将作为抓取的初始位置;
(2)根据吸手大小以及最小包围矩形框的边走向,以中心点为抓手中心,生成与矩形框边平行的抓手区域;
(3)用抓手区域和周围等高的包装箱抓取面做求交计算,如果发生重合,根据重合的包装箱大小和位置,重新调整抓手的中心位置,直到不与其余包装箱重合为止;通过上述算法可以快速计算出抓取点的位置,引导机器人进行准确地抓取。
下面结合具体实施例度本发明的应用原理进行进一步的说明;
实施例1;
本发明实施例提供的基于视觉和主动交互的包装箱分割错误的检测与矫正方法为:基于目标检测模型结果的区域提取;基于二维视觉算法的疑似错误分割检测;基于主动交互式策略的错误分割判定;错误分割的矫正及正确抓取位置计算。
(一)基于目标检测模型结果的区域提取
如图2所示,本发明实施例提供的目标检测模型网络结构示意图。
该网络输出的结果包含三个部分:物体的分类、物体的掩码、物体的二维包围框。本发明主要利用物体的掩码结果,因为掩码直接对应区域中具体属于物体本身的像素,这样可以提取出图片中物体所在区域。由于本发明针对的是包装箱的目标检测,而包装箱是标准的六边体,根据这个特点本发明可以进一步提取包装箱的抓取面和对应的矩形边界框,为后续包装箱的抓取点计算奠定基础。
首先根据目标检测模型的预测得到对应包装箱的掩码结果,取出对应的图片像素区域。而本发明的输入中具备深度图信息,因此在知道相机内参的条件下,可以将对应的掩码区域转化成三维点云。然而目标检测模型的预测并不能保证百分百正确,因此三维点云中可能会存在不属于包装箱的杂质点。为了避免杂质点对后续抓取点计算的干扰,本发明采用了随机抽样一致算法(Ransac)对包装箱的抓取平面进行提取,将属于平面的局内点作为最终有效点集。随后根据该有效点集,本发明设计了计算点集的最小面积包围矩形的算法,估算出包装箱抓取顶面的矩形边界。经过上述算法处理之后,本发明不仅可以计算得到当前包装箱顶面合适的抓取点位置,还可以根据矩形边界估算出最佳的抓取朝向。算法流程如图3所示;
如图3所示,本发明实施例提供的基于目标检测模型结果的区域提取流程图。
深度图转三维点云算法公式:一个空间点[x,y,z]和它在图像中的像素坐标[u,v,d](d指深度数据)的对应关系如下:
d=z·s
其中,fx,fy是指相机在x,y两个轴上的焦距,Cx,Cy指相机的光圈中心,s指深度图的缩放因子。这个公式是从(x,y,z)推导到(u,v,d)。反之,本发明也可以把它写成已知(u,v,d),推导(x,y,z)的方式。公式见下式。从该公式的对应关系,本发明便可以从深度图得到三维点云。
z=d/s
x=(u-cx)·z/fx
y=(v-cy)·z/fy
(二)基于二维视觉算法的疑似错误分割检测
上述(一)中已经提取出包装箱抓取面矩形包围框,本发明利用这一结果将对应的包装箱从RGB图像中分割出来,用做下一步疑似错误分割检测。下面分别描述对欠分割和过分割箱体的检测算法设计。
欠分割检测:欠分割问题即将多个箱子识别成了一个箱子,出现的原因在于箱子之前间隙较小,并且箱子之间有一条边长度相等,近似共边。因此可以将这条共边线作为解决问题的突破口,只要将相邻箱子的间缝线检测出来,就能将多个箱子分离开来。本发明采用边缘检测算法对该问题进行处理,首先对当前的包装箱区域进行边缘线提取,为了避免冗余和不相关的边缘线的干扰,再对所有提取的边缘线进行二次处理,设定两个条件来实现过滤:一是边缘线的长度必须满足一定要求,需要贯穿整个箱体,不能出现中间间断或者只达到一半长度;二是边缘线的朝向必须与提取的矩形包围框的边平行。经过上述处理之后的边缘线便是潜在的分割边界,如果当前包装箱的区域出现了多条边界线,那么本发明将按照与矩形包围框的边界的距离进行排序,后续优先处理靠近边界的分割,确保不在子区域再次出现欠分割问题。
如图4所示,本发明实施例提供的欠分割检测示意图。
过分割检测:过分割问题即将一个箱子识别成了多个箱子,出现的原因在于包装箱上的纹理图案拥有贯穿箱体的分割线,造成了两个箱子相邻的假象。因此本发明采用相邻包围框检测的算法,对可能出现过分割的箱子进行识别。具体流程如下:首先根据目标检测模型的结果,对所有的包装箱的最小包围矩形进行提取,然后以最高包装箱的高度为准(默认抓取最高处的箱体),查找在同一高度上的其余包装箱,将得到的这些包装箱通过以下几个条件进行逐一匹配排除:(1)包装箱的抓取面的法向必须一致;(2)包装箱的最小包围矩形的边必须有一条长度相同;(3)包装箱的最小包围矩形的某一边必须临近,近似共边。通过上述的检测流程,便可以将潜在的过分割包装箱识别出来。
如图5所示,本发明实施例提供的过分割检测示意图。
(三)基于主动交互式策略的错误分割判定
对于步骤(二)中所识别的潜在的欠分割和过分割箱子,还需要进一步判定分析,本发明采用了一种机器人主动交互式的方式,对疑似错误的分割进行逐一认定。主要思路是利用机器人抓手对疑似分割错误的箱子进行试抓取,在水平方向上进行一定的移动,同时追踪已检测的包装箱位置,通过前后两次包装箱的位置和大小的变化来最终判断是否存在欠分割和过分割的问题。
对于疑似欠分割的箱子,通过边缘检测算法已得到贯穿箱体的边缘线,本发明以边缘线作为潜在分割线将箱体分割成两部分,此时根据吸手和分割后的箱体大小,计算调整吸取位置,以分割后的其中一个箱体为目标,进行抓取移动。此时抓取动作并不进行举高,而是根据箱体周围包装箱的分布情况,沿着某一无箱体的方向进行一定距离移动。在移动成功后,本发明进行二次拍照,重新计算各个目标箱体的位置。通过比较前后两次箱体的大小、位置变化,以及此前掌握的边缘线分割后的子箱体信息,便可以判断疑似错误分割的箱子是否真正为欠分割。
对于疑似过分割的箱子,判断流程与欠分割类似,这里只需将疑似的临近包装箱作为试抓取目标即可,即判断临近包装箱在抓取前后的位置和大小是否同时发生变化。
(四)错误分割的矫正及正确抓取位置计算
在确定抓取箱体存在过分割或者欠分割的问题之后,本发明需要对箱体进行错误矫正。实际上步骤(三)中已经包含了对错误分割的处理方式,简单来说,在机器人对疑似错误箱体进行移动之后,通过二次拍照检测,便可以将之前的错误分割进行矫正。具体分析如下:
如若存在欠分割问题,那么根据边缘线移动子箱体之后,会使得两个箱子分离,这时进行二次网络预测时将会检测出两个箱子区域。欠分割错误因此已得到矫正。若为过分割问题,则在移动箱体之后,依然可能会在同一箱体出现过分割现象。此时通过二次网络预测,对比前后两次箱体的位置,人为地对该临近箱体进行合并。
在错误分割的箱子得到矫正之后,本发明需要重新计算包装的抓取点位置以及姿态。为了适应在密集包装箱中准确抓取特定目标的需求,本发明设计了一种对抓取点估计的方法,保证了吸手能够最大面积吸附抓取面的同时,不与周围其他包装箱发生接触。
具体计算流程如下:
(1)通过抓取面的最小矩形框,计算矩形框的中心点,此中心点将作为抓取的初始位置;
(2)根据吸手大小以及最小包围矩形框的边走向,以中心点为抓手中心,生成与矩形框边平行的抓手区域;
(3)用抓手区域和周围等高的包装箱抓取面做求交计算,如果发生重合,根据重合的包装箱大小和位置,重新调整抓手的中心位置,直到不与其余包装箱重合为止。
通过上述算法可以快速计算出抓取点的位置,引导机器人进行准确地抓取。
实践表明,本发明基于视觉的交互式策略能够对分割错误的包装箱进行有效地矫正,避免了包装箱摔毁的危险,极大地提高了机器人对包装箱准确抓取的鲁棒性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。