(57)【要約】【課題】  変形する現実物体に沿って仮想物体を容易に変形可能な仕組みを提供すること【解決手段】  撮像画像を取得して、仮想物体の形状を記憶しておき、当該撮像画像に含まれる現実物体の端の輪郭と当該現実物体が区切られる境界の輪郭、又は複数の当該境界の輪郭が特定された場合に、特定された複数の輪郭を持つ前記仮想物体の画像を、当該複数の輪郭の位置姿勢に基づいて変形させ、変形させた仮想物体の画像を表示装置に表示させるべく出力する【選択図】  図８
2019012334.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段より撮像画像を取得する取得手段と、仮想物体の形状を記憶する記憶手段を備える情報処理装置であって、
前記撮像画像に含まれる現実物体の端の輪郭と当該現実物体が区切られる境界の輪郭、又は複数の当該境界の輪郭が特定された場合に、特定された複数の輪郭を持つ前記仮想物体の画像を、当該複数の輪郭の位置姿勢に基づいて変形させる変形手段と、
前記変形手段により変形した仮想物体の画像を表示装置に表示させるべく出力する出力手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記位置姿勢が特定された現実物体における複数の面に対応する、前記仮想物体における複数の面を特定する特定手段と、
を備え、
前記変形手段は、前記仮想物体における複数の面が、前記現実物体における複数の面の位置となるように、当該複数の面の間にある仮想物体の形状を変形することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記撮像画像に含まれる現実物体の端の輪郭、及び当該現実物体が区切られる境界の輪郭を特定する輪郭特定手段と、
前記輪郭特定手段により特定された輪郭の形状に基づいて、前記現実物体の端と境界に対応する面の３次元空間上の位置姿勢を、当該輪郭の位置姿勢として特定する位置姿勢特定手段と、
を備えることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記記憶手段は、さらに、前記仮想物体における境界部の大きさ及び形状を記憶し、
前記情報処理装置は、さらに、
前記現実物体の部分ごとの色を記憶する色記憶手段
を備え、
前記輪郭特定手段は、前記色記憶手段に記憶された色のうち、隣接する色の境界線の輪郭を特定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記変形手段は、前記現実物体における複数の面の位置関係が変更された場合に、前記仮想物体の画像の形状を、前記変更がされた後の前記面の位置姿勢に基づいて変形することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
撮像手段より撮像画像を取得する取得手段と、仮想物体の形状を記憶する記憶手段を備える情報処理装置の制御方法であって、
前記撮像画像に含まれる現実物体の端の輪郭と当該現実物体が区切られる境界の輪郭、又は複数の当該境界の輪郭が特定された場合に、特定された複数の輪郭を持つ前記仮想物体の画像を、当該複数の輪郭の位置姿勢に基づいて変形させる変形工程と、
前記変形工程により変形した仮想物体の画像を表示装置に表示させるべく出力する出力工程と、
を含むことを特徴とする制御方法。
【請求項７】
撮像手段より撮像画像を取得する取得手段と、仮想物体の形状を記憶する記憶手段を備える情報処理装置を制御するためのプログラムであって、
前記情報処理装置を、
前記撮像画像に含まれる現実物体の端の輪郭と当該現実物体が区切られる境界の輪郭、又は複数の当該境界の輪郭が特定された場合に、特定された複数の輪郭を持つ前記仮想物体の画像を、当該複数の輪郭の位置姿勢に基づいて変形させる変形手段と、
前記変形手段により変形した仮想物体の画像を表示装置に表示させるべく出力する出力手段として機能させるためのプログラム。
【請求項８】
表示装置と、当該表示装置に設置された撮像手段より撮像画像を取得する取得手段と、仮想物体の形状を記憶する記憶手段を備える情報処理装置と、を含む情報処理システムであって、
前記撮像画像に含まれる現実物体の端の輪郭と当該現実物体が区切られる境界の輪郭、又は複数の当該境界の輪郭が特定された場合に、特定された複数の輪郭を持つ前記仮想物体の画像を、当該複数の輪郭の位置姿勢に基づいて変形させる変形手段と、
前記変形手段により変形した仮想物体の画像を表示装置に表示させるべく出力する出力手段と、
を備えることを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年、複合現実（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ／以下、ＭＲと記載）の技術が普及している。複合現実の技術を用いて、ヘッドマウントディスプレイ（ＨＭＤ）を装着したユーザに対し、現実画像にＣＧモデルを配置した複合現実画像を提供し、現実と仮想を複合した複合現実の世界を体験させることができる。複合現実画像を生成するにあたり、ＨＭＤの位置とＣＧモデルの位置とを、センサや二次元マーカを用いて特定する手法が取られている。
【０００３】
特許文献１には、ＨＭＤで撮像された画像の中に写る二次元マーカを用いてＨＭＤの位置姿勢を特定し、複合現実画像を提供する技術が記載されている。また、特許文献２には、磁気センサを用いてＨＭＤの位置姿勢を特定し、複合現実画像を提供する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−３０８５１４号公報
【特許文献２】特開２００３−２４０５３２号公報
【特許文献３】特開２００８−７０３１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
製品の設計検証に際して、例えば製品におけるコネクタの設置位置やワイヤハーネスの長さ・位置を決め、設計図を作成することが行われる。設計図が３次元ＣＡＤ（Ｃｏｍｐｕｔｅｒ−Ａｉｄｅｄ  Ｄｅｓｉｇｎ）ソフトで作成された３次元データの場合、当該３次元データをＭＲで表示して、設計が適切か検証することが可能である。
【０００６】
例えば製品のメンテナンスを行うための手の挿入スペースが十分か、メンテナンス対象の部品を取り出すことができるか等の検証が行われる。
【０００７】
例えばワイヤハーネスを曲げて必要なスペースを確保したい場合、３次元ＣＡＤを使って製品の３次元データを修正すればよい。しかし、検証を行っている人が必ずしも３次元ＣＡＤを扱えるとは限らない。つまり、変更後の形状が適切かの検証ができない。
【０００８】
例えば特許文献３では、指の関節部分にマーカを貼付し、当該関節の位置に合うようにＣＧモデルの手を配置・変形する技術が公開されている。
【０００９】
しかし、ワイヤハーネスのようにあらゆる方向に曲げる・変形することが可能な物体の場合、立体形状の光マーカは物体の変形の邪魔になってしまうことが考えられる。
【００１０】
また、ワイヤハーネスのように平面な部分が少ない物体の場合、平面のマーカを貼り付けても剥がれてしまうことがある。
【００１１】
本発明は、変形する現実物体に沿って仮想物体を容易に変形可能な仕組みを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、撮像手段より撮像画像を取得する取得手段と、仮想物体の形状を記憶する記憶手段を備える情報処理装置であって、前記撮像画像に含まれる現実物体の端の輪郭と当該現実物体が区切られる境界の輪郭、又は複数の当該境界の輪郭が特定された場合に、特定された複数の輪郭を持つ前記仮想物体の画像を、当該複数の輪郭の位置姿勢に基づいて変形させる変形手段と、前記変形手段により変形した仮想物体の画像を表示装置に表示させるべく出力する出力手段と、を備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、変形する現実物体に沿って仮想物体を容易に変形可能な仕組みを提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態における、情報処理システム構成図の一例を示す図である。
【図２】本発明の実施形態における、各種装置のハードウェア構成の一例を示す図である。
【図３】本発明の実施形態における、各種装置の機能構成の一例を示す図である。
【図４】本発明の実施形態における、各種装置のモジュール構成の一例を示す処理図である。
【図５】本発明の実施形態における、複合現実画像の生成及び表示処理の一例を示す処理図である。
【図６】本発明の実施形態における、各種データの構成の一例を示す図である。
【図７】本発明の実施形態における、現実物体の位置姿勢特定及び仮想物体の位置姿勢特定処理の流れを示すフローチャートである。
【図８】本発明の実施形態における、仮想物体の変形処理の流れを示すフローチャートである。
【図９】本発明の実施形態における、描画データの作成処理を示すフローチャートである。
【図１０】本発明の実施形態における、現実物体及び仮想物体の一例である。
【図１１】本発明の実施形態における、撮像画像及び撮像画像に写った現実物体の画像の一例である。
【図１２】本発明の実施形態における、仮想物体の変形の様子を示す図である。
【図１３】本発明の実施形態における、各種データ構成の一例である。
【図１４】仮想物体の変形による検証の様子を示す図である。
【発明を実施するための形態】
【００１５】
図１を参照して、本発明の実施形態における情報処理システムの構成の一例について説明する。
【００１６】
図１に示すように、本発明における情報処理システムの各種装置はネットワーク１５０を介して通信可能に接続されている。例えばＰＣ１００は、ＨＭＤ１０１（ＨＭＤ１０１Ａ〜ＨＭＤ１０１Ｃの総称）と通信可能に接続されている。
【００１７】
ＰＣ１００には、ＨＭＤ１０１により撮像される現実画像に重畳する３次元モデル（ＣＧモデル／仮想オブジェクト）が記憶されている。
【００１８】
また、ＰＣ１００は、自機の管理するＨＭＤ１０１（図１におけるＨＭＤ１０１Ａ〜１０１Ｃ）より現実画像を取得して、記憶部に記憶する。
【００１９】
また、ＰＣ１００はＨＭＤ１０１の位置姿勢を特定し、記憶する。ＨＭＤ１０１の位置姿勢の特定方法は、特許文献１に記載されている、ＨＭＤ１０１の撮像した現実画像中の二次元マーカを用いて特定可能である。
【００２０】
また、特許文献２に記載されている、センサ（図１における光学式センサ１０４）がＨＭＤ１０１に設置された光学式マーカの位置姿勢をＨＭＤ１０１の位置姿勢として検出し、それをＰＣ１００が取得することで特定可能である。
【００２１】
本実施形態においては、特許文献２に記載されている方法用いてＨＭＤ１０１の位置姿勢を特定するものとする。
【００２２】
ＰＣ１００では、ＨＭＤ１０１の位置姿勢と、記憶部に記憶されている３次元モデル及び３次元モデルの位置姿勢の情報を用いて、現実画像に３次元モデルを重畳した複合現実画像を生成する。そして、当該複合現実画像をＨＭＤ１０１のディスプレイに表示させるべく、ＨＭＤ１０１に送信する。ＨＭＤ１０１は受信した複合現実画像をディスプレイに表示する。以上が図１の説明である。
【００２３】
次に図２を参照して、本発明の実施形態における、各種装置のハードウェア構成の一例について説明する。
【００２４】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２５】
また、ＲＯＭ２０２には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステム（ＯＳ）、その他各種装置の実行する機能を実現するために必要な各種プログラムが記憶されている。
【００２６】
ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２７】
本発明のＰＣ１００が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００２８】
入力コントローラ（入力Ｃ）２０５は、キーボードやマウス等のポインティングデバイス（入力デバイス２０９）からの入力を制御する。
【００２９】
また、入力デバイス２０９がタッチパネルの場合、ユーザがタッチパネルに表示されたアイコンやカーソルやボタンに合わせて押下（指等でタッチ）することにより、各種の指示を行うことができることとする。なお、タッチパネルは、マルチタッチスクリーンなどの、複数の指でタッチされた位置を検出することが可能なタッチパネルであってもよいこととする。
【００３０】
ビデオコントローラ（ＶＣ）２０６は、ＨＭＤ１０１が備える右目・左目ディスプレイ２２２等の表示器への表示を制御する。右目・左目ディスプレイ２２２に対しては、例えば外部出力端子（例えば、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）を用いて出力される。また、右目・左目ディスプレイ２２２は、右目用のディスプレイと左目用のディスプレイとから構成されている。また、入力コントローラ（入力Ｃ）２０５は、ＰＣ１００の備えるディスプレイ２１０（ＣＲＴディスプレイ等）の表示器への表示を制御する。なお、図２では、表示器はＣＲＴディスプレイだけでなく、液晶ディスプレイ等の他の表示器であってもよい。
【００３１】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等の外部メモリ２１１へのアクセスを制御する。
【００３２】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。また、通信Ｉ／Ｆコントローラ２０８は、ギガビットイーサネット（登録商標）等を通じて光学式センサ１０４との通信も制御する。
【００３３】
汎用バス２１２は、ＨＭＤ１０１の右目・左目ビデオカメラ２２１からの映像を取り込むために使用される。右目・左目ビデオカメラ２２１からは、外部入力端子（例えば、ＩＥＥＥ１３９４端子）を用いて入力される。右目・左目ビデオカメラ２２１は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。
【００３４】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。以上が図２の説明である。
【００３５】
次に図３を参照して、本発明の実施形態における各種装置の機能構成の一例について説明する。
【００３６】
撮像部３０１は、撮像処理により画像（撮像画像）を取得する機能部である。
【００３７】
表示部３０２は、描画データ（ＨＭＤ１０１を装着したユーザの視点位置・姿勢から見た仮想物体の画像）を表示する表示部である。例えば撮像画像の上に描画データを重畳した複合現実画像を重畳する。
【００３８】
記憶部３１１は、ＨＭＤ１０１から取得した撮像画像や、光学式センサ１０４から取得したＨＭＤ１０１の世界座標系（３次元空間）における位置姿勢の情報を記憶する。また、現実物体の位置姿勢や、仮想物体（３次元モデル）、仮想物体の位置姿勢の情報を記憶する。
【００３９】
ＨＭＤ位置姿勢取得部３１２は、例えば光学式センサ１０４から取得する。また、当該記憶された位置姿勢を記憶部３１１から取得する。撮像画像取得部３１３は、記憶部３１１から撮像画像取得する。
【００４０】
輪郭特定部３１４は、現実物体の端及び現実物体区切る境界線の輪郭線を特定する。
【００４１】
位置姿勢特定部３１５は、当該輪郭線の画像上の位置及び形状と、と３次元モデルにおける端部の面及び境界面の大きさ及び形状から、当該現実物体の端部の面及び境界面の、世界座標系における位置姿勢を特定する。つまり、現実物体の位置姿勢を特定する。
【００４２】
変形部３１６は、位置姿勢特定部３１５によって特定された現実物体における面の位置姿勢に基づいて、３次元モデルの形状を決定・変形する機能部である。
【００４３】
位置姿勢決定部３１７は、位置姿勢特定部３１５で特定された現実物体の、世界座標系における位置姿勢に基づいて、変形部３１６によって変形されて形状が確定した３次元モデルの世界座標系における位置姿勢を決定する。
【００４４】
表示情報生成部３１８は、位置姿勢決定部３１７において決定された３次元モデルの位置姿勢と、ＨＭＤ１０１の位置姿勢に基づいて、ＨＭＤ１０１に表示する３次元モデルの画像の大きさ、形状、ディスプレイ上の位置（ディスプレイに表示する画像上の位置）を決定し、ＨＭＤ１０１の位置姿勢（視点・向いている方向）から見た当該３次元モデルの画像を生成する。当該画像を描画データと呼ぶ。
【００４５】
出力部３１９は、描画データをＨＭＤ１０１に表示させるべく、ＨＭＤ１０１に出力する。
【００４６】
なお、本実施形態においては、３１１〜３１８の各機能部をＰＣ１００が備えているが、例えばこれらの機能部をＨＭＤ１０１が備えるよう構成してもよいものとする。以上が図３の説明である。
【００４７】
次に図４を参照して、本発明の実施形態における、各種装置のモジュール構成の一例について説明する。
【００４８】
ＰＣ１００は、オペレーティングシステム４０１（ＯＳ）、グラフィックエンジン４０２、複合現実感プラットフォーム４０３（ＭＲプラットフォームともいう）、複合現実感アプリケーション４０４（ＭＲアプリケーションやビューアアプリケーションともいう）で構成され、ＣＰＵ２０１により制御されている。
【００４９】
オペレーティングシステム４０１は、ＨＭＤ１０１の入出力を制御しカメラ２２１から入力インターフェースを介して得られた現実画像を複合現実感プラットフォーム４０３へ受け渡す。またグラフィックエンジン４０２で描画された複合現実画像を、出力インターフェースを介して、ディスプレイ２２２へ出力する。
【００５０】
グラフィックエンジン４０２は、外部メモリ２１１に記憶されている３次元モデルから描画する画像を生成し、現実画像に重畳し、合成する。描画に利用するエンジンは、例えば、ＯｐｅｎＧＬやＤｉｒｅｃｔＸなどの広く利用されているグラフィックエンジンでも、独自に開発したグラフィックエンジンでもよい。なお、本実施形態ではグラフィックライブラリとしてＯｐｅｎＧＬを利用するものとする。
【００５１】
複合現実感プラットフォーム４０３は、ＨＭＤ１０１の位置姿勢を特定し、現実空間と仮想空間の位置合わせを行う。なお、位置姿勢や位置合わせの技術は、既知の技術として開示されている、特開２００２−３２７８４、特開２００６−０７２９０３、特開２００７−１６６４２７等を用いて実現することが可能である。
【００５２】
なお、二次元マーカを使用せずに、ＨＭＤ１０１に位置センサを備え、この位置センサを用いて三角測量により計測された位置をもとに、ＨＭＤ１０１の位置や姿勢を特定して実現することも可能である。
【００５３】
複合現実感アプリケーション４０４は、複合現実感プラットフォーム４０３からＨＭＤ１０１の位置姿勢、３次元モデルの形状の情報、位置姿勢の情報を受け付け、グラフィックエンジン４０２に対して、３次元モデルの描画命令を発行する。この時、ＯｐｅｎＧＬのＡＰＩを用いて、描画する３次元モデルの識別情報、位置姿勢の情報を設定した命令を発行する。以上が図４の説明である。
【００５４】
次に図５を参照して、本発明の実施形態における複合現実画像の生成及び表示処理について説明する。
【００５５】
ＨＭＤ１０１は、ステップＳ５０１で起動後、カメラ２２１の機能を用いて現実画像の撮像を開始する（ステップＳ５０２）。そして、撮像処理によって取得した現実画像をＰＣ１００に送信する（ステップＳ５０３）。
【００５６】
ＰＣ１００のＣＰＵ２０１はＨＭＤ１０１より現実画像を受信し（ステップＳ５０４）、受信した現実画像を、撮像日時と共に外部メモリ２１１に記憶する（ステップＳ５０５）。例えば、図６の現実画像テーブル６３０に示すように、現実画像の送信元のＨＭＤ１０１の識別情報であるＨＭＤ  ＩＤ６３１と、現実画像６３２とを対応付けて記憶する。
【００５７】
ＰＣ１００のＣＰＵ２０１は、ＨＭＤ１０１の位置姿勢を取得して（ステップＳ５０６）、日時と共に、外部メモリ２１１に記憶する（ステップＳ５０７）。例えば、図６のＨＭＤ情報６１０に示すように、ＨＭＤ１０１の識別情報であるＨＭＤ  ＩＤ６１１と、当該ＨＭＤの位置６１２（Ｘ，Ｙ，Ｚ座標）、姿勢６１３（Ｘ，Ｙ，Ｚ座標の値により表現されるＨＭＤ１０１の向いている方向）を記憶する。
【００５８】
ＰＣ１００のＣＰＵ２０１は、外部メモリ２１１から３次元モデルの画像の情報（描画データ）を取得し、ＨＭＤ１０１から受信した現実画像に重畳して複合現実画像を生成して（ステップＳ５０８）、ＨＭＤ１０１に送信する（ステップＳ５０９）。
【００５９】
透明なディスプレイを備えるＨＭＤ１０１に出力する場合は、現実画像の中から当該ディスプレイに映す範囲の画像を切り出し、当該現実画像の透明度を１００％にして透明化した後、当該範囲に映す描画データを重畳して複合現実画像を生成するものとする。
【００６０】
３次元モデル自体の情報は、例えば図６のモデル情報６２０に示す情報である。モデル情報６２０は、予めＰＣ１００の外部メモリ２１１に記憶されている情報である。モデルＩＤ６２１は３次元モデルの識別情報である。
【００６１】
モデル名６２２は、３次元モデルのファイル名である。ファイルパス６２３は、ファイルが記憶されている場所を示す。位置６２４、姿勢６２５は３次元モデルの位置姿勢を示す。
【００６２】
なお、モデルによっては、モデル自体の端示す面、モデルを途中で区切る面（境界面）を備える。例えば図１０の１０００Ａの３次元モデルは、ＭＤ１〜ＭＤ６の面を持つ。当該面の情報については図１３の説明で後述する。
【００６３】
ＰＣ１００のＣＰＵ２０１は、ＨＭＤの位置６１２・姿勢６１３から、ＨＭＤ１０１と同じ画角を持つカメラが、位置６２４・姿勢６２５の３次元モデルを撮像した場合の、当該３次元モデルの画像を描画データ６４０として生成する。
【００６４】
そして、当該描画データを現実画像と合成することで、図６のＭＲ画像テーブル６５０に示す複合現実画像（ＭＲ画像）を生成する。
【００６５】
また、ＭＲ画像テーブル６５０の、複合現実画像を生成するために用いた現実画像の送信元のＨＭＤ（ＨＭＤ  ＩＤ６５１）と対応付けて記憶する。その後、ＨＭＤ  ＩＤ６５１の示すＨＭＤ１０１に、複合現実画像６５２を送信する。
【００６６】
ＨＭＤ１０１は、ＰＣ１００から複合現実画像を受信し（ステップＳ５１０）、表示画面に表示する（ステップＳ５１１）。以上が図５の説明である。
【００６７】
次に図７を参照して、本発明の実施形態における、現実物体の位置姿勢特定及び仮想物体の位置姿勢特定処理の流れを示すフローチャートである。
【００６８】
図７、図８、図９のフローチャートは、ＰＣ１００のＣＰＵ２０１が所定の制御プログラムを読み出して実行する処理であり、図３に示す各機能部の機能を用いて実行する処理を示すフローチャートである。
【００６９】
ＰＣ１００は、ステップＳ７０１〜Ｓ７０９の処理を、当該処理の終了が指示されるまで繰り返し実行する。例えば、ＰＣ１００において所定のユーザ操作を受け付けた場合、または、ＨＭＤ１０１による撮像処理が終了した場合に終了指示がされたと判断する。
【００７０】
ステップＳ７０１で、ＰＣ１００は、ＨＭＤ１０１によって撮像された最新の撮像画像をＲＡＭ２０３から１つ、取得する。
【００７１】
ステップＳ７０２で、ＰＣ１００は、図１０の１０００に示す現実物体（ハーネス）の色の情報を、外部メモリに記憶されているハーネス色情報１３１０（図１３／色記憶手段に該当）から取得する。
【００７２】
本実施形態において、現実物体であるハーネスは、図１０の１０００に示すように複数の色に色分けされている。また、両端部のエッジ（例：図１０の１００１、１００６）には別色（例：黒）を着色している
【００７３】
ハーネス色情報１３１０は、本処理の対象とするハーネス（現実物体）ごとに、予め外部メモリ２１１に記憶されている。
【００７４】
ハーネスＩＤ１３１１はハーネスの識別情報である。順番１３１２は、ハーネスにおける色分けの順番であり、色１３１３は色分けに用いられている色自体の識別情報である。
【００７５】
ステップＳ７０２で、ＰＣ１００は、撮像画像に対する色認識処理を行い、色１３１３に含まれる色を撮像画像の中から特定する。
【００７６】
ステップＳ７０３で、特定された色の組み合わせを持つハーネス（現実物体）を特定する。
【００７７】
ステップＳ７０４で、ＰＣ１００は、撮影画像からハーネスにおける端部の輪郭線（図１０の１００１、１００６）を特定し、抽出、記憶する（隣接する色同士の境界線を特定する）。
【００７８】
ステップＳ７０５で、ＰＣ１００は、撮影画像からハーネスにおける色の境界線を示す輪郭線（図１０の１００２〜１００５）を特定し、抽出、記憶する。抽出後の輪郭の一例を図１１の１１００Ｘ、１１１０Ｘ、１１２０Ｘに示す。
【００７９】
ステップＳ７０５で、ＰＣ１００は、認識された色のハーネスに対応する３次元モデルを外部メモリより取得する。どのハーネスとどの３次元モデルが対応しているかは、図１３の対応テーブル１３００を参照して特定する。対応テーブル１３００はＰＣ１００の外部メモリに予め記憶されている。
【００８０】
ＰＣ１００は、当該３次元モデルの備える端部の面及び境界面の情報を取得する。具体的には、３次元モデル面情報１３３０を参照し、対象のＩＤ（１３３１）のモデルの、各面（面ＩＤ１３３２）の形状１３３５と大きさ１３３６（境界部の形状と大きさ）を取得する。
【００８１】
そして、各面の形状、大きさと当該各輪郭線の形状、大きさから、各面がどの方向を向いているか、ＨＭＤ１０１から見てどの方向にいるか（世界座標系における位置姿勢）を特定し、当該位置姿勢の情報をハーネスの位置姿勢の情報として記憶する。
【００８２】
例えば、図１３のハーネス面情報１３２０に対象のハーネスのＩＤ（１３２１）、輪郭線から特定された面（実際にハーネス自体に境界面があるわけではないため、面ＩＤ１３２２の面は仮想の面）、各面の位置姿勢（１３２３、１３２４）を記憶する。
【００８３】
つまり、面同士の位置姿勢の関係を特定可能な情報を記憶する。
【００８４】
位置姿勢特定後の各面の様子を図１１の１１００Ａ、１１１０Ａ、１１２０Ａに示す。
【００８５】
例えば図１１の１１１０Ａに示すように、１枚の撮像画像からだけだと十分に輪郭を認識できない面（位置姿勢を特定できない面）が出てくる可能性があるため、本実施形態においては、異なる角度から撮影された複数の画像を使って、ハーネス面情報を記憶、更新する。例えば、最新の撮像画像と、その直前に撮像された撮像画像数枚を用いる。
【００８６】
具体的には、ステップＳ７０７で、異なる角度から撮影された所定枚数以上（例：３枚以上）の撮像画像を使って、所定数以上のハーネス面情報１３２０を生成・記憶済か判定する。
【００８７】
所定数以上のハーネス面情報１３２０が記憶済の場合、２枚目以降の画像から特定された端部の面（Ｄ１）の位置姿勢を、１枚目の画像から特定された端部の面（Ｄ１）の位置姿勢に合わせる。また、２枚目以降の画像から特定された他の面（Ｄ２〜Ｄ６）の位置姿勢を、当該２枚目以降の画像から特定された端部の面（Ｄ１）と同じだけ、位置変更、姿勢変更する。
【００８８】
各面について、位置姿勢の平均値を算出し（ステップＳ７０８）、各面の位置姿勢の確定情報として、新たなハーネス面情報１３２０を生成・記憶する（ステップＳ７０９）。つまり、過去複数の画像から、確定版の、最新のハーネスの面の位置姿勢を特定・記憶する。
【００８９】
確定版のハーネス面情報１３２０は、作成されるごとに、当該ハーネス面情報１３２０の作成に用いられた撮像画像のうち最新の画像、その画像の撮像日時と対応付けて、外部メモリに蓄積して記憶していく。以上が図７の説明である。
【００９０】
図７の処理によって、色境界の輪郭線から、境界となる面の位置姿勢が特定できる。
【００９１】
次に図８を参照して、仮想物体の変形処理の流れについて説明する。
【００９２】
ＰＣ１００は、ステップＳ８０１〜Ｓ８１３の処理を、当該処理の終了が指示されるまで繰り返し実行する。例えば、ＰＣ１００において所定のユーザ操作を受け付けた場合、または、ＨＭＤ１０１による撮像処理が終了した場合に終了指示がされたと判断する。
【００９３】
ステップＳ８０１で、ＰＣ１００は、位置姿勢を計測中のハーネスを特定する。例えば、最新の撮像画像から位置姿勢が特定されたハーネス１０００のＩＤを特定する。ステップＳ８０２で、当該ハーネスに対応する３次元モデルを特定する。
【００９４】
ステップＳ８０３で、ＰＣ１００は、当該ハーネスの、最新の、確定版ハーネス面情報１３２０を特定する。
【００９５】
ステップＳ８０４で、ＰＣ１００は、当該確定版のハーネス面情報１３２０を取得できた場合、当該取得が１回目か２回目以降か判定する。１回目の場合は処理をステップＳ８０６に移行する。２回目以降の場合は処理をステップＳ８０５に移行する。
【００９６】
ステップＳ８０６で、ＰＣ１００は、確定版のハーネス面情報１３２０における各面（Ｄ１〜６）に対応する、３次元モデルの面（ＭＤ１〜６）を特定する。
【００９７】
ステップＳ８０７で、ＰＣ１００は、確定版のハーネス面情報１３２０における各面（Ｄ１〜６）の位置に、３次元モデルの面（ＭＤ１〜６）の位置を、それぞれ合わせる。つまり、３次元モデルの位置を決定する。
【００９８】
ステップＳ８０８で、ＰＣ１００は、確定版のハーネス面情報１３２０における各面（Ｄ１〜６）の姿勢情報参照し、各面の表面が向いている方向に、３次元モデルの面（ＭＤ１〜６）の方向を、それぞれ合わせる。なお、面の角度（面の表面の回転角度）はこの時点では０を挿入する。。
【００９９】
つまり、３次元モデルの姿勢のうち、面の表面が向いている方向を決定する。各面の間の３次元モデルは、面同士の角度によって変形させるものとする。１０００Ａの３次元モデル（Ｍ１１１）の場合、面同士の間の長さは変わらないものとする。
【０１００】
ステップＳ８０９で、ＰＣ１００は、隣接する２つの面のセット（組み合わせ）を特定する。例えば最初はＭＤ１とＭＤ２の組み合わせを特定する。
【０１０１】
ステップＳ８１０で、ＰＣ１００は、特定した２つの面の間のモデルの角度を、当該２つの面の間にある現実物体（ハーネス）の輪郭に基づいて補正する。つまり、３次元モデルを変形する。図１２を例に説明する。
【０１０２】
１２００の撮像画像から、１２１０に示すように面の位置姿勢が特定されているとする。
【０１０３】
ステップＳ８０９の処理だけでは、面の回転角度が固定のため、例えば１２２０のように、３次元モデル１０００Ａが、実際のハーネス１０００の曲がり方とは異なる曲がり方をしてしまっている可能性がある。
【０１０４】
よって、ステップＳ８１０で、ＭＤ１とＭＤ２の回転角度を変更し、変更後のモデルの輪郭がハーネス１０００の輪郭に最も近くなる回転角度を特定して、3次元モデル面情報１３３０の各面の姿勢１３３４における角度の値に上書きする（ステップＳ８１１）。変更後のモデルの一例を１２３０に示す。
【０１０５】
ＰＣ１００は、当該面の回転角度の補正を、各面の組み合わせに対して行う。なお、新たな面の組み合わせのうち、既に補正済みの面の回転角度は確定として、未補正の方の面の角度を補正するものとする。
【０１０６】
当該補正の処理を各面の組み合わせに対して実行することで、図１２の１２２０〜２４０に示すように、実際のハーネスの曲がり方に沿った曲がり方となるように、３次元モデルの形状を変更することができる。
【０１０７】
ステップＳ８１２で、ＰＣ１００は、全ての面の組み合わせに対して、面の回転角度の補正を行ったか判定し、未補正の面の組み合わせがある場合は処理をステップＳ８０９に戻る。
【０１０８】
全ての面の組み合わせに対して、面の回転角度の補正を行っている場合は、処理をステップＳ８１３に移行し、当該３次元モデルの面同士の位置姿勢の関係を確定して、確定版の３次元モデル面情報１３３０を外部メモリに生成して記憶し、当該３次元モデルの識別別情報を、形状が確定したモデルの一覧である確定形状モデル１３４０に記憶する。
【０１０９】
確定版の３次元モデル面情報１３３０は、作成されるごとに、当該３次元モデル面情報１３３０の作成に用いられたハーネス面情報と、その日時と対応付けて、外部メモリに蓄積して記憶していく。
【０１１０】
なお、ステップＳ８０４で２回目以降であると判定された場合、ＰＣ１００はステップＳ８０５において、取得した最新のハーネス面情報１３２０と直前のハーネス面情報１３２０を取得し、面同士の位置と方向の関係（相対的な位置関係及び方向の関係）に変化があるか判定する。
【０１１１】
変化がなければ、3次元モデルの形状を変更する必要はないため、ステップＳ８０６以降の処理をスキップする。変化がある場合は、3次元モデルの形状を変更する必要があるため、処理をステップＳ８０６に移行する。以上が図８の説明である。
【０１１２】
図８の処理によって、変形する現実物体に沿って仮想物体を容易に変形可能な仕組みを提供することができる。
【０１１３】
次に図９を参照して、描画データの作成処理について説明する。
【０１１４】
ＰＣ１００は、ステップＳ９０１〜Ｓ９０４の処理を、当該処理の終了が指示されるまで繰り返し実行する。例えば、ＰＣ１００において所定のユーザ操作を受け付けた場合、または、ＨＭＤ１０１による撮像処理が終了した場合に終了指示がされたと判断する。
【０１１５】
ステップＳ９０１で、ＰＣ１００は、最新の撮像画像と、当該撮像画像を撮像した時点のＨＭＤ１０１の位置姿勢をメモリから取得する。
【０１１６】
ステップＳ９０２で、ＰＣ１００は、確定形状モデル１３４０を特定して、各３次元モデルの、最新の、確定版３次元モデル面情報を取得する。つまり、形状が確定している３次元モデルの位置姿勢を取得・特定する（ステップＳ９０３）。
【０１１７】
ステップＳ９０４で、ＰＣ１００は、位置姿勢を取得・特定できた３次元モデルのうち、ＨＭＤ１０１の位置姿勢と、ＨＭＤ１０１の画角の情報（不図示／ＨＭＤ１０１ごとにＰＣ１００が記憶している情報）を用いて、ＨＭＤ１０１のディスプレイに表示すべき３時次元モデル（視野内のモデル）を特定する。
【０１１８】
そして、特定した３次元モデルの描画データを生成して、描画データ６４０として記憶する。当該描画データの生成は、描画データの形状、大きさ、ＨＭＤ１０１に表示する画像上の位置（ディスプレイ上の位置）の生成処理である。
【０１１９】
描画データが生成・記憶されることで、図５のステップＳ５０８で当該描画データが読み出され、複合現実画像が生成される。そして、当該複合現実画像がＨＭＤ１０１に出力されることで、変形後の３次元モデルの画像をＨＭＤ１０１に表示可能となる。以上が図９の説明である。
【０１２０】
以上説明したように、本発明によれば、変形する現実物体に沿って仮想物体を容易に変形可能な仕組みを提供することができる。
【０１２１】
また、変形後の仮想物体の画像を表示することが可能となる。
【０１２２】
図１４を参照して、検証の様子について説明する。
【０１２３】
１４００のように１４０１〜１４０３の３本のハーネスの３次元モデルを含む、メンテナンス対象の装置の３次元モデルを、ＭＲで表示しているものとする。例えば当該３次元モデルは、装置の設計部門の担当者から受け取った３次元ＣＡＤのモデルを表示しているものとする。
【０１２４】
メンテナンスのためには、部品１４１１を取り出す必要があるため、検証担当者は、部品１４１１を装置から取り出そうと試みるが、今の設計のままでは、１４０２のハーネスに部品１４１１が接触し、取り出すことができない。
【０１２５】
どのようにハーネスを曲げれば、部品の取り出しに十分なスペースが確保できるか確認するために、例えば、色分けされたハーネス１４０２Ａが設置されている現実物体１４２１を、１４２０のように３次元モデルの装置の中に置く。
【０１２６】
すると図７〜図９の処理によって、ハーネス１４０２Ａに沿った形状の３次元モデル（例：Ｍ１１１）が表示される。
【０１２７】
また、ハーネス１４０２Ａを変形することで、１４３０の１４３１に示すように、3次元モデル（Ｍ１１１）が変形される。
【０１２８】
検証担当者は、ハーネスの変形後、部品１４１１を再度移動させる。そして、取り出す際に１４３１の３次元モデルと接触するかどうかを目視確認することで、変形の程度が十分か確認することができる。
【０１２９】
本発明の実施形態においては、図１４の１４２０〜１４４０に示すように、元々の3次元モデルにおけるハーネスの３次元モデル１４０１〜１４０３は表示したままとし、変形前後のハーネス形状の違いを確認させる。
【０１３０】
また、ＰＣ１００は、３次元空間上における３次元モデルの形状と位置姿勢に基づいて、３次元モデル同士が接触してるか判定し、他のモデルと接触していると判定された３次元モデルの色を所定の色（例：赤色）に変更して識別表示するものとする。
【０１３１】
また、ＰＣ１００は、現実物体の変形に沿って変形させる３次元モデル（例：ＩＤ＝Ｍ１１１）の描画を開始すると、通常のモデル（例：１４０２）における他モデルとの接触時の色を特定し、当該色と異なる色を、当該現実物体の変形に沿って変形させる３次元モデル（例：ＩＤ＝Ｍ１１１）における他モデルとの接触時の色に設定・記憶する。
【０１３２】
これにより、取り出し対象の部品が、従来のハーネスの３次元モデルに接触してるだけか、変形後のハーネスの３次元モデルに接触しているかを識別し、ユーザに確認させることができる。
【０１３３】
また、取り出し対象の部品の３次元モデルを、接触判定の対象の３次元モデルとして予め記憶しておき、現実物体の変形に沿って変形させる３次元モデル（例：ＩＤ＝Ｍ１１１）の接触判定対象を、取り出し対象の部品に限定する。
【０１３４】
こうすることで、当該３次元モデルが取り出し対象の部品（検証対象の３次元モデル）以外のモデルとの接触により色が変わるのを防止することができる。
【０１３５】
以上、本発明の実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１３６】
例えば、図２に示すＰＣ１００の構成を全て備えるＨＭＤ１０１が、自機の機能をＣＰＵ２０１で実行して、上述した実施形態においてＰＣ１００の実行するものとして説明した処理の全て（特に図７〜図９の処理）を、実行するようにしてもよい。
【０１３７】
また、本発明におけるプログラムは、各図に示すフローチャートの処理方法をコンピュータが実行可能なプログラムであり、本発明の記憶媒体は各図の処理方法をコンピュータが実行可能なプログラムが記憶されている。なお、本発明におけるプログラムは各図の各装置の処理方法ごとのプログラムであってもよい。
【０１３８】
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１３９】
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記憶した記録媒体は本発明を構成することになる。
【０１４０】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【０１４１】
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４２】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４３】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１４４】
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０１４５】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１４６】
１００  ＰＣ
１０１  ＨＭＤ
１０３  光学式マーカ
１０４  光学式センサ
１５０  ネットワーク
【図１】
2019012334.tif 000003
【図２】
2019012334.tif 000004
【図３】
2019012334.tif 000005
【図４】
2019012334.tif 000006
【図５】
2019012334.tif 000007
【図６】
2019012334.tif 000008
【図７】
2019012334.tif 000009
【図８】
2019012334.tif 000010
【図９】
2019012334.tif 000011
【図１０】
2019012334.tif 000012
【図１１】
2019012334.tif 000013
【図１２】
2019012334.tif 000014
【図１３】
2019012334.tif 000015
【図１４】
2019012334.tif 000016