(57)【要約】【課題】単一の画像から立体形状を認識することが可能なプログラムを提供する。【解決手段】本発明は、予め定められた複数の部品より構成される実空間における立体を認識するためのプログラムであって、該プログラムは該立体を撮影するための撮影装置を備える電子装置において実行されるものであり、該電子装置に、画像認識ステップと、クエリ生成ステップと、データ取得ステップと、部品配置ステップと、整合性判定ステップと、前記整合性が有ると判定された場合、立体認識ステップと、前記整合性が無いと判定された場合、データベース記憶ステップと、クエリ再生成決定ステップと、クエリ再生成ステップと、を実行させるプログラムである。【選択図】図１
2019114226.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた複数の部品より構成される実空間における立体を認識するためのプログラムであって、該プログラムは該立体を撮影するための撮影装置を備える電子装置において実行されるものであり、該電子装置に、
前記撮影装置により撮影された画像から各部品を識別可能な特徴をそれぞれ抽出し、該特徴に基づいて部品のそれぞれのＩＤ及び該部品の位置データを取得する画像認識ステップと、
前記特徴に基づいて取得された部品のそれぞれのＩＤを含むクエリを生成するクエリ生成ステップと、
クエリが生成された場合、該クエリを用いて、各部品のＩＤ、各部品の３次元モデル、及び各部品間の接合制約条件を示す制約データを関連付けて記憶する部品データベースから、該クエリが含むＩＤのそれぞれに関連付けられた部品それぞれの３次元モデル及び制約データを取得するデータ取得ステップと、
前記取得された部品それぞれの位置データ、３次元モデル、及び制約データに基づいて前記実空間と対応させた仮想空間に各部品を配置する部品配置ステップと、
前記配置された各部品の位置関係に基づいて、前記配置された各部品の位置の整合性を判定する整合性判定ステップと、
前記整合性が有ると判定された場合、前記配置された各部品の位置に基づいて立体を認識する立体認識ステップと、
前記整合性が無いと判定された場合、
前記データ取得ステップにおいて用いたクエリのうち少なくとも部品それぞれのＩＤを含むクエリ保存用データを履歴データベースに記憶するデータベース記憶ステップと、    前記履歴データベースが記憶するクエリ保存用データ及び前記部品データベースが記憶するデータに基づいて、クエリを再生成するか否かを決定するクエリ再生成決定ステップと、
クエリを再生成すると決定された場合、前記履歴データベースが記憶するクエリ保存用データと異なるデータを含むクエリを生成するクエリ再生成ステップと、
を実行させる、プログラム。
【請求項２】
前記プログラムは、前記電子装置に、
前記画像認識ステップの前に、前記履歴データベースが記憶するクエリ保存用データを消去するデータベース初期化ステップを実行させる、請求項１に記載のプログラム。
【請求項３】
前記部品配置ステップは、前記取得された部品それぞれの位置データ及び３次元モデルを用いて前記仮想空間に各部品を配置し、前記仮想空間上における隣接する部品のそれぞれにおいて、前記接合制約条件を満たすように各部品の位置を調整して配置する、請求項１又は２に記載のプログラム。
【請求項４】
前記部品配置ステップは、前記仮想空間上に配置された部品のうちの２つの部品の３次元モデル間の長さが所定値以内であるか否かに基づいて２つの部品が隣接するか否かを判定する、請求項３に記載のプログラム。
【請求項５】
前記位置は６自由度位置である、請求項１から４のいずれか１項に記載のプログラム。
【請求項６】
各部品を識別可能な前記特徴は、各部品が部品表面に有するＡＲマーカである、請求項１から５のいずれか１項に記載のプログラム。
【請求項７】
前記データ取得ステップは、クエリが生成された場合、該クエリを用いて、前記部品データベースから、該クエリが含むＩＤのそれぞれに関連付けられた部品それぞれの３次元モデル及び制約データを、該ＩＤに対応付けて該クエリにそれぞれ加えることにより取得する、請求項１から６のいずれか１項に記載のプログラム。
【請求項８】
前記整合性判定ステップは、前記配置された各部品の３次元モデルが占める領域の重複度合いに基づいて、前記配置された各部品の位置の整合性を判定する、請求項１から７のいずれか１項に記載のプログラム。
【請求項９】
前記画像認識ステップは、前記撮影装置により撮影された画像から前記立体のベース部分を形成するベース部を認識し、
前記部品配置ステップは、該ベース部を前記仮想空間上に配置し、
前記整合性判定ステップは、前記配置された各部品の位置と前記ベース部の位置との位置関係から前記配置された各部品が重力に従った配置であるか否かを判定し、該判定に更に基づいて整合性を判定する、請求項１から８のいずれか１項に記載のプログラム。
【請求項１０】
前記整合性判定ステップは、前記撮影装置により撮影された画像と、前記配置された各部品の、前記撮影装置の位置に対応する前記仮想空間の位置に配置された仮想カメラから見た画像との一致度に基づいて整合性を判定する、請求項１から９のいずれか１項に記載のプログラム。
【請求項１１】
前記データベース記憶ステップは、前記クエリ保存用データが含む部品それぞれのＩＤに関連付けて、前記配置された各部品の位置を前記履歴データベースに更に記憶する、請求項１から１０のいずれか１項に記載のプログラム。
【請求項１２】
前記クエリ再生成決定ステップは、前記履歴データベースが記憶するクエリ保存用データが、前記部品データベースが記憶する部品のＩＤの所定の組み合わせを含むか否かに基づいて、クエリを再生成するか否かを決定する、請求項１から１１のいずれか１項に記載のプログラム。
【請求項１３】
前記プログラムは、前記電子装置に、
クエリを再生成しないと決定された場合、エラーを出力するエラー出力ステップを更に実行させる、請求項１から１２のいずれか１項に記載のプログラム。
【請求項１４】
前記データベース記憶ステップは、前記クエリ保存用データが含む部品それぞれのＩＤに関連付けて、前記配置された各部品の位置の整合性の評価値を前記履歴データベースに更に記憶する、請求項１から１２のいずれか１項に記載のプログラム。
【請求項１５】
前記プログラムは、前記電子装置に、
クエリを再生成しないと決定された場合、前記評価値により最も高い整合性を有する前記配置された各部品の位置に基づいて立体を認識する第２の立体認識ステップを実行させる、請求項１４に記載のプログラム。
【請求項１６】
前記クエリ再生成ステップは、前記仮想空間上に配置された部品のうちの２つの部品の３次元モデル間の長さが所定値以上である場合、該長さに対応する部品のＩＤを追加したクエリを生成する、請求項１から１５のいずれか１項に記載のプログラム。
【請求項１７】
予め定められた複数の部品より構成される実空間における立体を認識するための立体認識システムであって、
前記立体を撮影するための撮影装置を備える電子装置と、
各部品のＩＤ、各部品の３次元モデル、及び各部品間の接合制約条件を示す制約データを関連付けて記憶する部品データベースと、
前記部品データベースに入力されるクエリのうち少なくとも部品それぞれのＩＤを含むクエリ保存用データを記憶する履歴データベースと、
前記撮影装置により撮影された画像から各部品を識別可能な特徴をそれぞれ抽出し、該特徴に基づいて部品のそれぞれのＩＤ及び該部品の位置データを取得する画像認識部と、  前記特徴に基づいて取得された部品のそれぞれのＩＤを含むクエリを生成するクエリ生成部と、
クエリが生成された場合、該クエリを用いて、前記部品データベースから、該クエリが含むＩＤのそれぞれに関連付けられた部品それぞれの３次元モデル及び制約データを取得するデータ取得部と、
前記取得された部品それぞれの位置データ、３次元モデル、及び制約データに基づいて前記実空間と対応させた仮想空間に各部品を配置する部品配置部と、
前記配置された各部品の位置関係に基づいて、前記配置された各部品の位置の整合性を判定する整合性判定部と、
前記整合性が有ると判定された場合、前記配置された各部品の位置に基づいて立体を認識する立体認識部と、
前記整合性が無いと判定された場合、
前記データ取得部が用いたクエリのうち少なくとも部品それぞれのＩＤを含むクエリ保存用データを前記履歴データベースに記憶するデータベース記憶部と、
前記履歴データベースが記憶するクエリ保存用データ及び前記部品データベースが記憶するデータに基づいて、クエリを再生成するか否かを決定するクエリ再生成決定部と、    クエリを再生成すると決定された場合、前記履歴データベースが記憶するクエリ保存用データとは異なるデータを含むクエリを生成するクエリ再生成部と、
を備える、立体認識システム。
【請求項１８】
予め定められた複数の部品より構成される実空間における立体を認識するための電子装置であって、
前記立体を撮影するための撮影装置と、
各部品のＩＤ、各部品の３次元モデル、及び各部品間の接合制約条件を示す制約データを関連付けて記憶する部品データベースと、
前記部品データベースに入力されるクエリのうち少なくとも部品それぞれのＩＤを含むクエリ保存用データを記憶する履歴データベースと、
前記撮影装置により撮影された画像から各部品を識別可能な特徴をそれぞれ抽出し、該特徴に基づいて部品のそれぞれのＩＤ及び該部品の位置データを取得する画像認識部と、  前記特徴に基づいて取得された部品のそれぞれのＩＤを含むクエリを生成するクエリ生成部と、
クエリが生成された場合、該クエリを用いて、前記部品データベースから、該クエリが含むＩＤのそれぞれに関連付けられた部品それぞれの３次元モデル及び制約データを取得するデータ取得部と、
前記取得された部品それぞれの位置データ、３次元モデル、及び制約データに基づいて前記実空間と対応させた仮想空間に各部品を配置する部品配置部と、
前記配置された各部品の位置関係に基づいて、前記配置された各部品の位置の整合性を判定する整合性判定部と、
前記整合性が有ると判定された場合、前記配置された各部品の位置に基づいて立体を認識する立体認識部と、
前記整合性が無いと判定された場合、
前記データ取得部が用いたクエリのうち少なくとも部品それぞれのＩＤを含むクエリ保存用データを前記履歴データベースに記憶するデータベース記憶部と、
前記履歴データベースが記憶するクエリ保存用データ及び前記部品データベースが記憶するデータに基づいて、クエリを再生成するか否かを決定するクエリ再生成決定部と、    クエリを再生成すると決定された場合、前記履歴データベースが記憶するクエリ保存用データとは異なるデータを含むクエリを生成するクエリ再生成部と、
を備える、電子装置。
【請求項１９】
予め定められた複数の部品より構成される実空間における立体を認識するための、該立体を撮影するための撮影装置を備える電子装置において実行される方法であって、
前記撮影装置により撮影された画像から各部品を識別可能な特徴をそれぞれ抽出し、該特徴に基づいて部品のそれぞれのＩＤ及び該部品の位置データを取得する画像認識ステップと、
前記特徴に基づいて取得された部品のそれぞれのＩＤを含むクエリを生成するクエリ生成ステップと、
クエリが生成された場合、該クエリを用いて、各部品のＩＤ、各部品の３次元モデル、及び各部品間の接合制約条件を示す制約データを関連付けて記憶する部品データベースから、該クエリが含むＩＤのそれぞれに関連付けられた部品それぞれの３次元モデル及び制約データを取得するデータ取得ステップと、
前記取得された部品それぞれの位置データ、３次元モデル、及び制約データに基づいて前記実空間と対応させた仮想空間に各部品を配置する部品配置ステップと、
前記配置された各部品の位置関係に基づいて、前記配置された各部品の位置の整合性を判定する整合性判定ステップと、
前記整合性が有ると判定された場合、前記配置された各部品の位置に基づいて立体を認識する立体認識ステップと、
前記整合性が無いと判定された場合、
前記データ取得ステップにおいて用いたクエリのうち少なくとも部品それぞれのＩＤを含むクエリ保存用データを履歴データベースに記憶するデータベース記憶ステップと、    前記履歴データベースが記憶するクエリ保存用データ及び前記部品データベースが記憶するデータに基づいて、クエリを再生成するか否かを決定するクエリ再生成決定ステップと、
クエリを再生成すると決定された場合、前記履歴データベースが記憶するクエリ保存用データと異なるデータを含むクエリを生成するクエリ再生成ステップと、
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、立体を認識するためのプログラム、システム、電子装置、及び方法に関し、特に予め定められた複数の部品より構成される実空間における立体を認識するためのプログラム、システム、電子装置、及び方法に関する。
【背景技術】
【０００２】
撮影された平面画像から、現実空間の３次元物体の立体形状を認識する技術が知られている。しかし、立体形状を平面に投影すると、奥行きや隠れ面についての立体的な情報が失われるため、単一の平面画像から立体形状を直接認識することはできない。従来、異なる視点から撮影された複数の画像の対応付けを行うことで立体情報を帰納的に推定して形状認識する技術や、特定の構造物を対象として対象の事前知識から立体情報を演繹的に推定して形状認識する技術が開発されてきた。
【０００３】
例えば非特許文献１には、Structure from Motion（ＳｆＭ）と呼ばれる技術を用いて、複数の画像の対応付けによって形状認識する技術が開示されている。また例えば非特許文献２には、単一の画像を入力とし、人体・表情等特定の対象を仮定して形状認識する技術が開示されている。当該技術は、人間の表情が大域的には似ていて局所的な違いが多くあるということに注目し、既存の３Ｄモデルを変形させることで、入力画像に対応する３Ｄモデルを構築するものである。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Marc Pollefeys, Luc Van Gool, Maarten Vergauwen, Frank Verbiest, Kurt Cornelis, Jan Tops, Reinhard Koch. 2004. Visual Modeling with a Hand-Held Camera. International Journal of Computer Vision.
【非特許文献２】Ira Kemelmacher-Shlizerman, Ronen Basri. 2011. 3D face reconstruction from a single image using a single reference face shape. IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１が開示する技術は、ユーザが複数回の撮影を行うか、又は複数台のカメラを用いて撮影を行う必要があり、ユーザ操作が複雑化する。また、非特許文献２が開示する技術は、構造物が既知であることを前提とするため、ユーザが自由に作成するような構造物の認識には適用することができない。このように、自由な形状の構造物を対象とした、単一の平面画像からの立体形状認識技術は、有効なものが未だ確立されていない。
【０００６】
本発明は、このような課題を解決するためになされたものであり、単一の画像から立体形状を認識することが可能なプログラム等を提供することを主目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、本発明の一態様としてのプログラムは、予め定められた複数の部品より構成される実空間における立体を認識するためのプログラムであって、該プログラムは該立体を撮影するための撮影装置を備える電子装置において実行されるものであり、該電子装置に、前記撮影装置により撮影された画像から各部品を識別可能な特徴をそれぞれ抽出し、該特徴に基づいて部品のそれぞれのＩＤ及び該部品の位置データを取得する画像認識ステップと、前記特徴に基づいて取得された部品のそれぞれのＩＤを含むクエリを生成するクエリ生成ステップと、クエリが生成された場合、該クエリを用いて、各部品のＩＤ、各部品の３次元モデル、及び各部品間の接合制約条件を示す制約データを関連付けて記憶する部品データベースから、該クエリが含むＩＤのそれぞれに関連付けられた部品それぞれの３次元モデル及び制約データを取得するデータ取得ステップと、前記取得された部品それぞれの位置データ、３次元モデル、及び制約データに基づいて前記実空間と対応させた仮想空間に各部品を配置する部品配置ステップと、前記配置された各部品の位置関係に基づいて、前記配置された各部品の位置の整合性を判定する整合性判定ステップと、前記整合性が有ると判定された場合、前記配置された各部品の位置に基づいて立体を認識する立体認識ステップと、前記整合性が無いと判定された場合、前記データ取得ステップにおいて用いたクエリのうち少なくとも部品それぞれのＩＤを含むクエリ保存用データを履歴データベースに記憶するデータベース記憶ステップと、前記履歴データベースが記憶するクエリ保存用データ及び前記部品データベースが記憶するデータに基づいて、クエリを再生成するか否かを決定するクエリ再生成決定ステップと、クエリを再生成すると決定された場合、前記履歴データベースが記憶するクエリ保存用データと異なるデータを含むクエリを生成するクエリ再生成ステップと、を実行させることを特徴とする。
【０００８】
また、本発明において好ましくは、前記プログラムは、前記電子装置に、前記画像認識ステップの前に、前記履歴データベースが記憶するクエリ保存用データを消去するデータベース初期化ステップを実行させる。
【０００９】
また、本発明において好ましくは、前記部品配置ステップは、前記取得された部品それぞれの位置データ及び３次元モデルを用いて前記仮想空間に各部品を配置し、前記仮想空間上における隣接する部品のそれぞれにおいて、前記接合制約条件を満たすように各部品の位置を調整して配置する。
【００１０】
また、本発明において好ましくは、前記部品配置ステップは、前記仮想空間上に配置された部品のうちの２つの部品の３次元モデル間の長さが所定値以内であるか否かに基づいて２つの部品が隣接するか否かを判定する。
【００１１】
また、本発明において好ましくは、前記位置は６自由度位置である。
【００１２】
また、本発明において好ましくは、各部品を識別可能な前記特徴は、各部品が部品表面に有するＡＲマーカである。
【００１３】
また、本発明において好ましくは、前記データ取得ステップは、クエリが生成された場合、該クエリを用いて、前記部品データベースから、該クエリが含むＩＤのそれぞれに関連付けられた部品それぞれの３次元モデル及び制約データを、該ＩＤに対応付けて該クエリにそれぞれ加えることにより取得する。
【００１４】
また、本発明において好ましくは、前記整合性判定ステップは、前記配置された各部品の３次元モデルが占める領域の重複度合いに基づいて、前記配置された各部品の位置の整合性を判定する。
【００１５】
また、本発明において好ましくは、前記画像認識ステップは、前記撮影装置により撮影された画像から前記立体のベース部分を形成するベース部を認識し、前記部品配置ステップは、該ベース部を前記仮想空間上に配置し、前記整合性判定ステップは、前記配置された各部品の位置と前記ベース部の位置との位置関係から前記配置された各部品が重力に従った配置であるか否かを判定し、該判定に更に基づいて整合性を判定する。
【００１６】
また、本発明において好ましくは、前記整合性判定ステップは、前記撮影装置により撮影された画像と、前記配置された各部品の、前記撮影装置の位置に対応する前記仮想空間の位置に配置された仮想カメラから見た画像との一致度に基づいて整合性を判定する。
【００１７】
また、本発明において好ましくは、前記データベース記憶ステップは、前記クエリ保存用データが含む部品それぞれのＩＤに関連付けて、前記配置された各部品の位置を前記履歴データベースに更に記憶する。
【００１８】
また、本発明において好ましくは、前記クエリ再生成決定ステップは、前記履歴データベースが記憶するクエリ保存用データが、前記部品データベースが記憶する部品のＩＤの所定の組み合わせを含むか否かに基づいて、クエリを再生成するか否かを決定する。
【００１９】
また、本発明において好ましくは、前記プログラムは、前記電子装置に、クエリを再生成しないと決定された場合、エラーを出力するエラー出力ステップを更に実行させる。
【００２０】
また、本発明において好ましくは、前記データベース記憶ステップは、前記クエリ保存用データが含む部品それぞれのＩＤに関連付けて、前記配置された各部品の位置の整合性の評価値を前記履歴データベースに更に記憶する。
【００２１】
また、本発明において好ましくは、前記プログラムは、前記電子装置に、クエリを再生成しないと決定された場合、前記評価値により最も高い整合性を有する前記配置された各部品の位置に基づいて立体を認識する第２の立体認識ステップを実行させる。
【００２２】
また、本発明において好ましくは、前記クエリ再生成ステップは、前記仮想空間上に配置された部品のうちの２つの部品の３次元モデル間の長さが所定値以上である場合、該長さに対応する部品のＩＤを追加したクエリを生成する。
【００２３】
また、上記の目的を達成するために、本発明の一態様としての立体認識システムは、予め定められた複数の部品より構成される実空間における立体を認識するための立体認識システムであって、前記立体を撮影するための撮影装置を備える電子装置と、各部品のＩＤ、各部品の３次元モデル、及び各部品間の接合制約条件を示す制約データを関連付けて記憶する部品データベースと、前記部品データベースに入力されるクエリのうち少なくとも部品それぞれのＩＤを含むクエリ保存用データを記憶する履歴データベースと、前記撮影装置により撮影された画像から各部品を識別可能な特徴をそれぞれ抽出し、該特徴に基づいて部品のそれぞれのＩＤ及び該部品の位置データを取得する画像認識部と、前記特徴に基づいて取得された部品のそれぞれのＩＤを含むクエリを生成するクエリ生成部と、クエリが生成された場合、該クエリを用いて、前記部品データベースから、該クエリが含むＩＤのそれぞれに関連付けられた部品それぞれの３次元モデル及び制約データを取得するデータ取得部と、前記取得された部品それぞれの位置データ、３次元モデル、及び制約データに基づいて前記実空間と対応させた仮想空間に各部品を配置する部品配置部と、前記配置された各部品の位置関係に基づいて、前記配置された各部品の位置の整合性を判定する整合性判定部と、前記整合性が有ると判定された場合、前記配置された各部品の位置に基づいて立体を認識する立体認識部と、前記整合性が無いと判定された場合、前記データ取得部が用いたクエリのうち少なくとも部品それぞれのＩＤを含むクエリ保存用データを前記履歴データベースに記憶するデータベース記憶部と、前記履歴データベースが記憶するクエリ保存用データ及び前記部品データベースが記憶するデータに基づいて、クエリを再生成するか否かを決定するクエリ再生成決定部と、クエリを再生成すると決定された場合、前記履歴データベースが記憶するクエリ保存用データとは異なるデータを含むクエリを生成するクエリ再生成部と、を備えることを特徴とする。
【００２４】
また、上記の目的を達成するために、本発明の一態様としての電子装置は、予め定められた複数の部品より構成される実空間における立体を認識するための電子装置であって、前記立体を撮影するための撮影装置と、各部品のＩＤ、各部品の３次元モデル、及び各部品間の接合制約条件を示す制約データを関連付けて記憶する部品データベースと、前記部品データベースに入力されるクエリのうち少なくとも部品それぞれのＩＤを含むクエリ保存用データを記憶する履歴データベースと、前記撮影装置により撮影された画像から各部品を識別可能な特徴をそれぞれ抽出し、該特徴に基づいて部品のそれぞれのＩＤ及び該部品の位置データを取得する画像認識部と、前記特徴に基づいて取得された部品のそれぞれのＩＤを含むクエリを生成するクエリ生成部と、クエリが生成された場合、該クエリを用いて、前記部品データベースから、該クエリが含むＩＤのそれぞれに関連付けられた部品それぞれの３次元モデル及び制約データを取得するデータ取得部と、前記取得された部品それぞれの位置データ、３次元モデル、及び制約データに基づいて前記実空間と対応させた仮想空間に各部品を配置する部品配置部と、前記配置された各部品の位置関係に基づいて、前記配置された各部品の位置の整合性を判定する整合性判定部と、前記整合性が有ると判定された場合、前記配置された各部品の位置に基づいて立体を認識する立体認識部と、前記整合性が無いと判定された場合、前記データ取得部が用いたクエリのうち少なくとも部品それぞれのＩＤを含むクエリ保存用データを前記履歴データベースに記憶するデータベース記憶部と、前記履歴データベースが記憶するクエリ保存用データ及び前記部品データベースが記憶するデータに基づいて、クエリを再生成するか否かを決定するクエリ再生成決定部と、クエリを再生成すると決定された場合、前記履歴データベースが記憶するクエリ保存用データとは異なるデータを含むクエリを生成するクエリ再生成部と、を備えることを特徴とする。
【００２５】
また、上記の目的を達成するために、本発明の一態様としての方法は、予め定められた複数の部品より構成される実空間における立体を認識するための、該立体を撮影するための撮影装置を備える電子装置において実行される方法であって、前記撮影装置により撮影された画像から各部品を識別可能な特徴をそれぞれ抽出し、該特徴に基づいて部品のそれぞれのＩＤ及び該部品の位置データを取得する画像認識ステップと、前記特徴に基づいて取得された部品のそれぞれのＩＤを含むクエリを生成するクエリ生成ステップと、クエリが生成された場合、該クエリを用いて、各部品のＩＤ、各部品の３次元モデル、及び各部品間の接合制約条件を示す制約データを関連付けて記憶する部品データベースから、該クエリが含むＩＤのそれぞれに関連付けられた部品それぞれの３次元モデル及び制約データを取得するデータ取得ステップと、前記取得された部品それぞれの位置データ、３次元モデル、及び制約データに基づいて前記実空間と対応させた仮想空間に各部品を配置する部品配置ステップと、前記配置された各部品の位置関係に基づいて、前記配置された各部品の位置の整合性を判定する整合性判定ステップと、前記整合性が有ると判定された場合、前記配置された各部品の位置に基づいて立体を認識する立体認識ステップと、前記整合性が無いと判定された場合、前記データ取得ステップにおいて用いたクエリのうち少なくとも部品それぞれのＩＤを含むクエリ保存用データを履歴データベースに記憶するデータベース記憶ステップと、前記履歴データベースが記憶するクエリ保存用データ及び前記部品データベースが記憶するデータに基づいて、クエリを再生成するか否かを決定するクエリ再生成決定ステップと、クエリを再生成すると決定された場合、前記履歴データベースが記憶するクエリ保存用データと異なるデータを含むクエリを生成するクエリ再生成ステップと、を含むことを特徴とする。
【発明の効果】
【００２６】
本発明によれば、単一の画像から立体形状を認識することができる。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施形態による立体認識システムの全体構成図である。
【図２】本発明の一実施形態による電子装置のハードウェア構成を示すブロック図である。
【図３】本発明の一実施形態によるサーバのハードウェア構成を示すブロック図である。
【図４】本発明の一実施形態によるサーバの機能ブロック図の一例を示す。
【図５】本発明の一実施形態による電子装置の機能ブロック図の一例を示す。
【図６】撮影装置による撮影画像の一例を示す図である。
【図７】図６に示す撮影画像から画像認識部が認識した３つの部品を示す図である。
【図８】図７に示す画像認識部が認識した３つの部品から、部品配置部が隣接する２つの部品の組をそれぞれ特定し、接合制約条件を満たすように移動等させた様子を示す図である。
【図９】図８に示す部品配置部が配置を確定した部品により立体認識部が認識した構造物を示す図である。
【図１０】本発明の一実施形態による立体認識システムの情報処理を示すフローチャートである。
【発明を実施するための形態】
【００２８】
以下、図面を参照して、本発明の実施形態による立体認識システム１について説明する。本明細書においては、説明の便宜上、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成についての重複説明を省略する場合がある。
【００２９】
本発明の実施形態による立体認識システム１は、形状や大きさが既知である予め定められた複数の部品５を組み合わせて作成された実空間における立体を認識するためのシステムである。本明細書において、複数の部品５を組み合わせて作成された実空間における立体を特に構造物と呼ぶ場合がある。本発明の実施形態の技術的特徴の１つは、立体認識システム１が、上記のように作成された構造物を単一の平面画像から認識することである。個々の部品５の形状や大きさが既知であっても、部品５を自由に組み合わせて作成される構造物は既知ではないことは理解される。
【００３０】
なお、本明細書における実空間上の部品５は、他の部品５が接触することにより、又は他の部品５が当該部品５の上に載せられることにより、実質的に体積や形状が変わらない剛体を想定している。また本明細書において、２つの部品５が接触して１つの構造物を形成することを、２つの部品５が接合するという。例えば、２つの部品５が接合するとは、一の部品５と他の部品５が接触すること、一の部品５と他の部品５が嵌合されて固定されること、及び一の部品５が他の部品５に載せられることなどを示す。
【００３１】
図１は、本発明の一実施形態による立体認識システム１の全体構成図である。図１に示すように、立体認識システム１は、電子装置３と、サーバ４と備え、電子装置３及びサーバ４は、インターネットなどのネットワーク２に接続され、互いに通信可能である。
【００３２】
図２は本発明の一実施形態による電子装置３のハードウェア構成を示すブロック図である。電子装置３は、プロセッサ１１、表示装置１２、入力装置１３、撮影装置１４、記憶装置１５、及び通信装置１６を備える。これらの各構成装置はバス１６によって接続される。なお、バス１７と各構成装置との間には必要に応じてインタフェースが介在しているものとする。本実施形態において、電子装置３はスマートフォンである。ただし、電子装置３は、上記の構成を備えるものであれば、タブレット型コンピュータ、タッチパッド等の接触型入力装置を備えるコンピュータなどの携帯電子端末とすることができる。
【００３３】
プロセッサ１１は、電子装置３全体の動作を制御するものであり、例えばＣＰＵである。なお、プロセッサ１１としては、ＭＰＵ等の電子回路が用いられてもよい。プロセッサ１１は、記憶装置１４に格納されているプログラムやデータを読み込んで実行することにより、様々な処理を実行する。１つの例では、プロセッサ１１は、複数のプロセッサから構成される。
【００３４】
表示装置（ディスプレイ）１２は、プロセッサ１１の制御に従って、アプリケーション画面や撮影装置１４によって撮影された画像などを電子装置３のユーザに表示する。好ましくは液晶ディスプレイであるが、有機ＥＬを用いたディスプレイやプラズマディスプレイ等であってもよい。
【００３５】
入力装置１３は、電子装置３に対するユーザからの入力を受け付けるユーザインタフェースであり、例えば、タッチパネル、タッチパッド、キーボード、又はマウスである。
本実施形態において電子装置３はスマートフォンであるため、電子装置３は入力装置１３としてタッチパネルを備え、タッチパネルは表示装置１２としても機能し、表示装置１２と入力装置１３は一体となった構造である。ただし、表示装置１２と入力装置１３は、別の位置に配置される別個の形態であってもよい。
【００３６】
撮影装置（撮像装置）１４は、実空間の静止画又は動画を撮影（撮像）するものであり、撮影した画像又は動画データを記憶部１５に格納する。撮影装置１４は、例えばイメージセンサなどから構成されるカメラである。
【００３７】
記憶装置１５は、揮発性メモリであるＲＡＭ及び不揮発性メモリであるＲＯＭを含む、一般的なスマートフォンが備える記憶装置である。記憶装置１５は、外部メモリを含むこともできる。
【００３８】
１つの例では、記憶装置１５は、主記憶装置及び補助記憶装置を含む。主記憶装置は、情報の高速な読み書きが可能な揮発性の記憶媒体であり、プロセッサ１１が情報を処理する際の記憶領域及び作業領域として用いられる。補助記憶装置は、様々なプログラムや、各プログラムの実行に際してプロセッサ１１が使用するデータを格納する。補助記憶装置は、例えばハードディスク装置であるが、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。補助記憶装置は、例えば、オペレーティングシステム（ＯＳ）、ミドルウェア、アプリケーションプログラム、これらのプログラムの実行に伴って参照され得る各種データなどを格納する。
【００３９】
通信装置１６は、ネットワーク２を介してサーバ４などの他のコンピュータとの間でデータの授受を行う。例えば通信装置１６は、移動体通信や無線ＬＡＮ等の無線通信を行い、ネットワーク２へ接続する。１つの例では、通信装置１６によって、プログラムをサーバ４からダウンロードして、記憶装置１６に格納する。ただし、通信装置１６は、イーサネット（登録商標）ケーブル等を用いた有線通信を行ってもよい。
【００４０】
図３は本発明の一実施形態によるサーバ４のハードウェア構成を示すブロック図である。サーバ４は、プロセッサ２１、表示装置２２、入力装置２３、記憶装置２４、及び通信装置２５を備える。これらの各構成装置はバス２６によって接続される。なお、バス２６と各構成装置との間には必要に応じてインタフェースが介在しているものとする。
【００４１】
プロセッサ２１は、サーバ４全体の動作を制御するものであり、例えばＣＰＵである。なお、プロセッサ１１としては、ＭＰＵ等の電子回路が用いられてもよい。プロセッサ１１は、記憶装置１４に格納されているプログラムやデータを読み込んで実行することにより、様々な処理を実行する。１つの例では、プロセッサ２１は、複数のプロセッサから構成される。
【００４２】
表示装置（ディスプレイ）２２は、プロセッサ２１の制御に従って、アプリケーション画面などをサーバ４の使用者に表示する。入力装置２３は、サーバ４に対するユーザからの入力を受け付けるものであり、例えば、タッチパネル、タッチパッド、キーボード、又はマウスである。
【００４３】
記憶装置２４は、主記憶装置及び補助記憶装置を含む。主記憶装置は、例えばＲＡＭのような半導体メモリである。ＲＡＭは、情報の高速な読み書きが可能な揮発性の記憶媒体であり、プロセッサ２１が情報を処理する際の記憶領域及び作業領域として用いられる。主記憶装置は、読み出し専用の不揮発性記憶媒体であるＲＯＭを含んでいてもよい。この場合、ＲＯＭはファームウェア等のプログラムを格納する。補助記憶装置は、様々なプログラムや、各プログラムの実行に際してプロセッサ２１が使用するデータを格納する。補助記憶装置は、例えばハードディスク装置であるが、情報を格納できるものであればいかなる不揮発性ストレージ又は不揮発性メモリであってもよく、着脱可能なものであっても構わない。補助記憶装置は、例えば、オペレーティングシステム（ＯＳ）、ミドルウェア、アプリケーションプログラム、これらのプログラムの実行に伴って参照され得る各種データなどを格納する。
【００４４】
好適な１つの例では、記憶部２４は各種データベース用のデータ（例えばテーブル）やプログラムを記憶する。プロセッサ２１の動作などにより、各種データベースは実現される。サーバ４は、データベースサーバ機能を備えることもできるし、１又は複数のデータベースサーバを含むこともできるし、又は他のサーバを含むこともできる。
【００４５】
通信装置２５は、ネットワーク２を介して電子装置３などの他のコンピュータとの間でデータの授受を行うための装置である。例えば通信装置２５は、イーサネット（登録商標）ケーブル等を用いた有線通信や移動体通信、無線ＬＡＮ等の無線通信を行い、ネットワーク４へ接続する。
【００４６】
図４は、本発明の一実施形態によるサーバ４の機能ブロック図の一例を示す。サーバ４は、部品データベース４１と、履歴データベース４２と、を備える。本実施形態においては、プロセッサ２１によりプログラムが実行されることによりこれらの機能が実現される。このように、各種機能がプログラム読み込みにより実現されるため、１つのデータベースの一部を他のデータベースが有していてもよい。
【００４７】
前述のとおり、立体認識システム１は、予め定められた複数の部品５より構成される実空間における構造物を認識する。部品データベース４１は、部品５それぞれの部品ＩＤ、部品５の３次元モデルデータ（３次元モデル）、及び部品５間の接合制約条件を示す制約データを関連付けて記憶する。電子装置３は、クエリを用いて、部品データベース４１からデータを取得する。
【００４８】
部品ＩＤは、部品５を識別するための一意の識別情報を示すデータである。部品データベース４１に記憶される部品５は、それぞれ部品ＩＤに対応付けられる。構造物は、部品データベース４１に記憶される部品５の一部又は全部により作成される。形状及び大きさが同じ部品５が複数ある場合、当該部品５は、同一の部品ＩＤを有する。この場合、部品データベース４１は、部品５の個数を、部品ＩＤに更に関連付けて記憶する。ただし、すべての部品５が異なる部品ＩＤを有するように構成し、部品データベース４１が部品５の個数を含まないようにすることもできる。
【００４９】
３次元モデルは、部品５の形状及び大きさを定めるデータであり、例えばワイヤーフレームモデルやポリゴンメッシュで表現されたデータである。
【００５０】
制約データは、部品データベース４１に記憶される部品５間の接合制約条件を定める位置合わせ用メタデータである。接合制約条件は、部品５を接合する際に課される幾何学的制約であり、２つの部品５の相対的な位置関係を定める。
【００５１】
位置合わせ用メタデータは、２つの部品５の相対的な位置関係において、６自由度（６ＤｏＦ）のうちの少なくとも１つの制約を定めるデータである。６ＤｏＦは、３次元空間上の立体の位置及び姿勢についての、座標と回転方向からなる自由度である。部品データベース４１は、一の部品５の部品ＩＤに、他の部品５それぞれとの制約を定める位置合わせ用メタデータを、関連付けて記憶する。
【００５２】
一の部品５の位置合わせ用メタデータ、すなわち一の部品５の部品ＩＤに関連付けられる位置合わせ用メタデータは、一の部品５と接合する可能性のあるすべての部品５それぞれとの制約を定めるデータを含む。１つの例では、部品データベース４１が一の部品５を１つのみ含む場合、一の部品５の部品ＩＤに関連付けられる位置合わせ用メタデータは、一の部品５以外のすべての他の部品５それぞれとの制約を定めるデータを含む。１つの例では、部品データベース４１が一の部品５を複数含む場合、該一の部品５の部品ＩＤに関連付けられる位置合わせ用メタデータは、一の部品５を含むすべての部品５それぞれとの制約を定めるデータを含む。
【００５３】
部品データベース４１は、部品５の３次元モデルや位置合わせ用メタデータを、各部品５で共通の座標系を用いて記憶する。好ましくは、部品データベース４１が記憶する各部品５ごとの３次元モデルや位置合わせ用メタデータは、各部品５の中央を原点とする３軸座標系により表される。
【００５４】
好適な１つの例では、すべての部品５において部品表面の任意の点を接合基準点６として定めると、一の部品５の位置合わせ用メタデータは、一の部品５の接合基準点６に対する他の部品５の接合基準点６の距離と角度の条件により定められる。一組の部品５間に着目すると、一の部品５の位置合わせ用メタデータ(alignment-data)は、位置の制約(positional-constraint)及び姿勢の制約(orientational-constraint)を要素とする配列として以下に示す式１〜式３のとおり記述することができる。
2019114226.tif 000003
（式１）
2019114226.tif 000004
（式２）
2019114226.tif 000005
（式３）
式１から式３において、
2019114226.tif 000006
は、一の部品５の接合基準点の座標を示す。
2019114226.tif 000007
は、一の部品５の接合基準点と他の部品５の接合基準点とのｘ軸方向の距離の最小値と最大値を示す。
2019114226.tif 000008
は、一の部品５の接合基準点と他の部品５の接合基準点とのｙ軸方向の距離の最小値と最大値を示す。
2019114226.tif 000009
は、一の部品５の接合基準点と他の部品５の接合基準点とのｘ軸方向の距離の最小値と最大値を示す。
2019114226.tif 000010
は、一の部品５の接合基準点と他の部品５の接合基準点とのｘ軸を中心とした回転角度差（ｒｏｌｌの回転角度差）の最小値と最大値を示す。
2019114226.tif 000011
は、一の部品５の接合基準点と他の部品５の接合基準点とのｙ軸を中心とした回転角度差（ｐｉｔｃｈの回転角度差）の最小値と最大値を示す。
2019114226.tif 000012
は、一の部品５の接合基準点と他の部品５の接合基準点とのｚ軸を中心とした回転角度差（ｙａｗの回転角度差）の最小値と最大値を示す。
【００５５】
式１〜式３に示す位置合わせ用メタデータは、一の部品５と他の１つの部品５との制約を定めるデータである。部品データベース４１は、一の部品５と接合する可能性のあるすべての部品５それぞれとの制約を定める位置合わせ用メタデータを、一の部品５の部品ＩＤに関連付けて各々記憶する。また一の部品５が複数の接合面を有する場合、一の部品５は、複数の接合基準点を有することができる。この場合、一の部品５と他の１つの部品５との制約を定めるデータに関して、位置合わせ用メタデータは、接合基準点ごとに式１〜式３に示すデータを有することができ、位置及び姿勢の制約の要素は、接合基準点に従属するデータとして扱うことができる。以下、本実施形態においては、一の部品５の制約データは、一の部品５と接合する可能性のある部品５ごとに、位置合わせ用メタデータを有するものとする。また、位置合わせ用メタデータは、接合基準点６及び該接合基準点６に従属するデータとして位置の制約及び姿勢の制約の要素を有するものとする。
【００５６】
１つの例では、各々が１つの接合基準点を有する２つの部品５（Ｐ1とＰ2）が接合する場合、各部品５の位置合わせ用データを添字により表すと、以下の式が成立する。
2019114226.tif 000013
（式４）
2019114226.tif 000014
（式５）
2019114226.tif 000015
（式６）
2019114226.tif 000016
（式７）
2019114226.tif 000017
（式８）
2019114226.tif 000018
（式９）
【００５７】
立体の回転方向は、軸の選び方の順序によって異なる位置となりうるため、例えば１つのアプリケーションにおいて、その順序は１つに定められているものとする。１つの例では、一の部品の接合基準点と他の任意の部品の接合基準点とのｘ軸方向、ｙ軸方向、及びｚ軸方向の少なくとも１つの距離の最小値と最大値を［０，∞］とし、一の部品の接合基準点と他の任意の部品の接合基準点とのｒｏｌｌ、ｐｉｔｃｈ、及びｙａｗの少なくとも１つの最小値及び最大値を［−１８０、１８０］とする。これにより、制約条件において一部の自由度を残すことができる。他の例では、位置合わせ用メタデータが６ＤｏＦのうちの１つの制約も定めないように構成される。この場合、部品データベース４１は、制約データを記憶しなくてもよい。
【００５８】
履歴データベース４２は、電子装置３から部品データベース４１に入力されるクエリのうち少なくとも部品それぞれのＩＤを含むクエリ保存用データを記憶する。部品データベース４１に入力されるクエリは、例えば電子装置３が部品データベース４１からデータを検索して取得する際に用いるクエリである。
【００５９】
図５は本発明の一実施形態による電子装置３の機能ブロック図の一例を示す。電子装置３は、画像認識部３１と、クエリ生成部３２と、データ取得部３３と、部品配置部３４と、整合性判定部３５と、立体認識部３６と、データベース記憶部３７と、クエリ再生成決定部３８と、クエリ再生成部３９と、を備える。本実施形態においては、プロセッサ１１によりプログラムが実行されることによりこれらの機能が実現される。このように、各種機能がプログラム読み込みにより実現されるため、１つのパート（機能）の一部又は全部を他のパートが有していてもよい。ただし、各機能の一部又は全部を実現するための電子回路等を構成することによりハードウェアによってもこれらの機能は実現してもよい。
【００６０】
最初に、立体認識システム１で用いられる部品５について説明する。複数の部品５は、各部品５を識別可能なマーカを、部品表面に有する。好適な１つの例では、マーカは、ＡＲマーカであり、例えば矩形状の黒枠とその内部に描かれた左右非対称のドットパターンにより構成される。このようにマーカは、該マーカが撮影された画像から、撮影装置１４からの該マーカの位置及び姿勢を取得可能である形状を有するとともに、各部品５を識別可能な特徴パターンを有する。ただし、複数の部品５は、各部品５を識別可能なマーカ以外の、各部品５を識別可能な特徴を部品表面に有していてもよい。例えば、複数の部品５は、各部品５を識別可能な特徴パターンのみを有し、該特徴パターンが、撮影された画像から、撮影装置１４からの該特徴パターンの位置及び姿勢を取得可能であるとともに各部品５を識別可能であるように構成されてもよい。
【００６１】
画像認識部３１は、撮影装置１４により撮影された画像から各部品５を識別可能なマーカをそれぞれ抽出する。画像認識部３１は、抽出されたマーカから部品５の部品ＩＤをそれぞれ取得するとともに、撮影画像における該マーカの形状及び大きさから、各部品５の位置データを取得する。画像認識部３１は、このようにして、撮影画像内にある各部品５を認識する。１つの例では、画像認識部３１が取得する各部品５の位置データは、カメラ座標系により表現されるマーカの認識の基準点の位置であり、撮影装置１４からの相対位置を示すものである。１つの例では、位置データは、６ＤｏＦ（６自由度）の位置である。他の例では、位置データは、クォータニオン等により表現される。なお、画像認識部３１は既知の画像認識技術が有する機能を備えることができ、画像認識部３１が取得する各部品５の位置データは大まかな位置であってもよい。
【００６２】
部品データベース４１は、部品ＩＤに関連付けて、該部品ＩＤに対応付けられた部品５の表面にあるマーカの形状、大きさ、及び特徴パターンと、該マーカの該部品５における位置とを記憶する。マーカの部品５における位置は、例えば画像認識部３１が認識するマーカの認識の基準点の位置であり、該部品５の中央を原点とする３軸座標系により表される。また、部品データベース４１は、部品ＩＤに関連付けて、該部品ＩＤに対応付けられた部品５の接合基準点６の位置を記憶する。接合基準点６の位置は、マーカの部品５における位置と同様に記憶され、例えば該部品５の中央を原点とする３軸座標系により表される。
【００６３】
図６は、撮影装置１４による撮影画像の一例を示す図であり、撮影画像には、３つの部品５（５ａ、５ｂ、５ｃ）から構成される構造物が映っている。画像認識部３１は、図６に示す撮影画像から、３つのマーカを抽出し、抽出したマーカから３つの部品５に対応付けられた部品ＩＤと、該部品５の位置データを取得することで、３つの部品５をそれぞれ認識する。図７は、図６に示す撮影画像から画像認識部３１が認識した３つの部品５ａ、５ｂ、５ｃを示す図であり、３つの部品５それぞれの接合基準点６（６ａ、６ｂ１、６ｂ２、６ｃ）を示す。部品５ｂは、２つの接合基準点６ｂ１及び６ｂ２を有することが確認できる。例えば、撮影画像に中央の部品のマーカが映っていない場合、画像認識部３１は、両端の部品５のみ認識する。
【００６４】
クエリ生成部３２は、画像認識部３１により取得された部品ＩＤを含むクエリを生成する。データ取得部３３は、クエリが生成された場合、生成されたクエリを用いて、部品データベース４１から、該クエリが含む部品ＩＤのそれぞれに関連付けられた部品５それぞれの３次元モデル及び制約データを取得する。
【００６５】
クエリは、部品ＩＤと、部品ＩＤに従属するデータとを含み、例えば各データを要素とする配列として定められる。部品ＩＤに従属するデータは、部品ＩＤに対応付けられた部品５の位置データを含む。部品５の位置データは、画像認識部３１により取得されるものである。また、部品ＩＤに従属するデータは、３次元モデルと、制約データとを含む。
【００６６】
データ取得部３３が、データを取得する際に用いるクエリは、画像認識部３１により取得された部品ＩＤと、部品ＩＤに対応付けられた部品５の位置データとを含んでいればよい。１つの例では、データ取得部３３は、部品データベース４１の検索の際に用いたクエリに、該クエリが含む部品ＩＤに関連付けられた部品５それぞれの３次元モデル及び制約データを、該部品ＩＤに対応付けて該クエリにそれぞれ加える。これにより、データ取得部３３は、部品ＩＤごとの部品５の３次元モデル及び制約データを取得する。
【００６７】
部品配置部３４は、クエリが含む部品ＩＤごとに、画像認識部３１により取得された位置データと、データ取得部３３により取得された３次元モデル及び制約データとに基づいて、実空間と対応させた仮想空間に各部品５を配置する。最初に、部品配置部３４は、クエリが含む部品ＩＤごとに、３次元モデルと、位置データとを用いて、仮想空間に各部品５を仮想空間上に配置する。
【００６８】
次に、部品配置部３４は、配置された部品５のそれぞれが隣接しているか否かを判定することにより、配置された部品５のうち隣接する２つの部品５の組をそれぞれ特定する。１つの例では、部品配置部３４は、最初に配置された２つの部品５の接合基準点６間の長さが所定値以内であるか否かを判定し、所定値以内である場合、２つの部品５は隣接していると判定する。部品配置部３４は、１つの部品５に対して複数の部品５が隣接していると判定することができる。
【００６９】
次に、部品配置部３４は、隣接していると特定された２つの部品５の組から所定の順番で部品５の組を選択する。部品配置部３４は、隣接していると判定された２つの部品５の組のそれぞれにおいて、接合制約条件を満たすように、２つの部品５のうちのいずれか一方を移動や回転（以下、「移動等」という。）させて、配置を確定する。このように、部品配置部３４は、各部品５を調整して配置する。部品配置部３４は、接合制約条件を満たしている場合、部品５を移動等させないで配置を確定する。部品配置部３４は、どの部品５にも隣接していないと判定された部品５については、接合制約条件を満たすように移動等させない。
【００７０】
１つの例では、部品配置部３４は、優先度が高い部品５を含む２つの部品５の組から順番に、２つの部品５の組を選択する。この場合、部品データベース４１は、部品ＩＤに関連付けて、該部品ＩＤに対応付けられた部品５の優先度に関する優先度情報を更に記憶する。部品５の優先度は、システム管理者により予め定められるものであり、例えば構造物を構成する上で重要となり得る部品５ほど優先度は高く設定される。データ取得部３３は、クエリが生成された場合、生成されたクエリを用いて、部品データベース４１から、該クエリが含む部品ＩＤのそれぞれに関連付けられた部品５それぞれの優先度情報を更に取得する。他の例では、画像認識部３１は部品ＩＤを認識するとともに、その認識の確度を算出し、部品配置部３４は、該確度の高い部品５を含む２つの部品５の組から順番に、２つの部品５の組を選択する。
【００７１】
１つの例では、部品配置部３４は、２つの部品５のうちの一方を移動等させる必要がある場合において、いずれか一方の部品５の配置を既に確定していた場合、確定させていない方の部品５を、接合制約条件を満たすように移動等させる。他の例では、部品配置部３４は、２つの部品５のうちの一方を移動等させる必要がある場合において、両方の部品５の配置を既に確定していた場合、優先度が低い部品５又は画像認識部３１の認識の確度が低い部品５を、接合制約条件を満たすように移動等させる。
【００７２】
図８は、図７に示す画像認識部３１が認識した３つの部品５から、部品配置部３４が隣接する２つの部品５の組をそれぞれ特定し、接合制約条件を満たすように移動等させた様子を示す図である。
【００７３】
整合性判定部３５は、部品配置部３４により配置された各部品５の位置関係に基づいて、配置された各部品５の位置の整合性を判定する。
【００７４】
１つの例では、整合性判定部３５は、配置された各部品５の３次元モデルが占める領域の重複度合いに基づいて、配置された各部品５の位置の整合性を判定する。具体的には、整合性判定部３５は、配置された各部品５の３次元モデルが占める領域の重複が（ａ）所定の体積以内である場合は整合性が有ると判定し、（ｂ）所定の体積を超える場合は整合性が無いと判定する。上記の所定の体積は、ゼロとすることもできるし、各部品５の３次元モデルごとに定めることもできる。
【００７５】
１つの例では、画像認識部３１は、撮影装置１４により撮影された画像データから構造物が載置されるベース部分を形成するベース部を認識する。例えば構造物が机の上に載置される場合、載置される机の表面がベース部となる。部品配置部３４は、ベース部を仮想空間上に配置し、該ベース部についても、配置された部品５のそれぞれが隣接しているか否かを判定する。部品配置部３４は、ベース部と部品５とを接合制約条件を満たすように移動等させる場合、部品５の方を移動等させて配置を確定させることが好ましい。整合性判定部３５は、配置された各部品５の位置とベース部の位置との位置関係から、配置された各部品５が重力に従った配置であるか否かを判定する。具体的には、整合性判定部３５は、重力に従った配置の場合は整合性が有ると判定し、重力に従った配置でない場合は整合性が無いと判定する。
【００７６】
例えば、図６において画像認識部３１が両端の部品５のみ認識した場合、クエリ生成部３２が生成するクエリは部品５ｂの部品ＩＤを含まず、部品配置部３４は部品５ａと５ｃを仮想空間に配置する。部品配置部３４は、ベース部と部品５ｃの位置関係から重力の方向を認識し、部品５ａが部品５ｃと間隙を介して配置されていることから、部品５ａが重力に従った配置でないと判定し、整合性が無いと判定する。
【００７７】
１つの例では、整合性判定部３５は、撮影装置１４により撮影された画像と、部品配置部３４が仮想空間上に配置した各部品５の仮想カメラから見た画像との一致度に基づいて、整合性を判定する。具体的には、整合性判定部３５は、一致度が予め定められた既定値以上である場合は整合性が有ると判定し、一致度が既定値未満である場合は整合性が無いと判定する。ここで、仮想カメラは、撮影装置１４の位置に対応する仮想空間の位置に配置されるものである。
【００７８】
１つの例では、整合性判定部３５は、整合性が無いと判定した場合、部品配置部３４が配置した各部品５の位置の整合性の評価値を算出する。例えば当該評価値は、整合性判定部３５が配置された各部品５の３次元モデルが占める領域の重複度合いに基づいて判定する場合、重複領域の体積の所定の体積に対する超過度合いに応じて算出される。また例えば当該評価値は、整合性判定部３５が画像データの一致度に基づいて判定する場合、一致する度合いに応じて算出される。
【００７９】
なお、上記のような整合性判定部３５が行う整合性の判定は、仮想空間上に配置された部品５全体に対するものであるが、整合性判定部３５は、部品５ごとに整合性を判定することができる。１つの例では、整合性判定部３５が配置された各部品５の３次元モデルが占める領域の重複度合いに基づいて各部品５の位置の整合性を判定する場合、優先度が高い方の部品５を整合性有り、優先度が低い方の部品５を整合性無し、と判定する。
【００８０】
立体認識部３６は、整合性判定部３５により整合性が有ると判定された場合、部品配置部３４により配置された各部品５の位置に基づいて構造物を認識する。例えば、立体認識部３６は、部品配置部３４が仮想空間に配置した各部品５の３次元モデル及び位置データにより構造物を認識し、構造物全体の３次元モデルを認識する。好ましくは、立体認識部３６は、認識した構造物全体の３次元モデルを仮想空間上に再構築する。
【００８１】
図９は、図８に示す部品配置部３４が配置を確定した部品５により立体認識部３６が認識した構造物を示す図である。図６〜図９においては、部品５ｃ、５ｂ、５ａの順に優先度が高く、部品配置部３４は、部品５ｂと５ｃの組で部品５ｂを移動させ、部品５ｂと５ａの組で部品５ａを移動させたことが確認できる。
【００８２】
データベース記憶部３７は、整合性判定部３５により整合性が無いと判定された場合、クエリ保存用データを履歴データベース４２に記憶する。クエリ保存用データは、データ取得部３３が部品データベース４１からデータを取得する際に用いたクエリが含むデータのうち、部品５それぞれの部品ＩＤ及び部品配置部３４が用いた接合基準点６を含むデータである。部品配置部３４が用いた接合基準点６は、部品ＩＤに関連付けられた制約データに含まれる接合基準点６のうち、部品配置部３４が接合制約条件の判断に用いた接合基準点６である。接合基準点６に関する情報は、隣接する部品５ごとに記憶される位置合わせ用データに含まれるため、クエリ保存用データは、部品配置部３４が配置した部品５の隣接関係を特定することができるものである。ただし、クエリ保存用データは、データ取得部３３が部品データベース４１からデータを取得する際に用いたクエリが含むデータのうち、少なくとも部品５それぞれの部品ＩＤを含むデータであればよく、上記実施例に限定されない。
【００８３】
１つの例では、データベース記憶部３７は、クエリ保存用データが含む部品ＩＤのそれぞれに関連付けて、部品配置部３４が配置した各部品５の位置の整合性の評価値を履歴データベース４２に更に記憶する。この場合、整合性判定部３５が、整合性が無いと判定した場合、整合性の評価値を算出する。このような構成とすることにより、すべての場合において整合性判定部３５が、整合性が無いと判定した場合に、最も整合性のあるクエリを用いて、構造物を認識することが可能となる。
【００８４】
１つの例では、データベース記憶部３７は、クエリ保存用データが含む部品ＩＤのそれぞれに関連付けて、部品配置部３４が配置した各部品５の位置を履歴データベース４２に更に記憶する。このような構成とすることにより、すべての場合において整合性判定部３５が、整合性が無いと判定した場合に、最も整合性のある配置のときの各部品５の位置を用いて、構造物を認識することが可能となる。
【００８５】
１つの例では、クエリ保存用データはクエリそのもののデータであり、データベース記憶部３７は、データ取得部３３が部品データベース４１からデータを取得する際に用いたクエリをそのまま履歴データベース４２に記憶する。
【００８６】
クエリ再生成決定部３８は、整合性判定部３５により整合性が無いと判定された場合、履歴データベース４２が記憶するクエリ保存用データ及び部品データベース４１が記憶するデータに基づいて、クエリを再生成するか否かを判定する。具体的には、クエリ再生成決定部３８は、履歴データベース４２が記憶するクエリ保存用データが、部品データベース４１が記憶する部品ＩＤの一部又は全部の組み合わせのうちの所定のものを含むか否かを判定する。クエリ再生成決定部３８は、履歴データベース４２が記憶するクエリ保存用データが所定のものを含まない場合、クエリを再生成すると決定し、該クエリ保存用データが所定のものを含む場合、クエリを再生成しないと決定する。部品ＩＤの組み合わせは、部品５の配置順を考慮した組み合わせであり、各部品５は接合基準点６でのみ接合されるが、同じ部品５同士の接合であっても接合基準点６が異なる接合は、異なる接合である。例えば部品５が部品Ａ〜Ｄの４つあり、各部品５が両端に２つの接合基準点６を有する場合、部品ＩＤの全部の組み合わせは、部品Ａ〜Ｄをすべて用いて配置する組み合わせであり、３８４（４！×２4）通りの組み合わせがある。この場合、部品ＩＤの一部の組み合わせは、部品Ａ〜Ｄのうちの一部を取り出し、更に部品５の配置順を考慮した組み合わせである。例えば、部品ＩＤの一部の組み合わせは、部品Ａ〜Ｄのうちの部品Ｂ、Ｃを取り出して配置する８（２！×２2）通りの組み合わせや、部品Ａ〜Ｄのうちの部品Ａ、Ｂ、Ｃを取り出して配置する４８（３！×２3）通りの組み合わせを含む。
【００８７】
１つの例では、クエリ再生成決定部３８は、履歴データベース４２が記憶するクエリ保存用データの数量ＮＱと、部品データベース４１が記憶する部品ＩＤのすべての組み合わせの数量ＮＰとを比較する。クエリ再生成決定部３８は、数量ＮＱが数量ＮＰ未満である場合、クエリを再生成すると決定し、そうでない場合、クエリを再生成しないと決定する。例えば部品データベース４１が記憶する部品５の個数がｎであり、各部品５は両端にそれぞれ接合基準点６を有し、構造物は部品データベース４１が記憶するすべての部品５から構成される場合を考える。この場合、クエリ生成部３２が生成可能なクエリ総数、すなわち部品データベース４１が記憶する部品ＩＤのすべての組み合わせの数量ＮＰは、部品５の配置パターンの数量と接合基準点６の数量から
2019114226.tif 000019
（式１０）
で表すことができる。このようにクエリ再生成決定部３８は、クエリを再生成する回数を有限にすることができる。なお上記実施例においては、すべての部品５が２つの接合基準点を有し、構造物は部品データベース４１が記憶するすべての部品５から構成されるものとしたが、これは説明を簡単にするための１つの例示である。構造物はｎ個すべてを使用しなくてもよいし、部品５が有する接合基準点６は２つでなくてもよい。
【００８８】
１つの例では、画像認識部３１は部品ＩＤを認識するときにその確度を算出する。本例示においては、上記の部品データベース４１が記憶する部品ＩＤの一部又は全部の組み合わせのうちの所定のものは、一定値以上の確度で画像認識部３１により認識された部品ＩＤを含む。
【００８９】
１つの例では、部品データベース４１は、部品ＩＤに関連付けて、該部品ＩＤに対応付けられた部品５の優先度に関する優先度情報を記憶する。本例示においては、上記の部品データベース４１が記憶する部品ＩＤの一部又は全部の組み合わせのうちの所定のものは、画像認識部３１により認識された一定値以上の優先度の部品ＩＤを含む。
【００９０】
クエリ再生成部３９は、クエリ再生成決定部３８がクエリを再生成すると決定した場合、履歴データベース４２が記憶するクエリ保存用データと異なるデータを含むクエリを生成する。例えば部品データベース４１が記憶する部品５の個数がｎであり、各部品５は両端に２つの接合基準点６を有し、構造物は部品データベース４１が記憶するすべての部品５から構成される場合を考える。クエリ再生成部３９は、式１０で表されるクエリ生成部３２が生成可能なクエリのうち、履歴データベース４２が記憶するクエリ保存用データが含む部品ＩＤの組み合わせを含まないクエリを生成する。
【００９１】
１つの例では、クエリ再生成部３９は、部品配置部３４が仮想空間に配置した部品５のうちの２つの部品５の３次元モデル間の長さが所定値以上である場合、該長さに対応する部品５の部品ＩＤを追加したクエリを生成する。１つの例では、画像認識部３１よる認識の確度が一定値未満であった部品ＩＤや整合性が無いと判定された部品ＩＤについて、部品ＩＤの位置や姿勢を変更したクエリ、又は他の部品ＩＤに置き換えたクエリを優先的に生成する。これにより、立体認識システム１の情報処理をより効率化することが可能となる。
【００９２】
次に、本発明の一実施形態による立体認識システム１の情報処理について図１０に示したフローチャートを用いて説明する。図１０に示す情報処理は、プログラムを電子装置３に実行させ、かつプログラムをサーバ４に実行させることで実現される。本例示では、クエリ保存用データはクエリそのものを用いる。
【００９３】
ステップ１０１で、サーバ４は、電子装置３が画像を認識する前に、履歴データベース４２が記憶するクエリを消去する。これにより、サーバ４は、履歴データベース４２を初期化し、履歴データベース４２をクエリが記憶されていない状態にする。
【００９４】
次にステップ１０２で、画像認識部３１は、撮影装置１４により撮影された画像から各部品５を識別可能なマーカを抽出し、抽出されたマーカから部品５のそれぞれに対応付けられた部品ＩＤと該部品５の位置データとを取得する。またこのとき、画像認識部３１は、撮影装置１４により撮影された画像データから構造物が載置されるベース部分を形成するベース部を認識する。
【００９５】
次にステップ１０３で、クエリ生成部３２は、ステップ１０２で取得された各部品ＩＤと、該部品ＩＤのそれぞれに従属する位置データとを含むクエリを生成する。
【００９６】
次にステップ１０４で、データ取得部３３は、生成されたクエリを用いて、部品データベース４１から、クエリが含む部品ＩＤのそれぞれに関連付けられた部品５の３次元モデル及び制約データを取得する。
【００９７】
次にステップ１０５で、部品配置部３４は、クエリが含む部品ＩＤごとに、位置データと、３次元モデルとを用いて、実空間と対応させた仮想空間に各部品５を配置する。また、部品配置部３４は、ベース部を仮想空間上に配置する。続いて、部品配置部３４は、配置された部品５のそれぞれが隣接しているか否かを判定することにより、配置された部品５のうち隣接する２つの部品５の組をそれぞれ特定する。部品配置部３４は、隣接していると特定された２つの部品５の組から所定の順番で２つの部品５の組を選択する。部品配置部３４は、隣接していると特定された２つの部品５の組のそれぞれにおいて、接合制約条件を満たすように、２つの部品５のうちのいずれか一方を移動等させて位置を調整し、配置を確定する。
【００９８】
次にステップ１０６で、整合性判定部３５は、ステップ１０５で配置された各部品５の位置関係に基づいて、具体的には以下の判定の少なくとも１つにより、配置された各部品５の位置の整合性を判定する。整合性判定部３５は、配置された各部品５の位置とベース部の位置との位置関係から、配置された各部品５が（ａ）重力に従った配置の場合は整合性が有ると判定し、（ｂ）重力に従った配置でない場合は整合性が無いと判定する。更に整合性判定部３５は、配置された各部品５の３次元モデルが占める領域の重複が（ａ）所定の体積以内である場合は整合性が有ると判定し、（ｂ）所定の体積を超える場合は整合性が無いと判定する。更に整合性判定部３５は、撮影装置１４により撮影された画像と、部品配置部３４が仮想空間上に配置した各部品５の仮想カメラから見た画像との一致度が（ａ）既定値以上である場合は整合性が有ると判定し、（ｂ）既定値未満である場合は整合性が無いと判定する。
【００９９】
ステップ１０６で、すべて（ａ）整合性が有ると判定された場合、本処理はステップ１０７へ進み、立体認識部３６は、ステップ１０５で配置された各部品５の位置により構造物を認識し、本処理は終了する。
【０１００】
ステップ１０６で、１つでも（ｂ）整合性が無いと判定された場合、本処理はステップ１０８へ進む。ステップ１０８で、データベース記憶部３７は、ステップ１０４で用いたクエリを履歴データベース４２に記憶し、本処理はステップ１０９へ進む。
【０１０１】
ステップ１０９で、クエリ再生成決定部３８は、履歴データベース４２が記憶するクエリが、部品データベース４１が記憶する複数の部品５それぞれの部品ＩＤの所定の組み合わせを含むか否かを判定する。クエリ再生成決定部３８は、履歴データベース４１が部品ＩＤの所定の組み合わせを包含するクエリを含まない場合、クエリを再生成すると決定し、本処理はステップ１１０へ進む。クエリ再生成決定部３８は、履歴データベース４１が部品ＩＤの所定の組み合わせを包含するクエリを含む場合、クエリを再生成しないと決定し、本処理は終了する。電子装置３は、クエリを再生成しないと決定して本処理を終了する場合、表示装置１２等にエラーを出力することができる。
【０１０２】
ステップ１１０で、クエリ再生成部３９は、履歴データベース４２が記憶するクエリと異なるクエリを生成し、本処理はステップ１０４へ進む。クエリ再生成部３９は、部品配置部３４が仮想空間に配置した部品５のうちの２つの部品５の３次元モデル間の長さが所定値以上である場合、該長さに対応する部品５の部品ＩＤを追加したクエリを優先的に生成する。
【０１０３】
次に、本発明の実施形態による立体認識システム１の作用効果について説明する。本実施形態では、立体認識システム１は、予め用意された部品５が組み合わされて作成される構造物を対象とし、部品５ごとに、部品５の３次元モデルと接合の仕方を示す接合制約条件を予め定義するものであり、これらのデータを部品データベース４１に記憶する。立体認識システム１は、標準的なスマートフォンのカメラを用いて撮影された撮影画像を入力とし、当該撮影画像から直接立体形状を認識せずに、構造物を構成する要素（部品５）を個別に独立して検出する。立体認識システム１は、個別に検出した部品５の部品ＩＤを含むクエリを生成し、クエリを用いて部品データベース４１からデータを取得して、接合制約条件を満たすように、各部品５の３次元モデルを接合し、仮想空間上に配置する。立体認識システム１は、部品配置の物理的整合性を評価し、適切な配置を得るまで、クエリを更新しながら、部品データベース４１に対する検索と位置合わせを繰り返す。
【０１０４】
このような構成とすることにより、本実施形態では、立体認識システム１は、単一画像から構造物全体の３次元モデルを再構築し、その立体形状を認識することが可能となる。特に、単一画像から直接認識するにあたって、既存の立体形状認識技術では対応できない、外面の露出が少ない部品の空間情報についても推定し、構造物全体の立体形状を認識することが可能となる。これにより、本実施形態では、構造物を撮影した平面画像から立体形状を認識する際の、ユーザ操作の単純さと、構造物を作成する際の自由度との両立が可能となる。
【０１０５】
またこのような構成とすることにより、本実施形態では、立体認識システム１は、接合制約条件を用いて部品５の接合位置に対する制限を定めることにより、部品５の位置を自動的に補正する機能を有する。これにより、部品５の組み立て過程や画像処理過程において発生するノイズを緩和し、より安定的に構造物を認識することが可能となる。
【０１０６】
またこのような構成とすることにより、本実施形態では、立体認識システム１は、既知の部品５だけを認識するため、部品５の認識に対する機械学習が不要であり、計算コストを低減することが可能となる。
【０１０７】
またこのような構成とすることにより、本実施形態では、立体認識システム１は、特別なセンサに依拠せず、標準的なスマートフォンのカメラを用いて撮影された画像のみを入力とすることから、特別な機材を必要としないため、安価に実現することが可能となる。また部品５は、剛体として形状が変化しにくければどのような材質を使ってもよいため、用途に併せて安価に製造することが可能となる。例えば投げる・踏むといった強い衝撃が想定されるアプリケーションの場合には木材を、部品５の作成まで含めてユーザに委ねるアプリケーションの場合には紙を用いるといったように、アプリケーションに応じて適切な材質を選択可能である。
【０１０８】
また本実施形態では、立体認識システム１は、クエリを更新しながら検索と位置合わせを繰り返すとき、クエリの履歴を履歴データベース４２に記憶することにより、同じクエリを用いて検索することを防止する。このような構成とすることにより、クエリを再生成する回数を有限にし、立体認識システム１の処理を適切に停止させることが可能となる。また履歴データベース４２は同じクエリを用いた検索をしないようにするために用いるものであるため、立体認識システム１は、構造物の認識処理を開始する前に、履歴データベース４２が記憶するクエリを消去する。
【０１０９】
また本実施形態では、立体認識システム１は、仮想空間に最初に配置された２つの部品５の接合基準点６間の長さが所定値以内であるか否かを判定し、所定値以内である場合、２つの部品５は隣接していると判定する。このような構成とすることにより、立体認識システム１は、所定値以内の距離にある２つの部品５の組では、接合制約条件を満たすように位置調整を行い、そうでない部品５については、接合制約条件を満たすように位置調整を行わないようにすることが可能となる。これにより、撮影画像からある部品５が検出されなかった場合などに、該部品５を挟むようにして配置された２つの部品５に対して、接合制約条件を満たすように位置調整を行ってしまうことを防止し、不整合検出を低減することが可能となる。
【０１１０】
また本実施形態では、マーカは、ＡＲマーカであり、例えば矩形状の黒枠とその内部に描かれた左右非対称のドットパターンにより構成され、ドットパターンは各部品５により異なるように構成される。これにより、立体認識システム１は、既知の画像認識技術を用いて、例えばマーカが撮影された画像における矩形状の黒枠の形状及び大きさから、撮影装置１４からの該マーカの位置及び姿勢を取得することが可能となる。また立体認識システム１は、既知の画像認識技術を用いて、例えばマーカが撮影された画像におけるドットパターンから、各部品５を識別することが可能となる。
【０１１１】
また本実施形態では、クエリは、部品ＩＤと、部品ＩＤに従属するデータとを含み、部品ＩＤに従属するデータは、部品ＩＤに対応付けられた部品５の位置データと、３次元モデルと、制約データとを含む。立体認識システム１は、クエリが生成された場合、該クエリを用いて、部品データベース４１から、該クエリが含む各部品ＩＤに関連付けられた部品５それぞれの３次元モデル及び制約データを、該部品ＩＤに対応付けて該クエリにそれぞれ加える。このようにして、立体認識システム１は、部品データベース４１から、部品５それぞれの３次元モデル及び制約データを取得する。このように、本実施形態では、立体認識システム１は、部品データベース４１における検索、部品データベース４１からのデータ取得、及び履歴データベース４２へのデータの記憶を、クエリを用いて行う。これにより、立体認識システム１の情報処理をより効率化することが可能となる。
【０１１２】
また本実施形態では、立体認識システム１は、配置された各部品５の３次元モデルが占める領域の重複度合いに基づいて、配置された各部品５の位置の整合性を判定する。また本実施形態では、立体認識システム１は、配置された各部品５の位置とベース部の位置との位置関係から、配置された各部品５が重力に従った配置であるか否かを判定する。また本実施形態では、立体認識システム１は、撮影装置１４により撮影された画像と、部品配置部３４が仮想空間上に配置した各部品５の仮想カメラから見た画像との一致度に基づいて、整合性を判定する。このような構成とすることにより、本実施形態では、立体認識システム１は、部品配置の物理的整合性を評価することが可能となる。これにより、立体認識システム１は、認識した構造物が適切なものであるか否かを判断することが可能となる。
【０１１３】
また本実施形態では、立体認識システム１は、履歴データベース４２が記憶するクエリが、部品データベース４１が記憶する部品ＩＤの所定の組み合わせを含むか否かを判定する。部品ＩＤの所定の組み合わせが、一定値以上の確度で画像認識部３１により認識された部品ＩＤや一定値以上の優先度の部品ＩＤを含むものである場合、生成するクエリの種類をより限定することが可能となる。これにより、立体認識システム１の情報処理をより効率化することが可能となる。部品ＩＤの所定の組み合わせがすべての組み合わせである場合、部品データベース４１に基づいて生成可能な全クエリを生成することが可能であるとともに、クエリを再生成する回数を有限にし、立体認識システム１の処理を適切に停止させることが可能となる。
【０１１４】
また本実施形態では、立体認識システム１は、クエリを再生成すると決定した場合、仮想空間に配置した部品５のうちの２つの部品５の３次元モデル間の長さが所定値以上である場合、該長さに対応する部品５の部品ＩＤを追加したクエリを生成する。このような構成とすることにより、本実施形態では、撮影画像から認識できなかった部品５を推定し、該部品５を追加したクエリを優先的に生成することで、立体認識システム１の情報処理をより効率化することが可能となる。
【０１１５】
上記の作用効果は、特に言及が無い限り、他の実施形態や他の実施例においても同様である。
【０１１６】
本発明の他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するプログラムや該プログラムを格納したコンピュータ読み取り可能な記憶媒体とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を単独で実現する電子装置とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する方法とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するプログラムをコンピュータに供給することができるサーバとすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する仮想マシンとすることもできる。
【０１１７】
以下に本発明の実施形態の変形例について説明する。以下で述べる変形例は、矛盾が生じない限りにおいて、適宜組み合わせて本発明の任意の実施形態に適用することができる。
【０１１８】
１つの例では、一の部品５の位置合わせ用メタデータは、一の部品５の接合基準点に対する他の任意の部品の接合基準点の距離と角度の条件により定められるものであり、一の部品５と他の任意の１つの部品５との制約を定めるデータである。本例示においては、部品データベース４１は、一の部品５と接合する任意の部品５との制約を定める１つの位置合わせ用メタデータを、一の部品５の部品ＩＤに関連付けて記憶する。本例示においては、一の部品５の制約データは、１つの位置合わせ用メタデータを有し、該位置合わせ用メタデータは、接合基準点６及び該接合基準点６に従属するデータとして位置の制約及び姿勢の制約の要素を有する。
【０１１９】
１つの例では、部品配置部３４は、最初に配置された２つの部品５の中心点間の長さが所定値以内であるか否かを判定し、所定値以内である場合、２つの部品５は隣接していると判定する。他の例では、部品配置部３４は、最初に配置された２つの部品５の剛体間の長さが所定値以内であるか否かを判定し、所定値以内である場合、２つの部品５は隣接していると判定する。いずれの場合も、部品配置部３４は、隣接していると判定された２つの部品５の組から所定の順番で部品５の組を選択し、当該組それぞれにおいて、接合制約条件を満たすように、２つの部品５のうちのいずれか一方を移動等させて、配置を確定する。
【０１２０】
１つの例では、ステップ１０６において、整合性判定部３５は、整合性が無いと判定した場合、部品配置部３４が配置した各部品５の位置の整合性の評価値を算出する。ステップ１０８において、データベース記憶部３７は、クエリ保存用データが含む部品ＩＤのそれぞれに関連付けて、部品配置部３４が配置した各部品５の位置の整合性の評価値を履歴データベース４２に更に記憶する。ステップ１０９において、クエリ再生成決定部３８がクエリを再生成しないと決定した場合、電子装置３は、ステップ１０５において、評価値により最も高い整合性を有するクエリを用いて仮想空間に配置した各部品５の３次元モデル及び位置データにより構造物を認識する。これにより、電子装置３は、整合性が無いと判定された各部品５の配置の中で、評価値により最も高い整合性を有する各部品５の配置を用いて、構造物全体の３次元モデルを認識することが可能となる。
【０１２１】
以上に説明した処理又は動作において、あるステップにおいて、そのステップではまだ利用することができないはずのデータを利用しているなどの処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。また以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。例えば、各装置の各装置の外観形状は図示されたものに限定されない。
【符号の説明】
【０１２２】
１  立体認識システム
２  ネットワーク
３  電子装置
４  サーバ
５  部品
６  接合基準点
１１、２１  プロセッサ
１２、２２  表示装置
１３、２３  入力装置
１４  撮影装置
１５、２４  記憶装置
１６、２５  通信装置
３１  画像認識部
３２  クエリ生成部
３３  データ取得部
３４  部品配置部
３５  整合性判定部
３６  立体認識部
３７  データベース記憶部
３８  クエリ再生成決定部
３９  クエリ再生成部
４１  部品データベース
４２  履歴データベース
【図１】
2019114226.tif 000020
【図２】
2019114226.tif 000021
【図３】
2019114226.tif 000022
【図４】
2019114226.tif 000023
【図５】
2019114226.tif 000024
【図６】
2019114226.tif 000025
【図７】
2019114226.tif 000026
【図８】
2019114226.tif 000027
【図９】
2019114226.tif 000028
【図１０】
2019114226.tif 000029