2007 年度 ETL

No.6

フーリエ変換法を用いた三次元形状計測

インストラクター
C 科武田研 M2 尾藤浩一

ATHE UNIVERSITY OF ELECTRO-COMMUNICATIONS
Department of Information and Comunication Engineering

目次
第 1 章 目的1.12

目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

第 2 章 原理

2.1

2
3

一次元のフーリエ変換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32.1.1フーリエ変換の定義 . . . . . . . . . . . . . . . . . . . . . . . . . .

42.1.2フーリエ変換の基本的性質 . . . . . . . . . . . . . . . . . . . . . . .

42.1.3FFT（高速フーリエ変換） . . . . . . . . . . . . . . . . . . . . . . .

42.2

縞パターン投影法による三次元形状計測（一次元） . . . . . . . . . . . . .

52.3

フーリエ変換法を用いた形状計測 . . . . . . . . . . . . . . . . . . . . . . .

6第 3 章 実験

93.1

実験器具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

93.2

実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

93.2.1

実験手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2.2

解析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.2.3

課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

14

参考文献

1

第1章
目的
1.1

目的

主に干渉計測において縞信号解析は重要である。縞信号解析によって位相を求める手法の一つにフーリエ変換法がある。このプログラムでは、フーリエ変換法の特徴に活かせる解析例として三次元形状計測（三次元スキャナー）における縞パターン投影法を通してフーリエ変換法を学ぶ。この実験を通してフーリエ変換法への理解を深めると共に、その利点や弱点について学ぶ。

2

第2章
原理
信号解析を含む、計測における本質は「対象物のもつ情報を他の不要な信号からいかに分して取り出し取得するか」にある。フーリエ変換法はこの点において強力な手法と言える。
ここではそのフーリエ変換法の基礎となるフーリエ変換の復習とフーリエ変換法を用いた縞パターン投影法による三次元形状計測の原理について紹介する。実際の三次元形状計測では二次元の画像に対してフーリエ変換法を用いて物体の高さ情報を抽出するが、ここでは簡単のため一次元のフーリエ変換法を例として説明する。
また、計算機でフーリエ変換を行う場合に非常に重要かつ強力なアルゴリズムである

FFT について簡単に紹介する。FFT の詳細については参考文献に挙げたものなどの専門書に譲る。

2.1

一次元のフーリエ変換

フーリエ変換の大きな意義は、フーリエ変換によって関数をその周波数成分の連続スペクトルに分解することができる点にある。この事は時間周波数のみでなく、空間周波数についても同様に作用する。

3

第 2 章 原理

2.1.1

フーリエ変換の定義

複素数の値を持つ関数 g(x) のフーリエ変換 F{g} は以下のように定義される。[1]Z ∞F{g} = G(f ) =g(x)e−j2πf x dx(2.1)−∞

同様に関数 G(f ) に対する逆フーリエ変換は以下のように定義される。
Z ∞−1
F {G} = g(x) =G(f )ej2πf x df(2.2)−∞

ここで j は虚数単位であり、f は周波数と呼ばれる。
一般にフーリエ変換は ω の関数として書かれる場合が多いが、ここでは光分野での利便性を考えて f の関数として記述している。

2.1.2フーリエ変換の基本的性質

フーリエ変換について以下の性質が成り立つ。

1. フーリエ変換の線形性 [1][2]F{ag(x) + bh(x)} = aG(f ) + bH(f )(2.3)

2. フーリエ変換の周波数シフト [1][2]©
ªF g(x)ej2πf0 x = G(f − f0 )

2.1.3

(2.4)

FFT（高速フーリエ変換）

計算機内では連続フーリエ変換は離散フーリエ変換として近似して行われている。画像が N × N ピクセルの画像である場合（N は整数）、離散フーリエ変換では計算量のオーダーは N 2 である。しかし FFT（高速フーリエ変換）を用いる事でこの計算量を少なくする事が出来る。その効果は N が 2 の倍数である時、最小の計算量オーダー N log N となる。[6]対象画像サイズ N が素数でない場合、画像を N 0 × N 0（ただし N 0 は N の約数）の画像に分割する事により FFT を適用してフーリエ変換の計算を高速化する事が出来る。

4ETL テキスト

第 2 章 原理

2.2

縞パターン投影法による三次元形状計測（一次元）

図 2.1 プロジェクタによる縞パターンの投影縞パターン投影法はまず図 2.1 のように高さ L の位置にあるプロジェクターから縞パターンを物体に対して斜めに投影する。次に物体表面上の変形格子像を距離 D 離れた位置にある CCD カメラで撮影し、得られた画像から物体形状による縞パターンのずれ量を位相として取り出す手法である。CCD カメラによって撮影された変形格子像 g(x) は次のように表される。[3]g(x) = a(x) + b(x) cos{2πf0 x + φ(x)}(2.5)

a(x) は背景光、b(x) は縞の明暗変化の振幅分布である（ここでは b(x) は実数関数であると仮定する）。f0 は投影縞パターンの縞間隔に依存するキャリア周波数であり、φ(x) は物体形状の情報を持つ位相である。位相 φ(x) と物体の高さ h は次式で関係付けられる。

φ(x) =2πf0 Dh= 2πf0 h tan θL(2.6)

変形格子像の画像 g(x) にフーリエ変換法を用いて不要信号を除去し、物体の高さ情報を持つ位相 φ(x) のみを取り出す。

5ETL テキスト

第 2 章 原理

2.3

フーリエ変換法を用いた形状計測

一次元の観測物体として図 2.2 のような三角波を用いてフーリエ変換法のシミュレーションを示す。図 2.2 の三角波を位相 φ(x) として含む変形格子像 g(x) は図 2.3 のようになる。
2Sankakuha input’gx.txt’10"sankaku.txt"

81.56
140.5
2000100200300400500050

図 2.2 観測物体とした三角波

100150200250

図 2.3 変形格子像 g(x)図 2.3 は式 2.5 で表される。これを変形すると

g(x) = a(x) + b(x) cos{2πf0 x + φ(x)}½¾exp[j{2πf0 x + φ(x)}] + exp[−j{2πf0 x + φ(x)}]= a(x) + b(x)2©
ª1= a(x) + b(x) ej2πf0 x ejφ(x) + e−j2πf0 x e−jφ(x)2µ¶1j2πf0 x∗−j2πf0 xjφ(x)= a(x) + c(x)e+ c (x)ec(x) ≡ b(x)e2(2.5）
(2.7)
(2.8)
(2.9)

ここで ∗ は複素共役を表している。
ここで式 2.9 をフーリエ変換するとフーリエ変換の基本的性質である線形性と周波数シフトよりG(f ) = A(f ) + C(f − f0 ) + C ∗ (−f − f0 )µA(f ) ≡R∞a(x) exp(−j2πf x)dx(2.10)¶R −∞∞C(f ) ≡ −∞ c(x) exp(−j2πf x)dxとなる。物体形状の情報を含む関数 C(f ) がキャリア周波数 f0 によって不要な信号 A(f )と分離されているのがわかる。このスペクトル G(f ) の式 2.10 を構成する各関数の絶対値（|A(f )|, |C(f − f 0)|, |C(−f − f 0)|）をスペクトル空間に図示すると図 2.4 のようになる。

6ETL テキスト

第 2 章 原理

図 2.4g(x) のスペクトル |G(f )|式 2.10 において右辺第二項のみを抽出する事で不要信号を取り除き、φ(x) に関する項だけを取り出す事が出来る。この操作はシミュレーションにおいては図 2.4 のスペクトル空間において C(f − f0 ) のスペクトルをフィルタリングして取り出す操作となる。フィルタリング後のスペクトルを図 2.5 に示す。

160

160
"fftmcut.txt""fftmshift.txt"

1401401201201001008080606040402020000100200300400500

図 2.5 C(f − f0 ) のフィルタリング0100

図 2.6200300400500C(f − f0 ) の原点へ f0 シフト

こうして得られたスペクトル C(f − f0 ) をキャリア周波数 f0 分だけ原点方向へシフトさせる事でスペクトル C(f ) が得られる（図 2.6）。
このスペクトル C(f ) に対して逆フーリエ変換を行う事で c(x) が得られる。

F−1Z ∞{C(f )} = c(x) =C(f ) exp(j2πf x)df(2.11)−∞c(x) = 12 b(x) exp[jφ(x)] は複素平面上で図 2.7 のように表される。

7ETL テキスト

第 2 章 原理

図 2.7 複素平面上の c(x)図 2.7 より、φ(x) は c(x) を用いて以下のように表す事が出来る。

φ(x) = tan−1

Im[c(x)]Re[c(x)](2.12)

以上の操作により物体形状の情報を含む位相 φ(x) を抽出できた。
フーリエ変換法によって得られる位相 φL (x) は実際の位相 φ(x) に対して次式で表される。

φ(x) = 2πn + φL (x)(2.13)

この事から物体形状によっては得られる位相分布が (−π, π] の範囲に折りたたまれてしまう（図 2.8）。この効果を補正して実際の位相分布を求める作業を位相アンラッピングという（図 2.9）。

410’isou.txt’’isouunlap.txt’
9382761504-132-21-30-4-101002003004005000

図 2.8 位相分布が折りたたまれた φ(x)100200300400500

図 2.9 位相アンラップ後の φ(x)こうして変形格子パターン g(x) からフーリエ変換法を用いて物体形状を復元する事ができた。

8ETL テキスト

第3章
実験
前章で説明した一次元のフーリエ変換法を二次元に拡張する事で縞パターン投影法による三次元形状計測を実現する。

3.1

実験器具

1. 液晶プロジェクタ：観測物体に縞パターンを投影する。
2. モノクロの CCD カメラ：観測物体上の変形格子像を観察する。
3. 『FtmManager』[5]：観察画像に対して二次元 FFT や画像に対する様々な処理を施せるソフトウェア。

4. 縞パターン画像：縞の方向と空間周波数の違う縞パターン画像の中から一つ選ぶ。

3.2

実験

フーリエ変換法によって求められるのは位相であり、観測物体の高さを測定したい場合にはこの位相と高さを関係付ける必要がある。この関連付けは投影する縞パターンごとに必要で、既知の高さを持つ観測物体に対して計測を行う事で関連付けを行う。これを縞パターンの較正と呼ぶ。
今回の実験では物体形状を計算機内に再現する実験を通してフーリエ変換法について理解を深めてもらう事を主目的とし、正確な高さの測定については割愛する。

9

第 3 章 実験

3.2.1

実験手順

既知の高さを持つ観測物体に対して計測を行う事で縞パターンの較正を行う事ができる。ここでは観測物体の例として発泡スチロールで出来た半球の上側部分を切り取ったものを使用する（図 3.1）。この観測物体を用いてフーリエ変換法を用いた縞パターン投影法について手順を説明する。

図 3.1

観測物体

1. パソコンと CCD カメラ、液晶プロジェクタを起動する。
2. 液晶プロジェクタで床上のスクリーンに縞パターンを投影する。
3. CCD カメラで観測物体がない状態でスクリーン上の縞パターンを画像として保存する。（基準画像）

4. 観測物体を縞パターンが投影されたスクリーン上に置く。
5. 変形格子像を CCD カメラで観察し、画像として保存する。（観測画像）
6. 保存した 2 枚の画像を『FtmManager』[5] に取り込む（２枚の画像を１つの FtmManager にドラッグする）。
7. 観測画像の観測物体を中心に適当な大きさに切り出す（画像内の観測物体中心で右クリック＞マウスを動かさずに Ctrl+Shift を押しながら左クリックでドラッグで範囲選択→ Edit ＞ Crop）。[図 3.4]

10

ETL テキスト

第 3 章 実験
この時、画像は縞がある範囲でなるべく大きく取るとよい。『FtmManager』はFFT（高速フーリエ変換）を用いているので、画像サイズ N × N において N が素数にならないように注意する。

8. 画像を基準画像に切り替える（Buffer ＞基準画像）。
9. 観測画像で切り出した場所と同じ場所を切り出す（ソフト右側の拡張コンソールのPrevious → Edit ＞ Crop）。[図 3.2]

図 3.2 基準画像

図 3.3 基準画像のスペクトル

図 3.4 観測画像

図 3.5 観測画像スペクトル10. 切り出した基準画像に二次元フーリエ変換を施す（Calculation ＞ FourierTransform）。
11ETL テキスト

第 3 章 実験

11. 目的のスペクトルを選択する（スペクトル中心で右クリック＞マウスを動かさずにCtrl+Shift を押しながら左クリックでドラッグ）。[図 3.3]
12. フィルタリングする（Edit ＞ PassFilter）。
この時、切り出すスペクトルの範囲は隣の余分なスペクトルを取らないように注意する。隣のスペクトルの中心との距離の半分くらいの範囲で切り出すとよい。

13. 画像を観測画像に切り替える（Buffer ＞観測画像）。
14. 観測画像に対して二次元フーリエ変換を施す（Calculation ＞ FourierTransform）。
[図 3.5]
15. 基準画像で選択したのと同じ場所のスペクトルを選択する（ソフト右側コンソールの Previous）。[図 3.5]

16. フィルタリングする（Edit ＞ PassFilter）。
17. 観測画像のスペクトルに対して逆フーリエ変換を施す（Calculation ＞ InverceFourierTransform）。
18. 基準画像に切り替える（Buffer ＞基準画像）。
19. 基準画像のスペクトルに対して逆フーリエ変換を施す（Calculation ＞ InverceFourierTransform）。
20. 観測画像で求めた位相と基準画像から求めた位相の差を計算する（Calculation ＞PhaseSubtraction → PhaseSubtraction：に基準画像、Conjugate of に観測画像を設定して OK をクリック）。

21. 位相アンラッピングを行う（Calculation ＞ Phase unwraping ＞ Minimum Phase
Spanning Tree）。

12ETL テキスト

第 3 章 実験

22. 表示モードを三次元にする（View ＞ Birds’s-eye view →右側拡張コンソールの Range：を調整する事で画像の横方向のスケールと高さ方向のスケールの比を調整できる）。

[図 3.6]

図 3.6

実験結果

13ETL テキスト

第 3 章 実験

3.2.2解析

位相の値と実際の高さを関係付けたい場合について説明する。先ほど計測した発泡スチロールの実際の高さ 3cm であったとする。実験の結果、位相は最大値 Max：-1.54、最小値 Min：-6.555 であった。よって用いた縞パターンの位相の値 1 あたりの高さ ∆h は以下のように表される。

∆h =3cm= 0.6cm(−1.54) − (−6.555)(3.1)

較正したこの値を用いて、以後同じ縞パターンで計測した他の物体について、位相から高さを求める事ができる。

3.2.3

課題

1. 適当な観測物体を選んで、同様に実験して三次元形状を求めてみよう。
2. 縞パターンの密度（キャリア周波数）や方向は画像をフーリエ変換した後のスペクトルの配置に影響を与える。具体的にどのような影響が現れるか観察してみよう。

3. 自分の携帯電話や手など好きな物を観測してみよう。うまく測れるものとそうでない物があるので、どういう物がうまくいく物でどういう物がうまくいかない物なのか法則を考えてみよう。また、うまくいかなかったらうまくいかない理由を考えてみよう。

14ETL テキスト

参考文献[1] J.W.Goodman, “Introduction to fourier optics, 2nd ed” pp. 4-7, (1996).
[2] 松下泰雄, “フーリエ解析”, 培風館, pp. 63-72 (2002).
[3] 中村裕, “Excess Fraction 法による不連続物体の位相アンラッピング”, 電気通信大学
卒業論文, (2004).

[4] 武田光夫, “フーリエ変換法によるしま画像解析とその応用”, 応用物理 第 62 巻 第 6 号,
(1993).
[5] FtmManager Ver. 0.7, Copyright Atushi Wada.
[6] E.ORAN BRIGHAM, 宮川洋 今井秀樹 訳, “高速フーリエ変換”, 科学技術出版社, pp.
166-171 (1979)15