图像点云混合识别流程

本章主要介绍图像点云混合识别流程的算法图搭建思路。

流程概述

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

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

  1. 输入点云和图像信息。

  2. 对图像信息进行预处理,进行ROI等操作。

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

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

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

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

流程详解

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

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

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

alt

图像处理流程设计

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

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

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

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

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

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

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

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

  • 通过检测结果拆分节点得到掩膜列表,然后通过掩膜列表提取点云节点获取对应点云列表。

    此方法面对一次2D检测结果很多的情况,因为有大量数据传输,可能会出现前后端刷新缓慢的情况。

点云处理流程设计

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

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

结果果后处理流程设计

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

参数调优

根据检测结果提取点云

  • 原理:通过检测结果中的polygon经过处理得到对应区域的点云。

  • 参数:

    • 形状类型:

      • polygon:代表按照检测结果的polygon取出对应区域的点云。

      • meanAreaRect:代表按照检测结果的polygon的最小包围矩形取出对应区域的点云。

      • minMaxPoint:代表按照检测结果polygon中的最小最大像素点得到一个矩形并取出此矩形对应 区域点云。

      • centerCircle:按照检测结果polygon中的中心点处以(polygon最小包围框短边* 圆形半径参数 )为半径得到一个圆形并取出此圆形对应区域点云。

    • 包围框外扩像素:只在形状类型为meanAreaRect时有效,可将形状外扩一定大小进 行点云提取。

    • 圆半径:只在形状类型为centerCircle时有效,可据此确定点云中心圆形区域半径来提取点云。

    • 开启反向:只在形状类型不为centerCircle时有效,若打开则得到的是去掉检测结果对应点云后的点云。

    • 只取掩膜边缘:只在形状类型为Polygon时有效,可以提取掩膜边缘对应的点云。

    • 边缘粗细:只在形状类型为Polygon时有效,越大,提取掩膜边缘对应的点云越多。

    • 包围框Y方向外扩像素:只在形状类型为minMaxPoint时有效,将检测框Y方向外扩指定大小来提取点云。

    • 包围框X方向外扩像素:只在形状类型为minMaxPoint时有效,将检测框X方向外扩指定大小来提取点云。

检测结果拆分

  • 原理:从检测结果获取中心点列表,生成掩膜列表,并按照参数中的检测框类型生成检测框。

  • 参数:

    • 检测框类型:

      • 最小最大点:代表按照检测结果polygon中的最小最大像素点得到矩形检测框。

      • 最小包围框:代表按照检测结果的polygon的最小包围矩形得到检测框。

掩膜列表提取点云

  • 原理:通过掩膜列表提取点云。

  • 参数:

    • 形状类型:分minAreaRect、polygon、minMaxPoint、centerCirclr四种,若值为minMaxPoint,则依据polygon的最小最大点取对应点云,消耗的时间会少一些;若值为minAreaRect,则依据最小包围框取点云,这两种方法均可向外扩充padding像素大小;若值为polygon,则直接取对应区域的点;若值为centerCircle, 则通过检测结果中心点位置取指定半径的圆形区域点云。

    • 开启反向:为True时保留非掩膜区域的点云,可在部分场景中用于去除部分点云,为False时保留掩膜区域内点云。