株式会社アイディール 座 標 変換 画像処理を応用した検査や計測等の処理を行う際、ある座標系からそれとは異なる座標系へ変換しなければならないと いうことはよくあります。実際には画像処理だけでなく、対象物を置くステージやピックアンドプレースするのに必要なロボ ットも存在するため、それら機械系の座標系と画像処理の座標系の間で変換しなければなりません。座標系が2つ程度な ら単純に三角関数を使った変換計算でも支障ありませんが、実応用では座標系が5つも6つも出てくるため、行列の概念 を用いないとどうしても煩雑となります。ここでは行列を導入することで系統的に扱えるよう考慮した座標変換(特に相似変 換)に関して説明いたします。なお、変換は2次元にとどめるものとし、3次元に関しては別途機会を改めて報告させてい ただきます。 画 像 処理 へ の応 用 画像処理において対象物を検出したい場合、位置だけでなく姿勢(傾角)も表現したい場合があります。 図0-1に示したように、そういった場合は対象物 P の位置 (x v p ) ,v y p と傾き vθ p を独立に表現することが多い と思います。 図0-1 記号の説明 V :カメラ視野 P :対象物 Σv : V に割り付けた座標系 Σp : P に割り付けた座標系…この座標系は陽に表現されない v x p ,v y p ,v θ p : Σv 上における P のX座標, Y座標,傾き しかしながら、実用上はもう少し複雑になることがあります。例えば、図0-2に示したように P 上に存在する 1 / 14 Copyright © 2008 EYEDEAL Corporation 株式会社アイディール 突起物 H の位置および傾きを Σv 上の値として検出したい場合などです。 v xp xh v V Σv P v yp v p yh p xh yh v p p Σh H h Σp v h 図0-2 記号の説明(既出のものは略) H : P に存在する突起物 Σh : H に割り付けた座標系…この座標系は陽に表現されない p xh , p y h , p θ h : Σp 上における H のX座標, Y座標,傾き…既知情報であることが多い v xh ,v y h ,v θ h : Σv 上における H のX座標, Y座標,傾き…導出したい情報 p p 一般的にこういった際は P の形状は初めから分かっているので xh , y h , v v v 処理とから計算して新たに検出した x p , y p , p θ h は既知扱いであり、その情報と画像 θ p から v xh ,v y h ,v θ h を求めたいようなケースです。種々の座標系が 複合してくる例も少なくありません。特に傾きが ± π ( rad ) の範囲を取るような場合に問題が複雑化して不具合 の原因となったりします。 2 / 14 Copyright © 2008 EYEDEAL Corporation 株式会社アイディール ア ル ゴリ ズ ム概 要 1.記号の定義 まずはベクトル表記に関して定義しておきます。表現上の制約から上部に矢印を付して表しています。ここでは (x p , y p ) 座標をベクトル表現するのに以下の2つの方法を用いることにします。 図1-1 記号の説明(既出のものは略) p :任意の点 r q p : p の位置ベクトル r x p , y p : q p のX座標, Y座標 xp r q p = ―――――――― ―――――――――― ―――――――――― ( 1 − 1 ) yp xp r ~r q p q p = y p = ――――――――――――――――――――――――――― ( 1 − 2 ) 1 1 r r ~r q p は q p の同次座標表現で、これらはあくまでも表記が異なるだけで同値です。図での表現は q p を使用しますが、 r ~r 計算では q p を使います。さらに、座標系 Σa を考慮に入れて Σa 上での座標 q p を、 a ax r q p = a p ―――――――― ―――――――――― ――――――――― ( 1 − 3 ) y p 3 / 14 Copyright © 2008 EYEDEAL Corporation 株式会社アイディール a xp a qr r a~ q p = a y p = p ―――――――――――――――――――――――――― ( 1 − 4 ) 1 1 a r で表すことにします。 q p の左上の記号が座標系名を表します。 図1-2 記号の説明(既出のものは略) Σa :任意の座標系 ar q p : Σa 上の p の位置ベクトル r a x p ,a y p : a q p のX座標, Y座標 4 / 14 Copyright © 2008 EYEDEAL Corporation 株式会社アイディール 2.各種の変換行列 r r 一般的に Σb 上の座標 q p から Σa 上の座標 q p への変換は、同次座標を用いて、 b a a ~r ~r q p = aTb ⋅b q p ―――――――――――――――――――――――――――― ( 2 − 1 ) で表すことが出来ます。ただし、 Tb は Σb から Σa への座標変換行列です。種々の変換に関してこの Tb の具体 a a 的な形を求めてみましょう。 (1) 平行変換行列 2つの座標系が平行関係にある場合を考えます。数理モデルを表すと図2-1のようになります。 図2-1 記号の説明(既出のものは略) a xb ,a yb : Σa を平行移動した量 Σb : Σa を a xb ,a yb だけ平行移動した後の座標系 br q p : Σb 上の p の位置ベクトル r b x p ,b y p : b q p のX座標, Y座標 a a b b 上図から x p , y p と x p , y p の関係は、 a x p =b x p + a xb ――――――――――――――――――――――――――― ( 2 − 2 ) a y p = b y p + a yb ――――――――――――――――――――――――――― ( 2 − 3 ) となります。これらの式を変換行列で表すと、 a xp 1 0 a yp = 0 1 1 0 0 xb b x p a yb ⋅ b y p ――――――――――――――――――――― ( 2 − 4 ) 1 1 a 5 / 14 Copyright © 2008 EYEDEAL Corporation 株式会社アイディール となります。このときの 1 0 a Tp = 0 1 0 0 xb a yb ――――――――――――――――――――――――― ( 2 − 5 ) 1 a を平行変換行列と称します。 (2) 回転変換行列 2つの座標系が回転関係にある場合を考えます。数理モデルを表すと図2-2のようになります。 a xp Σa a θb a b qp b yp b qp xp Σb p a yp 図2-2 記号の説明(既出のものは略) θ b : Σa を回転した量 a Σb : Σa を aθ b だけ回転した後の座標系 a a b b 上図から x p , y p と x p , y p の関係は、 a x p =b x p cos aθ b −b y p sin aθb ―――――――――――――――――――――― ( 2 − 6 ) a y p =b x p sin aθ b + by p cos aθ b ―――――――――――――――――――――― ( 2 − 7 ) となります。これらの式を変換行列で表すと、 a x p cos aθb a a y p = sin θ b 1 0 − sin aθb cos aθ b 0 0 b xp 0 ⋅ b y p ―――――――――――――――――― ( 2 − 8 ) 1 1 となります。このときの 6 / 14 Copyright © 2008 EYEDEAL Corporation 株式会社アイディール cos aθ b a Tp = sin aθb 0 − sin aθb 0 0 ―――――――――――――――――――――― ( 2 − 9 ) 1 cos θ b 0 a を回転変換行列と称します。 (3)スケール変換行列 2つの座標系の倍率が異なっている場合を考えます。数理モデルを表すと図2-3のようになります。 a xp Σa Σb b xp a qp b qp a yp p b yp 図2-3 a x p ,b x p の単位長を a Lx ,b Lx すると、 a x p :b x p = aLx :b Lx ――――――――――――――――――――――――― ( 2 − 10 ) a b a b となり、さらに y p , y p の単位長を Ly , Ly とすると、 a y p :b y p = aLy :b Ly ―――――――――――――――――――――――――― ( 2 − 11 ) となります。これにより、 a a xp = b Lx b x p ――――――――――――――――――――――――――― ( 2 − 12 ) Lx = aλb ⋅b x p ―――――――――――――――――――――――――― ( 2 − 13 ) a a yp = b Ly b Ly y p ――――――――――――――――――――――――――― ( 2 − 14 ) = aµb ⋅b y p ―――――――――――――――――――――――――― ( 2 − 15 ) となります。これらの式を変換行列で表すと、 7 / 14 Copyright © 2008 EYEDEAL Corporation 株式会社アイディール a x p aλb a yp = 0 1 0 0 a µb 0 0 b xp 0 ⋅ b y p ―――――――――――――――――――― ( 2 − 16 ) 1 1 となります。このときの aλb a Tp = 0 0 0 a µb 0 0 0 ―――――――――――――――――――――――― ( 2 − 17 ) 1 をスケール変換行列と称します。 (4) まとめ 項(1)~項(3)を組み合わせた例を示します。これまで Σa や Σb と一般的名称としていた座標系を具体化し て数理モデルを表すと図2-4のようになります。ここで、 Σv で検出した p の座標 標 ( w ) (x v p ) ,v y p を Σw 上の p の座 x p ,w y p へ変換する式を導出してみます。 図2-4 記号の説明(既出のものは略) Σw :ワールド座標系…ステージやロボットに割り付けた座標系 Σv :画像処理座標系 w xt ,w yt :ステージの平行移動量 θ s :ステージの回転量 t Σt : Σw の w xt ,w yt 平行移動後座標系…計算上必要となる便宜的な座標系 8 / 14 Copyright © 2008 EYEDEAL Corporation 株式会社アイディール Σs : Σt の tθ s 回転後座標系…計算上必要となる便宜的な座標系( Σv とは倍率だけが異なる) vr q p : Σv 上の p の位置ベクトル wr q p : Σw 上の p の位置ベクトル r v x p ,v y p : v q p のX座標, Y座標 r w x p ,w y p : w q p のX座標, Y座標 ~r ~r q p から w q p への変換は、 r ~r w~ q p = wTt ⋅t Ts ⋅s Tv ⋅v q p ――――――――――――――――――――――――― ( 2 − 18 ) v で表されます。具体化すると、 w xp 1 0 w yp = 0 1 1 0 0 xt cos tθ s w yt ⋅ sintθ s 1 0 w sλv cos tθ s = sλv sin tθ s 0 w − sλv sintθ s s λv cos tθ s 0 ~r v − sin tθ s cos tθ s 0 0 sλv 0 ⋅ 0 1 0 0 s λv 0 0 v xp 0 ⋅ v y p ――――― ( 2 − 19 ) 1 1 xt v x p w yt ⋅ v y p ―――――――――――――― ( 2 − 20 ) 1 1 w ~r となります。逆に q p から q p への変換は、 v x p sλv cos tθ s v s y p = λv sin tθ s 1 0 − sλv sintθ s s λv cos tθ s 0 −1 xt w x p w yt ⋅ w y p ――――――――――――― ( 2 − 21 ) 1 1 w となります。ただし、 s x p :v x p = sλv : 1 ―――――――――――――――――――――――――― ( 2 − 22 ) s y p :v y p = sλv : 1 ―――――――――――――――――――――――――― ( 2 − 23 ) の比率とします(画像処理では一般的に s λv の単位は「 mm / pix 」)。 9 / 14 Copyright © 2008 EYEDEAL Corporation
© Copyright 2025 ExpyDoc