(57)【要約】【課題】クラスをより高精度に推定可能とする。【解決手段】学習装置は、尤度算出部と、重み算出部と、学習部と、を備える。尤度算出部は、入力データが複数の推定クラスのいずれに属するかを推定するための推定モデルを用いて学習データが複数の推定クラスに属する尤度を算出する。重み算出部は、複数の推定クラスのうち他の推定クラスより正解データに近い第１クラスの尤度と、第１クラスに隣接する第２クラスおよび第３クラスの尤度と、を予め定められた形状の関数にあてはめたときに、関数の極値となる位置が正解データに相当するように、推定モデルを学習するときに用いる損失関数の重みを算出する。学習部は、損失関数を用いて推定モデルを学習する。【選択図】図２
2020080047.tif 000002
【特許請求の範囲】
【請求項１】
入力データが複数の推定クラスのいずれに属するかを推定するための推定モデルを用いて、学習データが複数の前記推定クラスに属する尤度を算出する尤度算出部と、
複数の前記推定クラスのうち他の前記推定クラスより正解データに近い第１クラスの尤度と、前記第１クラスに隣接する第２クラスおよび第３クラスの尤度と、を予め定められた形状の関数にあてはめたときに、前記関数の極値となる位置が前記正解データに相当するように、前記推定モデルを学習するときに用いる損失関数の重みを算出する重み算出部と、
前記損失関数を用いて前記推定モデルを学習する学習部と、
を備える学習装置。
【請求項２】
前記形状は、２次曲線の形状、または、等角直線の形状である、
請求項１に記載の学習装置。
【請求項３】
複数の前記推定クラスは、画像データから推定される視差を表すクラス、画像データから推定される画像データ内のオブジェクトの動きを表すクラス、または、画像データから推定される画像データ内の物体の属性を表すクラスである、
請求項１に記載の学習装置。
【請求項４】
前記推定モデルは、ニューラルネットワークモデルである、
請求項１に記載の学習装置。
【請求項５】
請求項１に記載の学習装置により学習された前記推定モデルを用いて、入力データが複数の前記推定クラスに属する尤度を算出する第２尤度算出部と、
複数の前記推定クラスのうち前記尤度が最大となる第４クラスの前記尤度と、前記第４クラスに隣接する第５クラスおよび第６クラスの尤度と、を前記関数にあてはめたときに、前記関数の極値となる位置に相当するクラスを推定する推定部と、
を備える推定装置。
【請求項６】
入力データが複数の推定クラスのいずれに属するかを推定するための推定モデルを用いて、学習データが複数の前記推定クラスに属する尤度を算出する尤度算出ステップと、
複数の前記推定クラスのうち他の前記推定クラスより正解データに近い第１クラスの尤度と、前記第１クラスに隣接する第２クラスおよび第３クラスの尤度と、を予め定められた形状の関数にあてはめたときに、前記関数の極値となる位置が前記正解データに相当するように、前記推定モデルを学習するときに用いる損失関数の重みを算出する重み算出ステップと、
前記損失関数を用いて前記推定モデルを学習する学習ステップと、
を含む学習方法。
【請求項７】
前記形状は、２次曲線の形状、または、等角直線の形状である、
請求項６に記載の学習方法。
【請求項８】
複数の前記推定クラスは、画像データから推定される視差を表すクラス、画像データから推定される画像データ内のオブジェクトの動きを表すクラス、または、画像データから推定される画像データ内の物体の属性を表すクラスである、
請求項６に記載の学習方法。
【請求項９】
前記推定モデルは、ニューラルネットワークモデルである、
請求項６に記載の学習方法。
【請求項１０】
コンピュータを、
入力データが複数の推定クラスのいずれに属するかを推定するための推定モデルを用いて、学習データが複数の前記推定クラスに属する尤度を算出する尤度算出部と、
複数の前記推定クラスのうち他の前記推定クラスより正解データに近い第１クラスの尤度と、前記第１クラスに隣接する第２クラスおよび第３クラスの尤度と、を予め定められた形状の関数にあてはめたときに、前記関数の極値となる位置が前記正解データに相当するように、前記推定モデルを学習するときに用いる損失関数の重みを算出する重み算出部と、
前記損失関数を用いて前記推定モデルを学習する学習部と、
として機能させるためのプログラム。
【請求項１１】
前記形状は、２次曲線の形状、または、等角直線の形状である、
請求項１０に記載のプログラム。
【請求項１２】
複数の前記推定クラスは、画像データから推定される視差を表すクラス、画像データから推定される画像データ内のオブジェクトの動きを表すクラス、または、画像データから推定される画像データ内の物体の属性を表すクラスである、
請求項１０に記載のプログラム。
【請求項１３】
前記推定モデルは、ニューラルネットワークモデルである、
請求項１０に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、学習装置、推定装置、学習方法およびプログラムに関する。
【背景技術】
【０００２】
ステレオ画像内の各画素に対してステレオ画像間で対応位置を求め、三角測量の原理によって奥行きを求める技術が知られている。このような技術で求められる奥行きの情報には、幅広い用途がある。例えば、自動車の自動運転では、自動車に設置されたカメラ画像から奥行きを求めることで障害物を抽出し、自動車の走行の制御に利用することができる。
【０００３】
また、所定の奥行き間隔ごとにクラスを割り当て、ディープニューラルネットワークなどで表される推定モデルを用いてクラスを推定することで奥行きを推定する技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−２０７８７４号公報
【非特許文献】
【０００５】
【非特許文献１】W.  Luo  et  al．，Efficient  Deep  Learning  for  Stereo  Matching，International  Conference  on  Computer  Vision  and  Pattern  Recognition，2016．
【非特許文献２】A.  Kendall  et  al．，End-to-End  Learning  of  Geometry  and  Context  for  Deep  Stereo  Regression、International  Conference  on  Computer  Vision，2017．
【非特許文献３】Seki  et  al．，SGM-Nets:  Semi-global  matching  with  neural  networks，  International  Conference  on  Computer  Vision  and  Pattern  Recognition，  2017.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、クラスを高精度に推定できない場合があった。
【課題を解決するための手段】
【０００７】
実施形態の学習装置は、尤度算出部と、重み算出部と、学習部と、を備える。尤度算出部は、入力データが複数の推定クラスのいずれに属するかを推定するための推定モデルを用いて学習データが複数の推定クラスに属する尤度を算出する。重み算出部は、複数の推定クラスのうち他の推定クラスより正解データに近い第１クラスの尤度と、第１クラスに隣接する第２クラスおよび第３クラスの尤度と、を予め定められた形状の関数にあてはめたときに、関数の極値となる位置が正解データに相当するように、推定モデルを学習するときに用いる損失関数の重みを算出する。学習部は、損失関数を用いて推定モデルを学習する。
【図面の簡単な説明】
【０００８】
【図１】ステレオ画像を用いた奥行き推定を説明する図。
【図２】第１の実施形態にかかる学習装置のブロック図。
【図３】第１の実施形態における学習処理のフローチャート。
【図４】視差と相違度との関係を示す図。
【図５】視差と相違度との関係を示す図。
【図６】２次曲線の例を示す図。
【図７】等角直線の例を示す図。
【図８】第２の実施形態にかかる推定システムのブロック図。
【図９】第２の実施形態における推定処理のフローチャート。
【図１０】ステレオ画像からの視差の推定結果の一例を示す図。
【図１１】第１または第２の実施形態にかかる装置のハードウェア構成図。
【発明を実施するための形態】
【０００９】
以下に添付図面を参照して、この発明にかかる学習装置の好適な実施形態を詳細に説明する。
【００１０】
奥行きを推定するためのディープニューラルネットワークの学習に用いる損失関数について、以下のような２つの方法が提案されている（非特許文献１）。
・クロスエントロピー（Ｃｒｏｓｓ  Ｅｎｔｒｏｐｙ）損失：最も真の奥行きに近い奥行きのラベルに対して、一定の重みを設定する。
・ソフトクロスエントロピー（Ｓｏｆｔ  Ｃｒｏｓｓ  Ｅｎｔｒｏｐｙ）損失：最も真の奥行きに近い奥行きラベルと、その周辺に一定の重みを設定する。
【００１１】
なお真の奥行きとは、例えば、学習時に正解データとして与えられる奥行きである。これらの方法では、最も真の奥行きに近いクラスは推定されるが、クラス間に位置する奥行きは推定されない。例えば、１０ｍ、２０ｍ、３０ｍの３つの奥行きクラスが設定されているときには、これらの３つの奥行きクラスのいずれか（１０ｍか、２０ｍか、３０ｍか）のみが推定結果として出力される。一方、例えば、１１．５ｍなどの、３つの奥行きクラスの中間に相当するクラス（中間クラス、サブクラス）は推定されない。
【００１２】
従って、推定精度はクラス数に依存し、高精度に推定するには非常に多くのクラスを用意する必要が生じる。しかし、多数のクラスについて学習データを用意することは困難であり、またニューラルネットワークの規模が大きくなるため、実現は容易ではない。
【００１３】
別の方法として、中間クラスの奥行きを推定するＳｏｆｔ  ａｒｇｍｉｎレイヤーとＬ１損失との組み合わせを用いる技術が提案されている（非特許文献２）。しかし、この技術では、真の奥行き周辺で相違度が低くなる保証がない。また、このような技術では、非特許文献３に示すような正則化を用いることができない。
【００１４】
なお相違度とは、入力されたデータが各クラスと相違する度合いを表す値である。相違度は、入力されたデータが各クラスに属することの尤もらしさを表す尺度（尤度）の一例である。尤度の他の例としては、入力されたデータと各クラスとが類似する度合いを示す類似度が挙げられる。
【００１５】
ここで、ステレオ画像を用いた奥行き推定について図１を用いてさらに説明する。視点の異なる２枚の画像３０１および３０２があり、画像３０１上の画素３１１における奥行きを推定する場合を例に説明する。画素３１１の奥行きは、光線３２１上に位置する。このため、光線３２１を画像３０２に投影したエピポーラ線３３１上から画素３１１に対応する位置が求められる。
【００１６】
ニューラルネットワークを用いない場合には、画素３１１の周辺に小領域３１２が設定され、類似するパターンが画像３０２から探索されることで、画像３０２内の小領域３１３が得られる。
【００１７】
ニューラルネットワークを用いる場合には、小領域ではなく、各画素に特徴量が計算され、特徴量を用いて奥行きが推定される。画像３０２への探索は、通常は画素単位で行われる。従って探索する画素数１つ１つをクラスと考えれば、奥行き推定を多クラス問題として扱うことができる。
【００１８】
なお、類似する画素間の位置の差（例えば画素数）は視差に相当するが、視差は三角測量の原理により奥行きに変換することができる。従って、例えば視差（画素数）を表すクラスを推定することは、奥行きクラスを推定することと等価である。
【００１９】
精度よく奥行きを推定するには、サブピクセル単位で対応位置を求める必要がある。例えば、ニューラルネットワークを用いない技術では、ＳＡＤ（Sum  of  Absolute  Difference）およびＳＳＤ（Sum  of  Squared  Difference）などを用いて小領域同士の相違度を求め、１画素未満のサブピクセルレベルの視差値が必要な場合には、等角直線または二次曲線を用いて推定される。一方、ニューラルネットワークを用いる場合には、クラス単位での学習方法しか開示されていない。このため、サブピクセル単位でクラスを推定することができなかった。
【００２０】
（第１の実施形態）
第１の実施形態にかかる学習装置は、サブクラス単位（例えばサブピクセル単位）でクラスを推定できるように、推定モデルを学習する。この結果、推定モデルが尤度を出力する対象として予め定められた推定クラスの中間のクラスに相当するサブクラスを推定可能となる。すなわち、クラスをより高精度に推定可能となる。以下では、ステレオ画像を用いた視差の推定（奥行きの推定）を例に説明するが、視差の推定以外のクラス推定にも同様の手順を適用可能である。
【００２１】
図２は、第１の実施形態にかかる学習装置１００の構成例を示すブロック図である。図２に示すように、学習装置１００は、受付部１０１と、尤度算出部１０２と、重み算出部１０３と、学習部１０４と、出力制御部１０５と、記憶部１２１と、を備えている。
【００２２】
記憶部１２１は、学習装置１００による各種処理に用いる各種データを記憶する。例えば記憶部１２１は、推定処理に用いる推定モデルを定める変数（パラメータ）を記憶する。推定モデルは、例えば、ニューラルネットワーク（ディープニューラルネットワークなど）により表されるモデルである。推定モデルはニューラルネットワークで表されるモデルに限られるものではない。入力データが、複数の推定クラスのいずれに属するかを推定できるモデルであれば、どのようなモデルであってもよい。
【００２３】
記憶部１２１は、フラッシュメモリ、メモリカード、ＲＡＭ（Random  Access  Memory）、ＨＤＤ（Hard  Disk  Drive）、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００２４】
受付部１０１は、学習装置１００による各種処理に用いる各種データの入力を受け付ける。例えば受付部１０１は、学習処理に用いる学習データの入力を受け付ける。ステレオ画像から視差クラス（奥行きクラス）を推定する場合は、受付部１０１は、例えば、ステレオ画像と、画素ごとの真の視差（奥行き）を含む正解データと、の入力を受け付ける。
【００２５】
尤度算出部１０２は、推定モデルを用いて、入力されたデータ（学習データを含む）が複数の推定クラスに属する尤度（例えば相違度）を、複数の推定クラスそれぞれについて算出する。クラスの推定に用いるニューラルネットワークは、データを入力し、複数の推定クラスそれぞれの尤度を出力するように構成することができる。尤度算出部１０２は、例えばこのようなニューラルネットワークを用いて尤度を算出する。
【００２６】
重み算出部１０３は、推定モデルを学習するときに用いる損失関数の重みを算出する。より具体的には、重み算出部１０３は、複数の推定クラスのうち他の推定クラスより正解データに近いクラス（第１クラス）の尤度と、このクラスに隣接する２以上のクラス（第２クラス、第３クラス）の尤度と、を予め定められた形状の関数にあてはめたときに、関数の極値となる位置が正解データに相当するように、損失関数の重みを算出する。重みの算出方法の詳細は後述する。
【００２７】
学習部１０４は、損失関数を用いて推定モデルを学習する。例えば、学習部１０４は、学習データに対して算出された尤度と、重み算出部１０３により算出された重みを適用した損失関数と、を用いて損失を算出し、算出した損失を最小化するように推定モデルを学習する。ニューラルネットワークを推定モデルとして用いる場合、学習部１０４は、誤差逆伝播法などの学習方法を用いてニューラルネットワークを学習することができる。
【００２８】
出力制御部１０５は、外部の装置に対するデータの出力処理を制御する。例えば、出力制御部１０５は、学習した推定モデルに関するデータ（パラメータなど）を、推定モデルにより推定処理を実行する装置に出力する。
【００２９】
上記各部（受付部１０１、尤度算出部１０２、重み算出部１０３、学習部１０４、および、出力制御部１０５）は、例えば、１または複数のプロセッサにより実現される。例えば上記各部は、ＣＰＵ（Central  Processing  Unit）などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のＩＣ（Integrated  Circuit）などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち１つを実現してもよいし、各部のうち２以上を実現してもよい。
【００３０】
次に、このように構成された第１の実施形態にかかる学習装置１００による学習処理について説明する。図３は、第１の実施形態における学習処理の一例を示すフローチャートである。
【００３１】
受付部１０１は、ステレオ画像と、画素ごとの視差（奥行き）の真値と、の入力を受け付ける（ステップＳ１０１）。真の奥行きは、例えばＬｉＤＡＲ（Laser  Imaging  Detection  and  Ranging）等の３Ｄセンサで取得することができる。また、真の奥行きは、カメラの内部パラメータおよび外部パラメータを用いて視差に変換することができる。このようにして算出される視差の真値は、通常、小数精度で表される。
【００３２】
次に尤度算出部１０２は、ニューラルネットワークなどの推定モデルに受け付けたステレオ画像を入力し、視差ごとの尤度（相違度）を算出する（ステップＳ１０２）。尤度算出部１０２は、例えば、非特許文献２に示されるようなニューラルネットワークを用いて尤度を算出することができる。ただし、非特許文献２に示されるニューラルネットワークには最後にＳｏｆｔ  ａｒｇｍｉｎレイヤーが含まれているが、このレイヤーは本実施形態では不要である。これにより、各画素において視差ごとの相違度を算出することができる。
【００３３】
正しくニューラルネットワークが学習された場合には、正しい視差で最も低い相違度が出力される。なおニューラルネットワークが尤度として類似度を出力する場合は、正しい視差で最も高い類似度が出力される。すなわち、相違度＝−類似度と解釈することができる。
【００３４】
なお上述の通り、非特許文献２のＳｏｆｔ  ａｒｇｍｉｎレイヤーでは最終的に推定される視差は正しいかもしれないが、正しい視差で最も低い相違度になるとは限らない。例えば、視差５０が正しい視差である場合に、視差５０で相違度１となり、それ以外は０となれば問題は生じない。しかし非特許文献２の方法では、視差２５と視差７５でそれぞれ相違度０．５であってもよいため、いずれが正しい視差であるかを一意に決めることができない。
【００３５】
次に学習部１０４は、画素ごとに視差を算出する（ステップＳ１０３）。上述のように視差の真値が小数精度で表される場合は、学習部１０４は、視差の真値に最も近い整数精度の視差を計算する。例えば学習部１０４は、小数精度の視差を四捨五入することで、整数精度の視差を算出することができる。整数精度の視差を算出することは、推定モデルが推定する視差クラスのうち、視差の真値に最も近い視差クラスを得ることに相当する。すなわち、本ステップでは、学習部１０４は、サブクラスを持つ可能性のある真値に対して最も近いクラスを特定する。従って、視差に相当するクラスが１画素単位ではなく、例えば１０画素単位である場合には、学習部１０４は、視差の真値を四捨五入するのではなく、視差の真値に最も近いクラスを、１０画素単位の視差クラスから求める。
【００３６】
次に重み算出部１０３は、ニューラルネットワークの学習に用いる損失関数の重みを算出する（ステップＳ１０４）。重みの算出方法は、あてはめに用いる関数ごとに異なる。重みの算出方法の詳細は後述する。
【００３７】
次に学習部１０４は、算出された重みを設定した損失関数を用いて、学習データに対する損失を算出し、算出した損失を最小化するようにニューラルネットワークを学習する（ステップＳ１０５）。学習部１０４は、例えば、算出した損失を誤差とする誤差逆伝播法により、ニューラルネットワークを学習する。
【００３８】
学習部１０４は、学習が終了したか否かを判定する（ステップＳ１０６）。学習部１０４は、例えば、学習の回数が上限値に達したか否か、または、損失の改善の大きさが閾値より小さくなったか、などにより、学習の終了を判定する。
【００３９】
学習が終了していない場合（ステップＳ１０６：Ｎｏ）、ステップＳ１０１に戻り、新たな学習データに対して処理が繰り返される。学習が終了したと判定された場合（ステップＳ１０６：Ｙｅｓ）、学習処理を終了する。
【００４０】
このような学習処理により、ニューラルネットワークが持つパラメータが決定される。決定されたパラメータで表されるニューラルネットワークを用いることにより、サブクラス単位でクラスを推定可能となる。例えば視差クラスの推定の場合、サブピクセル単位で視差クラスを推定可能となる。
【００４１】
次に、あてはめる関数の形状として２次曲線の形状を用いる場合（以下の（Ｆ１））、および、等角直線の形状を用いる場合（以下の（Ｆ２））の２通りの重みの算出方法について説明する。
【００４２】
重み算出方法の説明の前に、非特許文献１で開示されているクロスエントロピー損失、および、ソフトクロスエントロピー損失について説明する。
【００４３】
クロスエントロピー損失Ｅｃｅは、以下の（１）式に示すように、ラベルｘのクラスに対して、重みｐ（ｘ）と相違度σ（ｘ）の対数を乗算して積算した値である。真のクラスであるときにｐ（ｘ）は１、それ以外は０とする。図４は、クロスエントロピー損失を用いる場合の視差と相違度との関係を示す図である。ｄｇｔは、真値に最も近い視差を表す。クロスエントロピー損失では、視差ｄｇｔにのみ、重み「１」が設定される。
【数１】
2020080047.tif 000003
【００４４】
ソフトクロスエントロピー損失では、（１）式のｐ（ｘ）が以下の（２）式のように算出される。
【数２】
2020080047.tif 000004
【００４５】
（２）式の例では、真値に最も近い視差ｄｇｔ、真値の１つ隣の視差ｄｇｔ±１、および、真値の２つ隣の視差ｄｇｔ±２の合計５つの視差に重みが設定される。具体的には、視差ｄｇｔにはλ１が、視差ｄｇｔ±１にはλ２が、視差ｄｇｔ±２にはλ３が、重みｐ（ｘ）として設定される。図５は、ソフトクロスエントロピー損失を用いる場合の視差と相違度との関係を示す図である。
【００４６】
なお非特許文献１では、λ１、λ２およびλ３は、それぞれ０．５、０．２、および、０．０５とされている。このように、非特許文献１では、真値に最も近い視差ｄｇｔを基準に一定の重みが設定される。従って、仮に本実施形態と同様に２次曲線または等角直線を相違度に対してあてはめたとしても、真値に最も近い視差ｄｇｔが極値を持つ値として推定される。このため、サブクラスに位置する真値そのものを推定することはできない。
【００４７】
（Ｆ１）２次曲線の場合
あてはめる関数として、２次曲線を用いる場合について説明する。図６は、あてはめた２次曲線の例を示す図である。図６に示すように、真値６０１に最も近い視差ｄｇｔとそれに隣接する視差ｄｇｔ＋１と視差ｄｇｔ−１の相違度に対して２次曲線６１１をあてはめると、真値６０１に最も近い視差ｄｇｔから真値６０１までの偏差ｄ＾は以下の（３）式によって求めることができる。
【数３】
2020080047.tif 000005
【００４８】
重み算出部１０３は、ニューラルネットワークで出力される相違度が、真値に最も近いクラス周辺で２次曲線の形状となるように、（１）式の重みｐ（ｘ）を以下の（４）式に従い算出する。
【数４】
2020080047.tif 000006
【００４９】
αは設定パラメータであり、例えば０．２が設定される。αの値はこれに限られず、非負でｐ（ｘ）＞０を満たせばどのような値であってもよい。
【００５０】
また、（４）式では隣接するクラス（視差）は、視差ｄｇｔ＋１と視差ｄｇｔ−１としているが、隣接する２以上のクラス（視差）であればどのようなクラスを用いてもよい。例えば、視差ｄｇｔ＋Ｋと視差ｄｇｔ−Ｋと（Ｋは２以上の整数）を用いてもよい。また、隣接するクラスの個数および位置は、左右で異なっていてもよい。
【００５１】
ここで、（４）式を導出する手順について説明する。偏差ｄ＾で極値となる２次曲線を以下の（５）式で表す。ここで、αとβは曲線の形状を決めるパラメータである。
【数５】
2020080047.tif 000007
【００５２】
（３）式をｄｇｔを中心として考えると、ｄｇｔは０、ｄｇｔ−１は−１、ｄｇｔ＋１は１である。相違度σは２次関数であるため、（５）式を代入すると、以下の（６）式のように表される。
【数６】
2020080047.tif 000008
【００５３】
クロスエントロピーで与える重みの和が１になるように正規化すると、以下の（７）式が得られる。
【数７】
2020080047.tif 000009
【００５４】
（７）式を整理すると以下の（８）式が得られる。
【数８】
2020080047.tif 000010
【００５５】
（８）式をβについて整理すると、以下の（９）式が得られる。
【数９】
2020080047.tif 000011
【００５６】
（９）式および（６）式から（４）式を導出することができる。
【００５７】
（４）式は、視差ｄｇｔと視差ｄｇｔ＋１と視差ｄｇｔ−１のそれぞれの重みを（３）式に代入して得られる偏差ｄ＾が一致するという条件を満たす。この条件を満たせば、（４）式以外の式により重みを算出してもよい。
【００５８】
（Ｆ２）等角直線の場合
あてはめる関数として、等角直線を用いる場合について説明する。図７は、あてはめた等角直線の例を示す図である。図７に示すように、真値７０１に最も近い視差ｄｇｔとそれに隣接する視差ｄｇｔ＋１と視差ｄｇｔ−１の相違度に対して等角直線７１１、７１２をあてはめると、等角直線の極小値で真の視差となる。また、真値７０１に最も近い視差ｄｇｔから真値７０１までの偏差ｄ＾は以下の（１０）式によって求めることができる。
【数１０】
2020080047.tif 000012
【００５９】
重み算出部１０３は、（１０）式を満たすような重みとして、以下の（１１）式に従い重みを決めればよい。
【数１１】
2020080047.tif 000013
【００６０】
ここで、（１１）式を導出する手順について説明する。２次曲線の場合と同様に、ｄｇｔを中心として考えると、ｄｇｔは０、ｄｇｔ−１は−１、ｄｇｔ＋１は１である。等角直線を以下の（１２）式および（１３）式で表す。
【数１２】
2020080047.tif 000014
【数１３】
2020080047.tif 000015
【００６１】
等角直線であることから、傾きαは（１２）式と（１３）式で正負が逆になる。まず、σ（ｄｇｔ＋１）＜σ（ｄｇｔ−１）の場合を考える。ｄｇｔ−１とｄｇｔは（１２）式で表現され、ｄｇｔ＋１は（１３）式で表現されることから、以下の（１４）式が得られる。
【数１４】
2020080047.tif 000016
【００６２】
（１４）式を（１０）式に代入すると、以下の（１５）式が得られる。
【数１５】
2020080047.tif 000017
【００６３】
また、（７）式と同様に、重みの和が１になるように正規化すると、以下の（１６）式が得られる。
【数１６】
2020080047.tif 000018
【００６４】
（１５）式と（１６）式より、以下の（１７）式が得られる。
【数１７】
2020080047.tif 000019
【００６５】
（１２）式および（１３）式の等角直線は偏差ｄ＾で最小値となるように設定されており、重みもσ（０）が最小となる。クロスエントロピーでは真値に近い方の重みを大きくする必要があるため、等角直線は上に凸な形状である。よって、上に凸になるように、ここでは１から減じる形とする。これにより、以下の（１８）式が得られる。
【数１８】
2020080047.tif 000020
【００６６】
（１７）式と（１８）式より、（１１）式が導出される。σ（ｄｇｔ＋１）≧σ（ｄｇｔ−１）の場合も同様の手順で（１１）式が導出される。
【００６７】
（１１）式は、視差ｄｇｔと視差ｄｇｔ＋１と視差ｄｇｔ−１のそれぞれの重みを（１０）式に代入して得られる偏差ｄ＾が一致するという条件を満たす。この条件を満たせば、（１１）式以外の式により重みを算出してもよい。また、αは設定パラメータであり、ｐ（ｘ）が非負になるように調整されればよい。αは、例えば０．１などの値が設定される。
【００６８】
なお、図６および図７は、相違度を尤度として用いる例を示すため、２次曲線または等角直線の極値は極小値となる。例えば類似度のように、値が大きいほど、クラスに属することの尤もらしさが大きいことを示す尤度を用いる場合は、２次曲線または等角直線の極値は極大値となる。このような場合であっても、重みおよび偏差は、上記の（３）式、（４）式、（１０）式および（１１）式により算出することができる。
【００６９】
なお、これまでは、ステレオ画像からの視差（奥行き）の推定を例に説明したが、１つの画像からの視差の推定、および、視差の推定以外のクラス推定にも適用可能である。例えば、順序性を持つ（例えば数値として表される）クラスを推定対象とする場合にも上記と同様の手順を適用できる。
【００７０】
順序性を持つクラスとしては、例えば、画像データから推定される画像データ内のオブジェクトの動き（動きベクトルなど）を表すクラス、および、画像データから推定される画像データ内の物体（人物など）の属性（人物の年齢など）を表すクラスが挙げられる。
【００７１】
例えば、顔画像からニューラルネットワークを用いて年齢を推定する場合、０歳、１０歳、・・・のように１０歳間隔でクラスを設定する。真値が１２歳などのサブクラスでは、０歳と１０歳と２０歳の３つのクラスの相違度に対して、予め定められた形状の関数（２次曲線、等角直線など）をあてはめることで、相違度の極値が１２歳となるように３つのクラスの重みを設定する。この重みを用いてニューラルネットワークの損失関数を構成し、この損失関数により算出される損失を逆伝播することでニューラルネットワークを学習する。
【００７２】
なお２次元で表される動きベクトルを推定する場合、尤度は２次元で表されるが、このような場合も、例えば２次元で表される尤度を予め定められた形状の関数にあてはめ、上記と同様の手順を適用することができる。
【００７３】
このように、第１の実施形態にかかる学習装置では、サブクラス単位でクラスを推定できるように推定モデルを学習する。これにより、学習した推定モデルを用いて、サブクラスを推定可能となる。すなわち、クラスをより高精度に推定可能となる。
【００７４】
（第２の実施形態）
第２の実施形態では、第１の実施形態の学習装置１００で学習した推定モデルを用いてクラスを推定する推定装置を備える推定システムについて説明する。
【００７５】
図８は、第２の実施形態にかかる推定システムの構成の一例を示すブロック図である。図８に示すように、推定システムは、学習装置１００と、推定装置２００と、がネットワーク３００により接続された構成となっている。
【００７６】
ネットワーク３００は、インターネットなどであるが、その他のどのような形態のネットワークであってもよい。例えば、ネットワーク３００は、有線ネットワークおよび無線ネットワークのいずれであってもよい。
【００７７】
学習装置１００は、第１の実施形態と同様の機能を備えるため、同一の符号を付し説明を省略する。
【００７８】
推定装置２００は、通信制御部２０１と、受付部２０２と、尤度算出部２０３（第２尤度算出部）と、推定部２０４と、記憶部２２１と、を備えている。
【００７９】
記憶部２２１は、推定装置２００で実行される各種処理で用いる各種データを記憶する。例えば記憶部２２１は、学習装置１００から送信された推定モデルのパラメータを記憶する。記憶部２２１は、フラッシュメモリ、メモリカード、ＲＡＭ、ＨＤＤ、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００８０】
通信制御部２０１は、学習装置１００などの外部装置との間の通信を制御する。例えば通信制御部２０１は、学習装置１００から、学習済みの推定モデルを定めるパラメータの情報などを受信する。
【００８１】
受付部２０２は、推定装置２００による各種処理に用いる各種データの入力を受け付ける。例えば受付部２０２は、推定処理の対象となる入力データの入力を受け付ける。ステレオ画像から視差クラス（奥行きクラス）を推定する場合は、受付部１０１は、例えば、ステレオ画像の入力を受け付ける。
【００８２】
尤度算出部２０３は、記憶部２２１に記憶された推定モデルを用いて、入力データが複数の推定クラスに属する尤度（例えば相違度）を、複数の推定クラスそれぞれについて算出する。
【００８３】
推定部２０４は、算出された尤度を用いて、入力データのクラスを推定する。より具体的には、推定部２０４は、複数の推定クラスのうち尤度が最大となるクラス（第４クラス）の尤度と、このクラスに隣接する２以上のクラス（第５クラス、第６クラス）の尤度と、を予め定められた形状の関数にあてはめたときに、関数の極値となる位置に相当するクラスまたはサブクラスを、入力データのクラスとして推定する。なお尤度として相違度を用いる場合は、尤度が最大となることは、相違度が最小となることに相当する。推定処理の詳細は後述する。
【００８４】
なお、図８に示す推定システムの構成は一例であり、これに限られるものではない。例えば、推定装置２００の各部と学習装置１００の各部とを１つの装置（推定装置）内に備える構成としてもよい。この場合、共通化できる機能（例えば、受付部１０１と受付部２０２、尤度算出部１０２と尤度算出部２０３、記憶部１２１と記憶部２２１）は共通化してもよい。また推定装置２００は、物理的に１つの装置によって構成されてもよいし、物理的に複数の装置によって構成されてもよい。例えば推定装置２００は、クラウド環境上で構築されてもよい。
【００８５】
次に、このように構成された第２の実施形態にかかる推定装置２００による推定処理について図９を用いて説明する。図９は、第２の実施形態における推定処理の一例を示すフローチャートである。なお第２の実施形態は、第１の実施形態と同様にステレオ画像からの視差推定を例に説明するが、適用可能なクラスは視差クラスに限定されるものではない。また推定処理の前までに、学習装置１００で学習された推定モデルのパラメータが記憶部２２１に記憶され、推定処理で利用できるようになっているものとする。
【００８６】
受付部２０２は、ステレオ画像の入力を受け付ける（ステップＳ２０１）。第２の実施形態では、ニューラルネットワークの学習が不要であるため、真値は入力されない。
【００８７】
次に尤度算出部２０３は、記憶部２２１に記憶された推定モデル（例えばニューラルネットワーク）のパラメータを用いて、入力されたステレオ画像に対する相違度を算出する（ステップＳ２０２）。この処理により、画像内の各画素に対して、予め定められた視差クラス（視差数）ごとの相違度が求められる。
【００８８】
次に推定部２０４は、画像内の画素ごとに、相違度が最小となる視差ｄ＊（類似度であれば、類似度が最大となる視差）を算出する（ステップＳ２０３）。推定部２０４は、例えば以下の（１９）式を用いて、視差ｄ＊を算出する。
【数１９】
2020080047.tif 000021
【００８９】
さらに推定部２０４は、ｄ＊に隣接する視差ｄ＊＋１およびｄ＊−１を特定する。特定する視差はｄ＊の１つ隣の視差ｄｇｔ±１である必要はなく、少なくとも２つ以上の隣接する視差であればよい。
【００９０】
推定部２０４は、相違度が最小となる視差ｄ＊、および、隣接する２つの視差の合計３つの視差の相違度を用いて、予め定められた形状の関数にあてはめたときに関数の極値となる位置に対する偏差ｄ＾を算出する（ステップＳ２０４）。予め定められた形状の関数は、上記（Ｆ１）２次曲線または（Ｆ２）等角直線のいずれかであり、ニューラルネットワークの学習時と同じ関数が用いられる。
【００９１】
（Ｆ１）２次曲線の場合には、推定部２０４は（３）式に相違度σを代入し、偏差ｄ＾を算出する。（Ｆ２）等角直線の場合には、推定部２０４は（１０）式に相違度σを代入し、偏差ｄ＾を算出する。
【００９２】
次に推定部２０４は、算出された偏差ｄ＾を用いて、サブクラス単位の視差（サブピクセル視差）を推定する（ステップＳ２０５）。（３）式または（１０）式により、偏差ｄ＾は−０．５〜０．５の範囲で推定される。隣接する視差が１画素の場合、すなわち、視差クラスが１画素単位で定められている場合には、算出された偏差ｄ＾をそのまま用いればよい。視差クラスがＮ画素（Ｎは２以上の整数）単位で定められている場合は、算出された偏差ｄ＾をＮ倍して用いればよい。
【００９３】
推定部２０４は、算出された視差ｄ＊と偏差ｄ＾を以下の（２０）式に示すように加算してサブピクセル視差Ｄを算出する。
【数２０】
2020080047.tif 000022
【００９４】
図１０は、ステレオ画像からの視差の推定結果の一例を示す図である。画像１００１は、入力画像の例を示す。画像１００２〜１００８は、視差画像の例を示す。視差画像は、例えば色ごとに視差の大きさを示す画像として表すことができる。例えば視差が大きい（距離が近い）ほど暖色に近くなり、視差が小さい（遠方）ほど青色に近くなるような画像とすることができる。道路などは連続的に距離が変化するため、手前から遠方に向かうにしたがって、連続的に色が変化している様子が示されている。
【００９５】
画像１００２は、視差の真値を示す視差画像の例である。画像１００４は、クロスエントロピー損失を用いて学習したニューラルネットワークにより、画素ごとに最小の相違度を持つ視差を算出し、視差の大きさに応じて可視化した視差画像の例を示す。画像１００３は、画像１００４と同様に算出した視差について、ステップＳ２０４と同様の方法で偏差を算出し、ステップＳ２０５と同様の方法でサブピクセル視差を推定し、サブピクセル視差を可視化した視差画像の例を示す。
【００９６】
画像１００３および１００４の両方とも、色が連続して変わっておらず、離散的な視差が推定されていることが確認できる。クロスエントロピー損失では、ニューラルネットワークの学習時に、サブクラスを考慮して損失の重みを設定しないためである。
【００９７】
画像１００６および１００５は、クロスエントロピー損失の代わりにソフトクロスエントロピー損失を損失関数として用いて、それぞれ画像１００４および１００３と同様の処理を適用して得られた視差画像の例を示す。画像１００５に示すように、ソフトクロスエントロピー損失についても、ステップＳ２０４およびステップＳ２０５と同様の方法を適用しただけではサブクラスは正しく推定されない。
【００９８】
画像１００８は、本実施形態の方法により学習したニューラルネットワークを用いて、画素ごとに最小の相違度を持つ視差を算出し、視差の大きさに応じて可視化した視差画像の例を示す。画像１００７は、さらにステップＳ２０４に示す方法により偏差を算出し、ステップＳ２０５に示す方法によりサブピクセル視差を推定し、サブピクセル視差を可視化した視差画像の例を示す。
【００９９】
画像１００８に示すように、関数にあてはめてサブピクセル視差を推定する処理（ステップＳ２０４、ステップＳ２０５）を実行しない場合は、離散的なクラスしか推定されず、視差が非連続で変化している。これに対して、画像１００７に示すように、関数にあてはめてサブピクセル視差を推定する処理を実行すると、連続的に視差が変化し、真値に近い値が推定可能となる。
【０１００】
このように、第２の実施形態にかかる推定装置では、サブクラス単位でクラスを推定できるように学習した推定モデルを用いることにより、入力データのクラスをサブクラス単位で推定可能となる。
【０１０１】
以上説明したとおり、第１から第２の実施形態によれば、サブクラス単位でクラスを推定できるように推定モデルを学習することにより、クラスをより高精度に推定可能となる。
【０１０２】
次に、第１または第２の実施形態にかかる装置（学習装置、推定装置）のハードウェア構成について図１１を用いて説明する。図１１は、第１または第２の実施形態にかかる装置のハードウェア構成例を示す説明図である。
【０１０３】
第１または第２の実施形態にかかる装置は、ＣＰＵ５１などの制御装置と、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ（Random  Access  Memory）５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、各部を接続するバス６１を備えている。
【０１０４】
第１または第２の実施形態にかかる装置で実行されるプログラムは、ＲＯＭ５２等に予め組み込まれて提供される。
【０１０５】
第１または第２の実施形態にかかる装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【０１０６】
さらに、第１または第２の実施形態にかかる装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第１または第２の実施形態にかかる装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【０１０７】
第１または第２の実施形態にかかる装置で実行されるプログラムは、コンピュータを上述した装置の各部として機能させうる。このコンピュータは、ＣＰＵ５１がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【０１０８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１０９】
１００  学習装置
１０１  受付部
１０２  尤度算出部
１０３  重み算出部
１０４  学習部
１０５  出力制御部
１２１  記憶部
２００  推定装置
２０１  通信制御部
２０２  受付部
２０３  尤度算出部
２０４  推定部
２２１  記憶部
３００  ネットワーク
【図１】
2020080047.tif 000023
【図２】
2020080047.tif 000024
【図３】
2020080047.tif 000025
【図４】
2020080047.tif 000026
【図５】
2020080047.tif 000027
【図６】
2020080047.tif 000028
【図７】
2020080047.tif 000029
【図８】
2020080047.tif 000030
【図９】
2020080047.tif 000031
【図１０】
2020080047.tif 000032
【図１１】
2020080047.tif 000033