ランダムドットパターン投影法によるデプスカメラの動作原理
上田智章（Neo-Tech-Lab）

Microsoft社
Kinect for Windows

赤外線 波長827nm
約30,000個のランダム・ドット・パターン

Neo-Tech-Lab.com【骨格追尾】【Natural User Interface】【デプス画像】

Neo-Tech-Lab.com【理由】
赤外線ランダム・ドットで非接触バイタル・センシング

呼吸赤外線脈波

【目的】

Neo-Tech-Lab.com

マイクロフォン・アレイ

Microsoft社
Kinect for Windows①小型化②組込マイコンでの利用③距離範囲、精度の変更

加速度センサで仰角制御

【イスラエル Prime Sense社の特許】

レンズ

Neo-Tech-Lab.com

マイクロレンズアレイ

拡散板

レンズ
半導体レーザー【付記】米国特許出願明細書US20100118123の図７、図８

Neo-Tech-Lab.com【光切断法】

x

Neo-Tech-Lab.com

yO

USB
カメラ-dz

被写体の深度(z)が変われば、カメラで撮影しているレーザーポインターの光点のx座標も水平方向に変化する。

z
キャプチャ画像のスクリーン位置z

被写体

キャプチャ画像のスクリーン位置
被写体

x-d

O

x-d

O

【基礎知識】『レーザーポインタとUSBカメラ１台で測距できる』

Neo-Tech-Lab.com

AE-UM232R
GND 24-

3.3V 19
D+42mmLM-102-B

アクリル製
ケース

UCAM-DLY300TA

【基礎知識】『レーザーポインタとUSBカメラ１台で測距できる』

Neo-Tech-Lab.com

【基礎知識】『レーザーポインタとUSBカメラ１台で測距できる』
Z

スクリーン

被写体

被写体

被写体

被写体

X
LC

Neo-Tech-Lab.com

Neo-Tech-Lab.com
x0

カメラ
kL-Zd

Lw
Nx Z
Ld

Zd

x0
Zd

ポインタ

Lx
1-kx１0 レーザーd: レーザーポインタとカメラ間の距離
L:レーザーポインタとスクリーン間の距離
Lw: スクリーンの横幅(距離)Nx: スクリーンの横幅(画素数)
Zd: レーザーポインタと被写体間の距離
Lx: 光点のスクリーン上の移動距離x1-x0: 光点の水平移動シフト画素数

Neo-Tech-Lab.com

横軸：水平方向のシフト量
縦軸：距離 単位：ｍｍ

単位：ピクセルN x dL zd N x d  Lw x1  x0 x

Neo-Tech-Lab.com

yO-dz

USB
カメラ

垂直方向には同時多点測定が可能

プロジェクタ
縦線の数を増やせば、並列性は増すが、くっつけ過ぎると線の識別が困難になる
USBカメラNeo-Tech-Lab.com

1)3) あ い う え お か き く け こ
4)
m系列符号

1-1 0

5

1015202530

Neo-Tech-Lab.com【Kinectセンサ】『デプスカメラの動作原理』

【Kinectの赤外線投影パターン】

SDK Ver.1.6のサンプル使用

Neo-Tech-Lab.com

まずは….可視光で実験
プロジェクタ EPSON EB-S02

Neo-Tech-Lab.com

カメラ ELECOM UCAM-DLY300TA

d=140mm

【 再現実験】 『Kinect Infrared Random Dot 』

Neo-Tech-Lab.com

というわけで……..Excel VBAで作成したランダム・ドット・パターン

というわけで……..Excel VBAで作成したランダム・ドット・パターン

【乱数の性質】重なるのは自分自身の位置だけ。

相互相関のピーク

【ｍ系列符号でランダム・パターン生成】

Neo-Tech-Lab.com【図１】ランダム・ドット・パターン(160×100画素) 【図３】相互相関の結果【図４】相互相関結果【図２】部分パターン(20×20画素)

Neo-Tech-Lab.com【投影パターン】【スクリーン位置】【被写体が９cm手前にある場合】

被写体の深度によってX座標方向にシフトする【被写体が１３cm手前にある場合】
Piron式Lukaモデル

【１個のWebcamにデプスカメラの機能を付与する方法】
奇数フレーム

偶数フレーム

投影パターンI
ランダムドットパターンを投影

反転パターンを投影
物体色

キャプチャ画像Aを取得

キャプチャ画像Bを取得

x
反転パターン

I
物体色+-++

Ix
検出されたパターン画像x
検出パターン

1/2

カラー画像

Neo-Tech-Lab.com

【手動シフトで再構成できることを確認】

黒っぽい部分がボールのスライス【手動シフトで再構成できることを確認】

黒っぽい部分がボールのスライス【手動シフトで再構成できることを確認】

黒っぽい部分がボールのスライス【手動シフトで再構成できることを確認】

黒っぽい部分がボールのスライスカメラで取得した
パターン画像移動平均処理ＦＩＦＯxの管理ポインタはpX
新規データ

ＦＩＦＯxyの管理ポインタはpXY
新規データ SumX

最古データ

1次元水平方向FIFOx
最古データ
新規データ
累積加算値

SumX-++【水平方向の累積加算処理】

×

最古データ

新規データ
累積加算値

最古データ

SumX

SumXYi-++シフター

SumXYの管理ポインタはpY
n×n画素矩形領域の SumXYi
累積加算値SumXY[]

投影パターン
画像【垂直方向の累積加算処理】Neo-Tech-Lab.com【撮影されたランダム・ドット・パターン】【水平シフト量のマップ】

ランダム・ドット・パターンとは、ランダム(無秩序)という他にはない規則性が存在するパターンのこと

Captured Pattern

Shift
0

Moving Average

Shift
35

Moving Average

Projection Pattern

Shift
44

Moving Average

Shift
53

Moving Average

Z (Depth)

Z0

Z35

Z44

Z53

Σ

X Shift【超高速アルゴリズム】

Neo-Tech-Lab.com
Projection Pattern

Captured Pattern
Shift
0

Pre-Convoluted Code Pattern

ΣShift
44

Shift
35

Z0

Z35

Shift
53

Z44

Z53
Z (Depth)

X Shift

Moving Average

Offset Cancel

処理速度は1000倍程度の向上が可能

m系列符号発生器+DD

ｎ個のレジスタ
符号長 2n-1ビット長DD

m系列符号

m系列…

20051015202530-2

自己相関値

自己相関値

35302520151050-5 0510152025303540

【符号の加算と相互相関】
原符号を反転+1位相シフト

原符号を-1位相シフト-1 0 +1【符号の加算と相互相関】
原符号をn倍反転+n位相シフト

原符号をn倍-n位相シフト-1 0 +1z

Oxx【順方向問題】
推定投影パターンO
シフト量d
推定デプス値z関数 (影は0)関数
Affine Transformation
Texture Mapping

実測パターン S j
部分誤差 e j  S j  O jnmO j    ij zii 1En

最小２乗法 E e j  (S j  O j )2
評価関数Ej 1j 1
2

未知数ziを含まない部分 S j  O j   ij zi  ij zi

未知数ziを含む部分zi  zi  nj 1n1

zi

2ij

   ij ( S j  O j )
j 1

m

2

O j ziO j    ij zii 1

E   e j   ( S j  O j )   ( S j  O j   ij zi )   ij zi nnn

2j 1

j 1n

2

2j 1nnj 1j 1E  z   ij  2zi   ij ( S j  O j   ij zi )   ( S j  O j   ij zi ) 22ij 12E  Ai2 zi2  2 Ai Bi zi  Ci   Ai zi  Bi   Ci  B i22

★一般の投影パターンを既知のαijとする。目標とする水平シフト関数をSjとすれば基底遷移アルゴリズムで、Pre-Convoluted Code Pattern z を求めることができる。
★実質的にde-convolutionと同じなのだが、連立方程式を解く方法では、ノイズを掃き集める結果となってしまう。基底遷移ではノイズは満遍なく平坦化される。

【まとめ】①ランダムドットパターンによるデプスカメラ
アルゴリズムとその高速化手法について紹介、説明を行いました。
②精密距離測定で呼吸を、赤外線反射強度で脈波測定を行うことができます。
③処理の高速化によって、Windows7や8でなくてもデプス画像が得られることで、今後組込応用を行う予定です。
●距離情報を音に変換するCyber Eye●バイタルを見守るシステム④Skeleton TrackingやPolygon Fittingに関してもオリジナル・アルゴリズムを開発する予定です。

【特許出願明細書の調査方法】 Neo-Tech-Lab.com
イスラエルのPrime Sense社の出願を調べる①米国特許庁で出願番号を調べる②GoogleでPDFを取得する【米国特許出願明細書】
US20100118123【請求項】 22-24, 46-48, 49-50, 51-52【取下げ】 1-21, 25-45

【取下げ】【要素に複数のマイクロレンズを含む】【付記】
米国特許出願明細書
US20100118123

Neo-Tech-Lab.com

【取下げ】【要素に複数のマイクロレンズを含む】【付記】
米国特許出願明細書
US20100118123

Neo-Tech-Lab.com

Neo-Tech-Lab.com【要素に複数のマイクロレンズを含む】【付記】
米国特許出願明細書
US20100118123

【要素に複数のマイクロレンズを含む】【付記】
米国特許出願明細書
US20100118123

【Prime Sense社のマイクロレンズアレイ】

マイクロレンズアレイ

高輝度LED
照度斑を抑制する目的の光拡散素子(Diffuser)①【マイクロレンズアレイ】②【プロジェクタ】【付記】米国特許出願明細書US20100118123の図７、図８
Neo-Tech-Lab.com

Neo-Tech-Lab.com

波長で分光（チャープ）Light Coding技術

あういか
おえ

けくきしさこシンボル
投影法
乱数パターン
投影法
プロジェクタ

USBカメラ

Neo-Tech-Lab.com

レンズ
マスクパターン
レンズ
CCD
高輝度
赤外線LD ランダムドット

PC用プロジェクター

USBカメラプロジェクター【図3.1】デプス・カメラの構造と動作原理実証用装置

【Kinectアプリケーション事例】 Cyber Sign
人物の手の動きの履歴残像をシステムに対するサインとして使うデモプログラムを紹介します。人物が音声認識で指定した手で宙に直線や円、円弧を描くと、１秒間の残像から円の中心座標と半径を求め、半径が大きければ、直線、半径が小さければ円として最小二乗法で近似を行います。直線の場合には履歴残像に移動速度と慣性をつけて、ボールを飛ばすように離れたコマンド・ボタンを押すことができます。

(xc, yc)【図２】円または円弧の中心座標(Xc,Yc)を推定す
る理論の説明図まる！

E

変数xcを含む部分

変数xcを含まない部分na x  b y  c j 1a j  bj

2

Ej cjc2

ここで、

j2xc
BAB
 2AAO j  a j xc  b j yc  c j  a j xc  O j  a j xc  【図４】評価関数は放物線xc  と書き換えると、誤差評価関数Eは次式のように整理されます。

ajnE  xc 22j 1 a j  b j2na j O j  a j xc j 1a j  bj

 2 xc 222n

O  a x j 1aj  b

2j2j c2
j

変数xc以外の部分をわかりやすく以下のように記号で表記します。
2najj 1a j  bj

A 222na j O j  a j xc j 1a j  bj

AB  22n

O  a x j 1

aj  bC

すると、関数Eは変数xc関して放物線だとわかります。
2 2ccc2

j2j c2jE  A x  2 ABx  C   Ax  B   C  B 2
放物線の軸に関係する部分

2

放物線は図４に示されるように、軸xc＝－B/Aで最小値C－B2の値になります。
つまり、変数xcを軸値に変更すれば、誤差Eは最小になるわけです。
na j O j  a j xc a j  bjBABj 1xc     2  2nAAaj2

 a bj 12j2

 xc 2jna jO j

 a bj 12

jajn2j

同様に、未知数xcを固定して未知数ycを変数として扱えば、
nyc  yc b jO j

 a bj 12jbjnが得られます。

j2

 a bj 122j2jj2

 a bj 122j【Kinectの応用】

Neo-Tech-Lab.com【デプスカメラ】●AR楽器
ドラム、ギターがなくても演奏できる●学習支援システム 英語をはじめとする言語学習の支援●防犯システム
遮光式と異なり、ランダム・ドット・パターンで広域をカバーする【デプスカメラ⇒立体音響】●視覚障害者向け知覚コンバータ Cyber Eye
デプス・カメラで得た３次元情報を３次元立体音響に変換し聴覚で見る(Keywords: バイノーラル録音、頭部インパルス応答、Holophonics)●健常者向け知覚コンバータ
死角を無くす。（後方から接近する危険を察知）●自動車用知覚コンバータ【フェース・トラッキング】●人工声帯 Cyborg Vocal Band 喉頭がんで声帯を無くした人向け●携帯電話 脳梗塞早期診断、３Ｄ写真撮影、プライバシー保護(画像差し替え)【乱数の性質を使った計測技術】●センサ１個で３次元座標を計測
携帯のマイク１個で超音波断層撮影。肝硬変やポリープの診断機能。
●センサの超高感度化を達成する
例：磁気抵抗素子(MR)センサで心磁(0.1fT～150pT)を計測。虚血性心疾患の早期診断等。

【音の拡張現実】●Kinectで楽器を構成する

【Kinectを自作するプロジェクト】
ランダムドットパターンを投影するプロジェクタを製作

【Kinectの小型・低価格化】

【Cyber Eyes】
深度情報を音に変換する知覚コンバータ

【navigation】●運転手の死角の物体の存在を音で知らせる。
Holophonics(立体音響)

【人工声帯】●Face Trackingとインピーダンス計測の組み合わせ
電流印加電極電流印加電極口腔内の舌の位置が変われば体表面電位も変わる

電圧測定電極【Kinectアプリケーション事例】 Cyber Board
人物が指し示す表の位置に合わせて文字を発音したり、登録された.wavファイルを再生します。教育や介護等の目的で利用することができます。
１

２

４

あいう

えお

かきくけ

こ

さしす

せそた

ち

つてとなにぬ

ねのはひふへほ３【応用】●アルファベット、基本英会話、１００マス計算等にも応用可能。
●文字だけでなく、シンボルに置き換えて、意思疎通のツールに使うこともできます。
介護や案内板、メニュー選択のツールとしてあるいはBGM playerとしてご利用できます。
【使い方】●表の大きさは骨格抽出と音声認識で４角を登録。
●使う手も音声認識で左右を指定。
●0.5秒間同じ場所に手をかざすと発音。

【ノイズを使い広帯域で測定してセンサ感度を増倍】

SC  W log 2 1   N
Vout

C:通信容量[bps], W:帯域幅[Hz],S:送信電力[W], N:ノイズ電力[W]

S/N改善比 Wfmfc

検出信号のノイズfz
fm
通常の位相検出のノイズ

ノイズ
拡散拡散抑制されたノイズffm
W
図２ ノイズ拡散抑制法による高感度検出の原理

【Holophonic Sensor with Random Hole Pattern】
インパルス音源(δ(t)関数音源)を仮定すると、音源
この問題は円形ピストンが作る近距離音場と等価
マイクロフォン内部の伝搬時間を同じに設計

順次、小穴に入射音源の３次元座標(xs, ys, zs)を与えれば、円形ピストンの理論式を使って、各小穴の速度ポテンシャル応答を求めることができる。
ランダム穴を持ったマイク内部に入射後は円形ピストンの法線方向に音源がある場合と同じ ⇒ 伝搬時間分ずれる

Random Hole正弦波１波音源の場合

円形ピストン振動面個々の小穴に対する速度ポテンシャルのインパルス応答は解析的に求めることができる。

【Holophonic Sensor with Random Hole Pattern】
y=155
y=155

y=255

y=255
y=155

y=255
φ=-0.6

φ=0.0

φ=0.6

【図１】相関値の等高線図
相互相関の無相関性を説明する図【Holophonic Sensor with Random Hole Pattern】

音圧応答波形【Holophonic Sensor with Random Hole Pattern】
励磁音響源受波器

人体
図６ 人体の標的臓器に補足されたフェライト粒子を励磁音響効果で検出するためのプローブ．

73