01-物体检测概述¶
物体检测定位实际上是一个3D识别与定位问题。在实际的算法开发与应用中,一般会先通过图像数据来识别出物体,然后再结合点云数据实现物体的3D定位。本文聚焦于“基于图像数据的物体识别”,主要使用经典的图像处理算法识别指定物体。
物体检测定位从不同的角度,可以有不同的思路:
- 从几何形状信息的角度看,物体识别问题就变成了边缘提取,矩形检测等问题;
- 从图像纹理信息的角度看,物体识别问题就变成了模板匹配问题。
问题描述¶
Bin Picking 是机器人操作(manipulation)中的一类经典问题,也是各种工业流程中常见的一类工序,即使用机械臂把箱子中无序摆放的物体取出来。这是对人类来说非常简单的一件事,但对于机器人自动化却是极具挑战性的问题。
箱子里的物体之间,物体和箱子之间存在大量的遮挡,这些遮挡一方面妨碍了对物体的感知,另一方面让机器人运动的碰撞检测变得很复杂。 因为其难度高,潜在应用场景多,Bin Picking长期以来有机器人操作中的“圣杯问题”之称。
在日常生活中,相当比例的物体是盒子形状。因此,盒装/盒状物体的识别,就显得意义重大。下图是bin picking应用中的一个场景,其核心问题之一便是盒状物体识别与定位。
从几何形状的角度看,直线检测,应该是盒子定位问题中的基础问题。
接下来我们从直线检测开始,最终实现盒子的识别与定位。
直线检测¶
在这里,要明确一点:直线是物体边缘的一种。 在图像中,边缘处,通常是灰度值发生突变的地方,
盒子检测¶
- 灰度图转换
- 提取ROI
- 高斯模糊
- Canny边缘检测
- 轮廓检测
- Hough直线检测,LSD/FLD直线检测,拟合
- 查找轮廓
- 绘制矩形
备选手段:
- Sobel、Laplacian,、Canny算子
- Hough直线、LSD直线
- 矩形检测