(57)【要約】【課題】  高精度に位置及び／又は姿勢を求めるための技術を提供すること。【解決手段】  現実空間に対応する仮想空間の画像及び該仮想空間の幾何情報を学習データとして生成し、該学習データを用いて学習モデルの学習処理を行う。撮像装置により撮像された現実空間の撮像画像を学習モデルに入力することで該学習モデルから出力される幾何情報に基づいて、撮像装置の位置及び／又は姿勢を算出する。【選択図】  図２
2019124538.tif 000002
【特許請求の範囲】
【請求項１】
現実空間に対応する仮想空間の画像及び該仮想空間の幾何情報を学習データとして生成する生成手段と、
前記学習データを用いて学習モデルの学習処理を行う学習手段と、
撮像装置により撮像された現実空間の撮像画像を前記学習モデルに入力することで該学習モデルから出力される幾何情報に基づいて、前記撮像装置の位置及び／又は姿勢を算出する算出手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記生成手段は、前記仮想空間における視点に係るパラメータと、前記仮想空間の環境に係るパラメータと、の少なくともいずれか一方と、前記仮想空間の幾何形状を表すモデルデータと、を用いて前記画像及び前記幾何情報を生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記視点に係るパラメータは、前記視点の位置及び／又は姿勢、前記視点の個数、前記視点の移動速度、前記視点の焦点距離、主点、露光時間、フォーカス位置、のうち少なくともいずれか１つを含むことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記環境に係るパラメータは、前記仮想空間における照明条件を規定するパラメータ、前記仮想空間中に配置するモデルの種類、数、位置、姿勢、大きさ、のうち少なくともいずれか１つを含むことを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
更に、
前記視点に係るパラメータと、前記環境に係るパラメータと、を設定する手段を備えることを特徴とする請求項２乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記モデルデータは、前記現実空間を三次元計測することで得られる情報に基づいて前記情報処理装置とは別個の装置が生成したデータであることを特徴とする請求項２乃至５の何れか１項に記載の情報処理装置。
【請求項７】
更に、
前記撮像画像と、該撮像画像を前記学習モデルに入力することで該学習モデルから出力される幾何情報と、に基づいて前記モデルデータを更新する手段を備えることを特徴とする請求項２乃至６の何れか１項に記載の情報処理装置。
【請求項８】
前記学習手段は、前記撮像画像と、該撮像画像を前記学習モデルに入力することで該学習モデルから出力される幾何情報と、に基づいて、前記学習モデルの追加学習を行うことを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
前記生成手段は、規定の状況ごとに前記学習データを生成し、
前記学習手段は、規定の状況ごとに、該状況について前記生成手段が生成した学習データを用いて学習モデルの学習処理を行い、
前記算出手段は、規定の状況ごとに前記学習手段が生成した学習モデルのうち、測定した状況に対応する学習モデルを選択し、該選択した学習モデルに前記撮像画像を入力することで該学習モデルから出力される幾何情報に基づいて、前記撮像装置の位置及び／又は姿勢を算出することを特徴とする請求項１乃至８の何れか１項に記載の情報処理装置。
【請求項１０】
前記生成手段は、規定の状況ごとに前記学習データを生成し、
前記学習手段は、前記学習データと、該学習データに対応する状況と、を用いて学習モデルの学習処理を行い、
前記算出手段は、前記学習モデルに前記撮像画像及び測定した状況を入力することで該学習モデルから出力される幾何情報に基づいて、前記撮像装置の位置及び／又は姿勢を算出することを特徴とする請求項１乃至８の何れか１項に記載の情報処理装置。
【請求項１１】
前記幾何情報は前記仮想空間のデプスマップであることを特徴とする請求項１乃至１０の何れか１項に記載の情報処理装置。
【請求項１２】
前記生成手段は、前記仮想空間の画像及び該仮想空間の幾何情報を所定の範囲内にある縮尺で生成することを特徴とする請求項１乃至１１の何れか１項に記載の情報処理装置。
【請求項１３】
前記撮像画像と前記学習モデルから出力される前記幾何情報とは所定の範囲内にある縮尺であることを特徴とする請求項１乃至１２の何れか１項に記載の情報処理装置。
【請求項１４】
更に、
前記撮像画像と、前記幾何情報と、前記撮像装置の位置及び／又は姿勢と、に基づいて前記現実空間の三次元マップの生成・更新を行う手段を備え、
前記算出手段は、前記幾何情報と、前記三次元マップと、に基づいて、前記撮像装置の位置及び／又は姿勢を算出する
ことを特徴とする請求項１乃至１３の何れか１項に記載の情報処理装置。
【請求項１５】
前記算出手段は、前記撮像装置の位置及び／又は姿勢に基づいて前記情報処理装置を搭載している車両の位置及び／又は姿勢を算出することを特徴とする請求項１乃至１４の何れか１項に記載の情報処理装置。
【請求項１６】
請求項１５に記載の情報処理装置と、
前記算出手段が算出した前記車両の位置及び／又は姿勢と、前記幾何情報と、に基づいて前記車両の運転制御を行う制御手段と
を備えることを特徴とするシステム。
【請求項１７】
前記システムは、前記撮像装置を有することを特徴とする請求項１６に記載のシステム。
【請求項１８】
前記システムは、表示装置を有することを特徴とする請求項１６又は１７に記載のシステム。
【請求項１９】
前記制御手段は、
前記算出手段が算出した前記車両の位置及び／又は姿勢と、前記幾何情報と、に基づいて、前記運転制御のための情報を生成する手段と、
前記運転制御のための情報に基づいて前記車両の運転制御を行うアクチュエータ部と
を備えることを特徴とする請求項１６乃至１８の何れか１項に記載のシステム。
【請求項２０】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の生成手段が、現実空間に対応する仮想空間の画像及び該仮想空間の幾何情報を学習データとして生成する生成工程と、
前記情報処理装置の学習手段が、前記学習データを用いて学習モデルの学習処理を行う学習工程と、
前記情報処理装置の算出手段が、撮像装置により撮像された現実空間の撮像画像を前記学習モデルに入力することで該学習モデルから出力される幾何情報に基づいて、前記撮像装置の位置及び／又は姿勢を算出する算出工程と
を備えることを特徴とする情報処理方法。
【請求項２１】
コンピュータを、請求項１乃至１５の何れか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置及び／又は姿勢を求める技術に関するものである。
【背景技術】
【０００２】
画像情報に基づく撮像装置の位置及び／又は姿勢（以下、位置姿勢と記す）の計測は、自動車やロボットの自己位置姿勢推定、あるいは複合現実感／拡張現実感における現実空間と仮想物体との位置合わせなど様々な目的で利用される。
【０００３】
非特許文献１には、事前に学習した学習モデルを用いて画像情報から位置姿勢を算出するための指標である幾何情報（奥行き情報）を推定し、該推定した幾何情報をもとに位置姿勢情報を算出する方法が開示されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｋ．  Ｔａｔｅｎｏ，  Ｆ．  Ｔｏｍｂａｒｉ，  Ｉ．  Ｌａｉｎａ  ａｎｄ  Ｎ．  Ｎａｖａｂ，  “ＣＮＮ−ＳＬＡＭ：  Ｒｅａｌ−ｔｉｍｅ  ｄｅｎｓｅ  ｍｏｎｏｃｕｌａｒ  ＳＬＡＭ  ｗｉｔｈ  ｌｅａｒｎｅｄ  ｄｅｐｔｈ  ｐｒｅｄｉｃｔｉｏｎ”，  ＩＥＥＥ  Ｃｏｍｐｕｔｅｒ  Ｓｏｃｉｅｔｙ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ  （ＣＶＰＲ），  ２０１７
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献１では、学習モデルを生成するために使用した画像のシーンの見え方（アピアランス）と、撮像装置が撮像した入力画像に写るシーンの見え方と、が類似している、という前提がある。そのため、シーンの見え方が類似していない場合に位置姿勢算出精度を向上させるための解決策が求められていた。本発明は、高精度に位置及び／又は姿勢を求めるための技術を提供する。
【課題を解決するための手段】
【０００６】
本発明の一様態は、現実空間に対応する仮想空間の画像及び該仮想空間の幾何情報を学習データとして生成する生成手段と、前記学習データを用いて学習モデルの学習処理を行う学習手段と、撮像装置により撮像された現実空間の撮像画像を前記学習モデルに入力することで該学習モデルから出力される幾何情報に基づいて、前記撮像装置の位置及び／又は姿勢を算出する算出手段とを備えることを特徴とする。
【発明の効果】
【０００７】
本発明の構成によれば、高精度に位置及び／又は姿勢を求めることができる。
【図面の簡単な説明】
【０００８】
【図１】システムの構成例を示すブロック図。
【図２】情報処理装置１０の機能構成例を示すブロック図。
【図３】システムが行う処理のフローチャート。
【図４】ＧＵＩ４００の構成例を示す図。
【図５】システムの機能構成例を示すブロック図。
【図６】情報処理装置２０がモデルデータを生成するために行う処理のフローチャート。
【図７】システムの機能構成例を示すブロック図。
【図８】システムが行う処理のフローチャート。
【図９】システムの機能構成例を示すブロック図。
【図１０】システムが行う処理のフローチャート。
【図１１】システムの機能構成例を示すブロック図。
【図１２】システムが行う処理のフローチャート。
【図１３】システムの機能構成例を示すブロック図。
【図１４】システムが行う処理のフローチャート。
【図１５】コンピュータ装置のハードウェア構成例を示すブロック図。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１０】
［第１の実施形態］
本実施形態では、自動車の自動運転を行うために該自動車の位置及び／又は姿勢（以下、「位置及び／又は姿勢」を位置姿勢と称する）の算出を行うシステムについて説明する。本実施形態に係るシステムの構成例について、図１のブロック図を用いて説明する。
【００１１】
撮像部１１は、自動車１の進行方向（矢印で示す方向）に向けて自動車１のフロントガラスの裏に固定的に取り付けられており、該進行方向の環境（現実空間、シーン）の動画像を撮像する。撮像部１１により撮像された動画像の各フレームの画像（撮像画像）は情報処理装置１０に対して出力される。撮像部１１は、例えば、カラーの動画像を撮像可能なカメラ（ＲＧＢカラーカメラ）である。なお、撮像部１１の取り付け位置は、自動車１の進行方向の環境を撮像可能な位置であれば、特定の取り付け位置に限らない。また、自動車１と撮像部１１との間の相対的な位置姿勢関係は予めキャリブレーションされており、該相対的な位置姿勢関係は既知の情報（バイアス情報）として情報処理装置１０に登録されているものとする。
【００１２】
表示部１２は、自動車１のダッシュボード付近に固定的に取り付けられており、タッチパネル画面を有している。表示部１２は、情報処理装置１０や運転制御部１３から出力された様々な情報を表示し、これにより該様々な情報を自動車１の運転者や同乗者に対して提供することができる。また、自動車１の運転者や同乗者は該タッチパネル画面に対してタッチ操作やスワイプ操作等の各種の操作入力を行うことで、情報処理装置１０に対して各種の入力を行うことができる。なお、表示部１２はタッチパネル画面を有することに限らず、情報表示を行う表示画面と、自動車１の運転者や同乗者からの操作入力を受け付けるためのボタン群などのユーザインターフェースと、を有する構成としても良い。
【００１３】
情報処理装置１０は、撮像部１１による撮像画像に基づいて、自動車１が走行するシーンの幾何情報と、自動車１の位置姿勢と、を推定し、該推定した幾何情報と自動車１の位置姿勢とを運転制御部１３に対して出力する。また情報処理装置１０は更に、この推定に使用する学習モデルの学習処理も行う。また情報処理装置１０は表示部１２に対して、表示対象とする様々な情報を出力する。
【００１４】
運転制御部１３は、情報処理装置１０から出力された幾何情報と位置姿勢とに基づいて、自動車１の車輪の回転トルク、自動車１の進行方向を決定し、該決定した回転トルク及び進行方向をアクチュエータ部１４に対して通知する。アクチュエータ部１４は、運転制御部１３から通知された車輪の回転トルク及び進行方向に基づき自動車１の車輪の駆動制御を行う。なお、運転制御部１３が決定する情報は、自動車１の車輪の回転トルク、自動車１の進行方向に限らず、自動車１の運転制御に係る情報であれば、如何なる情報であっても良い。例えば、自動車１のブレーキやウインカーに係る情報であっても良い。そして、アクチュエータ部１４は、運転制御部１３からの情報に基づいて自動車１の車輪の駆動制御を行う。
【００１５】
このように、自動車１は、撮像画像に基づいて推定された幾何情報及び位置姿勢から自動車１の車輪の回転トルク及び進行方向を決定し、該回転トルク及び進行方向に基づき自動車１の車輪の駆動制御を行うことで自動運転を行う自動車である。
【００１６】
次に、情報処理装置１０の機能構成例について、図２のブロック図を用いて説明する。なお、図２に示した構成は、情報処理装置１０が行うものとして後述する各処理を実現可能な構成の一例に過ぎない。例えば、幾つかの機能部を１つの機能部に纏めても良いし、１つの機能部を機能別に複数の機能部に分割しても良い。制御部１９９は、情報処理装置１０全体の動作制御を行う。
【００１７】
保持部１０１は、自動車１が走行する環境において該自動車１の周囲に存在する物体のモデルデータを保持する。「自動車１が走行する環境において該自動車１の周囲に存在する物体」とは、例えば道路、標識、信号、建築物、自然物、人、動物、自動車、自転車など、自動車１が走行する環境において存在する現実物体である。また、「物体のモデルデータ」とは、例えば物体をポリゴンで表現する場合には、ポリゴンデータ（各ポリゴンの法線ベクトル、該ポリゴンを構成する各頂点の３次元座標、該ポリゴンの色や属性等）、テクスチャデータ、を含む。また、物体を点群で表現する場合には、「物体のモデルデータ」は、該点群におけるそれぞれの点の３次元座標を含む。さらに、それぞれの点に色情報を持たせても良い。このように、「物体のモデルデータ」は、該物体の幾何形状を表すデータであれば、如何なるデータであっても良い。
【００１８】
表示制御部１０２は、表示部１２における表示を制御すると共に、自動車１の運転者や同乗者が表示部１２に対してタッチ操作やスワイプ操作などの操作を行うことで入力したパラメータ（視点パラメータ及び環境パラメータ）を取得する。
【００１９】
視点パラメータとは、保持部１０１が保持するモデルデータに基づいて生成される仮想物体（モデル）によって構成される仮想空間中に設定する視点（仮想視点）に係るパラメータであり、例えば、配置パラメータ、撮像パラメータ、移動速度パラメータを含む。配置パラメータは、仮想空間中における仮想視点の位置姿勢、仮想視点の個数、等のパラメータを含む。撮像パラメータは、仮想視点の焦点距離、主点といった仮想視点の内部パラメータや、仮想視点の露光時間、フォーカス位置などといったパラメータを含む。移動速度パラメータは、仮想視点の移動速度を示すパラメータである。
【００２０】
一方、環境パラメータとは、保持部１０１が保持するモデルデータに基づいて生成される仮想物体（モデル）によって構成される仮想空間に係るパラメータであり、例えば、照明パラメータ、物体パラメータ、地域パラメータを含む。照明パラメータは、時刻、季節、天気などの変化に基づき変わる照明条件を規定するパラメータである。物体パラメータは、仮想空間中に配置するモデルの種類、数、位置、姿勢、大きさなどに関するパラメータである。地域パラメータは、自動車１が走行する国、場所、領域の名称や位置、さらには地域の法律や法令に基づく規定（例えば道路の走行レーンが右か左かや、高速道路の最高速度など）といったパラメータである。
【００２１】
そして表示制御部１０２は、自動車１の運転者や同乗者が表示部１２を操作することで入力した視点パラメータは入力部１０３に対して出力し、自動車１の運転者や同乗者が表示部１２を操作することで入力した環境パラメータは入力部１０４に対して出力する。
【００２２】
入力部１０３は、表示制御部１０２から受けた視点パラメータを生成部１０５に対して出力し、入力部１０４は、表示制御部１０２から受けた環境パラメータを生成部１０５に対して出力する。なお、生成部１０５への視点パラメータ及び環境パラメータの入力方法は上記の方法に限らず、例えば、予め情報処理装置１０が有するメモリに登録されている視点パラメータ及び環境パラメータを生成部１０５に入力するようにしても良い。
【００２３】
生成部１０５は、保持部１０１が保持するモデルデータと入力部１０４から入力された環境パラメータとによって規定される仮想空間を、入力部１０３から入力された視点パラメータによって規定される仮想視点から見た画像（仮想空間画像）を生成する。また、生成部１０５は、仮想視点から見た仮想空間の幾何情報（デプスマップ）を生成する。例えば、生成部１０５は、保持部１０１に保持されているモデルデータに基づいてモデルを生成し、該モデルを、環境パラメータに含まれる物体パラメータが規定する数、位置、姿勢、大きさ等に従って仮想空間中に配置することで該仮想空間を構築する。なお、モデルを配置する際には、例えば、地域パラメータが規定するルールに従うものとする。例えば、自動車のモデルを配置する場合、該モデルを右車線／左車線の何れに配置するのかを地域パラメータが規定する地域ごとのルールに従って決定する。そして生成部１０５は、この構築した仮想空間を、環境パラメータに含まれている照明パラメータが規定する照明条件下において、視点パラメータによって規定される仮想視点から見た画像を仮想空間画像として生成する。なお、生成部１０５が生成する仮想空間画像は、撮像部１１から撮像される画像における見え方と類似していることが望ましい。視点パラメータ及び環境パラメータが、自動車１の設計情報、運転状況、運転環境と合うように適切に設定されていれば、生成される仮想空間画像は撮像部１１から撮像される画像の見え方と類似したものになる。そのため高精度に位置姿勢算出を行うことができる。さらに生成部１０５は、構築した仮想空間に対する仮想視点からの幾何情報を生成する。なお、本実施形態では、仮想空間画像と幾何情報（デプスマップ）とは同じもしくはほぼ同じスケール（縮尺）、すなわち所定の範囲内のスケール（縮尺）で生成するものとする。具体的には、仮想空間画像と幾何情報（デプスマップ）とを同じもしくはほぼ同じ画角、すなわち所定の範囲内の画角で描画（レンダリング）することで生成する。そして生成部１０５は、生成した仮想空間画像と幾何情報のセットを学習データとして生成部１０６に対して出力する。なお生成部１０５は、入力部１０３から入力された視点パラメータや入力部１０４から入力された環境パラメータを変化させることで、それぞれ異なる「視点パラメータ及び環境パラメータのセット」を生成する。例えば、環境パラメータに含まれている照明パラメータを変化させて、様々な照明条件（時刻、季節、天気など）に対応する環境パラメータを生成しても良い。また、環境パラメータに含まれている物体パラメータを変化させて仮想空間中に配置するモデルの追加あるいは削除を行った様々なモデルの配置状態に対応する環境パラメータを生成しても良い。また、環境パラメータに含まれている地域パラメータを変化させて様々な地域に対応する環境パラメータを生成しても良い。そして生成部１０５は、セットごとに対応する学習データを生成することで、様々な視点パラメータや様々な環境パラメータに対応する学習データを生成する。また、学習データを生成する際は、標識や信号といった自動車１を自動運転する上で重要な対象については画像上での詳細度を上げても（圧縮率を下げても）良い。
【００２４】
生成部１０６は、生成部１０５から受けた学習データごとに、該学習データに含まれている仮想空間画像を学習モデルに入力することで該学習モデルから出力される情報と、該学習データに含まれている幾何情報（教師データ）と、との差分を求める。そして生成部１０６は、学習データごとに差分が小さくなるように、該学習モデルを更新することで該学習モデルの学習処理を行う（誤差逆伝搬法などの方法）。本実施形態では、学習モデルにＣＮＮ（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）を適用したケースについて説明する。しかし、画像を入力すると対応する幾何情報を出力する学習モデルであれば、如何なる学習モデルあっても良く、例えば、機械学習のモデルを学習モデルとして使用しても良く、学習モデルはＣＮＮに限らない。
【００２５】
このように様々な状況（状態）に対応する学習データを生成して学習モデルの学習に用いることで、よりロバストな学習モデルを生成することができる。そして生成部１０６は、学習済みの学習モデルを保持部１０７に格納する。
【００２６】
入力部１０８は、撮像部１１から出力される各フレームの撮像画像（画像情報）を取得し、該取得した撮像画像を後段の推定部１０９、算出部１１０、生成・更新部１１１に対して出力する。入力部１０８は、例えば画像キャプチャボードにより構成される。
【００２７】
推定部１０９は、保持部１０７に格納されている学習モデルを読み出し、該読み出した学習モデルに入力部１０８から入力された撮像画像を入力することで該学習モデルから出力される幾何情報を、後段の算出部１１０及び生成・更新部１１１に対して出力する。
【００２８】
なお、本実施形態においては、撮像画像と学習モデルから出力される幾何情報とは同じもしくはほぼ同じスケール（縮尺）であるとする。すなわち、撮像画像と学習モデルから出力される幾何情報とは同じもしくはほぼ同じ画角であるとする。これは、撮像画像と生成部１０５で生成した仮想空間画像と幾何情報との画角が同じもしくはほぼ同じになるようにすることで実現出来る。もし撮像画像と学習モデルから出力される幾何情報のスケール（縮尺）が異なる場合は、学習モデルから出力される幾何情報に画角の比率をかけることで撮像画像とスケール（縮尺）を合わせる。
【００２９】
算出部１１０は、入力部１０８から送出された撮像画像と、推定部１０９から送出された幾何情報と、を用いて撮像部１１の位置姿勢を求め、該求めた位置姿勢を上記のバイアス情報を用いて自動車１の位置姿勢に変換する。そして算出部１１０は、この変換した自動車１の位置姿勢と、推定部１０９から出力された幾何情報と、を後段の運転制御部１３及び生成・更新部１１１に対して送出する。
【００３０】
ここで、算出部１１０による撮像部１１の位置姿勢の算出方法の一例について説明する。具体的には、時刻ｔに撮像された撮像画像（現フレーム）に対し、現フレーム以前の時刻ｔ’に撮像された撮像画像（前フレーム）を学習モデルに入力することで該学習モデルから出力された幾何情報（前幾何情報）に基づき、前フレームの各画素を射影する。ここでいう射影とは、前フレームの画素が現フレームのどこに写るのかを算出することである。具体的には、算出部１１０は、前フレームにおける着目画素の画像座標（ｕｔ−１，ｖｔ−１）、撮像部１１の内部パラメータ（ｆｘ、ｆｙ、ｃｘ、ｃｙ）、前幾何情報における該着目画素の奥行き値Ｄを用いて以下の式１を計算する。これにより算出部１１０は、該着目画素の前フレームのカメラ座標系における三次元座標（Ｘｔ−１，Ｙｔ−１，Ｚｔ−１）を求めることができる。
【００３１】
【数１】
2019124538.tif 000003
【００３２】
ここでカメラ座標系とは例えば、撮像部１１の位置（例えば撮像センサの位置）を原点とし、該原点で直交する３軸（撮像部１１の視軸方向に対して該原点で直交する２軸、撮像部１１の視軸方向の軸の計３軸）をそれぞれＸ軸、Ｙ軸、Ｚ軸とする座標系である。
【００３３】
ここで、前フレームを撮像した撮像部１１の位置に対する現フレームを撮像した撮像部１１の位置の変換行列をｔ（ｔ−１）→ｔ、前フレームを撮像した撮像部１１の姿勢に対する現フレームを撮像した撮像部１１の姿勢の変換行列をＲ（ｔ−１）→ｔとする。このとき、算出部１１０は、ｔ（ｔ−１）→ｔ、Ｒ（ｔ−１）→ｔを用いて以下の式２を計算することで、現フレームのカメラ座標系における該着目画素の三次元座標（Ｘｔ，Ｙｔ，Ｚｔ）を求めることができる。
【００３４】
【数２】
2019124538.tif 000004
【００３５】
次に算出部１１０は、以下の式３を計算することで、現フレームのカメラ座標系における該着目画素の三次元座標（Ｘｔ，Ｙｔ，Ｚｔ）を現フレームの画像座標（ｕｔ，ｖｔ）に変換する。
【００３６】
【数３】
2019124538.tif 000005
【００３７】
本実施形態では、上記の式１〜式３に従った処理を射影と呼ぶ。そして算出部１１０は、このような射影を、前フレームにおいて別途求めておいたコーナーやエッジといった特徴点あるいは全ての画素を着目画素として行うことで、現フレームにおいて対応する画像座標を求めることができる。そして算出部１１０は、前フレームの画像座標（ｕｔ−１，ｖｔ−１）における画素の輝度値と、該画素の射影先の現フレームの画素（画像座標は（ｕｔ，ｖｔ））における輝度値と、の輝度差が最小となるようにｔ（ｔ−１）→ｔ、Ｒ（ｔ−１）→ｔを算出する。
【００３８】
そして算出部１１０は、前フレームを撮像した撮像部１１の世界座標系における位置ｔw→（ｔ−１)及び姿勢Ｒw→（ｔ−１)を用いて以下の式４を計算する。これにより算出部１１０は、現フレームを撮像した撮像部１１の世界座標系における位置ｔw→ｔ及び姿勢Ｒw→ｔを算出する。
【００３９】
【数４】
2019124538.tif 000006
【００４０】
ここで世界座標系とは、現実空間における１点を原点とし、該原点で互いに直交する３軸をそれぞれ、Ｘ軸、Ｙ軸、Ｚ軸とする座標系である。なお算出部１１０は、推定部１０９からの幾何情報に加えて生成・更新部１１１が生成／更新する三次元マップをも用い、ＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ Ｌｏｃａｌｉｚａｔｉｏｎ ａｎｄ Ｍａｐｐｉｎｇ）技術を利用して撮像部１１の位置姿勢を算出しても良い。位置姿勢の算出は、非特許文献１の方法や、Ｅｎｇｅｌらの方法（Ｊ．  Ｅｎｇｅｌ，  Ｔ．  Ｓｃｈｐｓ，  ａｎｄ  Ｄ．  Ｃｒｅｍｅｒｓ．  ＬＳＤ−ＳＬＡＭ：  Ｌａｒｇｅ−Ｓｃａｌｅ  Ｄｉｒｅｃｔ  Ｍｏｎｏｃｕｌａｒ  ＳＬＡＭ．  Ｉｎ  Ｅｕｒｏｐｅａｎ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  （ＥＣＣＶ），  ２０１４．）を用いて行うことができる。ＳＬＡＭ技術により三次元マップの生成・更新を行うことで、一度走行した道については幾何情報を蓄積しておくことが可能となる。
【００４１】
生成・更新部１１１は、入力部１０８から入力される撮像画像、推定部１０９から入力される幾何情報、算出部１１０から入力される位置姿勢、を用いて、自動車１が走行する環境における三次元マップの生成および更新を行う。そして生成・更新部１１１は、生成／更新した三次元マップを算出部１１０及び運転制御部１３に対して出力する。
【００４２】
本実施形態において、三次元マップとは、ＳＬＡＭ技術を用いて自動車の位置姿勢算出と環境の三次元マップ生成を同時に行う際に利用するものである。例えば三次元マップは、点群データと色情報の組み合わせでも良いし、デプスマップと色情報を持ち環境の位置姿勢に対応付いたキーフレーム情報の集合であっても良い。
【００４３】
次に、本実施形態に係るシステムが行う処理について、図３のフローチャートに従って説明する。ステップＳ１０１では、制御部１９９による制御の元で、情報処理装置１０において初期化処理が行われる。初期化処理では、例えば、生成部１０５は保持部１０１からモデルデータを読み出し、算出部１１０は、撮像部１１の内部パラメータを読み出す。このように、初期化処理では、各機能部は、自身が処理を実行するために用いるデータを読み出したり設定したりする。初期化処理が開始されるタイミングとしては、自動車１の運転者が自動車１の制御を起動したり、手動運転モードから自動運転モードに切り替えた場合などが挙げられる。
【００４４】
ステップＳ１０２では、表示制御部１０２は、自動車１の運転者や同乗者に対して、視点パラメータ及び環境パラメータを設定させるためのＧＵＩ（グラフィカルユーザインターフェース）を表示部１２の表示画面に表示させる。ステップＳ１０２において表示部１２に表示されるＧＵＩ４００の構成例を図４に示す。
【００４５】
ＧＵＩ４００において領域４１は、視点パラメータを設定するための操作部が配置されている領域であり、領域４２は、環境パラメータを設定するための操作部が配置されている領域である。
【００４６】
先ず、領域４１について説明する。タブ４１ａは、配置パラメータを設定する対象となる仮想視点を選択するためのものである。例えばユーザが表示画面上でタブ４１ａを指定すると、配置パラメータを設定可能な仮想視点の名称が一覧表示されるので、ユーザは該一覧表示されている名称から配置パラメータを設定する仮想視点の名称を指定する。図４では仮想視点「カメラ１」が指定されている。
【００４７】
領域４１ｂは、仮想視点の仮想空間における位置を入力するための領域である。例えばユーザが表示画面上で領域４１ｂを指定すると、数値入力を行うためのユーザインターフェースが表示画面に表示されるので、ユーザはこのユーザインターフェースを用いて領域４１ｂに位置（数値）を入力する。領域４１ｂに入力する位置は、自動車１を基準とする座標系における位置であり、撮像部１１の位置とほぼ同じ位置（特に撮像部１１の高さとほぼ同じ高さになる位置）であることが望ましい。
【００４８】
領域４１ｃは、仮想視点の仮想空間における姿勢を入力するための領域である。例えばユーザが表示画面上で領域４１ｃを指定すると、数値入力を行うためのユーザインターフェースが表示画面に表示されるので、ユーザはこのユーザインターフェースを用いて領域４１ｃに姿勢（数値）を入力する。領域４１ｃに入力する姿勢は、自動車１を基準とする座標系における姿勢であり、撮像部１１の姿勢とほぼ同じ姿勢（特に撮像部１１の視軸方向と仮想視点の視軸方向がほぼ同じになる姿勢）であることが望ましい。タブ４１ａ、領域４１ｂ、４１ｃにより、視点パラメータに含まれる配置パラメータを設定することができる。
【００４９】
タブ４１ｄは、撮像パラメータを設定する対象となる仮想視点を選択するためのものである。例えばユーザが表示画面上でタブ４１ｄを指定すると、撮像パラメータを設定可能な仮想視点の名称が一覧表示されるので、ユーザは該一覧表示されている名称から撮像パラメータを設定する仮想視点の名称を指定する。図４では仮想視点「カメラ１」が指定されている。
【００５０】
領域４１ｅは、仮想視点の焦点距離を入力するための領域である。例えばユーザが表示画面上で領域４１ｅを指定すると、数値入力を行うためのユーザインターフェースが表示画面に表示されるので、ユーザはこのユーザインターフェースを用いて領域４１ｅに焦点距離（数値）を入力する。
【００５１】
領域４１ｆは、仮想視点の露光時間を入力するための領域である。例えばユーザが表示画面上で領域４１ｆを指定すると、数値入力を行うためのユーザインターフェースが表示画面に表示されるので、ユーザはこのユーザインターフェースを用いて領域４１ｆに露光時間（数値）を入力する。タブ４１ｄ、領域４１ｅ、４１ｆにより、視点パラメータに含まれる撮像パラメータを設定することができる。
【００５２】
領域４１ｇは、仮想視点の移動速度の下限を入力するための領域である。例えばユーザが表示画面上で領域４１ｇを指定すると、数値入力を行うためのユーザインターフェースが表示画面に表示されるので、ユーザはこのユーザインターフェースを用いて領域４１ｇに移動速度の下限（数値）を入力する。
【００５３】
領域４１ｈは、仮想視点の移動速度の上限を入力するための領域である。例えばユーザが表示画面上で領域４１ｈを指定すると、数値入力を行うためのユーザインターフェースが表示画面に表示されるので、ユーザはこのユーザインターフェースを用いて領域４１ｈに移動速度の上限（数値）を入力する。
【００５４】
移動速度の上限／下限としては、自動車１の運転者がよく運転する速度の範囲の上限／下限を入力しても良いし、自動車１が出し得る最高速度を移動速度の上限として入力しても良い。視点パラメータに含まれている移動速度パラメータには、移動速度の上限から下限までの範囲内における速度のうち何れか１つの速度（例えば移動速度の上限から下限までの間の１０ｋｍ／ｈごとの移動速度のうちの何れか１つ）が設定される。
【００５５】
次に、領域４２について説明する。領域４２ａは、時刻を入力するための領域である。例えばユーザが表示画面上で領域４２ａを指定すると、数値入力を行うためのユーザインターフェースが表示画面に表示されるので、ユーザはこのユーザインターフェースを用いて領域４２ａに時間（数値）を入力する。あるいは、領域４２ａには、朝、昼、夕方、夜といった時間帯を入力しても選択しても良い。
【００５６】
タブ４２ｂは、季節を選択するためのものである。例えばユーザが表示画面上でタブ４２ｂを指定すると、春、夏、秋、冬の４つが一覧表示されるので、ユーザは該一覧表示されている４つの季節（春、夏、秋、冬）から１つを指定する。図４では季節「春」が指定されている。
【００５７】
タブ４２ｃは、天気を選択するためのものである。例えばユーザが表示画面上でタブ４２ｃを指定すると、晴れ、曇り、雨、雪などの天気の一覧が表示されるので、ユーザは該一覧から１つを指定する。図４では天気「晴れ」が指定されている。領域４２ａ、タブ４２ｂ、４２ｃにより、環境パラメータに含まれている照明パラメータを設定することができる。
【００５８】
タブ４２ｄは、仮想空間中に配置するモデルの種類を選択するためのものである。例えばユーザが表示画面上でタブ４２ｄを指定すると、仮想空間中に配置可能なモデルの種類が一覧表示されるので、ユーザは該一覧から１つを指定する。図４では種類「人」が指定されている。
【００５９】
タブ４２ｅは、タブ４２ｄで指定したモデルの数（仮想空間中に配置する数）を選択するためのものである。例えばユーザが表示画面上でタブ４２ｅを指定すると、多い、普通、少ない等の配置数の一覧が表示されるので、ユーザは該一覧から１つを指定する。図４では数「多い」が指定されている。
【００６０】
タブ４２ｆは、タブ４２ｄで指定したモデルをどのように配置するのかの配置方法を選択するためのものである。例えばユーザが表示画面上でタブ４２ｆを指定すると、モデルの配置方法が一覧表示されるので、ユーザは該一覧表示された配置方法から１つを指定する。図４では位置「ランダム」が指定されている。図４の場合、配置するモデルの種類は「人」、モデルの数は「多い」、モデルの配置方法は「ランダム」となっているため、生成部１０５は、仮想空間には、多く（「多く」に対応付けられた数）の人のモデルを仮想空間中にランダムに配置することになる。タブ４２ｄ、４２ｅ、４２ｆにより、環境パラメータに含まれている物体パラメータを設定することができる。
【００６１】
タブ４２ｇは、構築する仮想空間に対応する国を選択するためのものである。例えばユーザが表示画面上でタブ４２ｇを指定すると、国の一覧が表示されるので、ユーザは該一覧から１つを指定する。図４では国「日本」が指定されている。
【００６２】
タブ４２ｈは、タブ４２ｇにて指定した国における地域を選択するためのものである。例えばユーザが表示画面上でタブ４２ｈを指定すると、地域の一覧が表示されるので、ユーザは該一覧から１つを指定する。図４では地域「関東」が指定されている。
【００６３】
図４の場合、構築する仮想空間に対応する国は「日本」、地域は「関東」となっているため、生成部１０５は、例えば、国「日本」、地域「関東」に対応するルールでモデルを配置することになる。タブ４２ｇ、４２ｈにより、環境パラメータに含まれている地域パラメータを設定することができる。
【００６４】
なお、図４に示したＧＵＩ４００にて設定可能な情報の設定方法は上記の方法に限らない。例えば、位置の指定方法は数値入力に限らず、例えば仮想空間における代表的な位置から１つを選択するようにしても良い。また例えば、姿勢の指定方法は数値入力に限らず、例えば仮想空間における代表的な姿勢（例えば、前、後ろ、右、左）から１つを選択するようにしても良い。また例えば、モデルの数の指定方法は上記の方法に限らず、具体的な数を入力するようにしても良い。また、視点パラメータ及び環境パラメータの設定方法は特定の設定方法に限らない。また、ユーザは、上記の視点パラメータ及び環境パラメータに加えてその他のパラメータを入力するようにしても良い。
【００６５】
そしてユーザは、上記のＧＵＩ４００を用いて視点パラメータ及び環境パラメータの設定が完了すると、表示画面上でボタン４３を指定する。ボタン４３が指定されると、表示制御部１０２は上記のＧＵＩ４００を表示画面から消去すると共に、ＧＵＩ４００を介して入力された情報に基づいて視点パラメータ及び環境パラメータを設定する。例えば表示制御部１０２は、視点パラメータに含まれている配置パラメータには、タブ４１ａ、領域４１ｂ、４１ｃにおいて設定されている内容を設定する。また表示制御部１０２は、視点パラメータに含まれている撮像パラメータには、タブ４１ｄ、領域４１ｅ、４１ｆにおいて設定されている内容を設定する。また表示制御部１０２は、視点パラメータに含まれている移動速度パラメータには、領域４１ｈに入力された上限から領域４１ｇに入力された下限までの範囲内における速度のうち何れか１つの速度を設定する。また例えば表示制御部１０２は、環境パラメータに含まれている照明パラメータには、領域４２ａ、タブ４２ｂ、４２ｃにおいて設定された内容を設定する。また表示制御部１０２は、環境パラメータに含まれている物体パラメータには、タブ４２ｄ、４２ｅ、４２ｆにおいて設定された内容を設定する。また表示制御部１０２は、環境パラメータに含まれている地域パラメータには、タブ４２ｇ、４２ｈにおいて設定された内容を設定する。
【００６６】
そして表示制御部１０２は、視点パラメータは入力部１０３に対して出力し、環境パラメータは入力部１０４に対して出力する。入力部１０３は、表示制御部１０２から受けた視点パラメータを生成部１０５に対して出力し、入力部１０４は、表示制御部１０２から受けた環境パラメータを生成部１０５に対して出力する。
【００６７】
ステップＳ１０３で生成部１０５は、ＧＵＩ４００にて設定した視点パラメータ及び環境パラメータのそれぞれに含まれている各種のパラメータのうち少なくとも１つを変化させて互いに異なる複数の「視点パラメータ及び環境パラメータ」のセットを生成する。例えば、移動速度パラメータを変化させる場合には、領域４１ｈに入力された上限から領域４１ｇに入力された下限までの範囲内で変化させるものとする。これにより領域４１ｈに入力された上限から領域４１ｇに入力された下限までの範囲内の複数の移動速度のそれぞれに対応する移動速度パラメータを生成することができ、然るに、該複数の移動速度のそれぞれに対応する視点パラメータを生成することができる。
【００６８】
なお、ＧＵＩ４００を用いた上記のパラメータ設定を複数回繰り返して行って、互いに異なる複数の「視点パラメータ及び環境パラメータ」のセットを設定するようにしても良い。そして生成部１０５は、それぞれのセットについて仮想空間画像及び幾何情報のセットを学習データとして生成する。ここで、移動速度がより早いカメラによる撮像画像には、移動速度がより遅いカメラによる撮像画像よりも強いブラー（暈け）が発生する。上記の通り、生成部１０５が生成する仮想空間画像は、同様の条件下にて撮像部１１にて撮像される撮像画像における見え方と類似していることが好ましいため、この仮想空間画像にも、移動速度に応じたブラーが発生していることが好ましい。そこで生成部１０５は、仮想空間画像に対して対応する移動速度に応じたほかし処理（ブラーをかける）を行う。これにより、例えば、移動速度がより早い仮想視点からの仮想空間画像には、移動速度がより遅い仮想視点からの仮想空間画像よりも強いブラー（暈け）が生じることになり、同様の条件下にて撮像部１１にて撮像される撮像画像における見え方と類似する。
【００６９】
ステップＳ１０４では、生成部１０６は、生成部１０５が生成した各学習データを用いて学習モデルの学習処理を行う。そしてステップＳ１０５では、生成部１０６は、ステップＳ１０４において学習した学習モデルを保持部１０７に格納する。
【００７０】
ステップＳ１０６では、撮像部１１は、撮像した撮像画像を後段の入力部１０８に対して出力する。ステップＳ１０７では、入力部１０８は、撮像部１１から出力される撮像画像を取得し、該取得した撮像画像を後段の推定部１０９、算出部１１０、生成・更新部１１１に対して出力する。
【００７１】
ステップＳ１０８では、推定部１０９は、入力部１０８から入力された撮像画像から幾何情報を推定する。この推定処理では、推定部１０９は、保持部１０７に格納されている学習モデルを読み出し、該読み出した学習モデルに入力部１０８から入力された撮像画像を入力することで該学習モデルから出力される幾何情報を推定結果として取得する。そして推定部１０９は、この幾何情報を後段の算出部１１０及び生成・更新部１１１に対して出力する。
【００７２】
ステップＳ１０９では、算出部１１０は、入力部１０８から送出された撮像画像と、推定部１０９から送出された幾何情報と、を用いて撮像部１１の位置姿勢を求め、該求めた位置姿勢を上記のバイアス情報を用いて、自動車１の位置姿勢に変換する。そして算出部１１０は、この変換した自動車１の位置姿勢と、推定部１０９から出力された幾何情報と、を後段の運転制御部１３及び生成・更新部１１１に対して送出する。
【００７３】
ステップＳ１１０の処理は、ＳＬＡＭ技術を利用する設定がなされている場合に限って行われる処理であって、ＳＬＡＭ技術を利用する設定がなされていない場合には、ステップＳ１０９の後はステップＳ１１０をスキップしてステップＳ１１１に進む。
【００７４】
ステップＳ１１０では、生成・更新部１１１は、入力部１０８から入力される撮像画像、推定部１０９から入力される幾何情報、算出部１１０から入力される位置姿勢、を用いて、自動車１が走行する環境における三次元マップの生成および更新を行う。そして生成・更新部１１１は、生成／更新した三次元マップを算出部１１０及び運転制御部１３に対して出力する。生成・更新部１１１によって三次元マップは、処理の度に、あるいは所定のタイミング（何回かに一回など）で最適化処理が施され、徐々に精度の良いマップになっていく。
【００７５】
なお、ＳＬＡＭ技術を利用する設定がなされている場合には、算出部１１０は、推定部１０９からの幾何情報に加えて生成・更新部１１１が生成／更新する三次元マップをも用い、ＳＬＡＭ技術を利用して撮像部１１の位置姿勢を算出しても良い。
【００７６】
ステップＳ１１１では運転制御部１３は、算出部１１０から出力された幾何情報若しくは生成・更新部１１１から出力された三次元マップと、算出部１１０から出力された位置姿勢と、に基づいて、自動車１の車輪の回転トルク、自動車１の進行方向を決定する。先ず運転制御部１３は、算出部１１０から出力された幾何情報若しくは生成・更新部１１１から出力された三次元マップが表す幾何形状の空間における自動車１の位置（算出部１１０から出力された位置）の周囲環境を認識する。自動車１の位置の周辺環境の認識とは、例えば、自動車１からどのような方向に、どのような距離に、どのような物体が存在するのか、を認識することである。さらに周囲環境として不図示の周囲環境認識部で自動車１の周囲にある物体（例えば道路、標識、信号、建築物、自然物、人、動物、自動車、自転車など、自動車１が走行する環境において存在するもの）の種類、数、位置姿勢を認識した結果を受け取っても良い。
【００７７】
そして運転制御部１３は、自動車１の位置姿勢と自動車１の周囲環境とから、交通情報（標識や信号）に従い、さらに他の車や人などの障害物を避けながら、道路上を自動的もしくは半自動的に運転する運転制御情報を求めて出力する。運転制御情報とは、自動車１の車輪の回転トルク、進行方向を含む情報である。さらにブレーキや、ウインカーの方向なども運転制御情報に含めても良い。このように、運転制御情報とは、自動車１の自動運転若しくは半自動運転を実現するために自動車１を制御するための情報であり、該運転制御情報が含む情報は特定の情報に限らない。
【００７８】
そして運転制御部１３は、求めた運転制御情報を表示部１２及びアクチュエータ部１４に対して送出する。これにより表示部１２の表示画面には、自動車１の運転制御情報が文字や画像として表示されることになる。
【００７９】
ステップＳ１１２では、アクチュエータ部１４は、運転制御部１３からの運転制御情報に従って自動車１の車輪の駆動制御を行う。なお、自動車１の運転制御には、不図示の地図情報記憶部に格納されている地図情報を利用しても良い。
【００８０】
ステップＳ１１３では、制御部１９９は、図３のフローチャートに従った処理の終了条件が満たされたか否かを判断する。例えば、制御部１９９は、自動車１が目的地に到着したり、自動車１の運転者や同乗者が表示部１２の表示画面に対してシステムの停止を指示したりした場合には、終了条件が満たされたと判断する。このような判断の結果、終了条件が満たされた場合には、図３のフローチャートに従った処理は終了し、終了条件が満たされていない場合には、処理はステップＳ１０６に戻る。
【００８１】
なお、図３では、ステップＳ１１１、Ｓ１１２の処理をステップＳ１１０とステップＳ１１３との間において実行しているが、ステップＳ１１１、Ｓ１１２の処理を図３のフローチャートに従った処理と並列的に実行するようにしても良い。このように、本実施形態を含め、以下の実施形態や変形例においても、フローチャートに示した各処理ステップの処理は、フローチャートに示した順序で実行されることに限らず、処理ステップによっては実行順を変更しても良い。また、一部の処理ステップを他の処理ステップと並列的に実行するようにしても良い。
【００８２】
このように、本実施形態では、視点パラメータ及び環境パラメータを適切に設定して、学習モデルの学習において利用する仮想空間画像におけるシーンの見え方（アピアランス）を、撮像部による撮像画像に写るシーンの見え方と類似したものにする。このような「撮像部による撮像画像とシーンの見え方が類似している仮想空間画像」を用いて学習した学習モデルを用いることで、実際に撮像部が撮像した撮像画像に対応する幾何情報をより高い精度で推定することができる。
【００８３】
＜変形例１＞
第１の実施形態では、幾何情報としてデプスマップを用いたが、仮想視点から見える仮想空間の幾何形状を表す情報であれば、幾何情報は如何なる情報であっても構わない。
【００８４】
また、第１の実施形態では、車両の一例として自動車１を用いたが、自動車１以外の車両を自動車１の代わりに用いても、第１の実施形態は同様に適用することができる。
【００８５】
また、第１の実施形態では、視点パラメータ及び環境パラメータはユーザがＧＵＩ４００を介して入力するものとしたが、これに限らない。例えば、入力部１０３、１０４はそれぞれ、情報処理装置１０の内部若しくは外部に設けられた装置（メモリやサーバ装置など）に予め作成して登録している視点パラメータ、環境パラメータを取得して生成部１０５に対して出力するようにしても良い。
【００８６】
＜変形例２＞
撮像部１１はＲＧＢカラーカメラに限定されるものではなく、グレースケールカメラや赤外線カメラであっても良い。また、撮像部１１の配置場所はフロントガラスの裏に限定されるものではなく、自動車１の上部外側、前方外側・内側、サイドミラー部であっても良い。また、撮像部１１を複数個設けて、自動車１の進行方向に対して前方だけでなく、斜め前方、横方向、斜め後方、後方を撮像するよう自動車１に配置しても良い。
【００８７】
＜変形例３＞
上記の通り、表示部１２はタッチパネル画面を有することに限らず、例えば、自動車１のフロントガラスやダッシュボードに備えられたＨＵＤ（Ｈｅａｄ−Ｕｐ Ｄｉｓｐｌａｙ）であっても良い。
【００８８】
＜変形例４＞
上記の通り、モデルデータには、様々なデータが適用可能であり、例えば、三次元計測部や撮像部を利用して得た実環境における距離データ（点群データ）と色情報との組み合わせをモデルデータとしても良い。あるいは、三次元計測部や撮像部を利用して得たデプスマップと色情報とを有し且つ環境の位置姿勢に対応付いたキーフレーム情報をモデルデータとしても良い。
【００８９】
＜変形例５＞
上記の通り、視点パラメータ、環境パラメータの情報処理装置１０への入力方法は特定の入力方法に限らない。例えば、視点パラメータに含まれている配置パラメータや撮像パラメータについては、自動車１や撮像部１１のメーカ・型番・配置情報を元に予め情報処理装置１０に設定されていても良いし、撮像部１１から取得して情報処理装置１０に設定しても良い。また、情報処理装置１０に予め設定されている若しくは撮像部１１から取得したパラメータを、ＧＵＩ４００において該当する箇所に初期値として表示しても良い。
【００９０】
また、撮像部１１が撮影した撮像画像や、撮像部１１や自動車１に搭載してある重力方向センサ、を用いて、撮像部１１の路面からの高さ（鉛直方向の距離）を取得し、該取得した高さを、仮想空間における路面からの仮想視点の高さとしても良い。
【００９１】
また、環境パラメータに含まれている照明パラメータ、物体パラメータを、撮像部１１が撮像した撮像画像、推定部１０９で推定した幾何情報、生成・更新部１１１で生成した三次元マップ、から、シーン中に存在している物体を認識することで得てもよい。物体の認識は機械学習やＣＮＮに代表される深層学習を利用してもよい。また、照明パラメータ、物体パラメータは予めあらゆる組み合わせで設定されていても良い。また、地域パラメータはＧＰＳ情報を用いて測定した現在位置に基づいて設定されても良いし、自動車ディーラーの担当者により設定されても良い。
【００９２】
また、第１の実施形態では、視点パラメータ及び環境パラメータに基づいて学習データを生成したが、視点パラメータ及び環境パラメータ以外のパラメータを学習データの生成に利用しても構わない。視点パラメータ及び環境パラメータ以外のパラメータとしては、自動車１の運転者に関するパラメータを利用してもよい。例えば、自動車１をよく運転する時間、場所、速度などを、ＧＵＩ４００等のユーザインターフェースを介して自動車１の運転者や同乗者が入力しても良いし、自動車１の運転状況を記憶媒体に保持しておき該記憶媒体から該運転状況を読み出しても良い。自動車１の運転者がよく運転する時間、場所、速度といったユーザパラメータが分かると、それらのパラメータを利用して生成部１０５がそのユーザに適した学習データを生成することができるため、位置姿勢の推定精度が向上する。これはその他の実施形態や変形例でも同様で、視点パラメータ及び環境パラメータに加えて他のパラメータを更に使用しても良い。
【００９３】
＜変形例６＞
情報処理装置１０によって推定された撮像部１１の位置姿勢の使用用途は自動車の自動運転に限らない。つまり、撮像部１１による撮像画像に基づいて該撮像部１１若しくは該撮像部１１を搭載する装置の周囲環境や位置姿勢をより高精度に取得することが要求される分野に情報処理装置１０を適用しても良い。
【００９４】
例えば、算出された位置姿勢、推定された幾何情報、生成された三次元マップは、例えば、自動車の運転アシスト（半自動運転）や、人が自動車運転をしている状況の表示に適用することができる。また、工場の中や物流倉庫の中を工程に従って走行する搬送車両（ＡＧＶ（Ａｕｔｏｍａｔｅｄ Ｇｕｉｄｅｄ Ｖｅｈｉｃｌｅ））といった移動体の移動制御で利用されても良い。あるいは、家庭内で自律的に行動するサービスロボットの移動制御や、複合現実感／拡張現実感における現実空間と仮想物体との位置合わせに利用されても良い。
【００９５】
＜変形例７＞
学習モデルはＣＮＮに限らず、例えば、機械学習のモデルであっても良いし、強化学習のモデルであっても良い。なお、学習データは、利用する学習モデルの学習処理に対応したデータ（例えば、画像と幾何情報のセット）を用いることになる。
【００９６】
［第２の実施形態］
本実施形態を含め、以下の各実施形態及び各変形例では、第１の実施形態との差分について説明し、以下で特に触れない限りは第１の実施形態と同様であるものとする。本実施形態では、情報処理装置１０を搭載した自動車１とは別個の自動車２において現実空間を計測／撮像することで現実空間のモデルデータを生成し、該モデルデータを情報処理装置１０の保持部１０１に登録する。
【００９７】
本実施形態に係るシステムの機能構成例について、図５のブロック図を用いて説明する。なお、図５において情報処理装置１０の機能構成は第１の実施形態（図２）と同様であるため、保持部１０１以外の図示は省略している。
【００９８】
図５において、計測部２１、撮像部２２、情報処理装置２０は、上記の自動車２に搭載されている。ここで、自動車２の撮像部２２の配置位置姿勢は、自動車１の撮像部１１の配置位置姿勢と異なっているものとする。また、自動車２は自動車１と異なる日あるいは異なる時刻に自動車１と同じ場所を走行して後述の計測及び撮像を行うが、走行するシーンの状況が多少異なっているものとする。また、自動車１と自動車２の利用ユーザが異なっていても良い。
【００９９】
計測部２１は、自動車２の上部に装着され、自動車２の周囲（全周）の幾何形状を表す点群により構成される距離情報を計測（三次元計測）するセンサである。計測部２１は、自動車２が走行する環境におけるシーンの三次元計測を行い、該三次元計測の結果を距離情報として情報処理装置２０に対して出力する。計測部２１は、例えば、Ｌｉｄａｒを代表とするアクティブ距離センサである。なお、自動車２と計測部２１との間の相対的な位置姿勢関係は予めキャリブレーションされており、該相対的な位置姿勢関係は既知の情報（バイアス情報）として情報処理装置２０に登録されているものとする。
【０１００】
撮像部２２は、自動車２が走行する環境におけるシーンの動画像を撮像する撮像装置であり、例えば、ＲＧＢカラーカメラである。撮像部２２により撮像された動画像を構成する各フレームの画像（撮像画像）は情報処理装置２０に対して出力される。撮像部２２は自動車２の上部に放射状に複数台装着され、これにより、自動車２の周囲（全周）の画像を撮像する。なお、自動車２と撮像部２２との間の相対的な位置姿勢関係は予めキャリブレーションされており、該相対的な位置姿勢関係は既知の情報（バイアス情報）として情報処理装置２０に登録されているものとする。また、計測部２１と撮像部２２との間の相対的な位置姿勢関係は予めキャリブレーションされており、該相対的な位置姿勢関係は既知の情報（バイアス情報）として情報処理装置２０に登録されているものとする。
【０１０１】
次に、情報処理装置２０について説明する。制御部２９９は、情報処理装置２０全体の動作制御を行う。入力部２０１は、計測部２１から出力された距離情報を取得し、該取得した距離情報を後段の生成部２０３に対して出力する。入力部２０２は、撮像部２２（複数台の撮像部２２のそれぞれ）から出力された撮像画像を取得し、該取得した撮像画像を後段の生成部２０３に対して出力する。
【０１０２】
生成部２０３は、入力部２０１から出力された距離情報と、入力部２０２から出力された撮像画像と、を用いて、自動車２が走行した環境のモデルデータを生成する。生成部２０３が生成するモデルデータとは、距離情報が表す点群におけるそれぞれの点に、撮像画像において対応する画素の色情報を対応させて付与したものである。計測部２１と撮像部２２との間の相対的な位置姿勢関係は既知であるため、距離情報が表す点群におけるそれぞれの点と、撮像画像において該点に対応する色情報と、を対応付けることができる。
【０１０３】
そして生成部２０３が生成したモデルデータは保持部１０１に格納される。生成部２０３が生成したモデルデータを保持部１０１に格納するための方法には様々な方法が考えられる。
【０１０４】
例えば、情報処理装置１０と情報処理装置２０とを有線／無線のネットワーク（インターネット回線やＷｉ−Ｆｉ通信回線）を介して接続し、生成部２０３は生成したモデルデータを該ネットワークを介して情報処理装置１０に対して送信するようにしても良い。この場合、情報処理装置１０の制御部１９９は、情報処理装置２０から送信されたモデルデータを保持部１０１に格納する。
【０１０５】
また、生成部２０３が生成したモデルデータを情報処理装置１０に対して出力するのではなく、ＵＳＢメモリなどのメモリ装置に対して出力するようにしても良い。この場合、ユーザがこのメモリ装置を情報処理装置１０に接続して保持部１０１に転送するための操作入力を行うことで、制御部１９９がこのメモリ装置からモデルデータを読み出して保持部１０１に格納する。
【０１０６】
次に、情報処理装置２０がモデルデータを生成するために行う処理について、該処理のフローチャートを示す図６を用いて説明する。なお、図６のフローチャートに従った処理は、図３のフローチャートに従った処理の開始前に行われる処理である。
【０１０７】
ステップＳ２０１では、制御部２９９は、計測部２１のパラメータ（センサパラメータ）、撮像部２２のパラメータ（カメラパラメータ）、以下の各処理において各機能部が使用するデータ、等を読み込むなどの初期化処理を行う。初期化処理が開始されるタイミングとしては、例えば、ユーザが自動車２の制御を起動した場合などが挙げられる。
【０１０８】
ステップＳ２０２では、計測部２１は、自動車２の周囲（全周）のシーンを三次元計測することで距離情報を生成し、該生成した距離情報を情報処理装置２０に対して出力する。
【０１０９】
ステップＳ２０３では、撮像部２２（それぞれの撮像部２２）は、自動車２の周囲（全周）のシーンを撮像し、該撮像により得られる撮像画像を情報処理装置２０に対して出力する。
【０１１０】
ステップＳ２０４では、入力部２０１は、計測部２１から出力された距離情報を取得し、該取得した距離情報を生成部２０３に対して出力する。ステップＳ２０５では、入力部２０２は、撮像部２２から出力された撮像画像を取得し、該取得した撮像画像を生成部２０３に対して出力する。
【０１１１】
ステップＳ２０６では、生成部２０３は、入力部２０１から出力された距離情報と、入力部２０２から出力された撮像画像と、を用いて、自動車２が走行した環境のモデルデータを生成する。
【０１１２】
ステップＳ２０７では、制御部２９９は、システムの終了条件が満たされたか否かを判断する。例えば、ユーザが自動車２のシステム停止を指示した場合には、終了条件が満たされたと判断する。この判断の結果、終了条件が満たされた場合には、図６のフローチャートに従った処理は終了する。一方、終了条件が満たされていない場合には、処理はステップＳ２０２に進む。
【０１１３】
ステップＳ２０２〜Ｓ２０６の処理を自動車２の走行中に繰り返し行うことにより、ステップＳ２０６で生成されたモデルデータを合成して自動車２が走行するシーン全体のモデルデータを生成することが可能となる。モデルデータの合成は、距離情報（点群）同士を対応付けて同じ座標系上で合成することにより行われる。
【０１１４】
このように本実施形態によれば、情報処理装置１０を搭載するシステム（例えば自動車１）と情報処理装置２０を搭載するシステム（例えば自動車２）とでそれぞれの視点パラメータ、環境パラメータが異なる場合でも適切にパラメータを設定することができる。そして、学習モデルを生成するための画像のシーンの見え方（アピアランス）と、撮像部が撮像した入力画像に写るシーンの見え方と、が類似したものになる。その結果、自動車の自動運転などに適用する位置姿勢を高精度に算出することができる。
【０１１５】
＜変形例１＞
本実施形態に係るモデルデータは、距離情報が表す点群におけるそれぞれの点に、撮像画像において対応する画素の色情報を対応させて付与したもの、としたが、これに限らない。例えば、モデルデータは、距離情報が表す点群におけるそれぞれの点に、予め作成されたテクスチャにおいて対応する画素の色情報を対応させて付与したものであっても良い。また例えば、モデルデータは、予め生成された物体のポリゴンや点群に、撮像画像において対応する画素の色情報を対応付けたものであっても良い。
【０１１６】
＜変形例２＞
本実施形態に係るモデルデータは、距離情報が表す点群におけるそれぞれの点に、撮像画像において対応する画素の色情報を対応させて付与したもの、としたが、これに限らない。例えば、モデルデータは、計測部２１や撮像部２２を利用して得た距離情報と色情報とを元に生成したデプスマップと色情報とを有し且つ環境における位置姿勢に対応付いたキーフレーム情報であっても良い。環境における位置姿勢は例えばＧＰＳなどを使って得ることができる。
【０１１７】
＜変形例３＞
本実施形態では、複数台の撮像部２２によって自動車２の周囲（全周）を撮像した複数の撮像画像を取得した。しかし、撮像部２２としてパノラマ撮影が可能なカメラを用いる場合には、該撮像部２２によるパノラマ撮影によって得られる撮像画像を取得するようにしても良い。また、自動車２にパノラマ撮影が可能なカメラを複数台搭載したり、通常の撮影を行うカメラと組み合わせて搭載したりしても良い。
【０１１８】
＜変形例４＞
保持部１０１には第１の実施形態で説明したモデルデータを格納しておいて、これを仮想空間画像及び幾何情報の生成に使用し、後に、保持部１０１のモデルデータを情報処理装置２０が生成したモデルデータに置換するようにしても良い。「保持部１０１のモデルデータを情報処理装置２０が生成したモデルデータに置換する」タイミングとしては、例えば、「情報処理装置２０において規定の範囲内のモデルデータが生成された場合」がある。これにより、位置姿勢推定の精度が上がっていく。
【０１１９】
［第３の実施形態］
本実施形態では、状況別に学習モデルを生成しておき、撮像画像から幾何情報を推定する際には、該推定時における状況に応じた学習モデルを用いて該推定を行う。本実施形態に係るシステムの機能構成例について、図７のブロック図を用いて説明する。
【０１２０】
計測部３１は、自動車１が走行する際における自動車１の視点（撮像部１１）に係るパラメータ、環境に係るパラメータ、あるいはその他のパラメータを計測パラメータとして計測するセンサである。
【０１２１】
自動車１の視点に係るパラメータとは、例えば、配置パラメータ、撮像パラメータ、移動速度パラメータを含む。配置パラメータは、自動車１を基準とする座標系における撮像部１１の位置姿勢（撮像部１１の取り付け位置からの高さであっても良い）、撮像部１１の個数、等のパラメータを含む。撮像パラメータは、撮像部１１の焦点距離、主点といった撮像部１１の内部パラメータや、撮像部１１の露光時間、フォーカス位置などといったパラメータを含む。移動速度パラメータは、撮像部１１（自動車１）の移動速度を示すパラメータである。
【０１２２】
一方、環境パラメータとは、自動車１が走行する環境に係るパラメータであり、例えば、照明パラメータ、物体パラメータ、地域パラメータを含む。照明パラメータは、時刻、季節、天気などの変化に基づき変わる照明条件を規定するパラメータである。物体パラメータは、自動車１が走行する環境における物体（例えば道路、標識、信号、建築物、自然物、人、動物、自動車、自転車など、自動車１が走行する環境において存在するもの）の種類、数、位置、姿勢、大きさなどに関するパラメータである。地域パラメータは、自動車１が走行する国、場所、領域の名称や位置といったパラメータである。
【０１２３】
生成部３０５は、次の点で生成部１０５と異なる。つまり生成部３０５は生成部１０５と同様に複数の学習データを生成するのであるが、規定の状況ごとに複数の学習データのセットを生成する。例えば、領域４１ｈに入力された上限が「１５０ｋｍ／ｈ」であり、領域４１ｇに入力された下限が「０ｋｍ／ｈ」であったとする。このとき生成部３０５は、速度範囲「０ｋｍ／ｈ〜４９ｋｍ／ｈ」に含まれる移動速度パラメータを含む視点パラメータごとに、該視点パラメータ、環境パラメータ、モデルデータ、を用いて生成部１０５と同様にして学習データを生成する。その際、他のパラメータも更に変更することで、様々なパラメータの組み合わせに対応する学習データを生成することができる。同様にして生成部１０５は、速度範囲「５０ｋｍ／ｈ〜９９ｋｍ／ｈ」に含まれる移動速度パラメータを含む視点パラメータごとに、該視点パラメータ、環境パラメータ、モデルデータ、を用いて生成部１０５と同様にして学習データを生成する。さらに生成部１０５は、速度範囲「１００ｋｍ／ｈ〜１５０ｋｍ／ｈ」に含まれる移動速度パラメータを含む視点パラメータごとに、該視点パラメータ、環境パラメータ、モデルデータ、を用いて生成部１０５と同様にして学習データを生成する。これにより生成部３０５は、状況ごとに複数の学習データのセットを生成することができる。
【０１２４】
生成部３０６は、規定の状況ごとに、該状況について生成部３０５が生成した複数の学習データのセットを用いて生成部１０６と同様にして学習モデルの学習を行うことで、規定の状況ごとに学習モデルを生成する。上記の例では、速度範囲「０ｋｍ／ｈ〜４９ｋｍ／ｈ」に対応する学習モデル、速度範囲「５０ｋｍ／ｈ〜９９ｋｍ／ｈ」に対応する学習モデル、速度範囲「１００ｋｍ／ｈ〜１５０ｋｍ／ｈ」に対応する学習モデル、といった複数の学習モデルを生成することになる。そして生成部３０６は、規定の状況ごとに生成した学習モデルを保持部３０７に格納する。
【０１２５】
入力部３０８は、計測部３１から出力された計測パラメータを取得し、該取得した計測パラメータを選択部３０９に対して出力する。選択部３０９は、保持部３０７が保持する学習モデルのうち、入力部３０８から出力された計測パラメータに対応する１つを選択学習モデルとして選択し、該選択学習モデルを推定部１０９に対して出力する。推定部１０９は、選択部３０９から出力された学習モデルを用いて、撮像部１１からの撮像画像に対応する幾何情報を推定する。
【０１２６】
例えば、計測パラメータに含まれている移動速度パラメータが「３０ｋｍ／ｈ」であったとする。このとき選択部３０９は「０ｋｍ／ｈ〜４９ｋｍ／ｈ」、「５０ｋｍ／ｈ〜９９ｋｍ／ｈ」、「１００ｋｍ／ｈ〜１５０ｋｍ／ｈ」のそれぞれに対応する学習モデルのうち「３０ｋｍ／ｈ」を含む「０ｋｍ／ｈ〜４９ｋｍ／ｈ」に対応する学習モデルを選択する。そして選択部３０９は、「０ｋｍ／ｈ〜４９ｋｍ／ｈ」に対応する学習モデルを推定部１０９に対して出力し、推定部１０９は、「０ｋｍ／ｈ〜４９ｋｍ／ｈ」に対応する学習モデルを用いて、撮像部１１からの撮像画像に対応する幾何情報を推定する。
【０１２７】
自動車１の移動速度が速くなるにつれて、撮像部１１による撮像画像にはブラー（ぶれ）が移動速度に応じた強さで発生する。移動速度に応じた学習モデルを複数用意するということは、移動速度に応じたブラーが含まれる学習データを生成し、さらに様々なブラーに対応可能な学習モデルを生成するということである。然るに、自動車１の実際の移動速度に合った学習モデルを選択することで、位置姿勢を高精度に算出することができる。
【０１２８】
なお、上記の例では、移動速度パラメータに基づいて学習モデルを選択したが、他のパラメータに基づいて学習モデルを選択するようにしても構わない。例えば、学習モデルを照明条件ごとに生成した場合、計測パラメータが示す照明条件と類似する照明条件に対応する学習モデルを選択するようにしても良い。また例えば、複数の照明条件のそれぞれについて学習モデルを生成した場合、次のようにして学習モデルを選択しても良い。表示制御部１０２は、該複数の照明条件のうち計測パラメータが示す照明条件と類似する複数の照明条件の一覧を表示部１２の表示画面に表示して該一覧から１つの照明条件を選択するよう自動車１の運転者や同乗者に促す。選択部３０９は、自動車１の運転者や同乗者が該一覧から選択した１つの照明条件に対応する学習モデルを選択する。
【０１２９】
次に、本実施形態に係るシステムが行う処理について、同処理のフローチャートを示す図８を用いて説明する。なお、図８において、図３に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【０１３０】
ステップＳ３０３では、生成部３０５は、規定の状況ごとに複数の学習データのセットを生成する。ステップＳ３０４では、生成部３０６は、規定の状況ごとに、該状況について生成部３０５が生成した複数の学習データを用いて学習モデルの学習を行うことで、規定の状況ごとに学習モデルを生成する。そしてステップＳ３０５では、生成部３０６は、ステップＳ３０４において学習した各状況に対応する学習モデルを保持部３０７に格納する。
【０１３１】
ステップＳ３０６では、計測部３１は、自動車１が走行する際における自動車１の視点（撮像部１１）に係るパラメータ、環境に係るパラメータ、あるいはその他のパラメータを計測パラメータとして計測し、該計測パラメータを入力部３０８に対して出力する。
【０１３２】
ステップＳ３０７では、入力部３０８は、計測部３１から出力された計測パラメータを取得し、該取得した計測パラメータを選択部３０９に対して出力する。ステップＳ３０８では、選択部３０９は、保持部３０７が保持する学習モデルのうち、入力部３０８から出力された計測パラメータに対応する１つを選択学習モデルとして選択し、該選択学習モデルを推定部１０９に対して出力する。
【０１３３】
本実施形態に係るステップＳ１０８では、推定部１０９は、選択部３０９から出力された選択学習モデルに入力部１０８から入力された撮像画像を入力することで該学習モデルから出力される幾何情報を推定結果として取得する。そして推定部１０９は、この幾何情報を後段の算出部１１０及び生成・更新部１１１に対して出力する。
【０１３４】
このように、本実施形態によれば、現在の状況に応じて選択された学習モデルを用いて幾何情報を推定するので、この幾何情報は撮像画像に対して適したものになり、その結果、自動車の自動運転などに適用する位置姿勢を高精度に算出することができる。
【０１３５】
＜変形例１＞
学習モデルは、例えば、配置パラメータ、撮像パラメータ、時刻、季節、天気、周囲に存在する物体、地域等の項目のうち１つ以上の着目項目について複数生成し、計測パラメータに含まれる該着目項目の値に対応する学習モデルを選択するようにしても良い。
【０１３６】
［第４の実施形態］
本実施形態では、仮想空間画像、視点パラメータ、環境パラメータを入力とし、幾何情報を出力とする学習モデルを学習処理によって生成し、該学習モデルに撮像画像及び計測パラメータを入力することで対応する幾何情報を取得するシステムについて説明する。
【０１３７】
先ず、本実施形態に係るシステムの機能構成例について、図９のブロック図を用いて説明する。図９に示した構成は、以下の点で第３の実施形態と異なる。
【０１３８】
生成部３０５は第３の実施形態と同様に、状況ごとに複数の学習データを生成して出力するのであるが、該学習データに該学習データの生成に利用した視点パラメータ及び環境パラメータを添付して出力する。
【０１３９】
生成部４０６は、生成部３０５から出力された各学習データを用いて１つの学習モデルの学習処理を行う。その際、生成部４０６は、学習モデルへの入力として、各学習データに含まれている「仮想空間画像、該仮想空間画像の生成に利用した視点パラメータ及び環境パラメータ」を使用し、教師データとして、各学習データに含まれている「幾何情報」を使用する。このような学習処理により得られる学習モデルは、「仮想空間画像、該仮想空間画像の生成に利用した視点パラメータ及び環境パラメータ」のセットと、該セットに対応する「幾何情報」と、の対応関係を学習することになる。そして生成部４０６は、学習済みの学習モデルを保持部４０７に格納する。
【０１４０】
入力部３０８は、計測部３１からの計測パラメータを推定部４０９に対して送出する。推定部４０９は、保持部４０７から学習モデルを読み出し、該読み出した学習モデルに入力部１０８からの撮像画像と、入力部３０８からの計測パラメータと、を入力することで該学習モデルから出力される幾何情報を出力する。
【０１４１】
例えば、自動車１の移動速度が速くなるにつれて、撮像部１１による撮像画像にはブラー（ぶれ）が移動速度に応じた強さで発生する。移動速度に応じた形で学習モデルにより幾何情報が推定可能になると、様々なブラーに対応可能になる。そして、自動車１の実際の移動速度に合った幾何情報の推定が行われることで、位置姿勢を高精度に算出することができる。
【０１４２】
次に、本実施形態に係るシステムが行う処理について、同処理のフローチャートを示す図１０を用いて説明する。図１０において図８に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【０１４３】
なお、ステップＳ３０３では、生成部３０５は、学習データに該学習データの生成に利用した視点パラメータ及び環境パラメータを添付して出力する点で上記のステップＳ３０３と異なる。
【０１４４】
ステップＳ４０４では、生成部４０６は、生成部３０５から出力された各学習データを用いて１つの学習モデルの学習処理を行う。ステップＳ４０５では、生成部４０６は、学習済みの学習モデルを保持部４０７に格納する。
【０１４５】
ステップＳ３０７では、入力部３０８は、計測部３１からの計測パラメータを推定部４０９に対して出力する点で上記のステップＳ３０７と異なる。ステップＳ４０８では、推定部４０９は、保持部４０７から学習モデルを読み出し、該読み出した学習モデルに入力部１０８からの撮像画像と、入力部３０８からの計測パラメータと、を入力することで該学習モデルから出力される幾何情報を出力する。
【０１４６】
このように、本実施形態によれば、様々な状況に基づく学習データを用いて学習した学習モデルを用いて、撮像画像と測定した状況とに対応する幾何情報を推定するので、この幾何情報は撮像画像及び現在の状況に対して適したものになる。そしてその結果、自動車の自動運転などに適用する位置姿勢を高精度に算出することができる。
【０１４７】
［第５の実施形態］
本実施形態では、保持しているモデルデータを、新たに撮像された撮像画像及び該撮像画像から学習モデルを用いて推定した幾何情報を用いて更新する。本実施形態に係るシステムの機能構成例について、図１１のブロック図を用いて説明する。
【０１４８】
保持部５０１には、予めモデルデータが格納されている。このモデルデータは、上記で説明した様々なモデルデータの何れであっても良い。本実施形態では、保持部５０１に保持されているモデルデータを、入力部１０８が撮像部１１から取得した撮像画像と、該撮像画像から推定部１０９が推定した幾何情報と、に基づいて更新部５０２が更新する。
【０１４９】
例えば、モデルデータとしてポリゴンデータとテクスチャデータとを用いるケースを想定する。このとき更新部５０２は、推定部１０９からの幾何情報をポリゴンデータに変換し、該ポリゴンデータをモデルデータに追加したり、モデルデータにおいて該ポリゴンデータに対応するポリゴンの位置や姿勢などを該ポリゴンデータに基づいて修正する。また、更新部５０２は、撮像画像をテクスチャデータとしてモデルデータに追加したり、該撮像画像における画素の画素値をモデルデータ中のテクスチャデータにおける画素の画素値にαブレンドしたりする。
【０１５０】
また例えば、モデルデータとして点群データと色情報とを用いるケースを想定する。このとき更新部５０２は、推定部１０９からの幾何情報を点群データに変換し、該点群データをモデルデータに追加したり、モデルデータにおいて該点群データに対応する点群の位置を該点群データに基づいて修正する。また、更新部５０２は、撮像画像における画素の画素値を色情報としてモデルデータに追加したり、撮像画像における画素の画素値をモデルデータ中の色情報にαブレンドしたりする。
【０１５１】
また例えば、モデルデータとしてデプスマップと色情報とを持ったキーフレーム情報の集合を用いるケースを想定する。このとき更新部５０２は、推定部１０９からの幾何情報と入力部３０８からの撮像画像を元にした色情報とを有するキーフレーム情報をモデルデータに追加する。なお、更新部５０２は、生成・更新部１１１で生成した三次元マップを用いて保持部５０１が保持するモデルデータを更新しても良い。
【０１５２】
次に、本実施形態に係るシステムが行う処理について、同処理のフローチャートを示す図１２を用いて説明する。なお、図１２において図３に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【０１５３】
ステップＳ５０１では、更新部５０２は、上記の通り、保持部５０１が保持するモデルデータを更新する。更新されたモデルデータは、次回システムが起動した際にステップＳ１０１で読み込まれて利用されても構わないし、モデルデータが更新されるたびにステップＳ１０１〜Ｓ１０５の処理を行って、常に最新のモデルデータが使用されるようにしても良い。
【０１５４】
このように本実施形態によれば、自動車１が実際に走行するシーンの撮像画像及び幾何情報を元にモデルデータの更新が行われる。そのため、学習モデルを生成するための画像のシーンの見え方（アピアランス）と、撮像部が撮像した入力画像に写るシーンの見え方と、が類似したものになる。その結果、自動車の自動運転などに適用する位置姿勢を高精度に算出することができる。
【０１５５】
［第６の実施形態］
本実施形態では、撮像画像と、該撮像画像を学習モデルに入力することで該学習モデルから出力される幾何情報と、を用いて該学習モデルの追加学習を行う。本実施形態に係るシステムの機能構成例について、図１３のブロック図を用いて説明する。
【０１５６】
生成部６０６は、生成部１０６と同様の学習処理を行うことで生成した学習モデルの追加学習処理を行う。追加学習処理では生成部６０６は、入力部１０８からの撮像画像と推定部１０９からの幾何情報とのセットを新たな学習データとし、該新たな学習データと生成部１０５が生成した学習データとを含む複数の学習データを用いて学習モデルの学習処理を行う。このような追加学習処理により、保持部１０７に格納されている学習モデルが更新される。なお、追加学習処理では、生成部６０６は、入力部１０８からの撮像画像と推定部１０９からの幾何情報とのセットを新たな学習データとして学習モデルの学習処理を行っても良い。
【０１５７】
次に、本実施形態に係るシステムが行う処理について、同処理のフローチャートを示す図１４を用いて説明する。なお、図１４において、図３に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【０１５８】
ステップＳ６０１で生成部６０６は、入力部１０８からの撮像画像と推定部１０９からの幾何情報とのセットを新たな学習データとし、該新たな学習データと生成部１０５が生成した学習データとを含む複数の学習データを用いて学習モデルの学習処理を行う。
【０１５９】
このような追加学習処理によって得られた学習モデルは、次回システムが起動した際にステップＳ１０１で読み込まれて利用されても構わないし、追加学習処理を行うたびにステップＳ１０８で幾何情報の推定に利用しても構わない。
【０１６０】
このように本実施形態によれば、自動車１が実際に走行するシーンの撮像画像及び幾何情報を元に学習モデルの追加学習が行われる。そのため、学習モデルを生成するための画像のシーンの見え方（アピアランス）と、撮像部が撮像した入力画像に写るシーンの見え方と、が類似したものになる。その結果、自動車の自動運転などに適用する位置姿勢を高精度に算出することができる。
【０１６１】
［第７の実施形態］
以上の各実施形態や各変形例において説明した構成はその一部若しくは全部を適宜組み合わせて使用しても構わない。また、以上の各実施形態や各変形例において説明した構成はその一部若しくは全部を選択的に使用しても構わない。また、以上説明したパラメータの種別や数値などは、具体的な説明を行うために使用した一例であり、適宜変更しても構わない。
【０１６２】
例えば、上記の各実施形態では、運転制御部１３は情報処理装置の外部機器としていたが、情報処理装置と一体化させても良い。これは、上記の撮像部、表示部、計測部、についても同様である。このように、情報処理装置と一体化させる機器については特定の例に限らない。
【０１６３】
また例えば、第１の実施形態等では、保持部１０１が保持しているモデルデータに基づいて学習データを生成した。しかし、例えば、計測部２１が計測した距離情報と、撮像部２２による撮像画像と、のセットをそのまま（若しくは適宜処理して）学習データとして使用しても良い。
【０１６４】
また例えば、第１の実施形態等では、学習データの生成を、視点に係るパラメータと環境に係るパラメータとではなく、視点に係るパラメータのみに基づき行っても良い。例えば、三次元計測部や撮像部を利用して得た実環境における距離データ（点群データ）と色情報との組み合わせをモデルデータとした場合や、三次元計測部や撮像部を利用して得たデプスマップと色情報とを有し且つ環境の位置姿勢に対応付いたキーフレーム情報をモデルデータとした場合は、学習データの生成に環境に係るパラメータが必要ではないことがある。
【０１６５】
また例えば、第１の実施形態等では、学習データの生成を、視点に係るパラメータと環境に係るパラメータとではなく、環境に係るパラメータのみに基づき行っても良い。例えば、自動車１と自動車２とが同じ自動車であり、視点に係るパラメータが共通の場合、学習データの生成に視点に係るパラメータが必要ではないことがある。
【０１６６】
また例えば、第１の実施形態等では、視点に係るパラメータと環境に係るパラメータとの例をそれぞれ複数挙げたが、学習データの生成にそれら全てが必要ではなく、少なくとも１つ以上あれば良い。（あるいは上述のとおり０であっても良い。）
［第８の実施形態］
図２、５、７、９、１１、１３に示した情報処理装置の各機能部はハードウェア（例えば組み込みハードウェア）で実装しても良いし、一部をソフトウェア（コンピュータプログラム）で実装しても良い。後者の場合、例えば、保持部として説明したものをメモリで実装し、それ以外の機能部をソフトウェアで実装するようにしても良い。この場合、該メモリを有し、且つ該ソフトウェアを実行可能なプロセッサを有するコンピュータ装置であれば、上記の各実施形態や各変形例にて説明した情報処理装置に適用可能である。このようなコンピュータ装置のハードウェア構成例について、図１５のブロック図を用いて説明する。
【０１６７】
ＣＰＵ１５０１は、ＲＡＭ１５０２やＲＯＭ１５０３に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりＣＰＵ１５０１は、コンピュータ装置全体の動作制御を行うと共に、上記の各情報処理装置が行うものとして上述した各処理を実行若しくは制御する。ＣＰＵ１５０１は、例えば、上記の制御部１９９として機能する。
【０１６８】
ＲＡＭ１５０２は、ＲＯＭ１５０３や外部記憶装置１５０５からロードされたコンピュータプログラムやデータ、Ｉ／Ｆ（インターフェース）１５０６を介して外部から受信したデータ、等を格納するためのエリアを有する。さらにＲＡＭ１５０２は、ＣＰＵ１５０１が各種の処理を実行する際に用いるワークエリアを有する。このようにＲＡＭ１５０２は、各種のエリアを適宜提供することができる。ＲＯＭ１５０３には、書換不要のコンピュータプログラムやデータが格納されている。
【０１６９】
操作部１５０４は、キーボード、マウス、タッチパネル画面などのユーザインターフェースにより構成されており、ユーザが操作することで各種の指示をＣＰＵ１５０１に対して入力することができる。例えばユーザは、操作部１５０４を操作して図４のＧＵＩに対する操作入力を行うことができる。
【０１７０】
外部記憶装置１５０５は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置１５０５には、ＯＳ（オペレーティングシステム）や、上記の各情報処理装置が行うものとして上述した各種の処理をＣＰＵ１５０１に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。外部記憶装置１５０５に保存されているコンピュータプログラムには、図２、５、７、９、１１、１３に示した各機能部のうち保持部以外の各機能部の機能をＣＰＵ１５０１に実現させるためのコンピュータプログラムが含まれている。また、外部記憶装置１５０５に保存されているコンピュータプログラムには、図４のＧＵＩに係るコンピュータプログラムも含まれている。また、外部記憶装置１５０５に保存されているデータには、上記の説明において既知の情報として説明したものや、保持部が保持するものとして説明したデータ、図４のＧＵＩに係るデータ、が含まれている。外部記憶装置１５０５に保存されているコンピュータプログラムやデータは、ＣＰＵ１５０１による制御に従って適宜ＲＡＭ１５０２にロードされ、ＣＰＵ１５０１による処理対象となる。
【０１７１】
Ｉ／Ｆ１５０６は、外部とのデータ通信を行うためのユーザインターフェースとして機能するものであり、Ｉ／Ｆ１５０６には例えば、上記の撮像部、表示部、計測部、運転制御部、情報処理装置２０、等が接続される。
【０１７２】
上記のＣＰＵ１５０１、ＲＡＭ１５０２、ＲＯＭ１５０３、操作部１５０４、外部記憶装置１５０５、Ｉ／Ｆ１５０６、は何れも、バス１５０７に接続されている。なお、図１５に示した構成は、上記の情報処理装置に適用可能な構成の一例に過ぎない。また、図１５に示した構成は、情報処理装置２０にも適用可能である。
【０１７３】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１７４】
１０１：保持部  １０２：表示制御部  １０３：入力部  １０４：入力部  １０５:生成部  １０６：生成部  １０７：保持部  １０８：入力部  １０９：推定部  １１０：算出部  １１１：生成・更新部
【図１】
2019124538.tif 000007
【図２】
2019124538.tif 000008
【図３】
2019124538.tif 000009
【図４】
2019124538.tif 000010
【図５】
2019124538.tif 000011
【図６】
2019124538.tif 000012
【図７】
2019124538.tif 000013
【図８】
2019124538.tif 000014
【図９】
2019124538.tif 000015
【図１０】
2019124538.tif 000016
【図１１】
2019124538.tif 000017
【図１２】
2019124538.tif 000018
【図１３】
2019124538.tif 000019
【図１４】
2019124538.tif 000020
【図１５】
2019124538.tif 000021