CN113935368B - 针对散乱堆叠状态且具有可抓取平面物体的识别、定位及抓取方法 - Google Patents
针对散乱堆叠状态且具有可抓取平面物体的识别、定位及抓取方法 Download PDFInfo
- Publication number
- CN113935368B CN113935368B CN202111190937.6A CN202111190937A CN113935368B CN 113935368 B CN113935368 B CN 113935368B CN 202111190937 A CN202111190937 A CN 202111190937A CN 113935368 B CN113935368 B CN 113935368B
- Authority
- CN
- China
- Prior art keywords
- scene
- image block
- semantic segmentation
- plane
- point cloud
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012549 training Methods 0.000 claims abstract description 47
- 238000012360 testing method Methods 0.000 claims abstract description 17
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 13
- 238000013135 deep learning Methods 0.000 claims abstract description 13
- 238000012545 processing Methods 0.000 claims abstract description 5
- 210000000078 claw Anatomy 0.000 claims abstract description 4
- 230000000007 visual effect Effects 0.000 claims abstract description 4
- 230000011218 segmentation Effects 0.000 claims description 155
- 238000002372 labelling Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 8
- 239000011159 matrix material Substances 0.000 claims description 6
- 230000009466 transformation Effects 0.000 claims description 6
- 238000005520 cutting process Methods 0.000 claims description 5
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 230000001629 suppression Effects 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims description 3
- 230000036544 posture Effects 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims 1
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000001179 sorption measurement Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/33—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
本发明提出一种针对散乱堆叠状态且具有可抓取平面物体的识别、定位及抓取方法,通过双目结构光相机的数据采集、基于滑动窗口的局部图像块截取及数据增强处理,为后续***深度学***面是否被遮挡进行再判断,来减少对具有小部分面被遮挡物体的误识别,以此来最终确定各待抓取物体的优先抓取顺序,确保吸盘手爪的抓取成功率。
Description
技术领域
本发明属于物体识别与定位技术领域,尤其涉及一种针对散乱堆叠状态且具有可抓取平面物体的识别、定位及抓取方法。
背景技术
随着制造业的智能化水平不断提高。相较于全程使用人工生产,由机器人代替人工完成部分生产工序可有效提高生产效率、降低生产成本。智能分拣是制造业提升智能化水平的重要方向之一,而其中对于待抓取物体的智能识别与定位的准确与否将直接影响后续机器人抓取的成功率,是智能分拣作业的重点环节。
早期进行机器人-工业化分拣操作时,往往要求待抓取物体被有序、逐个、精确地传送到指定位置,抓取方式由技术人员通过人工示教完成。不过这种方式中的机器人智能化水平较低,仅仅只是在不断重复执行预先示教的路径,无法实现一类散乱堆叠放置物体的精确识别与抓取。为了提高机器人的智能化水平,采用机器视觉技术为机器人提供外界信息,使其对外界不同位姿物体具备精确的识别与定位能力,从而实现有效抓取。工程上,对于那些具有可抓取平面的偏薄状物体,人们常优先选用吸盘手爪对其进行气动吸附抓取,而对于手爪的位姿估计则广泛使用基于机器视觉技术的三维点云匹配法,以确认抓取位姿。对于复杂场景下的点云配准,实际上是场景中的多个局部点云分别与预先获得的点云模板进行配准,其难点在于如何获取合适的局部点云进行配准。局部点云的选取通常采用三维局部描述子在模板上生成特征点以及特征点对应的特征,如SHOT、Spin Image、FPFH等方法,在场景中通过局部特征描述子对场景点云提取特征,按照提取的特征寻找场景中特征点,根据特征点提取局部点云进行配准。不过值得一提的是,为了在散乱堆叠场景中提取出适合点云配准的特征点,往往需要通过人工反复测试,以进行局部描述子和参数的优化调整。显然,这一系列操作对现场人员的专业技术水平要求较高,且耗时耗力。
随着近年来计算机运算能力的大幅提升,作为数据驱动型方法之一的深度学***面物体的智能识别与定位方法,以提高其分拣作业的工作效率及其智能化水平。
发明内容
本发明的目的是提供一种针对散乱堆叠状态且具有可抓取平面物体的识别、定位及抓取方法,主要针对一类处于散乱堆叠状态且具有可抓取平面物体,提出一种基于机器视觉及深度学***面的图像块分类网络PatchCateNet,一个用于分割每一局部图像块区域中未被遮挡的可抓取平面的语义分割网络PatchSegNet及一个用于识别场景图像中全部待抓取物体的语义分割网络SceneSegNet;前述得到的深度学***面是否被遮挡进行再判断,来减少对具有小部分面被遮挡物体的误识别,以此来最终确定各待抓取物体的优先抓取顺序,确保吸盘手爪的抓取成功率。
本发明具体采用以下技术方案:
一种针对散乱堆叠状态且具有可抓取平面物体的识别、定位及抓取方法,其特征在于:通过双目结构光相机的数据采集、基于滑动窗口的局部图像块截取及数据增强处理,获得训练及测试样本;以此样本为基础,搭建并训练三个卷积神经网络,其中包括一个用于识别每个局部图像块区域中是否含有未被遮挡的可抓取平面的图像块分类网络PatchCateNet,一个用于分割每一局部图像块区域中未被遮挡的可抓取平面的语义分割网络PatchSegNet及一个用于识别场景图像中全部待抓取物体的语义分割网络SceneSegNet;以此实现视觉场景中全部待抓取物体的识别,并为吸盘手爪位姿估计所涉及的三维点云配准操作提供可抓取区域匹配推荐;通过在三维点云环境中对可抓取平面是否被遮挡进行再判断,最终确定各待抓取物体的优先抓取顺序。
进一步地,样本图像的采集和标注包括以下步骤:
步骤S001:将双目结构光相机固定安装在待抓取物体放置平面的正上方,通过双目结构光相机采集场景灰度图与深度图;
步骤S002:由步骤S001得到场景灰度图;
步骤S003:由步骤S001得到场景深度图;
步骤S004:在场景灰度图中,对场景中所有的待抓取物体进行语义分割标注以及对场景中未被遮挡的可抓取平面进行实例分割标注。
在此需要强调的是,本发明所提供的步骤标号并不意味着对步骤执行顺序的限定,如步骤S002和步骤S003可以从说明书附图1当中看出,二者实际上是属于并列关系的步骤,其执行的先后顺序可以根据需要进行调整;如步骤S004是承接步骤S002的操作步骤,与步骤S003没有直接关联,因此,步骤S003和步骤S004执行的先后顺序没有实际的技术上的意义;这些根据本领域技术人员的常识或习惯可以进行同等效果的步骤执行顺序调整均属于本发明所提方案的等同技术方案,也属本发明的保护范畴。
进一步地,所述图像块分类网络PatchCateNet的训练过程包括以下步骤:
步骤S005:生成图像块分类网络PatchCateNet的数据集,其生成方式如下:
根据待抓取物体的可抓取平面在图像下的尺寸大小,设置一个固定大小的正方形滑动窗口,窗口大小为patch size,包含可抓取平面及其周边信息;滑动窗口的步长设置为patch stride;
PatchCateNet的数据集是在深度图上生成,先根据步骤S004的语义分割标注在深度图截出一个包含语义分割的无旋转的最小外接矩形区域,之后根据设定的滑动窗口大小和步长,从截出的深度图矩形区域的左上角开始,自左向右、自上而下在截出的深度图矩形区域上裁剪图像块,直至裁剪到右下角结束;其间每截取出一个图像块,就对该图像块进行如下分类判断:若该图像块与步骤S004的多个实例分割标注有交集,就对该图像块根据实例分割标注依次计算该图像块与每个实例分割的交集占各个实例分割面积的百分比Pi,i=1,2,…,n;n表示图像块中包含的实例分割数,选出最大的百分比Pmax=Max(P1,P2,…,Pn),将Pmax与预设的可抓取阈值Pthreshold进行比较,若Pmax≥Pthreshold,则将这个图像块的类别判定为正例,反之为负例;
步骤S006:在图像块分类网络PatchCateNet训练前采用离线数据增强方式,以获得足够且平衡的网络正、负例样本,其增强方式如下:
物体的堆叠方式及可抓取阈值Pthreshold大小设置不同,常导致图像块分类网络PatchCateNet数据集中的正例与负例样本不平衡,往往正例样本少,负例样本多。为了缓解正、负例样本不平衡的问题,通常可采用旋转的方式对图像块进行数据增强;在使用旋转的方式进行数据增强时,控制正、负例样本在角度变化时的采样周期,以此调整正、负例样本比例。不过由于对截取出的深度图图像块进行旋转并没有得到更充分的可抓取平面的周边信息,因此本发明以场景深度图几何形心为基点,对图片进行旋转、裁剪,以此来直接扩充数据集,以获得更多的旋转后图像块所包含的信息;
步骤S007:搭建图像块分类网络PatchCateNet;
步骤S008:利用步骤S006生成的图像块分类网络PatchCateNet数据集对步骤S007搭建的图像块分类网络PatchCateNet进行训练;
步骤S009:由步骤S008得到训练好的图像块分类网络PatchCateNet。
进一步地,所述语义分割网络PatchSegNet的训练过程包括以下步骤:
步骤S015:生成图像块语义分割网络PatchSegNet数据集,生成方式如下:
依照步骤S005的方式获取深度图图像块,对图像块中类别标签为正例的图像块生成语义分割标注,标注为Pmax对应的实例分割标注在图像块中的部分,负例没有语义分割标注;
步骤S016:在图像块语义分割网络PatchSegNet训练前采用离线数据增强,方式如下:
依照步骤S006的方式对场景深度图进行旋转再裁剪,并依照步骤S015获取图像块与对应的语义分割标注;
步骤S017:搭建图像块语义分割网络PatchCateNet;
步骤S018:利用步骤S016生成的图像块语义分割网络PatchCateNet数据集对步骤S017搭建的图像块语义分割网络PatchCateNet进行训练;
步骤S019:由步骤S018得到训练好的图像块语义分割网络PatchSegNet。
进一步地,所述语义分割网络SceneSegNet的训练过程包括以下步骤:
步骤S025:采用场景灰度图与场景中所有待抓取物体的语义分割标注生成场景语义分割网络SceneSegNet的数据集;
步骤S026:根据需要在场景语义分割网络SceneSegNet训练前对数据集进行离线数据增强;
步骤S027:搭建场景语义分割网络SceneSegNet;
步骤S028:利用步骤S026生成的场景语义分割网络SceneSegNet数据集对步骤S027搭建的场景语义分割网络SceneSegNet进行训练;
步骤S029:由步骤S028得到训练好的场景语义分割网络SceneSegNet。
进一步地,对场景待抓取物体进行识别与定位,其步骤如下:
步骤S100:在场景中利用固定安装在待抓取物体放置平台正上方的双目结构光相机拍摄放置在平台上的单个待抓取物体,得到包含单个待抓取物体的场景点云;
步骤S200:将步骤S100得到的场景点云中多余的点云删除,保留待抓取物体可抓取平面的点云,以此建立一个在场景坐标系下的三维点云模板,在三维点云模板中逐个选取特征点,使顺序连接的特征点组成的多边形能够包围可抓取平面的外轮廓;其中,点云模板、特征点都是在场景坐标系下得到的;
步骤S300:在场景中利用固定安装在待抓取物体放置平台正上方的双目结构光相机拍摄放置在平台上处于散乱堆叠状态下的全部待抓取物体;
步骤S400:由步骤S300得到场景灰度图;
步骤S500:由步骤S300得到场景深度图;
步骤S600:由步骤S300得到场景三维点云;
步骤S700:步骤S400得到的场景灰度图与步骤S500得到的场景深度图作为输入,输入网络预测模块,使用前期训练得到的三个深度学习网络进行预测,输出最终的场景深度图实例分割;
步骤S800:在步骤S600得到的场景三维点云中,选取步骤S700得到的每一个实例分割形心为中心,大小为patch size的图像块作为每一个局部遮挡判断区域,每一个区域对应的场景点云是一个场景中遮挡判断局部点云;
步骤S900:在步骤S600得到的场景三维点云中,选取步骤S700得到的每一个实例分割对应的一个局部区域作为每一个局部待配准区域,每一个区域对应的场景点云是一个场景中待配准局部点云;
步骤S1000:以步骤S200得到的模板点云、特征点点云,步骤S800得到的场景中遮挡判断局部点云以及步骤S900得到的场景中待配准局部点云作为输入,输入点云遮挡判断模块,输出场景中待抓取物体的抓取推荐;
步骤S1100:抓取推荐优先级最高的待抓取物体,然后返回步骤S300。
进一步地,步骤S700使用的所述网络预测模块中,输入为步骤S400得到的场景灰度图以及步骤S500得到的场景深度图,输出为最终的场景深度图实例分割,其具体步骤如下:
步骤S710:以步骤S400得到的场景灰度图为输入,输入场景语义分割网络SceneSegNet进行推理,得到场景中所有待抓取物体语义分割;
步骤S720:由步骤S710输出的场景中所有待抓取物体语义分割判断场景中是否有待抓取物体,如果有,进行步骤S730,如果没有,则本轮抓取结束;
步骤S730:根据步骤S710输出的场景中所有待抓取物体语义分割,以语义分割的无旋转的最小外接矩形框为基础,略微扩大矩形框,以此为范围对步骤S500得到的场景深度图进行截取;并在截取的深度图上按照步骤S005截取图像块的方式获取图像块;
步骤S740:以步骤S730得到的图像块为输入,输入图像块分类网络PatchCateNet预测模块,输出类别得分大于等于预设类别得分阈值Catethreshold的图像块;
步骤S750:以步骤S740输出的图像块作为输入,输入图像块语义分割网络PatchSegNet进行推理;得到每个图像块未被遮挡可抓取平面语义分割;
步骤S760:按照步骤S750输入的图像块在场景深度图中的位置将输出的语义分割结果还原到场景深度图中,不同图像块还原后得到的不同语义分割组成一组大小为场景深度图大小,数量为PatchSegNet输入图像块数量的语义分割,作为一张场景深度图的实例分割;
步骤S770:实例分割结果使用非极大值抑制更新每个PatchSegNet输入图像块的类别得分;
步骤S780:判断更新后的类别得分是否大于等于一个预设非极大值抑制后类别得分阈值NMSthreshold,如果是,则保留这个实例分割,如果否,则舍弃这个实例分割;
步骤S790:根据步骤S780的保留结果得到最终的场景深度图实例分割。
进一步地,步骤S740使用的图像块分类网络PatchCateNet预测模块,输入为深度图图像块,输出类别得分大于等于预设类别得分阈值图像块,其具体步骤如下:
步骤S741:将步骤S730得到的深度图图像块输入图像块分类网络PatchCateNet进行推理,得到每个图像块含有未被遮挡可抓取平面得分;
步骤S742:逐个判定图像块含有未被遮挡可抓取平面得分是否大于等于预设类别得分阈值Catethreshold,如果是,则保留这个图像块,如果否,则舍弃这个图像块;
步骤S743:根据步骤S742的保留结果得到类别得分大于等于预设类别得分阈值的图像块。
进一步地,步骤S1000使用的所述点云遮挡判断模块,输入为场景中遮挡判断局部点云,可抓取平面模板和特征点,场景中待配准局部点云,输出为场景中待抓取物体抓取推荐,其具体步骤如下:
步骤S1001:将步骤S900得到的场景中待配准局部点云与步骤S200得到的可抓取平面模板进行配准,得到可抓取平面模板到待配准局部点云的变换矩阵,利用变换矩阵将步骤S200得到的可抓取平面模板与特征点变换到场景下;
步骤S1002:根据变换到场景的可抓取平面模板拟合可抓取平面,得到可抓取平面的平面方程参数,将步骤S800得到的场景中遮挡判断局部点云与步骤S1001中变换到场景下的特征点投影到拟合平面;
步骤S1003:判断前述投影到拟合平面的点在投影前是否在拟合平面附近,即场景中的可抓取平面上的点,与平面下方的点,如果否,则进行步骤S1004,如果是,则舍弃这个点;
步骤S1004:判断步骤S1003剩余保留的点是否在拟合平面上特征点组成的多边形内,即位于可抓取平面上方的点,如果是,则进行步骤S1005,如果否,则舍弃这个点;
步骤S1005:记录步骤S1004输出的点的数量;
步骤S1006:根据步骤S1005记录的平面上方点数量对实例分割排序;
步骤S1007:根据步骤S1006的实例分割排序得到场景中待抓取物体抓取推荐。
进一步地,所述图像块分类网络PatchCateNet采用ResNet50;所述图像块语义分割网络PatchSegNet和场景语义分割网络SceneSegNet采用语义分割网络Unet。
相较于现有技术,本发明及其优选方案主要针对一类处于散乱堆叠状态且具有可抓取平面物体,提出一种基于机器视觉及深度学***面物体的可抓取平面准确识别与定位,为点云配准自动提供推荐配准区域,从而有效避免了以往复杂场景下各类人工配准方法的繁杂操作并提高配准成功率;此外,所发明的方法还可通过在三维点云环境中对可抓取平面是否被遮挡进行再判断,来减少对具有小部分面被遮挡物体的误识别,以此来最终确定各待抓取物体的优先抓取顺序,确保吸盘手爪的抓取成功率。
附图说明
下面结合附图和具体实施方式对本发明进一步详细的说明:
图1是本发明实施例所涉及的前期网络训练流程图。
图2是本发明实施例所涉及的总流程图。
图3是本发明实施例总流程图中网络预测模块流程图。
图4是本发明实施例网络预测模块中图像块分类网络PatchCateNet预测模块流程图。
图5是本发明实施例总流程图中点云遮挡判断模块流程图。
图6是本发明一实例中一例灰度图标注。
图7是本发明一实例中滑动窗口大小选择。
图8是本发明一实例中一例场景深度图语义分割标注的最小外接矩形框(无旋转)。
图9是本发明一实例中一例场景深度图根据语义分割标注截取的矩形区域。
图10是本发明一实例中一例类别为正例滑动窗口。
图11是本发明一实例中一例类别为负例滑动窗口。
图12是本发明一实例中使用Unet网络结构示意图。
图13是本发明一实例中一组在模板标出的特征点。
图14是本发明一实例中一个可抓取平面识别结果。
具体实施方式
为让本专利的特征和优点能更明显易懂,下文特举实施例,作详细说明如下:
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
首先,在实施例中以散乱堆叠且具有可抓取平面的齿轮为例,本发明利用双目结构光相机在场景下采集不同散乱堆叠状态下的齿轮灰度图、深度图及其对应的三维点云共267组,其中224组用于生成训练集,43组用于生成测试集。本发明所使用的相关参数设置见表1。
表1参数设置
参数 | 数值 |
滑动窗口大小patch size | 280 |
滑动窗口步长patchstride | 56 |
可抓取阈值Pthreshold | 95% |
类别得分阈值Catethreshold | 40% |
非极大值抑制后类别得分阈值NMSthreshold | 40% |
如图1-图14所示,本实施例提供的针对散乱堆叠状态且具有可抓取平面物体的识别、定位及抓取方法包括以下实施过程,包括前期三个卷积神经网络的数据集生成、搭建与训练,其具体步骤为:
步骤S001:将双目结构光相机固定安装在齿轮放置平面的正上方,通过双目结构光相机采集场景灰度图与深度图。
步骤S002:由步骤S001得到场景灰度图。
步骤S003:由步骤S001得到场景深度图。
步骤S004:在场景灰度图中,对场景中所有的待抓取齿轮进行语义分割标注以及对场景中未被遮挡的可抓取平面进行实例分割标注。在场景灰度图中(如图6所示),对待抓取齿轮总体进行语义分割标注,对可抓取平面进行实例分割标注。
步骤S005:生成图像块分类网络patchCateNet的数据集,其生成方式如下:根据齿轮的可抓取平面在图像下的尺寸大小,设置一个固定大小的正方形滑动窗口,窗口大小为patch size,包含可抓取平面及其周边信息;滑动窗口的步长设置为patch stride。
本实例中,滑动窗口的设置如图7所示,方框为设置的滑动窗口;考虑到齿轮的最小外接正方形大约为224×224,故patch size设为280×280,patch stride设置为patchsize的1/5,即56。
PatchCateNet的数据集是在深度图上生成,先根据步骤S004的语义分割标注在深度图截出一个包含语义分割的最小外接矩形区域(无旋转),如图8所示为本实例中一例根据语义分割标注在深度图上截出包含语义分割的最小外接矩形区域(无旋转),如图9所示为根据图8语义分割标注截出的矩形区域。
根据设定的滑动窗口大小和步长,从截出的深度图矩形区域的左上角开始,自左向右、自上而下在截出的深度图矩形区域上裁剪图像块,直至裁剪到右下角结束;其间每截取出一个图像块,就对该图像块进行如下分类判断:若该图像块与步骤S004的多个实例分割标注有交集,就对该图像块根据实例分割标注依次计算该图像块与每个实例分割的交集占各个实例分割面积的百分比Pi(i=1,2,…,n;n表示图像块中包含的实例分割数),选出最大的百分比Pmax=Max(P1,P2,…,Pn),将Pmax与预设的可抓取阈值Pthreshold进行比较,若Pmax≥Pthreshold,则将这个图像块的类别判定为正例,反之为负例。
如图10与图11所示,正方形框为滑动窗口,其附近的浅色部分为实例分割标注可视化,文字为Pi及其数值,本实例可抓取阈值Pthreshold设为95%。如图10所示滑动窗口位置,此时滑动窗口内图像块的Pmax>Pthreshold,其中Pmax=P1=100%,判定为正例;如图11所示滑动窗口位置,此时滑动窗口内图像块的Pmax<Pthreshold,其中Pmax=P1=75.13%,判定为负例。
步骤S006:在图像块分类网络PatchCateNet训练前采用离线数据增强方式,以获得足够且平衡的网络正、负例样本,其增强方式如下:
齿轮的堆叠方式及可抓取阈值Pthreshold大小设置不同,常导致图像块分类网络PatchCateNet数据集中的正例与负例样本不平衡,往往正例样本少,负例样本多。为了缓解正、负例样本不平衡的问题,通常可采用旋转的方式对图像块进行数据增强;在使用旋转的方式进行数据增强时,控制正、负例样本在角度变化时的采样周期,以此调整正、负例样本比例。不过由于对截取出的深度图图像块进行旋转并没有得到更充分的可抓取平面的周边信息,因此本发明以场景深度图几何形心为基点,对图片进行旋转、裁剪,以此来直接扩充数据集,以获得更多的旋转后图像块所包含的信息。
本实例以224张训练集场景深度图中心为旋转中心,逆时针方向从原位置(0°)开始每旋转30°采集一次正例图像,共采集12次,生成18726张正例图像块;每旋转180°采集一次负例图像,共采集2次,生成24229张负例图像块,以此来调节PatchCateNet训练集正负例样本比例。正、负例图像块总数为42955,全部用于PatchCateNet训练。测试集图像块未采用数据增强,由43张测试集场景深度图生成225张正例图像块,2321张负例图像块,用于PatchCateNet测试。
步骤S007:搭建图像块分类网络PatchCateNet。本实例使用分类网络ResNet50作为PatchCateNet,网络输入按照在ImageNet上训练的大小设置为224×224,本实例的图像块大小为280×280,因此需要先降采样到224×224再输入网络中。因为判断是否含有未被遮挡的可抓取平面为二分类问题,最后一层输出通道数为1,最后一层使用的激活函数为sigmold函数。
步骤S008:利用步骤S006生成的图像块分类网络PatchCateNet数据集对步骤S007搭建的图像块分类网络PatchCateNet进行训练。
本实例PatchCateNet训练时的在线数据增强方式:随机水平翻转与随机垂直翻转。PatchCateNet训练时的参数更新策略:初始化权重参数的方式为随机初始化,参数更新最大迭代次数为9000次,学习率采用随机梯度下降法进行更新,预设学习率为0.01,动量为0.9,权重衰减为0.0001。学习率在前1000次迭代中由预设学习率的0.001倍线性增加到预设学习率,在6000次迭代时降至预设学习率的0.1倍,8000次迭代时降至预设学习率的0.01倍。
步骤S009:由步骤S008得到训练好的图像块分类网络PatchCateNet。
步骤S015:生成图像块语义分割网络PatchSegNet数据集,生成方式如下:
依照步骤S005的方式获取深度图图像块,对图像块中类别标签为正例的图像块生成语义分割标注,标注为Pmax对应的实例分割标注在图像块中的部分,负例不做语义分割标注。如图10所示,该图像块类别为正例,语义分割标注为中间的浅色部分;如图11所示,该图像块类别为负例,不做语义分割标注。
步骤S016:在图像块语义分割网络PatchSegNet训练前采用离线数据增强,方式如下:
依照步骤S006的方式对场景深度图进行旋转再裁剪,并依照步骤S015获取图像块与对应的语义分割标注。本实例生成类别为正例的18726张图像块用于PatchSegNet训练,测试集图像块未采用数据增强,由43张测试集场景深度图生成225张正例图像块,用于PatchSegNet测试。
步骤S017:搭建图像块语义分割网络PatchSegNet。本实例使用语义分割网络Unet作为PatchSegNet,由于与PatchCateNet一样都是使用图像块预测,因此使用224×224的图像块作为PatchSegNet输入。由于原先的Unet会经过4次2倍降采样,224×224大小的图像在4次2倍降采样后会变为14×14,因此删掉原先Unet的一个降采样层,可将分辨率增至28×28,同时为了上采样时拼接方便,将卷积核参数padding设置为1,使在同一层的特征图大小不变,如图12所示,图中S表示输入图像尺寸,长方形表示特征图(实线长方形表示顺序操作的特征图,虚线表示跳跃连接的特征图,实线长方形与虚线长方形并在一起表示在通道维度上的拼接操作),下方数字表示特征图通道,实线向右箭头表示卷积核大小为3×3的卷积层、归一化层、激活层操作,实线向下箭头表示2倍下采样的池化层操作,实线向上箭头表示2倍上采样操作,虚线向右箭头表示跳跃连接操作,输入为单通道图像,输出语义分割通道数为1。
步骤S018:利用步骤S016生成的图像块语义分割网络PatchCateNet数据集对步骤S017搭建的图像块语义分割网络PatchSegNet进行训练。本实例训练时的数据增强与参数更新策略与步骤S008相同。
步骤S019:由步骤S018得到训练好的图像块语义分割网络PatchSegNet。
步骤S025:采用场景灰度图与场景中所有待抓取齿轮的语义分割标注生成场景语义分割网络SceneSegNet的数据集。本实例采用采集的267张场景灰度图与场景中所有待抓取齿轮的语义分割标注生成场景语义分割网络SceneSegNet的数据集,224张场景灰度图用于生成训练集,43张场景灰度图用于生成测试集。
步骤S026:根据需要在场景语义分割网络SceneSegNet训练前对数据集进行离线数据增强。本实例在SceneSegNet训练之前,场景灰度图采用离线数据增强方式:以224张训练集场景灰度图中心为旋转中心,逆时针方向从原位置(0°)开始旋转90°,180°,270°共4次,生成896张场景灰度图用于SceneSegNet训练,测试集场景灰度图不进行数据增强,保持43张场景灰度图用于测试。
步骤S027:搭建场景语义分割网络SceneSegNet。本实例采用与PatchSegNet相同结构的网络作为SceneSegNet。由于相机视野过大包含过多非工作区域,在训练与推理时先预先设定工作区域,以此范围内灰度图为对象进行训练和推理,将截取出的工作区域灰度图降采样到512×512输入网络训练,得到语义分割结果后上采样回原大小。
步骤S028:利用步骤S026生成的场景语义分割网络SceneSegNet数据集对步骤S027搭建的场景语义分割网络SceneSegNet进行训练。本实例SceneSegNet训练时在线数据增强方式:随机旋转角度范围±45°,高斯噪声,随机水平翻转、随机垂直翻转,参数更新策略与步骤S008相同。
步骤S029:由步骤S028得到训练好的场景语义分割网络SceneSegNet。本发明所提出的对场景待抓取齿轮识别与定位,其具体步骤如下:
步骤S100:在场景中利用固定安装在齿轮放置平台正上方的双目结构光相机拍摄放置在平台上的单个齿轮,得到包含单个齿轮的场景点云。
步骤S200:将步骤S100得到的场景点云中多余的点云删除,保留齿轮可抓取平面的点云,以此建立一个在场景坐标系下的三维点云模板,在三维点云模板中逐个选取特征点,使顺序连接的特征点组成的多边形能够包围可抓取平面的外轮廓。点云模板,特征点都是在场景坐标系下得到的。如图13所示,灰色的点为可抓取平面的点云模板,齿轮各个角上的点为标注的特征点。
步骤S300:在场景中利用固定安装在齿轮放置平台正上方的双目结构光相机拍摄放置在平台上处于散乱堆叠状态下的全部齿轮。
步骤S400:由步骤S300得到场景灰度图。
步骤S500:由步骤S300得到场景深度图。
步骤S600:由步骤S300得到场景三维点云。
步骤S700:步骤S400得到的场景灰度图与步骤S500得到场景深度图作为输入,输入网络预测模块,使用前期训练得到的三个深度学习网络进行预测,输出最终的场景深度图实例分割。
步骤S800:在步骤S600得到的场景三维点云中,选取以步骤S700得到的每一个实例分割形心为中心,大小为patch size的图像块(本实例patch size=280)作为每一个局部遮挡判断区域,每一个区域对应的场景点云是一个场景中遮挡判断局部点云。
步骤S900:在步骤S600得到的场景三维点云中,选取以步骤S700得到的每一实例分割对应的一个局部区域作为每一个局部待配准区域,每一个区域对应的场景点云是一个场景中待配准局部点云。
步骤1000:以步骤S200得到的模板点云、特征点点云,步骤S800得到的场景中遮挡判断局部点云以及步骤S900得到的场景中待配准局部点云作为输入,输入点云遮挡判断模块,输出场景中齿轮的抓取推荐。
步骤S1100:抓取推荐优先级最高的齿轮,然后返回步骤S300。
本发明步骤S700使用的网络预测模块,输入为步骤S400得到的场景灰度图以及步骤S500得到的场景深度图,输出为最终的场景深度图实例分割,其步骤如下:
步骤S710:以步骤S400场景灰度图为输入,输入步骤S029得到的场景语义分割网络PatchSegNet进行推理,得到场景中的所有齿轮语义分割。本实例中,由于相机视野过大包含过多非工作区域,按照步骤S027设置的工作区域先对步骤S400得到的场景灰度图进行裁剪,再将裁剪后的灰度图大小降采样到512×512,输入步骤S029得到的场景语义分割网络SceneSegNet进行推理,将结果上采样以恢复到降采样前的大小,得到场景中的所有齿轮语义分割。
步骤S720:由步骤S710输出的场景中的所有齿轮语义分割判断场景中是否有齿轮,如果有,进行步骤S730,如果没有,则本轮抓取结束。
步骤S730:根据步骤S710输出的场景中的所有齿轮语义分割,以语义分割的最小外接矩形框(无旋转)为基础,略微扩大矩形框,以此为范围对步骤S500得到的场景深度图进行截取。并在截取的深度图上按照步骤S005截取图像块的方式获取图像块,将280×280深度图图像块降采样到224×224。
步骤S740:以步骤S730得到的图像块为输入,输入图像块分类网络PatchCateNet预测模块,输出类别得分大于等于类别得分阈值Catethreshold的图像块,本实例中,类别得分阈值Catethreshold设为40%。
步骤S750:以步骤S740输出的图像块作为输入,输入步骤S019得到的图像块语义分割网络PatchSegNet进行推理。将语义分割结果上采样到设置的图像块大小,本实例中为280×280,得到图像块未被遮挡可抓取平面语义分割。
步骤S760:按照步骤S750输入的图像块在场景深度图中的位置将输出的语义分割结果还原到场景深度图中,不同图像块还原后得到的不同语义分割组成一组大小为场景深度图大小,数量为PatchSegNet输入图像块数量的语义分割,作为一张场景深度图的实例分割。
步骤S770:实例分割结果使用非极大值抑制更新每个PatchSegNet输入图像块的类别得分。
步骤S780:判断更新后的类别得分是否大于等于一个预设非极大值抑制后类别得分阈值NMSthreshold。本实例NMSthreshold设为40%,如果是,则保留这个实例分割,如果否,则舍弃这个实例分割。
步骤S790:根据步骤S780的保留结果得到最终的场景深度图实例分割。
本发明步骤S740使用的图像块分类网络PatchCateNet预测模块,输入为深度图图像块,输出类别得分大于等于预设类别得分阈值的图像块,其步骤如下:
步骤S741:将步骤S730得到的深度图图像块输入步骤S009得到的图像块分类网络PatchCateNet进行推理,得到每个图像块含有未被遮挡可抓取平面得分。
步骤S742:逐个判定图像块含有未被遮挡可抓取平面得分是否大于等于预设类别得分阈值Catethreshold(本实例中,Catethreshold=40%),如果是,则保留这个图像块,如果否,则舍弃这个图像块。
步骤S743:根据步骤S742的保留结果得到类别得分大于等于预设类别得分阈值的图像块。
本发明步骤S1000使用的点云遮挡判断模块,输入为场景中遮挡判断局部点云,可抓取平面模板和特征点,场景中待配准局部点云,输出为场景中齿轮抓取推荐,其步骤如下:
步骤S1001:将步骤S900得到的场景中待配准局部点云与步骤S200得到的可抓取平面模板进行配准,得到齿轮可抓取平面模板到待配准局部点云的变换矩阵,利用变换矩阵将步骤S200得到的可抓取平面模板与特征点变换到场景下。
步骤S1002:根据变换到场景的可抓取平面模板拟合可抓取平面,得到可抓取平面的平面方程参数,将步骤S800得到的场景中遮挡判断局部点云与步骤S1001中变换到场景下的特征点投影到拟合平面。
步骤S1003:判断前述投影到拟合平面的点在投影前是否在拟合平面附近(场景中的可抓取平面上的点)与平面下方的点,如果否,则进行步骤S1004,如果是,则舍弃这个点。
步骤S1004:判断步骤S1003剩余保留的点是否在拟合平面上特征点组成的多边形内,即位于可抓取平面上方的点,如果是,则进行步骤S1005,如果否,则舍弃这个点。
步骤S1005:记录步骤S1004输出的点的数量。
步骤S1006:根据步骤S1005记录的平面上方点数量对实例分割排序。
步骤S1007:根据步骤S1006的实例分割排序得到场景中齿轮抓取推荐。
本实例共实行30轮抓取测试,每轮测试开始由随机14-18个齿轮散乱堆叠,每次抓取推荐顺序最高的齿轮,共进行464次抓取识别,其中4次未识别到可抓取齿轮,1次由于遮挡部分太小判断错误,准确率98.92%,其中一个识别结果如图14所示,其中掩码上的数字1、2、3、4按抓取推荐顺序排列。
本专利不局限于上述最佳实施方式,任何人在本专利的启示下都可以得出其它各种形式的针对散乱堆叠状态且具有可抓取平面物体的识别、定位及抓取方法,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本专利的涵盖范围。
Claims (1)
1.一种针对散乱堆叠状态且具有可抓取平面物体的识别、定位及抓取方法,其特征在于:通过双目结构光相机的数据采集、基于滑动窗口的局部图像块截取及数据增强处理,获得训练及测试样本;以此样本为基础,搭建并训练三个卷积神经网络,其中包括一个用于识别每个局部图像块区域中是否含有未被遮挡的可抓取平面的图像块分类网络PatchCateNet,一个用于分割每一局部图像块区域中未被遮挡的可抓取平面的语义分割网络PatchSegNet及一个用于识别场景图像中全部待抓取物体的语义分割网络SceneSegNet;以此实现视觉场景中全部待抓取物体的识别,并为吸盘手爪位姿估计所涉及的三维点云配准操作提供可抓取区域匹配推荐;通过在三维点云环境中对可抓取平面是否被遮挡进行再判断,最终确定各待抓取物体的优先抓取顺序;
样本图像的采集和标注包括以下步骤:
步骤S001:将双目结构光相机固定安装在待抓取物体放置平面的正上方,通过双目结构光相机采集场景灰度图与深度图;
步骤S002:由步骤S001得到场景灰度图;
步骤S003:由步骤S001得到场景深度图;
步骤S004:在场景灰度图中,对场景中所有的待抓取物体进行语义分割标注以及对场景中未被遮挡的可抓取平面进行实例分割标注;
所述图像块分类网络PatchCateNet的训练过程包括以下步骤:
步骤S005:生成图像块分类网络PatchCateNet的数据集,其生成方式如下:
根据待抓取物体的可抓取平面在图像下的尺寸大小,设置一个固定大小的正方形滑动窗口,窗口大小为patch size,包含可抓取平面及其周边信息;滑动窗口的步长设置为patch stride;
PatchCateNet的数据集是在深度图上生成,先根据步骤S004的语义分割标注在深度图截出一个包含语义分割的无旋转的最小外接矩形区域,之后根据设定的滑动窗口大小和步长,从截出的深度图矩形区域的左上角开始,自左向右、自上而下在截出的深度图矩形区域上裁剪图像块,直至裁剪到右下角结束;其间每截取出一个图像块,就对该图像块进行如下分类判断:若该图像块与步骤S004的多个实例分割标注有交集,就对该图像块根据实例分割标注依次计算该图像块与每个实例分割的交集占各个实例分割面积的百分比Pi,i=1,2,...,n;n表示图像块中包含的实例分割数,选出最大的百分比Pmax=Max(P1,P2,...,Pn),将Pmax与预设的可抓取阈值Pthreshold进行比较,若Pmax≥Pthreshold,则将这个图像块的类别判定为正例,反之为负例;
步骤S006:在图像块分类网络PatchCateNet训练前采用离线数据增强方式,以获得足够且平衡的网络正、负例样本,其增强方式如下:
以场景深度图几何形心为基点,对图片进行旋转、裁剪,以此来直接扩充数据集,以获得更多的旋转后图像块所包含的信息;
步骤S007:搭建图像块分类网络PatchCateNet;
步骤S008:利用步骤S006生成的图像块分类网络PatchCateNet数据集对S007搭建的图像块分类网络PatchCateNet进行训练;
步骤S009:由步骤S008得到训练好的图像块分类网络PatchCateNet;
所述语义分割网络PatchSegNet的训练过程包括以下步骤:
步骤S015:生成图像块语义分割网络PatchSegNet数据集,生成方式如下:
依照步骤S005的方式获取深度图图像块,对图像块中类别标签为正例的图像块生成语义分割标注,标注为Pmax对应的实例分割标注在图像块中的部分,负例没有语义分割标注;
步骤S016:在图像块语义分割网络PatchSegNet训练前采用离线数据增强,方式如下:
依照步骤S006的方式对场景深度图进行旋转再裁剪,并依照步骤S015获取图像块与对应的语义分割标注;
步骤S017:搭建图像块语义分割网络PatchSegNet;
步骤S018:利用步骤S016生成的图像块语义分割网络PatchSegNet数据集对步骤S017搭建的图像块语义分割网络PatchSegNet进行训练;
步骤S019:由步骤S018得到训练好的图像块语义分割网络PatchSegNet;
所述语义分割网络SceneSegNet的训练过程包括以下步骤:
步骤S025:采用场景灰度图与场景中所有待抓取物体的语义分割标注生成场景语义分割网络SceneSegNet的数据集;
步骤S026:根据需要在场景语义分割网络SceneSegNet训练前对数据集进行离线数据增强;
步骤S027:搭建场景语义分割网络SceneSegNet;
步骤S028:利用步骤S026生成的场景语义分割网络SceneSegNet数据集对步骤S027搭建的场景语义分割网络SceneSegNet进行训练;
步骤S029:由步骤S028得到训练好的场景语义分割网络SceneSegNet;
对场景待抓取物体进行识别与定位,其步骤如下:
步骤S100:在场景中利用固定安装在待抓取物体放置平台正上方的双目结构光相机拍摄放置在平台上的单个待抓取物体,得到包含单个待抓取物体的场景点云;
步骤S200:将步骤S100得到的场景点云中多余的点云删除,保留待抓取物体可抓取平面的点云,以此建立一个在场景坐标系下的三维点云模板,在三维点云模板中逐个选取特征点,使顺序连接的特征点组成的多边形能够包围可抓取平面的外轮廓;其中,点云模板、特征点都是在场景坐标系下得到的;
步骤S300:在场景中利用固定安装在待抓取物体放置平台正上方的双目结构光相机拍摄放置在平台上处于散乱堆叠状态下的全部待抓取物体;
步骤S400:由步骤S300得到场景灰度图;
步骤S500:由步骤S300得到场景深度图;
步骤S600:由步骤S300得到场景三维点云;
步骤S700:步骤S400得到的场景灰度图与步骤S500得到的场景深度图作为输入,输入网络预测模块,使用前期训练得到的三个深度学习网络进行预测,输出最终的场景深度图实例分割;
步骤S800:在步骤S600得到的场景三维点云中,选取步骤S700得到的每一个实例分割形心为中心,大小为patch size的图像块作为每一个局部遮挡判断区域,每一个区域对应的场景点云是一个场景中遮挡判断局部点云;
步骤S900:在步骤S600得到的场景三维点云中,选取步骤S700得到的每一个实例分割对应的一个局部区域作为每一个局部待配准区域,每一个区域对应的场景点云是一个场景中待配准局部点云;
步骤S1000:以步骤S200得到的模板点云、特征点点云,步骤S800得到的场景中遮挡判断局部点云以及步骤S900得到的场景中待配准局部点云作为输入,输入点云遮挡判断模块,输出场景中待抓取物体的抓取推荐;
步骤S1100:抓取推荐优先级最高的待抓取物体,然后返回步骤S300;
步骤S700使用的所述网络预测模块中,输入为步骤S400得到的场景灰度图以及步骤S500得到的场景深度图,输出为最终的场景深度图实例分割,其具体步骤如下:
步骤S710:以步骤S400得到的场景灰度图为输入,输入场景语义分割网络SceneSegNet进行推理,得到场景中所有待抓取物体语义分割;
步骤S720:由步骤S710输出的场景中所有待抓取物体语义分割判断场景中是否有待抓取物体,如果有,进行步骤S730,如果没有,则本轮抓取结束;
步骤S730:根据步骤S710输出的场景中所有待抓取物体语义分割,以语义分割的无旋转的最小外接矩形框为基础,略微扩大矩形框,以此为范围对步骤S500得到的场景深度图进行截取;并在截取的深度图上获取图像块;
步骤S740:以步骤S730得到的图像块为输入,输入图像块分类网络PatchCateNet预测模块,输出类别得分大于等于预设类别得分阈值Catethreshold的图像块;
步骤S750:以步骤S740输出的图像块作为输入,输入图像块语义分割网络PatchSegNet进行推理;得到每个图像块未被遮挡可抓取平面语义分割;
步骤S760:按照步骤S750输入的图像块在场景深度图中的位置将输出的语义分割结果还原到场景深度图中,不同图像块还原后得到的不同语义分割组成一组大小为场景深度图大小,数量为PatchSegNet输入图像块数量的语义分割,作为一张场景深度图的实例分割;
步骤S770:实例分割结果使用非极大值抑制更新每个PatchSegNet输入图像块的类别得分;
步骤S780:判断更新后的类别得分是否大于等于一个预设非极大值抑制后类别得分阈值NMSthreshold,如果是,则保留这个实例分割,如果否,则舍弃这个实例分割;
步骤S790:根据步骤S780的保留结果得到最终的场景深度图实例分割;
步骤S740使用的图像块分类网络PatchCateNet预测模块,输入为深度图图像块,输出类别得分大于等于预设类别得分阈值图像块,其具体步骤如下:
步骤S741:将步骤S730得到的深度图图像块输入图像块分类网络PatchCateNet进行推理,得到每个图像块含有未被遮挡可抓取平面得分;
步骤S742:逐个判定图像块含有未被遮挡可抓取平面得分是否大于等于预设类别得分阈值Catethreshold,如果是,则保留这个图像块,如果否,则舍弃这个图像块;
步骤S743:根据步骤S742的保留结果得到类别得分大于等于预设类别得分阈值的图像块;
步骤S1000使用的所述点云遮挡判断模块,输入为场景中遮挡判断局部点云,可抓取平面模板和特征点,场景中待配准局部点云,输出为场景中待抓取物体抓取推荐,其具体步骤如下:
步骤S1001:将步骤S900得到的场景中待配准局部点云与步骤S200得到的可抓取平面模板进行配准,得到可抓取平面模板到待配准局部点云的变换矩阵,利用变换矩阵将步骤S200得到的可抓取平面模板与特征点变换到场景下;
步骤S1002:根据变换到场景的可抓取平面模板拟合可抓取平面,得到可抓取平面的平面方程参数,将步骤S800得到的场景中遮挡判断局部点云与步骤S1001中变换到场景下的特征点投影到拟合平面;
步骤S1003:判断前述投影到拟合平面的点在投影前是否在拟合平面附近,即场景中的可抓取平面上的点,与平面下方的点,如果否,则进行步骤S1004,如果是,则舍弃这个点;
步骤S1004:判断步骤S1003剩余保留的点是否在拟合平面上特征点组成的多边形内,即位于可抓取平面上方的点,如果是,则进行步骤S1005,如果否,则舍弃这个点;
步骤S1005:记录步骤S1004输出的点的数量;
步骤S1006:根据步骤S1005记录的平面上方点数量对实例分割排序;
步骤S1007:根据步骤S1006的实例分割排序得到场景中待抓取物体抓取推荐;
所述图像块分类网络PatchCateNet采用ResNet50;所述图像块语义分割网络PatchSegNet和场景语义分割网络SceneSegNet采用语义分割网络Unet。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111190937.6A CN113935368B (zh) | 2021-10-13 | 2021-10-13 | 针对散乱堆叠状态且具有可抓取平面物体的识别、定位及抓取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111190937.6A CN113935368B (zh) | 2021-10-13 | 2021-10-13 | 针对散乱堆叠状态且具有可抓取平面物体的识别、定位及抓取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113935368A CN113935368A (zh) | 2022-01-14 |
CN113935368B true CN113935368B (zh) | 2024-06-07 |
Family
ID=79279045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111190937.6A Active CN113935368B (zh) | 2021-10-13 | 2021-10-13 | 针对散乱堆叠状态且具有可抓取平面物体的识别、定位及抓取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113935368B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114888790B (zh) * | 2022-04-18 | 2023-10-24 | 金陵科技学院 | 基于散料三维特征分布的空间坐标寻位方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108171748A (zh) * | 2018-01-23 | 2018-06-15 | 哈工大机器人(合肥)国际创新研究院 | 一种面向机器人智能抓取应用的视觉识别与定位方法 |
WO2019153245A1 (en) * | 2018-02-09 | 2019-08-15 | Baidu.Com Times Technology (Beijing) Co., Ltd. | Systems and methods for deep localization and segmentation with 3d semantic map |
CN110322512A (zh) * | 2019-06-28 | 2019-10-11 | 中国科学院自动化研究所 | 结合小样本实例分割和三维匹配的物***姿估计方法 |
CN111209915A (zh) * | 2019-12-25 | 2020-05-29 | 上海航天控制技术研究所 | 一种基于深度学习的三维图像同步识别和分割方法 |
CN111563442A (zh) * | 2020-04-29 | 2020-08-21 | 上海交通大学 | 基于激光雷达的点云和相机图像数据融合的slam方法及*** |
CN113052109A (zh) * | 2021-04-01 | 2021-06-29 | 西安建筑科技大学 | 一种3d目标检测***及其3d目标检测方法 |
-
2021
- 2021-10-13 CN CN202111190937.6A patent/CN113935368B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108171748A (zh) * | 2018-01-23 | 2018-06-15 | 哈工大机器人(合肥)国际创新研究院 | 一种面向机器人智能抓取应用的视觉识别与定位方法 |
WO2019153245A1 (en) * | 2018-02-09 | 2019-08-15 | Baidu.Com Times Technology (Beijing) Co., Ltd. | Systems and methods for deep localization and segmentation with 3d semantic map |
CN110322512A (zh) * | 2019-06-28 | 2019-10-11 | 中国科学院自动化研究所 | 结合小样本实例分割和三维匹配的物***姿估计方法 |
CN111209915A (zh) * | 2019-12-25 | 2020-05-29 | 上海航天控制技术研究所 | 一种基于深度学习的三维图像同步识别和分割方法 |
CN111563442A (zh) * | 2020-04-29 | 2020-08-21 | 上海交通大学 | 基于激光雷达的点云和相机图像数据融合的slam方法及*** |
CN113052109A (zh) * | 2021-04-01 | 2021-06-29 | 西安建筑科技大学 | 一种3d目标检测***及其3d目标检测方法 |
Non-Patent Citations (1)
Title |
---|
基于深度学习的物体点云六维位姿估计方法;李少飞等;计算机工程;20210831;第47卷(第8期);第217-223页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113935368A (zh) | 2022-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11144787B2 (en) | Object location method, device and storage medium based on image segmentation | |
JP6681729B2 (ja) | オブジェクトの3d姿勢およびオブジェクトのランドマーク点の3dロケーションを求める方法、およびオブジェクトの3d姿勢およびオブジェクトのランドマークの3dロケーションを求めるシステム | |
CN111080693A (zh) | 一种基于YOLOv3的机器人自主分类抓取方法 | |
CN112270249A (zh) | 一种融合rgb-d视觉特征的目标位姿估计方法 | |
CN111027547A (zh) | 一种针对二维图像中的多尺度多形态目标的自动检测方法 | |
CN111553949B (zh) | 基于单帧rgb-d图像深度学习对不规则工件的定位抓取方法 | |
CN111553200A (zh) | 一种图像检测识别方法及装置 | |
JP6912215B2 (ja) | 対象物の姿勢等を検出する検出方法、検出プログラム | |
CN112164115B (zh) | 物***姿识别的方法、装置及计算机存储介质 | |
CN111178170B (zh) | 一种手势识别方法和一种电子设备 | |
CN113313703A (zh) | 基于深度学习图像识别的无人机输电线巡检方法 | |
JP2021163503A (ja) | 2次元カメラによる3次元の姿勢推定 | |
CN112861785B (zh) | 一种基于实例分割和图像修复的带遮挡行人重识别方法 | |
CN113935368B (zh) | 针对散乱堆叠状态且具有可抓取平面物体的识别、定位及抓取方法 | |
JP2022047508A (ja) | 複数の透明対象物の三次元検出 | |
CN114120067A (zh) | 一种物体识别方法、装置、设备及介质 | |
CN109508707B (zh) | 基于单目视觉的机器人稳定抓取物体的抓取点获取方法 | |
CN115082498A (zh) | 一种机器人抓取位姿估计方法、装置、设备及存储介质 | |
CN111127556A (zh) | 基于3d视觉的目标物体识别和位姿估算方法以及装置 | |
CN113762159A (zh) | 一种基于有向箭头模型的目标抓取检测方法及*** | |
CN113538576A (zh) | 基于双臂机器人的抓取方法、装置及双臂机器人 | |
CN117541652A (zh) | 一种基于深度lk光流法与d-prosac采样策略的动态slam方法 | |
JP2021163502A (ja) | 複数の2次元カメラによる3次元の姿勢推定 | |
CN113496524A (zh) | 通过深度学习和矢量场估计的特征检测 | |
CN114723775A (zh) | 一种基于小样本学习的机器人抓取***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |