(57)【要約】【課題】ニューラルネットワークに教師なしでオプティカルフローの推定を学習させることができる学習方法を提供する。【解決手段】動画像を構成する時間的に隣接する第１画像および第２画像であって、前記第１画像および第１画像から所定時間後の画像である第２画像をニューラルネットワークに入力する入力処理（Ｓ１１）と、第１画像および第２画像を用いて、ニューラルネットワークに、第１画像中の全画素に対して用いる変換行列であって第１画像を第２画像に変換する変換行列を出力することを学習させる学習処理（Ｓ１２）と、変換行列より生成される第１画像の各画素の所定時間後までの移動量を表現した移動量画像を、第１画像および第２画像の間の動きの推定結果として出力する出力処理（Ｓ１３）とを含む。【選択図】図７
2018156640.tif 000002
【特許請求の範囲】
【請求項１】
動画像を構成する時間的に隣接する第１画像および第２画像であって、前記第１画像および前記第１画像から所定時間後の画像である前記第２画像をニューラルネットワークに入力する入力ステップと、
前記第１画像および前記第２画像を用いて、前記ニューラルネットワークに、前記第１画像中の全画素に対して用いる変換行列であって前記第１画像を前記第２画像に変換する変換行列を出力することを学習させる学習ステップと、
前記変換行列より生成される前記第１画像の各画素の前記所定時間後までの移動量を表現した移動量画像を、前記第１画像および前記第２画像の間の動きの推定結果として出力する出力ステップとを含む、
学習方法。
【請求項２】
動画像を構成する時間的に隣接する第１画像および第２画像であって、前記第１画像および前記第１画像から所定時間後の画像である前記第２画像を、ニューラルネットワークに入力する入力ステップと、
ｉ）前記ニューラルネットワークを構成する第１ニューラルネットワークに、前記第１画像および前記第２画像を用いて、前記第１画像の各画素の前記所定時間後までの第１移動量を表現した第１移動量画像を出力することを学習させ、ｉｉ）前記ニューラルネットワークを構成する前記第１ニューラルネットワークと異なる第２ニューラルネットワークに、前記第１画像、前記第２画像および前記第１移動量画像を用いて、前記第１画像の各画素の前記所定時間後までの第２移動量を表現した第２移動量画像を出力することを学習させる学習ステップと、
前記第２移動量画像を、前記第１画像および前記第２画像の間の動きの推定結果として出力する出力ステップとを含む、
学習方法。
【請求項３】
前記学習ステップでは、
前記第１画像および前記第２画像を用いて、前記第１ニューラルネットワークに、前記第１画像中の全画素に対して用いる変換行列であって前記第１画像を前記第２画像に変換する変換行列を出力することを学習させることにより、前記変換行列から生成される前記第１移動量画像を出力することを学習させる、
請求項２に記載の学習方法。
【請求項４】
前記学習ステップでは、
前記変換行列と前記第１画像とにより生成される、前記第１画像から前記所定時間後の画像である第１推定画像と前記第２画像との誤差である第１誤差、および、前記第２移動量画像と前記第１画像とにより生成される、前記第１画像から前記所定時間後の画像である第２推定画像と前記第２画像との誤差である第２誤差を結合した結合誤差を算出し、
算出した前記結合誤差が最小になった場合に、前記結合誤差が最小になった前記第１ニューラルネットワークおよび前記第２ニューラルネットワークの重みを、学習させた前記第１ニューラルネットワークおよび前記第２ニューラルネットワークの重みとして決定する決定ステップとを含む、
請求項３に記載の学習方法。
【請求項５】
前記ニューラルネットワークを構成する第１ニューラルネットワークは、
１以上の畳み込み層と、
１以上の全結合層とで構成され、
前記全結合層は、前記変換行列を構成する９つの係数となる９つパラメータのうちの少なくとも８つのパラメータを出力するように構成されている、
請求項１、３または４に記載の学習方法。
【請求項６】
前記ニューラルネットワークを構成する第１ニューラルネットワークは、
２以上の畳み込み層とで構成され、
前記２以上の畳み込み層のうちの最終層は、前記変換行列を構成する９つの係数となる９つパラメータのうちの少なくとも８つのパラメータを出力するように構成されている、
請求項１、３または４に記載の学習方法。
【請求項７】
前記ニューラルネットワークを構成する第２ニューラルネットワークは、
１以上の畳み込み層からなる圧縮層と、
前記圧縮層の後に位置し、１以上の逆畳み込み層からなる展開層と、
前記展開層の後に位置する１つの畳み込み層とで構成され、
前記１つの畳み込み層は、前記第２移動量画像を構成する画素の移動量を示す２つのパラメータを出力するように構成されている、
請求項５または６に記載の学習方法。
【請求項８】
動画像を構成する時間的に隣接する第１画像および第２画像であって、前記第１画像および前記第１画像から所定時間後の画像である前記第２画像をニューラルネットワークに入力する入力ステップと、
前記第１画像および前記第２画像を用いて、前記ニューラルネットワークに、前記第１画像中の全画素に対して用いる変換行列であって前記第１画像を前記第２画像に変換する変換行列を出力することを学習させる学習ステップと、
前記変換行列より生成される前記第１画像の各画素の前記所定時間後までの移動量を表現した移動量画像を、前記第１画像および前記第２画像の間の動きの推定結果として出力する出力ステップとを、
コンピュータに実行させるプログラム。
【請求項９】
動画像を構成する時間的に隣接する第１画像および第２画像であって、前記第１画像および前記第１画像から所定時間後の画像である前記第２画像を、ニューラルネットワークに入力する入力ステップと、
ｉ）前記ニューラルネットワークを構成する第１ニューラルネットワークに、前記第１画像および前記第２画像を用いて、前記第１画像の各画素の前記所定時間後までの第１移動量を表現した第１移動量画像を出力することを学習させ、ｉｉ）前記ニューラルネットワークを構成する前記第１ニューラルネットワークと異なる第２ニューラルネットワークに、前記第１画像、前記第２画像および前記第１移動量画像を用いて、前記第１画像の各画素の前記所定時間後までの第２移動量を表現した第２移動量画像を出力することを学習させる学習ステップと、
前記第２移動量画像を、前記第１画像および前記第２画像の間の動きの推定結果として出力する出力ステップとを、
コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、学習方法およびプログラムに関し、特にニューラルネットワークを用いてコンピュータが行う学習方法およびプログラムに関する。
【背景技術】
【０００２】
近年、画像間の動きを表現したものであるオプティカルフローを推定する技術がある。オプティカルフローをリアルタイムに精度よく推定することができれば、移動中の自動車に搭載されているカメラ等で得た画像から、路上にある複数のオブジェクトを検出または追跡することができる。このため、事故などの可能性を事前に検知し回避するシステムである先進運転支援システム（Advanced Driver Assistance System：ADAS）および自動運転車を実現するための技術としても期待される。
【０００３】
例えば、例えば非特許文献１には、Kitti Datasetなどの既知のデータセットで用意された正解データを教師データとして用いて学習させたニューラルネットワークにオプティカルフローを推定させる技術が開示されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】G. Long, L. Kneip, J. M. Alvarez, H. Li, X. Zhang, and Q. Yu. Learning image matching by simply watching video.In European Conference on Computer Vision, pages 434-450. Springer, 2016. 1, 3
【非特許文献２】M. Jaderberg, K. Simonyan, A. Zisserman, et al. Spatial transformer networks. In Advances in Neural Information Processing Systems, pages 2017-2025, 2015. 2
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１で開示された技術では、オプティカルフローをリアルタイムに精度よく推定させることが難しいという問題がある。既知のデータセットで用意された正解データは、数量が不十分であり、さらに、オプティカルフローの推定に使うために用意されていないからである。一方、教師データなしでニューラルネットワークを学習させることができれば、学習に利用できるデータセットの数量は十分用意できるものの、意図する出力すなわちオプティカルフローの推定を学習させることは難しい。
【０００６】
本開示は、上述の事情を鑑みてなされたもので、ニューラルネットワークに教師データなしでオプティカルフローの推定を学習させることができる学習方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本開示の一形態に係る学習方法は、動画像を構成する時間的に隣接する第１画像および第２画像であって、前記第１画像および前記第１画像から所定時間後の画像である前記第２画像をニューラルネットワークに入力する入力ステップと、前記第１画像および前記第２画像を用いて、前記ニューラルネットワークに、前記第１画像中の全画素に対して用いる変換行列であって前記第１画像を前記第２画像に変換する変換行列を出力することを学習させる学習ステップと、前記変換行列より生成される前記第１画像の各画素の前記所定時間後までの移動量を表現した移動量画像を、前記第１画像および前記第２画像の間の動きの推定結果として出力する出力ステップとを含む。
【０００８】
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータで読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【発明の効果】
【０００９】
本開示の学習方法等によれば、ニューラルネットワークに教師データなしでオプティカルフローの推定を学習させることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態における推定器の構成の一例を示すブロック図である。
【図２】図２は、図１に示す推定器が用いるニューラルネットワークの構成の一例を示すブロック図である。
【図３】図３は、実施の形態におけるＨ−ｎｅｔの構成の一例を示す図である。
【図４】図４は、図１に示す推定器が用いるニューラルネットワークの構成の一例を示すブロック図である。
【図５】図５は、実施の形態におけるＦ−ｎｅｔの構成の一例を示す図である。
【図６】図６は、実施の形態における推定器の推定処理結果を概念的に示す図である。
【図７】図７は、実施の形態における学習方法を示すフローチャートである。
【図８】図８は、実施の形態の学習処理で用いられるニューラルネットワークの構成の一例を示す図である。
【図９】図９は、図７に示すステップＳ１２の詳細処理の一例を示すフローチャートである。
【図１０】図１０は、図７に示すステップＳ１２の詳細処理を概念的に示す図である。
【図１１】図１１は、本開示の学習方法の学習効果を示す図である。
【図１２】図１２は、Kitti raw Data setを用いて学習させた本開示のニューラルネットワークの評価結果を示す図である。
【図１３】図１３は、Virtual Kitti Data setを用いて本開示の学習方法を行った場合の評価を示す別の図である。
【図１４】図１４は、DR（eye）VE Data baseを用いて本開示の学習方法の環境条件の影響を評価を示す図である。
【発明を実施するための形態】
【００１１】
（本発明の基礎となった知見）
一般的に、移動中の自動車で得られる画像からモーションフローの推定を精度よく行うことは、専用のハードウェアを必要とする複雑な処理を必要とすることが知られている。一方で、近年では、モーションフローを推定することを目的としたアルゴリズムの開発が盛んになってきている。しかしながら、モーションフローの推定させるために使える、公に利用可能なデータセットは欠如しており、重大な問題となっている。
【００１２】
例えば、公に利用可能なデータセットであるKitti Flow Data setは、2D-3Dマッチングを実行し正確な対応づけを行い正解データを作成するためにLIDAR点群を用いて取得されている。そして、Kitti Flow Data setで用意されている正解データは、４００未満の正解情報付きフレームであり、数量は十分でない。さらに、当該正解データは、オプティカルフローの推定に使うために用意されたものでないため、オプティカルフローの推定を学習させるために用いる正解データとしては精度が十分でない。
【００１３】
一方、教師データなしでオプティカルフローの推定を学習させる方法では、十分な数量のデータセットを用いることができるが、教師データという正解情報なしでオプティカルフローの推定をどのように学習させるかが問題である。上記非特許文献１に開示される技術のように、教師データありで学習させた場合でも、オプティカルフローをリアルタイムに精度よく推定させることが難しいことからも問題であることがわかる。
【００１４】
そこで、本開示の一形態に係る学習方法は、動画像を構成する時間的に隣接する第１画像および第２画像であって、前記第１画像および前記第１画像から所定時間後の画像である前記第２画像をニューラルネットワークに入力する入力ステップと、前記第１画像および前記第２画像を用いて、前記ニューラルネットワークに、前記第１画像中の全画素に対して用いる変換行列であって前記第１画像を前記第２画像に変換する変換行列を出力することを学習させる学習ステップと、前記変換行列より生成される前記第１画像の各画素の前記所定時間後までの移動量を表現した移動量画像を、前記第１画像および前記第２画像の間の動きの推定結果として出力する出力ステップとを含む。
【００１５】
これにより、ニューラルネットワークに教師データなしでオプティカルフローの推定を学習させることができる。
【００１６】
また、本開示の一形態に係る学習方法は、動画像を構成する時間的に隣接する第１画像および第２画像であって、前記第１画像および前記第１画像から所定時間後の画像である前記第２画像を、ニューラルネットワークに入力する入力ステップと、ｉ）前記ニューラルネットワークを構成する第１ニューラルネットワークに、前記第１画像および前記第２画像を用いて、前記第１画像の各画素の前記所定時間後までの第１移動量を表現した第１移動量画像を出力することを学習させ、ｉｉ）前記ニューラルネットワークを構成する前記第１ニューラルネットワークと異なる第２ニューラルネットワークに、前記第１画像、前記第２画像および前記第１移動量画像を用いて、前記第１画像の各画素の前記所定時間後までの第２移動量を表現した第２移動量画像を出力することを学習させる学習ステップと、前記第２移動量画像を、前記第１画像および前記第２画像の間の動きの推定結果として出力する出力ステップとを含む。
【００１７】
これにより、ニューラルネットワークに教師データなしでオプティカルフローの推定を学習させることができる。
【００１８】
ここで、例えば、前記学習ステップでは、前記第１画像および前記第２画像を用いて、前記第１ニューラルネットワークに、前記第１画像中の全画素に対して用いる変換行列であって前記第１画像を前記第２画像に変換する変換行列を出力することを学習させることにより、前記変換行列から生成される前記第１移動量画像を出力することを学習させてもよい。
【００１９】
また、例えば、前記学習ステップでは、前記変換行列と前記第１画像とにより生成される、前記第１画像から前記所定時間後の画像である第１推定画像と前記第２画像との誤差である第１誤差、および、前記第２移動量画像と前記第１画像とにより生成される、前記第１画像から前記所定時間後の画像である第２推定画像と前記第２画像との誤差である第２誤差を結合した結合誤差を算出し、算出した前記結合誤差が最小になった場合に、前記結合誤差が最小になった前記第１ニューラルネットワークおよび前記第２ニューラルネットワークの重みを、学習させた前記第１ニューラルネットワークおよび前記第２ニューラルネットワークの重みとして決定する決定ステップとを含むとしてもよい。
【００２０】
また、例えばここで、前記ニューラルネットワークを構成する第１ニューラルネットワークは、１以上の畳み込み層と、１以上の全結合層とで構成され、前記全結合層は、前記変換行列を構成する９つの係数となる９つパラメータのうちの少なくとも８つのパラメータを出力するように構成されているとしてもよい。
【００２１】
さらに、例えば、前記ニューラルネットワークを構成する第１ニューラルネットワークは、２以上の畳み込み層とで構成され、前記２以上の畳み込み層のうちの最終層は、前記変換行列を構成する９つの係数となる９つパラメータのうちの少なくとも８つのパラメータを出力するように構成されているとしてもよい。
【００２２】
また、例えば、前記ニューラルネットワークを構成する第２ニューラルネットワークは、１以上の畳み込み層からなる圧縮層と、前記圧縮層の後に位置し、１以上の逆畳み込み層からなる展開層と、前記展開層の後に位置する１つの畳み込み層とで構成され、前記１つの畳み込み層は、前記第２移動量画像を構成する画素の移動量を示す２つのパラメータを出力するように構成されているとしてもよい。
【００２３】
なお、これらの包括的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータで読み取り可能なＣＤ−ＲＯＭなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【００２４】
以下で説明する実施の形態は、いずれも本開示の一具体例を示すものである。以下の実施の形態で示される数値、形状、構成要素、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。また全ての実施の形態において、各々の内容を組み合わせることもできる。
【００２５】
（実施の形態）
以下では、図面を参照しながら、実施の形態における推定器１０の情報処理方法等の説明を行う。
【００２６】
［推定器１０の構成］
図１は、実施の形態における推定器１０の構成の一例を示すブロック図である。図２は、図１に示す推定器１０が用いるニューラルネットワークの構成の一例を示すブロック図である。
【００２７】
推定器１０は、ニューラルネットワークを用いたコンピュータ等で実現される。推定器１０は、時間的に連続する画像から構成される動画像である映像が入力されると、画像間の動きの推定結果であるオプティカルフローを出力する。なお、推定器１０は、オプティカルフローとして推定した画像間の動きを表現した画像を出力してもよいし、推定した画像間の動きを表現した情報を出力してもよい。また、映像は、典型的には、自動車に搭載されたカメラ等の撮像手段により、自動車の進む方向を撮影することで得られた時間的に連続する動画像であるが、これに限らない。時間的に連続する静止画像であってもよい。
【００２８】
以下、推定器１０が用いるニューラルネットワークの構成例について説明する。
【００２９】
［ニューラルネットワーク１０ａの構成］
図２は、図１に示す推定器１０が用いるニューラルネットワーク１０ａの構成の一例を示すブロック図である。
【００３０】
ニューラルネットワーク１０ａは、図２に示すように、Ｈ−ｎｅｔ１１と、ＳＴＬＨ１２とを備える。以下では、ニューラルネットワーク１０ａは、Ego-motion Networkと称することもある。ニューラルネットワーク１０ａは、動画像を構成する時間的に隣接する第１画像５１および第２画像５２であって、第１画像５１および第１画像５１から所定時間後の画像である第２画像５２が入力され、第１画像５１および第２画像５２の間の動きの推定結果を出力する。
【００３１】
＜Ｈ−ｎｅｔ１１＞
Ｈ−ｎｅｔ１１は、第１ニューラルネットワークの一例であり、第１画像５１中の全画素に対して用いる変換行列Ｈであって第１画像５１を第２画像５２に変換する変換行列Ｈを出力する。より具体的には、Ｈ−ｎｅｔ１１は、１以上の畳み込み層と、１以上の全結合層とで構成され、変換行列Ｈを構成する３×３の９つの係数となる９つのパラメータを出力する。つまり、全結合層は、変換行列Ｈを構成する９つの係数となる９つパラメータを出力するように構成されている。なお、全結合層は、変換行列Ｈを構成する９つの係数となる９つパラメータのうちの少なくとも８つのパラメータを出力するように構成されていてもよい。８つのパラメータから９つ目のパラメータを算出できるからである。
【００３２】
ここで、変換行列Ｈは、２つの静止画像間のモーションフィールド（動きの領域、場所）を概算することができる行列であり、例えば第１画像５１を第２画像５２に射影変換することのできる行列である。この変換行列Ｈでは、３×３の９つパラメータで射影を特徴づけることができるため、出力空間の次元を減少させることができる。このため、Ｈ−ｎｅｔ１１は、高速に演算処理を行うことができる。
【００３３】
図３は、実施の形態におけるＨ−ｎｅｔ１１の構成の一例を示す図である。
【００３４】
Ｈ−ｎｅｔ１１は、例えば図３に示すように、６つの畳み込み層（Ｃｏｎｖ１１１〜Ｃｏｎ１１６）と３つの全結合層（ＦＣ１１７〜ＦＣ１１９）とで構成された小型のニューラルネットワークである。Ｃｏｎｖ１１１およびＣｏｎｖ１１２の出力数は３２、Ｃｏｎｖ１１３およびＣｏｎｖ１１３の出力数は６４、Ｃｏｎｖ１１５およびＣｏｎｖ１１６の出力数は１２８となるように構成されている。６つの畳み込み層（Ｃｏｎｖ１１１〜Ｃｏｎ１１６）は、３×３カーネルを特徴とし、畳み込みの適用間隔であるストライドを２としている。６つの畳み込み層（Ｃｏｎｖ１１１〜Ｃｏｎ１１６）は、ＲｅＬＵ（Rectified Linear Unit）を活性化関数として用いる。
【００３５】
また、ＦＣ１１７の出力数は１２８、ＦＣ１１８の出力数は１０２４であり、全結合層の最終層のＦＣ１１９の出力数は９となるように構成されている。
【００３６】
なお、Ｈ−ｎｅｔ１１は、１以上の畳み込み層と、１以上の全結合層とで構成されれば足りると説明したが、１以上の全結合層のうち最終層となる全結合層の出力数は、ＦＣ１１９に示す９となるように構成される。
【００３７】
また、全結合層の出力結果は、畳み込み層でも実現し得るため、Ｈ−ｎｅｔ１１は、全結合層を構成していなくてもよい。つまり、Ｈ−ｎｅｔ１１は、２以上の畳み込み層で構成されてもよく、２以上の畳み込み層のうち最終層となる畳み込み層の出力数を、ＦＣ１１９と同じように９となるように構成されればよい。上述したように、８つのパラメータから９つ目のパラメータを算出することができるので、２以上の畳み込み層のうちの最終層は、前記変換行列Ｈを構成する９つの係数となる９つパラメータのうちの少なくとも８つのパラメータを出力するように構成されていてもよい。
【００３８】
＜ＳＴＬＨ１２＞
ＳＴＬＨ１２は、Ｈ−ｎｅｔ１１より出力された変換行列Ｈを用いて、第１画像５１の各画素の所定時間後までの第１移動量を表現した第１移動量画像６１を、第１画像５１および第２画像５２の間の動きの推定結果として出力する。ＳＴＬＨ１２は、例えば非特許文献２に開示されている空間的不変性を保てる完全に微分可能な空間変換ネットワーク（Spatial Transformer Network：ＳＴＮ）で構成された空間変換層（Spatial transformer Layer）である。非特許文献２では、同一物体のある角度から撮影された画像を、同一物体を別の角度で撮影された他の画像にワープ（変形などの変換）を行わせる変換行列の出力するためのパラメータをＳＴＮに学習させることが開示されている。そして、例えばニューラルネットワークなどの一般的なパラメトリック関数によって２つのフレームＵｔ、Ｕｔ＋１から推定された射影変換Ｔφが与えられると、ＳＴＮは、Ｔφ（Ｕｔ）を計算することで、Ｕｔ＋１を得ることができる。
【００３９】
なお、ＳＴＬＨ１２は、Ｈ−ｎｅｔ１１より出力された変換行列Ｈを用いて、第１画像５１を変換することで、第２画像５２に近い画像である推定画像を生成することができる。Ｈ−ｎｅｔ１１より推定された変換行列Ｈは、第１画像５１を歪ませて第２画像５２に変換するための射影行列である。したがって、変換行列Ｈは、画像間の全体の動きを捉えることができるものの、画像中の個々のオブジェクトの詳細の動きを捉えるまでには至らないグローバル変換を行う。そのため、Ｈ−ｎｅｔ１１より出力された変換行列Ｈを用いて第１画像５１が変換された推定画像は第２画像５２とはならず、近い画像となる。同様に、Ｈ−ｎｅｔ１１より出力された変換行列Ｈを用いて生成される第１移動量画像６１は、第１画像５１および第２画像５２の間の全体の動きの推定結果を示すが、画像中の個々のオブジェクトの詳細な動きの推定までは示していない。
【００４０】
このように、ニューラルネットワーク１０ａは、Ｈ−ｎｅｔ１１が出力する変換行列Ｈより生成される第１画像の各画素の所定時間後までの第１移動量を表現した第１移動量画像６１を、第１画像５１および第２画像５２の間の動きの推定結果として出力する。第１移動量画像６１は、第１画像５１の各画素の所定時間後までの第１移動量を表現していることから、第１画像５１と第２画像との間の動きを表現したオプティカルフローと捉えることができる。つまり、ニューラルネットワーク１０ａは、推定したオプティカルフローを出力できる。
【００４１】
なお、推定器１０が用いるニューラルネットワークの構成は、図２に示すニューラルネットワーク１０ａの構成に限らない。図４に示すニューラルネットワーク１０ｂの構成であってもよい。以下、これについて説明する。
【００４２】
［ニューラルネットワーク１０ｂの構成］
図４は、図１に示す推定器１０が用いるニューラルネットワーク１０ｂの構成の一例を示すブロック図である。図２と同様の要素には同一の符号を付しており、詳細な説明は省略する。
【００４３】
ニューラルネットワーク１０ｂは、図４に示すように、Ｈ−ｎｅｔ１１と、ＳＴＬＨ１２とＦ−ｎｅｔ１３とを備える。ニューラルネットワーク１０ｂも、ニューラルネットワーク１０ａと同様に、動画像を構成する時間的に隣接する第１画像５１および第２画像５２であって、第１画像５１および第１画像５１から所定時間後の画像である第２画像５２が入力され、第１画像５１および第２画像５２の間の動きの推定結果を出力する。なお、図４では、Ｈ−ｎｅｔ１１と、ＳＴＬＨ１２とＦ−ｎｅｔ１３とを有するニューラルネットワークを、Ego-motion Network１１ａと示している。
【００４４】
＜Ｆ−ｎｅｔ１３＞
Ｆ−ｎｅｔ１３は、ニューラルネットワーク１０ｂを構成する第１ニューラルネットワークと異なる第２ニューラルネットワークの一例であり、refinement networkと称することもある。Ｆ−ｎｅｔ１３は、第１画像５１、第２画像５２および第１移動量を表現した第１移動量画像６１が入力され、第１画像５１の各画素の所定時間後までの第２移動量を表現した第２移動量画像６２を出力する。より具体的には、Ｆ−ｎｅｔ１３は、１以上の畳み込み層からなる圧縮層と、圧縮層の後に位置し、１以上の逆畳み込み層からなる展開層と、展開層の後に位置する１つの畳み込み層とで構成され、第２移動量を表現した第２移動量画像６２を構成する各画素の移動量を示す２つパラメータを出力する。つまり、展開層の後に位置する１つの畳み込み層は、第２移動量を構成する画素の移動量を示す２つのパラメータを出力するように構成されている。
【００４５】
図５は、実施の形態におけるＦ−ｎｅｔ１３の構成の一例を示す図である。
【００４６】
Ｆ−ｎｅｔ１３は、例えば図５に示すように、５つの圧縮層（Ｃ−ｂｌｏｃｋ１３１〜１３５）と５つの展開層（Ｔ−ｂｌｏｃｋ１３６〜１４０）と、畳み込み層である最終層（Ｃｏｎｖ１４１）とで構成されている。図５に示す矢印は、圧縮層と展開層との間のスキップ接続を示している。５つの圧縮層（Ｃ−ｂｌｏｃｋ１３１〜１３５）と５つの展開層（Ｔ−ｂｌｏｃｋ１３６〜１４０）とで、次元削減するオートエンコーダを構成する。５つの展開層（Ｔ−ｂｌｏｃｋ１３６〜１４０）は５つの圧縮層の構造をミラーリングした構造となっている。
【００４７】
Ｃ−ｂｌｏｃｋ１３１およびＣ−ｂｌｏｃｋ１３２の出力数は９６、Ｃ−ｂｌｏｃｋ１３３〜Ｃ−ｂｌｏｃｋ１３５の出力数は１２８である。５つの圧縮層であるＣ−ｂｌｏｃｋ１３３〜Ｃ−ｂｌｏｃｋ１３５はそれぞれ、３つの畳み込み層で構成され、３×３カーネルを特徴とし、３つの畳み込み層のうち最終層のストライドを２、これ以外のストライドを１としている。つまり、各圧縮層では、３つの畳み込み層の最終層以外の２つの畳み込み層では１画素ずつずらして特徴を抽出し、最終層で２画素ずつずらして特徴を抽出する。このようにして、各圧縮層は、入力される第１移動量画像６１の特徴を圧縮して次に伝達する。
【００４８】
Ｔ−ｂｌｏｃｋ１３６〜Ｔ−ｂｌｏｃｋ１３８の出力数は１２８、Ｔ−ｂｌｏｃｋ１３９およびＴ−ｂｌｏｃｋ１４０の出力数は９６である。５つの展開層であるＴ−ｂｌｏｃｋ１３６〜Ｔ−ｂｌｏｃｋ１４０はそれぞれ、３つの逆畳み込み層（転置畳み込み層とも称する）で構成され、４×４カーネルを特徴とし、３つの畳み込み層のうち先頭層のストライドを２、これ以外のストライドを１としている。つまり、３つの畳み込み層の先頭層では２画素ずつずらして特徴を展開し、後の２つの層で１画素ずつずらして特徴を抽出することで、５つの展開層のそれぞれは、入力される圧縮された第１移動量画像６１の特徴を展開して次に伝達する。
【００４９】
また、最終層の畳み込み層であるＣｏｎｖ１４１の出力数は２となるように構成されている。ここで、出力数を２としているのは、第２移動量画像を構成する画素の移動量を、画像のＸ方向、Ｙ方向の２つのパラメータで表現するからである。
【００５０】
このように、ニューラルネットワーク１０ｂでは、Ｈ−ｎｅｔ１１が出力する変換行列Ｈより生成される第１画像の各画素の所定時間後までの第１移動量を表現した第１移動量画像６１と第１画像５１と第２画像とをＦ−ｎｅｔ１３に入力する。そして、Ｆ−ｎｅｔ１３が出力する第１画像５１の各画素の所定時間後までの第２移動量を表現した第２移動量画像６２を、第１画像５１および第２画像５２の間の動きの推定結果として出力する。
【００５１】
なお、第２移動量画像６２は、第１画像５１の各画素の所定時間後までの第２移動量を表現していることから、第１画像５１と第２画像との間の動きを表現したオプティカルフローと捉えることができる。つまり、ニューラルネットワーク１０ｂは、推定したオプティカルフローを出力できる。
【００５２】
［推定器１０の推定処理結果］
図６は、実施の形態における推定器１０の推定処理結果を概念的に示す図である。図６には、推定器１０が図４に示すニューラルネットワーク１０ｂを用いた場合の推定処理結果の一例が示されている。
【００５３】
図６に示すように、推定器１０が用いるニューラルネットワーク１０ｂに、第１画像５１および第２画像５２として、時間的に連続する車載カメラの画像であるフレームＸｔ、Ｘｔ＋１を入力したとする。この場合、Ego-motion Network１１ａは、第１移動量画像６１として、フレームＸｔの各画素の所定時間後までの移動量を表現した移動量画像ＦＨをＦ−ｎｅｔ１３に出力する。ここで、移動量画像ＦＨはフレームＸｔ、Ｘｔ＋１間の動きを色の濃淡で示した画像である。Ｆ−ｎｅｔ１３は、Ego-motion Network１１ａから出力された移動量画像ＦＨとフレームＸｔ、Ｘｔ＋１とが入力され、フレームＸｔの各画素の所定時間後までの移動量を表現した移動量画像Ｆを、フレームＸｔ、Ｘｔ＋１の間の動きの推定結果として出力する。
【００５４】
図６に示す例では、移動量画像ＦＨおよび移動量画像Ｆの中心から左側の色の濃淡において、色が濃いほどフレームＸｔ、Ｘｔ＋１間で左側の動きが大きいことを示している。同様に、移動量画像ＦＨおよび移動量画像の中心から右側の色の濃淡において、色が濃いほどフレームＸｔ、Ｘｔ＋１間で右側の動きが大きいことを示している。
【００５５】
また、移動量画像ＦＨは、フレームＸｔ、Ｘｔ＋１の間の全体の動きを捉えることができるものの、フレームＸｔ中に含まれる個々のオブジェクトの詳細な動きを捉えるまでには至らない。一方、移動量画像Ｆは、移動量画像ＦＨを精緻化（refine）にしたものに該当し、フレームＸｔ、Ｘｔ＋１の間の全体の動きに加えてフレームＸｔ中に含まれる個々のオブジェクトの詳細な動きを捉えるものになっている。
【００５６】
［推定器１０の学習処理］
以下、このような推定器１０を実現するための学習処理について説明する。推定器１０として機能する前の、学習処理が行われるものをニューラルネットワーク１０ｃと称して説明する。
【００５７】
［学習方法］
図７は、実施の形態における学習方法を示すフローチャートである。
【００５８】
図７に示すように、まず、コンピュータは、第１画像および第２画像をニューラルネットワーク１０ｃに入力する入力処理を行う（Ｓ１１）。より具体的には、コンピュータは、動画像を構成する時間的に隣接する第１画像５１および第２画像５２であって、第１画像５１および第１画像５１から所定時間後の画像である第２画像５２をニューラルネットワーク１０ｃに入力する。
【００５９】
次に、コンピュータは、ニューラルネットワーク１０ｃの学習処理を行う（Ｓ１２）。ここで、学習後のニューラルネットワーク１０ｃが図２を用いて説明したニューラルネットワーク１０ａになるとする。この場合、コンピュータは、ステップＳ１１で入力した第１画像５１および第２画像５２を用いて、ニューラルネットワーク１０ｃに、第１画像５１中の全画素に対して用いる変換行列Ｈであって第１画像５１を第２画像５２に変換する変換行列Ｈを出力することを学習させる。
【００６０】
一方、学習後のニューラルネットワーク１０ｃが図４を用いて説明したニューラルネットワーク１０ｂになるとする。この場合、コンピュータは、ｉ）ニューラルネットワーク１０ｃを構成する第１ニューラルネットワークに、ステップＳ１１で入力した第１画像５１および第２画像５２を用いて、第１画像５１の各画素の所定時間後までの第１移動量を表現した第１移動量画像６１を出力することを学習させる。また、コンピュータは、ｉ）とともに、ｉｉ）ニューラルネットワーク１０ｃを構成する第１ニューラルネットワークと異なる第２ニューラルネットワークに、ステップＳ１１で入力した第１画像５１、第２画像５２および第１移動量画像６１を用いて、第１画像５１の各画素の所定時間後までの第２移動量を表現した第２移動量画像６２を出力することを学習させる。ここで、コンピュータは、ステップＳ１１で入力した第１画像５１および第２画像５２を用いて、第１ニューラルネットワークに、第１画像５１中の全画素に対して用いる変換行列Ｈであって第１画像５１を第２画像５２に変換する変換行列Ｈを出力することを学習させることにより、変換行列Ｈから生成される第１移動量画像６１を出力することを学習させてもよい。
【００６１】
なお、コンピュータは、動画像を構成する時間的に隣接する第１画像および第２画像の組を大量に用意している。つまり、コンピュータは、ステップＳ１１〜Ｓ１２を繰り返すことで大量の第１画像および第２画像の組を用いて、ニューラルネットワーク１０ｃを学習させることができる。
【００６２】
次に、コンピュータは、オプティカルフロー推定結果の出力処理を行う（Ｓ１３）。ここで、学習後のニューラルネットワーク１０ｃが図２を用いて説明したニューラルネットワーク１０ａになるとする。この場合、コンピュータは、ステップＳ１２において学習されたニューラルネットワーク１０ｃが出力する変換行列Ｈより生成される第１画像５１の各画素の所定時間後までの移動量を表現した第１移動量画像６１を、第１画像５１および第２画像５２の間の動きの推定結果として出力する。上述したように、この第１移動量画像６１は第１画像５１と第２画像との間の動きを表現したオプティカルフローと捉えることができるからである。つまり、コンピュータは、学習後のニューラルネットワーク１０ｃにオプティカルフロー推定結果を出力させることができる。
【００６３】
一方、学習後のニューラルネットワーク１０ｃが図４を用いて説明したニューラルネットワーク１０ｂになるとする。この場合、コンピュータは、ステップＳ１２において学習されたニューラルネットワーク１０ｃが出力する第２移動量画像６２を、第１画像５１および第２画像５２の間の動きの推定結果として出力する。上述したように、この第２移動量画像６２は第１画像５１と第２画像との間の動きを表現したオプティカルフローと捉えることができるからである。つまり、コンピュータは、学習後のニューラルネットワーク１０ｃにオプティカルフロー推定結果を出力させることができる。
【００６４】
［学習方法の詳細］
以下、図７に示すステップＳ１２の詳細処理について説明する。
【００６５】
＜ニューラルネットワーク１０ｃの構成＞
図８は、実施の形態の学習処理で用いられるニューラルネットワーク１０ｃの構成の一例を示す図である。図８には、学習後のニューラルネットワーク１０ｃが図４を用いて説明したニューラルネットワーク１０ｂになるとした場合のニューラルネットワーク１０ｃの構成が示されている。なお、図４と同様の要素には同一の符号を付しており、詳細な説明は省略する。
【００６６】
図８に示すニューラルネットワーク１０ｃは、Ｈ−ｎｅｔ１１ｃと、ＳＴＬＨ１２とＦ−ｎｅｔ１３ｃと、ＳＴＬＦ１４と、第１誤差算出部１５と、第２誤差算出部１６とを備える。
【００６７】
Ｈ−ｎｅｔ１１ｃは、学習済みでない重みを有する点を除けば、Ｈ−ｎｅｔ１１と同じである。
【００６８】
ＳＴＬＨ１２は、Ｈ−ｎｅｔ１１ｃより出力された変換行列Ｈを用いて、第１画像５１の各画素の所定時間後までの第１移動量を表現した第１移動量画像６１ｃを、第１画像５１および第２画像５２の間の動きの推定結果として出力する。つまり、第１移動量画像６１ｃは、学習済みでないＨ−ｎｅｔ１１ｃが出力した変換行列Ｈを用いて生成される。
【００６９】
また、ＳＴＬＨ１２は、Ｈ−ｎｅｔ１１ｃより出力された変換行列Ｈを用いて第１画像５１を変換した画像であって第２画像５２と推定する画像である第１推定画像６３ｃを出力する。つまり、ＳＴＬＨ１２は、さらに、第１画像５１が入力されることで、Ｈ−ｎｅｔ１１ｃより出力された変換行列Ｈから、第２画像５２と推定する第１推定画像６３ｃを生成して出力する。
【００７０】
Ｆ−ｎｅｔ１３ｃは、学習済みでない重みを有する点を除けば、Ｆ−ｎｅｔ１３と同じである。つまり、Ｆ−ｎｅｔ１３ｃは、第１移動量画像６１ｃを用いて、第２移動量画像６２ｃを生成して出力する。
【００７１】
ＳＴＬＦ１４は、ＳＴＬＨ１２と同様に、ＳＴＮで構成された空間変換層である。ＳＴＬＦ１４は、Ｆ−ｎｅｔ１３ｃより出力された第２移動量画像６２ｃを用いて、第２画像５２と推定する画像である第２推定画像６４ｃを生成して出力する。
【００７２】
第１誤差算出部１５は、第１推定画像６３ｃと第２画像５２との誤差である第１誤差を算出する。
【００７３】
第２誤差算出部１６は、第２推定画像６４ｃと第２画像５２との誤差である第２誤差を算出する。
【００７４】
＜ステップＳ１２の詳細処理＞
図９は、図７に示すステップＳ１２の詳細処理の一例を示すフローチャートである。図９では、一例として、図８に示したニューラルネットワーク１０ｃを用いてステップＳ１２の学習処理を行うとして説明する。
【００７５】
ステップＳ１２において、コンピュータは、まず、ニューラルネットワーク１０ｃに変換行列Ｈと第２移動量画像６２ｃとを出力させる（Ｓ１２１）。より具体的には、コンピュータは、Ｈ−ｎｅｔ１１ｃに、第１画像５１中の全画素に対して用いる変換行列Ｈであって第１画像５１を第２画像５２に変換する変換行列Ｈを出力させる。これとともに、コンピュータは、Ｆ−ｎｅｔ１３ｃに、第１画像５１、第２画像５２および変換行列Ｈから生成される第１移動量を表現した第１移動量画像６１ｃを用いて、第１画像５１の各画素の所定時間後までの第２移動量を表現した第２移動量画像６２ｃを出力させる。
【００７６】
次に、コンピュータは、ステップＳ１２１で出力させた変換行列Ｈに基づき算出される第１誤差、および、ステップＳ１２１で出力させた第２移動量画像６２ｃに基づき算出される第２誤差を結合した結合誤差を算出する（Ｓ１２２）。より具体的には、コンピュータは、第１画像５１とステップＳ１２１で出力させた変換行列Ｈとにより生成される、第１画像５１から所定時間後の画像である第１推定画像６３ｃと第２画像５２との誤差である第１誤差を算出する。また、コンピュータは、第１画像５１とステップＳ１２１で出力させた第２移動量画像６２ｃとにより生成される、第１画像５１から所定時間後の画像である第２推定画像６４ｃと第２画像５２との誤差である第２誤差を算出する。そして、コンピュータは、第１誤差と第２誤差とを結合した結合誤差を算出する。
【００７７】
ここで、第１誤差、第２誤差および結合誤差は、例えばCharbonnier lossを用いて算出される。
【００７８】
次に、コンピュータは、ステップＳ１２２において算出した結合誤差が最小であるか判定する（Ｓ１２３）。
【００７９】
ステップＳ１２３において結合誤差が最小でない場合（Ｓ１２３でＮｏ）、その差が小さくなるようにＨ−ｎｅｔ１１ｃとＦ−ｎｅｔ１３ｃとの重みを更新する（Ｓ１２４）。そして、コンピュータは、ステップＳ１２１の処理から繰り返す回帰処理を行う。
【００８０】
一方、ステップＳ１２３において結合誤差が最小である場合（Ｓ１２３でＹｅｓ）、結合誤差が最小になったときのＨ−ｎｅｔ１１ｃとＦ−ｎｅｔ１３ｃの重みを学習済みの重みとして決定する（Ｓ１２４）。より具体的には、Ｓ１２２ｄｅ算出した結合誤差が最小になった場合、結合誤差が最小になったＨ−ｎｅｔ１１ｃおよびＦ−ｎｅｔ１３ｃの重みを、学習させたEgo-motion Network１１ａおよびＦ−ｎｅｔ１３の重みとして決定する。なお、結合誤差が最小とは、回帰処理の上限回数を決めた場合に、上限回数までの回帰処理における結合誤差の最小を意味するとしてもよい。
【００８１】
図１０は、図７に示すステップＳ１２の詳細処理を概念的に示す図である。図１０も、図８に示したニューラルネットワーク１０ｃを用いて学習処理した場合の一例が示されている。
【００８２】
図１０に示すように、ニューラルネットワーク１０ｃに、第１画像５１および第２画像５２として、時間的に連続する車載カメラの画像であるフレームＸｔ、Ｘｔ＋１を入力したとする。この場合、コンピュータは、ニューラルネットワーク１０ｃを構成するEgo-motion Network１１ａに、第１移動量画像６１ｃとして、フレームＸｔの各画素の所定時間後までの移動量を表現した移動量画像ＦＨＣをＦ−ｎｅｔ１３ｃに出力させる。ここで、移動量画像ＦＨｃはフレームＸｔ、Ｘｔ＋１間の動きを色の濃淡で示している。
【００８３】
また、コンピュータは、Ego-motion Network１１ａに、Ｈ−ｎｅｔ１１ｃより出力させた変換行列Ｈを用いて、フレームＸｔを変換した画像であって第２画像５２と推定する画像である第１推定画像ＥＨｔ＋１を出力させる。
【００８４】
また、コンピュータは、Ego-motion Network１１ａから出力された移動量画像ＦＨｃとフレームＸｔ、Ｘｔ＋１とをＦ−ｎｅｔ１３ｃに入力する。そして、コンピュータは、Ｆ−ｎｅｔ１３ｃにフレームＸｔの各画素の所定時間後までの移動量を表現した移動量画像Ｆｃを、フレームＸｔ、Ｘｔ＋１の間の動きの推定結果として出力させる。
【００８５】
また、コンピュータは、ＳＴＬＦ１４に、Ｆ−ｎｅｔ１３ｃより出力された移動量画像Ｆｃを用いて、第２画像５２と推定する画像である第２推定画像ＥＦｔ＋１を生成し出力させる。
【００８６】
また、コンピュータは、第１誤差算出部１５に第１推定画像ＥＨｔ＋１と第２画像５２との誤差である第１誤差を算出させ、かつ、第２誤差算出部１６に、第２推定画像ＥＦｔ＋１と第２画像５２との誤差である第２誤差を算出する。そして、コンピュータは、第１誤差、および第２誤差を結合した結合誤差を最小にするように、ニューラルネットワーク１０ｃに重みを学習させる。
【００８７】
ここで、第１誤差および第２誤差を評価するために、例えば（式１）で示されるCharbonnier lossの誤差関数を用いればよい。また、結合誤差は、例えば（式２）のように、第１誤差および第２誤差を重み付けすることによって評価すればよい。なお、（式１）および（式２）に示される誤差関数は一例である。また、（式１）において、εは、例えば０．１などの正則化定数であり、過学習等を抑制するための追加される項である。α、βは重み付けに用いられる。
【００８８】
【数１】
2018156640.tif 000003
【００８９】
【数２】
2018156640.tif 000004
【００９０】
図１０からわかるように、ニューラルネットワーク１０ｃにオプティカルフロー推定をさせるために、本開示の学習方法を行う際、学習のために入力されるフレームＸｔ、Ｘｔ＋１のうちのフレームXｔ＋１を教師データの役割を担わせることができる。つまり、本開示の学習方法では、学習のためにフレームＸｔと共に入力されるフレームXｔ＋１以外を教師データとする必要がないので、別途正解データを用意しておく必要がないのがわかる。
【００９１】
［効果等］
ニューラルネットワークを用いたオプティカルフローの推定は、最も活発な研究分野の一つである。しかし、車載カメラで撮影された動画像を構成する時間的に隣接する２つの画像間の密なモーションフローを推定することは困難であり、ニューラルネットワークに、オプティカルフローの推定を精度よく短時間に行わせることは難しいとされてきた。
【００９２】
これは主に２つの要因によるものと分析される。１つ目の要因は、オプティカルフローの推定を行うためには自動車の動き（Ego-motionとも呼ばれる）だけではない影響を加味する必要があることである。例えば都市で撮影されたシーン画像は、建物など主に静止した物体から構成され、シーン画像の平面内の動きのパターンは車載カメラの動きと強く相関する。しかし、当該シーン画像は、静止した物体のみで構成されておらず、他の自動車または歩行者など、静止した物体の周囲の物体は車載カメラの動きとは独立して動く。したがって、オプティカルフローの推定結果を信頼できるものにするには、上記のEgo-motionと周囲の物体の動きとの２つのタイプの動きを正しく推定する必要がある。
【００９３】
２つ目の要因は、オプティカルフローの推定を行わせるために、正解情報として画素レベルで正確なオプティカルフロー情報を含むデータを収集する必要があることである。上述したが、このような正解情報を含むデータを収集するのは困難である。一般的に公開されている自動車用データセットは、正解情報としてのオプティカルフロー情報が欠けているからである。
【００９４】
１つ目の要因に対しては、本実施の形態の学習方法では、Ego-motionと周囲物体の動きとの２つのタイプの動きのうち、Ego-motionを第１ニューラルネットワークであるＨ−ｎｅｔで推定させ、周囲物体の動きを第２ニューラルネットワークであるＦ−ｎｅｔで推定させることで対処した。つまり、連続した２つ画像間を、時間的に前の画像が時間的に後の画像に、画素レベルで射影幾何変換されていると解し、射影幾何学変換する変換行列の要素を出力することをＨ−ｎｅｔに学習させる。そして、Ｈ−ｎｅｔにより出力された変換行列を上述したＳＴＬで第１移動量画像に変換することで、Ego-motionを示すオプティカルフローの推定をすることができる。なお、射影幾何学変換の空間的制約から、周囲物体の動きを変換行列に反映できないことから、上述したように、第１移動量画像は、連続した２つ画像間の全体の動きの推定結果を示すが、画像中の個々のオブジェクトの詳細な動きの推定までは示していない。
つまり、第１移動量画像は、連続した２つ画像間のオプティカルフローの推定を粗く行ったことに該当する。
【００９５】
そして、第１移動量画像を教師データとして担わせつつ連続した２つ画像間とから、第１移動量画像に周囲物体の動きをさらに反映させた第２移動量画像を出力することをＦ−ｎｅｔに学習させる。つまり、第２移動量画像は、第１移動量画像の精緻化（refine）を行ったことに該当する。
【００９６】
このようにして、本実施の形態の学習方法によれば、連続した２つ画像間のオプティカルフローの推定を学習させることができる。
【００９７】
２つ目の要因に対して、本実施の形態の学習方法では、学習のために入力される時間的に隣接する２つの画像のうちの時間的に後の画像を教師データとして用いるなどにより自己学習させて対処した。つまり、本実施の形態の学習方法では、オプティカルフローの推定の学習に、予め用意された教師データを必要としないように対処した。
【００９８】
より具体的には、第１ニューラルネットワークであるＨ−ｎｅｔ１１に第１画像５１を第２画像５２に変換する変換行列の出力を学習させることにより、学習のために共に入力される第２画像に教師データの役割を担わせることができる。また、第２ニューラルネットワークであるＦ−ｎｅｔ１３に、Ｈ−ｎｅｔ１１が出力する変換行列から生成された第１移動量画像６１を教師データの役割を担わせて学習させることができる。つまり、上述したＨ−ｎｅｔ１１のみ、またはＨ−ｎｅｔ１１およびＦ−ｎｅｔ１３を構成するニューラルネットワークを用いる本実施の形態の学習方法によれば、学習のために入力される時間的に隣接する２つの画像のみを用いて、自己学習することができる。
【００９９】
このようにして、本実施の形態の学習方法によれば、たＨ−ｎｅｔ１１のみ、またはＨ−ｎｅｔ１１およびＦ−ｎｅｔ１３を構成するニューラルネットワークに対して、教師データなしでオプティカルフローの推定を学習させることができる。
【０１００】
（実施例）
以下、本開示の推定器１０に用いられるニューラルネットワークの有効性について検証したので、その実験結果を実施例として説明する。
【０１０１】
上述したように、推定器１０に用いられるニューラルネットワークは、学習のために入力される時間的に隣接する２つの画像のうちの時間的に後の画像を教師データとして用いるなどにより自己学習することができる。つまり、オプティカルフローの推定に用意された正解データである教師データを必要としない。このため、推定器１０に用いられるニューラルネットワークに学習させる際には、Kitti rawまたはDR（eye）VEなどの大規模な自動車データセットを使用することができる。ここで、Kitti raw Data setは、カールスルーエ市で取得した４４０００枚の画像を含んでいるし、DR（eye）VE Data baseは、高速道路、繁華街または田舎などにおいて、昼と夜の間、および、太陽と、雨または大きなシーン変動との間の遷移による画像状態の急激な変化を含む、５５５０００枚の画像を含んでいる。
【０１０２】
一方、Kitti Flowは、正解情報を含む実際の自動車用のデータセットの最大規模として知られているが、レーニングとテストの2つのバージョンで800個以下の正解情報付きペア画像の組み合わせに過ぎない。なお、近年では、Kittiから影響を受けた合成自動車データセットとしてVirtual Kittiがリリースされている。しかし、このVirtual Kitti Data setでも、オプティカルフロー、セマンティックセグメンテーション、奥行きおよびオブジェクトのバウンディングボックス、並びにオブジェクトバウンディングボックスにおいて、完全な正解情報が付けられた21,000以上のフレームを含むに留まる。
【０１０３】
以下では、Kitti raw Data set、Virtual Kitti Data set またはDR（eye）VE Data baseを用いて推定器１０に用いられるニューラルネットワークの性能を評価したので、その結果について説明する。なお、以下の実験において、Kitti raw Data set、Virtual Kitti Data set またはDR（eye）VE Data baseの個々のデータセットに対して微調整を行わずに用いた。
【０１０４】
＜実験条件＞
本実験では、学習率を１０−４、ミニバッチサイズを１６、β１を０．５に設定し、それ以外のパラメータをデフォルト（初期値）としてAdam optimizerを用いて学習を行った。また、学習は、それぞれ１０００個のミニバッチで構成された２５０epoch後に終了するとした。また、H-netおよびF-netの第１誤差および第２誤差を評価するため結合誤差は、上述した（式２）を用いて、αを０．５、βを１とした。
【０１０５】
＜実験結果＞
図１１は、本開示の学習方法の学習効果を示す図である。なお、図１１では最初の５０個のミニバッチ分はプロットスケールをより読みやすくするために省略している。また、図１１において、細線のデータは、比較例であり、Virtual Kitti Data setの正解データを教師データとして用いて学習させた場合のバッチ数とAverage Point Errorとの関係を示している。一方、太線のデータは、本開示のニューラルネットワークをVirtual Kitti Data setを用いて教師なしで学習させた場合のバッチ数とReconstruction Errorとの関係を示している。Reconstruction Errorは、（式２）の結合誤差の値に該当する。
【０１０６】
図１１に示すように、本開示のニューラルネットワークは、比較例と比べて、バッチ数が少ないときには学習効果に差があるものの、バッチ数が５００程度以上になると同等になっているのがわかる。つまり、本開示の推定器１０に用いられるニューラルネットワーク１０ｃを、教師データなしで学習させた場合でも、十分なバッチ数すなわちデータセット数があれば、効果的な学習を行えるのがわかる。
【０１０７】
図１２は、Kitti raw Data setを用いて学習させた本開示のニューラルネットワークの評価結果を示す図である。図１２では、Ｈ−ｎｅｔおよびＦ−ｎｅｔを独立して例えば（式１）を最小化するように学習させたとき評価結果が示されている。また、図１２では、学習後のＨ−ｎｅｔおよびＦ−ｎｅｔを有する本開示のニューラルネットワーク１０ｃを、例えば（式２）を最小化するように学習させたとき評価結果がｊｏｉｎｔとして示されている。また、図１２において、Accuracy@5は、End Point Errorが５ピクセル未満のモーションベクトルの比率を意味し、値が高いほど性能が良い。APEはすべてのモーションベクトルのAverage Point Errorを意味し、低いほど性能が良い。なお、Time（ｓ）は、NVIDIA GTX 1080 Ti GPUを使用して計算された実行時間を意味する。
【０１０８】
図１１に示すように、Ｆ−ｎｅｔは、Ｈ−ｎｅｔと比較して実行時間が略４倍遅く、精度を示すAccuracy@5およびAPEも悪いのがわかる。Ｆ−ｎｅｔは、上述したようなオートエンコーダの構成を有することから、独立した学習で高い性能を達成させるには、大量の正解情報を含むデータセットが必要であると考えられる。
【０１０９】
一方、上述した変換行列Ｈは、画像のワープ（変形などの変換）に用いることから、変換行列の出力を学習させるＨ−ｎｅｔでは、教師データがなくとも高い性能を示し、12 msの実行時間で変換行列の出力をすることができる。
【０１１０】
なお、本開示のニューラルネットワーク１０ｃに該当するｊｏｉｎｔでは、実行時間がＨ−ｎｅｔと比較して４倍以上遅く、Ｆ−ｎｅｔと比較しても遅いが、Accuracy@5がＦ−ｎｅｔ、Ｈ−ｎｅｔと比較して改善していることがわかる。APEも、Ｈ−ｎｅｔよりは低いがＦ−ｎｅｔよりも改善していることがわかる。
【０１１１】
これらから、実施の形態で説明したＨ−ｎｅｔを構成する本開示のニューラルネットワーク１０ａ、および、Ｆ−ｎｅｔ、Ｈ−ｎｅｔ構成する本開示のニューラルネットワーク１０ｂが有用であることがわかる。
【０１１２】
図１３は、Virtual Kitti Data setを用いて本開示の学習方法を行った場合の評価を示す別の図である。図１３には、比較例として、教師データを用いて学習された他の手法におけるモデルDeepFlow、EpicFlow、FlowNetv2、MRFlowの評価も示している。
【０１１３】
なお、Virtual Kitti Data setは、典型的な自動車の視点を取り入れながらも、他のデータセットとの違いがある。例えば、Virtual Kitti Data setは、コンピュータレンダリングされたシーンに典型的なアーティファクトが存在する。しかし、現時点では、Virtual Kitti Data setは、シーンをコンピュータグラフィックスでワーピング（変形）して得られた、自動車用の高密度な正解オプティカルフロー情報を提供する最大のデータセットである。そして、Virtual Kitti Data setは、LIDARベースの正解情報を有する他のデータセットとは対照的に、正確であることが保証されている。
【０１１４】
図１３に示すように、Ｏｕｒｓ（またはＯｕｒ＋ＦＴ）すなわち本開示の学習方法は、教師データを用いて学習した他のモデルよりも実行時間が短く、精度を示すAccuracy@5およびAPEも、他のモデルよりと同等以上であるのがわかる。具体的には、本開示の学習方法は、他のモデルと比較して最良のAPE結果を得ている上で、最速の他のモデルよりも2.5倍高速であるのがわかる。
【０１１５】
図１４は、DR（eye）VE Data baseを用いて本開示の学習方法の環境条件の影響を評価を示す図である。図１４には、比較例として、教師データを用いて学習された他の手法におけるモデルDeepFlow、EpicFlowの評価も示している。DR（eye）VE Data baseでは、正解情報が用意されていないため、オプティカルフローを推定した推定画像のPSNR（Peak Signal to Noise Ratio）を測定し、PSNRを環境条件の影響を評価指標とした。
【０１１６】
図１４に示すように、Ｏｕｒｓすなわち本開示の学習方法は、夜間の環境、雨中の環境、日中の環境のいずれの場合でも、教師データを用いて学習した他のモデルよりもPSNRが高いのがわかる。例えば、本開示の学習方法は、他のモデルと比較して夜間の環境でもPSNRが高いことを示している。これは、本開示の学習方法により学習後の推定器１０に出力させたオプティカルフローを推定した推定画像の強度が低いのがわかり、当該推定画像が効果的に低い誤差であるのがわかる。また、本実験では、図１４に示すように、環境条件が本開示の学習方法により学習させた推定器１０のオプティカルフロー推定には大きな影響を与えないことがわかる。
【０１１７】
以上のように、本開示に係る学習方法およびそのプログラムによれば、ニューラルネットワークに教師なしでオプティカルフローの推定を学習させることができる。そして、本開示に係る学習方法により学習させた推定器は、オプティカルフローの推定を、リアルタイムに近い短時間で行うことができ、かつ、精度よく行うことができる。したがって、本開示に係る学習方法およびそのプログラムを、ADASまたは自動運転など、リアルタイムかつ精度よく路上にある複数のオブジェクトを検出または追跡をすることが要求されるシステムに十分に適用できる。
【０１１８】
（他の実施態様の可能性）
以上、実施の形態において本開示の学習方法について説明したが、各処理が実施される主体や装置に関しては特に限定しない。ローカルに配置された特定の装置内に組み込まれたプロセッサーなど（以下に説明）によって処理されてもよい。またローカルの装置と異なる場所に配置されているクラウドサーバなどによって処理されてもよい。
【０１１９】
なお、本開示は、上記実施の形態に限定されるものではない。例えば、本明細書において記載した構成要素を任意に組み合わせて、また、構成要素のいくつかを除外して実現される別の実施の形態を本開示の実施の形態としてもよい。また、上記実施の形態に対して本開示の主旨、すなわち、請求の範囲に記載される文言が示す意味を逸脱しない範囲で当業者が思いつく各種変形を施して得られる変形例も本開示に含まれる。
【０１２０】
また、本開示は、さらに、以下のような場合も含まれる。
【０１２１】
（１）上記の装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０１２２】
（２）上記の装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０１２３】
（３）上記の装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【０１２４】
（４）また、本開示は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０１２５】
（５）また、本開示は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【０１２６】
また、本開示は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０１２７】
また、本開示は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０１２８】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【産業上の利用可能性】
【０１２９】
本開示は、ニューラルネットワークを用いた学習方法およびプログラムに利用でき、特にADASおよび自動運転など、リアルタイムかつ精度よく路上にある複数のオブジェクトを検出または追跡をすることが要求されるシステムに利用できる。
【符号の説明】
【０１３０】
１０    推定器
１０ａ、１０ｂ、１０ｃ    ニューラルネットワーク
１１、１１ｃ    Ｈ−ｎｅｔ
１１ａ    Ego-motion Network
１２    ＳＴＬＨ
１３、１３ｃ    Ｆ−ｎｅｔ
１４    ＳＴＬＦ
１５    第１誤差算出部
１６    第２誤差算出部
５１    第１画像
５２    第２画像
６１、６１ｃ    第１移動量画像
６２、６２ｃ    第２移動量画像
６３ｃ    第１推定画像
６４ｃ    第２推定画像
１１１、１１２、１１３、１１４、１１５、１１６、１４１    Ｃｏｎｖ
１１７、１１８、１１９    ＦＣ
１３１、１３２、１３３、１３４、１３５  Ｃ−ｂｌｏｃｋ
１３６、１３７、１３８、１３９、１４０  Ｔ−ｂｌｏｃｋ
【図１】
2018156640.tif 000005
【図２】
2018156640.tif 000006
【図３】
2018156640.tif 000007
【図４】
2018156640.tif 000008
【図５】
2018156640.tif 000009
【図６】
2018156640.tif 000010
【図７】
2018156640.tif 000011
【図８】
2018156640.tif 000012
【図９】
2018156640.tif 000013
【図１０】
2018156640.tif 000014
【図１１】
2018156640.tif 000015
【図１２】
2018156640.tif 000016
【図１３】
2018156640.tif 000017
【図１４】
2018156640.tif 000018