上一节

关于 Human Vision, Computer Vision 中的 Edge detection 和 Hough Transform 的原理和介绍,以及 Deep Learning 的基础介绍这里就省略了。只是需要注意一下 Candy Edge Detector 需要先给图片去噪。

这一节就从视觉伺服开始讲起:

视觉伺服 Visual Servo Control(Visual Servoing)

视觉伺服控制是指使用计算机视觉数据来控制机器人的运动。比如一个简单的任务,让机器手臂跟随目标移动。

机器人末端执行器(手)和摄像机有两种基本配置:

  • eye-in-hand 或端点闭环控制(endpoint closed-loop),将摄像机连接到移动的手并观察目标的相对位置。
  • eye-to-hand 或端点开环控制(endpoint opend-loop),将摄像机固定在世界坐标系上,并观察目标和手的运动。

视觉伺服控制技术大致分为以下几种类型:

  • 基于图像(Image-based)(IBVS)
  • 基于位置/姿势(Position-based / Pose-based) (PBVS)
  • 混合方式(Hybrid approach)

控制律基于图像平面上当前特征与所需特征之间的误差,并且不涉及目标姿态的任何估计。 特征可以是视觉特征,区域的线或矩的坐标。 IBVS在旋转非常大的运动时遇到困难,这被称为摄影机后退。

所有基于视觉的控制方案的目的都是使误差最小化,该误差通常由下式定义。

[公式]

视觉伺服方案的主要区别在于 [公式] 的设计方式。 基于图像的视觉伺服控制(IBVS),其中s包含一组可立即在图像数据中得到的特征。 而基于位置的视觉伺服控制(PBVS),其中s包含一组3-D参数,必须从图像测量中估计这些参数。

一旦确定 [公式] 后,控制方案的设计可能会非常简单。 也许最直接的方法是设计速度控制器。为此,我们需要 [公式] 的时间变化与相机速度之间的关系。 设相机的空间速度用 [公式] 表示,其中 [公式] 是相机坐标系原点的瞬时线速度,而 [公式] 是相机坐标系的瞬时角速度。

[公式]  [公式] 之间的关系由下式给出:

[公式]

 [公式] 视为机器人控制器的输入,并且,如果我们想尝试确保以指数方式解耦减小错误( [公式] ),有:

[公式]

如果矩阵 [公式]不是方阵,那么 [公式] 不存在。如果矩阵 [公式] 的行数大于列数,那么 [公式]可能没有解;如果矩阵 [公式] 的行数小于列数,那么它可能有很多解。可用摩尔-彭罗斯伪逆(Moore-Penrose pseudoinverse) 求解,代入[公式] ,有:

[公式]

在实际的视觉伺服系统中,实际上不可能得到完美的 [公式]  [公式] 。 因此,必须实现这两个矩阵之一的近似或估计。实际应用中的控制律:

[公式]

[公式] 即 图像雅可比,后面将介绍如何计算。

2D 透视投影 Perspective Projection in 2D

即小孔成像。有: [公式]

即: [公式]

3D 透视投影 Perspective Projection in 3D

图中小孔在XYZ坐标轴原点,绿色的成像是在虚拟的镜像(关于原点对称,成像应该在原点的左侧),有:

[公式]

即: [公式]

立体视觉 Stereo Vision

立体视觉基于视差原理并利用成像设备从不同的位置获取被测物体的左右两幅图像,然后根据三角测量原理计算空间点在二维图像的位置偏差,最后再利用位置偏差进行三维重建来获取被测物体的三维几何信息。