图像点云混合识别流程

主要流程概述

此流程主要适用于精度要求高,直接2D识别结果进行抓取达不到精度要求,或者目标距离近,直接点云难以区分或匹配需要2d结果将点云做区分,且目标形变量小易于匹配。

该流程可以被简单表述为以下步骤:

  • 输入点云和图像信息

  • 对图像信息进行预处理,进行ROI等操作

  • 基于图像获取物体的边界框等二维识别信息

  • 通过2维识别结果提取点云,并对点云进行过滤筛选

  • 粗匹配 + 精匹配 或者 精匹配,基于一个目标的点云模型在输入点云中进行匹配,得到匹配的点云结果

  • 进行后处理,基于匹配点云生成位姿,抓取点

流程设计参考

(1) 设计思路

针对此流程,有两种思路:

  • 可以使用2d识别结果提取的点云中心位姿得到粗略的中心位姿,再连接精匹配节点

image23
  • 可以使用2d识别结果提取点云,得到单个的点云,再进行粗匹配和精匹配

image24

(2) 图像处理流程设计

图像处理流程主要是对图像进行预处理和识别,包括图像ROI,图像检测、分割、匹配等识别过程。

图像ROI主要是通过3维ROI转2维ROI节点得到2维ROI,然后用图像ROI(保持形状)节点对图像做ROI操作,这里使用保持形状的ROI主要是为了保证点云跟图像对齐,为2维识别结果提取点云做准备。

image25

图像预处理包括图像二值化、亮度对比度调整、计算边缘等节点,这些节点的作用主要是将特征进行进一步提取,在不同场景下达到更好的效果。

图像识别:

同前文纯图像识别流程的目标检测、实例分割、形状模板匹配相关内容

(3) 2D结果提取点云流程设计

由于在检测结果提取点云时,需要图像和点云对齐,所以要求图像ROI使用保持形状的ROI,同时点云需要与图像形状对齐,所以输入未做ROI的点云或用点云ROI(保持形状)节点对点云做ROI

图像识别结果提取点云的部分有两种方法可选:

直接通过检测结果提取点云节点得到点云

通过检测结果拆分节点得到掩膜列表,然后通过掩膜列表提取点云节点获取对应点云列表,此方法面对一次2D检测结果很多的情况,因为有大量数据传输,可能会出现前后端刷新缓慢的情况

(4) 点云处理流程设计

具体的精匹配和粗匹配流程参见前文纯点云匹配流程粗匹配,精匹配流程设计。

需要注意的是,为了保证点云的处理速度,避免多余点的影响,需要对提取后的点云进行ROI,此处的ROI是不用保持形状的,保持形状反而会导致点云操作变慢甚至卡死。

(5) 结果后处理流程设计

参见前文纯图像识别流程或纯点云匹配流程中后处理流程设计

参数调优

此流程参数调优可参考以上两个流程的参数调优,在此只对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时有效,表示将包围框整体外扩一圈去取外扩后区域的点云