(57)【特許請求の範囲】
【請求項１】
現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得手段と、
前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の３次元座標を含む観測空間情報を取得し、前記撮影手段の位置を推定して前記観測空間に観測視点を設定する観測空間情報取得手段と、
物体の特徴に関する機械学習データに基づいて、前記撮影画像における撮影物の位置と、前記撮影物に関する特徴量と、が関連付けられた２次元特徴量情報を付加情報として取得する機械学習手段と、
前記観測視点から前記観測空間を見た様子を示す２次元観測情報と、前記２次元特徴量情報と、の比較結果に基づいて、前記観測空間情報と前記２次元特徴量情報とを統合する統合手段と、
を含むことを特徴とする画像処理システム。
【請求項２】
前記特徴量は、前記機械学習データに基づいて推定された前記撮影物の深度であり、
前記２次元観測情報には、２次元空間における前記特徴点群の位置と、前記観測空間における前記特徴点群の深度と、が関連付けられており、
前記統合手段は、前記２次元特徴量情報に基づいて、前記観測空間に前記撮影物のメッシュを設定し、前記２次元観測情報と前記２次元特徴量情報との比較結果に基づいて、前記メッシュのスケールを変更する、
ことを特徴とする請求項１に記載の画像処理システム。
【請求項３】
前記統合手段は、前記２次元観測情報と前記２次元特徴量情報との比較結果に基づいて、前記メッシュのスケールを変更した後に、前記メッシュを部分的に変更する、
ことを特徴とする請求項２に記載の画像処理システム。
【請求項４】
前記付加情報は、前記機械学習データに基づいて推定された前記撮影物の３次元形状に関する情報である、
ことを特徴とする請求項１〜３の何れかに記載の画像処理システム。
【請求項５】
前記付加情報は、前記撮影物のメッシュに関する情報である、
ことを特徴とする請求項４に記載の画像処理システム。
【請求項６】
現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得手段と、
前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の３次元座標を含む観測空間情報を取得する観測空間情報取得手段と、
物体の特徴に関する機械学習データに基づいて、前記撮影画像に示された撮影物の特徴に関する付加情報を取得する機械学習手段と、
前記付加情報に基づいて前記観測空間に前記撮影物のメッシュを設定し、前記観測空間情報に基づいて当該メッシュを変更し、前記観測空間情報と前記付加情報とを統合する統合手段と、
を含むことを特徴とする画像処理システム。
【請求項７】
前記統合手段は、前記メッシュのうち、前記観測空間情報が示す前記特徴点群の３次元座標に対応するメッシュ部分を変更した後に、当該メッシュ部分の周囲のメッシュ部分を変更する、
ことを特徴とする請求項６に記載の画像処理システム。
【請求項８】
前記観測空間情報取得手段は、前記特徴点群の位置変化に基づいて前記撮影手段の位置を推定し、当該推定結果に基づいて前記観測空間に観測視点を設定し、
前記統合手段は、前記観測視点に対する各メッシュ部分の向きに基づいて、当該メッシュ部分を変更する、
ことを特徴とする請求項６又は７に記載の画像処理システム。
【請求項９】
前記付加情報は、前記撮影物の法線に関する情報である、
ことを特徴とする請求項４〜８の何れかに記載の画像処理システム。
【請求項１０】
前記付加情報は、前記撮影物の分類に関する情報である、
ことを特徴とする請求項４〜９の何れかに記載の画像処理システム。
【請求項１１】
前記撮影手段は、所定のフレームレートに基づいて、前記現実空間を撮影し、
前記観測空間情報取得手段と前記機械学習手段は、互いに同じフレームで撮影された前記撮影画像に基づいて処理を実行する、
ことを特徴とする請求項１〜１０の何れかに記載の画像処理システム。
【請求項１２】
現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得ステップと、
前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の３次元座標を含む観測空間情報を取得し、前記撮影手段の位置を推定して前記観測空間に観測視点を設定する観測空間情報取得ステップと、
物体の特徴に関する機械学習データに基づいて、前記撮影画像における撮影物の位置と、前記撮影物に関する特徴量と、が関連付けられた２次元特徴量情報を付加情報として取得する機械学習ステップと、
前記観測視点から前記観測空間を見た様子を示す２次元観測情報と、前記２次元特徴量情報と、の比較結果に基づいて、前記観測空間情報と前記２次元特徴量情報とを統合する統合ステップと、
を含むことを特徴とする画像処理方法。
【請求項１３】
現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得ステップと、
前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の３次元座標を含む観測空間情報を取得する観測空間情報取得ステップと、
物体の特徴に関する機械学習データに基づいて、前記撮影画像に示された撮影物の特徴に関する付加情報を取得する機械学習ステップと、
前記付加情報に基づいて前記観測空間に前記撮影物のメッシュを設定し、前記観測空間情報に基づいて当該メッシュを変更し、前記観測空間情報と前記付加情報とを統合する統合ステップと、
を含むことを特徴とする画像処理方法。
【請求項１４】
現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得手段、
前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の３次元座標を含む観測空間情報を取得し、前記撮影手段の位置を推定して前記観測空間に観測視点を設定する観測空間情報取得手段、
物体の特徴に関する機械学習データに基づいて、前記撮影画像における撮影物の位置と、前記撮影物に関する特徴量と、が関連付けられた２次元特徴量情報を付加情報として取得する機械学習手段、
前記観測視点から前記観測空間を見た様子を示す２次元観測情報と、前記２次元特徴量情報と、の比較結果に基づいて、前記観測空間情報と前記２次元特徴量情報とを統合する統合手段、
としてコンピュータを機能させるためのプログラム。
【請求項１５】
現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得手段、
前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の３次元座標を含む観測空間情報を取得する観測空間情報取得手段、
物体の特徴に関する機械学習データに基づいて、前記撮影画像に示された撮影物の特徴に関する付加情報を取得する機械学習手段、
前記付加情報に基づいて前記観測空間に前記撮影物のメッシュを設定し、前記観測空間情報に基づいて当該メッシュを変更し、前記観測空間情報と前記付加情報とを統合する統合手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理システム、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、カメラで撮影した撮影画像を解析し、現実空間の様子を観測空間で再現する技術が検討されている。例えば、非特許文献１には、深度カメラを含まないＲＧＢカメラ（いわゆる単眼カメラ）の撮影画像における特徴点群の位置変化に基づいて、観測空間における特徴点群の３次元座標を含む３Ｄマップを生成するＳＬＡＭ（Simultaneous Localization And Mapping）と呼ばれる技術が記載されている。また例えば、非特許文献２には、ＲＧＢカメラと深度カメラを含むＲＧＢ−Ｄカメラの撮影画像に基づいて３Ｄマップを生成する技術が記載されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Andrew J.Davison, “Real-Time Simultaneous Localization and Mapping with a Single Camera”, Proceedings of the 9th IEEE International Conference on Computer Vision Volume 2, 2003, pp.1403-1410
【非特許文献２】Real-time 3D visual SLAM with a hand-held camera (N. Engelhard, F. Endres, J. Hess, J. Sturm, W. Burgard), In Proc. of the RGB-D Workshop on 3D Perception in Robotics at the European Robotics Forum, 2011
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、非特許文献１の技術では、撮影画像から抽出した特徴点群の３次元座標が３Ｄマップに示されているだけであり、観測空間の情報量を十分に高めることはできない。この点、非特許文献２の技術では、深度カメラによって撮影物の表面の深度を計測でき、撮影物の３次元形状を表現できるので、観測空間の情報量を高めることはできるが、深度カメラを用意する必要があり、構成が複雑化してしまう。【０００５】
本発明は上記課題に鑑みてなされたものであって、その目的は、観測空間の情報量を高めるための構成を簡易化することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係る画像処理システムは、現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得手段と、前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の３次元座標を含む観測空間情報を取得する観測空間情報取得手段と、物体の特徴に関する機械学習データに基づいて、前記撮影画像に示された撮影物の特徴に関する付加情報を取得する機械学習手段と、前記観測空間情報と前記付加情報とを統合する統合手段と、を含むことを特徴とする。【０００７】
本発明に係る画像処理方法は、現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得ステップと、前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の３次元座標を含む観測空間情報を取得する観測空間情報取得ステップと、物体の特徴に関する機械学習データに基づいて、前記撮影画像に示された撮影物の特徴に関する付加情報を取得する機械学習ステップと、前記観測空間情報と前記付加情報とを統合する統合ステップと、を含むことを特徴とする。【０００８】
本発明に係るプログラムは、現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得手段、前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の３次元座標を含む観測空間情報を取得する観測空間情報取得手段、物体の特徴に関する機械学習データに基づいて、前記撮影画像に示された撮影物の特徴に関する付加情報を取得する機械学習手段、前記観測空間情報と前記付加情報とを統合する統合手段、としてコンピュータを機能させる。【０００９】
本発明の一態様では、前記付加情報は、前記撮影画像における前記撮影物の位置と、前記撮影物に関する特徴量と、が関連付けられた２次元特徴量情報であり、前記観測空間情報取得手段は、前記特徴点群の位置変化に基づいて前記撮影手段の位置を推定し、当該推定結果に基づいて前記観測空間に観測視点を設定し、前記統合手段は、前記観測視点から前記観測空間を見た様子を示す２次元観測情報と、前記２次元特徴量情報と、の比較結果に基づいて処理を実行する、ことを特徴とする。【００１０】
本発明の一態様では、前記特徴量は、前記機械学習データに基づいて推定された前記撮影物の深度であり、前記２次元観測情報には、２次元空間における前記特徴点群の位置と、前記観測空間における前記特徴点群の深度と、が関連付けられており、前記統合手段は、前記２次元特徴量情報に基づいて、前記観測空間に前記撮影物のメッシュを設定し、前記２次元観測情報と前記２次元特徴量情報との比較結果に基づいて、前記メッシュのスケールを変更する、ことを特徴とする。【００１１】
本発明の一態様では、前記統合手段は、前記２次元観測情報と前記２次元特徴量情報との比較結果に基づいて、前記メッシュのスケールを変更した後に、前記メッシュを部分的に変更する、ことを特徴とする。【００１２】
本発明の一態様では、前記付加情報は、前記機械学習データに基づいて推定された前記撮影物の３次元形状に関する情報である、ことを特徴とする。【００１３】
本発明の一態様では、前記付加情報は、前記撮影物のメッシュに関する情報である、ことを特徴とする。【００１４】
本発明の一態様では、前記統合手段は、前記付加情報に基づいて前記観測空間に前記メッシュを設定し、前記観測空間情報に基づいて当該メッシュを変更する、ことを特徴とする。【００１５】
本発明の一態様では、前記統合手段は、前記メッシュのうち、前記観測空間情報が示す前記特徴点群の３次元座標に対応するメッシュ部分を変更した後に、当該メッシュ部分の周囲のメッシュ部分を変更する、ことを特徴とする。【００１６】
本発明の一態様では、前記観測空間情報取得手段は、前記特徴点群の位置変化に基づいて前記撮影手段の位置を推定し、当該推定結果に基づいて前記観測空間に観測視点を設定し、前記統合手段は、前記観測視点に対する各メッシュ部分の向きに基づいて、当該メッシュ部分を変更する、ことを特徴とする。【００１７】
本発明の一態様では、前記付加情報は、前記撮影物の法線に関する情報である、ことを特徴とする。【００１８】
本発明の一態様では、前記付加情報は、前記撮影物の分類に関する情報である、ことを特徴とする。【００１９】
本発明の一態様では、前記撮影手段は、所定のフレームレートに基づいて、前記現実空間を撮影し、前記観測空間情報取得手段と前記機械学習手段は、互いに同じフレームで撮影された前記撮影画像に基づいて処理を実行する、ことを特徴とする。
【発明の効果】
【００２０】
本発明によれば、観測空間の情報量を高めるための構成を簡易化することができる。
【図面の簡単な説明】
【００２１】
【図１】画像処理装置のハードウェア構成を示す図である。
【図２】撮影部が現実空間を撮影する様子を示す図である。
【図３】撮影画像の一例を示す図である。
【図４】特徴点群の３次元座標の一例を示す図である。
【図５】深度画像の一例を示す図である。
【図６】撮影画像から生成される法線画像の一例を示す図である。
【図７】統合された観測空間の一例を示す図である。
【図８】画像処理装置において実現される機能の一例を示す機能ブロック図である。
【図９】観測空間画像の一例を示す図である。
【図１０】統合部が実行する処理の一例を示す図である。
【図１１】ＡＲＡＰ手法を拡張してメッシュを変更する処理の説明図である。
【図１２】ＡＲＡＰ手法を拡張してメッシュを変更する処理の説明図である。
【図１３】画像処理装置において実行される処理の一例を示すフロー図である。
【図１４】マッピング処理の一例を示すフロー図である。
【図１５】復元処理の一例を示すフロー図である。
【図１６】統合処理の一例を示すフロー図である。
【図１７】各処理の実行間隔の一例を示す図である。
【図１８】分類画像の一例を示す図である。
【図１９】統合部が実行する処理の一例を示す図である。
【図２０】変形例における画像処理システムの一例を示す図である。
【発明を実施するための形態】
【００２２】
［１．画像処理システムのハードウェア構成］
以下、本発明に関わる画像処理システムの実施形態の例を説明する。本実施形態では、画像処理システムが１台のコンピュータによって実現される場合を説明するが、後述する変形例のように、画像処理システムは複数台のコンピュータによって実現されてもよい。
【００２３】
図１は、画像処理装置のハードウェア構成を示す図である。画像処理装置１０は、画像処理を実行するコンピュータであり、例えば、携帯電話機（スマートフォンを含む）、携帯情報端末（タブレット型コンピュータを含む）、パーソナルコンピュータ、又はサーバコンピュータ等である。図１に示すように、画像処理装置１０は、制御部１１、記憶部１２、通信部１３、操作部１４、表示部１５、入出力部１６、読取部１７、及び撮影部１８を含む。
【００２４】
制御部１１は、例えば、少なくとも１つのマイクロプロセッサを含む。制御部１１は、記憶部１２に記憶されたプログラムやデータに従って処理を実行する。記憶部１２は、主記憶部及び補助記憶部を含む。例えば、主記憶部はＲＡＭなどの揮発性メモリであり、補助記憶部は、ハードディスクやフラッシュメモリなどの不揮発性メモリである。通信部１３は、有線通信又は無線通信用の通信インタフェースであり、ネットワークを介してデータ通信を行う。操作部１４は、ユーザが操作を行うための入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイスやキーボード等を含む。操作部１４は、ユーザの操作内容を制御部１１に伝達する。
【００２５】
表示部１５は、例えば、液晶表示部又は有機ＥＬ表示部等である。表示部１５は、制御部１１の指示に従って画面を表示する。入出力部１６は、入出力インタフェースであり、例えば、ＵＳＢポートを含む。入出力部１６は、外部機器とデータ通信を行うために用いられる。読取部１７は、コンピュータ読み取り可能な情報記憶媒体を読み取り、例えば、光ディスクドライブやメモリカードスロットを含む。撮影部１８は、静止画又は動画を撮影する少なくとも１つのカメラを含み、例えば、ＣＭＯＳイメージセンサ又はＣＣＤイメージセンサなどの撮像素子を含む。撮影部１８は、現実空間を連続的に撮影可能である。例えば、撮影部１８は、所定のフレームレートで撮影してもよいし、特にフレームレートを定めずに不定期的に撮影してもよい。
【００２６】
なお、記憶部１２に記憶されるものとして説明するプログラム及びデータは、ネットワークを介して他のコンピュータから供給されるようにしてもよいし、入出力部１６又は読取部１７を介して、コンピュータ読み取り可能な情報記憶媒体（例えば、ＵＳＢメモリ、ＳＤカード、又は光ディスク）から供給されるようにしてもよい。また、表示部１５及び撮影部１８は、画像処理装置１０の内部に組み込まれているのではなく、画像処理装置１０の外部にあり、入出力部１６を介して接続されてもよい。また、画像処理装置１０のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。
【００２７】
［２．画像処理装置が実行する処理の概要］
画像処理装置１０は、撮影部１８が撮影した撮影画像に基づいて、現実空間の様子を再現した観測空間を生成する。現実空間は、撮影部１８が撮影する物理空間である。観測空間は、仮想的な３次元空間であり、画像処理装置１０内部で定義される空間である。観測空間は、撮影物を表す点群を含む。撮影物は、撮影画像に表れた現実空間の物体であり、被写体ということもできる。別の言い方をすれば、撮影物は、撮影画像に表れた現実空間の一部分である。
【００２８】
観測空間の点群は、観測空間で撮影物の３次元形状を表現するための情報であり、メッシュを構成する頂点群である。メッシュは、ポリゴンとも呼ばれる情報であり、撮影物を表す３次元オブジェクト（３Ｄモデル）の構成要素である。撮影部１８は、任意の場所を撮影可能であってよいが、本実施形態では、撮影部１８が室内の様子を撮影する場合を説明する。
【００２９】
図２は、撮影部１８が現実空間を撮影する様子を示す図である。図２に示すように、本実施形態では、撮影部１８は、複数の面（床、壁、及び天井など）で囲まれた部屋の内部を撮影する。図２の例では、現実空間ＲＳにはベッドと絵画が配置されている。ユーザは、画像処理装置１０を持って移動しながら任意の場所を撮影する。例えば、撮影部１８は、所定のフレームレートに基づいて、現実空間ＲＳを連続的に撮影して撮影画像を生成する。
【００３０】
図３は、撮影画像の一例を示す図である。図３に示すように、撮影画像Ｇ１には、撮影部１８の撮影範囲内にある壁、床、ベッド、及び絵画が、撮影物として撮影されている。なお、本実施形態では、撮影画像Ｇ１の左上を原点Ｏｓとして、スクリーン座標軸（Ｘｓ軸−Ｙｓ軸）が設定され、撮影画像Ｇ１内の位置はスクリーン座標系の２次元座標で示される。
【００３１】
例えば、画像処理装置１０は、撮影画像Ｇ１から特徴点群を抽出し、ＳＬＡＭ技術を利用して観測空間における特徴点群の３次元座標を計算する。特徴点は、画像内の特徴的な部分を示す点であり、例えば、撮影物の輪郭の一部分を示したり、撮影物の色が変化している部分を示したりする。特徴点群は、複数の特徴点の集まりである。
【００３２】
図４は、特徴点群の３次元座標の一例を示す図である。図４に示すＰ１〜Ｐ１６は、撮影画像Ｇ１から抽出された特徴点である。以降、特徴点Ｐ１〜Ｐ１６を特に区別する必要のないときは、これらをまとめて特徴点群Ｐと記載する。なお、本実施形態では、観測空間ＯＳ内の所定位置を原点Ｏｗとして、ワールド座標軸（Ｘｗ軸−Ｙｗ軸−Ｚｗ軸）が設定され、観測空間ＯＳ内の位置はワールド座標系の３次元座標で示される。
【００３３】
本実施形態では、画像処理装置１０は、ＳＬＡＭ技術を利用して特徴点群Ｐの３次元座標を計算するだけでなく、現実空間ＲＳにおける撮影部１８の位置と向きも推定する。画像処理装置１０は、特徴点群Ｐの３次元座標を観測空間ＯＳに設定し、撮影部１８の位置と向きに対応するように、観測視点ＯＶを観測空間ＯＳに設定する。観測視点ＯＶは、仮想カメラとも呼ばれるものであり、観測空間ＯＳにおける視点である。
【００３４】
特徴点群Ｐは、撮影物の輪郭などの一部分を示す特徴点の集まりにすぎないなので、図４に示すように、特徴点群Ｐの密度は、撮影物の表面を表現できるほどには高くならない。即ち、特徴点群Ｐの３次元座標が設定された観測空間ＯＳは、疎な点群データであり、例えば、撮影物の表面を詳しく表現できる程度の情報量とはならない。
【００３５】
そこで、本実施形態の画像処理装置１０は、機械学習（ディープラーニング）を利用して撮影物の３次元形状を推定し、推定した３次元形状と特徴点群Ｐの３次元座標とを統合し、観測空間ＯＳの情報量を増やすようにしている。具体的には、画像処理装置１０は、機械学習によって撮影物の３次元形状を大まかに推定し、実測値である特徴点群Ｐの３次元座標に合うように、推定した３次元形状を補正する。例えば、画像処理装置１０は、撮影物の３次元形状の推定結果として、深度画像と法線画像の２つの画像を取得する。なお、当該推定結果は、２次元的な情報として表現されるようにすればよく、必ずしも画像形式で表現される必要はない。例えば、推定結果は、２次元座標と深度又は法線に関する情報との組み合わせを示すデータであってもよく、例えば、表形式又はテーブル形式のデータであってもよい。
【００３６】
図５は、深度画像の一例を示す図である。深度画像Ｇ２は、撮影画像Ｇ１と同じサイズ（縦横の画素数が同じ）であり、撮影物の深度を示す画像である。深度は、撮影物の奥行きであり、撮影部１８と撮影物との距離である。深度画像Ｇ２の各画素の画素値は、当該画素の深度を示す。即ち、深度画像Ｇ２の各画素の画素値は、当該画素に表れた撮影物と撮影部１８との距離を示す。なお、画素値は、各画素に割り当てられた数値であり、色、輝度、又は明度とも呼ばれる情報である。
【００３７】
深度画像Ｇ２は、カラー画像であってもよいし、グレースケール画像であってもよい。図５の例では、深度画像Ｇ２の画素値を模式的に網点の濃さで示しており、網点が濃いほど深度が低い（距離が短い）ことを示し、網点が薄いほど深度が高い（距離が長い）ことを示している。即ち、網点が濃い画素が示す撮影物は、当該撮影物が撮影部１８から見て手前側にあり、網点が薄い画素が示す撮影物は、当該撮影物が撮影部１８から見て奥側にある。例えば、撮影部１８に近いベッドなどの部分の網点は濃くなり、撮影部１８から遠い壁などの部分の網点は薄くなっている。
【００３８】
図６は、撮影画像Ｇ１から生成される法線画像の一例を示す図である。法線画像Ｇ３は、撮影画像Ｇ１と同じサイズ（縦横の画素数が同じ）であり、撮影物の法線を示す画像である。法線は、撮影物の表面と垂直に交差する直線である。法線画像Ｇ３の各画素の画素値は、当該画素の法線の方向（ベクトル情報）を示す。即ち、法線画像Ｇ３の各画素の画素値は、当該画素に撮影された撮影物の法線の方向を示す。
【００３９】
法線画像Ｇ３は、カラー画像であってもよいし、グレースケール画像であってもよい。図６の例では、法線画像Ｇ３の画素値を模式的に網点の濃さで示しており、網点が濃いほど法線が垂直方向（Ｚｗ軸方向）を向くことを示し、網点が薄いほど法線が水平方向（Ｘｗ軸方向又はＹｗ軸方向）を向くことを示している。即ち、網点が濃い画素が示す撮影物は、当該撮影物の表面が垂直方向を向いており、網点が薄い画素が示す撮影物は、当該撮影物の表面が水平方向を向いている。
【００４０】
例えば、床やベッドの上面のように表面が垂直方向を向く部分の網点は濃くなり、壁やベッドの側面のように表面が水平方向を向く部分の網点は薄くなっている。なお、図６では、Ｘｗ軸方向は、Ｙｗ軸方向よりも網点を濃く示している。このため、例えば、撮影部１８から見て右側にある壁の表面（法線がＸｗ軸方向）は、左側にある壁の表面（法線がＹｗ軸方向）よりも網点を濃く示している。
【００４１】
深度画像Ｇ２と法線画像Ｇ３は、何れも撮影物の３次元形状を示す情報であり、画像処理装置１０は、これらに基づいて、撮影物のメッシュを推定することができる。ただし、深度画像Ｇ２と法線画像Ｇ３は、機械学習で得られた情報であり、ある程度の精度を有するが、画像処理装置１０がその場で計測した実測値ではないので、そこまで精度が高いわけではない。
【００４２】
このため、深度画像Ｇ２と法線画像Ｇ３から推定したメッシュをそのまま観測空間ＯＳに設定して情報量を増やしたとしても、スケールが合っていなかったり、メッシュの細部が違っていたりすることがあり、観測空間ＯＳの精度を高めることができない。そこで、画像処理装置１０は、実測値である特徴点群Ｐの３次元座標と、深度画像Ｇ２及び法線画像Ｇ３と、を統合することで、３次元形状の精度を高めつつ、観測空間ＯＳの情報量を増やすようにしている。
【００４３】
図７は、統合された観測空間ＯＳの一例を示す図である。図７では、観測空間ＯＳにおける点群の集まりを模式的に実線で示している。図７に示すように、機械学習を利用することで観測空間ＯＳの点群の密度を高めることができ、点群の密度は、撮影物の表面を表現できる程度に高くなっている。即ち、統合された観測空間ＯＳは、密な点群データであり、例えば、撮影物の表面を詳しく表現可能な情報量となっている。
【００４４】
なお、観測空間ＯＳで再現できるのは、あくまで撮影部１８の撮影範囲内なので、撮影範囲外（例えば、撮影部１８の後方などの死角）の様子は再現されない。このため、室内全体を再現するためには、ユーザは、画像処理装置１０を持って移動しながら室内をくまなく撮影し、画像処理装置１０は、上記説明した処理を繰り返して部屋全体を再現することになる。
【００４５】
以上のように、本実施形態の画像処理装置１０は、実測値である特徴点群Ｐの３次元座標と、機械学習を利用して取得した深度画像Ｇ２及び法線画像Ｇ３と、を統合することによって、深度カメラなどの構成を用いなくても、観測空間ＯＳの情報量を高めることができるようになっている。以降、画像処理装置１０の詳細を説明する。
【００４６】
［３．画像処理装置において実現される機能］
図８は、画像処理装置１０において実現される機能の一例を示す機能ブロック図である。図８に示すように、本実施形態では、データ記憶部１００、撮影画像取得部１０１、観測空間情報取得部１０２、機械学習部１０３、及び統合部１０４が実現される場合を説明する。
【００４７】
［３−１．データ記憶部］
データ記憶部１００は、記憶部１２を主として実現される。データ記憶部１００は、現実空間ＲＳの様子を再現した観測空間ＯＳを生成するために必要なデータを記憶する。
【００４８】
例えば、データ記憶部１００は、機械学習で利用される機械学習データを記憶する。機械学習データは、種々の物体の特徴に関するデータである。例えば、機械学習データは、物体の外観の特徴を示すデータであり、物体の３次元形状、輪郭、サイズ、色、又は模様などの種々の特徴が示されるようにしてもよい。なお、ここでの３次元形状は、表面の凹凸又は向きを意味する。
【００４９】
機械学習データには、物体ごとに、当該物体の特徴に関する特徴情報が格納される。また、同じ物体であったとしても、３次元形状、サイズ、輪郭、色、又は模様などの特徴が異なるため、種々の特徴を網羅するように機械学習データが用意されているようにしてもよい。
【００５０】
物体の一例としてベッドを説明すると、ベッドフレームは、パイプベッドや二段ベッドなどの種々のタイプが存在し、ベッドの３次元形状や輪郭は多数存在する。また、ベッドには、シングルサイズやダブルサイズなどの種々のタイプが存在し、ベッドのサイズも多数存在する。同様に、ベッドの色や模様も種々のタイプが存在するので、機械学習データには、公知のベッドを網羅するように、特徴情報が格納されている。
【００５１】
更に、同じベッドだったとしても、角度によって見え方が違うので、種々の角度からベッドを見た場合の特徴情報が機械学習データに格納されている。ここではベッドを例に挙げたが、ベッド以外の物体（例えば、家具、家電、被服、乗物、雑貨など）も同様に、種々のタイプの物体を種々のアングルから見た場合の特徴情報が機械学習データに格納されている。
【００５２】
本実施形態では、機械学習によって深度画像Ｇ２と法線画像Ｇ３が取得されるので、特徴情報としては、物体の深度と法線が格納されているものとする。このため、機械学習データの一例として、物体の深度に関する深度学習データと、物体の法線に関する法線学習データと、を説明する。
【００５３】
例えば、深度学習データと法線学習データは、ＲＧＢ−Ｄカメラで物体を撮影することによって生成される。ＲＧＢ−Ｄカメラは、現実空間ＲＳに配置された物体の深度を計測できるので、実測値である深度情報に基づいて、深度学習データが生成される。また、物体の深度は、３次元形状（物体表面の凹凸）を特定可能な情報なので、ＲＧＢ−Ｄカメラが計測した深度情報に基づいて、物体表面の法線方向を取得することもできる。このため、実測値である法線方向に基づいて、法線学習データも生成される。
【００５４】
なお、機械学習データ及び機械学習のアルゴリズム自体は、公知のデータ及びアルゴリズムを利用可能であり、例えば、「Predicting Depth, Surface Normals and Semantic Labels with a Common Multi-Scale Convolutional Architecture」（http://www.cs.nyu.edu/~deigen/dnl/，https://arxiv.org/pdf/1411.4734v4.pdf）に記載されたいわゆるＣＮＮ（Convolutional Neural Network）におけるデータ及びアルゴリズムを用いてもよい。また、機械学習データに格納される特徴情報は、物体の特徴を示せばよく、深度と法線に限られない。例えば、特徴情報は、物体の輪郭、サイズ、色、又は模様を示してもよい。
【００５５】
また例えば、データ記憶部１００は、観測空間ＯＳの様子を示す観測空間情報を記憶する。例えば、観測空間情報には、撮影物に関する情報と、観測視点ＯＶに関する観測視点パラメータと、が格納される。撮影物に関する情報は、撮影物に対応する点群であり、例えば、特徴点群Ｐの３次元座標と、メッシュ（撮影物を表す３次元オブジェクト）の頂点座標と、を含む。観測視点パラメータは、例えば、観測視点ＯＶの位置、向き、及び画角などである。なお、観測視点ＯＶの向きは、注視点の３次元座標で示されてもよいし、視線方向を示すベクトル情報で示されてもよい。
【００５６】
なお、データ記憶部１００が記憶するデータは、上記の例に限られない。例えば、データ記憶部１００は、撮影画像Ｇ１を時系列的に記憶してもよい。また例えば、データ記憶部１００は、撮影画像Ｇ１から抽出された特徴点群Ｐの２次元座標を時系列的に記憶してもよいし、特徴点群Ｐの位置変化を示すベクトル情報を時系列的に記憶してもよい。また例えば、ユーザに拡張現実を提供する場合には、データ記憶部１００は、合成対象となる物体を示す３次元オブジェクトに関する情報を記憶してもよい。合成対象となる物体とは、撮影画像Ｇ１とともに表示される架空の物体であり、例えば、架空の動物（人を模したキャラクタを含む）、家具、家電、被服、乗物、玩具、又は雑貨などである。合成対象となる物体は、観測空間ＯＳの中で動いてもよいし、特に動かずにその場で静止していてもよい。
【００５７】
［３−２．撮影画像取得部］
撮影画像取得部１０１は、制御部１１を主として実現される。撮影画像取得部１０１は、現実空間で移動可能な撮影部１８が撮影した撮影画像Ｇ１を取得する。
【００５８】
現実空間ＲＳで移動可能とは、撮影部１８の位置と向きを変更可能であることを意味し、例えば、撮影部１８を含む筐体を移動させたり、当該筐体の姿勢を変えたり、当該筐体を回転させたりすることが可能なことを意味する。別の言い方をすれば、撮影部１８の撮影範囲（視野）が変更可能であることを意味する。なお、撮影部１８は、常に移動し続けなければならないわけではなく、一時的に現在の場所に留まり、位置と向きが変わらないことがあってもよい。
【００５９】
本実施形態では、撮影部１８は、所定のフレームレートに基づいて、現実空間ＲＳを撮影するので、撮影画像取得部１０１は、撮影部１８が所定のフレームレートで撮影した撮影画像Ｇ１を取得する。
【００６０】
フレームレートは、単位時間あたりの処理回数であり、動画における単位時間あたりの静止画像数（コマ数）である。フレームレートは、固定値であってもよいし、ユーザが指定可能であってもよい。例えば、フレームレートをＮｆｐｓ（Ｎ：自然数、ｆｐｓ：Frames Per Second）とすると、各フレームの長さは１／Ｎ秒となり、撮影部１８は、処理単位であるフレームごとに現実空間ＲＳを撮影して撮影画像Ｇ１を生成し、撮影画像取得部１０１は、撮影部１８が生成した撮影画像Ｇ１を連続的に取得する。
【００６１】
本実施形態では、撮影画像取得部１０１は、撮影部１８により撮影された撮影画像Ｇ１をリアルタイムで取得する。即ち、撮影画像取得部１０１は、撮影部１８が撮影画像Ｇ１を生成してすぐに当該撮影画像Ｇ１を取得する。撮影画像取得部１０１は、撮影部１８が撮影画像Ｇ１を生成した時点から所定時間以内に、当該撮影画像Ｇ１を取得する。
【００６２】
なお、特にリアルタイムで撮影画像Ｇ１が取得されなくてもよく、この場合には、撮影画像取得部１０１は、データ記憶部１００に記憶された画像データ（即ち、撮影済みの静止画データ又は動画データ）を取得してもよい。また、画像処理装置１０以外のコンピュータ又は情報記憶媒体に画像データが記憶されている場合には、撮影画像取得部１０１は、当該コンピュータ又は情報記憶媒体から画像データを取得してもよい。
【００６３】
また、特にフレームレートが撮影部１８に設定されていなくてもよく、不定期的に撮影する場合には、撮影画像取得部１０１は、撮影部１８が撮影するたびに撮影画像Ｇ１を取得すればよい。例えば、ユーザが操作部１４から手動で撮影指示をしてもよく、この場合には、撮影部１８は、ユーザが撮影指示をするたびに撮影画像Ｇ１を生成し、撮影画像取得部１０１は、ユーザが撮影指示をするたびに生成される撮影画像Ｇ１を取得してもよい。
【００６４】
［３−３．観測空間情報取得部］
観測空間情報取得部１０２は、制御部１１を主として実現される。観測空間情報取得部１０２は、撮影画像Ｇ１における特徴点群Ｐの位置変化に基づいて、観測空間ＯＳにおける特徴点群Ｐの３次元座標を含む観測空間情報を取得する。
【００６５】
特徴点群Ｐの位置変化とは、画像上における位置変化であり、２次元座標の変化である。特徴点群Ｐの位置変化は、スクリーン座標系のベクトル情報（２次元ベクトル情報）で示される。即ち、観測空間情報取得部１０２は、特徴点群Ｐに含まれる個々の特徴点ごとに、当該特徴点の位置変化を示すベクトル情報を取得する。
【００６６】
観測空間情報取得部１０２が取得する観測空間情報は、観測空間ＯＳにおける特徴点群Ｐの分布を示す情報であり、いわゆる特徴点群Ｐの３Ｄマップである。この段階の観測空間情報は、図４を参照して説明したように、特徴点群Ｐの３次元座標が格納されているだけであり、撮影物の表面形状を表現することのできない疎な点群データとなる。
【００６７】
観測空間情報取得部１０２は、撮影画像Ｇ１から特徴点群Ｐを抽出し、抽出した特徴点群Ｐを追跡する。なお、特徴点は、撮影画像Ｇ１に撮影された撮影物の特徴を示す点であればよく、例えば、撮影物の輪郭の一部を示す点であってもよいし、撮影物内部の点（例えば、中心点）であってもよい。特徴点の抽出方法自体は、公知の特徴点抽出アルゴリズムに基づいて実行されてよく、例えば、輪郭抽出処理により検出した撮影物の輪郭上の点を特徴点としてもよいし、輪郭線同士が所定角度以上で交差する点を特徴点としてもよいし、画像内のエッジ部分を特徴点としてもよい。
【００６８】
他にも例えば、観測空間情報取得部１０２は、ＳＩＦＴ（Scale-Invariant Feature Transform：https://en.wikipedia.org/wiki/Scale-invariant_feature_transform）と呼ばれるアルゴリズムに基づいて特徴点を抽出してもよいし、ＯＲＢ（Oriented fast and Rotated Brief：http://www.willowgarage.com/sites/default/files/orb_final.pdf）と呼ばれるアルゴリズムに基づいて特徴点を抽出してもよい。これらのアルゴリズムによれば、撮影物の角やエッジ以外の部分が特徴点として抽出されることがある。
【００６９】
特徴点群Ｐの位置変化と３次元座標との関係は、数式形式、テーブル形式、又はプログラムコードの一部として、予めデータ記憶部１００に記憶されているものとする。特徴点群Ｐの位置変化は２次元的な情報なので、この関係は、２次元的な情報を３次元的な情報に変換するための変換ルールということもできる。観測空間情報取得部１０２は、特徴点群Ｐの位置変化に関連付けられた３次元座標を取得することになる。
【００７０】
本実施形態では、観測空間情報取得部１０２は、ＳＬＡＭ技術を利用して観測空間情報を取得する。特徴点は、画像上において、現実空間ＲＳにおいて撮影部１８が撮影物に対して移動した方向の逆方向に移動する。更に、遠くにある撮影物ほど画像上の特徴点の移動量は小さくなる。ＳＬＡＭ技術では、これらの傾向に基づいて三角測量の原理を利用し、特徴点群Ｐの３次元座標が計算される。即ち、観測空間情報取得部１０２は、特徴点群Ｐを追跡し、三角測量の原理を利用したＳＬＡＭ技術に基づいて、特徴点群Ｐの３次元座標を計算することになる。
【００７１】
また、観測空間情報取得部１０２は、特徴点群Ｐの位置変化に基づいて撮影部１８の位置を推定し、当該推定結果に基づいて観測空間ＯＳに観測視点ＯＶを設定する。例えば、観測空間情報取得部１０２は、撮影部１８の現在の位置と向きを推定し、推定結果を観測視点ＯＶの位置と向きに反映させる。
【００７２】
特徴点群Ｐの位置変化と、撮影部１８の位置及び向きと、の関係は、数式形式、テーブル形式、又はプログラムコードの一部として、予めデータ記憶部１００に記憶されているものとする。この関係は、特徴点群Ｐの変化を示す２次元ベクトル情報と、観測視点ＯＶの位置を示す３次元座標及び向きを示す３次元ベクトル情報と、の関係を示すものということもできる。観測空間情報取得部１０２は、特徴点群Ｐの位置変化に関連付けられた３次元座標及び３次元ベクトル情報を取得することになる。
【００７３】
観測空間情報取得部１０２が観測視点ＯＶを設定することで、現実空間ＲＳで撮影部１８が移動した場合に、観測視点ＯＶは、撮影部１８と同じように観測空間ＯＳで移動する。即ち、観測空間ＯＳにおける観測視点ＯＶの位置と向きは、現実空間ＲＳにおける撮影部１８の位置と向きと同じように変わる。撮影部１８の位置と向きの推定方法自体は、公知の視点推定方法を適用可能であり、例えば、ＳＬＡＭ技術を利用してもよい。
【００７４】
［３−４．機械学習部］
機械学習部１０３は、制御部１１を主として実現される。機械学習部１０３は、物体の特徴に関する機械学習データに基づいて、撮影画像Ｇ１に示された撮影物の特徴に関する付加情報を取得する。
【００７５】
付加情報は、撮影物の外観の特徴を示し、例えば、撮影物の３次元形状、分類（種類）、色、又は模様などの情報であってもよい。本実施形態では、付加情報の一例として、機械学習データに基づいて推定された撮影物の３次元形状に関する情報を説明する。撮影物の３次元形状に関する情報は、撮影物の表面の凹凸又は向きを３次元的に特定可能な情報であればよく、例えば、撮影物のメッシュに関する情報、又は、撮影物の法線に関する情報である。別の言い方をすれば、撮影物の３次元形状に関する情報は、撮影物の表面を示す面情報である。
【００７６】
撮影物のメッシュに関する情報は、観測空間ＯＳでメッシュを表現可能な情報であればよく、例えば、密な点群データであってもよいし、メッシュを構成する頂点座標そのものであってもよいし、当該頂点座標を特定可能な深度であってもよい。なお、ここでの「密」とは、撮影物の表面形状を表現可能な程度の密度（一定値以上の密度）を有することであり、例えば、コンピュータ・グラフィック技術における一般的なメッシュの頂点と同程度の密度を有することである。深度は、観測視点ＯＶから見た場合のメッシュの深度であり、観測視点ＯＶとメッシュの各頂点との距離である。一方、撮影物の法線に関する情報は、撮影物の表面の法線を特定可能な情報であればよく、例えば、法線のベクトル情報であってもよいし、観測空間ＯＳ内の所定平面（例えば、Ｘｗ−Ｙｗ平面）と法線と交差角であってもよい。
【００７７】
付加情報は、任意のデータ形式であってよいが、本実施形態では、撮影画像Ｇ１における撮影物の位置（スクリーン座標系における２次元座標）と、撮影物に関する特徴量と、が関連付けられた２次元特徴量情報である場合を説明する。更に、２次元特徴量情報の一例として、撮影物に関する特徴量が各画素に関連付けられた特徴量画像を説明する。特徴量画像の各画素の特徴量は、当該画素の特徴を表す数値であり、例えば、機械学習データに基づいて推定された撮影物の深度である。即ち、深度画像Ｇ２は、特徴量画像の一例である。なお、特徴量は、深度に限られない。例えば、特徴量画像の特徴量は、機械学習データに基づいて推定された撮影物の法線であってもよい。即ち、法線画像Ｇ３も、特徴量画像の一例である。
【００７８】
機械学習部１０３は、機械学習データに示された物体の中から、撮影物と類似する物体を特定する。類似とは、外観が類似することを意味し、例えば、形状の類似を意味しても良いし、形状と色の両方の類似を意味してもよい。機械学習部１０３は、機械学習データに示された物体と撮影物との類似度を計算し、類似度が閾値以上である場合に、物体と撮影物が類似すると判定する。類似度は、形状の違いや色の違いに基づいて算出されるようにすればよい。
【００７９】
機械学習データには、物体と特徴情報とが関連付けられているので、機械学習部１０３は、撮影物に類似する物体に関連付けられた特徴情報に基づいて、付加情報を取得する。例えば、機械学習部１０３は、撮影画像Ｇ１の中から類似する物体を複数特定した場合には、当該複数の物体にそれぞれ対応する複数の特徴情報を含む付加情報を取得する。
【００８０】
例えば、機械学習部１０３は、深度学習データに示された物体の中から、撮影物と類似する物体を特定する。そして、機械学習部１０３は、撮影画像Ｇ１における当該撮影物の画素に対し、当該特定した物体に関連付けられた深度を示す画素値を設定することによって、深度画像Ｇ２を生成する。即ち、機械学習部１０３は、撮影画像Ｇ１において撮影物が表れた領域ごとに、当該撮影物に類似する物体に関連付けられた深度を設定する。
【００８１】
また例えば、機械学習部１０３は、法線学習データに示された物体の中から、撮影物と類似する物体を特定する。そして、機械学習部１０３は、撮影画像Ｇ１における当該撮影物の画素に対し、当該特定した物体に関連付けられた法線のベクトル情報を示す画素値を設定することによって、法線画像Ｇ３を生成する。即ち、機械学習部１０３は、撮影画像Ｇ１において撮影物が表れた領域ごとに、当該撮影物に類似する物体に関連付けられたベクトル情報を設定する。
【００８２】
なお、観測空間情報取得部１０２と機械学習部１０３は、互いに異なるフレームで撮影された撮影画像Ｇ１に基づいて処理を実行してもよいが、本実施形態では、互いに同じフレームで撮影された撮影画像Ｇ１に基づいて処理を実行する場合を説明する。即ち、観測空間情報取得部１０２が観測空間情報を取得するために参照する撮影画像Ｇ１と、機械学習部１０３が付加情報を取得するために参照する撮影画像Ｇ１と、は同じであり、同じ視点（撮影部１８の位置と向き）で撮影されているものとする。
【００８３】
［３−５．統合部］
統合部１０４は、制御部１１を主として実現される。統合部１０４は、観測空間情報と付加情報とを統合する。統合とは、観測空間情報と付加情報に基づいて観測空間ＯＳの情報量を増加させることを意味する。例えば、特徴点群Ｐの３次元座標を示す観測空間ＯＳよりも点群の数を増やすこと、特徴点群Ｐの３次元座標に対し、３次元座標以外の情報（例えば、法線情報）を付加すること、又は、これらを組み合わせて点群を増やしつつ情報を付加することが統合に相当する。
【００８４】
統合部１０４は、観測空間情報と付加情報に基づいて新たな情報を生成してもよいし、新たな情報を生成するのではなく、観測空間情報に対して付加情報を追加してもよい。例えば、統合部１０４は、観測空間情報が示す点群の数を増加させて密な点群データとしたり、観測空間情報が示す特徴点群Ｐの３次元座標に対して法線情報などの情報を付加したり、これらを組み合わせて、観測空間情報を密な点群データにしつつ、法線情報などの情報を付加したりする。本実施形態では、付加情報が撮影物の３次元形状を示すので、統合部１０４は、特徴点群Ｐの３次元座標を示す観測空間情報（疎な点群データ）に対し、付加情報に基づく３次元形状に関する情報を追加する場合を説明する。
【００８５】
また、本実施形態では、付加情報として２次元特徴量情報が用いられるので、統合部１０４は、観測視点ＯＶから観測空間ＯＳを見た様子を示す２次元観測情報と、２次元特徴量情報と、の比較結果に基づいて処理を実行する。２次元観測情報は、３次元空間である観測空間ＯＳを２次元空間に投影した情報であり、３次元的に表現される情報を２次元的に変換した情報である。例えば、２次元観測情報には、２次元空間における特徴点群の位置（２次元座標）と、観測空間ＯＳにおける特徴点群の深度と、が関連付けられている。なお、特徴点群の２次元座標は、実数値で示されるようにすればよい。即ち、特徴点群の２次元座標は、整数だけで示される必要はなく、小数を含む数値で示されてもよい。
【００８６】
更に、本実施形態では、２次元特徴量情報として特徴量画像（例えば、深度画像Ｇ２と法線画像Ｇ３）が用いられるので、例えば、統合部１０４は、観測視点ＯＶから観測空間ＯＳを見た様子を示す観測空間画像と、特徴量画像と、の比較結果に基づいて処理を実行する場合を説明する。即ち、３次元的な情報である観測空間情報と、２次元的な情報である特徴量画像と、は次元が異なるので、統合部１０４は、これらの次元を合わせたうえで処理を実行する。なお、統合部１０４は、観測空間情報を２次元的な情報にするのではなく、後述する変形例のように、特徴量画像を観測空間ＯＳに投影して３次元的な情報にしたうえで処理を実行してもよい。
【００８７】
図９は、観測空間画像の一例を示す図である。図９では、図４の状態の観測空間ＯＳを観測視点ＯＶから見た様子を示しており、観測空間画像Ｇ４に表れた特徴点群Ｐを、模式的に一定の大きさの円で示しているが、実際には、個々の特徴点は、１つ又は数個程度の画素だけで表現されるようにしてもよい。また、先述したように、特徴点の位置は、画素の位置を示す整数値で表現されるのではなく、小数点以下を表現可能なｆｌｏａｔ値によって表現されてもよい。
【００８８】
統合部１０４は、特徴点群Ｐの３次元座標をスクリーン座標系の２次元座標に変換することによって、観測空間画像Ｇ４を生成する。このため、観測空間画像Ｇ４は、３次元の情報である観測空間ＯＳを２次元の情報に投影した２Ｄ投影図といえる。この変換処理自体は、公知の座標変換処理（ジオメトリ処理）を適用可能である。
【００８９】
例えば、観測空間画像Ｇ４は、観測空間ＯＳにおける特徴点群Ｐの深度を示す。即ち、観測空間画像Ｇ４の画素値は、深度画像Ｇ２と同様に深度を示す。なお、観測空間画像Ｇ４のうち、特徴点群Ｐが表れない部分については、特に画素値が設定されないようにしてもよいし、特徴点群Ｐが表れていないことを示す所定値が設定されてもよい。
【００９０】
観測空間画像Ｇ４は、撮影画像Ｇ１と同じサイズ（縦横の画素数が同じ）であり、カラー画像であってもよいし、グレースケール画像であってもよい。図９の例では、観測空間画像Ｇ４の画素値を模式的に網点の濃さで示しており、網点が濃いほど深度が低い（距離が短い）ことを示し、網点が薄いほど深度が高い（距離が長い）ことを示している。例えば、観測視点ＯＶに近い特徴点Ｐ５〜Ｐ７を示す画素の網点は濃くなり、観測視点ＯＶからそれほど離れていない特徴点Ｐ１１〜Ｐ１５を示す画素の網点は中程度の濃さであり、観測視点ＯＶから遠い特徴点Ｐ１〜Ｐ４，Ｐ８〜Ｐ１０，Ｐ１４の網点は薄くなっている。
【００９１】
統合部１０４は、観測空間画像Ｇ４において特徴点群Ｐが表れた画素を特定し、特徴量画像（例えば、深度画像Ｇ２と法線画像Ｇ３）の当該画素の画素値に基づいて処理を実行する。図９の例であれば、統合部１０４は、観測空間画像Ｇ４において特徴点Ｐ１〜Ｐ１５が表れた画素の２次元座標を特定し、特徴量画像の当該２次元座標の画素の画素値に基づいて処理を実行する。
【００９２】
図１０は、統合部１０４が実行する処理の一例を示す図である。図１０に示すように、まず、統合部１０４は、深度画像Ｇ２に基づいて、観測空間ＯＳにメッシュＭを設定する。例えば、統合部１０４は、深度画像Ｇ２が示す各画素の深度を観測空間ＯＳに投影し、観測視点ＯＶから当該深度だけ離れた場所が頂点座標となるように、仮のメッシュＭ（初期値としてのメッシュＭ）を設定する。即ち、統合部１０４は、深度画像Ｇ２の各画素の深度を３次元座標に変換し、当該３次元座標をメッシュＭの頂点座標とする。
【００９３】
なお、深度情報に基づいて３次元空間に点群を設定してメッシュに変換する方法自体は、公知の種々の手法を適用可能である。別の言い方をすれば、いわゆる２．５次元の情報である深度情報を３次元の点群データに変換する方法自体は、公知の種々の手法を適用可能である。例えば、「On Fast Surface Reconstruction Methods for Large and Noisy Point Clouds」（http://ias.informatik.tu-muenchen.de/_media/spezial/bib/marton09icra.pdf）に記載されている手法を利用して、観測空間ＯＳにメッシュＭが設定されてもよい。
【００９４】
図１０に示すように、深度画像Ｇ２から設定されるメッシュＭは、スケールを持たないので、実測値である特徴点群ＰとメッシュＭの位置が合うとは限らない。このため、統合部１０４は、観測空間画像Ｇ４と深度画像Ｇ２との比較結果に基づいて、メッシュＭのスケールを変更する。即ち、統合部１０４は、メッシュＭの中から特徴点群Ｐに対応する部分を特定し、当該特定した部分が特徴点群Ｐに近づくように、メッシュＭのスケールを変更する。
【００９５】
スケールは、メッシュＭの位置やサイズに影響するパラメータであり、スケールを変えると、メッシュＭを構成する点群の間隔が変化したり、メッシュＭと観測視点ＯＶとの距離が変化したりする。例えば、スケールを大きくすると、点群の間隔が全体的に広がってメッシュＭが大きくなったり、メッシュＭと観測視点ＯＶとの距離が長くなったりする。また例えば、スケールを小さくすると、点群の間隔が全体的に縮まってメッシュＭが小さくなったり、メッシュＭと観測視点ＯＶとの距離が短くなったりする。
【００９６】
例えば、統合部１０４は、特徴点群ＰとメッシュＭとのずれ具合を示す指標値が閾値よりも小さくなるように、スケールを計算する。この指標値は、特徴点群ＰとメッシュＭとの距離に基づいて算出される。例えば、指標値は、各特徴点とメッシュＭとの距離を引数とした数式によって計算されるようにすればよく、例えば、特徴点群ＰとメッシュＭとの距離の合計値であってもよいし、当該距離の平均値であってもよい。
【００９７】
例えば、統合部１０４は、スケールを変化させながら指標値を計算し、指標値が閾値未満であるかを判定する。統合部１０４は、指標値が閾値以上である場合はスケールを再度変化させて判定処理をやり直す。一方、統合部１０４は、指標値が閾値未満である場合には、現在のスケールに決定する。統合部１０４は、このようにスケールを決定することで、特徴点群ＰとメッシュＭとの全体的なずれ具合が小さくなるように、メッシュＭを変更する。
【００９８】
また、図１０に示すように、統合部１０４は、スケールを変更してメッシュＭを全体的に変更した後に、変更後のメッシュＭと特徴点群Ｐとに基づいて、メッシュＭを部分的に変更するようにしてもよい。例えば、統合部１０４は、特徴点ごとに、当該特徴点とメッシュＭとの距離が閾値以上であるかを判定する。距離が閾値以上であれば、統合部１０４は、当該特徴点に対応するメッシュＭを、当該特徴点に近づくように変更させる。メッシュＭの部分的な変更は、一部の頂点（対象となる特徴点付近の頂点）の３次元座標を変更することで実行される。
【００９９】
なお、統合部１０４が実行する処理は、上記の例に限られない。例えば、統合部１０４は、深度画像Ｇ２に基づいてメッシュＭを変更した後に、法線画像Ｇ３に基づいて、メッシュＭを再度変更してもよい。この場合、統合部１０４は、深度画像Ｇ２に基づいて変更したメッシュＭの法線情報を取得し、法線画像Ｇ３が示す法線情報と比較する。そして、統合部１０４は、両者の差が小さくなるように、メッシュＭを部分的に変更する。なお、統合部１０４は、深度画像Ｇ２と同様の処理により、観測空間画像Ｇ４と法線画像Ｇ３を比較することによって、メッシュＭと、法線画像Ｇ３が示す法線情報と、の対応関係を特定すればよい。
【０１００】
上記のように、本実施形態の統合部１０４は、２次元特徴量情報に基づいて、観測空間ＯＳに撮影物のメッシュＭを設定し、２次元観測情報と２次元特徴量情報との比較結果に基づいて、メッシュＭのスケールを変更する。例えば、統合部１０４は、付加情報に基づいて観測空間ＯＳにメッシュを設定し、観測空間情報に基づいて当該メッシュを変更する。
【０１０１】
例えば、統合部１０４は、２次元観測情報と２次元特徴量情報との比較結果に基づいて、メッシュＭのスケールを変更した後に、メッシュＭを部分的に変更する。また例えば、統合部１０４は、深度画像Ｇ２に基づいて、観測空間ＯＳに撮影物のメッシュＭを設定し、観測空間画像Ｇ４と深度画像Ｇ２との比較結果に基づいて、メッシュＭのスケールを変更する。更に、統合部１０４は、観測空間画像と特徴量画像（例えば、深度画像Ｇ２と法線画像Ｇ３）との比較結果に基づいて、メッシュＭのスケールを変更した後に、メッシュＭを部分的に変更する。
【０１０２】
なお、統合部１０４は、メッシュＭのうち、観測空間情報が示す特徴点群の３次元座標に対応するメッシュ部分を変更した後に、当該メッシュ部分の周囲のメッシュ部分を変更してもよい。周囲とは、所定距離以内の部分を意味する。例えば、統合部１０４は、特徴点群の３次元座標に合うように仮で設定したメッシュＭを変更した後に、各特徴点の間にあるメッシュ部分が滑らかになるように、当該メッシュ部分を変更する。滑らかとは、例えば、凹凸の変化が急激になりすぎないことであり、位置変化が閾値未満となることである。例えば、統合部１０４は、メッシュＭの凹凸の変化が閾値未満となるように、メッシュ部分を変更する。
【０１０３】
なお、メッシュ部分の変更方法自体は、公知の技術を利用してもよく、例えば、「As-Rigid-As-Possible Surface Modeling」（http://igl.ethz.ch/projects/ARAP/arap_web.pdf）に記載されたＡＲＡＰと呼ばれる手法が用いられてもよい。特徴点群に合わせたメッシュ部分の周囲のメッシュ部分を変更することで、各メッシュ部分と周囲とのつじつまを合わせることができ、より滑らかで自然なメッシュを設定することができる。
【０１０４】
ＡＲＡＰ手法をそのまま利用してもよいが、本実施形態では、ＡＲＡＰ手法を拡張し、メッシュ推定の信頼性に基づいてメッシュＭを変更する場合を説明する。
【０１０５】
例えば、メッシュＭは機械学習によって推定されるものなので、メッシュＭの中には、メッシュ推定の信頼性の高い部分もあれば信頼性の低い部分もある。このため、統合部１０４は、信頼性が高い部分はあまり変更せずに形状を保つようにして、信頼性が低い部分はある程度変更させて形状が変わることを許容するようにしてもよい。なお、信頼性とは、形状の推定精度の高さであり、被写体の表面形状とどの程度似ているかである。
【０１０６】
例えば、被写体が撮影部１８の方を向いている場合は、その表面が撮影画像Ｇ１にはっきりと写っているため、メッシュＭの推定精度が高いことが多い。一方、被写体が撮影部１８に対して横を向いている場合は、その表面が撮影画像Ｇ１にあまり写っていないため、メッシュＭの推定精度が低いことがある。このため、本実施形態では、メッシュＭのうち、観測視点ＯＶを向いている部分は信頼性が高く、観測視点ＯＶを向いていない部分（観測視点ＯＶに対して横を向いている部分）は信頼性が低いものとする。
【０１０７】
図１１及び図１２は、ＡＲＡＰ手法を拡張してメッシュＭを変更する処理の説明図である。図１１に示すように、本実施形態では、メッシュＭの頂点の法線ベクトルｎと、観測視点ＯＶ及び当該頂点を結ぶベクトルｄと、のなす角度θが１８０°に近いほど信頼性が高いものとし、角度θが９０°に近いほど信頼性が低いものとする。なお、本実施形態では、メッシュＭは観測視点ＯＶの反対方向を向くことはないものとし、原則として、角度θが９０°よりも小さいことはないものとする。
【０１０８】
例えば、統合部１０４は、観測視点ＯＶに対するメッシュ部分の向き（角度θ）に基づいて、当該メッシュ部分を変更する。即ち、統合部１０４は、観測視点ＯＶに対するメッシュ部分の向きに基づいて、当該メッシュ部分の変更量を決定する。メッシュ部分の変更量とは、形状をどのくらい変形させるかであり、頂点の３次元座標の変更量（移動量）である。
【０１０９】
なお、観測視点ＯＶに対する向きと、メッシュ部分の変更量と、の関係は、データ記憶部１００に予め記憶されているものとする。当該関係は、数式形式又はテーブル形式のデータとして記憶されていてもよいし、プログラムコードの一部として記述されていてもよい。統合部１０４は、メッシュＭの各メッシュ部分を、観測視点ＯＶに対する当該メッシュ部分の向きに関連付けられた変更量に基づいて変更する。
【０１１０】
例えば、統合部１０４は、メッシュ部分が観測視点ＯＶを向いているほど（角度θが１８０°に近いほど）当該メッシュ部分の変更量を小さくし、メッシュ部分が観測視点ＯＶを向いていないほど（角度θが９０°に近いほど）当該メッシュ部分の変更量を大きくする。別の言い方をすれば、統合部１０４は、メッシュ部分が観測視点ＯＶを向いているほど当該メッシュ部分の剛性を高くし、メッシュ部分が観測視点ＯＶを向いていないほど当該メッシュ部分の剛性を低くする。なお、メッシュ部分が観測視点ＯＶを向いていないとは、メッシュ部分が観測視点ＯＶに対して横を向いていることである。
【０１１１】
もし仮に、上記のようにメッシュＭの各部分の信頼性に応じて剛性を変えなかったとすると、図１２に示すように、メッシュＭが特徴点Ｐに引っ張られるように不自然に変形してしまうことがある。この点、信頼性の高い部分（観測視点ＯＶを向いている部分）の剛性を保った状態で変形させ、信頼性の高い部分の形状を維持することにより、上記のような不自然な変形を防止し、より自然なメッシュＭとすることができる。
【０１１２】
なお、以降の説明では、特徴点Ｐに対応するメッシュＭの頂点をｖｉと記載する。例えば、頂点ｖｉは、観測視点ＯＶ及び特徴点Ｐを結ぶ直線（図１１のベクトルｄの点線）と、メッシュＭと、の交点に最も近い頂点である。例えば、統合部１０４は、下記数式１−７に基づいて、メッシュＭを変更してもよい。例えば、数式１−７（特に数式３−４）は、上記説明した観測視点ＯＶに対する向きと、メッシュ部分の変更量と、の関係の一例である。
【０１１３】
まず、統合部１０４は、頂点ｖｉごとに、下記数式１の左辺に示すエネルギー関数の値を計算する。
【０１１４】
【数１】
0006560480.tif 000002
【０１１５】
数式１では、頂点ｖｉに対応する近隣をＣｉと記載し、当該近隣の各頂点をｖｊと記載する。なお、近隣とは、頂点ｖｉの周囲の頂点であり、ここでは、隣接頂点（one-ring neighborhood）とするが、２つ以上離れた頂点が近隣に相当してもよい。また、変更後の頂点をｖ’ｉと記載し、変更後の近隣をＣ’ｉと記載し、変更後の隣接頂点をｖ’ｊと記載する。
【０１１６】
数式１の右辺のＮ（ｖｉ）は、頂点ｖｉの近隣Ｃｉに含まれる隣接頂点ｖｊの集まりである。数式１の右辺のＲｉは、３×３の回転行列である。数式１に示すように、エネルギー関数Ｅ（Ｃ’ｉ）は、頂点ｖｉに対する隣接頂点ｖｊの相対的な位置変化に重み付け係数ωｉｊを乗じた値の合計値となる。頂点ｖｉに対して隣接頂点ｖｊが大きく移動したとしても、重み付け係数ωｉｊが小さければ、エネルギー関数Ｅ（Ｃ’ｉ）の値は小さくなる。逆に、頂点ｖｉに対して隣接頂点ｖｊがあまり移動しなかったとしても、重み付け係数ωｉｊが大きければ、エネルギー関数Ｅ（Ｃ’ｉ）の値が大きくなる。
【０１１７】
重み付け係数ωｉｊは、頂点ｖｉと隣接頂点ｖｊとの組み合わせによって値が決定される。例えば、統合部１０４は、下記の数式２に基づいて、重み付け係数ωｉｊを計算する。数式２の右辺のαｉｊ，βｉｊは、メッシュＭのエッジ（ｉ，ｊ）の反対側の角度である。
【０１１８】
【数２】
0006560480.tif 000003
【０１１９】
例えば、統合部１０４は、下記数式３に基づいて、頂点ｖｉごとに計算したエネルギー関数Ｅ（Ｃ’ｉ）の合計値を計算する。
【０１２０】
【数３】
0006560480.tif 000004
【０１２１】
数式３では、変更後のメッシュＭをＭ’と記載する。数式３の右辺に示すように、統合部１０４は、頂点ｖｉごとに、エネルギー関数Ｅ（Ｃ’ｉ）の値に重み付け係数ωｉを乗じた値を計算し、その合計値を計算する。重み付け係数ωｉは、例えば、シグモイド関数などを利用して決定されるようにすればよい。例えば、統合部１０４は、下記数式４に基づいて重み付け係数ωｉを計算する。
【０１２２】
【数４】
0006560480.tif 000005
【０１２３】
数式４の右辺のａとｂは係数であり、固定値である。例えば、角度θが１８０°に近いほど重み付け係数ωｉは大きくなり、メッシュ部分の変更がエネルギー関数の合計値（数式３の左辺）に与える影響が大きくなる。このため、メッシュ部分を少し変更しただけでエネルギー関数の合計値が大きく増加することになる。一方、角度θが９０°に近いほど重み付け係数ωｉは小さくなり、メッシュ部分の変更がエネルギー関数の合計値に与える影響が小さくなる。このため、メッシュ部分を大きく変更したとしてもエネルギー関数の合計値はそれほど増加しないことになる。このように重み付け係数ωｉを設定することで、メッシュＭの信頼性に応じて剛性を変化させることができる。
【０１２４】
なお、統合部１０４は、数式３により計算されるエネルギー関数Ｅ（Ｃ’ｉ）の合計値が小さくなるようにメッシュＭを変更してもよいが、統合部１０４は、更に曲げ係数を考慮してもよい。曲げ係数は、メッシュＭ表面をどの程度曲げたか（変形させたか）を示す数値であり、例えば、「Z. Levi and C. Gotsman. Smooth rotation enhanced as-rigid-as-possible mesh animation. IEEE Transactions on Visualizationand Computer Graphics, 21:264-277, 2015.」に記載されているように、下記数式５に基づいて計算される。
【０１２５】
【数５】
0006560480.tif 000006
【０１２６】
数式５の右辺のαは重み係数であり、Ａはスケールを変えてもその特徴が変化しない表面を意味する。数式１の右辺のＲｉ，Ｒｊは、３×３の回転行列である。例えば、統合部１０４は、頂点ｖｉと隣接頂点ｖｊとの組み合わせごとに曲げ係数Ｂｉｊを計算し、下記の数式６に基づいて、エネルギー関数Ｅ（Ｃ’ｉ）の合計値に反映させてもよい。
【０１２７】
【数６】
0006560480.tif 000007
【０１２８】
なお、撮影画像Ｇ１は、所定フレームレートのもとで繰り返し取得され、統合部１０４は、上記説明した処理を繰り返し実行するので、統合部１０４は、過去に計算したスケールを考慮し、下記の数式７に基づいて、時刻ｔにおける観測空間ＯＳの絶対的なスケールｓｗｔを計算してもよい。なお、数式７の右辺のｓｃｔは、メッシュＭに設定されたスケールである。
【０１２９】
【数７】
0006560480.tif 000008
【０１３０】
［４．本実施形態において実行される処理］
図１３は、画像処理装置１０において実行される処理の一例を示すフロー図である。図１３に示す処理は、制御部１１が、記憶部１２に記憶されたプログラムに従って動作することによって実行される。図１３に示す処理は、図８に示す機能ブロックにより実行される処理の一例であり、撮影部１８が撮影するフレームごとに実行されるものとする。
【０１３１】
なお、図１３に示す処理が実行されるにあたり、後述するマッピング処理の初期化が完了済みであり、観測空間ＯＳ（特徴点群Ｐの３Ｄマップ）が生成済みであるものとする。即ち、制御部１１は、撮影画像Ｇ１から抽出した特徴点群Ｐを追跡し、ＳＬＡＭ技術を利用して特徴点群Ｐの３次元座標と観測視点ＯＶを観測空間ＯＳに設定済みであるものとする。
【０１３２】
図１３に示すように、まず、制御部１１は、撮影画像取得処理を実行する（Ｓ１）。Ｓ１においては、制御部１１は、撮影部１８が現在のフレームで生成した撮影画像Ｇ１を取得する。なお、制御部１１は、時系列的に撮影画像Ｇ１を記憶部１２に記録してもよい。即ち、制御部１１は、撮影画像Ｇ１の履歴を記憶部１２に記録してもよい。
【０１３３】
制御部１１は、Ｓ１で取得した撮影画像Ｇ１に基づいて、２Ｄ追跡処理を実行する（Ｓ２）。２Ｄ追跡処理は、特徴点群Ｐの画像上での位置変化を追跡するための処理である。Ｓ２においては、まず、制御部１１は、Ｓ１で取得した撮影画像Ｇ１から特徴点群Ｐを取得する。そして、制御部１１は、当該特徴点群Ｐと、直近のフレーム（１つ前のフレーム）で取得された撮影画像Ｇ１の特徴点群Ｐと、の対応関係を特定し、特徴点群Ｐの２次元座標の差を示すベクトル情報を取得する。なお、制御部１１は、Ｓ２で抽出した特徴点群Ｐの２次元座標を撮影画像Ｇ１と関連付けて記憶部１２に記録する。また、制御部１１は、時系列的に特徴点群Ｐのベクトル情報を記憶部１２に記録してもよい。
【０１３４】
制御部１１は、マッピング処理を開始するかを判定する（Ｓ３）。マッピング処理は、観測空間情報（特徴点群Ｐの３次元座標）を更新するための処理である。マッピング処理は、毎フレーム実行されてもよいし、複数フレームに１回実行されてもよい。マッピング処理が複数フレームに１回実行される場合には、マッピング処理の実行間隔は、固定値であってもよいし、可変値であってもよい。
【０１３５】
なお、ここでは、前回のマッピング処理が終了した次のフレームで、マッピング処理が再び開始される場合を説明する。このため、Ｓ３では、前回のマッピング処理が終了したかを判定し、前回のマッピング処理が終了していればマッピング処理を開始すると判定し、前回のマッピング処理が終了していなければマッピング処理を開始すると判定しない。
【０１３６】
マッピング処理を開始すると判定された場合（Ｓ３；Ｙ）、制御部１１は、Ｓ１で取得した撮影画像Ｇ１に基づいて、マッピング処理を開始する（Ｓ４）。Ｓ４で開始されたマッピング処理は、図１３に示すメインルーチン処理と並列して（又はバックグラウンドで）実行される。
【０１３７】
図１４は、マッピング処理の一例を示すフロー図である。図１４に示すように、制御部１１は、Ｓ２で実行された２Ｄ追跡処理の実行結果に基づいて、特徴点群Ｐの３次元座標を計算する（Ｓ４１）。Ｓ４１においては、制御部１１は、前回のマッピング処理からの特徴点群Ｐの移動量の累積を計算し、ＳＬＡＭ技術を利用して特徴点群Ｐの３次元座標を計算する。
【０１３８】
制御部１１は、Ｓ２で実行された２Ｄ追跡処理の実行結果に基づいて、撮影部１８の位置を推定する（Ｓ４２）。Ｓ４２においては、制御部１１は、制御部１１は、前回のマッピング処理からの特徴点群Ｐの移動量の累積を計算し、ＳＬＡＭ技術を利用して撮影部１８の位置と向きを計算する。
【０１３９】
制御部１１は、Ｓ４１とＳ４２の計算結果に基づいて、観測空間情報を更新する（Ｓ４３）。Ｓ４３においては、制御部１１は、Ｓ４１で計算した特徴点群Ｐの３次元座標と、Ｓ４２で計算した位置と向きと、に基づいて、特徴点群Ｐの３次元座標と観測視点パラメータとを更新する。
【０１４０】
図１３に戻り、マッピング処理を開始すると判定されない場合（Ｓ３；Ｎ）、又は、Ｓ４においてマッピング処理が開始された場合、制御部１１は、復元処理を開始するかを判定する（Ｓ５）。復元処理は、機械学習によって撮影物の３次元形状を推定する処理であり、本実施形態では、深度画像Ｇ２と法線画像Ｇ３を取得する処理である。復元処理は、毎フレーム実行されてもよいし、複数フレームに１回実行されてもよい。復元処理が複数フレームに１回実行される場合には、復元処理の実行間隔は、固定値であってもよいし、可変値であってもよい。
【０１４１】
なお、復元処理は、マッピング処理よりも計算量が多い（負荷が高い）ことがあるので、この場合には、復元処理の実行間隔は、マッピング処理よりも長くしてもよい。例えば、マッピング処理を２フレームに１回実行し、復元処理を３フレームに１回実行するようにしてもよい。
【０１４２】
また、ここでは、前回の復元処理が終了した次のフレームで復元処理が再び開始される場合を説明する。このため、Ｓ５では、前回の復元処理が終了したかを判定し、前回の復元処理が終了していれば復元処理を開始すると判定し、前回の復元処理が終了していなければ復元処理を開始すると判定しない。
【０１４３】
復元処理を開始すると判定された場合（Ｓ５；Ｙ）、制御部１１は、実行中のマッピング処理と同じ撮影画像Ｇ１に基づいて、復元処理を開始する（Ｓ６）。Ｓ６で開始された復元処理は、図１３に示すメインルーチン処理と並列して（又はバックグラウンドで）実行される。
【０１４４】
図１５は、復元処理の一例を示すフロー図である。図１５に示すように、制御部１１は、撮影画像Ｇ１と深度学習データとに基づいて、深度画像Ｇ２を取得する（Ｓ６１）。Ｓ６１においては、制御部１１は、撮影画像Ｇ１の中から深度学習データが示す物体と類似する部分を特定する。そして、制御部１１は、当該部分の各画素の画素値として、深度学習データが示す当該物体の深度を設定することによって、深度画像Ｇ２を生成する。
【０１４５】
制御部１１は、撮影画像Ｇ１と法線学習データとに基づいて、法線画像Ｇ３を取得する（Ｓ６２）。Ｓ６２においては、制御部１１は、撮影画像Ｇ１の中から法線学習データが示す物体と類似する部分を特定する。そして、制御部１１は、当該部分の各画素の画素値として、法線学習データが示す当該物体の法線のベクトル情報を設定することによって、法線画像Ｇ３を生成する。
【０１４６】
図１３に戻り、復元処理を開始すると判定されない場合（Ｓ５；Ｎ）、又は、Ｓ６において復元処理が開始された場合、制御部１１は、統合処理を開始するか判定する（Ｓ７）。統合処理は、観測空間ＯＳに撮影物のメッシュを設定する処理である。統合処理は、毎フレーム実行されてもよいし、複数フレームに１回実行されてもよい。統合処理が複数フレームに１回実行される場合には、統合処理の実行間隔は、固定値であってもよいし、可変値であってもよい。
【０１４７】
なお、ここでは、マッピング処理と復元処理が両方とも完了した場合に統合処理が開始される場合を説明する。このため、Ｓ７では、実行中のマッピング処理と復元処理が終了したかを判定し、両方とも終了していれば統合処理を開始すると判定し、何れか一方が終了していなければ統合処理を開始すると判定しない。
【０１４８】
統合処理を開始すると判定された場合（Ｓ７；Ｙ）、制御部１１は、統合処理を開始する（Ｓ８）。Ｓ８で開始された統合処理は、図１３に示すメインルーチン処理と並列して（又はバックグラウンドで）実行される。
【０１４９】
図１６は、統合処理の一例を示すフロー図である。図１６に示すように、制御部１１は、観測視点ＯＶから観測空間ＯＳ内の特徴点群Ｐを見た様子を示す観測空間画像Ｇ４を生成する（Ｓ８１）。観測空間画像Ｇ４は、深度画像Ｇ２と同様の画像であり、各画素は特徴点群Ｐの深度を示す。Ｓ８１においては、制御部１１は、観測視点ＯＶと特徴点群Ｐとの距離を計算することによって、観測空間画像Ｇ４を生成する。
【０１５０】
制御部１１は、Ｓ８１で生成した観測空間画像Ｇ４に基づいて、深度画像Ｇ２が示すメッシュを補正する（Ｓ８２）。Ｓ８２においては、制御部１１は、観測空間画像Ｇ４と深度画像Ｇ２とに基づいて、特徴点群Ｐに対応するメッシュの位置を特定し、これらの深度の差が小さくなるように、メッシュのスケールを補正する。更に、制御部１１は、特徴点とメッシュとの距離が閾値以上となっている部分ついては、当該距離が閾値未満となるように、メッシュを局所的に補正する。また、制御部１１は、特徴点群Ｐと一致させたメッシュ部分の周囲のメッシュ部分が滑らかになるように補正する。更に、制御部１１は、観測視点ＯＶに対するメッシュ部分の向きに基づいて、当該メッシュ部分を変更させてもよい。
【０１５１】
制御部１１は、法線画像Ｇ３に基づいて、Ｓ８２で補正したメッシュを再度補正する（Ｓ８３）。Ｓ８３においては、制御部１１は、観測空間画像Ｇ４と深度画像Ｇ２とに基づいて、特徴点群Ｐに対応する法線方向を特定し、Ｓ８２で補正したメッシュの法線（メッシュのうち特徴点群Ｐに対応する部分の法線）と、法線画像Ｇ３が示す法線と、の差が小さくなるように、メッシュを補正する。
【０１５２】
制御部１１は、Ｓ８３で補正したメッシュに基づいて、観測空間ＯＳを更新する（Ｓ８４）。Ｓ８４においては、制御部１１は、Ｓ８３で補正したメッシュの頂点座標を観測空間情報に格納することになる。これにより、マッピング処理では疎な点群データだった観測空間情報が、統合処理により密な点群データとなる。
【０１５３】
図１３に戻り、統合処理を開始すると判定されない場合（Ｓ７；Ｎ）、又は、Ｓ８において統合処理が開始された場合、制御部１１は、本処理は終了する。以降、フレームが訪れるたびに、図１３の処理が再度実行される。
【０１５４】
なお、リアルタイムで拡張現実を提供する場合には、本処理を終了する前に、制御部１１は、架空の物体を示す３次元オブジェクトを観測空間ＯＳに配置し、観測視点ＯＶから観測空間ＯＳを見た様子を示す仮想画像を生成し、撮影画像Ｇ１と合成して表示部１５に表示させるようにしてもよい。その際に合成する撮影画像Ｇ１としては、本フレームのＳ１で取得されたものであってもよいし、マッピング処理と復元処理で参照された撮影画像Ｇ１であってもよい。更に、拡張現実では、ボールや乗物などの移動体を示すオブジェクトが合成されてもよい。この場合、観測空間ＯＳのメッシュと、移動体を示すオブジェクトと、の当たり判定が実行され、移動体が跳ね返ったり、壁をよじ登ったりするようにしてもよい。
【０１５５】
また、先述したように、マッピング処理と復元処理は、毎フレーム実行する必要はなく、複数フレームに１回実行してもよい。更に、復元処理は、マッピング処理よりも計算量が多いことがあるので、復元処理の実行間隔は、マッピング処理の実行間隔よりも長くてもよい。
【０１５６】
図１７は、各処理の実行間隔の一例を示す図である。図１７に示す例では、撮影画像取得処理（Ｓ１）と２Ｄ追跡処理（Ｓ２）とは、毎フレーム実行される。一方、マッピング処理（図１４）は、ｎ（ｎは２以上の整数）フレームに１回実行され、復元処理は、ｍ（ｍは２以上の整数であり、ｍ＞ｎ）フレームに１回実行される。統合処理は、復元処理の完了後に実行されることになる。図１７に示すように、マッピング処理と復元処理で参照される撮影画像Ｇ１は、同じフレームで取得された撮影画像Ｇ１となっており、同じ視点から得られた撮影画像Ｇ１に基づいてマッピング処理と復元処理が実行されるようになっている。
【０１５７】
以上説明した画像処理装置１０によれば、撮影部１８が撮影した撮影画像Ｇ１と、機械学習によって得られた付加情報と、を統合することによって、観測空間ＯＳの情報量を高めるための構成を簡易化することができる。例えば、深度カメラなどの特殊なセンサを利用しなくても、観測空間ＯＳに、特徴点群Ｐの３次元座標以外の情報を付加することができる。このため、特殊なセンサを搭載していないスマートフォンなどの端末であったとしても、精度の高い観測空間ＯＳを生成することができる。
【０１５８】
また、画像処理装置１０は、付加情報として特徴量画像（例えば、深度画像Ｇ２又は法線画像Ｇ３）を利用する場合に、観測空間画像Ｇ４と特徴量画像を比較することによって、同じ視点から見た画像同士を比較することができる。即ち、従来技術では、２つのカメラが並列して並ぶＲＧＢ−Ｄカメラが用いられおり、視点位置の違いにより観測空間ＯＳに誤差が生じていたが、画像処理装置１０は、同じ視点が用いられるので誤差の発生を防止し、観測空間ＯＳの再現度を高めることができる。
【０１５９】
また、画像処理装置１０は、観測空間画像Ｇ４と深度画像Ｇ２の比較結果に基づいてメッシュのスケールを変更することによって、機械学習で得られたメッシュを全体的に実測値に近づけることができるので、簡易な処理によって、観測空間ＯＳの再現度を高めることができる。例えば、メッシュの頂点を１個１個個別に変更するのではなく、スケールの変更によって全体的にメッシュを実測値に近づけるので、処理の簡略化（計算量の低減）を実現し、画像処理装置１０の処理負荷を軽減しつつ、処理速度の向上を図ることができる。
【０１６０】
また、メッシュのスケールを変更した後に、メッシュを部分的に調整するので、観測空間ＯＳの再現度をより効果的に高めることができる。この場合も、特徴点群Ｐ全てについて個別にメッシュ部分を変更するのではなく、違いの大きな部分だけを対象とすることによって、観測空間ＯＳの再現度を高めるための処理の簡略化を実現できるので、より効果的に、画像処理装置１０の処理負荷を軽減し、処理速度の向上を図ることができる。
【０１６１】
また、付加情報として、撮影物の３次元形状を用いることで、現実空間ＲＳの３次元形状を観測空間ＯＳで再現することができ、現実空間ＲＳの３次元形状を観測空間ＯＳで詳細に再現するための構成を簡略化することができる。
【０１６２】
また、付加情報として、撮影物のメッシュに関する情報を用いることで、観測空間ＯＳに撮影物を表すメッシュを配置することができ、現実空間ＲＳの物体を示すメッシュを観測空間ＯＳに配置するための構成を簡略化することができる。また、観測空間ＯＳは、観測データに基づいているので、疎ではあるが正確性が高く、付加情報は、機械学習を用いた予測値なので、正解性が低いことがあるところ、疎ではあるが正確な観測空間ＯＳの特徴点群と、密ではあるが正確さが低い付加情報のメッシュと、を統合することで、正確性を担保しつつ、密なデータを取得することができるようになる。
【０１６３】
また、付加情報として撮影物のメッシュに関する情報を用いる場合に、実測値である観測空間情報に基づいて当該メッシュを変更することにより、観測空間ＯＳの再現度を効果的に高めることができる。
【０１６４】
また、特徴点群の３次元座標に対応するメッシュ部分を変更した後に、当該メッシュ部分の周囲のメッシュ部分を変更することで、メッシュの表現形状を滑らかにすることができる。即ち、特徴点間を保管するデータとしてのデータ精度の向上を図ることができ、観測空間ＯＳの再現度を効果的に高めることができる。
【０１６５】
また、観測視点ＯＶに対する各メッシュ部分の向きに基づいて、当該メッシュ部分を変更することで、信頼度の高いメッシュ部分は、なるべくその形状を保ったまま統合させ、信頼度の低いメッシュ部分は、その形状を変更したうえで統合させることができるので、観測空間ＯＳの再現度を効果的に高めることができる。
【０１６６】
また、付加情報として、撮影物の法線に関する情報を用いることで、観測空間ＯＳに法線を設定し、撮影物の３次元形状を表すことができ、現実空間ＲＳの物体の表面の向きを観測空間ＯＳで再現するための構成を簡略化することができる。
【０１６７】
また、観測空間情報と付加情報を同じフレームの撮影画像Ｇ１から生成することで、同じ視点の画像で互いの対応関係を特定することができ、先述したような視点位置の違いによる誤差の発生を防止し、観測空間ＯＳの精度をより効果的に高めることができる。
【０１６８】
［５．変形例］
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【０１６９】
（１）例えば、実施形態では、付加情報の一例として、撮影物の深度又は法線を説明したが、付加情報は、撮影物の分類に関する情報であってもよい。即ち、付加情報は、撮影画像Ｇ１の各画素を撮影物ごとにグループ分けした情報であってもよい。本変形例では、実施形態と同様、特徴量画像が用いられる場合を説明し、撮影画像Ｇ１の各画素を分類した分類画像を特徴量画像の一例として説明する。
【０１７０】
図１８は、分類画像の一例を示す図である。図１８に示すように、分類画像Ｇ５は、撮影画像Ｇ１と同じサイズ（縦横の画素数が同じ）であり、撮影物ごとに、画像内の領域をグループ分けした画像である。分類画像Ｇ５は、撮影物ごとに画素値が割り当てられている。即ち、分類画像Ｇ５は、各画素に対し、撮影物を識別する情報が付与されたラベル画像である。画素値が同じ画素は、同じ撮影物を示していることになる。
【０１７１】
分類画像Ｇ５は、カラー画像であってもよいし、グレースケール画像であってもよい。図１８の例では、分類画像Ｇ５の画素値を模式的に網点の濃さで示しており、網点の濃さが同じ画素は、同じ物体を示していることになる。このため、ベッドを示す画素は第１の画素値となる。同様に、壁を示す画素は第２の画素値となり、床を示す画素は第３の画素値となり、絵画を示す画素は第４の画素値となる。
【０１７２】
例えば、統合部１０４は、分類画像Ｇ５に基づいて、観測空間情報が示す特徴点群Ｐをグループ分けする。例えば、統合部１０４は、実施形態で説明した方法と同様に、観測空間画像Ｇ４を生成し、特徴点群Ｐに対応する分類画像Ｇ５内の画素を特定する。そして、統合部１０４は、分類画像Ｇ５における各画素の画素値を特定し、同じ値を示している特徴点同士を同じグループとして分類する。即ち、統合部１０４は、特徴点群Ｐの３次元座標に対し、グループを識別する情報を付与する。
【０１７３】
変形例（１）によれば、付加情報として、撮影物の分類に関する情報を用いることで、観測空間ＯＳの点群をグループ分けすることができる。
【０１７４】
（２）また例えば、実施形態では、深度画像Ｇ２に基づいて変更したメッシュＭを微調整するために法線画像Ｇ３が用いられる場合を説明したが、法線画像Ｇ３の利用方法は上記の例に限られない。例えば、統合部１０４は、特徴点群Ｐの３次元座標に法線情報を付加してもよい。
【０１７５】
図１９は、統合部１０４が実行する処理の一例を示す図である。図１９に示すように、統合部１０４は、各特徴点に対し、当該特徴点に対応する法線情報を付加する。実施形態で説明したように、統合部１０４は、観測空間画像Ｇ４と法線画像Ｇ３とを比較することによって、特徴点と法線情報との対応関係を特定すればよい。例えば、統合部１０４は、観測視点ＯＶと特徴点とを結ぶ直線上にある法線情報（即ち、画像上で同じ画素にある法線情報）を当該特徴点にマッピングすることによって、観測空間ＯＳの情報量を増やしてもよい。
【０１７６】
この場合、観測空間ＯＳの点群の数は増えないが、法線情報が追加されるので、統合部１０４は、撮影物の表面形状を示すメッシュを生成することができるようになる。更に、実施形態で説明した方法と組み合わせて、統合部１０４は、観測空間ＯＳを密な点群データとしつつ、特徴点群Ｐに対して法線情報を付加してもよい。このようにすれば、観測空間ＯＳの情報量を更に増加させることができる。
【０１７７】
また例えば、深度画像Ｇ２の画素値が高いほど深度が高い場合を説明したが、画素値と深度の関係は逆でもよく、画素値が低いほど深度が高いことを示してもよい。同様に、法線画像Ｇ３の画素値と法線とは一定の法則のもとでこれらの間に相関関係があればよい。
【０１７８】
また例えば、実施形態では、３次元的な情報である観測空間情報を２次元的な情報である観測空間画像Ｇ４に変換したうえで、２次元的な情報である深度画像Ｇ２及び法線画像Ｇ３と比較する場合を説明したが、深度画像Ｇ２及び法線画像Ｇ３を３次元的な情報に変換したうえで、観測空間情報と比較してもよい。即ち、統合部１０４は、観測空間情報と付加情報との次元を揃えたうえで、互いの対応関係を特定し、これらを統合する処理を実行すればよい。
【０１７９】
また例えば、付加情報が画像形式の情報である場合を説明したが、付加情報は任意のデータ形式であればよく、画像形式を取らない数値群データであってもよいし表形式データであってもよく、種々のデータ形式であってよい。付加情報として画像形式以外の情報を利用する場合には、特に画像同士を比較する処理は実行されなくてよい。更に、機械学習データにメッシュの頂点座標を学習させておき、付加情報を、画像のような２次元的な情報ではなく、３次元的な情報としてもよい。この場合には、観測空間情報との次元を合わせる処理が実行されなくてもよい。
【０１８０】
また例えば、室内に家具などが配置されている場合を説明したが、特に室内に家具などが配置されていなくてもよい。また例えば、現実空間ＲＳの一例として室内を説明したが、現実空間ＲＳは屋外であってもよく、例えば、路上、駐車場、イベント会場などであってもよい。また例えば、画像処理装置１０が再現した観測空間ＯＳを拡張現実に利用する場合を説明したが、任意の場面で観測空間ＯＳを利用可能であり、ロボットの移動制御に用いてもよい。
【０１８１】
（３）また例えば、画像処理システムが１台の画像処理装置１０によって実現される場合を説明したが、画像処理システムは、複数台のコンピュータを含んでもよい。
【０１８２】
図２０は、変形例における画像処理システムの一例を示す図である。図２０に示すように、変形例の画像処理システムＳは、画像処理装置１０とサーバ２０とを含む。画像処理装置１０とサーバ２０とは、インターネットなどのネットワークに接続されている。
【０１８３】
サーバ２０は、サーバコンピュータであり、例えば、制御部２１、記憶部２２、及び通信部２３を含む。制御部２１、記憶部２２、及び通信部２３のハードウェア構成は、それぞれ制御部１１、記憶部１２、及び通信部１３と同様であるので、説明を省略する。
【０１８４】
実施形態及び上記変形例（１）−（２）で説明した処理は、画像処理装置１０とサーバ２０とで分担されるようにしてもよい。例えば、画像処理装置１０において、撮影画像取得部１０１及び観測空間情報取得部１０２が実現され、サーバ２０において、データ記憶部１００、機械学習部１０３、及び統合部１０４が実現されてもよい。この場合、データ記憶部１００は記憶部２２を主として実現され、機械学習部１０３及び統合部１０４は制御部２１を主として実現される。サーバ２０は、画像処理装置１０から撮影画像Ｇ１を受信する。そして、実施形態で説明した方法と同様にして、機械学習部１０３は付加情報を取得し、統合部１０４は統合処理を実行する。そして、画像処理装置１０は、サーバ２０から統合部１０４による統合処理の結果を受信すればよい。
【０１８５】
また例えば、画像処理装置１０において、撮影画像取得部１０１、観測空間情報取得部１０２、及び機械学習部１０３が実現され、サーバ２０において統合部１０４が実現されてもよい。また例えば、画像処理装置１０において、撮影画像取得部１０１、観測空間情報取得部１０２、及び統合部１０４が実現され、サーバ２０において機械学習部１０３が実現されてもよい。また例えば、画像処理装置１０において、撮影画像取得部１０１が実現され、サーバ２０において、観測空間情報取得部１０２、機械学習部１０３、及び統合部１０４が実現されてもよい。
【０１８６】
また例えば、サーバ２０において、データ記憶部１００、撮影画像取得部１０１、観測空間情報取得部１０２、機械学習部１０３、及び統合部１０４の全ての機能が実現されてもよい。この場合、サーバ２０は、画像処理装置１０に対し、観測空間情報を送信してもよい。
【０１８７】
なお、図２０では、画像処理装置１０とサーバ２０を１台ずつ示しており、画像処理システムＳに２台のコンピュータが含まれている場合を説明したが、画像処理システムＳは、３台以上のコンピュータが含まれていてもよい。この場合、３台以上のコンピュータによって各処理が分担されてもよい。また例えば、画像処理装置１０に撮影部１８が含まれている必要はなく、撮影画像取得部１０１は、画像処理装置１０に含まれない撮影部１８で撮影された撮影画像Ｇ１を取得してもよい。更に、データ記憶部１００は、画像処理システムの外部にあるサーバコンピュータ等で実現されてもよい。
【図１】
0006560480.tif 000009
【図２】
0006560480.tif 000010
【図３】
0006560480.tif 000011
【図４】
0006560480.tif 000012
【図５】
0006560480.tif 000013
【図６】
0006560480.tif 000014
【図７】
0006560480.tif 000015
【図８】
0006560480.tif 000016
【図９】
0006560480.tif 000017
【図１０】
0006560480.tif 000018
【図１１】
0006560480.tif 000019
【図１２】
0006560480.tif 000020
【図１３】
0006560480.tif 000021
【図１４】
0006560480.tif 000022
【図１５】
0006560480.tif 000023
【図１６】
0006560480.tif 000024
【図１７】
0006560480.tif 000025
【図１８】
0006560480.tif 000026
【図１９】
0006560480.tif 000027
【図２０】
0006560480.tif 000028