(57)【特許請求の範囲】
【請求項１】
スキャンの対象となる対象物が配置されるステージと、
スキャン時に前記ステージの上に置かれ、その上に前記対象物が配置される台紙と、
前記ステージに画像を表示する表示手段と、
前記ステージを撮影する撮影手段と、
前記撮影手段で撮影された前記対象物の映像に基づいて当該対象物の３Ｄモデルデータを生成するとともに、前記撮影手段で撮影された前記対象物及び前記台紙の映像に基づいて、前記表示手段により、前記台紙を移動する方向を指示する画像を前記ステージに表示する制御手段と、を備えることを特徴とする、
３Ｄスキャナ。
【請求項２】
前記制御手段は、前記対象物の前記撮影手段に撮影されていない側の面を撮影するための前記台紙の回転方向を、前記表示手段により前記ステージに表示することを特徴とする、
請求項１記載の３Ｄスキャナ。
【請求項３】
前記台紙は、前記ステージの上に置かれたときの位置の目印となる目標画像が印刷されており、
前記制御手段は、前記台紙を移動する方向を、前記目標画像の移動する方向により表すことを特徴とする、
請求項１又は２記載の３Ｄスキャナ。
【請求項４】
前記台紙に前記目標画像を印刷する印刷手段を備えており、
前記制御手段は、前記撮影手段で前記台紙を置かずに撮影される前記対象物の映像から前記対象物の概形を取得し、この概形に基づいて前記台紙のサイズ及び前記台紙に印刷する前記目標画像を決定し、前記印刷手段に、決定したサイズの紙に前記目標画像を印刷させることを特徴とする、
請求項３記載の３Ｄスキャナ。
【請求項５】
前記制御手段は、前記印刷手段により、前記台紙に、前記台紙を移動させる際の目印となる目標画像と、前記ステージに置く位置の位置合わせのための目標画像と、前記位置合わせのための画像よりも外側に設けられる前記台紙の折り曲げ位置を表す目標画像と、スキャン時に前記対象物を配置する位置を指示する目標画像とを印刷させることを特徴とする、
請求項４記載の３Ｄスキャナ。
【請求項６】
前記制御手段は、前記印刷手段により、前記台紙に、前記対象物の概形に基づいて、スキャン時に前記対象物を置いた際に前記対象物に対して輝度差が大きくなるように白色又は黒色が適用される領域を設けることを特徴とする、
請求項５記載の３Ｄスキャナ。
【請求項７】
前記台紙のサイズ、前記台紙に印刷する目標画像の位置、前記領域の色を含む前記台紙の属性情報を記憶する記憶手段を備え、
前記制御手段は、前記属性情報に応じたイメージを前記台紙に印刷する前に前記表示手段により表示し、前記撮影手段により撮影されたユーザの前記イメージに対するジェスチャに応じて前記属性情報を変更することを特徴とする、
請求項６記載の３Ｄスキャナ。
【請求項８】
前記制御手段は、前記撮影手段が撮影した映像から前記ステージに前記台紙が置かれたことを検知し、
前記表示手段は、前記制御手段が前記ステージの上に前記台紙が置かれたことを検知すると、前記対象物を置く位置を前記台紙の上に表示することを特徴とする、
請求項１〜７のいずれか１項記載の３Ｄスキャナ。
【請求項９】
前記ステージの上の前記対象物の向きに応じてパラメータが変化する回転履歴情報を記憶する第２の記憶手段を備えており、
前記制御手段は、前記撮影手段が撮影した映像から前記台紙の上に前記対象物が配置されたことを検知して、前記回転履歴情報をリセットすることを特徴とする、
請求項１〜８のいずれか１項記載の３Ｄスキャナ。
【請求項１０】
前記制御手段は、前記対象物が前記台紙の上に配置されたことを検知すると、前記撮影手段が撮影した映像から前記台紙の向きを算出して、前記回転履歴情報の該算出した向きのパラメータを更新することを特徴とする、
請求項９記載の３Ｄスキャナ。
【請求項１１】
前記制御手段は、前記表示手段により、前記回転履歴情報に基づいて、前記対象物の前記撮影手段に撮影されていない側の面が前記撮影手段で撮影されるように前記台紙を移動する方向を指示する画像を前記ステージに表示することを特徴とする、
請求項１０記載の３Ｄスキャナ。
【請求項１２】
前記制御手段は、前記回転履歴情報のパラメータがすべて更新されるまで、前記撮影手段で撮影された前記対象物の映像に基づいて当該対象物の３Ｄモデルデータを生成することを特徴とする、
請求項１０又は１１記載の３Ｄスキャナ。
【請求項１３】
前記制御手段は、前記表示手段により前記３Ｄモデルデータに基づいて前記対象物の３Ｄモデルのプレビュー画像を表示し、前記撮影手段により撮影されたユーザの前記プレビュー画像に対するジェスチャに応じて前記プレビュー画像の表示を変更することを特徴とする、
請求項１２記載の３Ｄスキャナ。
【請求項１４】
前記制御手段は、前記撮影手段により撮影されたユーザの前記プレビュー画像に対するジェスチャにより指示された位置を撮影するために前記台紙を移動する方向を指示する画像を前記表示手段により前記ステージに表示することを特徴とする、
請求項１３記載の３Ｄスキャナ。
【請求項１５】
スキャンの対象となる対象物が配置されるステージと、スキャン時に前記ステージの上に置かれる台紙と、前記ステージに画像を表示する表示手段と、前記ステージを撮影する撮影手段と、を備えた装置により実行される方法であって、
前記撮影手段で撮影された映像により、前記台紙が前記ステージの上に置かれ、さらにその上に前記対象物が配置されたことを検知し、
前記対象物が配置されたことを検知した後に前記撮影手段で撮影された前記対象物及び前記台紙の映像に基づいて、前記表示手段により、前記台紙を移動する方向を指示する画像を前記ステージに表示し、
前記対象物をすべての方向から前記撮影手段で撮影した映像に基づいて当該対象物の３Ｄモデルデータを生成することを特徴とする、
３Ｄスキャン方法。
【請求項１６】
スキャンの対象となる対象物が配置されるステージと、スキャン時に前記ステージの上に置かれ、その上に前記対象物が配置される台紙と、前記ステージに画像を表示する表示手段と、前記ステージを撮影する撮影手段と、を備えたコンピュータを、
前記撮影手段で撮影された前記対象物の映像に基づいて当該対象物の３Ｄモデルデータを生成するとともに、前記撮影手段で撮影された前記対象物及び前記台紙の映像に基づいて、前記表示手段により、前記台紙を移動する方向を指示する画像を前記ステージに表示する制御手段
として機能させるコンピュータプログラム。
【請求項１７】
請求項１６記載のコンピュータプログラムを記録するコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャンの対象となる対象物の立体形状を非接触で測定する３Ｄスキャナに関する。
【背景技術】
【０００２】
３Ｄスキャナは、対象物を複数の方向から光学的に測定した結果を貼り合わせることで３Ｄモデルを構築する。しかし対象物の表面に特徴が無い場合、対象物を測定した結果の貼り合わせ位置や角度を特定することができず、正確な３Ｄモデルを構築することが困難である。そのために、対象物の位置や向きが特定できる仕組みを併用することで、貼り合わせ位置や角度を算出することが行われている。その際には、対象物が正確な位置に配置され、必要な方向から測定されることが、３Ｄモデルを正確かつ効率的に構築するために重要である。
【０００３】
特許文献１では、対象物の位置を正確に特定するために、既知の二次元プレートを有する走査テンプレート部材上に対象物を配置してスキャンする。カメラで撮像した映像に含まれる２次元テンプレートと対象物との位置関係から対象物の位置を正確に把握して、３Ｄモデルの構築精度を高めることができる。特許文献２では、ハンディタイプの３Ｄスキャナを用い、ユーザがどの方向に３Ｄスキャナを移動させるかを指示する技術が開示される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００７−５０８５５７号公報
【特許文献２】特開２００２−７４３４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
据え置き型の３Ｄスキャナは、ユーザが対象物を適切に配置、移動、回転することで正確な３Ｄスキャンを行う。対象物の最適なスキャン位置や向きをユーザが一意に把握するための指標がスキャン時に対象物が配置されるステージ上にあれば、ユーザは迅速に対象物を適切な位置に配置できる。従来は、例えばパーソナルコンピュータの表示画面に対象物の位置や向きを指示する指示画面を表示し、ユーザがこの指示画面に応じて手探りで適切な位置を探している。これは、ユーザにストレスを感じさせることになり、迅速な３Ｄスキャン処理を妨げることになる。
【０００６】
本発明は、上記の問題を解決するために、対象物を適切な位置に迅速に配置することができる据え置き型の３Ｄスキャナを提供することを主たる課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決する本発明の３Ｄスキャナは、スキャンの対象となる対象物が配置されるステージと、スキャン時に前記ステージの上に置かれ、その上に前記対象物が配置される台紙と、前記ステージに画像を表示する表示手段と、前記ステージを撮影する撮影手段と、前記撮影手段で撮影された前記対象物の映像に基づいて当該対象物の３Ｄモデルデータを生成するとともに、前記撮影手段で撮影された前記対象物及び前記台紙の映像に基づいて、前記表示手段により、前記台紙を移動する方向を指示する画像を前記ステージに表示する制御手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、台紙の上に対象物を配置して３Ｄスキャンを行い、台紙を移動する方向を指示する画像を表示する。ユーザは台紙を移動する方向を指示する画像を頼りに、台紙を移動させることで、対象物を適切な位置に迅速に配置することができる。
【図面の簡単な説明】
【０００９】
【図１】３Ｄスキャン装置の構成例示図。
【図２】コントローラのハードウェア構成図。
【図３】３Ｄスキャン処理を表すフローチャート。
【図４】対象物検知処理を表すフローチャート。
【図５】概形取得処理を表すフローチャート。
【図６】台紙サイズの算出処理を表すフローチャート。
【図７】イメージ生成処理を表すフローチャート。
【図８】（ａ）は対象物の深度画像、（ｂ）は輝度差の大きな色の説明図。
【図９】（ａ）〜（ｄ）は候補色の説明図。
【図１０】指標の説明図。
【図１１】折り曲げ位置線の説明図。
【図１２】印刷前の確認処理を表すフローチャート。
【図１３】台紙用イメージの表示例示図。
【図１４】台紙の例示図。
【図１５】台紙検知処理を表すフローチャート。
【図１６】対処物検知処理を表すフローチャート
【図１７】対象物測定処理を表すフローチャート。
【図１８】カメラ位置を原点とした座標系の説明図。
【図１９】（ａ）、（ｂ）はガイド及びグラフの例示図。
【図２０】対象物と３Ｄモデルとの関係例示図。
【図２１】（ａ）、（ｂ）は３Ｄモデルの例示図。
【図２２】３Ｄモデル確認処理を表すフローチャート。
【図２３】３Ｄモデルの確認を行う際の説明図。
【発明を実施するための形態】
【００１０】
以下、図面を参照して実施の形態を詳細に説明する。
【００１１】
（構成）
図１は本実施形態の３Ｄスキャン装置の構成例示図である。３Ｄスキャナ１は、３Ｄスキャン時にスキャンの対象となる対象物Ｏが配置されるステージＳを備え、ステージＳの上方にプロジェクタ１０８と赤外線エミッタ１０９ａを内蔵したカメラ１０９とが設置される。プロジェクタ１０８は、ステージＳ上に画像を投影するように配置される。カメラ１０９は、ステージＳ上の対象物Ｏを含むステージＳ全体を撮影するように配置される。赤外線エミッタ１０９ａは、ステージＳ上を赤外線で照射可能に配置される。３Ｄスキャナ１は、この他に、プリンタ１１２を備える。
【００１２】
カメラ１０９は、撮影した映像をＲＧＢ輝度情報を含むデジタル信号に変換する。また、カメラ１０９は、３Ｄスキャンを行う際に赤外線エミッタ１０９ａにより赤外線を照射し、その反射光を撮影する。赤外線の照射時刻と反射光の撮影時刻とから、カメラ１０９と対象物Ｏとの距離が算出可能である。プロジェクタ１０８は、ユーザに通知する必要のある情報をステージＳ上に投影して表示する。プリンタ１１２は、紙媒体への印刷を行う。特に、本実施形態では、プリンタ１１２は、対象物Ｏのスキャン時の位置決めを行うための台紙Ｍに、位置決めのための様々な情報を印刷する。台紙Ｍは、スキャン時にステージＳ上に置かれ、その上に対象物Ｏが配置される。３Ｄスキャナ１の各部は、コンピュータの一種であるコントローラ１００により動作が制御される。
【００１３】
図２は、コントローラ１００のハードウェア構成図である。コントローラ１００は、プロジェクタ１０８、カメラ１０９、及びプリンタ１１２に接続され、ＬＡＮ等のネットワーク９０００を介して他の装置と通信可能である。コントローラ１００は、内部バス１１３を備え、内部バス１１３により、メモリコントローラ１０３、Ｉ／Ｏコントローラ１０５、及びエンジンコントローラ１０６間でデータの送受信が可能である。
【００１４】
Ｉ／Ｏコントローラ１０５は、ＨＤＤ（Hard Disk Drive）１０７、ＬＡＮポート１１１、カメラ１０９、及びプロジェクタ１０８と、内部バス１１３を介して接続される他のハードウェアとの間で、データの送受信を制御する。ＬＡＮポート１１１は、ネットワーク９０００を介して接続されるパーソナルコンピュータ等の他の装置との通信インタフェースである。ＬＡＮポート１１１は、ネットワーク９０００を介して受信したデータをＩ／Ｏコントローラ１０５に入力し、Ｉ／Ｏコントローラ１０５から受信したデータを、ネットワーク９０００を介して他の装置に送信する。ＨＤＤ１０７は、ブートローダプログラム及び３Ｄスキャナ１を制御するための制御プログラム等のコンピュータプログラムを記録するコンピュータ読み取り可能な記録媒体である。また、ＨＤＤ１０７は、対象物Ｏのスキャンの結果得られる３Ｄモデルを表す３Ｄモデルデータを格納する。エンジンコントローラ１０６は、紙媒体への印刷処理を行うためにプリンタ１１２とのデータの送受信を行い、プリンタ１１２の動作を制御する。
【００１５】
メモリコントローラ１０３は、メインメモリ１０４に対するメモリアクセス全般を制御する。メモリコントローラ１０３には、内部バス１１３を介さずに、ＣＰＵ（Central Processing Unit）１０１、グラフィックコントローラ１０２、及びメインメモリ１０４が接続される。
【００１６】
メインメモリ１０４は揮発性メモリであり、高速アクセスが可能である。そのためにメインメモリ１０４には、プログラムの実行時にＨＤＤ１０７から読み出されたプログラムが展開され、また、一時的に使用するデータが格納される。ＣＰＵ１０１は、３Ｄスキャナ１の電源投入時にＨＤＤ１０７からブートローダプログラムを読み出して実行し、３Ｄスキャナ１の制御プログラムを読み出してメインメモリ１０４に展開する。ＣＰＵ１０１は、メインメモリ１０４に展開した３Ｄスキャナ１の制御プログラムを実行することで、３Ｄスキャナ１全体の処理を制御するように機能する。
【００１７】
ＣＰＵ１０１は、３Ｄスキャナ制御プログラムを実行することで、グラフィックコントローラ１０２の動作を制御する。グラフィックコントローラ１０２は、プロジェクタ１０８による画像の表示を制御する。ＣＰＵ１０１は、３Ｄスキャナ１の制御プログラムを実行することでカメラ１０９の動作を制御して、カメラ１０９に内蔵された赤外線エミッタ１０９ａによる赤外線照射を行い、その反射光をカメラ１０９で撮影する。ＣＰＵ１０１は、カメラ１０９で撮影された映像に基づいて３Ｄモデルデータを生成する。
【００１８】
ＣＰＵ１０１は、カメラ１０９で撮影された映像により、人（ユーザ）のジェスチャを解釈することもできる。例えばプロジェクタ１０８によりステージＳに投影された画像に対するユーザのジェスチャをカメラ１０９が撮影すると、ＣＰＵ１０１は、その映像に基づいてユーザのジェスチャを解釈する。ＣＰＵ１０１は、解釈したユーザのジェスチャに応じて処理を行う。このように、プロジェクタ１０８により投影される画像とカメラ１０９で撮影した映像とにより、ユーザインタフェースを構築することができる。
【００１９】
ＣＰＵ１０１は、３Ｄスキャナ１の制御プログラムを実行することで、エンジンコントローラ１０６の動作を制御し、プリンタ１１２に印刷処理を行わせる。これにより、ＣＰＵ１０１は、台紙Ｍに対象物Ｏを適切に配置するための情報を印刷することができる。また、ＣＰＵ１０１は、ＬＡＮポート１１１を経由して、他の装置との通信を行う。
【００２０】
このような構成の３Ｄスキャナ１は、以下のような処理により対象物Ｏの３Ｄスキャンを行い、３Ｄモデルデータを生成する。
【００２１】
（３Ｄスキャン処理）
図３は、３Ｄスキャナ１による対象物Ｏの３Ｄスキャン処理を表すフローチャートである。
【００２２】
ＣＰＵ１０１は、カメラ１０９で撮影した映像に基づいて３Ｄスキャンの対象となる対象物ＯがステージＳ上に配置されたことを検知する（Ｓ３０１）。ＣＰＵ１０１は、この際に、ユーザによりスキャンの設定を受け付ける。具体的にＣＰＵ１０１は、対象物Ｏを３Ｄスキャンするか、或いは２Ｄスキャンするかの設定を受け付ける。なお、この時点で台紙Ｍは印刷されておらず、対象物ＯはステージＳ上に直接置かれる。
【００２３】
ＣＰＵ１０１は、３Ｄスキャンが設定された場合（Ｓ３０２：３Ｄ）、対象物Ｏの概形を取得する（Ｓ３０３）。ＣＰＵ１０１は、カメラ１０９で撮影した映像に基づいて対象物Ｏの概形を取得する。ＣＰＵ１０１は、対象物Ｏの概形に基づいて台紙Ｍのサイズを算出する（Ｓ３０４）。台紙Ｍのサイズの算出後にＣＰＵ１０１は、台紙Ｍに形成するイメージを生成する（Ｓ３０５）。台紙Ｍに形成するイメージは、位置決めのための様々な情報を含み、ユーザに３Ｄスキャン時の対象物Ｏの配置を指示する。ＣＰＵ１０１は、生成したイメージをプロジェクタ１０８によりステージＳ上にプレビュー表示する（Ｓ３０６）。これによりＣＰＵ１０１は、ユーザにイメージの確認を促す。ユーザによるイメージの確認が終了すると、ＣＰＵ１０１は、プリンタ１１２による印刷処理を行う（Ｓ３０７）。これにより、イメージが印刷された台紙Ｍが生成される。
【００２４】
ユーザは、イメージが印刷された台紙ＭをステージＳ上に配置する。ＣＰＵ１０１は、カメラ１０９で撮影した映像に基づいて、台紙ＭがステージＳ上に配置されたことを検知する（Ｓ３０８）。台紙ＭがステージＳ上に配置されると、ＣＰＵ１０１は、カメラ１０９で撮影した映像に基づいて、台紙Ｍ上に対象物Ｏが配置されたことを検知する（Ｓ３０９）。
【００２５】
対象物Ｏが配置されたことを検知したＣＰＵ１０１は、カメラ１０９で撮影した映像に基づいて、対象物Ｏの形状の測定処理を行う（Ｓ３１０）。これにより対象物Ｏが３Ｄスキャンされる。ＣＰＵ１０１は、対象物Ｏの形状を測定した結果得られる３Ｄモデルを、プロジェクタ１０８によりステージＳ上に表示する。ユーザは、この表示により３Ｄモデルを確認する。ユーザは、３Ｄモデルの確認の結果、再スキャンの必要があれば「再スキャン」の指示を行い、再スキャンの必要がなければ「終了」の指示を行う。ＣＰＵ１０１は、再スキャンが指示されれば（Ｓ３１２：再スキャン）、ステップＳ３１０の処理に戻って、再度、対象物Ｏの測定を行う。ステップＳ３１０〜Ｓ３１２の処理は、ユーザが「終了」を指示するまで繰り返し行われる。ＣＰＵ１０１は、終了が指示されれば（Ｓ３１２：終了）、ユーザにより確認された３Ｄモデルの３ＤモデルデータをＨＤＤ１０７に格納して（Ｓ３１３）、処理を終了する。
【００２６】
なお、ステップＳ３０１で２Ｄスキャンが設定された場合（Ｓ３０２：２Ｄ）、ＣＰＵ１０１は、カメラ１０９で撮影されたＲＧＢの映像を取得する（Ｓ３１４）。ＣＰＵ１０１は、取得したＲＧＢの映像を２Ｄモデルデータに変換してＨＤＤ１０７に格納し、処理を終了する。
【００２７】
以下、図３の各処理の詳細について説明する。
【００２８】
図４は、図３のステップＳ３０１の対象物検知処理を表すフローチャートである。
ＣＰＵ１０１は、カメラ１０９が赤外線撮影により取得した映像に基づいてステージＳ上の対象物Ｏを検知する。カメラ１０９は、赤外線エミッタ１０９ａにより赤外線でステージＳ上を照射する。カメラ１０９は、赤外線を照射したままステージＳ上を撮影することで、赤外線撮影による映像を取得する。
【００２９】
そのためにＣＰＵ１０１は、まず、カメラ１０９が撮影した赤外線撮影による映像に基づいて、ステージＳ上の深度画像を取得する（Ｓ４０１）。深度画像の取得技術は、Microsoft社のKinect（登録商標）やPrimeSense社のCarmine（登録商標）を始め数多くの製品により実用化されており、広く知られた技術であるために詳細な説明は省略する。
【００３０】
ＣＰＵ１０１は、深度画像により、ステージＳ内の領域とステージＳ外の領域との境界であるステージＳの端部に立体物があるか否かを判断する（Ｓ４０２）。ユーザがステージＳ上に対象物Ｏを配置する場合、対象物Ｏを配置するユーザの手がステージＳ上に一旦侵入する。そのためにＣＰＵ１０１は、ユーザの手（立体物）がステージＳの境界部分にある場合（Ｓ４０２：存在する）、対象物ＯのステージＳ上への配置が終了していないと判断して、再度、深度画像を取得する。
【００３１】
ステージＳの境界部分に立体物がない場合（Ｓ４０２：存在しない）、ＣＰＵ１０１は、深度画像により、ステージＳ内の中央部に立体物があるか否かを判断する（Ｓ４０３）。例えば、図１に示すようにステージＳ上に対象物Ｏだけが配置された状態で、ＣＰＵ１０１は、ステージＳ内の中央部に立体物があると判断する。ステージＳ上に立体物が無い場合（Ｓ４０３：存在しない）、ＣＰＵ１０１は、対象物ＯのステージＳ上への配置が終了していないと判断して、再度、深度画像を取得する。
【００３２】
ステージＳの中央部に立体物がある場合（Ｓ４０３：存在する）、ＣＰＵ１０１は、プロジェクタ１０８により、ステージＳ上に「３Ｄスキャン」と「２Ｄスキャン」とのいずれかをユーザに選択させる選択画面を表示する（Ｓ４０４）。ユーザは、選択画面に応じて、ジェスチャにより「３Ｄスキャン」と「２Ｄスキャン」とのいずれかを選択することができる。ＣＰＵ１０１は、ユーザのジェスチャにより入力を受け付ける（Ｓ４０５）。これにより３Ｄスキャナ１に「３Ｄスキャン」又は「２Ｄスキャン」が設定される。ＣＰＵ１０１は、図３のステップＳ３０２において、この設定に応じた判断を行う。
ユーザのジェスチャによる入力は、例えばカメラ１０９で撮影した映像により認識される。ＣＰＵ１０１は、例えば、選択画面内の「３Ｄスキャン」と「２Ｄスキャン」との表示領域と、撮影したユーザの指の位置とから、ユーザの選択を受け付ける。また、その他に前出のKinect（登録商標）で得た深度画像から行う方法や、既知の指先検出技術を用いる方法等がある。以上のようにして、ＣＰＵ１０１は、ステージＳに対象物Ｏが配置されたことを検知し、３Ｄスキャン或いは２Ｄスキャンの設定を受け付けることができる。
【００３３】
図５は、図３のステップＳ３０３の対象物Ｏの概形取得処理を表すフローチャートである。ＣＰＵ１０１は、対象物Ｏの３Ｄスキャンが指示されている場合、カメラ１０９が赤外線撮影により取得して映像に基づいて、ステージＳ上の深度画像を取得する（Ｓ７０１）。深度画像の取得は、図４のステップＳ４０１と同様の処理によりに行われる。深度画像を取得したＣＰＵ１０１は、カメラ１０９の赤外線エミッタ１０９ａによる赤外線の照射を中止して、カメラ１０９に可視光による通常の撮影を行わせる。これによりＣＰＵ１０１は、ステージＳのＲＧＢ輝度情報からなるＲＧＢ映像を取得する（Ｓ７０２）。
【００３４】
ＣＰＵ１０１は、深度画像からカメラ１０９の撮影領域内の対象物Ｏの存在領域を算出することで、対象物Ｏの形状を測定する（Ｓ７０３）。ＣＰＵ１０１は、測定した対象物Ｏの形状に基づいて、ＲＧＢ映像から対象物Ｏの存在領域の画像を切り出して処理を終了する（Ｓ７０４）。切り出した画像が対象物Ｏの概形となる。
【００３５】
図６は、図３のステップＳ３０４の台紙Ｍのサイズを算出する処理を表すフローチャートである。
【００３６】
ＣＰＵ１０１は、図３のステップＳ３０３の処理で取得した対象物Ｏの概形から、対象物ＯをステージＳ上に投影した場合の領域を算出する（Ｓ８０１）。ＣＰＵ１０１は、算出した領域の外接矩形を算出する（Ｓ８０２）。ＣＰＵ１０１は、算出した外接矩形よりも各辺が所定の長さ（例えば５［ｃｍ］）大きい矩形を算出する（Ｓ８０３）。ＣＰＵ１０１は、算出した矩形の収まる最小定型用紙サイズを算出して、これを台紙Ｍのサイズとして台紙Ｍの属性情報に記憶する（Ｓ８０４）。台紙Ｍの属性情報は、メインメモリ１０４に記憶される。表１は、台紙Ｍの属性情報の例示図である。
【００３７】
【表１】
0006376887.tif 000002
【００３８】
台紙Ｍの属性情報には、台紙Ｍのサイズの他に、紙種、後述する位置マーカＡ〜Ｄの位置、指標１、２の位置、及び黒で着色する領域、が記憶される。表１では、台紙Ｍのサイズとして「Ａ４」が記憶される。位置マーカＡ〜Ｄ及び指標１、２は、３Ｄスキャン時に台紙ＭがステージＳ上に配置される位置の目印となる目標画像である。台紙Ｍのサイズを外接矩形よりも大きくするために、これらの目標画像を、台紙Ｍ上の対象物Ｏが配置される領域に重ならないように印刷することができる。
【００３９】
図７は、図３のステップＳ３０５の台紙Ｍに印刷するイメージを生成する処理を表すフローチャートである。この処理では、ＣＰＵ１０１が、まず、台紙Ｍの対象物Ｏが配置される領域に適用する色を決める。図８は、対象物Ｏに対する深度画像、輝度差の大きな色の説明図である。図８（ａ）は、対象物Ｏに対する深度画像を表す。深度画像は、ノイズが多く、正確なエッジの検出には不向きである。そのために、深度画像のみから３Ｄモデルを作成しても、正確なモデルを生成することが困難である。ＲＧＢ映像は、ノイズが少なく、輝度差が十分に得られる状況であれば正確なエッジの検出が可能である。対象物Ｏの３Ｄ形状を深度画像から算出し、エッジをＲＧＢ映像から算出することで、深度画像のみから３Ｄモデルを算出する場合よりも正確な３Ｄモデルの生成が可能である。そのために、ＲＧＢ映像からエッジが算出しやすくなるように、台紙Ｍの対象物Ｏが配置される領域に、対象物Ｏとの輝度差が大きな色を適用する。
【００４０】
ＣＰＵ１０１は、図３のステップＳ３０３で取得した対象物Ｏの概形をグレイ画像に変換する（Ｓ１００１）。上記の通り、対象物Ｏのエッジを検出しやすくするために、ステージＳと対象物Ｏが接する部分の輝度差を大きくすることが望ましい。そのために、ステージＳから所定高さ以内の対象物Ｏの領域のみを抽出して、これをグレイ画像に変換するようにしてもよい。
【００４１】
ＣＰＵ１０１は、グレイ画像変換後に、対象物Ｏの外周を複数の領域に分割する（Ｓ１００２）。ＣＰＵ１０１は、分割した各領域に含まれる対象物Ｏを構成する画素の平均値により、領域毎にグレイ濃度値を算出する（Ｓ１００３）。カメラ１０９の取り付け位置によっては、ステージＳ上でＲＧＢ映像を取得できずにグレイ画像が得られない領域が発生する。ＣＰＵ１０１は、そのような領域に対して隣接する領域のグレイ濃度値を用いて処理を行う。
【００４２】
ＣＰＵ１０１は、領域毎にグレイ濃度を判断する（Ｓ１００４）。グレイ濃度が２０［％］未満の領域であれば（Ｓ１００４：２０％未満）、ＣＰＵ１０１は、対象物Ｏの色が明るい色であるので、台紙Ｍの該領域の候補色を黒色にする（Ｓ１００５）。グレイ濃度が２０［％］以上８０［％］未満の領域であれば（Ｓ１００４：２０〜８０％）、ＣＰＵ１０１は、対象物Ｏの色が中間色であるので、台紙Ｍの該領域の候補色を白色又は黒色にする（Ｓ１００６）。対象物Ｏが中間色であるために、台紙Ｍの該領域の色は白色、黒色のいずれであっても、対象物Ｏのエッジは検出可能である。グレイ濃度が８０［％］以上の領域であれば（Ｓ１００４：８０％以上）、ＣＰＵ１０１は、対象物Ｏの色が暗い色であるので、台紙Ｍの該領域の候補色を白色にする（Ｓ１００７）。図８（ｂ）は、対象物Ｏに対する輝度差の大きな色を表す。対象物Ｏが全面白色であれば、対象物Ｏの外周がどの領域もグレイ濃度値が２０［％］未満であるために、候補色は黒色になる。
【００４３】
図９は、対象物Ｏの外周に明暗が混在する場合の候補色の説明図である。図９（ａ）に示すように、対象物Ｏの外周に明暗が混在すると、対象物Ｏの外周の領域によって輝度差の大きな候補色が異なる。この場合、台紙Ｍの候補色が、対象物Ｏの外周の領域によって、白色、黒色、白及び黒のいずれでもよい、の三種類に分かれる。本実施形態では、白及び黒のいずれでもよい領域の候補色をなるべく白色とする。これは、台紙Ｍに印刷する際のプリンタのトナー消費量を抑制するためである。従って、図９（ａ）の場合には、図９（ｂ）に示すように、白色を優先して候補色が決められる。その結果、台紙Ｍには、図９（ｃ）に示すパタンが印刷される。このようなパタンが印刷された台紙Ｍに対象物Ｏを配置する際には、対象物Ｏの向きを指示する必要がある。図９（ｄ）は、プロジェクタ１０８により対象物Ｏの向きをガイドする場合を表す。
【００４４】
なお、対象物Ｏの明暗が更に細かく分かれている場合、白色を優先して候補色を決定すると台紙Ｍに印刷されるパタンが細かく分割されてしまうことがある。この場合、プロジェクタ１０８により対象物Ｏの配置をガイドしても細かい調整が必要となり、ユーザにとってのストレスとなる。そのために、白色を優先して候補色を決める場合であっても、候補色が黒色の領域で挟まれた領域の候補色を黒色にする。これにより、対象物Ｏの配置を細かく調整する必要がなくなり、ユーザのストレスが軽減される。
そのためにＣＰＵ１０１は、対象物Ｏの外周を分割したすべての領域の候補色を決めると（Ｓ１００８：Y）、候補色が黒色の領域に挟まれた領域を抽出して、該領域の候補色を黒色に設定する（Ｓ１００９）。残りの領域で、候補色が白色と黒色とのいずれでもよい場合には、白色に設定する（Ｓ１０１０）。各領域の候補色が決定すると、ＣＰＵ１０１は、各領域に設定した候補色による台紙用のイメージを作成する（Ｓ１０１１）。
【００４５】
ＣＰＵ１０１は、作成した台紙用のイメージに、指標、位置マーカ、十字線、折り曲げ位置線等の目標画像を付加する（Ｓ１０１２）。指標は、台紙Ｍの所定の辺の近傍に青色の三角形、当該辺に対向する辺の近傍に赤色の三角形により設けられる。３Ｄスキャナ１は、台紙Ｍの回転方向をプロジェクタ１０８によりユーザに通知するが、指標は、ユーザが台紙Ｍを回転させる際の目印となる。図１０は、指標の説明図である。図１０（ａ）は、台紙Ｍに印刷された赤色と青色の三角形の指標３００、３０１を表す。台紙ＭをステージＳに載せる際に、プロジェクタ１０８は赤色と青色のガイドを表示する。ユーザは赤色の指標３００を赤色のガイドにあわせ、青色の指標３０１を青色のガイドにあわせることで、台紙Ｍの位置合わせを行えばよいことが直感的にわかる。指標は、色で分けた三角形の他に、図１０（ｂ）に示す十字に交わる実線と矢印の組み合わせであってもよい。この場合、プロジェクタ１０８で十字に交わる実線と矢印のガイドが表示されれば、ユーザは十字の傾きをあわせることで台紙Ｍの位置合わせを行えばよいことが直感的にわかる。
【００４６】
位置マーカは、台紙Ｍの各頂点の近傍に設けられる位置合わせのための目標画像である。正確な３Ｄモデルを構築するためには、３Ｄスキャナ１がステージＳ上の台紙Ｍの位置を正確に把握する必要がある。位置マーカは、台紙Ｍの位置を簡易且つ確実に把握するために台紙Ｍに印刷される。十字線は、台紙Ｍの中心に設けられる。十字線は、ユーザに対象物Ｏを置く位置を指示する目標画像である。なお、ユーザが対象物Ｏを置く位置が明確になればよいので、台紙Ｍに、十字線ではなく、対象物Ｏの概形を表示するようにしてもよい。折り曲げ位置線は、位置マーカの外側に設けられる。ユーザは、台紙Ｍを回転させる際に、台紙Ｍを折り曲げ位置線で折り曲げることで、台紙Ｍを把持して容易に回転させることができる。図１１は、折り曲げ位置線の説明図である。図１１（ａ）に示すように位置マーカ３０２の外側を折ると問題は生じないが、図１１（ｂ）に示すように位置マーカ３０２の内側を折ると、３Ｄスキャナ１は、位置マーカ３０２の位置を検出できなくなり台紙Ｍの位置を正確に把握できなくなる。そのために折り曲げ位置線３０３は、図１１（ｃ）に示すように位置マーカ３０２の外側に設けられる。
【００４７】
ＣＰＵ１０１は、表１に示す台紙Ｍの属性情報に、位置マーカ３０２の位置座標、指標３００、３０１の座標、形状、回転角、領域の色情報を登録して処理を終了する（Ｓ１０１３）。このようにして台紙Ｍに形成するイメージが生成される。
【００４８】
図１２は、図３のステップＳ３０６の印刷前のイメージの確認処理を表すフローチャートである。ＣＰＵ１０１は、台紙Ｍに印刷するイメージをプリンタ１１２により印刷する前に、ユーザにイメージを確認させる。そのためにＣＰＵ１０１は、プロジェクタ１０８により、台紙Ｍの属性情報に基づいて、台紙Ｍに印刷するイメージをステージＳに表示する（Ｓ１４０１）。また、ＣＰＵ１０１は、プロジェクタ１０８により、ステージＳにユーザによる台紙用のイメージの確認結果を受け付けるための選択肢を表示する（Ｓ１４０２）。選択肢には「ＯＫ」と「変更」とがある。「ＯＫ」は、台紙Ｍに印刷を行う場合に選択され、「変更」は台紙Ｍに手動で修正を行う場合に選択される。図１３は、このような台紙用のイメージの表示例示図である。図１３（ａ）では、ステージＳ上に台紙用のイメージとともに選択肢が重畳表示される。
【００４９】
ＣＰＵ１０１は、カメラ１０９が撮影した映像によりユーザのジェスチャ入力を受け付ける（Ｓ１４０３）。ＣＰＵ１０１は、受け付けたジェスチャ入力が「ＯＫ」を選択するものであれば（Ｓ１４０４：ＯＫ）、印刷前のイメージの確認処理を終了する。ＣＰＵ１０１は、受け付けたジェスチャ入力が「変更」を選択するものであれば（Ｓ１４０４：変更）、ユーザのジェスチャ入力を受け付ける（Ｓ１４０５）。ユーザは、「変更」の選択の後に、ステージＳに表示されたイメージに対して、ピンチ操作やタップ操作等のジェスチャ入力を行う。
【００５０】
ジェスチャ入力がピンチアウト操作であれば（Ｓ１４０６：ピンチアウト）、ＣＰＵ１０１は、表１の属性情報の「サイズ」を大きくする。つまり台紙Ｍのサイズを大きくする（Ｓ１４０７）。ジェスチャ入力がピンチイン操作であれば（Ｓ１４０６：ピンチイン）、ＣＰＵ１０１は、表１の属性情報の「サイズ」を小さくする。つまり台紙Ｍのサイズを小さくする（Ｓ１４０８）。ジェスチャ入力がタップ操作であれば（Ｓ１４０６：タップ）、ＣＰＵ１０１は、台紙用のイメージのユーザに指示された領域の色を反転する（Ｓ１４０９）。これらのジェスチャ入力に応じて、属性情報が変更される。これらのジェスチャ入力に応じた処理を行ったＣＰＵ１０１は、再度、台紙用のイメージをプロジェクタ１０８によりステージＳに表示して、ステップＳ１４０１以降の処理を繰り返す。
【００５１】
３Ｄスキャナ１は、深度画像から測定した対象物の形状（図５のステップＳ７０３参照）と、対象物Ｏの概形（図５のステップＳ７０４参照）とから、台紙Ｍのサイズ及び台紙用のイメージを決定する。しかし、カメラ１０９と対象物Ｏとの位置関係によっては、対象物Ｏのカメラ１０９から隠れる側の面の映像は取得できない。そのために、対象物Ｏのカメラ１０９から隠れる側の面の形状や色によっては、適切な台紙Ｍのサイズ及び台紙用のイメージが得られない可能性がある。そのために、本実施形態では、印刷前にユーザにイメージの確認を行わせ、台紙Ｍのサイズやイメージの修正を可能としている。
【００５２】
例えば、ユーザが、３Ｄスキャナ１が決定した台紙Ｍのサイズを大きくする際に、図１３（ｂ）のように台紙Ｍのプレビューに対してピンチアウトを行うことで、台紙Ｍのサイズを一回り大きいものに変更することができる。また、台紙用イメージの色が適切ではない場合に、その領域をタップすることで、図１３（ｃ）のように台紙用のイメージの色を反転させることができる。
【００５３】
台紙用のイメージの確認が終了すると、ＣＰＵ１０１は、プリンタ１１２により印刷処理を行う（図３のステップＳ３０７参照）。印刷処理を開始するとＣＰＵ１０１は、台紙Ｍの属性情報に基づいて、プリンタ１１２に給紙を行わせる。表１の属性情報の例では、台紙ＭとなるＡ４サイズの普通紙が給紙される。ＣＰＵ１０１は、属性情報に基づいて、プリンタ１１２に、位置マーカＡ〜位置マーカＤ、指標１、指標２、黒で着色する領域を印刷させる。また、ＣＰＵ１０１は、プリンタ１１２に十字線を台紙Ｍの中心に印刷させ、折る曲げ位置線を位置マーカＡ〜位置マーカＤのそれぞれ外側に、台紙Ｍの端と４５度の角度をなすように印刷させる。
【００５４】
図１４は、印刷された台紙Ｍの例示図である。台紙Ｍは、Ａ４サイズであり、四隅に位置マーカ３０２及び折り曲げ位置線３０３が印刷される。台紙Ｍは、対象物Ｏが配置される位置を示す十字線３０４、対象物Ｏを置いた際に対象物Ｏのエッジを検出しやすいように対象物Ｏに対して輝度差の大きな色が適用された領域３０５、及びガイドに合わせるための青色と赤色の指標３００、３０１が印刷される。
【００５５】
図１５は、図３のステップＳ３０８の台紙Ｍの検知処理を表すフローチャートである。ユーザは、図３のステップＳ３０７で属性情報に基づいたイメージが印刷された台紙ＭをステージＳ上に配置する。
【００５６】
ＣＰＵ１０１は、台紙Ｍの属性情報から位置マーカ３０２の座標情報を読み出す（Ｓ１９０１）。ＣＰＵ１０１は、カメラ１０９で可視光による通常の撮影を行うことで、ステージＳ上のＲＧＢ映像を取得する（Ｓ１９０２）。ＣＰＵ１０１は、ＲＧＢ映像に含まれる位置マーカ３０２に応じて、台紙Ｍの位置を取得する（Ｓ１９０３）。ＣＰＵ１０１は、取得した台紙Ｍの位置により、台紙ＭがステージＳ上に存在するか否かを判断する（Ｓ１９０４）。台紙ＭがステージＳ上に存在しない場合（Ｓ１９０４：N）、ＣＰＵ１０１は、再度、カメラ１０９によりＲＧＢ映像を取得して、台紙ＭがステージＳ上に存在するかを判断する。台紙ＭがステージＳ上に存在すると（Ｓ１９０４：Y）、ＣＰＵ１０１は、プロジェクタ１０８により、台紙Ｍ上に対象物Ｏの配置位置を表示する（Ｓ１９０５）。
【００５７】
このように、ユーザがステージＳ上に台紙Ｍを置くと、対象物Ｏを置く位置を示すガイドが台紙Ｍ上に重畳表示される。そのためにユーザは、対象物Ｏを置くべき位置を容易かつ確実に把握することができる。図９（ａ）に示すような明暗が混在する対象物Ｏの場合、ユーザが台紙Ｍ上に対象物Ｏを置く向きを容易に把握できるように、図９（ｄ）に示すように、対象物Ｏの外観を合わせて表示するようにしてもよい。
【００５８】
図１６は、図３のステップＳ３０９の対象物検知処理を表すフローチャートである。ユーザは、台紙Ｍ上の配置位置の表示に応じて対象物Ｏを台紙Ｍ上に配置する。
【００５９】
ＣＰＵ１０１は、カメラ１０９が台紙Ｍ上を赤外線撮影した映像に基づいて、台紙Ｍ上の深度画像を取得する（Ｓ２１０１）。深度画像の取得は、図４のステップＳ４０１の同様の処理により行われる。ＣＰＵ１０１は、取得した深度画像に基づいて、台紙Ｍ上に立体物が存在するか否かを判断する（Ｓ２１０２）。ＣＰＵ１０１は、台紙Ｍ上に立体物が存在すると判断するまで、深度画像の取得を繰り返す。台紙Ｍ上に立体物が存在すると（Ｓ２１０２：Y）、ＣＰＵ１０１は、台紙Ｍの回転履歴情報の全方向のパラメータを「０」にリセットして処理を終了する（Ｓ２１０３）。回転履歴情報は、台紙Ｍが回転したことを検出する度に、その方向（角度）に応じてパラメータが変化するテーブルである。回転履歴情報は、メインメモリ１０４に記憶される。
【００６０】
このように、ユーザがステージＳ上に台紙Ｍを置き、その上に対象物Ｏを置くことで、対象物Ｏの測定（３Ｄスキャン）が開始される。本実施形態では、台紙Ｍ上に立体物の存在を確認するステップＳ２１０２の処理により対象物Ｏの測定が開始されるが、ユーザからの指示に応じて３Ｄスキャンを開始するようにしてもよい。
【００６１】
図１７は、図３のステップＳ３１０の対象物Ｏの測定処理を表すフローチャートである。３Ｄスキャナ１は、対象物ＯがステージＳ上の台紙Ｍの上に配置されたことを検知すると、対象物Ｏの測定を開始する。
【００６２】
ＣＰＵ１０１は、カメラ１０９で可視光による通常の撮影を行うことで、ステージＳ上のＲＧＢ映像を取得する（Ｓ２３０１）。ＣＰＵ１０１は、取得したＲＧＢ映像に含まれる位置マーカ３０２を検出し、カメラ１０９の位置を原点として台紙Ｍの位置を算出する（Ｓ２３０２）。図１８は、カメラ１０９の位置を原点とした座標系の説明図である。この座標系は、ステージＳの直交する二辺の方向をｘ軸、ｙ軸とし、ステージＳの法線方向をｚ軸としている。ＣＰＵ１０１は、算出した台紙Ｍの位置に基づいて、原点と台紙Ｍの中心とを結ぶ線と、台紙Ｍの向いている方向との、ｚ軸方向からみた角度を算出して、台紙Ｍの回転履歴情報の当該方向（角度）のパラメータを「１」に更新する（Ｓ２３０３）。原点と台紙Ｍの中心とを結ぶ線は、例えばＲＧＢ映像の中心と、ＲＧＢ映像内の台紙Ｍの中心とを結ぶ線である。台紙Ｍの向いている方向は、例えばＲＧＢ映像に含まれる指標３００、３０１を結ぶ線で表される。回転履歴情報は、算出された角度のパラメータが「１」になるテーブルである。例えば、ユーザが台紙ＭをステージＳ上で反時計回りに半回転させた場合、回転履歴情報は、回転時に算出される角度に応じて表２に示すようになる。表２に示す通り、台紙ＭがステージＳ上で反時計回りに半回転すると、回転履歴情報は、「０」度〜「１８０」度のパラメータが「１」に設定される。それ以外の角度のパラメータは「０」のままである。
【００６３】
【表２】
0006376887.tif 000003
【００６４】
ＣＰＵ１０１は、回転履歴情報を更新すると、台紙Ｍの属性情報（表１参照）から指標３００、３０１の座標、形、回転角、色情報等の情報を読み出す（Ｓ２３０４）。ＣＰＵ１０１は、読み出した指標３００、３０１の情報に基づき、カメラ１０９の位置を原点とした指標３００、３０１の位置、向きを算出する（Ｓ２３０５）。ステップＳ２３０１〜Ｓ２３０５の処理により、３Ｄスキャナ１は、ステージＳ上の台紙Ｍの正確な位置と向きとを把握することができる。
【００６５】
ＣＰＵ１０１は、ユーザからの再スキャンの指示の有無を判断する（Ｓ２３０６）。再スキャンの指示は、ユーザが対象物Ｏのスキャンが正確に行われていないと判断したときに、後続の処理の際に行われる。そのために対象物Ｏの測定処理を開始して最初にこのステップの処理を行うときには、再スキャンの指示は行われていない。再スキャンの指示が有る場合（Ｓ２３０６：Y）、ＣＰＵ１０１は、ユーザが指定する方向と、現在の台紙Ｍの向いている方向との角度差を算出する（Ｓ２３０７）。再スキャンの指示が無い場合（Ｓ２３０６：N）、ＣＰＵ１０１は、台紙Ｍの回転履歴情報から、まだカメラ１０９側に向けていない台紙Ｍの方向を取得する（Ｓ２３０８）。ＣＰＵ１０１は、例えば回転履歴情報のパラメータが「０」の方向を取得する。ＣＰＵ１０１は、取得した台紙Ｍの方向と現在の台紙Ｍの向いている方向との角度差を算出する（Ｓ２３０９）。
【００６６】
ステップＳ２３０７、Ｓ２３０９の角度差の算出後、ＣＰＵ１０１は、プロジェクタ１０８により、台紙Ｍを回転させる方向を指示するガイドを表示する（Ｓ２３１０）。ＣＰＵ１０１は、算出した角度差に基づいて台紙Ｍを回転させる方向を特定し、台紙Ｍに印刷された各指標と同色で、各指標の近傍にガイドを表示する。回転方向の指示後に、ＣＰＵ１０１は、台紙Ｍの回転履歴情報から、まだカメラ１０９側に向けていない台紙Ｍの方向を取得して、この方向を円状のグラフとしてプロジェクタ１０８で表示する（Ｓ２３１１）。図１９は、ガイド及びグラフの例示図である。３Ｄスキャナ１は、ステップＳ２３０５までの処理によりステージＳ上の台紙Ｍの正確な位置と向きとを把握しているために、台紙Ｍの属性情報により台紙Ｍの位置と各指標３００、３０１との位置関係を正確に把握することができる。これにより、図１９（ａ）では、台紙Ｍを回転させる方向を表すガイド１９１、１９２や円状のグラフ１９３を、台紙Ｍに印刷されている指標３００、３０１に対して、最適な位置に表示することが可能である。
【００６７】
ガイド１９１、１９２やグラフ１９３を表示した後にＣＰＵ１０１は、対象物Ｏの深度画像を取得する。深度画像の取得は、図４のステップＳ４０１と同様の処理により行われる。ＣＰＵ１０１は、取得した深度画像に基づいて、カメラ１０９の位置を原点とする、対象物Ｏの３Ｄモデルを構成する３Ｄ点群の位置を算出する（Ｓ２３１２）。ＣＰＵ１０１は、カメラ１０９の位置を原点とする３Ｄ点群の位置と、カメラ１０９の位置を原点とする台紙Ｍの位置とから、台紙Ｍの位置を原点とする相対座標系における３Ｄ点群の位置を算出する（Ｓ２３１３）。
【００６８】
図２０は、対象物Ｏと３Ｄモデルとの関係例示図である。図２０では、対象物Ｏが三角錐である。図２０の座標系は、台紙Ｍの所定の位置を原点としている。三角錐である対象物Ｏの測定を行うと、３Ｄ点群として４つの頂点Ｃ００１〜Ｃ００４の位置が測定される。測定された４つの頂点Ｃ００１〜Ｃ００４の位置を表す位置情報は、表３に示すように固有の識別情報（座標ＩＤ）が割り当てられ、例えば、メートル単位系の座標値として３Ｄモデルデータの座標情報として記録される。
【００６９】
【表３】
0006376887.tif 000004
【００７０】
ＣＰＵ１０１は、算出した対象物Ｏの３Ｄ点群の位置を表す位置情報をＨＤＤ１０７に格納する。対象物Ｏを構成するすべての３Ｄ点群の位置情報をＨＤＤ１０７に格納するまで、ＣＰＵ１０１は、順次、算出した位置情報を追加してＨＤＤ１０７に格納する（Ｓ２３１４）。図１９（ａ）に示す例では、それまでに測定した３Ｄ点群の位置情報から、図２１（ａ）に示す３Ｄモデルが構築できる。しかし、この時点では対象物Ｏのカメラ１０９から隠れる側の面の撮影が行われず、対象物Ｏの測定ができていないために、３Ｄモデルは不完全である。なお、図２１（ａ）の実線で表現される部分は、実際には図８（ａ）に示すような点の集合で表現されたものであるが、未測定の部分の把握を容易にするために、実線で表している。
【００７１】
ＣＰＵ１０１は、位置情報を格納した後に、台紙Ｍの回転履歴情報を確認して、すべての方向（角度）のパラメータがすべて「１」であるか否かを判断する（Ｓ２３１５）。パラメータがすべて「１」であれば（Ｓ２３１５：Y）、ＣＰＵ１０１は、対象物測定処理を終了する。１つでも「０」のパラメータが残っていれば（Ｓ２３１５：N）、ＣＰＵ１０１は、ステップＳ２３０２以降の処理をパラメータがすべて「１」になるまで繰り返す。
【００７２】
ユーザが台紙Ｍを回転させることで、ガイド１９１、１９２及びグラフ１９３の表示は、図１９（ｂ）に示すように変化する。ユーザが、表示されたガイド１９１、１９２及びグラフ１９３に基づいて台紙Ｍを回転させると、その回転角に応じて台紙Ｍの回転履歴情報のパラメータが「１」に更新される。台紙Ｍが一周することで、すべてのパラメータが「１」になる。台紙Ｍが一周することで、対象物Ｏのカメラ１０９から隠れる側の面の測定が行われ、すべての３Ｄ点群の位置情報である３Ｄモデルデータが完成する。台紙Ｍを一周するまでに測定した３Ｄ点群の位置情報に基づいて、図２１（ｂ）に示すような３Ｄモデルが構築される。
【００７３】
図２２は、図３のステップＳ３１１の３Ｄモデル確認処理を表すフローチャートである。対象物Ｏの測定が終了したＣＰＵ１０１は、対象物Ｏの３Ｄモデルを構成する３Ｄ点群の位置情報に対して平面抽出処理を行う（Ｓ３１０１）。３Ｄ点群に対する平面抽出処理は、例えば、RANSAC（RANdom SAmple Consensus）を用いた平面推定技術により行うことができる。例えば、図２０に示すような三角錐の対象物Ｏに対して表３に示す座標情報が測定される。これに対して平面抽出処理を行うと図２０の平面Ｆ００１〜Ｆ００４が抽出される。ＣＰＵ１０１は、平面抽出処理により抽出した平面を３Ｄモデルデータの面情報に追加する（Ｓ３１０２）。ＣＰＵ１０１は、すべての３Ｄ点群に対して平面抽出処理を行う。表３の３Ｄ点群の位置情報に対して平面抽出処理を行うと、表４に示す面情報が生成される。面情報は、面を定義する３Ｄ点群の座標ＩＤにより構成される。
【００７４】
【表４】
0006376887.tif 000005
【００７５】
すべての３Ｄ点群に対する平面抽出処理が終了すると（Ｓ３１０３：Y）、ＣＰＵ１０１は、プロジェクタ１０８により、ステージＳ上に終了ボタンを表示する（Ｓ３１０４）。ＣＰＵ１０１は、３Ｄモデルデータの面情報を２Ｄ平面にレンダリングして、プロジェクタ１０８によりプレビュー画像を表示する（Ｓ３１０５）。３Ｄモデルデータの２Ｄ平面へのレンダリングは、例えば射影変換により行われる。プレビュー画像を表示したＣＰＵ１０１は、ユーザによるジェスチャ入力を受け付ける（Ｓ３１０６）。
【００７６】
ＣＰＵ１０１は、受け付けたジェスチャ入力によりユーザの操作を判別する（Ｓ３１０７）。ユーザの操作が終了を指示していれば、（Ｓ３１０７：終了）、ＣＰＵ１０１は、３Ｄモデル確認処理を終了する。ユーザの操作がドラッグ操作であれば（Ｓ３１０７：ドラッグ）、ＣＰＵ１０１は、ユーザがプレビュー画像を回転させようとしていると見なし、３Ｄモデルデータを２Ｄ平面に射影変換する際の回転パラメータを変更する（Ｓ３１０８）。ＣＰＵ１０１は、回転パラメータの変更後に、再度、プレビュー画像を表示する。ユーザの操作がピンチ操作であれば（Ｓ３１０７：ピンチ）、ＣＰＵ１０１は、ユーザがプレビュー画像を拡大又は縮小させようとしていると見なし、３Ｄモデルデータを２Ｄ平面に射影変換する際の拡大縮小パラメータを変更する（Ｓ３１０９）。ＣＰＵ１０１は、拡大縮小パラメータの変更後に、再度、プレビュー画像を表示する。ユーザの操作がタップ操作であれば（Ｓ３１０７：タップ）、ＣＰＵ１０１は、タップ操作されたときのプレビュー画像の回転パラメータを、カメラ１０９に対する対象物Ｏの向き情報に変換して、ユーザの指定方向として保持し（Ｓ３１１０）、処理を終了する。タップ操作の場合、ユーザは、３Ｄスキャナ１に再スキャンを指示する。
【００７７】
図２３は、ユーザが３Ｄモデルの確認を行う際の説明図である。ユーザがプレビュー画像上で正常に３Ｄスキャンされていないと判断した部分をタッチすると、タッチされた領域がスキャンできる方向を示すガイド２９１、２９２が表示される。ユーザがこのガイド２９１、２９２に従って台紙Ｍを回転させることで、正常に３Ｄスキャンが行われていない部分の再スキャンが行われる。これにより、３Ｄモデルを補正することが、より正確な３Ｄモデルを実現できる。
【００７８】
図１７のステップＳ２３１０、Ｓ２３１１の処理によりガイド１９１、１９２やグラフ１９３が表示される（図１９参照）。しかし、ステージＳ上の特定の位置に台紙Ｍを移動させるようにユーザに指示する際には、台紙Ｍを移動させるべき位置が一意に定まるように指示する方が、ユーザが指示を把握しやすい。
そこで、指標３００、３０１を動かすべき位置に、指標３００、３０１の形状が適合するガイド画像を表示する。この場合、ＣＰＵ１０１は、図１７のステップＳ２３０７、Ｓ２３０９で算出した角度差に基づく、指標３００、３０１を動かすべき位置に、台紙Ｍに印刷された各指標３００、３０１と同じ色で同じ形状の図形をプロジェクタ１０８により表示する。ユーザは、台紙Ｍに印刷された指標３００、３０１が表示された図形に重なるように台紙Ｍを回転することで、容易に最適な位置に対象物Ｏを配置できる。
【００７９】
例えば、台紙Ｍに赤い三角形の指標３００と青い三角形の指標３０１とが印刷されていれば（図１０（ａ）参照）、ＣＰＵ１０１は、各指標３００、３０１を移動させる位置に、赤い三角形の枠線と青い三角形の枠線とを表示する。これによりユーザは、台紙Ｍを移動させるべき位置を一意に把握することができ、指標３００、３０１の三角形とガイドの三角形の同じ色とが重なるように台紙Ｍを動かすだけよい。そのために、容易かつ確実に台紙Ｍを移動させることができる。
【００８０】
また、台紙Ｍを移動させる位置に、台紙Ｍの形状が適合するようなガイド画像を表示するようにしてもよい。ＣＰＵ１０１は、算出した角度差に基づく台紙Ｍを動かすべき位置に、台紙Ｍと同じ形状の図形をプロジェクタ１０８により表示する。ユーザは、台紙Ｍを図形に重なるように回転する。例えば、ＣＰＵ１０１は、台紙Ｍを移動させるべき位置に四角形の枠線を表示する。これによりユーザは、台紙Ｍを移動させるべき位置を一意に把握することができ、ガイドの四角形の枠線に重なるように台紙Ｍを動かすだけでよい。そのために、容易かつ確実に台紙Ｍを移動させることができる。
【符号の説明】
【００８１】
１…３Ｄスキャナ、１００…コントローラ、１０８…プロジェクタ、１０９…カメラ、１１２…プリンタ、Ｍ…台紙、Ｏ…対象物、Ｓ…ステージ、
【図１】
0006376887.tif 000006
【図２】
0006376887.tif 000007
【図３】
0006376887.tif 000008
【図４】
0006376887.tif 000009
【図５】
0006376887.tif 000010
【図６】
0006376887.tif 000011
【図７】
0006376887.tif 000012
【図８】
0006376887.tif 000013
【図９】
0006376887.tif 000014
【図１０】
0006376887.tif 000015
【図１１】
0006376887.tif 000016
【図１２】
0006376887.tif 000017
【図１３】
0006376887.tif 000018
【図１４】
0006376887.tif 000019
【図１５】
0006376887.tif 000020
【図１６】
0006376887.tif 000021
【図１７】
0006376887.tif 000022
【図１８】
0006376887.tif 000023
【図１９】
0006376887.tif 000024
【図２０】
0006376887.tif 000025
【図２１】
0006376887.tif 000026
【図２２】
0006376887.tif 000027
【図２３】
0006376887.tif 000028