記事のディレクトリ
コンピュータビジョンの寿命:この記事番号は、公衆に対して発行されました。
オリジナルリンク:SLAMをゼロから学ぶこと|なぜ同次座標を使うのか?
なぜ同次座標を使用
コンピュータビジョンに関連する幾何学の問題で、私たちはしばしば用語同次座標を参照してください。この記事では、正確な理由同次座標を使用することを説明しますか?利益が何であるかを最終的に均質な座標を使用しますか?
同次座標とは何ですか?
簡単に言えば:同次座標を元の座標に次元を追加することです。
同次座標を使用することの利点は何ですか?
大幅に簡略化することが可能に使用される同次座標点の線を3次元空間表現及び回転翻訳および他の操作は、以下の点は、特定のポイントを説明します。
1は、都合のラインや平面上の点として表現されることができます
2次元平面上に、直線Lは、によってAX +の方程式ができる+ C = 0で表され、次いで直線は、一般的に示されるベクトルで表されます。
我々は、ラインL上の必要十分条件の点P =(x、y)は+ C = 0によって斧+であることを知っています
あなたは同次座標を使用している場合は、その、点pの同次座標であります
P '=(X、Y、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。(留做作业)
先给出结论:
(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
比如 两条平行的直线 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,则表示为无穷远点。
这是齐次坐标最重要的一个优势之一。在以后的学习中你会更加深刻的理解。
同次座標を使用して、簡単に表現の翻訳を容易に、乗算加算に変換することができます。
例を完了するために、我々は、以下の添加と、その後、不均質な方法ならば、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個
(ヒント:デモンストレーション、この資料の前半を参照してください)