第4回 「コンピュータビジョン最先端
      ガイド」勉強会
   テンソルと多視点幾何
        1&2
    Presented by takmin
やりたいこと
• 複数枚の画像から撮影対象の3次元の情報
  を復元したい

例えばこんなの
http://grail.cs.washington.edu/rome/
エピポーラ幾何

                   A



        カメラ1の撮
        影画像               カメラ2の撮
                          影画像




       ...
エピポーラ幾何
• 3次元空間上の点Aが、それぞれのカメラで
  取得した画像のどの位置に映っているかが
  わかれば,三角測量の原理から,点Aの三次
  元空間上の座標がわかる!


• 前提条件として、以下の情報が既知
  • カメラの位置...
エピポーラ幾何
• 2枚の画像に共通して映っている点が多いな
  ら,その関係からカメラパラメータを逆算でき
  る!(幾何学的拘束)



• 2つのカメラに映っている共通の点群を見つ
  けてあげることで,カメラの校正(キャリブレー
  シ...
多視点幾何
• カメラを2つから3つ以上に拡張することで,
  より多くのカメラの校正を一度で行う
            A




                      A’3

      A’1       A’2
斉次座標
• 直線の公式
     ax  by  c  0             y
  傾き成分            平行移動成分             l
                                   ...
テンソルの利点
• テンソル:
 – 配列の概念を拡張/一般化したもの
• 今までは2つのカメラを使った3次元再構成
  が一般的だが、テンソルを使用することで複
  数カメラへ簡単に拡張できる
テンソルの基礎
0階のテンソル            0次元配列(スカラー)

1階のテンソル            1次元配列(ベクトル)



2階のテンソル             2次元配列(配列)




              ...
テンソルの表記
• ベクトルのテンソル表記

      V1 
      V 
  V   2               Vi
      V3 
            テンソル表記


    ベクトル     ...
テンソルの表記
• 行列のテンソル表記


    A
     1
     1    A1
           2    A
                 1
                 3
               ...
テンソルの表記
• ベクトルの内積
a  a1 , a2 , a3 
                  T
                         
                      b  b ,b ,b
   ...
テンソルの表記
 • 行列とベクトルの積
  a,b : ベクトル      A : 行列

             b1   A1
                      1    1
                      ...
テンソルの表記
 • 行列とベクトルの積
  a,b : ベクトル    A : 行列


b  Aa         b   Ai a
                j        j   i
                   ...
テンソルの表記
• まとめ
        行列表記       テンソル表記

                                    i
ベクトル
           a               ai , a
行列  ...
反変テンソルと共変テンソル
• テンソルの上付きと下付きの違いについて
                                                         z
 a  a e1  a e2  a e3
   ...
反変テンソルと共変テンソル
E  e1 , e 2 , e 3       
                        a  a ,a ,a
                               1   2
      ...
反変テンソルと共変テンソル
   E  e1 , e 2 , e 3            
                              a  a ,a ,a
                             ...
反変テンソルと共変テンソル
• 共変テンソル
 – 基底ベクトルを変換したとき,基底ベクトルと同じ
   変換を受けるベクトル


• 反変テンソル
 – 基底ベクトルを変換したとき,基底ベクトルと逆の
   変換を受けるベクトル
反変テンソルと共変テンソル
• テンソルの添字のルール
 – 共変テンソルが下付添字
     a1 , a2 , a3
 – 反変テンソルが上付き添字
      1   2    3
     b ,b ,b
反変テンソルと共変テンソル
• 点xを通る直線lの例

l  l1 , l2 , l3 
                  T
                              
                      ...
反変テンソルと共変テンソル
    • 点xを通る平面Sの例

S  S1 , S 2 , S3 , S 4 
                          T
                                   ...
テンソルの積
• 一階テンソル同士の積
  共変テンソル同士の積

       Ai B j  Cij    (17)


  反変テンソル同士の積

      A B C
        i   j     ij   (18)


 ...
テンソルの積
• テンソルに基底の考え方を入れた方が,テン
  ソルの積は理解しやすい!
A  A1e1  A2e 2               B  B1e'1  B 2e'2
C  AB                    ...
テンソルの積
• n階テンソルとm階テンソルの積
 – n+m階テンソルになる

 1階×1階 → 2階


     A1       B1   A1 B1 A1B2
     A2       B2   A2 B1 A2 B2
テンソルの積
• n階テンソルとm階テンソルの積
 – n+m階テンソルになる

 2階×1階 → 3階
                    A11B1 A12 B1
  A11 A12     B1   A21B1 A22 B1
  A2...
テンソルの積
• n階テンソルとm階テンソルの積
 – n+m階テンソルになる
  共変テンソル同士の積

  Ai1i2 in B j1 j2  jm  Ci1in j1 jm               (17)


  反変テン...
テンソルの積
• n階テンソルとm階テンソルの積
 – n+m階テンソルになる
 2階テンソル
 A  A11e1  e'1  A12e1  e'2  A21e 2  e'1  A22e 2  e'2
 1階テンソル
 B  ...
テンソルの積
• テンソルが同じ添字を持っている場合
 – テンソルの縮約により階数が減少する

 2階×1階 → 1階


  A11 A12       B   1
                         A11 B  A12 ...
テンソルの積
• テンソルが同じ添字を持っている場合
 – テンソルの縮約により階数が減少する
  共変テンソル同士の積

          A Bl Cm  D
           ijk                ijk
    ...
テンソルの積
• テンソルが同じ添字を持っている場合
 – 双対基底を持っているため縮約が起こる!
 2階テンソル
 A  A11e1  e'1  A12e1  e'2  A21e 2  e'1  A22e 2  e'2
 1階...
テンソルの積
• テンソル同士では積の順番を入れ替えられな
  い
      Cij  Ai B j  B j Ai


   掛け算ひっくり返しただけじゃん!
   なんで入れ替えられないの???
テンソルの積
• テンソル同士では積の順番を入れ替えられな
  い
A  A e1  A e 2
        1       2                 B  B1e'1  B 2e'2

 e1  e'2  e'2 ...
テンソルの積
• テンソル同士では積の順番を入れ替えられな
  い
 – 縮約できるテンソルなら入れ替え可

                B1 
     A1   A2    A1B1  A2 B2
           ...
テンソルの積
• テンソル同士では積の順番を入れ替えられな
  い
 – 縮約できるテンソルなら入れ替え可

    A B j Ck   A B j Ck
     ijk                  ijk

         ...
イプシロンテンソル
          1     :(i,j,k)から(1,2,3)が偶置換
          
 ijk     1   :(i,j,k)から(1,2,3)が奇置換   (26)

          0
 ...
イプシロンテンソル
• 例

  312  1    312 → 132 → 123   置換2回


  132  1   132 → 123         置換1回



 112  0                   ...
外積の例
行列表現
          a 2b 3  a 3b 2            a1             b1 
           3 1 1 3                   2        ...
外積の例
行列表現
          a 2b 3  a 3b 2                   a1           b1 
           3 1 1 3                         ...
外積の例
行列表現
          a2b3  a3b2             a1         b1 
          a b a b 
c  ab   3 1 1 3           a  ...
イプシロンテンソル同士の積
                    3     3     3
 ijk   ijk
                  ijk                   ijk

          ...
歪対称行列
                                         0         x     3
                                                       ...
歪対称行列
                                  0      x   3
                                                   x 
            ...
歪対称行列
                                                               0       x      3
                                  ...
歪対称行列
• 共変ベクトル   l に対する歪対称行列 l 



            lj
             ijk
                      (33)
行列式
3次元ベクトルの行列式

    
x1  x , x , x
        1
        1
            2
            1   1
                3 T
           ...
行列式
4次元ベクトルの行列式


detX1       X2    X3        X 4    ijkl X X X X
                                         i
         ...
行列式
3つの直線l

det l       1
                     l   2           3
                                         
             ...
行列式
あれ?今までXは反変テンソル、lは共変テンソルとして
扱ってたのに、なんで行列式では反対なんだ????

detx1      x2      x3    x x x
                              ...
多重線形性
• ベクトルTとベクトルxの内積=スカラー
行列表現

T  (x1  x 2 )   (T  x1 )   (T  x 2 )   (38)




テンソル表現

Ti (x  x )  T x ...
多重線形性
• 行列Tとベクトルx, yの積=スカラー
行列表現

T  (x1  x 2 )  y   (T  x1  y)   (T  x 2  y)
T  x  (y1  y 2 )   (T  ...
多重線形性
• 3階テンソルの積=スカラー
 テンソル表現

Tijk (x  x ) y z  T x y z  T x y z
           i
           1
                       ...
多重線形性
• “厳密には多重線形性をもつものをテンソル
  という”
• “一般にn階のテンソルはn階の変数それぞれ
  に関して線形であるというn重の線形性を持
  つ”
Thank You!
Upcoming SlideShare
Loading in...5
×

Chapter4 1 takmin

4,240

Published on

第4回「コンピュータビジョン最先端ガイド」読書会発表資料

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,240
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
56
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Chapter4 1 takmin

  1. 1. 第4回 「コンピュータビジョン最先端 ガイド」勉強会 テンソルと多視点幾何 1&2 Presented by takmin
  2. 2. やりたいこと • 複数枚の画像から撮影対象の3次元の情報 を復元したい 例えばこんなの http://grail.cs.washington.edu/rome/
  3. 3. エピポーラ幾何 A カメラ1の撮 影画像 カメラ2の撮 影画像 A’1 A’2 カメラ1の カメラ2の 焦点 焦点
  4. 4. エピポーラ幾何 • 3次元空間上の点Aが、それぞれのカメラで 取得した画像のどの位置に映っているかが わかれば,三角測量の原理から,点Aの三次 元空間上の座標がわかる! • 前提条件として、以下の情報が既知 • カメラの位置(X,Y,Z)と向き(θ,φ,ψ) カメラパラメータ • カメラの焦点距離 • カメラの解像度(縦/横)
  5. 5. エピポーラ幾何 • 2枚の画像に共通して映っている点が多いな ら,その関係からカメラパラメータを逆算でき る!(幾何学的拘束) • 2つのカメラに映っている共通の点群を見つ けてあげることで,カメラの校正(キャリブレー ション)と各点の3次元座標を同時に求めよ う!
  6. 6. 多視点幾何 • カメラを2つから3つ以上に拡張することで, より多くのカメラの校正を一度で行う A A’3 A’1 A’2
  7. 7. 斉次座標 • 直線の公式 ax  by  c  0 y 傾き成分 平行移動成分 l x l  a, b, c x  x, y,1 T T とおくと l x0 T x 平行移動成分を含めて行列の積で表すために、次元を1つ増やした座標
  8. 8. テンソルの利点 • テンソル: – 配列の概念を拡張/一般化したもの • 今までは2つのカメラを使った3次元再構成 が一般的だが、テンソルを使用することで複 数カメラへ簡単に拡張できる
  9. 9. テンソルの基礎 0階のテンソル 0次元配列(スカラー) 1階のテンソル 1次元配列(ベクトル) 2階のテンソル 2次元配列(配列) 3次元配列 3階のテンソル テンソルの厳密な定義: 多重線形性を持つ数値の集合(後述)
  10. 10. テンソルの表記 • ベクトルのテンソル表記 V1  V  V   2 Vi V3    テンソル表記 ベクトル 1階のテンソル
  11. 11. テンソルの表記 • 行列のテンソル表記 A 1 1 A1 2 A 1 3   i A  A 1 2 A2 2 2 A  3 A j A3 A3 A  3 1 2 3 テンソル表記 行列 2階のテンソル
  12. 12. テンソルの表記 • ベクトルの内積 a  a1 , a2 , a3  T  b  b ,b ,b 1 2  3 T 3 c a b T c   ai b i c  ai b i i 1 テンソル表記 内積 アインシュタイン規約
  13. 13. テンソルの表記 • 行列とベクトルの積 a,b : ベクトル A : 行列  b1   A1 1 1 A2 A3   a1  1 b   Ai a  2  2 2  2  b  Aa b    A1 2 A2 A3  a  j j i b3   A13 3 A2 A3   a 3  3      i 行列・ベクトルの積
  14. 14. テンソルの表記 • 行列とベクトルの積 a,b : ベクトル A : 行列 b  Aa b   Ai a j j i b  Ai a j j i i テンソル表記 行列・ベクトルの積 アインシュタイン規約
  15. 15. テンソルの表記 • まとめ 行列表記 テンソル表記 i ベクトル a ai , a 行列 ij j i A Aij , A , Ai , A j 内積 c a bT c  ai b i 座標変換 b  Aa b  Ai a j j i
  16. 16. 反変テンソルと共変テンソル • テンソルの上付きと下付きの違いについて z a  a e1  a e2  a e3 1 2 3 (10) a 基底ベクトル y e3 e2 a  Ea (11) e1 E  e1 , e 2 , e 3   a  a ,a ,a 1 2  3 T x
  17. 17. 反変テンソルと共変テンソル E  e1 , e 2 , e 3   a  a ,a ,a 1 2  3 T y a  Ea (11) a2 a e2 e1 a1 x
  18. 18. 反変テンソルと共変テンソル E  e1 , e 2 , e 3   a  a ,a ,a 1 2  3 T y a  Ea (11) a a2 ' H 1 a  EHH a (12) e2’ a1 '   e1’ x EH  e1 ' , e 2 ' , e 3 ' H 1a  a1 ' , a 2 ' , a ' 3 T
  19. 19. 反変テンソルと共変テンソル • 共変テンソル – 基底ベクトルを変換したとき,基底ベクトルと同じ 変換を受けるベクトル • 反変テンソル – 基底ベクトルを変換したとき,基底ベクトルと逆の 変換を受けるベクトル
  20. 20. 反変テンソルと共変テンソル • テンソルの添字のルール – 共変テンソルが下付添字 a1 , a2 , a3 – 反変テンソルが上付き添字 1 2 3 b ,b ,b
  21. 21. 反変テンソルと共変テンソル • 点xを通る直線lの例 l  l1 , l2 , l3  T  x  x ,x ,x 1 2  3 T y l l x0 T x 1 l HH x  0 T x 共変ベクトル 反変ベクトル
  22. 22. 反変テンソルと共変テンソル • 点xを通る平面Sの例 S  S1 , S 2 , S3 , S 4  T  X X ,X ,X ,X 1 2 3  4 T z S X0 T S X y 1 S HH X  0 T 共変ベクトル 反変ベクトル x
  23. 23. テンソルの積 • 一階テンソル同士の積 共変テンソル同士の積 Ai B j  Cij (17) 反変テンソル同士の積 A B C i j ij (18) 共変テンソルと反変テンソルの積 A Bj  C i i j (19)
  24. 24. テンソルの積 • テンソルに基底の考え方を入れた方が,テン ソルの積は理解しやすい! A  A1e1  A2e 2 B  B1e'1  B 2e'2 C  AB ei  e' j  eij  ( A1e1  A2e 2 )  ( B1e'1  B 2e'2 )  A1 B1e1  e'1  A1 B 2e1  e'2  A2 B1e 2  e'1  A2 B 2e 2  e'2  C 11e11  C 12e12  C 21e 21  C 22e 22 C AB ij i j
  25. 25. テンソルの積 • n階テンソルとm階テンソルの積 – n+m階テンソルになる 1階×1階 → 2階 A1 B1 A1 B1 A1B2 A2 B2 A2 B1 A2 B2
  26. 26. テンソルの積 • n階テンソルとm階テンソルの積 – n+m階テンソルになる 2階×1階 → 3階 A11B1 A12 B1 A11 A12 B1 A21B1 A22 B1 A21 A22 B2 A11 B2 A12 B2 A21B2 A22 B2
  27. 27. テンソルの積 • n階テンソルとm階テンソルの積 – n+m階テンソルになる 共変テンソル同士の積 Ai1i2 in B j1 j2  jm  Ci1in j1 jm (17) 反変テンソル同士の積 Ai1i2 in B j1 j2  jm C i1in j1 jm (18) 共変テンソルと反変テンソルの積 A i1i2 in B j1 j2  jm  C i1in j1 jm (19)
  28. 28. テンソルの積 • n階テンソルとm階テンソルの積 – n+m階テンソルになる 2階テンソル A  A11e1  e'1  A12e1  e'2  A21e 2  e'1  A22e 2  e'2 1階テンソル B  B1e' '1  B 2e' '2 ei  e' j e' 'k  eijk C  AB  A11B1e111  A12 B1e121  A21B1e 211  A22 B1e 221  A11B 2e112  A12 B 2e122  A21B 2e 212  A22 B 2e 222 C A B ijk ij k
  29. 29. テンソルの積 • テンソルが同じ添字を持っている場合 – テンソルの縮約により階数が減少する 2階×1階 → 1階 A11 A12 B 1 A11 B  A12 B 1 1 A21 A22 B 2 A21 B 2  A22 B 2 Aij B  Ci j
  30. 30. テンソルの積 • テンソルが同じ添字を持っている場合 – テンソルの縮約により階数が減少する 共変テンソル同士の積 A Bl Cm  D ijk ijk lm (23) A B j Ck   A B j Ck ijk ijk j k D i (24)
  31. 31. テンソルの積 • テンソルが同じ添字を持っている場合 – 双対基底を持っているため縮約が起こる! 2階テンソル A  A11e1  e'1  A12e1  e'2  A21e 2  e'1  A22e 2  e'2 1階テンソル B  B1e'1  B2e'2 e'i e' j   i j C  AB  A11B1e1  A12 B2e1  A21B1e 2  A22 B2e 2  C1e1  C 2e 2 C  A Bj i ij
  32. 32. テンソルの積 • テンソル同士では積の順番を入れ替えられな い Cij  Ai B j  B j Ai 掛け算ひっくり返しただけじゃん! なんで入れ替えられないの???
  33. 33. テンソルの積 • テンソル同士では積の順番を入れ替えられな い A  A e1  A e 2 1 2 B  B1e'1  B 2e'2 e1  e'2  e'2 e1 なので A B  B  A C AB B A ij i j j i ←基底が変わってしまう
  34. 34. テンソルの積 • テンソル同士では積の順番を入れ替えられな い – 縮約できるテンソルなら入れ替え可  B1  A1 A2    A1B1  A2 B2  B2   A1  B1 B2    A1B1  A2 B2  A2 
  35. 35. テンソルの積 • テンソル同士では積の順番を入れ替えられな い – 縮約できるテンソルなら入れ替え可 A B j Ck   A B j Ck ijk ijk j k   Ck B j A ijk j k  Ck B j A ijk
  36. 36. イプシロンテンソル 1 :(i,j,k)から(1,2,3)が偶置換   ijk   1 :(i,j,k)から(1,2,3)が奇置換 (26) 0  :(i,j,k)に重複がある 1 :(i,j,k)から(1,2,3)が偶置換   ijk   1 :(i,j,k)から(1,2,3)が奇置換 (27) 0  :(i,j,k)に重複がある
  37. 37. イプシロンテンソル • 例  312  1 312 → 132 → 123 置換2回  132  1 132 → 123 置換1回 112  0 重複
  38. 38. 外積の例 行列表現 a 2b 3  a 3b 2   a1   b1   3 1 1 3  2  2 c  ab  a b  a b  a  a  b  b   a1b 2  a 2b1  a 3  b 3        c=a×b テンソル表現 S b ci   ijk a b j k (28) S a
  39. 39. 外積の例 行列表現 a 2b 3  a 3b 2   a1   b1   3 1 1 3  2  2 c  ab  a b  a b  a  a  b  b   a1b 2  a 2b1  a 3  b 3        テンソル表現 c1  123a 2b3  132a3b2  a 2b3  a3b2 ci   ijk a b j k c2   213a1b3   231a3b1  a1b3  a3b1 c3   312a1b2   321a 2b1  a1b2  a 2b1
  40. 40. 外積の例 行列表現 a2b3  a3b2   a1   b1  a b a b  c  ab   3 1 1 3  a   a2    b  b2     a1b2  a3b1   a3    b3      テンソル表現 c   a j bk i ijk (29)
  41. 41. イプシロンテンソル同士の積 3 3 3  ijk ijk    ijk ijk i j k   123 123   132 132   213 213   231 231   312 312   321 321 6 (30) あるいは単に 3! 6
  42. 42. 歪対称行列  0 x 3 x  2  x  x ,x ,x 1 2  3 T  3 x   x 0 1 x  (31)  x 2 x1 0    xの歪対称行列  0  x 3 x 2   x'1   x 2 x'3  x 3 x'2   3 1 2   3 1 1 3 x  x'  x x'   x 0  x   x'    x x'  x x'   x 2 x1 0   x'3   x1 x'2  x 2 x'1       外積が行列同士の積として表せる
  43. 43. 歪対称行列  0 x 3 x  2  x  x ,x ,x 1 2  3 T  3 x   x 0 1 x  (31)  x 2 x1 0    xの歪対称行列  ijk x j (32) xの歪対称行列のテンソル表現
  44. 44. 歪対称行列  0 x 3 x  2  x  x ,x ,x 1 2  3 T  3 x   x 0 1 x  (31)  x 2 x1 0    xの歪対称行列    1 j1 x j j 1 j 2 x j j 1 j 3 x j   0  x3 x2   j   3 1  ijk x j   j  2 j1 x j j  2 j2 x j  j  2 j3 x    x j 0 x    j  3 j1 x j  x j j  3 j3 x  j   x 2  x1 0    j 3 j2  (32)
  45. 45. 歪対称行列 • 共変ベクトル l に対する歪対称行列 l   lj ijk (33)
  46. 46. 行列式 3次元ベクトルの行列式  x1  x , x , x 1 1 2 1 1 3 T  x2  x , x , x 1 2 2 2 2 3 T  x3  x , x , x 1 3 2 3 3 3 T detx1 x 2 x3   (x1  x 2 )  x3   ijk x1i x2j x3 k X3 (34) X4 X1
  47. 47. 行列式 4次元ベクトルの行列式 detX1 X2 X3 X 4    ijkl X X X X i 1 2 j k 3 l 4 (35)  Xi  X , X , X , X 1 i i 2 i 3 i 4 T
  48. 48. 行列式 3つの直線l det l  1 l 2 3  l  l l l ijk 1 2 3 i j k (36)  l  l ,l ,l 1 1 1 1 2 1 T 3   l  l ,l ,l 2 1 2 2 2 3 2 T l  l ,l ,l 3  3 1 3 2 3 3 T 4つの平面S det S  1 S 2 S 3 S 4  ijkl 1 2 SS S S i j 3 4 k l (37)  S  S ,S ,S ,S i i 1 i 2 i 3 i T 4 
  49. 49. 行列式 あれ?今までXは反変テンソル、lは共変テンソルとして 扱ってたのに、なんで行列式では反対なんだ???? detx1 x2 x3    x x x i j k ijk 1 2 3 (34)  det l 1 l 2 3  l  l l l ijk 1 2 3 i j k (36) 1,2,3というのはテンソルの添字ではないので注意!
  50. 50. 多重線形性 • ベクトルTとベクトルxの内積=スカラー 行列表現 T  (x1  x 2 )   (T  x1 )   (T  x 2 ) (38) テンソル表現 Ti (x  x )  T x  T x i 1 i 2 i i 1 i i 2 (39)
  51. 51. 多重線形性 • 行列Tとベクトルx, yの積=スカラー 行列表現 T  (x1  x 2 )  y   (T  x1  y)   (T  x 2  y) T  x  (y1  y 2 )   (T  x  y1 )   (T  x  y 2 ) テンソル表現 Tij (x  x ) y  T x y  T x y i 1 i 2 j i ij 1 j i ij 2 j (40) Tij x (y  y )  Tij x y  Tij x y i i 1 i 2 j i 1 j i 2 (41) 2重線形性!
  52. 52. 多重線形性 • 3階テンソルの積=スカラー テンソル表現 Tijk (x  x ) y z  T x y z  T x y z i 1 i 2 j k i ijk 1 j k i ijk 2 j k (42) Tij x (y  y ) z  Tijk x y z  Tijk x y z i 1 j 2 j k i 1 j k i 2 j k (43) Tijk x y (z  z )  Tijk x y z  Tijk x y z i j k 1 k 2 i j k 1 i j k 2 (44) 3重線形性!
  53. 53. 多重線形性 • “厳密には多重線形性をもつものをテンソル という” • “一般にn階のテンソルはn階の変数それぞれ に関して線形であるというn重の線形性を持 つ”
  54. 54. Thank You!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×