三点直角法による空間座標の取得とその応用
6年A組

川口 恭平

指導教諭 末谷 健志

１．要約
特殊なマーカを使用することで、物体の空間座標をカメラ一台で正確に取得するアルゴリズム（これを三点直角法と名付けた）の開発に成功した。また、独自に構築した 3DCG の描画システムとあわせ、カメラにより得られた現実の映像にリアルタイムに 3DCG を合成するシステム（コンポジット 3D と名付けた）の構築に成功した。
キーワード モーションキャプチャ、YUV、3DCG、USB カメラ、透視投影

２．研究の背景
近年、コンピュータの普及と高速化にはそのシステムと 3DCG 描画システムを併用めざましいものがあり、一昔前までは処理することで擬似的なヴァーチャルリアリテ能力的に不可能とされていたことも今ではィを実現する。

簡単に実現できるようになった。そこで、これまで高価な機材や設備を必要とした物

４．研究の内容

体の座標取得―モーションキャプチャ―が（１） 仮説

一般家庭にあるパソコンと安価な USB カメ

仮説Ⅰラを用いて実現できないかと考え、その研三点直角法を用いてマーカの空間座標究に取り組むことにした。また、前回の研をリアルタイムに取得することができる。

究において構築することができたオリジナ

仮説Ⅱ

ルの 3DCG 描画システムとそのシステムを仮説１におけるシステムを用いて、実あわせることで、仮想的なヴァーチャルリ際の映像にリアルタイムに 3DCG を合成

アリティを実現できないかと考え、その研することができる。

究に取り組んだ。
なお上記仮説を検証するソフトを開発す

３．目的
一般家庭にあるパソコンと安価な USB カ
メラを用いて、物体の正確な空間座標取得る環境は以下の通りである
OS：Windows XP SP2
IDE: Microsoft Visual Basic 6.0を実現するシステムを構築する。物体は大きさがあるので位置といっても一概には定められない。そこで物体のある点をその物（２） 研究の方法
研究Ⅰ

体の位置の代表点として定め、その代表点カメラで識別できる三つの点（以下、識の空間座標を取得する方法を考える。また、別点）で直角二等辺三角形をつくった下記

のようなマーカを代表点につける。そしてが成り立つ。

USB カメラでそのマーカを写し、その位置また、カメラ映像における、識別点の平を三点直角法によって決定する。なお、識面座標をそれぞれ Q1 ( x1′ , y1′ ) , Q2 ( x 2′ , y 2′ ) ,別点として今回は三つの異なった色の粘土

Q3 ( x3′ , y 3′ ) とおくと、P → Q は透視投影なを使い、YUV 形式に変換したカメラ映像かのでら色の違いを利用してそのカメラ映像におQi =ける座標を取得する。

(i = 1,2,3)

S  xi  z i tan θ  y i 

Sは映像の幅長 θはカメラの画角が成り立つ。
以上の式を未知変数 z1 , z 2 , z 3 についての
図 1―三点直角法―方程式として解くことで、マーカ上の識別点の空間座標 P1 , P2 , P3 を決定する。実際に計算すると、次の方程式系を得る。

三点直角法とはカメラ映像が物体の空間座標を透視投影した結果として得られるも( pγ + 1) z1 + {( pβ 2 + 1) z 2 + ( pβ 3 + 1) z 3 }z1 + ( pδ + 1) z 2 z 3 = 02のであると仮定し、カメラ映像上のマーカ( pβ 2 + 1) z1 ± {( pβ 2 + 1) 2 − ( pα 2 + 1)( pγ + 1)}z1 + ( pα 2 + 1) L22の位置情報から、物体の空間座標を算出す

z2 =る方法である。
なお、計算結果として得られる空間座標はカメラの位置を原点とし、カメラ映像の縦横、および奥行きを軸とした正規直交系の座標として得られる。
マーカ上の識別点の空間座標を

pα 2 + 1( pβ 3 + 1) z1 ± {( pβ 3 + 1) − ( pα 3 + 1)( pγ + 1)}z1 + ( pα 3 + 1) L222z3 =pα 3 + 1

β 2 = x1′ x 2′ + y1′ y 2′β 3 = x1′ x3′ + y1′ y 3′γ = x1′2 + y1′2
δ = x 2′ x3′ + y 2′ y 3′

 tan θ 
p=

 S 
a 2 = x 2′ 2 + y 2′ 22

a 3 = x3′ 2 + y 3′ 2P1 ( x1 , y1 , z1 ), P2 ( x 2 , y 2 , z 2 ), P3 ( x3 , y 3 , z 3 )この方程式系を z1 について解くのだが、ことおくと、この三つの識別点が直角二等辺の方程式系を代数的に解くのは困難なので、三角形をなすことから、解は二分法による近似解として計算する。

 P1 P2 ⋅ P1 P3 = 0
 P1 P2 = L P1 P3 = L（ L は二等辺の長さ）

このとき、二分法の初期値としてz m = 0,z M = min(( pα 3 + 1)
( pα 2 + 1)
L,L)
( pβ 2 + 1) 2 − ( pα 2 + 1)( pγ + 1) ( pβ 3 + 1) 2 − ( pα 3 + 1)( pγ + 1)

を与えるのが適当である。なお、根号内が正確な空間座標を取得することができた。

両方とも負になる場合、経験的にではある

また、単位を厳密に設定することで、空が解が存在しないようである。

間座標の単位をメートル法など、現実になお、解が２個以上でる場合があるが、使っている空間距離の単位にすることがその判別は上記の式から行うことはできなできた。問題点としては、識別点の座標いので、実際の映像と比較し、現実に適合取得の精度がやや低かったため、算出しするほうを選択する。

た座標に多少のブレがあったことと、カメラの画素の限界やレンズのゆがみなど研究Ⅱから、完全な透視投影モデルが実現され三点直角法によって得られた座標を元にず、カメラからの距離が大きくなればな三次元座標の平行移動、回転を行い、そのるほど、算出される空間座標の誤差が大結果を 3DCG としてカメラ映像に上書きすきくなったことがある。また、三点直角る形で合成する。この 3DCG を描くのに必要法の解の判別に今回は識別点の見かけのな描画エンジンは、独自に開発した。

大きさを用いたのだが、大きさの取得のなお、このときの座標変換の式は以下のとおりとする。


P1 P2X⋅P1 P2

P1 P3
 + P1X′ = ⋅X
P1 P3
 P1 P2 × P1 P3 X ⋅  P1 P2 × P1 P3


精度が悪いためたびたび誤った解を選択していた。
―研究Ⅱ―
三点直角法によって算出された識別点の空間座標をもとに 3DCG をリアルタイムに合成することができた。また、光源の位置をうまく設定することでより現実味のある合成を可能にすることができた。
問題点としては、三点直角法の処理と3DCG 描画の処理を並行しておこなうため、（３） 研究の結果全体として処理が重かったことが上げら研究Ⅰれる。また、マーカよりも手前に何か物マーカの空間座標をリアルタイムに取得することができた。
研究Ⅱ

カメラ映像のマーカの位置に3DCG をリアルタイムに合成できた。
以上の結果より、仮説Ⅰ、Ⅱを実証することができた。

体があっても、3DCG がその上に上書きされてしまうので、結果位置関係に矛盾が生じることがあった。

６．まとめと今後の課題
今回の研究で開発した三点直角法は、精度、処理速度ともに実用的であり、さまざ

５．考察
―研究Ⅰ―
三点直角法によりマーカ上の識別点のまな分野に応用できることが確認された。
今後は、その精度を向上させるために、識別点の座標取得精度の向上および最適解の選択アルゴリズムの改良が考えられる。まX

YZた、3DCG の処理をハードウェアに任せるこP1-1.2-1.3

21.5とによる処理速度向上が考えられる。三点P2-2.9-2.5

17直角法が高価な機器や高速なコンピュータP33.5-1.8

19.9を必要としない点から、インターネットシ誤差ョッピングなどでの模様替えのシミュレー研究Ⅱ

4. E-2ションや、建物の建築後の景観をシミュレーションするなどの応用が考えられる。

７．謝辞
今回の研究を通じて協力してくださった末谷先生にこころよりお礼申し上げます。

図 4

８．資料
研究Ⅰ

図 5

図 2XYZP10.5-0.447.6

P2-0.8-1.943P35.3-0.646.2

誤差4.7 E-2

図 3

図 6

図 7