日本バーチャルリアリティ学会第 11 回大会論文集 (2006 年 9 月) ハンディカメラ入力からのシーン解析に基づく ビリヤード支援用 VR 表示システム VR display system for supporting billiard based on scene analysis from handy camera 内山英昭,斎藤英雄 Hideaki UCHIYAMA and Hideo SAITO 慶應義塾大学大学院 理工学研究科 (〒 223-8522 横浜市港北区日吉 3-14-1, {uchiyama, saito}@ozawa.ics.keio.ac.jp) Abstract : We propose a system for supporting billiard game based on scene analysis of the billiard table using a handy camera. Our system computes a position of each ball from input images captured by moving around the table. Then a desired ball path is displayed on a LCD screen of the PC to support the player’s strategy. Captured images are divided into a table region, balls and others. To estimate the position of each ball on the table, we compute a homography of the table by approximating the extracted table region as a polygon. Then we compute the three dimensional position of balls by the homography. Based on the arrangement of the balls, we compute the best route of the balls by a physical simulation. In the experiment, we verify the accuracy of the ball. Key Words: billiard, calibration, homography 1. 2. はじめに システムの概要 図 1 に本システムの入力画像と出力ディスプレイの例を ビリヤードは,球の配置を考えながら打つ方向,強さを 決めるために,物理的思考力を必要とするスポーツである. 示す.図 1 の (a) のようにハンディカメラでビリヤード台 しかしながら,初心者は球を正確に突くことに集中してし 全体が写るように撮影した画像列を入力とする.入力画像 まうため,力学的挙動を考慮しながら打つことは難しい.そ 列から算出した球の配置に基づき,出力では図 1 の (b) に こで,打つ方向を表示することで初心者の支援を行うシス 示すように,手球(打つ球)を的球(狙う球)に当てる位置 テムが提案されている. (イメージボール),狙うポケットを表示し,理想的な球の 従来,HMD を用いるシステム [1] やカメラ・プロジェク 軌跡を力学シミュレーションを用いて示す.OpenGL を用 タを用いたシステム [2] が提案されてきた.しかしながら, いて 3 次元的に描画をしているため,視点を変えて見るこ 機器を装着することでゲームの質感を損ねてしまったり,機 とができる. 器の設置が必要であったりするため,ビリヤードゲームを 行う通常の環境で用いることが難しい.携帯電話などの小 型機器を用いたシステムにすることで手軽に使うことが出 来るようになると考えられる. そこで,本研究ではハンディカメラで撮影した画像列を 入力とし,入力画像から推定した球の軌跡を仮想現実感の 技術を用いてディスプレイに表示するシステムを提案する. 本システムでは,入力画像列からビリヤード台と球の検出 (a) 入力 を行い,力学シミュレーションを用いて算出した理想的な 図 1: システムの入出力 球の軌跡を表示する.このように球を突いてから止まるま での球の挙動を物理モデル基づいて示すことで,物理的な 思考の支援を行う.本稿では,主にビリヤード台と球の検 出について述べる. 442 (b) 出力 3. 提案手法 従来手法におけるビリヤード台と球の検出は,カメラを ビリヤード台の真上に設置することで,ビリヤード台と球 をそれぞれ 2 次元の長方形と円として扱ってきた [2, 3].し かしながら,ユーザが撮影を行う場合,ハンディカメラを 用いて真上から撮影することは難しいため,ビリヤード台 と球を 3 次元的に扱う必要がある.そこで,提案手法では (a) 入力画像 (b) 候補領域のマスク (c) 多角形近似した結果 (d) ビリヤード台のマスク ビリヤード台の平面性を利用して平面射影行列の算出を行 い,球の 3 次元座標を算出する. 3.1 概要 ハンディカメラを用いてビリヤード台全体が写るように 周囲を歩きながら撮影し,複数の視点で撮影した複数枚の 画像列を入力とする. 初めに平面射影行列を算出するために,ビリヤード台の 平面領域の抽出を行う.各画像に対し,色を用いてビリヤー ド台の平面候補領域を算出する.算出した候補領域の中で 最大の面積となる領域について多角形近似を行い,四角形 に近似する.こうすることによって実際のビリヤード台と 画像中のビリヤード台の対応付けを行うことができるため, 平面射影行列の算出が可能となる.平面射影行列を算出し た後,回転行列の性質を用いて射影行列を算出する. (e) ビリヤード台の平面領域 次に,球の検出と判別を行う.ビリヤード台の内側の領 図 2: ビリヤード台の平面領域の算出 域において,色を用いて球の領域候補を算出する.候補領 域中には球以外の領域を含まれるため,算出した候補領域 3.3 の面積と円形度によって球かどうかを判別する.算出した 球は緑マット上に必ず存在するため,3.2 で検出した緑 各球の領域において,どの色の球かをテンプレートの色と マットの領域内において球の領域を検出する.球の領域検 の比較による投票によって決定する. 出は,緑マット領域内において球の候補領域としてを緑マッ 最後に,算出した各球の領域の中心の座標と射影行列を ト以外の領域検出し,その中から球の領域のみを検出する. 用いて球の 3 次元座標を算出する.ユーザが算出結果の判 緑マット領域内の各画素に対して,緑マットの RGB と色 別を行い,良好と判断した場合に座標を確定する. 3.2 球の検出と中心座標の算出 ベクトルとの内積から緑マット以外の領域を検出する.ま ビリヤード台の平面領域の算出 た,球にはビリヤード台の色と似ているものもあるため,色 図 2 の (a) はビリヤード台を撮影した画像の一例である. ベクトルのノルムの差も用いて検出を行う.ノルムの差が ビリヤード台にはボールが置いてある内側の緑マットの領 小さければ色の明るさが近いと考えられるため,差がしき 域と周りの枠の緑マットの領域は共に平面である.内側の い値以下の場合に球の候補領域として抽出すると,図 3 の 緑マットは図 2 の (a) の赤丸部分がクッションによって見え (b) のようになる. ないため,内側の緑マット全体を検出することは出来ない. 球の候補領域内には,球やポケット,クッション部分の影 そこで,本手法においては枠にある緑マットの領域を用い などが含まれる.球の領域のみを算出するために,図 3 の るために,緑マットの領域すべての抽出する. (c) のような球の候補領域のマスクを生成し,各領域を面積 あらかじめテンプレートとして,緑マットの RGB 値を の大きさと円形度によって判別して図 3 の (d) のように球 計測しておく.入力画像の各画素に対し,テンプレートの の領域のみを検出する.図 3 の (e) に球の領域検出結果を RGB の色ベクトルとの内積を算出する.色が近い場合に 2 示す. つの色ベクトルの内角は小さくなるため,色ベクトルの成 図 3 の (f) のように円の各領域において,図 3 の (g) のよ す角がしきい値以下の場合に緑マットの候補領域として,図 うに円近似することで,画像中の円の中心座標を算出する. 2 の (b) のような候補領域のマスクを生成する. 3.4 次に,候補領域のマスク中から面積が最大となる領域を 球の判別 図 4 のように,算出した各球の領域内には,球の色の他 検出し,その領域に対して図 2 の (c) のように多角形近似す に球の下部にできる影,鏡面反射成分などが含まれる.領 る.この多角形の辺のうち,長い方から 4 本を選び,その 4 域内の色の平均を用いると,陰や鏡面反射成分の影響を強 本の辺が構成する四角形が図 2 の (d) のようになる.この く受けるため,誤検出することがある.そこで,どの球か 四角形を緑マットの領域として入力画像から検出すると図 を決定するために投票に基づく判別を行う. 2 の (e) のようになる. あらかじめテンプレートとして各球の RGB を計測して 443 x s y 1 (b) 球の候補領域 X Y Z = [P] (1) 1 P (a) ビリヤード台の領域 = A [R|t] (2) 3.2 において,ビリヤード台の平面領域の算出を行った. 実際のビリヤード台と画像中のビリヤード台の平面領域の 対応付けを行うことで,射影行列を算出することができる. 式 (1) において,平面分のみを考慮する場合には Z = 0 と して考えることができる.すると,射影行列 P は 3 × 3 の ホモグラフィとして考えることができ,4 つ以上の対応点を (c) 候補領域のマスク 用いることで算出できる.3.2 において,平面を四角形に近 (d) 球の領域のマスク 似しているため,4 つの頂点を用いて対応付けを行い,ホモ グラフィを算出する. ホモグラフィを算出できると,内部パラメータ A を算出 することができる.また,回転行列の性質を用いることで, ホモグラフィから回転行列 R と並進ベクトル t を算出する ことができる.A,R,t を用いて射影行列 P が算出できる. (e) 球の領域 (f) 球の例 画像から球の中心の 3 次元座標を算出するためには,式 (g) 円近似 (1) において世界座標 (X, Y, Z) を算出する必要がある.し 図 3: 球の領域算出 かしながら,世界座標の自由度が 3 であるために,画像座 標 (x, y) と射影行列 P からだけでは算出することができな おく.球の領域内の各画素の RGB に対し,各球のテンプ い.そこで,球はどこから見ても円に見えることを利用し レートの RBG と比較を行う.各画素と各球のテンプレート て,世界座標の Z をあらかじめ算出する. の色ベクトルとの内積を算出し,色ベクトルの成す角が最 図 5 から分かるように,画像中に写る円の中心と実際の 小となる球に投票する.手球を 0 番とし,投票を行うと表 1 球における画像に写る点を結ぶ直線は球の中心を通る.そ のようになる.そして,投票結果が最も多い球を算出する. こで,Z が分かれば自由度が 2 になるので,X と Y を算出 することができる.ホモグラフィの算出の際に用いた平面が Z = 0 であり,ビリヤード台のクッションの高さ h と球の 半径 r を既知とすると,球の中心の Z 座標は Z = −(h − r) となる. 図 4: 球領域の色分布 表 1: 投票に基づく判別 ボール 0 1 2 3 4 5 6 7 8 9 判別結果 23 83 0 0 0 0 32 0 15 0 図 5: 球の 3 次元座標の算出 3.5 射影行列と球の中心の 3 次元座標の算出 3.6 ユーザによる判定 3 × 4 の射影行列 P は式 (1) のように画像座標 (x, y) と 各画像に対して球の位置を算出する際,図 6 の (a) のよ 世界座標 (X, Y, Z) の関係を示す行列であり,s はスケール うにビリヤード台の一部やポケットなどを球として誤検出 ファクタである.射影行列は式 (2) のように,3 × 3 のカメ する場合がある.そこで本手法では,初めて球の位置を算 ラの内部パラメータ行列 A,3 × 3 の回転行列 R,3 × 1 の 出できた場合,図 6 の (b) のように表示することで,ユー 並進ベクトル t で表される. ザが算出した位置が正しいかを判別できるようにする.1 度 ユーザが球の位置を決定した場合,他の視点で撮影した画 444 像から算出した球の位置は,今まで算出した球の位置との はないことは,ビリヤード台を見る方向によって照明条件 距離によって正しいかどうかを判定する.正しいと判定し が異なり,台の検出精度が異なることに起因すると考えら た場合,球の位置は平均して算出する. れる. (a) 誤検出 (b) ユーザに対する表示 図 6: ユーザによる判定 4. 実験 あらかじめ計測した位置に球を置き,入力画像列から算 出した位置との比較を行う.入力画像の数は 100 枚とした. 図 8: 各フレームにおける 0 番ボールの座標 図 7 に入力画像の例を示す.白いボールを 0 番,黄色いボー 本システムでは,以上のような手法に基づき全ての球の ルを 1 番,青いボールを 2 番,赤いボールを 3 番とする. 位置を算出した後,手球に初速度と方向を与えて力学計算 を行って各球の軌跡を計算し,その結果得られる球の配置が ビリヤードのゲーム戦略上,良いか悪いかを評価する.こ の評価結果が最適となる初速度と方向を探索し,その探索 結果となる球の軌跡をディスプレイに CG 表示する.この ようにして示された例が,図 1 の (b) で示した軌跡であり, ここでは,球の打つ方向を表示し,球の理想的な動きが表 示されている.なお,このゲーム戦略上の手球の打ち方の 評価法の詳細については,文献 [4] に紹介している. 図 7: 入力画像の例 5. おわりに 本研究ではハンディカメラで撮影した画像列を入力とし, 表 2 に各ボールの計測値と算出値を示す.結果から x 座 出力をディスプレイに球の軌跡を VR 表示するシステムを 標よりも y 座標のほうが多くの誤差を含んでいることが分 提案した.今後,タブレット PC や携帯電話にこのシステ かる.これは,図 7 の赤丸の部分のようなビリヤード台の ムを導入していきたい. 奥の部分が検出しにくかったことが挙げられる. 参考文献 [1] T.Jebara, 表 2: 座標の算出結果 (m) 0 球 T.Starner and Experience with Probabilistic Vision and Wearable 1 x y x y 計測値 0.40 0.85 0.30 0.60 算出値 0.41 0.77 0.29 0.54 2 J.Weaver, A.Pentland: Stochastics: Augmenting the Billiards 座標 球 C.Eyster, Computers, Proceedings of the International Symposium on Wearable Computers, pp. 138-145, 1997. [2] 緒方 祐介, 有田 大作, 谷口 倫一郎: ビリヤードを対象 としたプロジェクタ・カメラシステムによる実世界作業 支援,情処研報コンピュータビジョンとイメージメディ 3 ア,pp. 181-188, 2006. [3] S.C.Chua, E.K.Wong and V.C.Koo:Pool Balls Iden- 座標 x y x y 計測値 0.25 0.35 0.45 0.45 ings of the lntemational Conference on Robotics, Vi- 算出値 0.26 0.31 0.45 0.37 sion, Information and Signal Processing, pp. 312-315, tification and Calibration for a Pool Robot, Proceed- 2003. [4] 内山 英昭, 斎藤 英雄: ハンディカメラ入力によるビリ ヤード戦略発想支援システム,エンタテインメントコン 次に 0 番ボールについて,各フレームで検出された座標 ピューティング 2006. と計測値を図 8 に示す.各フレームにおける誤差は一定で 445
© Copyright 2024 Paperzz