01-物体检测概述

物体检测定位实际上是一个3D识别与定位问题。在实际的算法开发与应用中,一般会先通过图像数据来识别出物体,然后再结合点云数据实现物体的3D定位。本文聚焦于“基于图像数据的物体识别”,主要使用经典的图像处理算法识别指定物体。

物体检测定位从不同的角度,可以有不同的思路:

  • 从几何形状信息的角度看,物体识别问题就变成了边缘提取,矩形检测等问题;
  • 从图像纹理信息的角度看,物体识别问题就变成了模板匹配问题。

问题描述

Bin Picking 是机器人操作(manipulation)中的一类经典问题,也是各种工业流程中常见的一类工序,即使用机械臂把箱子中无序摆放的物体取出来。这是对人类来说非常简单的一件事,但对于机器人自动化却是极具挑战性的问题

箱子里的物体之间,物体和箱子之间存在大量的遮挡,这些遮挡一方面妨碍了对物体的感知,另一方面让机器人运动的碰撞检测变得很复杂。 因为其难度高,潜在应用场景多,Bin Picking长期以来有机器人操作中的“圣杯问题”之称

在日常生活中,相当比例的物体是盒子形状。因此,盒装/盒状物体的识别,就显得意义重大。下图是bin picking应用中的一个场景,其核心问题之一便是盒状物体识别与定位。

从几何形状的角度看,直线检测,应该是盒子定位问题中的基础问题。

接下来我们从直线检测开始,最终实现盒子的识别与定位。

直线检测

在这里,要明确一点:直线是物体边缘的一种。 在图像中,边缘处,通常是灰度值发生突变的地方,

盒子检测

  1. 灰度图转换
  2. 提取ROI
  3. 高斯模糊
  4. Canny边缘检测
  5. 轮廓检测
  6. Hough直线检测,LSD/FLD直线检测,拟合
  7. 查找轮廓
  8. 绘制矩形

备选手段:

  • Sobel、Laplacian,、Canny算子
  • Hough直线、LSD直线
  • 矩形检测