Three-Dimensional Location Estimation of Circular Features for Machine Vision学习

摘要

最近在学习注视点检测的相关知识,想要解决如何在拥有单目的眼部图像的条件下较为准确的预测出注视的方向。查阅资料时发现了这篇Three-Dimensional Location Estimation of Circular Features for Machine Vision论文,该论文发表于1992年,由于非数学专业阅读十分困难,因此做笔记记录文章的学习心得。

第一章:问题介绍

从二维图像坐标中提取三维信息是机器视觉和计算机视觉中的一个基本问题。 我们知道一般想要定位一个物体的位置我们至少需要对比一点在两个相机中的坐标,也就是使用双目相机进行定位。然而如何使用单目相机进行定位呢?前人想到使用确定形状圆来辅助定位。选择圆来进行定位的原因如下:

1:许多制造对象具有圆形孔或圆形表面轮廓。

2:从数学角度来看,圆具有以下属性:它在任何任意方向上的透视投影始终是一个精确的椭圆,并且由于其相对于中心的对称性,它可以用三个参数定义。

3:已经证明圆具有较高的图像定位精度。

4.可以使用完整的边界或投影的圆形特征的弧线进行三维定位估计,而无需知道确切的点对应关系。

这里最关键的特性为2,4两点,也就是圆形的透视投影特质。注意这里我们要区分两个概念:正交投影和透视投影。正交投影可以理解是平行于光轴进行投影,平行线在投影后仍然保持平行且物体的尺寸不会因为与观察者的距离变化而改变。透视投影模仿了人眼看到的世界,即远处的物体看起来比近处相同大小的物体小,平行线在无限远处相交于一点,称为消失点。

 

 本文提出了一种完整的方法,在已知相机焦距的情况下根据单目成像计算出圆在空间中的中心点位置以及法向量,这真的就是一听感觉很合理但又感觉很复杂的东西,总之相当的nb!!

第二章:算法条件假设

首先我们对该问题进行建模。该问题可以分为两部分:1)确定圆形的法线向量。2)确定圆形的位置。该问题建模如下:给定基点(给定的投影平面的中心O),顶点(相机的镜头中心O')确定底面为投影显示的椭圆,顶点为顶点的圆锥。

 

可以看到2D平面就可以理解成摄像头的成像传感器,椭圆为圆形呈现的像,上面的点O‘为摄像头的中心。因为是投影,所以一定有一个平面与该圆柱相截,得到的截面为圆(红色)。 如果我们假设O’的坐标为\left ( \alpha ,\beta ,\gamma \right ),底面椭圆的表达式为

那么相对于以O点为原点的图像坐标系,圆锥的飙到式为

 

其中系数为

 

 具体到图中的例子,α=β=0,γ=-e是镜头的有效焦距,这里的有效焦距通常需要我们进行标定,这里先不进行详细的了解。论文中有中间推到的过程,不需要详细理解,有些人会有疑问,为什么前面用的椭圆方程为F(x,y),后面改为F(x,y,t),这里的t是一个辅助变量,可以看作一个角度变量。类比于极坐标的弧度表示。接着我们就要开始找截面了。

第三章:确定圆形的方向向量

第一节:第一次坐标变换

首先,作者为了方便后续的计算,进行了一个坐标系的转换。在上一章我们为了方便椭圆的表示,将坐标系的中心点设为椭圆平面的中心,这样椭圆就是一个二维的线。在这一章,因为已经知道了圆锥的坐标系,之前的椭圆只相当于该圆锥的一个截面,因此还不够便捷,如果以圆锥的顶点为原点坐标,那么圆锥将不再有一次项,即形式

且如果圆锥经过原点(0,0,0),则将也不再有0次项,即

 

这个形式将十分的好看。我们将这一变换拆解为旋转和平移两个操作。对于一个经过原点的圆锥

我们寻找一个旋转变换

 

使其没有一次项

旋转变换的形式需要注意,后面会反复用到。最后一行的1用来适配平移操作。根据论文 An Elementary Treatise on Coordinated Geometry of Three Dimensions,3rd ed.以证明方程

的解λ1,λ2,λ3满足

带入可解出

其中的ti的形式为

 

到这里一定有人会有疑问:三个解值得对应关系如何确定呢?因为我们希望以z值为轴心,因此 λ1,λ2得值应当保证为正,λ3得值为负。具体得大小关系在后面会进行分类讨论。

通过上面得变化,第一章得圆锥方程变为

这里得uvw也是原方程得参数。接下来要对其进行平移,使得顶点在坐标原点得位置

 

将连个变换合在一起则整体变换为

 

 第二节:第二次坐标变换

下面我们要找到一个平面

 截取圆锥得截面是一个圆形。我们假设已经存在这样一个平面,我们第二次做坐标变换,使得轴心为该平面得法线向量,这样截面可以写为z=p即可。这一次得变换旋转即可,该变换为

 带入z=p,截线写为

 对于一个形式为

的曲线,只有当A=C,B=0时,该曲线是一个圆。因此应当有

 

当l^2+m^2=0时,说明最开始O'于椭圆圆心的连线即应该为截面的法向量,这是一种特殊情况。 对于一般情况

且由于已经转换为标准形式,有 

则对于上述问题进行分情况讨论

情况1:l=0

该情况直接给出结论,只有当λ2>λ1时有

情况2:m=0

 该情况也直接给出结论,只有当λ1>λ2时有

情况3:n=0

该解不存在。 

情况4:λ1=λ2

 这种情况对椭圆的参数是有要求的,在这种条件下只有一种解

因此整体的流程如下。

 1)估计圆锥的一般方程的系数:根据对椭圆方程(在图像坐标框架中,椭圆是圆形特征的图像)和相机有效焦距的了解,估计系数a、b、c、f、g、h、u、v、w和d。

2)圆锥方程的简化:通过求解判别三次方程求解出λ1,λ2,λ3并使得λ1,λ2大于0.

3)圆形特征平面方程系数的估计:分情况计算出l,m,n

4)估计表面法线相对于相机框架的方向余弦角度:该步中只需考虑旋转变换而不需考虑尺度变换,因此只需要应用第一变换的旋转变换即可,也就是公式(12)对应的系数。

第四章:确定圆心的位置

圆形的实际位置是相对于相机坐标而不是图像坐标的O,因此在计算圆心的位置时若要按照最开始的图像坐标系,则转为相机坐标系要多平移一个e

 

 文章中给出了两种情况的考虑方法,分别为已知半径尺寸的和未知半径尺寸的,由于未知半径尺寸的方法需要沿光轴进行移动,因此很难实践。我们在此只学习已知半径的方法。思路很简单。在第二次坐标变换中,根据公式(20),我们已经知道了当Z=p时,截线圆的公式坐标。在这里论文为了简化公式表达重写了一遍,他把旋转重新写为公式

 这样带入后的一般形式为

在使用时直接对照公式(19)对li,mi,ni赋值即可,这样继续进行形式简化有在条件

下,圆的方程写为

 令等式右边等于半径r则有

其中因为在正半轴应当取正值,圆心坐标为

注意圆形不应当在Z轴上不要理解错误,看圆的表达式。如果要得到相对于相机中心的坐标,则要应用之前的一系列变换

变换1的旋转平移+变换2的旋转+最后转为相机坐标的平移。这样我们就确定了圆心位置!!!!果然写一遍有了更细致的收获,希望与大家共勉!