(57)【特許請求の範囲】
【請求項１】
２次元画像を取得する取得部と、
人工知能を備え、当該人工知能に前記２次元画像を与えて前記２次元画像の被写体の３次元形状を推定させる推定部と
を具備し、
前記人工知能は、サンプル被写体の３次元形状を記述する形状情報である教師データと、当該サンプル被写体の３次元形状を撮影したサンプル２次元画像とを含む学習データを用いて行われた機械学習の学習結果が設定されていて、
前記推定部は、前記人工知能に前記２次元画像の被写体の３次元形状を推定させ、当該３次元形状を記述する形状情報を得て、
前記被写体の３次元形状は基準面に関して略面非対称であって、
前記形状情報は、基本モデルの表す所定の３次元形状の表面のうち前記基準面から一方側に対して施される変形について位置情報および強度情報を含むことに加え、前記基準面から一方側または他方側にのみ作用する前記位置情報および前記強度情報を含む、
形状推定装置。
【請求項２】
前記形状情報は、前記２次元画像の被写体の３次元形状の実サイズを定めるサイズ情報をさらに含む、請求項１に記載の形状推定装置。
【請求項３】
前記変形は、前記所定の３次元形状の表面のうち前記位置情報の示す作用点を予め定められた原点から当該作用点を結ぶ直線に略平行な作用方向に沿って前記強度情報の示す量だけ変位させる第１の種別の変形を含む、請求項１に記載の形状推定装置。
【請求項４】
前記第１の種別の変形は、前記所定の３次元形状の表面を伸縮自在な膜と仮定して前記作用点を前記作用方向に沿って前記強度情報の示す量だけ変位させた場合に前記所定の３次元形状の表面に生じる伸縮をシミュレートする、請求項３に記載の形状推定装置。
【請求項５】
前記第１の種別の変形は、前記所定の３次元形状の表面を伸縮自在な膜と仮定して前記作用点に当該膜の内側または外側から曲面を押し当てて当該作用点を前記作用方向に沿って前記強度情報の示す量だけ変位させた場合に前記所定の３次元形状の表面に生じる伸縮をシミュレートする、請求項４に記載の形状推定装置。
【請求項６】
前記形状情報は、前記曲面のサイズを定めるサイズ情報をさらに含む、請求項５に記載の形状推定装置。
【請求項７】
前記機械学習は、
学習用の人工知能に前記サンプル２次元画像を与えて前記サンプル被写体の３次元形状を推定させることと、
前記サンプル被写体の３次元形状の推定結果に基づいてレンダリングされた前記サンプル被写体の推定３次元形状を撮影した再現画像を生成することと、
前記再現画像が前記サンプル２次元画像に類似するように前記学習用の人工知能の学習パラメータを更新することと
を含む、請求項１に記載の形状推定装置。
【請求項８】
前記推定部は、前記被写体の姿勢を推定し、前記被写体の基準姿勢からの差分を示す姿勢情報をさらに生成する、請求項１に記載の形状推定装置。
【請求項９】
前記推定部は、前記人工知能に前記２次元画像の被写体と略相似関係の３次元形状を推定させる、請求項１に記載の形状推定装置。
【請求項１０】
前記人工知能は、深層ニューラルネットワークである、請求項１に記載の形状推定装置。
【請求項１１】
コンピュータによって、２次元画像を取得することと、
前記コンピュータによって、人工知能に前記２次元画像を与えることと、
前記コンピュータによって、前記人工知能を用いて前記２次元画像の被写体の３次元形状を推定することと
を具備する形状推定方法であって、
前記人工知能は、サンプル被写体の３次元形状を記述する形状情報である教師データと、当該サンプル被写体の３次元形状を撮影したサンプル２次元画像とを含む学習データを用いて行われた機械学習の学習結果が設定されていて、
前記形状推定方法は、前記コンピュータによって、前記人工知能を用いて前記２次元画像の被写体の３次元形状を推定させ、当該３次元形状を記述する形状情報を得ることをさらに具備し、
前記被写体の３次元形状は基準面に関して略面非対称であって、
前記形状情報は、基本モデルの表す所定の３次元形状の表面のうち前記基準面から一方側に対して施される変形について位置情報および強度情報を含むことに加え、前記基準面から一方側または他方側にのみ作用する前記位置情報および前記強度情報を含む、
形状推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次元画像から被写体の３次元形状を推定する技術に関する。
【背景技術】
【０００２】
カメラによって撮影された画像を分析し、予め定められた種類の被写体を認識する技術が研究されている。例えば、自動車に取り付けられたカメラによって撮影された当該自動車前方の画像を分析し、道路の路側帯、車線、先行車両、対向車両、歩行者などの予め定められた種類の被写体を認識する技術が知られている。
【０００３】
このような認識技術と、レーザーレーダーなどの測距装置とを併用すれば、自動車の前方１０メートルに先行車両が存在する、などの情報が得られる。このような情報は、例えば自動運転の分野において有用となる可能性がある。
【０００４】
しかしながら、前述の予め定められた種類の被写体を認識する技術によれば、例えば自動車の前方に先行車両が存在するなどの情報は得られるものの、当該先行車両の３次元形状の情報を得ることはできない。
【０００５】
前方にある被写体の３次元形状がわからないと、当該被写体の存在を単に検出するだけでは適切な対応動作を行うことができないことがある。例えば、対向車の荷台から荷物がはみ出しているような場合には、対向車が存在するという情報のみでは、適切な対応ができない。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】「Ｕｎｓｕｐｅｒｖｉｓｅｄ  Ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  Ｌｅａｒｎｉｎｇ  ｗｉｔｈ  Ｄｅｅｐ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｇｅｎｅｒａｔｉｖｅ  Ａｄｖｅｒｓａｒｉａｌ  Ｎｅｔｗｏｒｋｓ」＜ＵＲＬ：  ｈｔｔｐｓ：／／ａｒｘｉｖ．ｏｒｇ／ａｂｓ／１５１１．０６４３４＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、２次元画像から被写体の３次元形状を推定することを目的とする。
【課題を解決するための手段】
【０００８】
以降の説明および特許請求の範囲において、人工知能とは、ディープラーニングのような機械学習の仕組みを用いて、機械自身が学習を行うことによって所定の能力を獲得する機械学習装置、機械によって実行される学習方法、学習によって獲得された能力を発揮する装置およびその実現方法などの意味で用いられる。本願において、機械学習は、ディープラーニングに限られず、形状を推定する能力が獲得できる任意の学習方法を用いることができる。
【０００９】
本発明の第１の態様によれば、形状推定装置は、取得部と、推定部とを含む。取得部は、２次元画像を取得する。推定部は、人工知能を備え、当該人工知能に２次元画像を与えて２次元画像の被写体の３次元形状を推定させる。人工知能は、サンプル被写体の３次元形状を表す教師データと、サンプル被写体の３次元形状を撮影したサンプル２次元画像とを含む学習データを用いて行われた機械学習の学習結果が設定されている。故に、この態様によれば、２次元画像から被写体の３次元形状を推定することができる。
【００１０】
本発明の第２の態様によれば、推定部は、人工知能に２次元画像の被写体の３次元形状を推定させ、３次元形状を記述する形状情報を得る。故に、この態様によれば、２次元画像から被写体の３次元形状を記述する形状情報を得ることができる。
【００１１】
本発明の第３の態様によれば、形状情報は、基本モデルの表す所定の３次元形状の表面に対して施される変形毎に変形の位置および強度をそれぞれ定める位置情報および強度情報を含む。故に、この態様によれば、形状情報は、例えばポリゴンを用いた場合に比べて小さなデータサイズで、少なくとも被写体の基本的な（実サイズを考慮しない）３次元形状を表現することができる。
【００１２】
本発明の第４の態様によれば、形状情報は、２次元画像の被写体の３次元形状の実サイズを定めるサイズ情報をさらに含む。故に、この態様によれば、形状情報は、例えばポリゴンを用いた場合に比べて小さなデータサイズで、被写体の実サイズを含めた３次元形状を表現することができる。
【００１３】
本発明の第５の態様によれば、変形は、所定の３次元形状の表面のうち位置情報の示す作用点を予め定められた原点から作用点を結ぶ直線に略平行な作用方向に沿って強度情報の示す量だけ変位させる第１の種別の変形を含む。故に、この態様によれば、被写体の基本的な３次元形状に含まれる凹凸を小さなデータサイズで表現することができる。
【００１４】
本発明の第６の態様によれば、第１の種別の変形は、所定の３次元形状の表面を伸縮自在な膜と仮定して作用点を作用方向に沿って強度情報の示す量だけ変位させた場合に所定の３次元形状の表面に生じる伸縮をシミュレートする。故に、この態様によれば、形状情報は、被写体の基本的な３次元形状に含まれる凹凸を小さなデータサイズで表現することができる。
【００１５】
本発明の第７の態様によれば、第１の種別の変形は、所定の３次元形状の表面を伸縮自在な膜と仮定して作用点に膜の内側または外側から曲面を押し当てて作用点を作用方向に沿って強度情報の示す量だけ変位させた場合に所定の３次元形状の表面に生じる伸縮をシミュレートする。故に、この態様によれば、形状情報は、被写体の基本的な３次元形状に含まれる丸みを帯びた凹凸を小さなデータサイズで表現することができる。
【００１６】
本発明の第８の態様によれば、形状情報は、曲面のサイズを定めるサイズ情報をさらに含む。故に、この態様によれば、形状情報は、より複雑な３次元形状を小さなデータサイズで表現することができる。
【００１７】
本発明の第９の態様によれば、機械学習は、学習用の人工知能にサンプル２次元画像を与えてサンプル被写体の３次元形状を推定させることと、サンプル被写体の３次元形状の推定結果に基づいてレンダリングされたサンプル被写体の推定３次元形状を撮影した再現画像を生成することと、再現画像がサンプル２次元画像に類似するように学習用の人工知能の学習パラメータを更新することとを含む。故に、この態様によれば、学習用の人工知能に、２次元画像から被写体の３次元形状を推定する能力を獲得させることができる。
【００１８】
本発明の第１０の態様によれば、推定部は、被写体の姿勢を推定し、被写体の基準姿勢からの差分を示す姿勢情報をさらに生成する。故に、この態様によれば、２次元画像から被写体の３次元形状に加えてその姿勢も推定することができる。
【００１９】
本発明の第１１の態様によれば、被写体の３次元形状は基準面に関して略面対称である。形状情報は、所定の３次元形状の表面のうち基準面から一方側に対して施される変形について位置情報および強度情報を含み、所定の３次元形状の表面のうち基準面から他方側に対して施される変形について位置情報および強度情報を含まない。故に、この態様によれば、形状情報は、全ての変形のうち約半分について位置情報および強度情報を含まなくてよいので、データサイズを抑制することができる。
【発明の効果】
【００２０】
本発明によれば、２次元画像から被写体の３次元形状を推定することができる。
【図面の簡単な説明】
【００２１】
【図１】第１の実施形態に係る形状推定装置を例示するブロック図。
【図２】図１の深層ニューラルネットワークに設定される学習パラメータを得る機械学習システムを例示するブロック図。
【図３】第２の実施形態に係る空間認識システムを例示するブロック図。
【図４】図３のシーンパラメータのデータ構成を例示する図。
【図５Ａ】先行車両の姿勢の一例を示す図。
【図５Ｂ】先行車両の姿勢の一例を示す図。
【図５Ｃ】対向車両の姿勢の一例を示す図。
【図５Ｄ】対向車両の姿勢の一例を示す図。
【図６】車両前方を撮影したシーン画像に含まれ得る被写体を例示する図。
【図７】実施例における環境モデルを例示する図。
【図８】実施例における物体形状モデルの説明図。
【図９】実施例における空間形状モデルの説明図。
【図１０】第３の実施形態に係るサービス提供システムを例示するブロック図。
【図１１】図１０の利用者端末装置のハードウェア構成を例示するブロック図。
【図１２】図１０のサービス提供システムに含まれるサーバ型装置の共通のハードウェア構成を例示するブロック図。
【図１３】図１０の学習サービス提供装置の機能構成を例示するブロック図
【図１４】図１０の学習データ作成システムを例示するブロック図。
【図１５】図１０の各学習装置の共通のハードウェア構成を例示するブロック図。
【図１６】図１０の各学習装置の共通の機能構成を例示するブロック図。
【図１７】図１６のニューラルネットワークを例示するブロック図。
【図１８】図１０のサービス提供システムの動作を例示するフローチャート。
【図１９】図１０の各学習装置の共通の動作を例示するフローチャート。
【発明を実施するための形態】
【００２２】
以下、図面を参照しながら実施形態の説明を述べる。なお、以降、説明済みの要素と同一または類似の要素には同一または類似の符号を付し、重複する説明については基本的に省略する。
【００２３】
（第１の実施形態）  
図１に例示されるように、第１の実施形態に係る形状推定装置１００は、取得部１０１と、推定部１０２とを含む。形状推定装置１００は、２次元画像１０を受け取り、当該２次元画像１０から当該２次元画像１０の被写体の３次元形状を推定する。推定結果は、例えば後述される形状情報１１として出力されてよい。
【００２４】
形状推定装置１００は、形状を推定する能力を獲得するための学習機能を備えてもよく、外部装置である学習装置から形状を推定する能力を獲得するための機械学習の結果を取得するようにしてもよい。
【００２５】
取得部１０１は、２次元画像１０を取得する。取得部１０１は、例えば図示されないカメラによってリアルタイムで撮影されている動画像のフレームデータを２次元画像１０として取得してもよいし、過去に撮影され図示されないストレージに格納されている２次元画像１０を取得してもよい。取得部１０１は、２次元画像１０をそのまま推定部１０２へと出力してもよいし、２次元画像１０に含まれる１以上の被写体領域を認識し、被写体領域を抽出して推定部１０２へと出力してもよい。
【００２６】
推定部１０２は、取得部１０１から２次元画像１０を受け取り、深層ニューラルネットワーク１０３に当該２次元画像１０を与えて当該２次元画像１０の被写体の３次元形状を推定させる。この深層ニューラルネットワーク１０３は、サンプル被写体の３次元形状を表す教師データと、当該サンプル被写体の３次元形状を撮影したサンプル２次元画像とを含む学習データを用いて行われた機械学習（教師あり学習）の学習結果が設定されている。なお、深層ニューラルネットワーク１０３は、深層ニューラルネットワーク以外の人工知能（機械学習によって獲得された形状を推定する能力を発揮する装置）に置き換えられてもよい。そして、推定部１０２は、形状情報１１を推定結果として生成して出力してもよい。
【００２７】
深層ニューラルネットワーク１０３には、２次元画像１０から当該２次元画像１０の被写体の３次元形状を推定する能力を獲得するための機械学習（例えば、ディープラーニング）を通じて得られた学習結果（例えば、ニューラルネットワーク内のユニットのバイアス、ユニット間のエッジの重みなどの学習パラメータ）が設定されている。この機械学習は、例えば以下に説明するように実施することができる。
【００２８】
図２には、深層ニューラルネットワーク２１０の機械学習を実施する機械学習システムが例示される。この機械学習に用いられる学習データ２４は、それぞれ、入力データとしてのサンプル被写体の２次元画像２１と、教師データとしてのサンプル被写体の形状情報２０とを含む。２次元画像２１は、例えば、画像生成装置２００が形状情報２０に基づいてサンプル被写体の３次元形状をレンダリングし、当該３次元形状を仮想カメラで撮影することによって生成されてもよい。なお、仮想カメラの配置を変更することで、被写体の姿勢または位置が異なる多数の２次元画像２１を１セットの形状情報２０から生成することができる。
【００２９】
画像生成装置２００は、形状情報２０に基づいてサンプル被写体の３次元形状をレンダリングする。画像生成装置２００は、例えば、形状情報２０に基づいて３次元ＣＧを生成するプログラムと、当該プログラムを実行するプロセッサとを含むことができる。係るプログラムは、例えば、映画、ＴＶ番組、ビデオゲームなどの映像作品において利用されている３次元ＣＧの生成技術をベースとすることができる。一例として、所定のパラメータから３次元ＣＧを生成する既存のプログラムと、形状情報を当該所定のパラメータに変換するためのプログラムとを組み合わせることで、画像生成装置２００の機能を実現可能である。同様の画像生成を、被写体の実物とカメラを操作するロボットを用いて、さまざまな位置や方向から対象を撮影して行うようにしてもよい。ロボットに撮影条件を指定することで、多数の画像を効率的に作成することができる。
【００３０】
深層ニューラルネットワーク２１０は、入力データとしての２次元画像２１を取得し、当該２次元画像２１の被写体の３次元形状を推定する。そして、深層ニューラルネットワーク２１０は、推定結果としての形状情報２２を生成する。
【００３１】
学習装置２２０は、形状情報２２が教師データとしての形状情報２０に近づくように、深層ニューラルネットワーク２１０の学習（学習パラメータの更新）を行う。
【００３２】
具体的には、学習装置２２０は、形状情報２０と形状情報２２との誤差を最小化するように深層ニューラルネットワーク２１０の学習を行ってもよいし、形状情報２２を２次元画像化した２次元画像２３（再現画像と呼ぶこともできる）と２次元画像２１との誤差を最小化するように深層ニューラルネットワーク２１０の学習を行ってもよい。形状情報２２の２次元画像化は、例えば、画像生成装置２００が形状情報２２に基づいて３次元形状をレンダリングし、当該３次元形状を仮想カメラで撮影することで実現可能である。
【００３３】
２次元画像２３と２次元画像２１との誤差を最小化する学習には、例えば、ＤＣＧＡＮ（Ｄｅｅｐ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｇｅｎｅｒａｔｉｖｅ  Ａｄｖｅｒｓａｒｉａｌ  Ｎｅｔｗｏｒｋｓ）に類似するアルゴリズムが利用されてもよい。
【００３４】
ＤＣＧＡＮは、大量の画像を用いて学習を行うことで、本物らしい（例えば、学習に用いられた画像との区別がつかない）画像を生成する能力を獲得できる。ＤＣＧＡＮのベースとなるＧＡＮでは、ＧｅｎｅｒａｔｏｒとＤｉｓｃｒｉｍｉｎａｔｏｒとが交互に学習を繰り返す（いわゆる、いたちごっこ）。この結果、Ｇｅｎｅｒａｔｏｒは、Ｄｉｓｃｒｉｍｉｎａｔｏｒに学習に用いられたデータと誤認させるようなデータを生成する能力を獲得する。
【００３５】
なお、本発明におけるニューラルネットワークの学習方法はＤＣＧＡＮには限定されない。学習は、所定の２次元形状データをニューラルネットワークに入力したときの出力と、それに対応する３次元形状の誤差が計算できるものであればよい。誤差を減らすように学習を行うことで、学習を進めることができる。具体的には、ニューラルネットワークの出力である形状情報と、形状情報の教師データとの誤差を減らすように学習を行うようにしてもよい。あるいは、ニューラルネットワークの出力である形状情報を所定の関数で別のベクトルに変換した後の変換形状情報と変換形状情報の教師データの誤差を減らすように学習を行うようにしてもよい。その際に、ベクトルの次元数に増減があってもよい。
【００３６】
形状情報１１（ならびに、形状情報２０および形状情報２２）は、被写体の３次元形状を表現することのできる任意の情報が採用されてよい。被写体の３次元形状は、例えば、被写体としての製品の外形を設計するための、ポリゴンを用いたＣＡＤデータとして表現することができる。この場合には、形状推定装置１００には、所定の２次元画像が入力されたときに、それに対応するポリゴンを用いたＣＡＤデータを推定して出力することを学習した結果が設定される。ポリゴン数が少ないシンプルな被写体であれば、比較的短い時間で学習が完了する。ニューラルネットワークの出力の各ニューロンが、各ポリゴンを構成するパラメータの各部分を出力するようにすれば、ニューラルネットワークの学習によって、ポリゴンの形状を推定する能力を獲得することができる。
【００３７】
ただし、比較的複雑な３次元形状を例えば数百個程度のポリゴンで表現するとすれば、形状情報１１のデータサイズは非常に大きくなる。故に、係る形状情報１１を用いた機械学習は、莫大な演算を必要とすることになり、コストおよび所要時間の観点から実現困難となるおそれがある。そこで、データサイズを抑制する観点から、以下に説明される形状情報１１が用いられてもよい。所定の個数の数値データで３次元形状を記述できるデータであれば、下記に説明される以外の形状情報１１を用いるようにしてもよい。ニューラルネットワークの出力に関連付けることが可能なパラメータで構成される、任意の形状情報１１を用いることができる。
【００３８】
具体的には、形状情報１１は、例えば、被写体の基本的な３次元形状を表現するために、後述される位置情報、強度情報などの値を含むベクトルとして定義することができる。さらに、形状情報１１としてのベクトルは、後述されるサイズ情報の値を含んでいてもよい。かかる形状情報１１は、例えば従来のビデオゲームまたは映画における３次元ＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）生成に用いられるポリゴンに比べて、はるかに小さいデータサイズで３次元形状を表現することができる。故に、かかる形状情報１１を用いることで、後述される機械学習に必要な演算量を減少させることができる。
【００３９】
具体的には、推定部１０２は基本モデルの表す所定の３次元形状の表面に任意の変形を加えることで、推定した被写体の基本的な３次元形状を表現する。ここで、基本的とは、実サイズを区別しないことを意味している。すなわち、基本的な３次元形状は、被写体の真の３次元形状と略相似関係にあればよく、実サイズを問わない。例えば、自動車の基本的な３次元形状は、ミニカーの基本的な３次元形状と同一であり得る。また、例えば、所定の３次元形状は、球、立方体などであるがこれらに限られない。
形状情報１１は、所定の３次元形状の表面に対して施される任意の変形のそれぞれについて当該変形の位置及び強度をそれぞれ定める位置情報および強度情報を含み得る。
【００４０】
任意の変形には、例えば、所定の３次元形状の表面のうち位置情報の示す作用点を予め定められた原点から当該作用点を結ぶ直線に略平行な作用方向に沿って強度情報の示す量だけ変位させる第１の種別の変形が含まれていてもよい。第１の種別の変形とは、概念的には、所定の３次元形状の表面の一点（作用点）を当該３次元形状の外側に向かって引っ張ったり、当該３次元形状の内側に向かって押し込んだりすることに相当する。原点は、例えば所定の３次元形状の中心点に定められるがこれに限られない。
【００４１】
第１の種別の変形によって、所定の３次元形状の表面のうち作用点の周辺部分も当該作用点に連動して変位し、この周辺部分の形状は変化することになる。例えば、第１の種別の変形は、所定の３次元形状の表面を伸縮自在な膜（例えばゴム）と仮定して作用点を作用方向に沿って強度情報の示す量だけ変位させた場合に当該３次元形状の表面に生じる伸縮をシミュレートするものであってよい。
【００４２】
このように３次元形状を表現することで、３次元形状の一部のデータをわずかに変化させたときに、影響を受ける周囲の部分が表面の連続性を保ったまま、わずかに変化する。このような変化は、深層ニューラルネットワークにおいて誤差を減らすことによって行う学習にとって、好適である。また、このような表現方法では、ポリゴンを組み合わせる場合のように、学習過程で変形させたポリゴンに隣り合うポリゴンの位置を再計算することが不要であるので、計算処理がよりシンプルな構成となるとともに、演算量を削減できる。この結果、学習効率が向上する。
【００４３】
第１の種別の変形は、例えば、固定または可変のサイズを有する曲面を用いて行われてもよい。ただし、ここでのサイズとは、実サイズである必要はなく、例えば、所定の３次元形状の半径、１辺の長さなどの基準となるサイズを「１」とする任意単位のサイズであってよい。すなわち、第１の種別の変形は、所定の３次元形状の表面を伸縮自在な膜と仮定して作用点に当該膜の内側または外側から曲面を押し当てて当該作用点を作用方向に沿って強度情報の示す量だけ変位させた場合に当該３次元形状の表面に生じる伸縮をシミュレートするものであってよい。
【００４４】
曲面のサイズ（例えば、球面の半径）を可変とすることで、より複雑な３次元形状を表現することができる。この場合には、形状情報１１は、所定の３次元形状の表面に対して施される第１の種別の変形のそれぞれについて曲面のサイズを定めるサイズ情報を含む必要がある。曲面の形状は、例えば球面であるが、これに限らず例えば角張ったものも含み得る。
【００４５】
なお、推定部１０２は、３次元形状が基準面に関して略面対称である（例えば、左右対称、上下対称、前後対称）という仮定の下で推定を行ってもよい。このような仮定の下では、所定の３次元形状の表面に対して施される変形のうちの半分についての情報を形状情報１１から省略可能である。
【００４６】
具体的には、形状情報１１は、所定の３次元形状の表面のうち上記基準面から一方側（例えば右側）に対して施される変形についてのみ位置情報および強度情報を含んでいればよい。他方側（例えば左側）に対して施される変形は、一方側に対して施される変形についての位置情報を適宜変換することで複製することができる。形状情報１１のデータサイズを削減することで、機械学習に必要な演算量をさらに減少させることができる。なお、このような仮定の下でも、例えば、基準面から一方側または他方側にのみ作用する変形を表現する情報を形状情報１１に追加することで、非対称な３次元形状を表現することができる。
【００４７】
さらに、形状情報１１は、被写体の３次元形状の実サイズを定めるサイズ情報を含み得る。例えば、サイズ情報の値が「ｓ」である場合には（ｓは、例えば正の実数値）、所定の３次元形状を半径ｓ［ｍ］の球として前述の変形を行った場合に得られる３次元形状によって被写体の実サイズを含む３次元形状の推定結果が定められてもよい。
【００４８】
以上説明したように、第１の実施形態に係る形状推定装置は、人工知能に２次元画像を与えて当該２次元画像の被写体の３次元形状を推定させる。この人工知能は、サンプル被写体の３次元形状を表す教師データと、当該サンプル被写体の３次元形状を撮影したサンプル２次元画像とを含む学習データを用いて行われた機械学習の学習結果が設定されている。故に、この形状推定装置によれば、２次元画像から被写体の３次元形状を推定することができる。
【００４９】
さらに、推定結果として、例えば形状情報が生成されてもよい。形状情報は、所定の３次元形状の表面に対して施される任意の変形のそれぞれについて当該変形の位置及び強度をそれぞれ定める位置情報および強度情報の値を含むベクトルとして定義され得る。かかる形状情報を用いれば、例えばポリゴンを用いた場合に比べて小さなデータサイズで、２次元画像の被写体の３次元形状を表現することができる。さらに、この形状情報としてのベクトルは、被写体の３次元形状の実サイズを定めるサイズ情報の値も含み得る。かかる形状情報を用いれば、例えばポリゴンを用いた場合に比べて小さなデータサイズで、２次元画像の被写体の実サイズを含む３次元形状を表現することができる。
【００５０】
なお、第１の実施形態に係る形状推定装置は、２次元画像の被写体の３次元形状に加えて当該被写体の姿勢を推定してもよい。姿勢は、例えば被写体の基準姿勢（例えば正面を向いた状態）からの差分（回転角）を示す姿勢情報によって表現可能である。係る追加機能を実現するためには、例えば、形状情報に追加して姿勢情報を教師データとして用いて前述の機械学習を行えばよい。
【００５１】
３次元形状を表現する方法は、上記に限定されない。例えば、所定の数（例えば１００個）の立方体を積み上げるようにして、各立方体の相対位置をベクトルとして３次元形状を表現するようにしてもよい。所定の数のパラメータで３次元形状を表現できる方法であれば、任意の表現（形状情報）を使用して学習することができる。
【００５２】
（第２の実施形態）  
第２の実施形態は、前述の第１の実施形態に係る形状推定装置を利用した空間認識システムである。この空間認識システムは、カメラによって撮影された（２次元）シーン画像からシーン内の被写体を認識（モデル化）する。具体的には、この空間認識システムは、シーン画像からシーン内の被写体を表現するシーンパラメータを生成し、このシーンパラメータには前述の形状情報および姿勢情報が含まれる。
【００５３】
図３に例示されるように、第２の実施形態に係る空間認識システムは、空間認識装置３２０を含む。空間認識装置３２０は、シーン画像３２からシーン内の被写体を認識し、当該被写体を表現するシーンパラメータ３３を生成する。
【００５４】
シーンパラメータ３３は、図４に例示されるように、形状情報と、姿勢情報と、位置情報と、移動情報と、テクスチャ情報とを含む。なお、シーンパラメータ３３は、図４に示されていない他の情報をさらに含んでいてもよいし、図４に示される情報の一部を含んでいなくてもよい。例えば、テクスチャ情報が認識対象から除外されてもよい。
【００５５】
図４の形状情報および姿勢情報は、第１の実施形態で説明した形状情報および姿勢情報と同一または類似であってよい。すなわち、形状情報は、任意個数の変形を表現する情報（例えば、位置情報および強度情報）の値を含むベクトルとして定義されてよい。形状情報は、さらにサイズ情報の値を含むベクトルとして定義されてよい。姿勢情報は、被写体の基準姿勢（例えば正面を向いた状態）からの差分（回転角）を示すように定義されてよい。
【００５６】
位置情報は、被写体が占める位置を示し、例えば後述される近隣空間内の座標として定義される。位置情報は、直交座標系および極座標系のどちらを用いて表現することもできる。移動情報は、被写体の移動の態様を示す。従って、移動体でない被写体のシーンパラメータに移動情報は不要である。移動の態様とは、典型的には、方向であるが、速度または加速度を含む可能性もある。
【００５７】
テクスチャ情報は、被写体のテクスチャ（例えば、色、模様、文字）を表す画像として定義される。なお、立体である被写体についても、当該被写体の外観の展開図を作成することで２次元画像としてテクスチャを表現可能である。
【００５８】
空間認識装置３２０は、図示されない深層ニューラルネットワークを利用して、シーン画像３２からシーン内の被写体を認識してシーンパラメータ３３を生成する。この深層ニューラルネットワークには、例えば、以下の機械学習を通じて得られた学習パラメータが設定されている。
【００５９】
機械学習は、図３の空間認識学習装置３１０によって行われる。この機械学習に用いられる学習データは、それぞれ、入力データとしてのサンプル被写体のシーン画像３１と、教師データとしてのサンプル被写体のシーンパラメータ３０とを含む。
【００６０】
シーン画像３１は、例えば、画像生成装置３００がシーンパラメータ３０に基づいてサンプル被写体の３次元形状をレンダリングし、当該３次元形状を仮想カメラで撮影することによって生成されてもよい。
【００６１】
なお、仮想カメラの配置は、シーンパラメータ３０に含まれる姿勢情報および位置情報に基づいて決定される。故に、形状情報が同一であっても、姿勢情報または位置情報が異なれば、シーン画像３１における被写体の外観は異なる。
【００６２】
画像生成装置３００は、シーンパラメータに含まれる形状情報に基づいてサンプル被写体の３次元形状をレンダリングする。画像生成装置３００は、前述の画像生成装置２００と同一または類似であってよい。第１の実施形態の場合と同様に、仮想カメラを実際のカメラに置き換えて、ロボットなどに操作させるようにしてもよい。
【００６３】
空間認識学習装置３１０に含まれる学習用の深層ニューラルネットワークは、入力データとしてのシーン画像３１を取得し、当該シーン画像３１の被写体を認識する。そして、この深層ニューラルネットワークは、認識結果としてのシーンパラメータを生成する。
【００６４】
空間認識学習装置３１０は、学習用の深層ニューラルネットワークによって生成されるシーンパラメータが教師データとしてのシーンパラメータ３０に近づくように、当該深層ニューラルネットワークの学習を行う。
【００６５】
具体的には、空間認識学習装置３１０は、シーンパラメータ３０と学習用の深層ニューラルネットワークによって生成されるシーンパラメータとの誤差を最小化するように当該深層ニューラルネットワークの学習を行ってもよい。或いは、空間認識学習装置３１０は、学習用の深層ニューラルネットワークによって生成されるシーンパラメータを２次元画像化した２次元画像（再現画像と呼ぶこともできる）とシーン画像３１との誤差を最小化するように当該深層ニューラルネットワークの学習を行ってもよい。シーンパラメータの２次元画像化は、例えば、画像生成装置３００がシーンパラメータに含まれる形状情報に基づいて３次元形状をレンダリングし、当該３次元形状を仮想カメラで撮影することで実現可能である。なお、画像間の誤差を最小化する学習には、例えば、ＤＣＧＡＮに類似するアルゴリズムが利用されてもよい。
【００６６】
空間認識学習装置３１０は、機械学習の終了後に学習結果（例えば、学習終了後の深層ニューラルネットワークにおけるユニットのバイアス、ユニット間の重みなどの学習パラメータ）を空間認識装置３２０に送る。
【００６７】
空間認識装置３２０は、空間認識学習装置３１０から受け取った学習パラメータを自己の深層ニューラルネットワークに設定することで、シーン画像３２からシーン内の被写体を認識してシーンパラメータ３３を生成する能力を獲得する。
【００６８】
比較的簡単なシーンを与えて学習させた後に、徐々に構成要素を追加して、複雑なシーンに対応する学習を行わせるようにすることができる。これによって、学習効率の向上が期待できる。
【００６９】
以上説明したように、第２の実施形態に係る空間認識装置は、シーン画像の被写体を認識し、第１の実施形態と同一または類似の形状情報を含むシーンパラメータを被写体の認識結果として生成する。故に、このシーンパラメータを用いれば、形状情報として例えばポリゴンを用いた場合に比べて小さな演算量で、シーン画像の被写体の少なくとも３次元形状を認識する能力を深層ニューラルネットワークに獲得させることができる。
【００７０】
（実施例）  
以降、この空間認識システムの実施例の１つである車両の前方監視について述べるが、この空間認識システムの実施例はこれに限られない。
【００７１】
車両の前方監視では、車載カメラが車両前方を撮影してシーン画像を生成する。このシーン画像には、様々な被写体が含まれる。例えば、図６に示されるように、先行車両、対向車両、自車両（撮影車両）の一部（例えばボンネット）、道路、道路の左側の領域、道路の右側の領域、道路よりも上方の領域（例えば空）などの被写体がシーン画像に含まれる可能性がある。空間認識装置３２０は、これらの被写体を、図４に例示されるシーンパラメータを用いて個別にモデル化できる。
【００７２】
他方、画像生成装置３００は、１つまたは複数の被写体のシーンパラメータから所望のシーン画像を再現できる。例えば、道路、先行車両および対向車両のそれぞれのシーンパラメータを画像生成装置３００に与えれば、当該画像生成装置３００は道路上に先行車両および対向車両が存在するシーン画像を再現できる。
【００７３】
空間認識装置３２０によって生成されるシーンパラメータは、以下に説明するように車両の周囲の状況を推論するのに有用である。
【００７４】
撮影車両から見て右カーブの道路上にある先行車両（バス）が例えば図５Ａに示されるようにシーン画像に写るかもしれない。なお、図５Ａ〜図５Ｄにおいて、矢印は車体の正面の向きを表している。この場合に、空間認識装置３２０は、シーン画像から先行車両の姿勢を認識し、先行車両が道路の方向に沿って正常に走行していると推論できる。他方、同道路上にある先行車両が例えば図５Ｂに示されるようにシーン画像に写るかもしれない。空間認識装置３２０は、シーン画像から先行車両の姿勢を認識し、先行車両の姿勢が道路の方向から外れていることを検知する。この結果、空間認識装置３２０は、先行車両が、スピンしている、若しくは、道路を塞いで停車している可能性があると推論するかもしれない。
【００７５】
撮影車両から見て右カーブ（対向車両から見て左カーブ）の道路上にある対向車両（バス）が例えば図５Ｃに示されるようにシーン画像に写るかもしれない。この場合に、空間認識装置３２０は、シーン画像から対向車両の姿勢を認識し、対向車両が道路の方向に沿って正常に走行していると推論できる。他方、同道路上にある対向車両が例えば図５Ｄに示されるようにシーン画像に写るかもしれない。空間認識装置３２０は、シーン画像から対向車両の姿勢を認識し、対向車両の姿勢が道路の方向から外れていることを検知する。この結果、空間認識装置３２０は、対向車両が撮影車両の車線に侵入する可能性があると推論するかもしれない。
【００７６】
図５Ａ〜図５Ｄを用いて説明した姿勢情報に基づく先行車両または対向車両の状況の推論は、先行車両または対向車両との接触リスクを早期に発見できる点で効果的である。係る接触リスクは先行車両または対向車両の位置または撮影車両からの距離からもある程度評価可能であるが、姿勢情報を利用すれば先行車両または対向車両に近づく前に異常接近や接触リスクを発見し、必要な措置を講じることができる。また、姿勢情報は、係る推論を行わない場合であっても、先頭車両または対向車両の進行方向の推定に利用することができる。
【００７７】
また、例えば駐車場において、周囲の車、ゲート、フェンスなどの障害物を避けながら走行または駐車するためには、空間認識装置３２０によって認識された各障害物の形状情報が有用である。
【００７８】
さらに、シーン画像において被写体は周囲の影響で遮蔽されることがあるが、空間認識装置３２０によって認識された被写体の形状情報からこの影響を推論することもできる。例えば、先行車両の全体が見えていない（例えば、先行車両の形状情報の確度が低い）場合には、空間認識装置３２０は、撮影車両と先行車両との間に障害物または他の車両が存在する可能性があると推論するかもしれない。
【００７９】
この実施例において空間認識装置３２０によって使用される環境モデルが図７に例示される。図７において、近隣空間は、カメラを中心とする所定の半径を持つ円柱として定義される。この円柱の底面はフロア環境として定義され、この円柱の上面が上方環境として定義される。近隣空間よりも外側は遠方環境として定義される。カメラは、設定された撮影方向に従って近隣空間および遠方環境を撮影し、シーン画像を生成する。カメラの撮影範囲は、撮影方向に応じて変化する。
【００８０】
各被写体（例えば、先行車両、対向車両）は、フロア環境のいずれかの位置にあると定義されてよい。この場合に、各被写体の位置情報は、２次元情報として表現可能である。遠方環境にある被写体は、接触などの物理的な影響を受ける可能性が低い。例えば、撮影車両が１０ｋｍ以上離れた建物と数秒以内に衝突することはあり得ない。故に、遠方環境にある被写体は、例えば近隣空間を定める円柱の側面の内側に投影されるようにモデル化されてもよい。
【００８１】
なお、近隣空間を定める立体は、円柱に限られない。例えば、交差点が少ない高速道路の走行中には、左右の被写体（車両）を考慮する必要性が低いので、例えば直方体を道路の形状に応じて湾曲させた立体によって近隣空間を定めることもできる。
【００８２】
また、図７の環境モデルは、重力がある空間を前提としている。しかしながら、無重力空間であっても、上下方向を定義することでこの環境モデルを使用することができる。例えば、地球の公転面または銀河系の回転平面を基準に上下方向を定義してもよい。
【００８３】
この実施例では、先行車両、対向車両、落下物などの物体の３次元形状を表現するために、図８に例示される物体形状モデルが使用されてよい。図８の物体形状モデルは、移動体の３次元形状を表現するのに適しているが、近隣空間にある構造物の３次元形状を表現するために用いることもできる。
【００８４】
図８の例では、基本モデルとして、球基本モデルおよび立方体基本モデルが用意されている。球基本モデルは所定の３次元形状として球が設定されたモデルであり、立方体基本モデルは所定の３次元形状として立方体が設定されたモデルである。また、基本モデルおよび被写体には、基準となる方向（姿勢）が定義されており、この方向を正面（前面）とする。例えば、被写体が車両であるならば、前進時の進行方向を正面とすればよい。
【００８５】
なお、利用可能な基本モデルは、２種類に限られず、１種類であってもよいし、３種類以上であってもよい。例えば、球基本モデルを変形すれば立方体を表現することが可能であるから、立方体基本モデルは省略されてもよい。但し、車両などの角張った３次元形状を推定する場合には、球基本モデルよりも立方体基本モデルを用いた方が、変形についての情報を削減できる可能性がある。基本モデルの３次元形状は特に制限されないが、被写体の３次元形状が基準面に関して略面対称であることを仮定するならば、基本モデルの３次元形状も同様であることが好ましい。
【００８６】
図８の例では、基本モデルの表す所定の３次元形状の表面に適用される変形と、被写体の３次元形状の実サイズとを表現するために変形モデルが用意されている。図８の変形モデルは、サイズモデルと、プッシュモデルと、プルモデルとを含む。但し、利用可能な変形モデルは、図８に例示されたものに限られない。
【００８７】
プッシュモデルは、所定の３次元形状の表面に適用される変形を表現するためのモデルの１つである。具体的には、プッシュモデルは、所定の３次元形状の表面を伸縮自在な膜と仮定して作用点に当該膜の内側から球面を押し当てて当該作用点を作用方向に変位させた場合に当該３次元形状の表面に生じる伸縮をモデル化する。ここで、作用方向とは原点から作用点を結ぶ直線に略平行な方向であって、原点とは所定の３次元形状の中心点であってよい。
【００８８】
すなわち、プッシュモデルは、作用点の位置を示す位置情報と、作用点に押し当てる球面の半径を定めるサイズ情報と、作用点の変位量を表す強度情報とを含む。
【００８９】
位置情報は、例えば、正面方向を基準とした水平方向の回転角とフロア環境を基準とした垂直方向の回転角との２次元情報として表現することができる。但し、位置情報を直交座標系または極座標系を用いて３次元情報として表現することも可能である。サイズ情報は、球面の半径を示す数値であってよい。強度情報は、作用点を押す距離を示す数値であってよい。
【００９０】
プルモデルは、所定の３次元形状の表面に適用される変形を表現するためのモデルの１つである。具体的には、プルモデルは、所定の３次元形状の表面を伸縮自在な膜と仮定して作用点に当該膜の外側から球面を押し当てて当該作用点を作用方向に変位させた場合に当該３次元形状の表面に生じる伸縮をモデル化する。ここで、作用方向の定義はプッシュモデルと同じである。
【００９１】
すなわち、プルモデルは、作用点の位置を示す位置情報と、作用点に押し当てる球面の半径を定めるサイズ情報と、作用点の変位量を表す強度情報とを含む。これらの情報は、プッシュモデルと同様に定義可能である。
【００９２】
なお、プッシュモデルおよびプルモデルは、作用方向が正反対である以外は同様の変形をモデル化しているともいえる。故に、プッシュモデルおよびプルモデルの強度情報を工夫すれば、両者を同一のモデル（プッシュ／プルモデル）として取り扱うことも可能である。例えば、プッシュ／プルモデルの強度情報は、変位後の作用点から原点までの距離を表す数値であってもよい。或いは、プッシュ／プルモデルの強度情報は符号付きの数値であって、強度情報の符号がプッシュ方向であるかプル方向であるかを表し、強度情報の絶対値が変位量を表してもよい。
【００９３】
なお、基本モデルおよび被写体の３次元形状が基準面に関して略面対称であるという仮定の下では、基準面から一方側（例えば右側）に適用されるプッシュモデルおよびプルモデルを形状情報１１に含めることで、基準面から他方側（左側）に適用されるプッシュモデルおよびプルモデルを形状情報１１から省略することができる。従って、以降に挙げる３次元形状の表現例においても、基準面から右側に適用されるプッシュモデルおよびプルモデルについて言及し、基準面から左側に適用されるプッシュモデルおよびプルモデルについて言及しないこととする。
【００９４】
サイズモデルは、被写体の３次元形状が持つ実サイズを表現するモデルであって、第１の実施形態において説明したサイズ情報に相当する。サイズモデルは、被写体の３次元形状の実サイズを表す数値であってよい。例えば、サイズモデルが「ｓ」であるならば（ｓは、例えば正の実数値）、球基本モデルの表す所定の３次元形状を半径ｓ［ｍ］の球として前述の変形を行った場合に得られる３次元形状によって被写体の実サイズを含む３次元形状の推定結果が定められてもよい。
【００９５】
変形モデルを使用すれば、以下に例示されるように種々の３次元形状を表現することができる。
【００９６】
・球基本モデルの表す所定の３次元形状を半径０．５ｍｍの球とし、前方右４５度かつ水平に半径０．５ｍｍの球面で所定距離プッシュし、さらに、後方左４５度かつ水平に半径０．５ｍｍの球面で同距離プッシュしたとする。この結果、所定の３次元形状を、上面および底面が丸みを帯びたコーナーを持つ略正方形状であって厚み１ｍｍである板のような３次元形状に変形することができる。この場合に、形状情報は、サイズ情報と、２つのプッシュ変形のそれぞれの位置情報、サイズ情報および強度情報とを含む。
【００９７】
・球基本モデルの表す所定の３次元形状を半径０．５ｍｍの球とし、前方右３０度かつ水平と平行に半径０．５ｍｍの球面で所定距離プッシュし、さらに、後方左３０度かつ水平と平行に半径０．５ｍｍの球面で同距離プッシュしたとする。この結果、所定の３次元形状を、上面および底面が丸みを帯びたコーナーを持ち前後方向が左右方向に比べて長い略長方形状であって厚み１ｍｍである板のような３次元形状に変形することができる。この場合に、形状情報は、サイズ情報と、２つのプッシュ変形のそれぞれの位置情報、サイズ情報および強度情報とを含む。
【００９８】
・球基本モデルの表す所定の３次元形状を半径２０ｃｍの球とし、前方右方向かつ上方向、前方右方向かつ下方向、後方左方向かつ上方向および後方左方向かつ下方向に、それぞれ半径２０ｃｍの球面で３ｍ程度プッシュしたとする。この結果、所定の３次元形状をワンボックスカーのボディのような３次元形状に変形することができる。この場合に、形状情報は、サイズ情報と、４つのプッシュ変形のそれぞれの位置情報、サイズ情報および強度情報とを含む。なお、さらに多くの変形を施すことで、３次元形状の細部の調整も可能である。タイヤハウスは、プル変形をさらに適用すれば表現することができる。タイヤは、プッシュ変形をさらに適用すれば表現することができる。
【００９９】
この実施例では、トンネル（の入り口）、障害物、道路などの構造物の３次元形状を表現するために、図９に例示される空間形状モデルが使用されてよい。図９の空間形状モデルは、構造物の３次元形状を表現するのに適しているが、近隣空間にある移動体の３次元形状を表現するために用いることもできる。
【０１００】
図９の例では、基本モデルとして、アーチモデル、障害物モデル、矩形平面モデルが用意されている。アーチモデルは、例えば外円から内円をくり抜いて２等分した平面図形またはこれを底面とする柱体が所定の３次元形状として設定されていると仮定することができる。障害物モデルは、例えば立方体が所定の３次元形状として設定されていると仮定することができる。矩形平面モデルは、例えば等脚台形またはこれを底面とする柱体が所定の３次元形状として設定されていると仮定することができる。矩形平面モデルは主に道路の３次元形状を表現するために用いられる。一定幅の道路を撮影したとしても撮影車両から近くの道幅は撮影車両から遠くの道幅よりも広く見える。故に、図９の例では、矩形平面モデルは、上辺および下辺の長さが異なる等脚台形を表しているが、他の矩形を表してもよい。
【０１０１】
なお、利用可能な基本モデルは、３種類に限られず、２種類以下であってもよいし、４種類以上であってもよい。基本モデルの３次元形状は特に制限されないが、被写体の３次元形状が基準面に関して略面対称であることを仮定するならば、基本モデルの３次元形状も同様であることが好ましい。
【０１０２】
図９の例では、基本モデルの表す所定の３次元形状の表面に適用される変形と、被写体の３次元形状の実サイズとを表現するために変形モデルが用意されている。図８の変形モデルは、サイズモデルと、凹凸モデルと、湾曲モデルとを含む。但し、利用可能な変形モデルは、図９に例示されたものに限られない。
【０１０３】
凹凸モデルは、所定の３次元形状の表面に適用される変形を表現するためのモデルの１つである。具体的には、凹凸モデルは、所定の３次元形状の表面の任意の位置（作用点）に任意のレベルの凹凸を生じさせる変形をモデル化する。すなわち、凹凸モデルは、作用点の位置を示す位置情報と、作用点に生じさせる凹凸のレベルを表す強度情報とを含む。
【０１０４】
湾曲モデルは、所定の３次元形状の表面に適用される変形を表現するためのモデルの１つである。具体的には、湾曲モデルは、所定の３次元形状の表面を湾曲させる変形をモデル化する。例えば、矩形平面モデルの３次元形状を湾曲させることで、カーブした道路の３次元形状を簡易に表現することができる。
【０１０５】
サイズモデルは、被写体の３次元形状が持つ実サイズを表現するモデルであって、第１の実施形態において説明したサイズ情報に相当する。サイズモデルは、被写体の３次元形状の実サイズを表す数値であってよい。なお、サイズモデルは、複数用意されてもよい。例えば、サイズモデルが「ｓ１」および「ｓ２」であるならば（ｓ１およびｓ２は例えば正の実数値）、アーチモデルの表す所定の３次元形状を外円および内円の半径がそれぞれｓ１［ｍ］およびｓ２［ｍ］のアーチとして前述の変形を行った場合に得られる３次元形状によって被写体の実サイズを含む３次元形状の推定結果が定められてもよい。或いは、矩形平面モデルの表す所定の３次元形状を上辺および下辺がそれぞれｓ２［ｍ］およびｓ１［ｍ］の等脚台形として前述の変形を行った場合に得られる３次元形状によって被写体の実サイズを含む３次元形状の推定結果が定められてもよい。
【０１０６】
図８の物体形状モデルおよび図９の空間形状モデルを利用すれば、空間認識装置３２０は、車両の前方を撮影することで得られたシーン画像３２から先行車両、対向車両、トンネルの入り口、門柱、道路などの被写体を表現するためのシーンパラメータ３３を生成できる。また、上方環境および遠方環境を表現するためのモデルをさらに利用することも可能である。必要であれば、このシーンパラメータ３３から各被写体の３次元形状、姿勢、位置およびテクスチャなどを再現し、任意のアングルから仮想カメラで撮影してシーン画像３２を再現することもできる。
【０１０７】
シーンパラメータのデータ構造は、柔軟な設計を可能としてもよい。例えば、非常に多くの変形を施したり、微細なテクスチャも表現したりすることが許容されてもよい。このようなシーンパラメータを用いれば、被写体の細部まで忠実に表現することができる。反面、被写体の細部まで忠実に表現しようとすれば、シーンパラメータのデータサイズは大きくなる。シーンパラメータの要求精度は、空間認識システムの用途に依存して異なる。例えば、映像作品を制作するために大道具を撮影して３ＤＣＧ化する場合には高い精度が要求されるであろう。他方、対向車両の姿勢を推定する場合には、当該対向車両のワイパーの形状を無視したとしても問題ないであろうし、当該対向車両のテクスチャについても同様である。
【０１０８】
シーンパラメータは、例えば以下に説明するように簡略化されてよい。ここでは説明の便宜のために、簡略化前のシーンパラメータを完全シーンパラメータと称し、簡略化後のシーンパラメータを単にシーンパラメータと称する。
【０１０９】
機械学習に用いられる学習データは、入力データおよび教師データを含む。入力データは、サンプル被写体の完全シーンパラメータに基づいて高精度に作成された本物らしいシーン画像である。教師データは、この完全シーンパラメータから例えばテクスチャ情報を省略したシーンパラメータである。
【０１１０】
深層ニューラルネットワークは、入力データとしてのシーン画像を取得し、当該シーン画像の被写体を認識する。そして、この深層ニューラルネットワークは、認識結果としてのシーンパラメータを生成する。
【０１１１】
空間認識学習装置は、深層ニューラルネットワークによって生成されるシーンパラメータが教師データとしてのシーンパラメータに近づくように、当該深層ニューラルネットワークの学習を行う。
【０１１２】
具体的には、空間認識学習装置は、深層ニューラルネットワークによって生成されるシーンパラメータを２次元画像化した２次元画像（再現画像と呼ぶこともできる）と、完全シーンパラメータではなく教師データとしてのシーンパラメータを２次元画像化した２次元画像との誤差を最小化するように当該深層ニューラルネットワークの学習を行ってもよい。なお、これらのシーンパラメータはいずれもテクスチャ情報を含んでいないが、２次元画像化の都合上、完全シーンパラメータとデータ形式を揃えることが求められるかもしれない。この場合には、シーンパラメータにダミーのテクスチャ情報として例えばグレー色に相当する値が設定されてもよい。画像間の誤差を最小化する学習には、例えば、ＤＣＧＡＮに類似するアルゴリズムが利用されてもよい。
【０１１３】
シーンパラメータは、複数のパラメータで構成されており、ニューラルネットワークの出力の各ニューロンに、複数のパラメータのそれぞれを出力させるようにすれば、学習の過程で、期待される出力との誤差を計算させることができる。誤差が減少するようにニューラルネットワークのパラメータを繰り返し変更することで、深層ニューラルネットワークを用いた学習を行うことができる。
【０１１４】
テクスチャ情報の代わりに例えば形状情報に含まれる変形についての情報の一部を省略する（すなわち、変形の適用数を削減する）場合にも同様の機械学習を実施すればよい。
【０１１５】
この実施例では、第２の実施形態に係る空間認識システムを車両の前方監視に適用すれば、車両の前方を撮影したシーン画像からシーン内の先行車両、対向車両などの被写体の３次元形状、姿勢および位置などを認識（モデル化）できることを説明した。この空間認識システムは、車両の前方監視に限らず広範な用途に利用可能である。
【０１１６】
この空間認識システムは、ロボット（人型か否かを問わない）のコンピュータビジョンに利用することができる。具体的には、この空間認識システムは、ロボットが行うピッキング作業およびロボットの接触回避の精度向上に寄与し得る。
【０１１７】
この空間認識システムによれば、ロボットがピッキング対象である物品の３次元形状を認識することができる。故に、例えば物品の３次元形状に応じてロボットの指やアームを駆動制御することで、ロボットは物品の適切な把持位置に指やアームを添え当てて精密なピッキング作業を行うことができる。
【０１１８】
また、この空間認識装置によれば、ロボットは近隣にある物体の３次元形状を認識することができる。故に、ロボットは、例えば近隣にある物体との接触を賢く回避しながら移動できる。また、ロボットは、車載カメラまたは監視カメラの画像に写った障害物を認識し、障害物に接触しないように車両を操縦して車庫に入れたり駐車をしたりすることができる。さらに、ロボットは、製品の組み立て作業を行う場合に、部品の３次元情報に基づいて、当該部品の姿勢を適切に変更したり、当該部品の種別を正しく識別したりすることができる。
【０１１９】
この空間認識システムは、スマートフォンなどのカメラ付き情報処理装置にインストールされるアプリケーションとしても有用である。例えば、販売者は、商品の３次元形状を提示してより視覚的効果の高い販売活動を行うことができる。具体的には、販売者は、空間認識装置として機能するスマートフォンを用いて商品を撮影し、画像から生成されたシーンパラメータを得る。販売者は、このシーンパラメータから再現された商品の３次元形状を顧客に提示しながら商品をアピールすることができる。シーンパラメータは、顧客のスマートフォンに送信されてもよい。この場合には、顧客は、自己のスマートフォンを操作して商品の３次元画像を確認することができる。
【０１２０】
この空間認識システムは、３Ｄプリンタの入力データ作成にも有用である。具体的には、３Ｄプリントの対象となる被写体を複数のアングルから撮影することで得られる複数のシーン画像から当該被写体のシーンパラメータを生成することができる。さらに、複数のシーン画像を用いて機械学習を行うことで、推定される３次元形状を精密化することもできる。このようにして生成されたシーンパラメータを例えばソフトウェアによって３Ｄプリンタの入力データ形式に適合するように変換すれば、被写体を３Ｄプリントするための入力データを作成することができる。
【０１２１】
この空間認識システムは、被写体がどのようなものであるかを識別する対象識別装置にも応用可能である。具体的には、対象識別装置は、空間認識システムと同じように、被写体のシーン画像から被写体の３次元形状を示す形状情報と被写体の姿勢を示す姿勢情報とを生成できる。対象識別装置は、これら形状情報および姿勢情報を利用することで、被写体を高精度に識別できる。
【０１２２】
例えば、対象識別装置は、略直方体の紙パック飲料を撮影した画像から当該紙パック飲料の商品名を識別することができる。まず、対象識別装置は、任意のアングルで撮影された紙パック飲料のシーン画像から当該紙パック飲料の３次元形状および姿勢を認識する。略直方体の被写体を撮影すれば、アングル次第で１〜３個の面が写り込む。故に、対象識別装置は、認識された３次元形状のうちの１〜３面に被写体のシーン画像を貼り付けることで被写体のテクスチャの一部を３次元モデル上で再現することができる。それから、対象識別装置は、飲料製品の例えば正面または他の面の画像が蓄積されたカタログデータまたは商品データベースを検索し、被写体の正面または他の面の画像に最も類似する画像に関連付けられた飲料製品（およびそのメーカー）を特定する。対象識別装置は、特定された飲料製品を示す情報（例えば商品名）を被写体の識別情報として生成する。
【０１２３】
なお、対象識別装置は、直方体などの角柱体で近似されない３次元形状を持つ被写体を識別することもできる。例えば、対象識別装置は、車両を撮影した画像から当該車両の車種を識別することができる。まず、対象識別装置は、任意のアングルで撮影された車両のシーン画像から当該車両の３次元形状および姿勢を認識する。それから、対象識別装置は、車両の形状情報およびテクスチャ情報が蓄積されたカタログデータまたは商品データベースを検索し、被写体の形状情報に類似する１つ以上の形状情報に関連付けられた１つ以上の車種（およびそのメーカー）を特定する。対象識別装置は、被写体の姿勢情報に基づいて、特定された車種のそれぞれに関連付けられたテクスチャ情報の示すテクスチャの一部をシーン画像と比較できるようにマッピングする。対象識別装置は、シーン画像と最も類似するテクスチャに関連付けられた車種を示す情報（例えば車種名）を被写体の識別情報として生成する。
【０１２４】
上述のように、この空間認識システムは被写体がどのようなものであるかを識別する対象識別装置にも応用可能であるが、この対象識別装置は例えば被写体との距離を推定するために使用することもできる。具体的には、対象識別装置は、被写体のシーン画像から当該被写体の実サイズを含む３次元形状および姿勢を認識し、これらを利用して当該被写体が例えばどの車種であるかを識別する。対象識別装置は、識別された車種の実サイズを例えばカタログデータまたは商品データベースから検索し、検索された実サイズと被写体の３次元形状および姿勢とシーン画像とに基づいて、シーン画像は被写体からどのくらい離れて撮影されたか、すなわち、被写体との距離を推定することができる。なお、おおよその距離を推定する場合には、被写体を大まかに識別することができればよい。例えば、車種レベルでの識別でなくても車両分類（小型車、普通車など）レベルでの識別をすれば、被写体の大まかな実サイズを推定することができるので、距離についてもある程度の精度で推定することができる。この応用例によれば、レーザーレーダーなどの測距装置を用いることなく２次元画像から距離を推定することができる。
【０１２５】
（第３の実施形態）  
第３の実施形態は、第２の実施形態において説明した物体認識、空間認識および対象識別の機能を利用者に利用させるためのサービス提供システムに関する。このサービス提供システムが図１０に例示される。
【０１２６】
図１０のサービス提供システムは、利用者端末装置４０１と、学習サービス提供装置４０２と、学習データ作成システム４０３と、学習データベース装置４０４と、物体認識学習装置４０５と、移動空間認識学習装置４０６と、対象識別学習装置４０７とを含む。
【０１２７】
なお、図１０のサービス提供システムの装置構成は例示に過ぎない。すなわち、図１０に示される装置の一部または全部が１つの装置に統合されてもよいし、図１０に示される装置の機能が複数の装置に分割されてもよい。
【０１２８】
図１８は、図１０のサービス提供システムの動作を例示する。図１８の動作は、学習サービス提供装置４０２が利用者からの学習依頼情報を受け取ることで開始し、処理はステップＳ１２０１に進む。
【０１２９】
ステップＳ１２０１において、学習データ作成システム４０３は、上記学習依頼情報に基づいて利用者の目的（物体認識、移動空間認識および対象識別のうちの一部または全部）にふさわしい学習データ（例えば、車両のシーンパラメータおよびシーン画像）を作成し、学習データベース装置４０４に登録する。
【０１３０】
物体認識学習装置４０５、移動空間認識学習装置４０６および対象識別学習装置４０７のうち利用者の目的にふさわしい少なくとも１つの学習装置は、ステップＳ１２０１において作成された学習データを学習データベース装置４０４から取得し、機械学習を実施する（ステップＳ１２０２）。
【０１３１】
ステップＳ１２０２において機械学習を実施した学習装置は、学習結果としての学習パラメータを利用者端末装置４０１へと出力する（ステップＳ１２０３）。なお、利用者端末装置４０１への出力は、学習サービス提供装置４０２または他の装置を介して行われてもよい。
【０１３２】
ステップＳ１２０３の終了後に未処理の他の学習依頼が残っているならば処理はステップＳ１２０１に戻り、そうでなければ図１８の動作は終了となる。
【０１３３】
なお、図１８の動作例では、利用者からの学習依頼に応じて学習データの作成から機械学習の実施までを行っているが、利用者の目的にふさわしい学習データを作成済みである場合には、新たに学習データを作成しなくてもよい。また、利用者の目的にふさわしい学習パラメータを調整済みである場合には、新たに機械学習を行わなくてもよい。
【０１３４】
利用者端末装置４０１は、利用者の目的にふさわしい学習サービスの提供を学習サービス提供装置４０２に依頼する。それから、利用者端末装置４０１は、利用者の目的にふさわしい学習結果を受け取る。利用者端末装置４０１は、受け取った学習結果を当該利用者端末装置４０１に含まれる深層ニューラルネットワークに設定することで、利用者の目的にふさわしい機能を利用できるようになる。利用者の目的が形状推定によって改善する場合には、受け取った学習結果が、形状推定する能力を含むようにすることで、目的により適合させることができる。例えば、学習サービスとして提供された、学習メニューを利用者が選択したときに、呼び出されて学習を行う学習装置の学習プログラムに第１の実施形態や第２の実施形態の学習処理を行わせるようにすればよい。
【０１３５】
学習依頼時のメニューの中に、許容される誤差の条件、ポリゴン数あるいは、位置情報、強度情報などの値の種類や範囲などの、形状情報を規定する依頼情報を含めることによって、より利用者の目的に適合する学習結果が提供されるようになる。
【０１３６】
利用者端末装置４０１は、例えば、デジタルカメラ、監視カメラ、自動車、スマートフォン、ＰＣ（Ｐｅｒｓｏｎａｌ  ｃｏｍｐｕｔｅｒ）、スマートウォッチ、ウェアラブルデバイス、家電機器、健康機器、医療機器、業務端末、公共端末、音声端末、自動車のコンソール、ヘッドアップディスプレイ、テレマティクス端末などであってよい。
【０１３７】
図１１に例示されるように、利用者端末装置４０１は、コンピュータ５０１と、カメラ５０２と、表示部５０３と、キーボード５０４と、マウス５０５とを含む。
【０１３８】
コンピュータ５０１は、ネットワーク接続されており、図１０の他の装置との間でデータをやり取りすることができる。コンピュータ５０１は、他の装置との間でデータをネットワーク経由でやり取りするための通信部を含む。
【０１３９】
コンピュータ５０１は、図１０の物体認識学習装置４０５、移動空間認識学習装置４０６または対象識別学習装置４０７による学習結果が設定される深層ニューラルネットワークを含む。
【０１４０】
この深層ニューラルネットワークは、例えば、コンピュータ５０１に含まれる図示されないＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）またはＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのプロセッサがメモリに格納されたプログラムを実行することで実現される。深層ニューラルネットワークには、利用者の目的にふさわしい学習結果が設定される。例えば、深層ニューラルネットワークは、学習結果を設定されることで、物体認識、移動空間認識および対象識別のうちの一部または全部の能力を獲得できる。
【０１４１】
カメラ５０２は、コンピュータ５０１中の深層ニューラルネットワークの入力データに相当するシーン画像を生成する。
【０１４２】
表示部５０３は、カメラ５０２によって撮影されたシーン画像、コンピュータ５０１中の深層ニューラルネットワークによって生成されたシーンパラメータに基づく再現画像などを表示する。このほか、表示部５０３は、Ｗｅｂブラウザまたはその他のアプリケーションの画面を表示することもある。表示部５０３は、例えば、液晶ディスプレイ、有機ＥＬ（ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイ、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイなどである。なお、表示部５０３は、タッチスクリーンのように入力装置の機能を備えていてもよい。
【０１４３】
キーボード５０４およびマウス５０５は、ユーザ入力を受け付ける入力装置である。なお、利用者端末装置４０１は、キーボード５０４およびマウス５０５以外の入力装置を備えていてもよいし、キーボード５０４およびマウス５０５の一方または両方を備えていなくてもよい。
【０１４４】
図１０のサービス提供システムのうち学習サービス提供装置４０２、学習データ作成システム４０３に含まれる各装置および学習データベース装置４０４は、サーバ型装置と呼ぶことができる。このサーバ型装置の共通のハードウェア構成が図１２に例示される。
【０１４５】
図１２のサーバ型装置は、ＣＰＵ６０１と、ＲＯＭ６０２と、ＲＡＭ６０３と、記憶装置６０４と、入出力部６０５と、通信部６０６とを含む。
【０１４６】
ＣＰＵ６０１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）６０２またはＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６０３に格納されているプログラムを実行する。ＲＯＭ６０２およびＲＡＭ６０３は、それぞれ不揮発性および揮発性メモリに相当し、ＣＰＵ６０１によって実行されるプログラムまたはＣＰＵ６０１によって使用されるデータが格納される。
【０１４７】
記憶装置６０４は、補助記憶装置とも呼ばれ、一般にメモリに比べて大量のプログラムまたはデータを格納することができる。記憶装置６０４は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などであるがこれらに限られない。
【０１４８】
入出力部６０５は、ユーザ入力を受け付けたり、アプリケーションの処理結果をユーザに提示したりする。入出力部６０５は、キーボード、マウス、テンキーなどの入力装置、ディスプレイ、プリンタなどの出力装置、タッチスクリーンなどの入出力装置のうちの一部または全部を含むことができる。
【０１４９】
通信部６０６は、学習サービス提供装置４０２とは異なる装置との間でデータをネットワーク経由でやり取りする。通信部６０６は、無線通信および有線通信の一方または両方を行うことのできるモジュールまたはデバイスである。
【０１５０】
学習サービス提供装置４０２の機能構成が図１３に例示される。図１３の学習サービス提供装置４０２は、ユーザインタフェース部７０１と、学習依頼情報取得部７０２と、学習プログラム起動部７０４と、外部プログラム起動部７０５と、通信部７０６とを含む。
【０１５１】
ユーザインタフェース部７０１は、ユーザ入力を受け付けたり、アプリケーションの処理結果をユーザに提示したりする。学習依頼情報取得部７０２は、利用者からの学習依頼情報を取得する。この学習依頼情報の取得をトリガに、利用者の目的にふさわしい機械学習が実施される。
【０１５２】
学習プログラム起動部７０４は、学習依頼情報の取得をトリガに、利用者の目的にふさわしい機械学習を実施するための学習プログラムを起動する。外部プログラム起動部７０５は、学習サービス提供装置４０２とは異なる装置のメモリに格納されたプログラムをネットワーク経由でリモート起動する。
【０１５３】
通信部７０６は、学習サービス提供装置４０２とは異なる装置との間でデータをネットワーク経由でやり取りする。通信部７０６は、無線通信および有線通信の一方または両方を行うことができる。
【０１５４】
学習データ作成システム４０３は、図１４に例示されるように、シーンパラメータ生成装置８０１と、画像生成装置８０２と、学習データ設定装置８０３と、通信装置８０４と、画像記録装置８０５とを含む。
【０１５５】
シーンパラメータ生成装置８０１は、学習用のサンプル被写体のシーンパラメータを生成する。画像生成装置８０２は、このシーンパラメータに基づいてサンプル被写体の３次元形状をレンダリングし、サンプル被写体のシーン画像を生成する。シーン画像は、画像記録装置８０５に記録される。
【０１５６】
学習データ設定装置８０３は、サンプル被写体のシーンパラメータおよびシーン画像をそれぞれ教師データおよび入力データとして学習データを設定する。なお、学習データ設定装置８０３は、前述のように、シーンパラメータの一部（例えば、テクスチャ情報、または、形状情報に含まれる変形についての情報の一部など）を省略してから教師データを設定してもよい。学習データ設定装置８０３は、設定した学習データを学習データベース装置４０４に登録する。
【０１５７】
通信装置８０４は、学習データ作成システム４０３とは異なる装置との間でデータをネットワーク経由でやり取りする。通信装置８０４は、無線通信および有線通信の一方または両方を行うことのできるデバイスである。
【０１５８】
学習データ作成システム４０３による学習データの作成は、利用者からの学習依頼情報の取得後に行うこともできるし、依頼が見込まれるサンプル被写体について予め行うこともできる。
【０１５９】
図１０のサービス提供システムのうち物体認識学習装置４０５、移動空間認識学習装置４０６および対象識別学習装置４０７は、いずれも異なる能力（物体認識能力、移動空間認識能力および対象識別能力）の獲得を目指して機械学習を行うものの学習装置である点では共通する。これらの学習装置の共通のハードウェア構成が図１５に、共通の機能構成が図１６に、共通の動作が図１９にそれぞれ例示される。
【０１６０】
図１５の学習装置は、ＧＰＵ９０１と、ＣＰＵ９０２と、ＲＯＭ９０３と、ＲＡＭ９０４と、記憶装置９０５と、入出力部９０６と、通信部９０７とを含む。
【０１６１】
ＧＰＵ９０１は、図１５の学習装置によって実現される深層ニューラルネットワークの演算（主に、行列積演算）を高速に実行する。ＧＰＵ９０１は、アクセラレータと呼ぶこともできる。
【０１６２】
ＣＰＵ９０２は、ＲＯＭ６０２またはＲＡＭ６０３に格納されているプログラムを実行する。ＲＯＭ９０３およびＲＡＭ９０４は、それぞれ不揮発性および揮発性メモリに相当し、ＣＰＵ９０２によって実行されるプログラムまたはＣＰＵ９０２によって使用されるデータが格納される。
【０１６３】
記憶装置９０５は、補助記憶装置とも呼ばれ、一般にメモリに比べて大量のプログラムまたはデータを格納することができる。記憶装置９０５は、例えば、ＨＤＤ、ＳＳＤなどであるがこれらに限られない。
【０１６４】
入出力部９０６は、ユーザ入力を受け付けたり、アプリケーションの処理結果をユーザに提示したりする。入出力部９０６は、キーボード、マウス、テンキーなどの入力装置、ディスプレイ、プリンタなどの出力装置、タッチスクリーンなどの入出力装置のうちの一部または全部を含むことができる。
【０１６５】
通信部９０７は、図１５の学習装置とは異なる装置との間でデータをネットワーク経由でやり取りする。通信部９０７は、無線通信および有線通信の一方または両方を行うことのできるモジュールまたはデバイスである。
【０１６６】
図１６の学習装置は、通信部１００１と、学習制御部１００２と、ニューラルネットワーク１００３と、学習結果抽出部１００４と、学習結果出力部１００５とを含む。
【０１６７】
通信部９０７は、図１６の学習装置とは異なる装置との間でデータをネットワーク経由でやり取りする。通信部９０７は、例えば、学習開始指令を受け取ったり、学習データベース装置４０４へアクセスして必要な学習データを取得したり、学習結果としての学習パラメータを利用者端末装置４０１へと送信したりしてもよい。
【０１６８】
学習制御部１００２は、学習開始指令の受け取りをトリガとして学習を開始する。学習制御部１００２は、学習開始指令によって指定される対象に関わる（換言すれば、利用者の目的にふさわしい）学習データを学習データベース装置４０４に通信部１００１を介して要求する。学習制御部１００２は、学習開始指令によって指定される対象に関わる機械学習を行うためのモデルをニューラルネットワーク１００３に設定する。
【０１６９】
学習制御部１００２は、学習データベース装置４０４から取得した学習データをニューラルネットワーク１００３に与えて学習を実施する。学習制御部１００２は、ニューラルネットワーク１００３が所定の学習レベルに到達すると、学習結果としての学習パラメータを学習結果抽出部１００４に抽出させる。そして、学習制御部１００２は、抽出された学習パラメータを学習結果出力部１００５に出力させる。なお、学習制御部１００２は、所定の条件下で学習を打ち切ることもある。
【０１７０】
ニューラルネットワーク１００３は、図１７に例示されるように、ニューラルネットワーク入力部１１０１と、深層ニューラルネットワーク１１０２と、ニューラルネットワーク出力部１１０３とを含む。
【０１７１】
ニューラルネットワーク入力部１１０１は、入力データとしてのシーン画像を学習制御部１００２から受け取り、深層ニューラルネットワーク１１０２に送る。深層ニューラルネットワーク１１０２は、入力シーン画像に基づいてシーンパラメータを生成する。ニューラルネットワーク出力部１１０３は、生成されたシーンパラメータを出力データとして学習制御部１００２に返す。
【０１７２】
学習結果抽出部１００４は、学習制御部１００２からの指示に従って、ニューラルネットワーク１００３の学習終了後に当該ニューラルネットワークに設定されている学習パラメータを抽出し、学習結果出力部１００５に送る。
【０１７３】
学習結果出力部１００５は、学習結果抽出部１００４から学習パラメータを受け取り、例えばパケット化などの必要な処理を施し、通信部１００１を介して利用者端末装置４０１または他の装置へと出力する。
【０１７４】
以下、図１９を用いて各学習装置の動作が説明される。  
まず、学習制御部１００２は、通信部１００１を介して学習開始指令を受領する（ステップＳ１３０１）。学習制御部１００２は、この学習開始指令によって指定される対象に関わる学習データを学習データベース装置４０４に通信部１００１を介して要求する（ステップ１３０２）。また、学習制御部１００２は、この学習開始指令によって指定される対象に関わる機械学習を行うためのモデルをニューラルネットワーク１００３に設定する（ステップＳ１３０３）。ステップＳ１３０２およびステップＳ１３０３の終了後に処理はステップＳ１３０４へと進む。
【０１７５】
ステップＳ１３０４において、学習制御部１００２は、学習データベース装置４０４から取得した学習データを所定単位読み込み、ニューラルネットワーク１００３の機械学習を実施する。学習制御部１００２は、所定の学習打ち切り条件が満足するか（ステップＳ１３０５）、ニューラルネットワーク１００３が所定の学習レベルに到達するまで（ステップＳ１３０６）、ステップＳ１３０４を繰り返し実行する。ニューラルネットワーク１００３が所定の学習レベルに到達すると、学習結果抽出部１００４が学習結果としての学習パラメータを抽出し、学習結果出力部１００５がこれを出力することで図１９の動作は終了する（ステップＳ１３０７）。
【０１７６】
以上説明したように、第３の実施形態に係るサービス提供システムは、２次元画像に基づいて推定、認識または識別などをする能力を獲得するための機械学習を利用者からの要求に応じて実施し、学習結果を利用者端末に含まれる深層ニューラルネットワークに設定する。従って、このサービス提供システムによれば、利用者は、自己の利用者端末において機械学習を実施せずとも、利用者の目的にふさわしい能力を備えた深層ニューラルネットワークを使用することができる。
【０１７７】
上述の実施形態は、本発明の概念の理解を助けるための具体例を示しているに過ぎず、本発明の範囲を限定することを意図されていない。実施形態は、本発明の要旨を逸脱しない範囲で、様々な構成要素の付加、削除または転換をすることができる。
【０１７８】
上記各実施形態において説明された種々の機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
【０１７９】
上記各実施形態の処理の少なくとも一部は、汎用のコンピュータを基本ハードウェアとして用いることでも実現可能である。上記処理を実現するプログラムは、コンピュータで読み取り可能な記録媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記録媒体に記憶される。記録媒体としては、磁気ディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリなどである。記録媒体は、プログラムを記憶でき、かつ、コンピュータが読み取り可能であれば、何れであってもよい。また、上記処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ（サーバ）上に格納し、ネットワーク経由でコンピュータ（クライアント）にダウンロードさせてもよい。
【０１８０】
上記各実施形態の一部または全部は、特許請求の範囲のほか以下の付記に示すように記載することも可能であるが、これに限られない。  
（付記１）  
メモリと、
前記メモリに接続されたプロセッサと
を具備し、
前記プロセッサは、
（ａ）２次元画像を取得し、
（ｂ）人工知能に前記２次元画像を与えて前記２次元画像の被写体の３次元形状を推定させる
ように構成され、
前記人工知能は、サンプル被写体の３次元形状を表す教師データと、当該サンプル被写体の３次元形状を撮影したサンプル２次元画像とを含む学習データを用いて行われた機械学習の学習結果が設定されている、
形状推定装置。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。  
［１］２次元画像を取得する取得部と、人工知能を備え、当該人工知能に前記２次元画像を与えて前記２次元画像の被写体の３次元形状を推定させる推定部とを具備し、前記人工知能は、サンプル被写体の３次元形状を表す教師データと、当該サンプル被写体の３次元形状を撮影したサンプル２次元画像とを含む学習データを用いて行われた機械学習の学習結果が設定されている、形状推定装置。  
［２］前記推定部は、前記人工知能に前記２次元画像の被写体の３次元形状を推定させ、当該３次元形状を記述する形状情報を得る、［１］に記載の形状推定装置。  
［３］前記形状情報は、基本モデルの表す所定の３次元形状の表面に対して施される変形毎に当該変形の位置および強度をそれぞれ定める位置情報および強度情報を含む、［２］に記載の形状推定装置。  
［４］前記形状情報は、前記２次元画像の被写体の３次元形状の実サイズを定めるサイズ情報をさらに含む、［３］に記載の形状推定装置。  
［５］前記変形は、前記所定の３次元形状の表面のうち前記位置情報の示す作用点を予め定められた原点から当該作用点を結ぶ直線に略平行な作用方向に沿って前記強度情報の示す量だけ変位させる第１の種別の変形を含む、［３］に記載の形状推定装置。  
［６］前記第１の種別の変形は、前記所定の３次元形状の表面を伸縮自在な膜と仮定して前記作用点を前記作用方向に沿って前記強度情報の示す量だけ変位させた場合に前記所定の３次元形状の表面に生じる伸縮をシミュレートする、［５］に記載の形状推定装置。
［７］前記第１の種別の変形は、前記所定の３次元形状の表面を伸縮自在な膜と仮定して前記作用点に当該膜の内側または外側から曲面を押し当てて当該作用点を前記作用方向に沿って前記強度情報の示す量だけ変位させた場合に前記所定の３次元形状の表面に生じる伸縮をシミュレートする、［６］に記載の形状推定装置。  
［８］前記形状情報は、前記曲面のサイズを定めるサイズ情報をさらに含む、［７］に記載の形状推定装置。  
［９］前記機械学習は、学習用の人工知能に前記サンプル２次元画像を与えて前記サンプル被写体の３次元形状を推定させることと、前記サンプル被写体の３次元形状の推定結果に基づいてレンダリングされた前記サンプル被写体の推定３次元形状を撮影した再現画像を生成することと、前記再現画像が前記サンプル２次元画像に類似するように前記学習用の人工知能の学習パラメータを更新することとを含む、［１］に記載の形状推定装置。
［１０］前記推定部は、前記被写体の姿勢を推定し、前記被写体の基準姿勢からの差分を示す姿勢情報をさらに生成する、［２］に記載の形状推定装置。  
［１１］前記被写体の３次元形状は基準面に関して略面対称であって、前記形状情報は、前記所定の３次元形状の表面のうち前記基準面から一方側に対して施される変形について前記位置情報および前記強度情報を含み、前記所定の３次元形状の表面のうち前記基準面から他方側に対して施される変形について前記位置情報および前記強度情報を含まない、［３］に記載の形状推定装置。
【符号の説明】
【０１８１】
１０，２１，２３・・・２次元画像
１１，２０，２２・・・形状情報
２４・・・学習データ
３０，３３・・・シーンパラメータ
３１，３２・・・シーン画像
１００・・・形状推定装置
１０１・・・取得部
１０２・・・推定部
１０２，２１０，１１０２・・・深層ニューラルネットワーク
２００，３００，８０２・・・画像生成装置
２２０・・・学習装置
３１０・・・空間認識学習装置
３２０・・・空間認識装置
４０１・・・利用者端末装置
４０２・・・学習サービス提供装置
４０３・・・学習データ作成システム
４０４・・・学習データベース装置
４０５・・・物体認識学習装置
４０６・・・移動空間認識学習装置
４０７・・・対象識別学習装置
５０１・・・コンピュータ
５０２・・・カメラ
５０３・・・表示部
５０４・・・キーボード
５０５・・・マウス
６０１，９０２・・・ＣＰＵ
６０２，９０３・・・ＲＯＭ
６０３，９０４・・・ＲＡＭ
６０４，９０５・・・記憶装置
６０５，９０６・・・入出力部
６０６，７０６，９０７，１００１・・・通信部
７０１・・・ユーザインタフェース部
７０２・・・学習依頼情報取得部
７０４・・・学習プログラム起動部
７０５・・・外部プログラム起動部
８０１・・・シーンパラメータ生成装置
８０３・・・学習データ設定装置
８０４・・・通信装置
８０５・・・画像記録装置
９０１・・・ＧＰＵ
１００２・・・学習制御部
１００３・・・ニューラルネットワーク
１００４・・・学習結果抽出部
１００５・・・学習結果出力部
１１０１・・・ニューラルネットワーク入力部
１１０３・・・ニューラルネットワーク出力部
【図１】
0006987508.tif 000002
【図２】
0006987508.tif 000003
【図３】
0006987508.tif 000004
【図４】
0006987508.tif 000005
【図５Ａ】
0006987508.tif 000006
【図５Ｂ】
0006987508.tif 000007
【図５Ｃ】
0006987508.tif 000008
【図５Ｄ】
0006987508.tif 000009
【図６】
0006987508.tif 000010
【図７】
0006987508.tif 000011
【図８】
0006987508.tif 000012
【図９】
0006987508.tif 000013
【図１０】
0006987508.tif 000014
【図１１】
0006987508.tif 000015
【図１２】
0006987508.tif 000016
【図１３】
0006987508.tif 000017
【図１４】
0006987508.tif 000018
【図１５】
0006987508.tif 000019
【図１６】
0006987508.tif 000020
【図１７】
0006987508.tif 000021
【図１８】
0006987508.tif 000022
【図１９】
0006987508.tif 000023