情報処理学会 インタラクション 2016
IPSJ Interaction 2016

163A04
2016/3/4

ひも認識を用いた 3 次元ジェットコースターコースシミュレータ
近成 悠佑†

髙林 悠†

浅井 康平†

中田 崇行†

概要：我々の生活の中には布や紙，ひもといった柔らかく位置姿勢が一定に定まりにくい不定形物体が多く存在している．不定形物体の認識の技術は困難が多く現在確立されていないが，ロボットビジョンにおいては不定形物体の認識技術は非常に重要である．近年，仮想現実感(VR: Virtual Reality)に関する技術はアミューズメントの分野においても我々の身近に溶け込み始めており，ますます我々の生活と VR 技術は密接になっている．このようなアミューズメントとしての VR 技術の応用例として「VR ジェットコースター」と呼ばれるものがあり，VR の世界に存在しているジェットコースターに乗ることができる．大半の VR ジェットコースターはすでに用意してあるコースを走るが，これを前述のひも認識によりコース設定を直感的にすることによってインタラクティブ性を付加することにより没入感を高めることが可能である．本稿では，不定形物体であるひもを 3 次元的に取得，接続を認識し，その結果をジェットコースターのコースとすることでユーザーがより直感的で簡単に計算機上に不定形物体を再現することが出来るインタフェースを目指す．

Three-Dimensional Roller Coaster Simulator Using the StringRecognition

YUSUKE CHIKANARI† YU TAKABAYASHI†
TAKAYUKI NAKATA†KOHEI ASAI†

Abstract: Close to our life, many instability form objects that position and pose is hard to fix exist such as string, cloth and paper
In robot field, recognition technique of instability form object is very important technique because robot want to make out variousobjects. However, recognition technique of instability form object has many weak points, so the technique doesn’t indurate. On theother hand, Virtual Reality (VR) become close to our life to element of amusement in recent years. For example, “VR roller coaster”
is the application of amusement VR technique. When use “VR roller coaster”, we can ride on the roller coaster in virtual space.
Almost “VR roller coaster” run on the prepared rail. However, using our method, we recognize string and make the rail. Therefore,
we can get interactive and increase immersion. In this paper, get the 3D date, recognize attachment, and make the roller coaster’srail. Finally, user can get reassembly of the 3D shape more instinctive and easily．

1. 背景

は予め用意されたコースを走るものであるため，ユーザーの意思が反映されることは少ない．VR アミューズメント

近年 VR 分野は著しい発展を遂げており，現実世界で人がよりユーザー参加型になることでユーザーの楽しみが増間が得られる視覚・触覚などの感覚情報を計算機上で再構え，興味深いものとなると考えられる．従来，参加型アミ築する研究が数多く行われている．これらの研究においてューズメントの「LEGO Block」や「プラレール」は，定形リアリティの高い仮想現実の形成を実現するためには，物物体の組み合わせで作るものであったために，遊びとして体に対する人間の直感的操作を可能にする必要がある．VRの自由度が制限されていた．しかし前述のひも認識を用い技術は研究としてだけではなく，アミューズメントとしてることでユーザーが自由にコースを設計できるようになり，も我々の身近に存在している．例として，ゲーム分野ではインタラクティブ性が高まる．これにより，ユーザーにはOculus VR の頭部装着型ディスプレイ(HMD: Head Mounted

直感的操作によって親近感が湧くと同時に，操作対象であDisplay)の「Oculus Rift」や，SONY から「PlayStation VR」

るひもの形状に対する想像力の働きから心理的な没入感のという HMD が発売される予定で，ますます我々の生活と高まりが期待できる．

VR 技術との距離が近くなっている．このようなアミュー

本研究では，カメラを使ってひも形状物体を認識し，現ズメントとしての VR 技術は「バーチャルロープスライダ

実の 3 次元空間上での位置関係を把握する．そして，ユーー」[1]や「VR ジェットコースター」と呼ばれるものがあ

ザーが現実で直感的に操作したひもの形状をジェットコーり，VR 上に存在しているロープスライダーやジェットコスターのコースとすることが可能なユーザー参加型仮想ジースターに乗ることができる．しかし，これらのほとんど† 富山県立大学
Toyama Prefectural University© 2016 Information Processing Society of Japan784

情報処理学会 インタラクション 2016IPSJ Interaction 2016

163A04
2016/3/4

ェットコースターシミュレータを提案する．

2. 関連研究2.1 ひも形状物体の認識

3. コース設計
本研究は Kinect for Windows SDK（以下 SDK）で行われロボットが生産現場や日常生活において自動的に行動るひも認識の処理と Unity で行われるコースを作る処理のするためには，現実に存在する様々な物体を認識し，それ2 部構成になっている（図 1）．SDK に対して，入力されるらを操作する必要がある．しかし，存在する物体の中でもデータは Kinect の RGB カメラと距離カメラから得られた布や紙，ひもなどの不定形物体の認識を行おうとすると 3

RGB データと距離データ．出力されるデータはひも形状物次元的な認識が必要になり，オクルージョンの影響が大き体の 3 次元データである．そして，Unity に対して，入力さいことや形状が一定ではない等のいくつかの困難があるた

れるのは SDK の出力データから受け取るひも形状物体のめ，不定形物体の認識技術は現在確立されていない[2]．し3 次元データ．出力されるのは，仮想空間上のジェットコたがって，不定形物体の認識が必要なコンピュータグラフースターのコースとなる．

ィックスや VR におけるモデル形成では，コンピュータ上でオペレーターによる手作業によって設定されてきた[3]．
そして，ひも形状物体を認識する研究は，ロボットによる生産現場での作業等を想定しているものが多いため，配線作業等の自動化が期待されている．先行研究として，高松ら[4]，森田ら[5]，若松ら[6]のロボットマニピュレータによる紐の操作を目的とした研究が挙げられる．これらの関連研究では，CCD カメラを用いてロープなどの不定形物体の形状を認識してマニピュレーション過程を形成している．
また，線状物体の結びを対象とした関連研究では，稲葉ら[7]の研究があり，ひものような変形しやすい物体のハンドリングにおいて，視覚情報によってマニピュレータの動作を計画，確認，修正することにより，結び操作を実現している．本研究は，ロボットマニピュレータの作業で使用するようなひもとは違い，ひも形状物体の中でも奥行きの出やすい固めのものとして，ホースに針金を通したものを用いる．ひも形状物体の 3 次元データを認識し，ジェットコースターのコースとすることでユーザーが直感的かつ，簡単にひも形状物体を計算機上に再現することを目指す．
2.2 VR アミューズメント
VR アミューズメントは様々なものが開発されている．
それらは HMD などのウェアラブルデバイスを利用し，視覚情報のみの仮想世界を表現して完結することが多い．しかしながら，米国の Virtuix 社の Omni に代表される VR コントローラーも存在しており，VR アミューズメントを視図1覚情報以外で補助するものとなっている．また，先行研究

Figure 1

システム概要System Summary[3]において，Kodera らは VR アミューズメントに対して，風や振動などの感覚を補完，拡張している．この研究では，

3.1 3 次元データの取得

感覚の補完，拡張によって，より興味深い体験ができるこ

ひも形状物体の 3 次元データを取得する際に，Microsoftとを目的としている．しかし，この研究ではリアリティを社が販売する Kinect を使用する．Kinect では，被写体のより高めることに焦点を当てており，ユーザーはそれを体RGB 画像と距離画像を同時に取得することができる．本研験することにとどまっている．本研究では，ジェットコー

究では RGB 画像からは，2 次元的な位置を，距離画像からスターのコースをユーザー自らが作成を行う参加型にするは 3 次元的な位置をデータとして取得する．

ことで，これまでデバイス等で完結していた VR アミュー

3.2 仮想コース

ズメントのものよりもインタラクティブかつ興味深いものを目指す．

© 2016 Information Processing Society of Japan

統合開発環境を内蔵し，複数のプラットホームに対応する物理エンジンの Unity 上に，ひも形状を仮想のジェット

785

情報処理学会 インタラクション 2016
IPSJ Interaction 2016

163A04
2016/3/4

コースターのコースとして再現する．Unity 上では取得した 3 次元データの点群をスプライン曲線の制御点として利用することによって，滑らかなジェットコースターのコースが完成する．

4. ひも形状認識アルゴリズム
本研究で提案するひも形状認識アルゴリズムは，カラー画像から 2 次元データを取得し，距離画像から 3 次元データを取得したものを仮想のジェットコースターのコースとして出力するものである．
(1) エッジ検出フィルタ
ひも形状物体の 2 次元データを取得するために，Cannyフィルタを使って検出したひものエッジを利用する．エッジは，画像中の明るさや色が急激に変化している箇所であり，画像中の物体の輪郭や線では一般には濃淡が急激に変化しているため，物体構造を反映している重要な情報をもっている．
(2) エッジ探索アルゴリズム
エッジ探索アルゴリズムとはエッジが存在する座標を把握するために，Canny フィルタによって得られたエッジデータを探索し，それを辿るためのアルゴリズムである．こ

図2のアルゴリズムでは，エッジが連続したピクセルで構成さ

Figure 2

エッジ検出アルゴリズム概要
Edge detection algorithm summary

れていることを利用して，隣り合っているエッジのピクセルを順々に辿っていく．図 2 にエッジ探索アルゴリズムのを吸収する黒い部分の距離を測定する場合などは，正確に構成を示す．画面左端に存在するエッジのピクセルを第一

距離を測ることができない．そのため，距離データを取得注目点として，その近傍の 8，16，24 ピクセルを順に探索する際に，ひもの中心の距離データを取得することとする．

する．探索する近傍位置の順番としては，基本は注目点のまた，距離データを取得する際に外れ値を除外するため真上のピクセルを開始点とし時計回りに探索を行う．8 近に全体のピクセルに対して，距離データが前回までの値よ傍を探索して，その中にエッジのピクセルを見つけられたりも閾値以上の差があるときに，ひとつ前のピクセルの値

場合，16，24 近傍は探索を行わずに 8 近傍の探索で見つけを採用する．これにより，距離データが極端に違う値になたエッジのピクセルを次の注目点とし，その後も同様の方ることを防ぐ．修正した後の全体のピクセルの距離データ法で新しく定めた注目点の近傍を探索する．また，注目点に対して，8 近傍の平均値を出力するように処理する．この 8，16，24 近傍のどの範囲にもエッジのピクセルが存在れより，距離データの値の推移がなめらかになる．

しない場合に，この探索アルゴリズムは終了する．1 本の(5) Kinect のデータの位置合わせ

ひもには 2 本のエッジが存在するので，このアルゴリズム

Kinect ではカメラの解像度及び，位置が RGB カメラとは 2 本のエッジに対して行う．

距離カメラ間で異なるため，位置合わせと，補正が必要で(3) ひも状物体の中心推定ある．RGB カメラの解像度は 640×480 で，距離カメラのエッジ探索アルゴリズムによって得られた 2 本エッジの解像度は 320×240 である．距離カメラの解像度はアップ

2 次元情報を利用して，ひもの中心を推定する．それぞれスケーリングすることで，640×480 にすることができる．のエッジの座標点を順番に繋げ，その線の中心をひもの中また，Kinect のライブラリを適用することで，アップス心と定義した．

ケーリングして同じ解像度になった距離カメラの座標に対(4) 距離データ取得

応する RGB カメラの座標を取得して座標を合わせる処理，エッジ探索アルゴリズムにより求めたひもの中心の距

そして距離カメラの X，Y 座標に対応する RGB カメラの離データを取得することによって，3 次元データを取得でX，Y 座標を取得することができる．

きる．Kinect の距離の測定方法は，近赤外線のドットパタ(6) データサイズの補正ーンを読み取るパターン認識であるため，エッジ上などの距離カメラの座標に対応する RGB カメラの座標を取得

近赤外線を投射するための表面積が少ない箇所や，赤外線して座標を合わせる処理を行った結果，用意したフレーム© 2016 Information Processing Society of Japan786

情報処理学会 インタラクション 2016
IPSJ Interaction 2016

163A04
2016/3/4

サイズをはみ出す部分に対してその補正を行う．X，Y 座であるため，ジェットコースターのコースを再現するにあ標それぞれでフレームサイズを超えている場合はフレームたって必要なコース要素の再現性の検証実験を行う．このサイズの最大値-1 の位置に補正する処理をしている．

とき，Kinect はひもの真上から撮影する．

(7) 取得データの出力6.1 高低差コースの再現

取得した 3 次元データは記録して，Unity に受け渡す．受ジェットコースターの上昇下降などの高低差コースの再け渡す際は，距離データをジェットコースターの世界の高現を行った．まず，図 4，5，6 の各左図に実際のひもを横さ方向に Z 軸として，3 次元データの X，Y，Z の値が対応方向，上方向，そして正面方向から撮影したものを示す．

するようにした．データ数は認識できたひもの長さに応じ次に，エッジ検出アルゴリズムの処理結果を図 7 に示す．て変化する．

最後に，この状態でひも認識を行った時の出力結果をそれぞれ図 4，5，6 の右図に示す．図 4，5，6 のいずれの右図

5. ジェットコースター生成アルゴリズムも左図のものと同じ形状が出力されていることがわかる．
しかし，図 4 の右図における画像左側において，一部ジェットコースターを再現する上で，コースターが通過ひも形状としての繋がりが途切れている部分が存在していするレールの軌道と，その動作に伴うカメラ視点の変化がる．これはひもの傾斜が大きいとき Kinect の距離の測定重要な要素であると考えられる．Unity でジェットコースする際に必要な近赤外線を照射するための表面積が十分でターの軌道と動作時におけるカメラ視点の変化を再現するはない可能性が高い．これによって，距離データを取得でためには，オブジェクトを曲線状の軌道に沿って移動させきなかったためと考えられる．

る必要があるため，オブジェクトを自由にアニメーション6.2 ループコースの再現させることを可能とする iTween（図 3）と呼ばれるドキュ

ジェットコースターでの，コースターが 1 回転して地面メントを利用する．これを用いることで，ジェットコースと空が逆さまになるループコースの再現を行った．まず，

ターに類似した移動と，カメラ視点の変化を再現する．

図 8，9，10 の左図に実際のひもを横方向，上方向，そし5.1 軌道とカメラ視点て正面方向から撮影したものを示す．次に，エッジ検出アコースターの軌道は，ひも形状物体の認識によって得らルゴリズムの処理結果を図 11 に示す．最後に，この状態れた 3 次元データを基に生成する．ひも認識アルゴリズム

でひも認識を行った時の出力結果をそれぞれ図 8，9，10から出力された座標データを受け取り，X，Y，Z の座標軸の右図に示す．図 8，9，10 の左右の図をそれぞれ比べる毎に配列を設けて仕分けを行う．この配列を基にオブジェとループ状にコースが形成されていることがわかる．しかクトを生成していくことによって軌道となるレールを表示し，どの出力結果にも同じ位置にデータの欠損が顕著に見し，そのレールに沿ってカメラ移動させることで動作時にられる．この原因を考察する上で，図 10 の右図を例とすおける視点を再現する．また，現在地から次の移動先の座る．左側の欠損の原因として，データ量が足りないことが標が存在する方角へカメラ視点を切り替えていくことで，考えられる．つまり，X，Y 座標の変化量に対して，距離ジェットコースターにおけるレールの軌道から生じる視点データである Z 座標の変化量が小さすぎることが影響しの変化を再現する．ている．また，右側の欠損の原因として，出力された 3 次
元データを確認すると，3 次元データは取得できているが，距離データの値が適切ではないことがわかった．これは，照明による光の反射が雑音となっていること．または，図 11 より，エッジ探索アルゴリズムによって導き出されるひもの中心が本来の中心からずれていることがわかる．これによって，Kinect で取得することが困難なエッジ付近の距離データを出力することになってしまっている．
6.3 カメラ視点の移動
ひもの認識を行い，作成したジェットコースターのコー

図3Figure 3

iTween による軌跡表示例

Indicating locus example according to iTween

スを走るようにカメラ視点を移動させたものを図 12，13に示す．図 12 の高低差コースでは，自然な視点移動が確認できた．しかし，図 13 のループコースでは，視点が上

6. 3 次元の形状実験
本研究では，ジェットコースターのコースをユーザーが直感的かつ自由に設計するためのユーザーインタフェース© 2016 Information Processing Society of Japan

下逆になるべきところで通常の視点状態に戻されてしまう．この原因として，現在の視点移動のプログラムでは 3次元座標のみを参照しているため，適切に動作しなかったと考えられる．したがって，この解決策として，回転角を787

情報処理学会 インタラクション 2016
IPSJ Interaction 2016

163A04
2016/3/4

考慮したプログラムにする必要がある．
6.4 実験結果の考察
高低差のある形をしたひもを使うことでジェットコースターの上昇下降を，ループ状になったひもを使うことでジェットコースターからの逆さまになったジェットコースターを作成することに成功した．また，コースターに乗っている時の視点移動も再現できた．しかし，一部条件下で 3次元データが取得できない点もあったため形状の欠損が存在していることや，ループコースにおける視点移動が完全でないなどの問題点が見られた．ジェットコースターを再現するのに必要不可欠な要素であるこれらの形状を再現できたことは，ユーザーがジェットコースターを直感的かつ，

図7

高低差コースにおける探索アルゴリズムの処理結果

Figure 5

Processing result of search algorithm on height

簡単に作成することに繋がると考えられる．

図4

横方向から見た高低差コース(左図: 写真，右図: Unity 上での出力結果)
Figure 2

Height distance course looked from the sidedistance course

図8横方向から見たループコース(左図: 写真，右図: Unity 上での出力結果)
Figure 8

Loop course looked from the side

(Left: Photo, Right: Output in Unity)(Left: Photo, Right: Output in Unity)

図 5

図9

上方向から見た高低差コース(左図: 写真，右図: Unity 上での出力結果)
Figure 3

Height distance course looked from top(Left: Photo, Right: Output in Unity)

図6

正面方向から見た高低差コース(左図: 写真，右図: Unity 上での出力結果)
Figure 4height distance course looked from the front(Left: Photo, Right: Output in Unity)© 2016 Information Processing Society of Japan

上方向から見たループコース(左図: 写真，右図: Unity 上での出力結果)
Figure 9

Loop course looked from top(Left: Photo, Right: Output in Unity)

図 10

正面方向から見たループコース(左図: 写真，右図: Unity 上での出力結果)
Figure 10

Loop course looked from the front(Left: Photo, Right: Output in Unity)788

情報処理学会 インタラクション 2016
IPSJ Interaction 2016

163A04
2016/3/4

より高いインタラクティブ性を求めるためにもこれらのような問題点を今後解決していく必要がある．

8. 将来展望
本研究ではジェットコースターのコースを作成するた
図 11

ループコースにおけるエッジ探索アルゴリズムの処理結果

Figure 11

Processing result of search algorithm on loop course

めの 3 次元ユーザーインタフェースとして，不定形物体であるひもを利用した．その過程で，ひも形状および存在位置の認識を行った．これによりユーザーが VR 上に再現したいであろうジェットコースターのコースをひもで現実に再現したときの認識は成功した．しかし，非常に重要な技術である，ひもの重なり部分の認識に関して問題点が存在している． 本研究では，重なり部分を認識するためのアルゴリズムは実装されてはいないが，ジェットコースターのコースを真上から撮影した結果から，重なり部分が存在しなくてもジェットコースターとしては十分成り立つことが分かる．しかし，我々の生活にあるひもの多くには交差点が存在するため，我々の研究において，ひも認識技術の今

図 12Figure 12

高低差コースのカメラ視点の移動

Movement of the point of view of camera in height
distance course

後の発展を考える上で，重なり部分の認識は必要不可欠なものであるとわかる．ひもの重なりの認識を行うために，我々は本研究でも取得したひもの距離データを用いることで，重なり部分におけるひもの位置関係が明らかとなり，解決できるのではないかと考える．また，今回の実験で使用した Kinect の分解能では取得しきれない数値が存在したことから，より分解能が高い，Kinect v2 に乗り替えることが有効だと考える．これらの改良を加えることで，より正確なひも認識，そしてより自由度の高いジェットコースターのコース作成を行えるものを目指していく．

図 13
Figure 13

ループコースのカメラ視点の移動

Movement of the point of view of camera in loop
course7. まとめユーザーから見て直感的かつ簡単な操作によってジェットコースターのコースを生成するシステムの開発を試みた．エッジ検出と距離データを用いてひも形状物体から 3次元データを取得し，そのデータを基にジェットコースターのコースを生成した．
その結果，実際のひも形状と得られたひも形状 3 次元データとの間に，誤差やノイズが生じてしまっていた．また，軌道を示すレールをうまく描写しきれていないという問題点も実験によって判明した．しかし，ひもから得た 3 次元データを基にジェットコースターのコース生成のために必要なひも形状を VR 上に再現するが可能であることを示すことが出来た．簡単な操作で再現を行うことは出来たが，© 2016 Information Processing Society of Japan

参考文献
1) Tatsuya Kodera, Naoto Tani, Jun Morita, Naoya Maeda, Kazuna
Tsuboi, Motoko Kanegeae, Yukiko Shinozuka, Sho Shimamura, Kadoki
Kubo, Yusuke Nakayama, Jaejun Lee, Maxime Pruneau, Hideo Sato andMaki Sugimoto: Virtual Rope Slider, Virtual Reality International
Conference 2014, Apr.9-13 (2014)
2) 白川智也, 向井啓介, 松野隆幸, 矢納陽, 見浪護: ひもの形状モデリングと距離カメラを用いた認識, Proceeding of the 2015 JSME
Conference on Robotics and Mechatronics, No.15-2, Kyoto, Japan, May
17-19, (2015)3) 須藤克仁, 角所考, 美濃導彦: 現実物体の観測に基づく線状柔軟物体の操作時の形状のモデル化, 情報処理学会論文誌, Vol.14,No.6, pp308-315, (2001)
4) 高松淳, 森田拓磨, 小川原光一, 木村浩, 池内克史: ロボットによる実行を目的とした紐結び作業記述, 日本ロボット学会誌,
Vol.23, No.5, pp572-582, (2005)
5) 森田拓磨, 高松淳, 小川原光一, 木村浩, 池内克史: 観察によるひも結び動作の学習, コンピュータビジョンとイメージメディア,
Vol.102,pp.71-78, (2002)
6) 若松栄史, 妻屋彰, 荒井栄司, 平井慎一: 結び／解き操作を含めた線状物体のマニピュレーション, 日本ロボット学会誌, Vol.23,
No.3, pp.344-351, (2005)
稲葉雅幸, 井上博允, ロボットによる紐のハンドリング, 日本ロボット学会誌, Vol.3, No.6, pp.538-547, (1985)

789