专栏名称: 新机器视觉
最前沿的机器视觉与计算机视觉技术
目录
相关文章推荐
大皖新闻  ·  元宵节!安徽一市公共自行车停运 ·  3 天前  
安徽省发展改革委  ·  安徽省新能源汽车产业集群建设企业巡展——【2 ... ·  3 天前  
安徽省发展改革委  ·  安徽省新能源汽车产业集群建设企业巡展——【2 ... ·  3 天前  
51好读  ›  专栏  ›  新机器视觉

工业机器人抓取时怎么定位的?用什么传感器来检测?

新机器视觉  · 公众号  ·  · 2024-09-08 21:01

主要观点总结

文章从机器视觉的角度,对相机标定、平面物体检测、有纹理物体、无纹理物体、深度学习、与任务/运动规划结合等方面进行了深度解析。文章介绍了机器人视觉与计算机视觉的不同,强调了机器视觉的目的是给机器人提供操作物体的信息。同时还介绍了一些相关领域的研究热点和现有技术的局限。

关键观点总结

关键观点1: 机器人视觉与计算机视觉的区别

机器人领域的视觉(Machine Vision)跟计算机领域(Computer Vision)的视觉有所不同,机器视觉的目的是给机器人提供操作物体的信息。

关键观点2: 物体识别在机器视觉中的重要性

物体识别是机器视觉的重要部分,涉及到在图像中检测到物体类型等,与CV的研究有很大一部分交叉。

关键观点3: 相机标定的方法和重要性

相机标定是机器视觉中的一项基础技术,目的是计算物体在相机坐标系下的位姿。包括内参标定和外参标定,对于机器人操作物体至关重要。

关键观点4: 平面物体检测的方法和挑战

平面物体检测是工业流水线上最常见的场景,要求快速、精确、稳定。一般采用边缘提取加边缘匹配或形状匹配的方法。

关键观点5: 有纹理物体的位姿估计

对于有纹理的物体,可以利用SIFT等局部特征点进行位姿估计。SIFT特征点具有尺度、旋转、仿射等不变性,可以用于物体识别和位姿估计。

关键观点6: 无纹理物体的位姿估计

无纹理物体的位姿估计采用模板匹配的方法,利用彩色图像的图像梯度和深度图像的表面法向作为特征进行匹配。还可以使用深度学习进行物体识别,但位姿估计仍采用传统算法。

关键观点7: 深度学习在机器视觉中的应用

深度学习在计算机视觉领域取得了很好的效果,可以应用于机器人视觉中的物体识别。但是,在位姿估计方面,直接应用深度学习的工作并不多。

关键观点8: 机器视觉与任务/运动规划的结合

机器视觉需要与机器人的任务和运动规划相结合,以实现更智能的机器人操作。例如,在取物任务中,机器人需要通过视觉确定物体的位置,并规划如何移动以避开障碍物。


正文


从机器视觉的角度,由简入繁从相机标定,平面物体检测、有纹理物体、无纹理物体、深度学习、与任务/运动规划结合等6个方面深度解析文章的标题。


首先,我们要了解,机器人领域的视觉(Machine Vision)跟计算机领域(Computer Vision)的视觉有一些不同:机器视觉的目的是 给机器人提供操作物体的信息 。所以,机器视觉的研究大概有这几块:

1. 物体识别 (Object Recognition):在图像中检测到物体类型等,这跟 CV 的研究有很大一部分交叉;
2. 位姿估计 (Pose Estimation):计算出物体在摄像机坐标系下的位置和姿态,对于机器人而言,需要抓取东西,不仅要知道这是什么,也需要知道它具体在哪里;
3. 相机标定 (Camera Calibration):因为上面做的只是计算了物体在相机坐标系下的坐标,我们还需要确定相机跟机器人的相对位置和姿态,这样才可以将物体位姿转换到机器人位姿。
当然,我这里主要是在物体抓取领域的机器视觉;SLAM 等其他领域的就先不讲了。
由于视觉是机器人感知的一块很重要内容,所以研究也非常多了,我就我了解的一些,按照由简入繁的顺序介绍吧:
一. 相机标定

这其实属于比较成熟的领域。由于我们所有物体识别都只是计算物体在相机坐标系下的位姿,但是,机器人操作物体需要知道物体在机器人坐标系下的位姿。所以,我们先需要对相机的位姿进行标定。

内参标定就不说了,参照张正友的论文,或者各种标定工具箱;

外参标定的话,根据相机安装位置,有两种方式:



  • Eye to Hand:相机与机器人极坐标系固连,不随机械臂运动而运动

  • Eye in Hand:相机固连在机械臂上,随机械臂运动而运动


两种方式的求解思路都类似,首先是眼在手外(Eye to Hand)


只需在机械臂末端固定一个棋盘格,在相机视野内运动几个姿态。由于相机可以计算出棋盘格相对于相机坐标系的位姿A_i 、机器人运动学正解可以计算出机器人底座到末端抓手之间的位姿变化E_i 、而末端爪手与棋盘格的位姿相对固定不变。

这样,我们就可以得到一个坐标系环 CX=XD

这种结构的求解有很多方法,我这边给出一个 参考文献:

Shiu, Yiu Cheung, and Shaheen Ahmad. "Calibration of wrist-mounted robotic sensors by solving homogeneous transform equations of the form AX= XB."ieee Transactions on Robotics and Automation 5.1 (1989): 16-29.
而对于眼在手上(Eye in Hand)的情况,也类似,在地上随便放一个棋盘格(与机器人基座固连),然后让机械臂带着相机走几个位姿,然后也可以形成一个AX=XB 的坐标环。



二. 平面物体检测

这是目前工业流水线上最常见的场景。目前来看,这一领域对视觉的要求是:快速、精确、稳定。所以,一般是采用最简单的 边缘提取+边缘匹配/形状匹配的方法 ;而且,为了提高稳定性、一般会通过主要打光源、采用反差大的背景等手段,减少系统变量。


目前,很多智能相机(如 cognex)都直接内嵌了这些功能;而且,物体一般都是放置在一个平面上,相机只需计算物体的(x,y,θ)T 三自由度位姿即可。

另外,这种应用场景一般都是用于处理一种特定工件,相当于只有位姿估计,而没有物体识别。
当然,工业上追求稳定性无可厚非,但是随着生产自动化的要求越来越高,以及服务类机器人的兴起。对更复杂物体的完整位姿(x,y,z,rx,ry,rz)T 估计也就成了机器视觉的研究热点。



三.有纹理的物体

机器人视觉领域是最早开始研究有纹理的物体的,如饮料瓶、零食盒等表面带有丰富纹理的都属于这一类。

当然,这些物体也还是可以用类似边缘提取+模板匹配的方法。但是,实际机器人操作过程中,环境会 更加复杂 :光照条件不确定(光照)、物体距离相机距离不确定(尺度)、相机看物体的角度不确定(旋转、仿射)、甚至是被其他物体遮挡(遮挡)。


幸好有一位叫做 Lowe 的大神,提出了一个叫做 SIFT (Scale-invariant feature transform)的 超强局部特征点

Lowe, David G. "Distinctive image features from scale-invariant keypoints."International journal of computer vision 60.2 (2004): 91-110.

具体原理可以看上面这篇被引用 4万+ 的论文或各种博客,简单地说,这个方法提取的特征点只跟物体表面的某部分纹理有关,与光照变化、尺度变化、仿射变换、整个物体无关。

因此,利用 SIFT 特征点,可以直接在相机图像中寻找到与数据库中相同的特征点,这样,就可以确定相机中的物体是什么东西 (物体识别)


对于不会变形的物体,特征点在物体坐标系下的位置是固定的。所以,我们在获取若干点对之后,就可以直接求解出相机中物体与数据库中物体之间的单应性矩阵。

如果我们用深度相机(如Kinect)或者双目视觉方法,确定出每个特征点的 3D 位置。那么,直接求解这个 PnP 问题,就可以计算出物体在当前相机坐标系下的位姿。


↑ 这里就放一个实验室之前毕业师兄的成果


当然,实际操作过程中还是有很多细节工作才可以让它真正可用的,如:先利用点云分割和欧氏距离去除背景的影响、选用特征比较稳定的物体(有时候 SIFT 也会变化)、利用贝叶斯方法加速匹配等。

而且,除了 SIFT 之外,后来又出了一大堆类似的特征点,如 SURF、ORB 等。

四. 无纹理的物体


好了,有问题的物体容易解决,那么生活中或者工业里还有很多物体是没有纹理的:


我们最容易想到的就是:是否有一种特征点,可以描述物体形状,同时具有跟 SIFT 相似的不变性?

不幸的是,据我了解,目前没有这种特征点。

所以,之前一大类方法还是采用基于 模板匹配 的办法,但是,对匹配的特征进行了专门选择(不只是边缘等简单特征)。

这里,我介绍 一个我们实验室之前使用和重现过的算法 LineMod:

Hinterstoisser, Stefan, et al. "Multimodal templates for real-time detection of texture-less objects in heavily cluttered scenes." Computer Vision (ICCV), 2011 IEEE International Conference on. IEEE, 2011.


简单而言,这篇论文同时利用了 彩色图像的图像梯度 深度图像的表面法向作为 特征,与数据库中的模板进行匹配。

由于数据库中的模板是从一个物体的多个视角拍摄后生成的,所以这样匹配得到的物体位姿只能算是初步估计,并不精确。

但是,只要有了这个初步估计的物体位姿,我们就可以直接采用 ICP 算法 (Iterative closest point) 匹配物体模型与 3D 点云,从而得到物体在相机坐标系下的精确位姿。


当然,这个算法在具体实施过程中还是有很多细节的:如何建立模板、颜色梯度的表示等。另外,这种方法无法应对物体被遮挡的情况。(当然,通过降低匹配阈值,可以应对部分遮挡,但是会造成误识别)。

针对部分遮挡的情况,我们实验室的张博士去年对 LineMod 进行了改进,但由于论文尚未发表,所以就先不过多涉及了。

五.深度学习

由于深度学习在计算机视觉领域得到了非常好的效果,我们做机器人的自然也会尝试把 DL 用到机器人的物体识别中。

首先,对于物体识别,这个就可以照搬 DL 的研究成果了,各种 CNN 拿过来用就好了。在 2016 年的『亚马逊抓取大赛』中,很多队伍都采用了 DL 作为物体识别算法。







请到「今天看啥」查看全文