SLAMをゼロから学ぶために(5)なぜ同次座標を使うのか?

記事のディレクトリ


  コンピュータビジョンの寿命:この記事番号は、公衆に対して発行されました。
  オリジナルリンク:SLAMをゼロから学ぶこと|なぜ同次座標を使うのか?

 

なぜ同次座標を使用

  コンピュータビジョンに関連する幾何学の問題で、私たちはしばしば用語同次座標を参照してください。この記事では、正確な理由同次座標を使用することを説明しますか?利益が何であるかを最終的に均質な座標を使用しますか?

同次座標とは何ですか?

  簡単に言えば:同次座標を元の座標に次元を追加することです。

ここに画像を挿入説明

ここに画像を挿入説明

同次座標を使用することの利点は何ですか?

  大幅に簡略化することが可能に使用される同次座標点の線を3次元空間表現及び回転翻訳および他の操作は、以下の点は、特定のポイントを説明します。

1は、都合のラインや平面上の点として表現されることができます

  2次元平面上に、直線Lは、によってAX +の方程式ができる+ C = 0で表され、次いで直線は、一般的に示されるベクトルで表されます。

ここに画像を挿入説明

  我々は、ラインL上の必要十分条件の点P =(x、y)は+ C = 0によって斧+であることを知っています

  あなたは同次座標を使用している場合は、その、点pの同次座標であります

                                                                                        P '=(XY、1)

  次いで+ C = 0を表すために、2つのベクトル(ドット)の内積を使用することができることにより、斧+:

ここに画像を挿入説明

  :直線点P L及びP lは内積の線形均質座標P」である上にそのため、必要十分条件

ここに画像を挿入説明

  これを行うのは非常に簡単ではありません!

  同様に、我々は、平面三次元空間での点P =(x、y、z)を同次座標P「=(Xの三次元空間を表現するためにCZ + D = 0を+によって方程式斧+で表すことができることを知っていますY、Zは、1)、同様に、2つのベクトルの積として表すことができる空間平面上の点Pは、以下:

ここに画像を挿入説明

  従って、必要かつ十分な条件上の点Pは、その平面Aの平面とP内積(ドット積)のP」の同次座標のベクトル:

ここに画像を挿入説明

図2は、ラインと直線、平面と平面の交点の発現を促進するために

  先给出结论,后面再具体解释:

  结论:在齐次坐标下,可以用两个点 p, q 的齐次坐标叉乘结果来表达一条直线 l,也就是

                                                                                l=p×q

  也可以使用两条直线 l, m 的叉乘表示他们的交点 x

                                                                                x=l×m

  见下面示例图。

ここに画像を挿入説明

  之所以可以这么简洁的表示交点是因为采用了齐次坐标的表示方式。

  那么这是为什么呢?

  先介绍一下叉乘(也称叉积、外积)的概念:

  两个向量 a和b 的叉乘仅在三维空间中有定义,写作 a x b

  a x b 是与向量 a, b都垂直的向量,其方向通过右手定则(见下图)决定。

ここに画像を挿入説明

  其模长等于以两个向量为边的平行四边形的面积(见下图)。

  叉乘可以定义为:

ここに画像を挿入説明

  其中 θ表示a, b的夹角(0°到180°之间),||a||, ||b||是向量a, b的模长

   n则是一个与向量a, b所构成的平面垂直的单位向量

ここに画像を挿入説明

  根据叉乘定义

  向量自身叉乘结果为0,因为夹角为0。也就是说三维向量 a x a =0, b x b = 0而点乘(也称点积,内积)的定义是

                                                                               a∗b=∣∣a∣∣∗∣∣b∣∣∗cos(θ)

  根据定义:如果两个向量垂直,cos(θ) = 0,点积也为0。

  好了,经过上面点乘和叉乘定义的铺垫。下面来推导一下上面的结论:

 为什么两条直线 l, m 的叉乘 l x m 等于它们的交点 p,也就是 p = l x m?

  原因如下:首先,根据前面叉乘的定义,l x m 的结果向量(记为 p = l x m) 与 l 和 m都垂直,根据点乘的定义,垂直的向量之间的点积为0,因此可以得到:

ここに画像を挿入説明

  因此,根据前面点在直线上的结论,可以看到p既在直线l 上又在直线m上,所以 p = l x m 是两条直线的交点。此处 p 是齐次坐标。

  同样的,可以证明,两点p, q 的叉乘 可以表示 过两点的直线l,即 l = p x q。(留做作业)

3 能够区分一个向量和一个点

  先给出结论:

(1)从普通坐标转换成齐次坐标时
  如果(x,y,z)是个点,则变为(x,y,z,1);
  如果(x,y,z)是个向量,则变为(x,y,z,0)

(2)从齐次坐标转换成普通坐标时

  如果是(x,y,z,1),则知道它是个点,变成(x,y,z);

  如果是(x,y,z,0),则知道它是个向量,仍然变成(x,y,z)

  具体解释见:

http://www.cnblogs.com/csyisong/archive/2008/12/09/1351372.html

4 能够表达无穷远

  比如 两条平行的直线 ax+by+c=0, ax+by+d=0,

  可以分别用向量 l = (a, b, c), m = (a, b,d)表示

  根据前面直线交点的计算方法,其交点为 l x m

  根据叉乘计算法则

  向量

ここに画像を挿入説明

  的叉乘结果可以用如下方法计算得到

ここに画像を挿入説明

  最终:l x m = (d-c)(b,-a,0),忽略标量(d-c),我们得到交点为(b,-a,0),并且是齐次坐标,如果要转化为非齐次坐标,那么会得到 (b/0, a/0),坐标是无穷大,可以认为该点为无穷远点,这与我们通常理解的:平行线相交于无穷远的概念相吻合。

  因此,如果一个点的齐次坐标中,最后一个元素为0,则表示为无穷远点。

5 更简洁的表达欧氏空间变换

  这是齐次坐标最重要的一个优势之一。在以后的学习中你会更加深刻的理解。

  同次座標を使用して、簡単に表現の翻訳を容易に、乗算加算に変換することができます。

  例を完了するために、我々は、以下の添加と、その後、不均質な方法ならば、X = [U、V]「翻訳T = [TU、TV]点を2D座標ます

ここに画像を挿入説明

  乗算は座標均質で表される場合には、加算に変換することができます。

ここに画像を挿入説明

  平行移動と回転:ユークリッド変換は、一般的に2つの操作です。

  我々はユークリッド変換標準ベクトルになりたい場合は、通常、最初の回転行列Rを回転させることにより、その後、「= R * A + T、結果を並進ベクトルtを使用し、これは何の問題もないようです。

  しかし、我々は一般的に連続SLAMユークリッド変換であることを知って、非常に多くの連続回転および並進があるだろう、我々は、2つのベクトルをユークリッド変換を行ったと仮定し、それぞれ、R1、T1及びR2、T2、それぞれ取得します:

B = R1 *のA + T1、C = R2は、* B + T2

  エンド結果の$ C = R2 *(RL + A * T1)+ T2の $

  明らかに、繰り返された後、このような変換は、ますます複雑になります根本的な理由は、上記の式で線形変換の関係ではありません

  このとき、その魅力のショー均質な座標に、均質用いて表現する場合には、A + Tの言葉は次のように書くことができる「= R *を座標:

ここに画像を挿入説明

  回転及び並進行列Tのような、偶数ラインのみに変換行列により複数のユークリッド変換、ユークリッド変換が線形となるようにTは、(変換行列)行列と呼ばれる変換行列によって表すことができます。ユークリッドは、同次座標を使用して変換両者の前にように表すことができます。

ここに画像を挿入説明

  どのチルダ同次座標を表しています。一般に、SLAM、B = Taのデフォルトの形で同次座標です。

  そこ同次座標の利点については、何をしますか?追加するコメントを残します。

仕事

  証明:2つのp、qはラインLの交点によって表現することができる、すなわち、L = p×q個

  (ヒント:デモンストレーション、この資料の前半を参照してください)

おすすめ

転載: blog.csdn.net/wb790238030/article/details/88242947