特許第6560480号(P6560480)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 楽天株式会社の特許一覧

特許6560480画像処理システム、画像処理方法、及びプログラム
<>
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000009
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000010
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000011
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000012
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000013
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000014
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000015
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000016
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000017
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000018
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000019
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000020
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000021
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000022
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000023
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000024
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000025
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000026
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000027
  • 特許6560480-画像処理システム、画像処理方法、及びプログラム 図000028
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6560480
(24)【登録日】2019年7月26日
(45)【発行日】2019年8月14日
(54)【発明の名称】画像処理システム、画像処理方法、及びプログラム
(51)【国際特許分類】
   G06T 7/579 20170101AFI20190805BHJP
   G06T 7/00 20170101ALI20190805BHJP
【FI】
   G06T7/579
   G06T7/00 350B
【請求項の数】15
【全頁数】32
(21)【出願番号】特願2019-526022(P2019-526022)
(86)(22)【出願日】2017年8月14日
(86)【国際出願番号】JP2017029269
(87)【国際公開番号】WO2019035155
(87)【国際公開日】20190221
【審査請求日】2019年5月15日
【早期審査対象出願】
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】特許業務法人はるか国際特許事務所
(72)【発明者】
【氏名】武笠 知幸
【審査官】 佐藤 実
(56)【参考文献】
【文献】 特開2006−250917(JP,A)
【文献】 特開2009−74995(JP,A)
【文献】 特開2002−104117(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 − 7/90
(57)【特許請求の範囲】
【請求項1】
現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得手段と、
前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の3次元座標を含む観測空間情報を取得し、前記撮影手段の位置を推定して前記観測空間に観測視点を設定する観測空間情報取得手段と、
物体の特徴に関する機械学習データに基づいて、前記撮影画像における撮影物の位置と、前記撮影物に関する特徴量と、が関連付けられた2次元特徴量情報付加情報として取得する機械学習手段と、
前記観測視点から前記観測空間を見た様子を示す2次元観測情報と、前記2次元特徴量情報と、の比較結果に基づいて、前記観測空間情報と前記2次元特徴量情報とを統合する統合手段と、
を含むことを特徴とする画像処理システム。
【請求項2】
前記特徴量は、前記機械学習データに基づいて推定された前記撮影物の深度であり、
前記2次元観測情報には、2次元空間における前記特徴点群の位置と、前記観測空間における前記特徴点群の深度と、が関連付けられており、
前記統合手段は、前記2次元特徴量情報に基づいて、前記観測空間に前記撮影物のメッシュを設定し、前記2次元観測情報と前記2次元特徴量情報との比較結果に基づいて、前記メッシュのスケールを変更する、
ことを特徴とする請求項に記載の画像処理システム。
【請求項3】
前記統合手段は、前記2次元観測情報と前記2次元特徴量情報との比較結果に基づいて、前記メッシュのスケールを変更した後に、前記メッシュを部分的に変更する、
ことを特徴とする請求項に記載の画像処理システム。
【請求項4】
前記付加情報は、前記機械学習データに基づいて推定された前記撮影物の3次元形状に関する情報である、
ことを特徴とする請求項1〜の何れかに記載の画像処理システム。
【請求項5】
前記付加情報は、前記撮影物のメッシュに関する情報である、
ことを特徴とする請求項に記載の画像処理システム。
【請求項6】
現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得手段と、
前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の3次元座標を含む観測空間情報を取得する観測空間情報取得手段と、
物体の特徴に関する機械学習データに基づいて、前記撮影画像に示された撮影物の特徴に関する付加情報を取得する機械学習手段と、
前記付加情報に基づいて前記観測空間に前記撮影物のメッシュを設定し、前記観測空間情報に基づいて当該メッシュを変更し、前記観測空間情報と前記付加情報とを統合する統合手段と、
を含むことを特徴とする画像処理システム。
【請求項7】
前記統合手段は、前記メッシュのうち、前記観測空間情報が示す前記特徴点群の3次元座標に対応するメッシュ部分を変更した後に、当該メッシュ部分の周囲のメッシュ部分を変更する、
ことを特徴とする請求項に記載の画像処理システム。
【請求項8】
前記観測空間情報取得手段は、前記特徴点群の位置変化に基づいて前記撮影手段の位置を推定し、当該推定結果に基づいて前記観測空間に観測視点を設定し、
前記統合手段は、前記観測視点に対する各メッシュ部分の向きに基づいて、当該メッシュ部分を変更する、
ことを特徴とする請求項又はに記載の画像処理システム。
【請求項9】
前記付加情報は、前記撮影物の法線に関する情報である、
ことを特徴とする請求項の何れかに記載の画像処理システム。
【請求項10】
前記付加情報は、前記撮影物の分類に関する情報である、
ことを特徴とする請求項の何れかに記載の画像処理システム。
【請求項11】
前記撮影手段は、所定のフレームレートに基づいて、前記現実空間を撮影し、
前記観測空間情報取得手段と前記機械学習手段は、互いに同じフレームで撮影された前記撮影画像に基づいて処理を実行する、
ことを特徴とする請求項1〜1の何れかに記載の画像処理システム。
【請求項12】
現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得ステップと、
前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の3次元座標を含む観測空間情報を取得し、前記撮影手段の位置を推定して前記観測空間に観測視点を設定する観測空間情報取得ステップと、
物体の特徴に関する機械学習データに基づいて、前記撮影画像における撮影物の位置と、前記撮影物に関する特徴量と、が関連付けられた2次元特徴量情報付加情報として取得する機械学習ステップと、
前記観測視点から前記観測空間を見た様子を示す2次元観測情報と、前記2次元特徴量情報と、の比較結果に基づいて、前記観測空間情報と前記2次元特徴量情報とを統合する統合ステップと、
を含むことを特徴とする画像処理方法。
【請求項13】
現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得ステップと、
前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の3次元座標を含む観測空間情報を取得する観測空間情報取得ステップと、
物体の特徴に関する機械学習データに基づいて、前記撮影画像に示された撮影物の特徴に関する付加情報を取得する機械学習ステップと、
前記付加情報に基づいて前記観測空間に前記撮影物のメッシュを設定し、前記観測空間情報に基づいて当該メッシュを変更し、前記観測空間情報と前記付加情報とを統合する統合ステップと、
を含むことを特徴とする画像処理方法。
【請求項14】
現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得手段、
前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の3次元座標を含む観測空間情報を取得し、前記撮影手段の位置を推定して前記観測空間に観測視点を設定する観測空間情報取得手段、
物体の特徴に関する機械学習データに基づいて、前記撮影画像における撮影物の位置と、前記撮影物に関する特徴量と、が関連付けられた2次元特徴量情報付加情報として取得する機械学習手段、
前記観測視点から前記観測空間を見た様子を示す2次元観測情報と、前記2次元特徴量情報と、の比較結果に基づいて、前記観測空間情報と前記2次元特徴量情報とを統合する統合手段、
としてコンピュータを機能させるためのプログラム。
【請求項15】
現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得手段、
前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の3次元座標を含む観測空間情報を取得する観測空間情報取得手段、
物体の特徴に関する機械学習データに基づいて、前記撮影画像に示された撮影物の特徴に関する付加情報を取得する機械学習手段、
前記付加情報に基づいて前記観測空間に前記撮影物のメッシュを設定し、前記観測空間情報に基づいて当該メッシュを変更し、前記観測空間情報と前記付加情報とを統合する統合手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理システム、画像処理方法、及びプログラムに関する。
【背景技術】
【0002】
近年、カメラで撮影した撮影画像を解析し、現実空間の様子を観測空間で再現する技術が検討されている。例えば、非特許文献1には、深度カメラを含まないRGBカメラ(いわゆる単眼カメラ)の撮影画像における特徴点群の位置変化に基づいて、観測空間における特徴点群の3次元座標を含む3Dマップを生成するSLAM(Simultaneous Localization And Mapping)と呼ばれる技術が記載されている。また例えば、非特許文献2には、RGBカメラと深度カメラを含むRGB−Dカメラの撮影画像に基づいて3Dマップを生成する技術が記載されている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】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
【非特許文献2】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
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、非特許文献1の技術では、撮影画像から抽出した特徴点群の3次元座標が3Dマップに示されているだけであり、観測空間の情報量を十分に高めることはできない。この点、非特許文献2の技術では、深度カメラによって撮影物の表面の深度を計測でき、撮影物の3次元形状を表現できるので、観測空間の情報量を高めることはできるが、深度カメラを用意する必要があり、構成が複雑化してしまう。
【0005】
本発明は上記課題に鑑みてなされたものであって、その目的は、観測空間の情報量を高めるための構成を簡易化することである。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明に係る画像処理システムは、現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得手段と、前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の3次元座標を含む観測空間情報を取得する観測空間情報取得手段と、物体の特徴に関する機械学習データに基づいて、前記撮影画像に示された撮影物の特徴に関する付加情報を取得する機械学習手段と、前記観測空間情報と前記付加情報とを統合する統合手段と、を含むことを特徴とする。
【0007】
本発明に係る画像処理方法は、現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得ステップと、前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の3次元座標を含む観測空間情報を取得する観測空間情報取得ステップと、物体の特徴に関する機械学習データに基づいて、前記撮影画像に示された撮影物の特徴に関する付加情報を取得する機械学習ステップと、前記観測空間情報と前記付加情報とを統合する統合ステップと、を含むことを特徴とする。
【0008】
本発明に係るプログラムは、現実空間で移動可能な撮影手段が撮影した撮影画像を取得する撮影画像取得手段、前記撮影画像における特徴点群の位置変化に基づいて、観測空間における前記特徴点群の3次元座標を含む観測空間情報を取得する観測空間情報取得手段、物体の特徴に関する機械学習データに基づいて、前記撮影画像に示された撮影物の特徴に関する付加情報を取得する機械学習手段、前記観測空間情報と前記付加情報とを統合する統合手段、としてコンピュータを機能させる。
【0009】
本発明の一態様では、前記付加情報は、前記撮影画像における前記撮影物の位置と、前記撮影物に関する特徴量と、が関連付けられた2次元特徴量情報であり、前記観測空間情報取得手段は、前記特徴点群の位置変化に基づいて前記撮影手段の位置を推定し、当該推定結果に基づいて前記観測空間に観測視点を設定し、前記統合手段は、前記観測視点から前記観測空間を見た様子を示す2次元観測情報と、前記2次元特徴量情報と、の比較結果に基づいて処理を実行する、ことを特徴とする。
【0010】
本発明の一態様では、前記特徴量は、前記機械学習データに基づいて推定された前記撮影物の深度であり、前記2次元観測情報には、2次元空間における前記特徴点群の位置と、前記観測空間における前記特徴点群の深度と、が関連付けられており、前記統合手段は、前記2次元特徴量情報に基づいて、前記観測空間に前記撮影物のメッシュを設定し、前記2次元観測情報と前記2次元特徴量情報との比較結果に基づいて、前記メッシュのスケールを変更する、ことを特徴とする。
【0011】
本発明の一態様では、前記統合手段は、前記2次元観測情報と前記2次元特徴量情報との比較結果に基づいて、前記メッシュのスケールを変更した後に、前記メッシュを部分的に変更する、ことを特徴とする。
【0012】
本発明の一態様では、前記付加情報は、前記機械学習データに基づいて推定された前記撮影物の3次元形状に関する情報である、ことを特徴とする。
【0013】
本発明の一態様では、前記付加情報は、前記撮影物のメッシュに関する情報である、ことを特徴とする。
【0014】
本発明の一態様では、前記統合手段は、前記付加情報に基づいて前記観測空間に前記メッシュを設定し、前記観測空間情報に基づいて当該メッシュを変更する、ことを特徴とする。
【0015】
本発明の一態様では、前記統合手段は、前記メッシュのうち、前記観測空間情報が示す前記特徴点群の3次元座標に対応するメッシュ部分を変更した後に、当該メッシュ部分の周囲のメッシュ部分を変更する、ことを特徴とする。
【0016】
本発明の一態様では、前記観測空間情報取得手段は、前記特徴点群の位置変化に基づいて前記撮影手段の位置を推定し、当該推定結果に基づいて前記観測空間に観測視点を設定し、前記統合手段は、前記観測視点に対する各メッシュ部分の向きに基づいて、当該メッシュ部分を変更する、ことを特徴とする。
【0017】
本発明の一態様では、前記付加情報は、前記撮影物の法線に関する情報である、ことを特徴とする。
【0018】
本発明の一態様では、前記付加情報は、前記撮影物の分類に関する情報である、ことを特徴とする。
【0019】
本発明の一態様では、前記撮影手段は、所定のフレームレートに基づいて、前記現実空間を撮影し、前記観測空間情報取得手段と前記機械学習手段は、互いに同じフレームで撮影された前記撮影画像に基づいて処理を実行する、ことを特徴とする。
【発明の効果】
【0020】
本発明によれば、観測空間の情報量を高めるための構成を簡易化することができる。
【図面の簡単な説明】
【0021】
図1】画像処理装置のハードウェア構成を示す図である。
図2】撮影部が現実空間を撮影する様子を示す図である。
図3】撮影画像の一例を示す図である。
図4】特徴点群の3次元座標の一例を示す図である。
図5】深度画像の一例を示す図である。
図6】撮影画像から生成される法線画像の一例を示す図である。
図7】統合された観測空間の一例を示す図である。
図8】画像処理装置において実現される機能の一例を示す機能ブロック図である。
図9】観測空間画像の一例を示す図である。
図10】統合部が実行する処理の一例を示す図である。
図11】ARAP手法を拡張してメッシュを変更する処理の説明図である。
図12】ARAP手法を拡張してメッシュを変更する処理の説明図である。
図13】画像処理装置において実行される処理の一例を示すフロー図である。
図14】マッピング処理の一例を示すフロー図である。
図15】復元処理の一例を示すフロー図である。
図16】統合処理の一例を示すフロー図である。
図17】各処理の実行間隔の一例を示す図である。
図18】分類画像の一例を示す図である。
図19】統合部が実行する処理の一例を示す図である。
図20】変形例における画像処理システムの一例を示す図である。
【発明を実施するための形態】
【0022】
[1.画像処理システムのハードウェア構成]
以下、本発明に関わる画像処理システムの実施形態の例を説明する。本実施形態では、画像処理システムが1台のコンピュータによって実現される場合を説明するが、後述する変形例のように、画像処理システムは複数台のコンピュータによって実現されてもよい。
【0023】
図1は、画像処理装置のハードウェア構成を示す図である。画像処理装置10は、画像処理を実行するコンピュータであり、例えば、携帯電話機(スマートフォンを含む)、携帯情報端末(タブレット型コンピュータを含む)、パーソナルコンピュータ、又はサーバコンピュータ等である。図1に示すように、画像処理装置10は、制御部11、記憶部12、通信部13、操作部14、表示部15、入出力部16、読取部17、及び撮影部18を含む。
【0024】
制御部11は、例えば、少なくとも1つのマイクロプロセッサを含む。制御部11は、記憶部12に記憶されたプログラムやデータに従って処理を実行する。記憶部12は、主記憶部及び補助記憶部を含む。例えば、主記憶部はRAMなどの揮発性メモリであり、補助記憶部は、ハードディスクやフラッシュメモリなどの不揮発性メモリである。通信部13は、有線通信又は無線通信用の通信インタフェースであり、ネットワークを介してデータ通信を行う。操作部14は、ユーザが操作を行うための入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイスやキーボード等を含む。操作部14は、ユーザの操作内容を制御部11に伝達する。
【0025】
表示部15は、例えば、液晶表示部又は有機EL表示部等である。表示部15は、制御部11の指示に従って画面を表示する。入出力部16は、入出力インタフェースであり、例えば、USBポートを含む。入出力部16は、外部機器とデータ通信を行うために用いられる。読取部17は、コンピュータ読み取り可能な情報記憶媒体を読み取り、例えば、光ディスクドライブやメモリカードスロットを含む。撮影部18は、静止画又は動画を撮影する少なくとも1つのカメラを含み、例えば、CMOSイメージセンサ又はCCDイメージセンサなどの撮像素子を含む。撮影部18は、現実空間を連続的に撮影可能である。例えば、撮影部18は、所定のフレームレートで撮影してもよいし、特にフレームレートを定めずに不定期的に撮影してもよい。
【0026】
なお、記憶部12に記憶されるものとして説明するプログラム及びデータは、ネットワークを介して他のコンピュータから供給されるようにしてもよいし、入出力部16又は読取部17を介して、コンピュータ読み取り可能な情報記憶媒体(例えば、USBメモリ、SDカード、又は光ディスク)から供給されるようにしてもよい。また、表示部15及び撮影部18は、画像処理装置10の内部に組み込まれているのではなく、画像処理装置10の外部にあり、入出力部16を介して接続されてもよい。また、画像処理装置10のハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。
【0027】
[2.画像処理装置が実行する処理の概要]
画像処理装置10は、撮影部18が撮影した撮影画像に基づいて、現実空間の様子を再現した観測空間を生成する。現実空間は、撮影部18が撮影する物理空間である。観測空間は、仮想的な3次元空間であり、画像処理装置10内部で定義される空間である。観測空間は、撮影物を表す点群を含む。撮影物は、撮影画像に表れた現実空間の物体であり、被写体ということもできる。別の言い方をすれば、撮影物は、撮影画像に表れた現実空間の一部分である。
【0028】
観測空間の点群は、観測空間で撮影物の3次元形状を表現するための情報であり、メッシュを構成する頂点群である。メッシュは、ポリゴンとも呼ばれる情報であり、撮影物を表す3次元オブジェクト(3Dモデル)の構成要素である。撮影部18は、任意の場所を撮影可能であってよいが、本実施形態では、撮影部18が室内の様子を撮影する場合を説明する。
【0029】
図2は、撮影部18が現実空間を撮影する様子を示す図である。図2に示すように、本実施形態では、撮影部18は、複数の面(床、壁、及び天井など)で囲まれた部屋の内部を撮影する。図2の例では、現実空間RSにはベッドと絵画が配置されている。ユーザは、画像処理装置10を持って移動しながら任意の場所を撮影する。例えば、撮影部18は、所定のフレームレートに基づいて、現実空間RSを連続的に撮影して撮影画像を生成する。
【0030】
図3は、撮影画像の一例を示す図である。図3に示すように、撮影画像G1には、撮影部18の撮影範囲内にある壁、床、ベッド、及び絵画が、撮影物として撮影されている。なお、本実施形態では、撮影画像G1の左上を原点Osとして、スクリーン座標軸(Xs軸−Ys軸)が設定され、撮影画像G1内の位置はスクリーン座標系の2次元座標で示される。
【0031】
例えば、画像処理装置10は、撮影画像G1から特徴点群を抽出し、SLAM技術を利用して観測空間における特徴点群の3次元座標を計算する。特徴点は、画像内の特徴的な部分を示す点であり、例えば、撮影物の輪郭の一部分を示したり、撮影物の色が変化している部分を示したりする。特徴点群は、複数の特徴点の集まりである。
【0032】
図4は、特徴点群の3次元座標の一例を示す図である。図4に示すP1〜P16は、撮影画像G1から抽出された特徴点である。以降、特徴点P1〜P16を特に区別する必要のないときは、これらをまとめて特徴点群Pと記載する。なお、本実施形態では、観測空間OS内の所定位置を原点Owとして、ワールド座標軸(Xw軸−Yw軸−Zw軸)が設定され、観測空間OS内の位置はワールド座標系の3次元座標で示される。
【0033】
本実施形態では、画像処理装置10は、SLAM技術を利用して特徴点群Pの3次元座標を計算するだけでなく、現実空間RSにおける撮影部18の位置と向きも推定する。画像処理装置10は、特徴点群Pの3次元座標を観測空間OSに設定し、撮影部18の位置と向きに対応するように、観測視点OVを観測空間OSに設定する。観測視点OVは、仮想カメラとも呼ばれるものであり、観測空間OSにおける視点である。
【0034】
特徴点群Pは、撮影物の輪郭などの一部分を示す特徴点の集まりにすぎないなので、図4に示すように、特徴点群Pの密度は、撮影物の表面を表現できるほどには高くならない。即ち、特徴点群Pの3次元座標が設定された観測空間OSは、疎な点群データであり、例えば、撮影物の表面を詳しく表現できる程度の情報量とはならない。
【0035】
そこで、本実施形態の画像処理装置10は、機械学習(ディープラーニング)を利用して撮影物の3次元形状を推定し、推定した3次元形状と特徴点群Pの3次元座標とを統合し、観測空間OSの情報量を増やすようにしている。具体的には、画像処理装置10は、機械学習によって撮影物の3次元形状を大まかに推定し、実測値である特徴点群Pの3次元座標に合うように、推定した3次元形状を補正する。例えば、画像処理装置10は、撮影物の3次元形状の推定結果として、深度画像と法線画像の2つの画像を取得する。なお、当該推定結果は、2次元的な情報として表現されるようにすればよく、必ずしも画像形式で表現される必要はない。例えば、推定結果は、2次元座標と深度又は法線に関する情報との組み合わせを示すデータであってもよく、例えば、表形式又はテーブル形式のデータであってもよい。
【0036】
図5は、深度画像の一例を示す図である。深度画像G2は、撮影画像G1と同じサイズ(縦横の画素数が同じ)であり、撮影物の深度を示す画像である。深度は、撮影物の奥行きであり、撮影部18と撮影物との距離である。深度画像G2の各画素の画素値は、当該画素の深度を示す。即ち、深度画像G2の各画素の画素値は、当該画素に表れた撮影物と撮影部18との距離を示す。なお、画素値は、各画素に割り当てられた数値であり、色、輝度、又は明度とも呼ばれる情報である。
【0037】
深度画像G2は、カラー画像であってもよいし、グレースケール画像であってもよい。図5の例では、深度画像G2の画素値を模式的に網点の濃さで示しており、網点が濃いほど深度が低い(距離が短い)ことを示し、網点が薄いほど深度が高い(距離が長い)ことを示している。即ち、網点が濃い画素が示す撮影物は、当該撮影物が撮影部18から見て手前側にあり、網点が薄い画素が示す撮影物は、当該撮影物が撮影部18から見て奥側にある。例えば、撮影部18に近いベッドなどの部分の網点は濃くなり、撮影部18から遠い壁などの部分の網点は薄くなっている。
【0038】
図6は、撮影画像G1から生成される法線画像の一例を示す図である。法線画像G3は、撮影画像G1と同じサイズ(縦横の画素数が同じ)であり、撮影物の法線を示す画像である。法線は、撮影物の表面と垂直に交差する直線である。法線画像G3の各画素の画素値は、当該画素の法線の方向(ベクトル情報)を示す。即ち、法線画像G3の各画素の画素値は、当該画素に撮影された撮影物の法線の方向を示す。
【0039】
法線画像G3は、カラー画像であってもよいし、グレースケール画像であってもよい。図6の例では、法線画像G3の画素値を模式的に網点の濃さで示しており、網点が濃いほど法線が垂直方向(Zw軸方向)を向くことを示し、網点が薄いほど法線が水平方向(Xw軸方向又はYw軸方向)を向くことを示している。即ち、網点が濃い画素が示す撮影物は、当該撮影物の表面が垂直方向を向いており、網点が薄い画素が示す撮影物は、当該撮影物の表面が水平方向を向いている。
【0040】
例えば、床やベッドの上面のように表面が垂直方向を向く部分の網点は濃くなり、壁やベッドの側面のように表面が水平方向を向く部分の網点は薄くなっている。なお、図6では、Xw軸方向は、Yw軸方向よりも網点を濃く示している。このため、例えば、撮影部18から見て右側にある壁の表面(法線がXw軸方向)は、左側にある壁の表面(法線がYw軸方向)よりも網点を濃く示している。
【0041】
深度画像G2と法線画像G3は、何れも撮影物の3次元形状を示す情報であり、画像処理装置10は、これらに基づいて、撮影物のメッシュを推定することができる。ただし、深度画像G2と法線画像G3は、機械学習で得られた情報であり、ある程度の精度を有するが、画像処理装置10がその場で計測した実測値ではないので、そこまで精度が高いわけではない。
【0042】
このため、深度画像G2と法線画像G3から推定したメッシュをそのまま観測空間OSに設定して情報量を増やしたとしても、スケールが合っていなかったり、メッシュの細部が違っていたりすることがあり、観測空間OSの精度を高めることができない。そこで、画像処理装置10は、実測値である特徴点群Pの3次元座標と、深度画像G2及び法線画像G3と、を統合することで、3次元形状の精度を高めつつ、観測空間OSの情報量を増やすようにしている。
【0043】
図7は、統合された観測空間OSの一例を示す図である。図7では、観測空間OSにおける点群の集まりを模式的に実線で示している。図7に示すように、機械学習を利用することで観測空間OSの点群の密度を高めることができ、点群の密度は、撮影物の表面を表現できる程度に高くなっている。即ち、統合された観測空間OSは、密な点群データであり、例えば、撮影物の表面を詳しく表現可能な情報量となっている。
【0044】
なお、観測空間OSで再現できるのは、あくまで撮影部18の撮影範囲内なので、撮影範囲外(例えば、撮影部18の後方などの死角)の様子は再現されない。このため、室内全体を再現するためには、ユーザは、画像処理装置10を持って移動しながら室内をくまなく撮影し、画像処理装置10は、上記説明した処理を繰り返して部屋全体を再現することになる。
【0045】
以上のように、本実施形態の画像処理装置10は、実測値である特徴点群Pの3次元座標と、機械学習を利用して取得した深度画像G2及び法線画像G3と、を統合することによって、深度カメラなどの構成を用いなくても、観測空間OSの情報量を高めることができるようになっている。以降、画像処理装置10の詳細を説明する。
【0046】
[3.画像処理装置において実現される機能]
図8は、画像処理装置10において実現される機能の一例を示す機能ブロック図である。図8に示すように、本実施形態では、データ記憶部100、撮影画像取得部101、観測空間情報取得部102、機械学習部103、及び統合部104が実現される場合を説明する。
【0047】
[3−1.データ記憶部]
データ記憶部100は、記憶部12を主として実現される。データ記憶部100は、現実空間RSの様子を再現した観測空間OSを生成するために必要なデータを記憶する。
【0048】
例えば、データ記憶部100は、機械学習で利用される機械学習データを記憶する。機械学習データは、種々の物体の特徴に関するデータである。例えば、機械学習データは、物体の外観の特徴を示すデータであり、物体の3次元形状、輪郭、サイズ、色、又は模様などの種々の特徴が示されるようにしてもよい。なお、ここでの3次元形状は、表面の凹凸又は向きを意味する。
【0049】
機械学習データには、物体ごとに、当該物体の特徴に関する特徴情報が格納される。また、同じ物体であったとしても、3次元形状、サイズ、輪郭、色、又は模様などの特徴が異なるため、種々の特徴を網羅するように機械学習データが用意されているようにしてもよい。
【0050】
物体の一例としてベッドを説明すると、ベッドフレームは、パイプベッドや二段ベッドなどの種々のタイプが存在し、ベッドの3次元形状や輪郭は多数存在する。また、ベッドには、シングルサイズやダブルサイズなどの種々のタイプが存在し、ベッドのサイズも多数存在する。同様に、ベッドの色や模様も種々のタイプが存在するので、機械学習データには、公知のベッドを網羅するように、特徴情報が格納されている。
【0051】
更に、同じベッドだったとしても、角度によって見え方が違うので、種々の角度からベッドを見た場合の特徴情報が機械学習データに格納されている。ここではベッドを例に挙げたが、ベッド以外の物体(例えば、家具、家電、被服、乗物、雑貨など)も同様に、種々のタイプの物体を種々のアングルから見た場合の特徴情報が機械学習データに格納されている。
【0052】
本実施形態では、機械学習によって深度画像G2と法線画像G3が取得されるので、特徴情報としては、物体の深度と法線が格納されているものとする。このため、機械学習データの一例として、物体の深度に関する深度学習データと、物体の法線に関する法線学習データと、を説明する。
【0053】
例えば、深度学習データと法線学習データは、RGB−Dカメラで物体を撮影することによって生成される。RGB−Dカメラは、現実空間RSに配置された物体の深度を計測できるので、実測値である深度情報に基づいて、深度学習データが生成される。また、物体の深度は、3次元形状(物体表面の凹凸)を特定可能な情報なので、RGB−Dカメラが計測した深度情報に基づいて、物体表面の法線方向を取得することもできる。このため、実測値である法線方向に基づいて、法線学習データも生成される。
【0054】
なお、機械学習データ及び機械学習のアルゴリズム自体は、公知のデータ及びアルゴリズムを利用可能であり、例えば、「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)に記載されたいわゆるCNN(Convolutional Neural Network)におけるデータ及びアルゴリズムを用いてもよい。また、機械学習データに格納される特徴情報は、物体の特徴を示せばよく、深度と法線に限られない。例えば、特徴情報は、物体の輪郭、サイズ、色、又は模様を示してもよい。
【0055】
また例えば、データ記憶部100は、観測空間OSの様子を示す観測空間情報を記憶する。例えば、観測空間情報には、撮影物に関する情報と、観測視点OVに関する観測視点パラメータと、が格納される。撮影物に関する情報は、撮影物に対応する点群であり、例えば、特徴点群Pの3次元座標と、メッシュ(撮影物を表す3次元オブジェクト)の頂点座標と、を含む。観測視点パラメータは、例えば、観測視点OVの位置、向き、及び画角などである。なお、観測視点OVの向きは、注視点の3次元座標で示されてもよいし、視線方向を示すベクトル情報で示されてもよい。
【0056】
なお、データ記憶部100が記憶するデータは、上記の例に限られない。例えば、データ記憶部100は、撮影画像G1を時系列的に記憶してもよい。また例えば、データ記憶部100は、撮影画像G1から抽出された特徴点群Pの2次元座標を時系列的に記憶してもよいし、特徴点群Pの位置変化を示すベクトル情報を時系列的に記憶してもよい。また例えば、ユーザに拡張現実を提供する場合には、データ記憶部100は、合成対象となる物体を示す3次元オブジェクトに関する情報を記憶してもよい。合成対象となる物体とは、撮影画像G1とともに表示される架空の物体であり、例えば、架空の動物(人を模したキャラクタを含む)、家具、家電、被服、乗物、玩具、又は雑貨などである。合成対象となる物体は、観測空間OSの中で動いてもよいし、特に動かずにその場で静止していてもよい。
【0057】
[3−2.撮影画像取得部]
撮影画像取得部101は、制御部11を主として実現される。撮影画像取得部101は、現実空間で移動可能な撮影部18が撮影した撮影画像G1を取得する。
【0058】
現実空間RSで移動可能とは、撮影部18の位置と向きを変更可能であることを意味し、例えば、撮影部18を含む筐体を移動させたり、当該筐体の姿勢を変えたり、当該筐体を回転させたりすることが可能なことを意味する。別の言い方をすれば、撮影部18の撮影範囲(視野)が変更可能であることを意味する。なお、撮影部18は、常に移動し続けなければならないわけではなく、一時的に現在の場所に留まり、位置と向きが変わらないことがあってもよい。
【0059】
本実施形態では、撮影部18は、所定のフレームレートに基づいて、現実空間RSを撮影するので、撮影画像取得部101は、撮影部18が所定のフレームレートで撮影した撮影画像G1を取得する。
【0060】
フレームレートは、単位時間あたりの処理回数であり、動画における単位時間あたりの静止画像数(コマ数)である。フレームレートは、固定値であってもよいし、ユーザが指定可能であってもよい。例えば、フレームレートをNfps(N:自然数、fps:Frames Per Second)とすると、各フレームの長さは1/N秒となり、撮影部18は、処理単位であるフレームごとに現実空間RSを撮影して撮影画像G1を生成し、撮影画像取得部101は、撮影部18が生成した撮影画像G1を連続的に取得する。
【0061】
本実施形態では、撮影画像取得部101は、撮影部18により撮影された撮影画像G1をリアルタイムで取得する。即ち、撮影画像取得部101は、撮影部18が撮影画像G1を生成してすぐに当該撮影画像G1を取得する。撮影画像取得部101は、撮影部18が撮影画像G1を生成した時点から所定時間以内に、当該撮影画像G1を取得する。
【0062】
なお、特にリアルタイムで撮影画像G1が取得されなくてもよく、この場合には、撮影画像取得部101は、データ記憶部100に記憶された画像データ(即ち、撮影済みの静止画データ又は動画データ)を取得してもよい。また、画像処理装置10以外のコンピュータ又は情報記憶媒体に画像データが記憶されている場合には、撮影画像取得部101は、当該コンピュータ又は情報記憶媒体から画像データを取得してもよい。
【0063】
また、特にフレームレートが撮影部18に設定されていなくてもよく、不定期的に撮影する場合には、撮影画像取得部101は、撮影部18が撮影するたびに撮影画像G1を取得すればよい。例えば、ユーザが操作部14から手動で撮影指示をしてもよく、この場合には、撮影部18は、ユーザが撮影指示をするたびに撮影画像G1を生成し、撮影画像取得部101は、ユーザが撮影指示をするたびに生成される撮影画像G1を取得してもよい。
【0064】
[3−3.観測空間情報取得部]
観測空間情報取得部102は、制御部11を主として実現される。観測空間情報取得部102は、撮影画像G1における特徴点群Pの位置変化に基づいて、観測空間OSにおける特徴点群Pの3次元座標を含む観測空間情報を取得する。
【0065】
特徴点群Pの位置変化とは、画像上における位置変化であり、2次元座標の変化である。特徴点群Pの位置変化は、スクリーン座標系のベクトル情報(2次元ベクトル情報)で示される。即ち、観測空間情報取得部102は、特徴点群Pに含まれる個々の特徴点ごとに、当該特徴点の位置変化を示すベクトル情報を取得する。
【0066】
観測空間情報取得部102が取得する観測空間情報は、観測空間OSにおける特徴点群Pの分布を示す情報であり、いわゆる特徴点群Pの3Dマップである。この段階の観測空間情報は、図4を参照して説明したように、特徴点群Pの3次元座標が格納されているだけであり、撮影物の表面形状を表現することのできない疎な点群データとなる。
【0067】
観測空間情報取得部102は、撮影画像G1から特徴点群Pを抽出し、抽出した特徴点群Pを追跡する。なお、特徴点は、撮影画像G1に撮影された撮影物の特徴を示す点であればよく、例えば、撮影物の輪郭の一部を示す点であってもよいし、撮影物内部の点(例えば、中心点)であってもよい。特徴点の抽出方法自体は、公知の特徴点抽出アルゴリズムに基づいて実行されてよく、例えば、輪郭抽出処理により検出した撮影物の輪郭上の点を特徴点としてもよいし、輪郭線同士が所定角度以上で交差する点を特徴点としてもよいし、画像内のエッジ部分を特徴点としてもよい。
【0068】
他にも例えば、観測空間情報取得部102は、SIFT(Scale-Invariant Feature Transform:https://en.wikipedia.org/wiki/Scale-invariant_feature_transform)と呼ばれるアルゴリズムに基づいて特徴点を抽出してもよいし、ORB(Oriented fast and Rotated Brief:http://www.willowgarage.com/sites/default/files/orb_final.pdf)と呼ばれるアルゴリズムに基づいて特徴点を抽出してもよい。これらのアルゴリズムによれば、撮影物の角やエッジ以外の部分が特徴点として抽出されることがある。
【0069】
特徴点群Pの位置変化と3次元座標との関係は、数式形式、テーブル形式、又はプログラムコードの一部として、予めデータ記憶部100に記憶されているものとする。特徴点群Pの位置変化は2次元的な情報なので、この関係は、2次元的な情報を3次元的な情報に変換するための変換ルールということもできる。観測空間情報取得部102は、特徴点群Pの位置変化に関連付けられた3次元座標を取得することになる。
【0070】
本実施形態では、観測空間情報取得部102は、SLAM技術を利用して観測空間情報を取得する。特徴点は、画像上において、現実空間RSにおいて撮影部18が撮影物に対して移動した方向の逆方向に移動する。更に、遠くにある撮影物ほど画像上の特徴点の移動量は小さくなる。SLAM技術では、これらの傾向に基づいて三角測量の原理を利用し、特徴点群Pの3次元座標が計算される。即ち、観測空間情報取得部102は、特徴点群Pを追跡し、三角測量の原理を利用したSLAM技術に基づいて、特徴点群Pの3次元座標を計算することになる。
【0071】
また、観測空間情報取得部102は、特徴点群Pの位置変化に基づいて撮影部18の位置を推定し、当該推定結果に基づいて観測空間OSに観測視点OVを設定する。例えば、観測空間情報取得部102は、撮影部18の現在の位置と向きを推定し、推定結果を観測視点OVの位置と向きに反映させる。
【0072】
特徴点群Pの位置変化と、撮影部18の位置及び向きと、の関係は、数式形式、テーブル形式、又はプログラムコードの一部として、予めデータ記憶部100に記憶されているものとする。この関係は、特徴点群Pの変化を示す2次元ベクトル情報と、観測視点OVの位置を示す3次元座標及び向きを示す3次元ベクトル情報と、の関係を示すものということもできる。観測空間情報取得部102は、特徴点群Pの位置変化に関連付けられた3次元座標及び3次元ベクトル情報を取得することになる。
【0073】
観測空間情報取得部102が観測視点OVを設定することで、現実空間RSで撮影部18が移動した場合に、観測視点OVは、撮影部18と同じように観測空間OSで移動する。即ち、観測空間OSにおける観測視点OVの位置と向きは、現実空間RSにおける撮影部18の位置と向きと同じように変わる。撮影部18の位置と向きの推定方法自体は、公知の視点推定方法を適用可能であり、例えば、SLAM技術を利用してもよい。
【0074】
[3−4.機械学習部]
機械学習部103は、制御部11を主として実現される。機械学習部103は、物体の特徴に関する機械学習データに基づいて、撮影画像G1に示された撮影物の特徴に関する付加情報を取得する。
【0075】
付加情報は、撮影物の外観の特徴を示し、例えば、撮影物の3次元形状、分類(種類)、色、又は模様などの情報であってもよい。本実施形態では、付加情報の一例として、機械学習データに基づいて推定された撮影物の3次元形状に関する情報を説明する。撮影物の3次元形状に関する情報は、撮影物の表面の凹凸又は向きを3次元的に特定可能な情報であればよく、例えば、撮影物のメッシュに関する情報、又は、撮影物の法線に関する情報である。別の言い方をすれば、撮影物の3次元形状に関する情報は、撮影物の表面を示す面情報である。
【0076】
撮影物のメッシュに関する情報は、観測空間OSでメッシュを表現可能な情報であればよく、例えば、密な点群データであってもよいし、メッシュを構成する頂点座標そのものであってもよいし、当該頂点座標を特定可能な深度であってもよい。なお、ここでの「密」とは、撮影物の表面形状を表現可能な程度の密度(一定値以上の密度)を有することであり、例えば、コンピュータ・グラフィック技術における一般的なメッシュの頂点と同程度の密度を有することである。深度は、観測視点OVから見た場合のメッシュの深度であり、観測視点OVとメッシュの各頂点との距離である。一方、撮影物の法線に関する情報は、撮影物の表面の法線を特定可能な情報であればよく、例えば、法線のベクトル情報であってもよいし、観測空間OS内の所定平面(例えば、Xw−Yw平面)と法線と交差角であってもよい。
【0077】
付加情報は、任意のデータ形式であってよいが、本実施形態では、撮影画像G1における撮影物の位置(スクリーン座標系における2次元座標)と、撮影物に関する特徴量と、が関連付けられた2次元特徴量情報である場合を説明する。更に、2次元特徴量情報の一例として、撮影物に関する特徴量が各画素に関連付けられた特徴量画像を説明する。特徴量画像の各画素の特徴量は、当該画素の特徴を表す数値であり、例えば、機械学習データに基づいて推定された撮影物の深度である。即ち、深度画像G2は、特徴量画像の一例である。なお、特徴量は、深度に限られない。例えば、特徴量画像の特徴量は、機械学習データに基づいて推定された撮影物の法線であってもよい。即ち、法線画像G3も、特徴量画像の一例である。
【0078】
機械学習部103は、機械学習データに示された物体の中から、撮影物と類似する物体を特定する。類似とは、外観が類似することを意味し、例えば、形状の類似を意味しても良いし、形状と色の両方の類似を意味してもよい。機械学習部103は、機械学習データに示された物体と撮影物との類似度を計算し、類似度が閾値以上である場合に、物体と撮影物が類似すると判定する。類似度は、形状の違いや色の違いに基づいて算出されるようにすればよい。
【0079】
機械学習データには、物体と特徴情報とが関連付けられているので、機械学習部103は、撮影物に類似する物体に関連付けられた特徴情報に基づいて、付加情報を取得する。例えば、機械学習部103は、撮影画像G1の中から類似する物体を複数特定した場合には、当該複数の物体にそれぞれ対応する複数の特徴情報を含む付加情報を取得する。
【0080】
例えば、機械学習部103は、深度学習データに示された物体の中から、撮影物と類似する物体を特定する。そして、機械学習部103は、撮影画像G1における当該撮影物の画素に対し、当該特定した物体に関連付けられた深度を示す画素値を設定することによって、深度画像G2を生成する。即ち、機械学習部103は、撮影画像G1において撮影物が表れた領域ごとに、当該撮影物に類似する物体に関連付けられた深度を設定する。
【0081】
また例えば、機械学習部103は、法線学習データに示された物体の中から、撮影物と類似する物体を特定する。そして、機械学習部103は、撮影画像G1における当該撮影物の画素に対し、当該特定した物体に関連付けられた法線のベクトル情報を示す画素値を設定することによって、法線画像G3を生成する。即ち、機械学習部103は、撮影画像G1において撮影物が表れた領域ごとに、当該撮影物に類似する物体に関連付けられたベクトル情報を設定する。
【0082】
なお、観測空間情報取得部102と機械学習部103は、互いに異なるフレームで撮影された撮影画像G1に基づいて処理を実行してもよいが、本実施形態では、互いに同じフレームで撮影された撮影画像G1に基づいて処理を実行する場合を説明する。即ち、観測空間情報取得部102が観測空間情報を取得するために参照する撮影画像G1と、機械学習部103が付加情報を取得するために参照する撮影画像G1と、は同じであり、同じ視点(撮影部18の位置と向き)で撮影されているものとする。
【0083】
[3−5.統合部]
統合部104は、制御部11を主として実現される。統合部104は、観測空間情報と付加情報とを統合する。統合とは、観測空間情報と付加情報に基づいて観測空間OSの情報量を増加させることを意味する。例えば、特徴点群Pの3次元座標を示す観測空間OSよりも点群の数を増やすこと、特徴点群Pの3次元座標に対し、3次元座標以外の情報(例えば、法線情報)を付加すること、又は、これらを組み合わせて点群を増やしつつ情報を付加することが統合に相当する。
【0084】
統合部104は、観測空間情報と付加情報に基づいて新たな情報を生成してもよいし、新たな情報を生成するのではなく、観測空間情報に対して付加情報を追加してもよい。例えば、統合部104は、観測空間情報が示す点群の数を増加させて密な点群データとしたり、観測空間情報が示す特徴点群Pの3次元座標に対して法線情報などの情報を付加したり、これらを組み合わせて、観測空間情報を密な点群データにしつつ、法線情報などの情報を付加したりする。本実施形態では、付加情報が撮影物の3次元形状を示すので、統合部104は、特徴点群Pの3次元座標を示す観測空間情報(疎な点群データ)に対し、付加情報に基づく3次元形状に関する情報を追加する場合を説明する。
【0085】
また、本実施形態では、付加情報として2次元特徴量情報が用いられるので、統合部104は、観測視点OVから観測空間OSを見た様子を示す2次元観測情報と、2次元特徴量情報と、の比較結果に基づいて処理を実行する。2次元観測情報は、3次元空間である観測空間OSを2次元空間に投影した情報であり、3次元的に表現される情報を2次元的に変換した情報である。例えば、2次元観測情報には、2次元空間における特徴点群の位置(2次元座標)と、観測空間OSにおける特徴点群の深度と、が関連付けられている。なお、特徴点群の2次元座標は、実数値で示されるようにすればよい。即ち、特徴点群の2次元座標は、整数だけで示される必要はなく、小数を含む数値で示されてもよい。
【0086】
更に、本実施形態では、2次元特徴量情報として特徴量画像(例えば、深度画像G2と法線画像G3)が用いられるので、例えば、統合部104は、観測視点OVから観測空間OSを見た様子を示す観測空間画像と、特徴量画像と、の比較結果に基づいて処理を実行する場合を説明する。即ち、3次元的な情報である観測空間情報と、2次元的な情報である特徴量画像と、は次元が異なるので、統合部104は、これらの次元を合わせたうえで処理を実行する。なお、統合部104は、観測空間情報を2次元的な情報にするのではなく、後述する変形例のように、特徴量画像を観測空間OSに投影して3次元的な情報にしたうえで処理を実行してもよい。
【0087】
図9は、観測空間画像の一例を示す図である。図9では、図4の状態の観測空間OSを観測視点OVから見た様子を示しており、観測空間画像G4に表れた特徴点群Pを、模式的に一定の大きさの円で示しているが、実際には、個々の特徴点は、1つ又は数個程度の画素だけで表現されるようにしてもよい。また、先述したように、特徴点の位置は、画素の位置を示す整数値で表現されるのではなく、小数点以下を表現可能なfloat値によって表現されてもよい。
【0088】
統合部104は、特徴点群Pの3次元座標をスクリーン座標系の2次元座標に変換することによって、観測空間画像G4を生成する。このため、観測空間画像G4は、3次元の情報である観測空間OSを2次元の情報に投影した2D投影図といえる。この変換処理自体は、公知の座標変換処理(ジオメトリ処理)を適用可能である。
【0089】
例えば、観測空間画像G4は、観測空間OSにおける特徴点群Pの深度を示す。即ち、観測空間画像G4の画素値は、深度画像G2と同様に深度を示す。なお、観測空間画像G4のうち、特徴点群Pが表れない部分については、特に画素値が設定されないようにしてもよいし、特徴点群Pが表れていないことを示す所定値が設定されてもよい。
【0090】
観測空間画像G4は、撮影画像G1と同じサイズ(縦横の画素数が同じ)であり、カラー画像であってもよいし、グレースケール画像であってもよい。図9の例では、観測空間画像G4の画素値を模式的に網点の濃さで示しており、網点が濃いほど深度が低い(距離が短い)ことを示し、網点が薄いほど深度が高い(距離が長い)ことを示している。例えば、観測視点OVに近い特徴点P5〜P7を示す画素の網点は濃くなり、観測視点OVからそれほど離れていない特徴点P11〜P15を示す画素の網点は中程度の濃さであり、観測視点OVから遠い特徴点P1〜P4,P8〜P10,P14の網点は薄くなっている。
【0091】
統合部104は、観測空間画像G4において特徴点群Pが表れた画素を特定し、特徴量画像(例えば、深度画像G2と法線画像G3)の当該画素の画素値に基づいて処理を実行する。図9の例であれば、統合部104は、観測空間画像G4において特徴点P1〜P15が表れた画素の2次元座標を特定し、特徴量画像の当該2次元座標の画素の画素値に基づいて処理を実行する。
【0092】
図10は、統合部104が実行する処理の一例を示す図である。図10に示すように、まず、統合部104は、深度画像G2に基づいて、観測空間OSにメッシュMを設定する。例えば、統合部104は、深度画像G2が示す各画素の深度を観測空間OSに投影し、観測視点OVから当該深度だけ離れた場所が頂点座標となるように、仮のメッシュM(初期値としてのメッシュM)を設定する。即ち、統合部104は、深度画像G2の各画素の深度を3次元座標に変換し、当該3次元座標をメッシュMの頂点座標とする。
【0093】
なお、深度情報に基づいて3次元空間に点群を設定してメッシュに変換する方法自体は、公知の種々の手法を適用可能である。別の言い方をすれば、いわゆる2.5次元の情報である深度情報を3次元の点群データに変換する方法自体は、公知の種々の手法を適用可能である。例えば、「On Fast Surface Reconstruction Methods for Large and Noisy Point Clouds」(http://ias.informatik.tu-muenchen.de/_media/spezial/bib/marton09icra.pdf)に記載されている手法を利用して、観測空間OSにメッシュMが設定されてもよい。
【0094】
図10に示すように、深度画像G2から設定されるメッシュMは、スケールを持たないので、実測値である特徴点群PとメッシュMの位置が合うとは限らない。このため、統合部104は、観測空間画像G4と深度画像G2との比較結果に基づいて、メッシュMのスケールを変更する。即ち、統合部104は、メッシュMの中から特徴点群Pに対応する部分を特定し、当該特定した部分が特徴点群Pに近づくように、メッシュMのスケールを変更する。
【0095】
スケールは、メッシュMの位置やサイズに影響するパラメータであり、スケールを変えると、メッシュMを構成する点群の間隔が変化したり、メッシュMと観測視点OVとの距離が変化したりする。例えば、スケールを大きくすると、点群の間隔が全体的に広がってメッシュMが大きくなったり、メッシュMと観測視点OVとの距離が長くなったりする。また例えば、スケールを小さくすると、点群の間隔が全体的に縮まってメッシュMが小さくなったり、メッシュMと観測視点OVとの距離が短くなったりする。
【0096】
例えば、統合部104は、特徴点群PとメッシュMとのずれ具合を示す指標値が閾値よりも小さくなるように、スケールを計算する。この指標値は、特徴点群PとメッシュMとの距離に基づいて算出される。例えば、指標値は、各特徴点とメッシュMとの距離を引数とした数式によって計算されるようにすればよく、例えば、特徴点群PとメッシュMとの距離の合計値であってもよいし、当該距離の平均値であってもよい。
【0097】
例えば、統合部104は、スケールを変化させながら指標値を計算し、指標値が閾値未満であるかを判定する。統合部104は、指標値が閾値以上である場合はスケールを再度変化させて判定処理をやり直す。一方、統合部104は、指標値が閾値未満である場合には、現在のスケールに決定する。統合部104は、このようにスケールを決定することで、特徴点群PとメッシュMとの全体的なずれ具合が小さくなるように、メッシュMを変更する。
【0098】
また、図10に示すように、統合部104は、スケールを変更してメッシュMを全体的に変更した後に、変更後のメッシュMと特徴点群Pとに基づいて、メッシュMを部分的に変更するようにしてもよい。例えば、統合部104は、特徴点ごとに、当該特徴点とメッシュMとの距離が閾値以上であるかを判定する。距離が閾値以上であれば、統合部104は、当該特徴点に対応するメッシュMを、当該特徴点に近づくように変更させる。メッシュMの部分的な変更は、一部の頂点(対象となる特徴点付近の頂点)の3次元座標を変更することで実行される。
【0099】
なお、統合部104が実行する処理は、上記の例に限られない。例えば、統合部104は、深度画像G2に基づいてメッシュMを変更した後に、法線画像G3に基づいて、メッシュMを再度変更してもよい。この場合、統合部104は、深度画像G2に基づいて変更したメッシュMの法線情報を取得し、法線画像G3が示す法線情報と比較する。そして、統合部104は、両者の差が小さくなるように、メッシュMを部分的に変更する。なお、統合部104は、深度画像G2と同様の処理により、観測空間画像G4と法線画像G3を比較することによって、メッシュMと、法線画像G3が示す法線情報と、の対応関係を特定すればよい。
【0100】
上記のように、本実施形態の統合部104は、2次元特徴量情報に基づいて、観測空間OSに撮影物のメッシュMを設定し、2次元観測情報と2次元特徴量情報との比較結果に基づいて、メッシュMのスケールを変更する。例えば、統合部104は、付加情報に基づいて観測空間OSにメッシュを設定し、観測空間情報に基づいて当該メッシュを変更する。
【0101】
例えば、統合部104は、2次元観測情報と2次元特徴量情報との比較結果に基づいて、メッシュMのスケールを変更した後に、メッシュMを部分的に変更する。また例えば、統合部104は、深度画像G2に基づいて、観測空間OSに撮影物のメッシュMを設定し、観測空間画像G4と深度画像G2との比較結果に基づいて、メッシュMのスケールを変更する。更に、統合部104は、観測空間画像と特徴量画像(例えば、深度画像G2と法線画像G3)との比較結果に基づいて、メッシュMのスケールを変更した後に、メッシュMを部分的に変更する。
【0102】
なお、統合部104は、メッシュMのうち、観測空間情報が示す特徴点群の3次元座標に対応するメッシュ部分を変更した後に、当該メッシュ部分の周囲のメッシュ部分を変更してもよい。周囲とは、所定距離以内の部分を意味する。例えば、統合部104は、特徴点群の3次元座標に合うように仮で設定したメッシュMを変更した後に、各特徴点の間にあるメッシュ部分が滑らかになるように、当該メッシュ部分を変更する。滑らかとは、例えば、凹凸の変化が急激になりすぎないことであり、位置変化が閾値未満となることである。例えば、統合部104は、メッシュMの凹凸の変化が閾値未満となるように、メッシュ部分を変更する。
【0103】
なお、メッシュ部分の変更方法自体は、公知の技術を利用してもよく、例えば、「As-Rigid-As-Possible Surface Modeling」(http://igl.ethz.ch/projects/ARAP/arap_web.pdf)に記載されたARAPと呼ばれる手法が用いられてもよい。特徴点群に合わせたメッシュ部分の周囲のメッシュ部分を変更することで、各メッシュ部分と周囲とのつじつまを合わせることができ、より滑らかで自然なメッシュを設定することができる。
【0104】
ARAP手法をそのまま利用してもよいが、本実施形態では、ARAP手法を拡張し、メッシュ推定の信頼性に基づいてメッシュMを変更する場合を説明する。
【0105】
例えば、メッシュMは機械学習によって推定されるものなので、メッシュMの中には、メッシュ推定の信頼性の高い部分もあれば信頼性の低い部分もある。このため、統合部104は、信頼性が高い部分はあまり変更せずに形状を保つようにして、信頼性が低い部分はある程度変更させて形状が変わることを許容するようにしてもよい。なお、信頼性とは、形状の推定精度の高さであり、被写体の表面形状とどの程度似ているかである。
【0106】
例えば、被写体が撮影部18の方を向いている場合は、その表面が撮影画像G1にはっきりと写っているため、メッシュMの推定精度が高いことが多い。一方、被写体が撮影部18に対して横を向いている場合は、その表面が撮影画像G1にあまり写っていないため、メッシュMの推定精度が低いことがある。このため、本実施形態では、メッシュMのうち、観測視点OVを向いている部分は信頼性が高く、観測視点OVを向いていない部分(観測視点OVに対して横を向いている部分)は信頼性が低いものとする。
【0107】
図11及び図12は、ARAP手法を拡張してメッシュMを変更する処理の説明図である。図11に示すように、本実施形態では、メッシュMの頂点の法線ベクトルnと、観測視点OV及び当該頂点を結ぶベクトルdと、のなす角度θが180°に近いほど信頼性が高いものとし、角度θが90°に近いほど信頼性が低いものとする。なお、本実施形態では、メッシュMは観測視点OVの反対方向を向くことはないものとし、原則として、角度θが90°よりも小さいことはないものとする。
【0108】
例えば、統合部104は、観測視点OVに対するメッシュ部分の向き(角度θ)に基づいて、当該メッシュ部分を変更する。即ち、統合部104は、観測視点OVに対するメッシュ部分の向きに基づいて、当該メッシュ部分の変更量を決定する。メッシュ部分の変更量とは、形状をどのくらい変形させるかであり、頂点の3次元座標の変更量(移動量)である。
【0109】
なお、観測視点OVに対する向きと、メッシュ部分の変更量と、の関係は、データ記憶部100に予め記憶されているものとする。当該関係は、数式形式又はテーブル形式のデータとして記憶されていてもよいし、プログラムコードの一部として記述されていてもよい。統合部104は、メッシュMの各メッシュ部分を、観測視点OVに対する当該メッシュ部分の向きに関連付けられた変更量に基づいて変更する。
【0110】
例えば、統合部104は、メッシュ部分が観測視点OVを向いているほど(角度θが180°に近いほど)当該メッシュ部分の変更量を小さくし、メッシュ部分が観測視点OVを向いていないほど(角度θが90°に近いほど)当該メッシュ部分の変更量を大きくする。別の言い方をすれば、統合部104は、メッシュ部分が観測視点OVを向いているほど当該メッシュ部分の剛性を高くし、メッシュ部分が観測視点OVを向いていないほど当該メッシュ部分の剛性を低くする。なお、メッシュ部分が観測視点OVを向いていないとは、メッシュ部分が観測視点OVに対して横を向いていることである。
【0111】
もし仮に、上記のようにメッシュMの各部分の信頼性に応じて剛性を変えなかったとすると、図12に示すように、メッシュMが特徴点Pに引っ張られるように不自然に変形してしまうことがある。この点、信頼性の高い部分(観測視点OVを向いている部分)の剛性を保った状態で変形させ、信頼性の高い部分の形状を維持することにより、上記のような不自然な変形を防止し、より自然なメッシュMとすることができる。
【0112】
なお、以降の説明では、特徴点Pに対応するメッシュMの頂点をvと記載する。例えば、頂点vは、観測視点OV及び特徴点Pを結ぶ直線(図11のベクトルdの点線)と、メッシュMと、の交点に最も近い頂点である。例えば、統合部104は、下記数式1−7に基づいて、メッシュMを変更してもよい。例えば、数式1−7(特に数式3−4)は、上記説明した観測視点OVに対する向きと、メッシュ部分の変更量と、の関係の一例である。
【0113】
まず、統合部104は、頂点vごとに、下記数式1の左辺に示すエネルギー関数の値を計算する。
【0114】
【数1】
【0115】
数式1では、頂点vに対応する近隣をCと記載し、当該近隣の各頂点をvと記載する。なお、近隣とは、頂点vの周囲の頂点であり、ここでは、隣接頂点(one-ring neighborhood)とするが、2つ以上離れた頂点が近隣に相当してもよい。また、変更後の頂点をv’と記載し、変更後の近隣をC’と記載し、変更後の隣接頂点をv’と記載する。
【0116】
数式1の右辺のN(v)は、頂点vの近隣Cに含まれる隣接頂点vの集まりである。数式1の右辺のRは、3×3の回転行列である。数式1に示すように、エネルギー関数E(C’)は、頂点vに対する隣接頂点vの相対的な位置変化に重み付け係数ωijを乗じた値の合計値となる。頂点vに対して隣接頂点vが大きく移動したとしても、重み付け係数ωijが小さければ、エネルギー関数E(C’)の値は小さくなる。逆に、頂点vに対して隣接頂点vがあまり移動しなかったとしても、重み付け係数ωijが大きければ、エネルギー関数E(C’)の値が大きくなる。
【0117】
重み付け係数ωijは、頂点vと隣接頂点vとの組み合わせによって値が決定される。例えば、統合部104は、下記の数式2に基づいて、重み付け係数ωijを計算する。数式2の右辺のαij,βijは、メッシュMのエッジ(i,j)の反対側の角度である。
【0118】
【数2】
【0119】
例えば、統合部104は、下記数式3に基づいて、頂点vごとに計算したエネルギー関数E(C’)の合計値を計算する。
【0120】
【数3】
【0121】
数式3では、変更後のメッシュMをM’と記載する。数式3の右辺に示すように、統合部104は、頂点vごとに、エネルギー関数E(C’)の値に重み付け係数ωを乗じた値を計算し、その合計値を計算する。重み付け係数ωは、例えば、シグモイド関数などを利用して決定されるようにすればよい。例えば、統合部104は、下記数式4に基づいて重み付け係数ωを計算する。
【0122】
【数4】
【0123】
数式4の右辺のaとbは係数であり、固定値である。例えば、角度θが180°に近いほど重み付け係数ωは大きくなり、メッシュ部分の変更がエネルギー関数の合計値(数式3の左辺)に与える影響が大きくなる。このため、メッシュ部分を少し変更しただけでエネルギー関数の合計値が大きく増加することになる。一方、角度θが90°に近いほど重み付け係数ωは小さくなり、メッシュ部分の変更がエネルギー関数の合計値に与える影響が小さくなる。このため、メッシュ部分を大きく変更したとしてもエネルギー関数の合計値はそれほど増加しないことになる。このように重み付け係数ωを設定することで、メッシュMの信頼性に応じて剛性を変化させることができる。
【0124】
なお、統合部104は、数式3により計算されるエネルギー関数E(C’)の合計値が小さくなるようにメッシュMを変更してもよいが、統合部104は、更に曲げ係数を考慮してもよい。曲げ係数は、メッシュM表面をどの程度曲げたか(変形させたか)を示す数値であり、例えば、「Z. Levi and C. Gotsman. Smooth rotation enhanced as-rigid-as-possible mesh animation. IEEE Transactions on Visualizationand Computer Graphics, 21:264-277, 2015.」に記載されているように、下記数式5に基づいて計算される。
【0125】
【数5】
【0126】
数式5の右辺のαは重み係数であり、Aはスケールを変えてもその特徴が変化しない表面を意味する。数式1の右辺のR,Rは、3×3の回転行列である。例えば、統合部104は、頂点vと隣接頂点vとの組み合わせごとに曲げ係数Bijを計算し、下記の数式6に基づいて、エネルギー関数E(C’)の合計値に反映させてもよい。
【0127】
【数6】
【0128】
なお、撮影画像G1は、所定フレームレートのもとで繰り返し取得され、統合部104は、上記説明した処理を繰り返し実行するので、統合部104は、過去に計算したスケールを考慮し、下記の数式7に基づいて、時刻tにおける観測空間OSの絶対的なスケールsを計算してもよい。なお、数式7の右辺のsは、メッシュMに設定されたスケールである。
【0129】
【数7】
【0130】
[4.本実施形態において実行される処理]
図13は、画像処理装置10において実行される処理の一例を示すフロー図である。図13に示す処理は、制御部11が、記憶部12に記憶されたプログラムに従って動作することによって実行される。図13に示す処理は、図8に示す機能ブロックにより実行される処理の一例であり、撮影部18が撮影するフレームごとに実行されるものとする。
【0131】
なお、図13に示す処理が実行されるにあたり、後述するマッピング処理の初期化が完了済みであり、観測空間OS(特徴点群Pの3Dマップ)が生成済みであるものとする。即ち、制御部11は、撮影画像G1から抽出した特徴点群Pを追跡し、SLAM技術を利用して特徴点群Pの3次元座標と観測視点OVを観測空間OSに設定済みであるものとする。
【0132】
図13に示すように、まず、制御部11は、撮影画像取得処理を実行する(S1)。S1においては、制御部11は、撮影部18が現在のフレームで生成した撮影画像G1を取得する。なお、制御部11は、時系列的に撮影画像G1を記憶部12に記録してもよい。即ち、制御部11は、撮影画像G1の履歴を記憶部12に記録してもよい。
【0133】
制御部11は、S1で取得した撮影画像G1に基づいて、2D追跡処理を実行する(S2)。2D追跡処理は、特徴点群Pの画像上での位置変化を追跡するための処理である。S2においては、まず、制御部11は、S1で取得した撮影画像G1から特徴点群Pを取得する。そして、制御部11は、当該特徴点群Pと、直近のフレーム(1つ前のフレーム)で取得された撮影画像G1の特徴点群Pと、の対応関係を特定し、特徴点群Pの2次元座標の差を示すベクトル情報を取得する。なお、制御部11は、S2で抽出した特徴点群Pの2次元座標を撮影画像G1と関連付けて記憶部12に記録する。また、制御部11は、時系列的に特徴点群Pのベクトル情報を記憶部12に記録してもよい。
【0134】
制御部11は、マッピング処理を開始するかを判定する(S3)。マッピング処理は、観測空間情報(特徴点群Pの3次元座標)を更新するための処理である。マッピング処理は、毎フレーム実行されてもよいし、複数フレームに1回実行されてもよい。マッピング処理が複数フレームに1回実行される場合には、マッピング処理の実行間隔は、固定値であってもよいし、可変値であってもよい。
【0135】
なお、ここでは、前回のマッピング処理が終了した次のフレームで、マッピング処理が再び開始される場合を説明する。このため、S3では、前回のマッピング処理が終了したかを判定し、前回のマッピング処理が終了していればマッピング処理を開始すると判定し、前回のマッピング処理が終了していなければマッピング処理を開始すると判定しない。
【0136】
マッピング処理を開始すると判定された場合(S3;Y)、制御部11は、S1で取得した撮影画像G1に基づいて、マッピング処理を開始する(S4)。S4で開始されたマッピング処理は、図13に示すメインルーチン処理と並列して(又はバックグラウンドで)実行される。
【0137】
図14は、マッピング処理の一例を示すフロー図である。図14に示すように、制御部11は、S2で実行された2D追跡処理の実行結果に基づいて、特徴点群Pの3次元座標を計算する(S41)。S41においては、制御部11は、前回のマッピング処理からの特徴点群Pの移動量の累積を計算し、SLAM技術を利用して特徴点群Pの3次元座標を計算する。
【0138】
制御部11は、S2で実行された2D追跡処理の実行結果に基づいて、撮影部18の位置を推定する(S42)。S42においては、制御部11は、制御部11は、前回のマッピング処理からの特徴点群Pの移動量の累積を計算し、SLAM技術を利用して撮影部18の位置と向きを計算する。
【0139】
制御部11は、S41とS42の計算結果に基づいて、観測空間情報を更新する(S43)。S43においては、制御部11は、S41で計算した特徴点群Pの3次元座標と、S42で計算した位置と向きと、に基づいて、特徴点群Pの3次元座標と観測視点パラメータとを更新する。
【0140】
図13に戻り、マッピング処理を開始すると判定されない場合(S3;N)、又は、S4においてマッピング処理が開始された場合、制御部11は、復元処理を開始するかを判定する(S5)。復元処理は、機械学習によって撮影物の3次元形状を推定する処理であり、本実施形態では、深度画像G2と法線画像G3を取得する処理である。復元処理は、毎フレーム実行されてもよいし、複数フレームに1回実行されてもよい。復元処理が複数フレームに1回実行される場合には、復元処理の実行間隔は、固定値であってもよいし、可変値であってもよい。
【0141】
なお、復元処理は、マッピング処理よりも計算量が多い(負荷が高い)ことがあるので、この場合には、復元処理の実行間隔は、マッピング処理よりも長くしてもよい。例えば、マッピング処理を2フレームに1回実行し、復元処理を3フレームに1回実行するようにしてもよい。
【0142】
また、ここでは、前回の復元処理が終了した次のフレームで復元処理が再び開始される場合を説明する。このため、S5では、前回の復元処理が終了したかを判定し、前回の復元処理が終了していれば復元処理を開始すると判定し、前回の復元処理が終了していなければ復元処理を開始すると判定しない。
【0143】
復元処理を開始すると判定された場合(S5;Y)、制御部11は、実行中のマッピング処理と同じ撮影画像G1に基づいて、復元処理を開始する(S6)。S6で開始された復元処理は、図13に示すメインルーチン処理と並列して(又はバックグラウンドで)実行される。
【0144】
図15は、復元処理の一例を示すフロー図である。図15に示すように、制御部11は、撮影画像G1と深度学習データとに基づいて、深度画像G2を取得する(S61)。S61においては、制御部11は、撮影画像G1の中から深度学習データが示す物体と類似する部分を特定する。そして、制御部11は、当該部分の各画素の画素値として、深度学習データが示す当該物体の深度を設定することによって、深度画像G2を生成する。
【0145】
制御部11は、撮影画像G1と法線学習データとに基づいて、法線画像G3を取得する(S62)。S62においては、制御部11は、撮影画像G1の中から法線学習データが示す物体と類似する部分を特定する。そして、制御部11は、当該部分の各画素の画素値として、法線学習データが示す当該物体の法線のベクトル情報を設定することによって、法線画像G3を生成する。
【0146】
図13に戻り、復元処理を開始すると判定されない場合(S5;N)、又は、S6において復元処理が開始された場合、制御部11は、統合処理を開始するか判定する(S7)。統合処理は、観測空間OSに撮影物のメッシュを設定する処理である。統合処理は、毎フレーム実行されてもよいし、複数フレームに1回実行されてもよい。統合処理が複数フレームに1回実行される場合には、統合処理の実行間隔は、固定値であってもよいし、可変値であってもよい。
【0147】
なお、ここでは、マッピング処理と復元処理が両方とも完了した場合に統合処理が開始される場合を説明する。このため、S7では、実行中のマッピング処理と復元処理が終了したかを判定し、両方とも終了していれば統合処理を開始すると判定し、何れか一方が終了していなければ統合処理を開始すると判定しない。
【0148】
統合処理を開始すると判定された場合(S7;Y)、制御部11は、統合処理を開始する(S8)。S8で開始された統合処理は、図13に示すメインルーチン処理と並列して(又はバックグラウンドで)実行される。
【0149】
図16は、統合処理の一例を示すフロー図である。図16に示すように、制御部11は、観測視点OVから観測空間OS内の特徴点群Pを見た様子を示す観測空間画像G4を生成する(S81)。観測空間画像G4は、深度画像G2と同様の画像であり、各画素は特徴点群Pの深度を示す。S81においては、制御部11は、観測視点OVと特徴点群Pとの距離を計算することによって、観測空間画像G4を生成する。
【0150】
制御部11は、S81で生成した観測空間画像G4に基づいて、深度画像G2が示すメッシュを補正する(S82)。S82においては、制御部11は、観測空間画像G4と深度画像G2とに基づいて、特徴点群Pに対応するメッシュの位置を特定し、これらの深度の差が小さくなるように、メッシュのスケールを補正する。更に、制御部11は、特徴点とメッシュとの距離が閾値以上となっている部分ついては、当該距離が閾値未満となるように、メッシュを局所的に補正する。また、制御部11は、特徴点群Pと一致させたメッシュ部分の周囲のメッシュ部分が滑らかになるように補正する。更に、制御部11は、観測視点OVに対するメッシュ部分の向きに基づいて、当該メッシュ部分を変更させてもよい。
【0151】
制御部11は、法線画像G3に基づいて、S82で補正したメッシュを再度補正する(S83)。S83においては、制御部11は、観測空間画像G4と深度画像G2とに基づいて、特徴点群Pに対応する法線方向を特定し、S82で補正したメッシュの法線(メッシュのうち特徴点群Pに対応する部分の法線)と、法線画像G3が示す法線と、の差が小さくなるように、メッシュを補正する。
【0152】
制御部11は、S83で補正したメッシュに基づいて、観測空間OSを更新する(S84)。S84においては、制御部11は、S83で補正したメッシュの頂点座標を観測空間情報に格納することになる。これにより、マッピング処理では疎な点群データだった観測空間情報が、統合処理により密な点群データとなる。
【0153】
図13に戻り、統合処理を開始すると判定されない場合(S7;N)、又は、S8において統合処理が開始された場合、制御部11は、本処理は終了する。以降、フレームが訪れるたびに、図13の処理が再度実行される。
【0154】
なお、リアルタイムで拡張現実を提供する場合には、本処理を終了する前に、制御部11は、架空の物体を示す3次元オブジェクトを観測空間OSに配置し、観測視点OVから観測空間OSを見た様子を示す仮想画像を生成し、撮影画像G1と合成して表示部15に表示させるようにしてもよい。その際に合成する撮影画像G1としては、本フレームのS1で取得されたものであってもよいし、マッピング処理と復元処理で参照された撮影画像G1であってもよい。更に、拡張現実では、ボールや乗物などの移動体を示すオブジェクトが合成されてもよい。この場合、観測空間OSのメッシュと、移動体を示すオブジェクトと、の当たり判定が実行され、移動体が跳ね返ったり、壁をよじ登ったりするようにしてもよい。
【0155】
また、先述したように、マッピング処理と復元処理は、毎フレーム実行する必要はなく、複数フレームに1回実行してもよい。更に、復元処理は、マッピング処理よりも計算量が多いことがあるので、復元処理の実行間隔は、マッピング処理の実行間隔よりも長くてもよい。
【0156】
図17は、各処理の実行間隔の一例を示す図である。図17に示す例では、撮影画像取得処理(S1)と2D追跡処理(S2)とは、毎フレーム実行される。一方、マッピング処理(図14)は、n(nは2以上の整数)フレームに1回実行され、復元処理は、m(mは2以上の整数であり、m>n)フレームに1回実行される。統合処理は、復元処理の完了後に実行されることになる。図17に示すように、マッピング処理と復元処理で参照される撮影画像G1は、同じフレームで取得された撮影画像G1となっており、同じ視点から得られた撮影画像G1に基づいてマッピング処理と復元処理が実行されるようになっている。
【0157】
以上説明した画像処理装置10によれば、撮影部18が撮影した撮影画像G1と、機械学習によって得られた付加情報と、を統合することによって、観測空間OSの情報量を高めるための構成を簡易化することができる。例えば、深度カメラなどの特殊なセンサを利用しなくても、観測空間OSに、特徴点群Pの3次元座標以外の情報を付加することができる。このため、特殊なセンサを搭載していないスマートフォンなどの端末であったとしても、精度の高い観測空間OSを生成することができる。
【0158】
また、画像処理装置10は、付加情報として特徴量画像(例えば、深度画像G2又は法線画像G3)を利用する場合に、観測空間画像G4と特徴量画像を比較することによって、同じ視点から見た画像同士を比較することができる。即ち、従来技術では、2つのカメラが並列して並ぶRGB−Dカメラが用いられおり、視点位置の違いにより観測空間OSに誤差が生じていたが、画像処理装置10は、同じ視点が用いられるので誤差の発生を防止し、観測空間OSの再現度を高めることができる。
【0159】
また、画像処理装置10は、観測空間画像G4と深度画像G2の比較結果に基づいてメッシュのスケールを変更することによって、機械学習で得られたメッシュを全体的に実測値に近づけることができるので、簡易な処理によって、観測空間OSの再現度を高めることができる。例えば、メッシュの頂点を1個1個個別に変更するのではなく、スケールの変更によって全体的にメッシュを実測値に近づけるので、処理の簡略化(計算量の低減)を実現し、画像処理装置10の処理負荷を軽減しつつ、処理速度の向上を図ることができる。
【0160】
また、メッシュのスケールを変更した後に、メッシュを部分的に調整するので、観測空間OSの再現度をより効果的に高めることができる。この場合も、特徴点群P全てについて個別にメッシュ部分を変更するのではなく、違いの大きな部分だけを対象とすることによって、観測空間OSの再現度を高めるための処理の簡略化を実現できるので、より効果的に、画像処理装置10の処理負荷を軽減し、処理速度の向上を図ることができる。
【0161】
また、付加情報として、撮影物の3次元形状を用いることで、現実空間RSの3次元形状を観測空間OSで再現することができ、現実空間RSの3次元形状を観測空間OSで詳細に再現するための構成を簡略化することができる。
【0162】
また、付加情報として、撮影物のメッシュに関する情報を用いることで、観測空間OSに撮影物を表すメッシュを配置することができ、現実空間RSの物体を示すメッシュを観測空間OSに配置するための構成を簡略化することができる。また、観測空間OSは、観測データに基づいているので、疎ではあるが正確性が高く、付加情報は、機械学習を用いた予測値なので、正解性が低いことがあるところ、疎ではあるが正確な観測空間OSの特徴点群と、密ではあるが正確さが低い付加情報のメッシュと、を統合することで、正確性を担保しつつ、密なデータを取得することができるようになる。
【0163】
また、付加情報として撮影物のメッシュに関する情報を用いる場合に、実測値である観測空間情報に基づいて当該メッシュを変更することにより、観測空間OSの再現度を効果的に高めることができる。
【0164】
また、特徴点群の3次元座標に対応するメッシュ部分を変更した後に、当該メッシュ部分の周囲のメッシュ部分を変更することで、メッシュの表現形状を滑らかにすることができる。即ち、特徴点間を保管するデータとしてのデータ精度の向上を図ることができ、観測空間OSの再現度を効果的に高めることができる。
【0165】
また、観測視点OVに対する各メッシュ部分の向きに基づいて、当該メッシュ部分を変更することで、信頼度の高いメッシュ部分は、なるべくその形状を保ったまま統合させ、信頼度の低いメッシュ部分は、その形状を変更したうえで統合させることができるので、観測空間OSの再現度を効果的に高めることができる。
【0166】
また、付加情報として、撮影物の法線に関する情報を用いることで、観測空間OSに法線を設定し、撮影物の3次元形状を表すことができ、現実空間RSの物体の表面の向きを観測空間OSで再現するための構成を簡略化することができる。
【0167】
また、観測空間情報と付加情報を同じフレームの撮影画像G1から生成することで、同じ視点の画像で互いの対応関係を特定することができ、先述したような視点位置の違いによる誤差の発生を防止し、観測空間OSの精度をより効果的に高めることができる。
【0168】
[5.変形例]
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【0169】
(1)例えば、実施形態では、付加情報の一例として、撮影物の深度又は法線を説明したが、付加情報は、撮影物の分類に関する情報であってもよい。即ち、付加情報は、撮影画像G1の各画素を撮影物ごとにグループ分けした情報であってもよい。本変形例では、実施形態と同様、特徴量画像が用いられる場合を説明し、撮影画像G1の各画素を分類した分類画像を特徴量画像の一例として説明する。
【0170】
図18は、分類画像の一例を示す図である。図18に示すように、分類画像G5は、撮影画像G1と同じサイズ(縦横の画素数が同じ)であり、撮影物ごとに、画像内の領域をグループ分けした画像である。分類画像G5は、撮影物ごとに画素値が割り当てられている。即ち、分類画像G5は、各画素に対し、撮影物を識別する情報が付与されたラベル画像である。画素値が同じ画素は、同じ撮影物を示していることになる。
【0171】
分類画像G5は、カラー画像であってもよいし、グレースケール画像であってもよい。図18の例では、分類画像G5の画素値を模式的に網点の濃さで示しており、網点の濃さが同じ画素は、同じ物体を示していることになる。このため、ベッドを示す画素は第1の画素値となる。同様に、壁を示す画素は第2の画素値となり、床を示す画素は第3の画素値となり、絵画を示す画素は第4の画素値となる。
【0172】
例えば、統合部104は、分類画像G5に基づいて、観測空間情報が示す特徴点群Pをグループ分けする。例えば、統合部104は、実施形態で説明した方法と同様に、観測空間画像G4を生成し、特徴点群Pに対応する分類画像G5内の画素を特定する。そして、統合部104は、分類画像G5における各画素の画素値を特定し、同じ値を示している特徴点同士を同じグループとして分類する。即ち、統合部104は、特徴点群Pの3次元座標に対し、グループを識別する情報を付与する。
【0173】
変形例(1)によれば、付加情報として、撮影物の分類に関する情報を用いることで、観測空間OSの点群をグループ分けすることができる。
【0174】
(2)また例えば、実施形態では、深度画像G2に基づいて変更したメッシュMを微調整するために法線画像G3が用いられる場合を説明したが、法線画像G3の利用方法は上記の例に限られない。例えば、統合部104は、特徴点群Pの3次元座標に法線情報を付加してもよい。
【0175】
図19は、統合部104が実行する処理の一例を示す図である。図19に示すように、統合部104は、各特徴点に対し、当該特徴点に対応する法線情報を付加する。実施形態で説明したように、統合部104は、観測空間画像G4と法線画像G3とを比較することによって、特徴点と法線情報との対応関係を特定すればよい。例えば、統合部104は、観測視点OVと特徴点とを結ぶ直線上にある法線情報(即ち、画像上で同じ画素にある法線情報)を当該特徴点にマッピングすることによって、観測空間OSの情報量を増やしてもよい。
【0176】
この場合、観測空間OSの点群の数は増えないが、法線情報が追加されるので、統合部104は、撮影物の表面形状を示すメッシュを生成することができるようになる。更に、実施形態で説明した方法と組み合わせて、統合部104は、観測空間OSを密な点群データとしつつ、特徴点群Pに対して法線情報を付加してもよい。このようにすれば、観測空間OSの情報量を更に増加させることができる。
【0177】
また例えば、深度画像G2の画素値が高いほど深度が高い場合を説明したが、画素値と深度の関係は逆でもよく、画素値が低いほど深度が高いことを示してもよい。同様に、法線画像G3の画素値と法線とは一定の法則のもとでこれらの間に相関関係があればよい。
【0178】
また例えば、実施形態では、3次元的な情報である観測空間情報を2次元的な情報である観測空間画像G4に変換したうえで、2次元的な情報である深度画像G2及び法線画像G3と比較する場合を説明したが、深度画像G2及び法線画像G3を3次元的な情報に変換したうえで、観測空間情報と比較してもよい。即ち、統合部104は、観測空間情報と付加情報との次元を揃えたうえで、互いの対応関係を特定し、これらを統合する処理を実行すればよい。
【0179】
また例えば、付加情報が画像形式の情報である場合を説明したが、付加情報は任意のデータ形式であればよく、画像形式を取らない数値群データであってもよいし表形式データであってもよく、種々のデータ形式であってよい。付加情報として画像形式以外の情報を利用する場合には、特に画像同士を比較する処理は実行されなくてよい。更に、機械学習データにメッシュの頂点座標を学習させておき、付加情報を、画像のような2次元的な情報ではなく、3次元的な情報としてもよい。この場合には、観測空間情報との次元を合わせる処理が実行されなくてもよい。
【0180】
また例えば、室内に家具などが配置されている場合を説明したが、特に室内に家具などが配置されていなくてもよい。また例えば、現実空間RSの一例として室内を説明したが、現実空間RSは屋外であってもよく、例えば、路上、駐車場、イベント会場などであってもよい。また例えば、画像処理装置10が再現した観測空間OSを拡張現実に利用する場合を説明したが、任意の場面で観測空間OSを利用可能であり、ロボットの移動制御に用いてもよい。
【0181】
(3)また例えば、画像処理システムが1台の画像処理装置10によって実現される場合を説明したが、画像処理システムは、複数台のコンピュータを含んでもよい。
【0182】
図20は、変形例における画像処理システムの一例を示す図である。図20に示すように、変形例の画像処理システムSは、画像処理装置10とサーバ20とを含む。画像処理装置10とサーバ20とは、インターネットなどのネットワークに接続されている。
【0183】
サーバ20は、サーバコンピュータであり、例えば、制御部21、記憶部22、及び通信部23を含む。制御部21、記憶部22、及び通信部23のハードウェア構成は、それぞれ制御部11、記憶部12、及び通信部13と同様であるので、説明を省略する。
【0184】
実施形態及び上記変形例(1)−(2)で説明した処理は、画像処理装置10とサーバ20とで分担されるようにしてもよい。例えば、画像処理装置10において、撮影画像取得部101及び観測空間情報取得部102が実現され、サーバ20において、データ記憶部100、機械学習部103、及び統合部104が実現されてもよい。この場合、データ記憶部100は記憶部22を主として実現され、機械学習部103及び統合部104は制御部21を主として実現される。サーバ20は、画像処理装置10から撮影画像G1を受信する。そして、実施形態で説明した方法と同様にして、機械学習部103は付加情報を取得し、統合部104は統合処理を実行する。そして、画像処理装置10は、サーバ20から統合部104による統合処理の結果を受信すればよい。
【0185】
また例えば、画像処理装置10において、撮影画像取得部101、観測空間情報取得部102、及び機械学習部103が実現され、サーバ20において統合部104が実現されてもよい。また例えば、画像処理装置10において、撮影画像取得部101、観測空間情報取得部102、及び統合部104が実現され、サーバ20において機械学習部103が実現されてもよい。また例えば、画像処理装置10において、撮影画像取得部101が実現され、サーバ20において、観測空間情報取得部102、機械学習部103、及び統合部104が実現されてもよい。
【0186】
また例えば、サーバ20において、データ記憶部100、撮影画像取得部101、観測空間情報取得部102、機械学習部103、及び統合部104の全ての機能が実現されてもよい。この場合、サーバ20は、画像処理装置10に対し、観測空間情報を送信してもよい。
【0187】
なお、図20では、画像処理装置10とサーバ20を1台ずつ示しており、画像処理システムSに2台のコンピュータが含まれている場合を説明したが、画像処理システムSは、3台以上のコンピュータが含まれていてもよい。この場合、3台以上のコンピュータによって各処理が分担されてもよい。また例えば、画像処理装置10に撮影部18が含まれている必要はなく、撮影画像取得部101は、画像処理装置10に含まれない撮影部18で撮影された撮影画像G1を取得してもよい。更に、データ記憶部100は、画像処理システムの外部にあるサーバコンピュータ等で実現されてもよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20