图像点云混合识别流程
主要流程概述
此流程主要适用于精度要求高,直接2D识别结果进行抓取达不到精度要求,或者目标距离近,直接点云难以区分或匹配需要2d结果将点云做区分,且目标形变量小易于匹配。
该流程可以被简单表述为以下步骤:
-
输入点云和图像信息
-
对图像信息进行预处理,进行ROI等操作
-
基于图像获取物体的边界框等二维识别信息
-
通过2维识别结果提取点云,并对点云进行过滤筛选
-
粗匹配 + 精匹配 或者 精匹配,基于一个目标的点云模型在输入点云中进行匹配,得到匹配的点云结果
-
进行后处理,基于匹配点云生成位姿,抓取点
流程设计参考
(2) 图像处理流程设计
图像处理流程主要是对图像进行预处理和识别,包括图像ROI,图像检测、分割、匹配等识别过程。
图像ROI主要是通过3维ROI转2维ROI节点得到2维ROI,然后用图像ROI(保持形状)节点对图像做ROI操作,这里使用保持形状的ROI主要是为了保证点云跟图像对齐,为2维识别结果提取点云做准备。

图像预处理包括图像二值化、亮度对比度调整、计算边缘等节点,这些节点的作用主要是将特征进行进一步提取,在不同场景下达到更好的效果。
图像识别:
同前文纯图像识别流程的目标检测、实例分割、形状模板匹配相关内容
(3) 2D结果提取点云流程设计
由于在检测结果提取点云时,需要图像和点云对齐,所以要求图像ROI使用保持形状的ROI,同时点云需要与图像形状对齐,所以输入未做ROI的点云或用点云ROI(保持形状)节点对点云做ROI
图像识别结果提取点云的部分有两种方法可选:
直接通过检测结果提取点云节点得到点云
通过检测结果拆分节点得到掩膜列表,然后通过掩膜列表提取点云节点获取对应点云列表,此方法面对一次2D检测结果很多的情况,因为有大量数据传输,可能会出现前后端刷新缓慢的情况
参数调优
此流程参数调优可参考以上两个流程的参数调优,在此只对2D结果提取点云的几个节点做说明,其他节点不多赘述
1. 根据检测结果提取点云
-
原理:
-
通过检测结果中的polygon经过处理得到对应区域的点云
-
-
参数:
-
形状类型:
-
polygon:代表按照检测结果的polygon取出对应区域的点云
-
meanAreaRect:代表按照检测结果的polygon的最小包围矩形取出对应区域的点云
-
minMaxPoint:代表按照检测结果polygon中的最小最大像素点得到一个矩形并取出此矩形对应区域点云
-
centerCircle:按照检测结果polygon中的中心点处以(polygon最小包围框短边* 圆形半径参数)为半径得到一个圆形并取出此圆形对应区域点云
-
-
包围框外扩像素:只在形状类型为meanAreaRect、minMaxPoint时有效,可将形状外扩一定大小进行点云提取
-
圆半径:只在形状类型为centerCircle时有效,可据此确定点云中心圆形区域半径来提取点云
-
2. 检测结果拆分
-
原理:
-
从检测结果获取中心点列表,生成掩膜列表,并按照参数中的检测框类型生成检测框
-
-
参数:
-
检测框类型:
-
最小最大点:代表按照检测结果polygon中的最小最大像素点得到矩形检测框
-
最小包围框:代表按照检测结果的polygon的最小包围矩形得到检测框
-
-
3. 掩膜列表提取点云
-
原理:
-
通过掩膜列表提取点云
-
-
参数:
-
开启反向:为True时保留非掩膜区域的点云,可在部分场景中用于去除部分点云,为False时保留掩膜区域内点云
-
只取掩膜边缘:是否只保留掩膜边缘处的点云True时有效,可以指定边缘的粗细
-
形状类型:分minAreaRect、polygon、minMaxPoint三种,若值为minMaxPoint,则依据polygon的最小最大点取对应点云,消耗的时间会少一些,若值为minAreaRect,则依据最小包围框取点云,这两种方法均可向外扩充padding像素大小,若值为polygon,则直接取对应区域的点,且可以选择只提取掩膜边缘的点云
-
包围框外扩像素:只在形状类型为minAreaRect和minMaxPoint时有效,表示将包围框整体外扩一圈去取外扩后区域的点云
-