IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ 株式会社豊田中央研究所の特許一覧

特開2022-160144学習装置、学習方法、及び学習プログラム
<>
  • 特開-学習装置、学習方法、及び学習プログラム 図1
  • 特開-学習装置、学習方法、及び学習プログラム 図2
  • 特開-学習装置、学習方法、及び学習プログラム 図3
  • 特開-学習装置、学習方法、及び学習プログラム 図4
  • 特開-学習装置、学習方法、及び学習プログラム 図5
  • 特開-学習装置、学習方法、及び学習プログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022160144
(43)【公開日】2022-10-19
(54)【発明の名称】学習装置、学習方法、及び学習プログラム
(51)【国際特許分類】
   G06N 3/08 20060101AFI20221012BHJP
【FI】
G06N3/08
【審査請求】有
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021064707
(22)【出願日】2021-04-06
(71)【出願人】
【識別番号】000003609
【氏名又は名称】株式会社豊田中央研究所
(74)【代理人】
【識別番号】110001519
【氏名又は名称】特許業務法人太陽国際特許事務所
(72)【発明者】
【氏名】廣瀬 徳晃
(72)【発明者】
【氏名】田口 峻
(57)【要約】
【課題】シミュレータの観測量に対してだけでなく、実環境の観測量に対しても同様の性能を発揮するようにニューラルネットワークを学習することができる学習装置、学習方法、及び学習プログラムを提供する。
【解決手段】学習装置10は、シミュレータにより生成された観測量をニューラルネットワークに入力して得られる第1特徴量と、実環境から得られた観測量をニューラルネットワークに入力して得られる第2特徴量とを取得する取得部11Aと、第1特徴量と第2特徴量との差を含む評価関数を用いて、ニューラルネットワークを学習する学習部11Bと、を備える。
【選択図】図2
【特許請求の範囲】
【請求項1】
ニューラルネットワークの学習装置であって、
シミュレータにより生成された観測量を前記ニューラルネットワークに入力して得られる第1特徴量と、実環境から得られた観測量を前記ニューラルネットワークに入力して得られる第2特徴量とを取得する取得部と、
前記第1特徴量と前記第2特徴量との差を含む評価関数を用いて、前記ニューラルネットワークを学習する学習部と、
を備えた学習装置。
【請求項2】
前記実環境で動作する物体の複数の位置姿勢候補の各々に対応して、前記シミュレータを用いて複数の観測量を生成する生成部と、
前記生成部により生成された複数の観測量のうち、前記実環境の前記物体から得られた観測量との類似度が最も高い観測量を、前記ニューラルネットワークに入力する前記シミュレータの観測量として決定する決定部と、
を更に備えた
請求項1に記載の学習装置。
【請求項3】
前記複数の位置姿勢候補は、前記実環境で前記物体が観測量を収集する際に自己位置を推定した結果から得られる
請求項2に記載の学習装置。
【請求項4】
前記シミュレータにより生成された観測量は、前記シミュレータにより生成された画像として表され、
前記実環境から得られた観測量は、前記実環境から得られた画像として表される
請求項1~請求項3の何れか1項に記載の学習装置。
【請求項5】
前記シミュレータにより生成された観測量は、前記シミュレータにより生成された画像及び当該画像の被写体までの距離を表す深度として表され、
前記実環境から得られた観測量は、前記実環境から得られた画像及び当該画像の被写体までの距離を表す深度として表される
請求項1~請求項3の何れか1項に記載の学習装置。
【請求項6】
ニューラルネットワークの学習装置が実行する学習方法であって、
シミュレータにより生成された観測量を前記ニューラルネットワークに入力して得られる第1特徴量と、実環境から得られた観測量を前記ニューラルネットワークに入力して得られる第2特徴量とを取得し、
前記第1特徴量と前記第2特徴量との差を含む評価関数を用いて、前記ニューラルネットワークを学習する、
学習方法。
【請求項7】
ニューラルネットワークの学習プログラムであって、
コンピュータを、
シミュレータにより生成された観測量を前記ニューラルネットワークに入力して得られる第1特徴量と、実環境から得られた観測量を前記ニューラルネットワークに入力して得られる第2特徴量とを取得する取得部、及び、
前記第1特徴量と前記第2特徴量との差を含む評価関数を用いて、前記ニューラルネットワークを学習する学習部、
として機能させるための学習プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法、及び学習プログラムに関する。
【背景技術】
【0002】
例えば、非特許文献1には、シミュレータ上でロボットアームを用いたマニピュレーションタスクを実行する技術が記載されている。この技術では、箱の中の目標オブジェクトを取り出すことをタスクとしており、目標オブジェクトは、画像として与えられる。また、ロボットの観測量も画像として与えられる。この技術では、シミュレータで学習されたニューラルネットワークを実環境で動作させるために、シミュレータで生成された画像の色味が変化した場合に、ニューラルネットワークの特徴量の変化が小さくなるように学習している。具体的には、シミュレータの画像においてランダムにRGBの数値を変更し、変更前後の画像をニューラルネットワークに入力し、その特徴間の誤差が小さくなるように学習する。
【0003】
また、非特許文献2には、画像のみを用いたナビゲーションのための制御則を、人がロボットをテレオペレーションして収集したデータから学習する技術が記載されている。この技術では、目標ゴール、及びロボットの観測量は共に画像で与えられ、ロボット自身のカメラの画像が目標ゴールと一致するための制御入力(併進速度、旋回角速度)を出力し、学習する際に予測画像を利用することを特徴としている。この技術では、実環境だけでなく、シミュレータでも仮想的なロボットをテレオペレーションすることでデータを収集し、これらをランダムに混ぜて学習することで、実環境でのナビゲーション性能を向上させている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Yasuhiro Fujita, et al. "Distributed Reinforcement Learning of Targeted Grasping with Active Vision for Mobile Manipulators" IROS2020
【非特許文献2】Noriaki Hirose, et al. "Deep visual MPC-policy learning for navigation" IEEE Robotics and Automation Letters, Vol.4, No.4, p.3184-3191, 2020
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1に記載の技術では、画像の色味(RGB)を一様に変化させるのみであるため、 その画像変化が実画像とシミュレータ画像との間の違いを表現できない状況では機能しない。また、色味を変化させたときの特徴差がでないニューラルネットワークになるため、例えば、複数の異なる色で同一形状のオブジェクトが入った箱の中から、特定の色のオブジェクトを取り出すことは難しい。
【0006】
一方、非特許文献2に記載の技術では、実環境で容易にデータセット(特に真値)を集められる場合は、シミュレータのデータと実環境のデータとをランダムに混ぜ合わせることで学習することができる。ただし、実環境で自律移動する際には、目標画像を事前に収集しなければならない。このため、その解決策として、シミュレータの画像を目標画像とすることが考えられる。しかしながら、目標画像をシミュレータの画像、現在のロボットの画像を実環境の画像として学習していない、すなわち、学習では両方ともシミュレータの画像又は両方とも実環境の画像を用いるため、性能が劣化するという問題がある。
【0007】
つまり、主にシミュレータの観測量を用いて学習されたニューラルネットワークでは、実環境の観測量に対して同様の性能が発揮できない場合がある。
【0008】
本開示は、上記の事情に鑑みてなされたものであり、シミュレータの観測量に対してだけでなく、実環境の観測量に対しても同様の性能を発揮するようにニューラルネットワークを学習することができる学習装置、学習方法、及び学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために、第1態様に係る学習装置は、ニューラルネットワークの学習装置であって、シミュレータにより生成された観測量を前記ニューラルネットワークに入力して得られる第1特徴量と、実環境から得られた観測量を前記ニューラルネットワークに入力して得られる第2特徴量とを取得する取得部と、前記第1特徴量と前記第2特徴量との差を含む評価関数を用いて、前記ニューラルネットワークを学習する学習部と、を備える。
【0010】
また、第2態様に係る学習装置は、第1態様に係る学習装置において、前記実環境で動作する物体の複数の位置姿勢候補の各々に対応して、前記シミュレータを用いて複数の観測量を生成する生成部と、前記生成部により生成された複数の観測量のうち、前記実環境の前記物体から得られた観測量との類似度が最も高い観測量を、前記ニューラルネットワークに入力する前記シミュレータの観測量として決定する決定部と、を更に備える。
【0011】
また、第3態様に係る学習装置は、第2態様に係る学習装置において、前記複数の位置姿勢候補が、前記実環境で前記物体が観測量を収集する際に自己位置を推定した結果から得られる。
【0012】
また、第4態様に係る学習装置は、第1態様~第3態様の何れか1の態様に係る学習装置において、前記シミュレータにより生成された観測量が、前記シミュレータにより生成された画像として表され、前記実環境から得られた観測量が、前記実環境から得られた画像として表される。
【0013】
また、第5態様に係る学習装置は、第1態様~第3態様の何れか1の態様に係る学習装置において、前記シミュレータにより生成された観測量が、前記シミュレータにより生成された画像及び当該画像の被写体までの距離を表す深度として表され、前記実環境から得られた観測量が、前記実環境から得られた画像及び当該画像の被写体までの距離を表す深度として表される。
【0014】
更に、上記目的を達成するために、第6態様に係る学習方法は、ニューラルネットワークの学習装置が実行する学習方法であって、シミュレータにより生成された観測量を前記ニューラルネットワークに入力して得られる第1特徴量と、実環境から得られた観測量を前記ニューラルネットワークに入力して得られる第2特徴量とを取得し、前記第1特徴量と前記第2特徴量との差を含む評価関数を用いて、前記ニューラルネットワークを学習する。
【0015】
更に、上記目的を達成するために、第7態様に係る学習プログラムは、ニューラルネットワークの学習プログラムであって、コンピュータを、シミュレータにより生成された観測量を前記ニューラルネットワークに入力して得られる第1特徴量と、実環境から得られた観測量を前記ニューラルネットワークに入力して得られる第2特徴量とを取得する取得部、及び、前記第1特徴量と前記第2特徴量との差を含む評価関数を用いて、前記ニューラルネットワークを学習する学習部、として機能させる。
【発明の効果】
【0016】
本開示の技術によれば、シミュレータの観測量に対してだけでなく、実環境の観測量に対しても同様の性能を発揮するようにニューラルネットワークを学習することができる、という効果を有する。
【図面の簡単な説明】
【0017】
図1】第1の実施形態に係る学習システムの構成の一例を示すブロック図である。
図2】第1の実施形態に係る学習装置の機能的な構成の一例を示すブロック図である。
図3】実施形態に係るニューラルネットワークの一例を示す概念図である。
図4】第1の実施形態に係る学習プログラムによる処理の流れの一例を示すフローチャートである。
図5】第2の実施形態に係る学習装置の機能的な構成の一例を示すブロック図である。
図6】第2の実施形態に係る学習プログラムによる処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0018】
以下、図面を参照して、本開示の技術を実施するための形態の一例について詳細に説明する。なお、動作、作用、機能が同じ働きを担う構成要素及び処理には、全図面を通して同じ符合を付与し、重複する説明を適宜省略する場合がある。各図面は、本開示の技術を十分に理解できる程度に、概略的に示してあるに過ぎない。よって、本開示の技術は、図示例のみに限定されるものではない。また、本実施形態では、本開示の技術と直接的に関連しない構成や周知な構成については、説明を省略する場合がある。
【0019】
[第1の実施形態]
図1は、第1の実施形態に係る学習システム100の構成の一例を示すブロック図である。
【0020】
図1に示すように、本実施形態に係る学習システム100は、学習装置10と、シミュレータ20と、ロボット30と、を備えて構成される。
【0021】
シミュレータ20は、実環境でのロボット30の動作をシミュレートするシミュレータである。シミュレータ20は、例えば、公知のシミュレーションソフトウェアを用いて実現される。具体的に、シミュレータ20は、シミュレーションソフトウェアが予めインストールされた情報処理装置として実現してもよいし、学習装置10にシミュレーションソフトウェアをインストールして学習装置10と一体的に実現してもよい。
【0022】
ロボット30は、実環境で動作する物体の一例である。ロボット30には、センサ群及びカメラが設けられている。センサ群は、ロボット30(自機)の周囲の状況を把握するための各種のセンサにより構成されている。センサ群は、例えば、外部の所定範囲に探査波を送信するミリ波レーダと、少なくとも前方の所定範囲をスキャンするLIDAR(Light Detection and Ranging/Laser Imaging Detection and Ranging)と、を含んでいる。また、カメラは、自機の所定方向の所定範囲を撮影する。具体的に、カメラは、自機の全周囲に設けられており、自機の全周囲領域を撮影する。なお、実環境で動作する物体は、ロボット30に限定されるものではなく、例えば、自動運転車両等であってもよい。
【0023】
本実施形態に係る学習装置10には、例えば、サーバコンピュータ、パーソナルコンピュータ(PC:Personal Computer)等の汎用的なコンピュータ装置が適用される。
【0024】
学習装置10は、プロセッサ11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、入出力インターフェース(I/O)14と、記憶部15と、表示部16と、操作部17と、通信部18と、を備えている。なお、プロセッサ11は、一例として、CPU(Central Processing Unit)もしくはGPU(Graphics Processing Unit)、又は、CPU及びGPUの組み合わせであってもよい。
【0025】
プロセッサ11、ROM12、RAM13、及びI/O14は、バスを介して各々接続されている。I/O14には、記憶部15と、表示部16と、操作部17と、通信部18と、を含む各機能部が接続されている。これらの各機能部は、I/O14を介して、プロセッサ11と相互に通信可能とされる。
【0026】
プロセッサ11、ROM12、RAM13、及びI/O14によって制御部が構成される。制御部は、学習装置10の一部の動作を制御するサブ制御部として構成されてもよいし、学習装置10の全体の動作を制御するメイン制御部の一部として構成されてもよい。制御部の各ブロックの一部又は全部には、例えば、LSI(Large Scale Integration)等の集積回路又はIC(Integrated Circuit)チップセットが用いられる。上記各ブロックに個別の回路を用いてもよいし、一部又は全部を集積した回路を用いてもよい。上記各ブロック同士が一体として設けられてもよいし、一部のブロックが別に設けられてもよい。また、上記各ブロックのそれぞれにおいて、その一部が別に設けられてもよい。制御部の集積化には、LSIに限らず、専用回路又は汎用プロセッサを用いてもよい。
【0027】
記憶部15としては、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等が用いられる。記憶部15には、本実施形態に係る学習プログラム15Aが記憶される。なお、この学習プログラム15Aは、ROM12に記憶されていてもよい。
【0028】
学習プログラム15Aは、例えば、学習装置10に予めインストールされていてもよい。学習プログラム15Aは、不揮発性の記憶媒体に記憶して、又はネットワークを介して配布して、学習装置10に適宜インストールすることで実現してもよい。なお、不揮発性の記憶媒体の例としては、CD-ROM(Compact Disc Read Only Memory)、光磁気ディスク、HDD、DVD-ROM(Digital Versatile Disc Read Only Memory)、フラッシュメモリ、メモリカード等が想定される。
【0029】
表示部16には、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(Electro Luminescence)ディスプレイ等が用いられる。表示部16は、タッチパネルを一体的に有していてもよい。操作部17には、例えば、キーボードやマウス等の操作入力用のデバイスが設けられている。表示部16及び操作部17は、学習装置10のユーザから各種の指示を受け付ける。表示部16は、ユーザから受け付けた指示に応じて実行された処理の結果や、処理に対する通知等の各種の情報を表示する。
【0030】
通信部18は、インターネット、LAN(Local Area Network)、WAN(Wide Area Network)等のネットワークに接続されており、他のPC等の外部機器との間でネットワークを介して通信が可能とされる。
【0031】
ところで、上述したように、主にシミュレータの観測量を用いて学習されたニューラルネットワークでは、実環境の観測量に対して同様の性能が発揮できない場合がある。
【0032】
このため、本実施形態に係る学習装置10のプロセッサ11は、記憶部15に記憶されている学習プログラム15AをRAM13に書き込んで実行することにより、図2に示す各部として機能する。
【0033】
図2は、第1の実施形態に係る学習装置10の機能的な構成の一例を示すブロック図である。
【0034】
図2に示すように、本実施形態に係る学習装置10のプロセッサ11は、取得部11A及び学習部11Bとして機能する。
【0035】
記憶部15には、学習装置10の機械学習により生成される学習モデルとしてニューラルネットワーク(Neural Network:NN)が記憶される。また、記憶部15には、ニューラルネットワークの学習に使用する学習用データとして、シミュレータ画像、実環境画像が記憶される。シミュレータ画像はシミュレータ20により生成された画像であり、実環境画像はロボット30のカメラによって実環境を撮影して得られた画像である。
【0036】
ここで、図3を参照して、本実施形態に係るニューラルネットワークの概要について説明する。
【0037】
図3は、本実施形態に係るニューラルネットワークの一例を示す概念図である。
【0038】
図3に示すニューラルネットワークは、入力層x、隠れ層(中間層とも称する)y、及び出力層zを有している。
【0039】
図3に示すニューラルネットワークは、説明を簡単化するために、最も単純な3層構成としているが、隠れ層yを2層以上とした多層構成としてもよい。また、出力層zのノード(ニューロンともいう。)を1つにしているが、複数のノードで構成してもよい。
【0040】
ここで、ニューラルネットワークに対して、入力が与えられたときの出力の計算は、入力から順に以下の式(1)を用いて行われる。なお、f(・)は活性化関数と呼ばれ、一例としてシグモイド関数等が用いられる。また、xは入力層xの入力、yは隠れ層yの出力、zは出力層zの出力、wij、uは重み係数である。これらの重み係数wij、uを変化させることで同じ入力に対して異なる出力が得られる。つまり、狙った出力が得られるように重み係数wij、uを更新させることで、各モデルの学習が行われる。
【0041】
・・・(1)
【0042】
取得部11Aは、シミュレータ20により生成された観測量をニューラルネットワークに入力して得られる第1特徴量と、実環境から得られた観測量をニューラルネットワークに入力して得られる第2特徴量とを取得する。但し、シミュレータ20により生成された観測量とは、例えば、上記のシミュレータ画像であり、実環境から得られた観測量とは、例えば、上記の実環境画像である。なお、観測量は、画像に限定されるものではなく、例えば、上述のLIDARから得られる点群データ等であってもよい。観測量は、画像及び深度であってもよい。なお、深度は、画像の被写体までの距離として表される。
【0043】
学習部11Bは、取得部11Aにより取得された、第1特徴量と第2特徴量との差を含む評価関数を用いて、ニューラルネットワークを学習する。
【0044】
本実施形態では、例えば、シミュレータ20でデータセット(入力データと真値)が得られるが、実環境では入力データしか収集できない場合に好適である。以下では、単眼深度推定、走行可否判断、及び、画像を用いた自律移動を例に挙げて具体的に説明する。
【0045】
[単眼深度推定]
単眼深度推定は、単眼カメラで撮影した画像から深度、つまり、画像の被写体までの距離を推定する技術であり、基本的に実環境で真値深度を得ることは難しい。一方、シミュレータ20では真値深度は容易に収集できるため、以下のニューラルネットワークを学習することが可能とされる。以下、説明を簡単にするために、活性化関数f(・)を単にニューラルネットワークと称する。
【0046】
sim=f(Isim
est=fdepth(Zsim
【0047】
ここで、Isimはシミュレータ20の画像を示し、Zsimはニューラルネットワークf(・)で抽出したシミュレータ画像Isimの特徴量(第1特徴量)を示す。Destは推定された深度を示し、fdepth(・)は深度を推定するニューラルネットワークを示す。通常、深度の真値Dgtと推定値Destとの誤差を最小とするように、f(・)及びfdepth(・)を学習するが、この場合、実環境画像Irealを入力した場合に推定性能が劣化する場合がある。そこで、本実施形態では、以下の式(2)に示す評価関数Lを導入する。
【0048】
L=(Dgt-Dest+q(Zsim-Zreal ・・・(2)
real=f(Ireal
【0049】
ここで、Zrealはニューラルネットワークf(・)で抽出した実環境画像Irealの特徴量(第2特徴量)を示す。qは重み係数を示す。上記式(2)において右辺第2項、つまり、第1特徴量Zsimと第2特徴量Zrealとの差を加えることで、第1特徴量Zsimと第2特徴量Zrealとの差が小さくなって、実環境画像Irealを入力しても性能を維持することができる。
【0050】
[走行可否判断]
単眼カメラで撮影した画像から機械学習で走行可否判断を行う場合、走行できたか、あるいは、走行できなかったか(障害物との衝突、もしくは障害物の落下)のデータを収集する必要がある。この場合、走行できないデータを実環境で収集することは危険を伴うため、望ましくない。一方、シミュレータ20では危険を伴わずにデータを集めることが可能である。このとき、走行可能確率Pestは次式によって推定されるとする。
【0051】
sim=f(Isim
est=ftrav(Zsim
【0052】
ここで、f(・)はシミュレータ画像Isimから第1特徴量Zsimを抽出するニューラルネットワークを示し、ftrav(・)は走行可能確率Pestを推定するニューラルネットワークを示す。通常、走行可能確率の真値pgt(走行可能の場合:1、走行不可の場合:0)との差が小さくなるように学習するが、この場合、上記単眼深度推定と同様に実環境画像Irealが入力された場合に性能が劣化する場合がある。そこで、本実施形態では、以下の式(3)に示す評価関数Lを導入する。
【0053】
L=(Pgt-Pest+q(Zsim-Zreal ・・・(3)
real=f(Ireal
【0054】
ここで、Zrealはニューラルネットワークf(・)で抽出した実環境画像Irealの特徴量(第2特徴量)を示す。qは重み係数を示す。上記式(3)において右辺第2項、つまり、第1特徴量Zsimと第2特徴量Zrealとの差を加えることで、第1特徴量Zsimと第2特徴量Zrealとの差が小さくなって、実環境画像Irealを入力しても性能を維持することができる。
【0055】
[画像を用いた自律移動]
まず、上述の非特許文献2を要約して、その手法の概要を説明する。制御則は、次式によって定められる。
【0056】
=f(I
=f(I
V=fnav(Z、Z
【0057】
ここで、Iは現在の画像を示し、Iは目標ゴールの画像を示す。Zは現在の画像Iからニューラルネットワークf(・)によって抽出された特徴量を示し、Zは目標ゴールの画像Iからニューラルネットワークf(・)によって抽出された特徴量を示す。
【0058】
なお、現在の画像I及び目標ゴールの画像Iは共にシミュレータ20もしくは実環境のデータセットからランダムに選択される。また、Vは制御入力のベクトルを示し、現在から未来にかけてnステップ分の制御入力を有する。fnav(・)は制御入力Vを出力するニューラルネットワークを示す。fnav(・)及びf(・)を学習する際には、次式に示すように、制御入力Vと現在の画像Iを入力として、制御入力Vで移動した場合に観測する画像を推定する。
【0059】
、・・・、I=fview(I、V)
【0060】
ここで、I、・・・、Iは、制御入力Vのnステップ分の制御入力で移動した場所で観測される画像の推定値を示す。上述の非特許文献2では、推定された画像Iと目標ゴールの画像Iとの差が小さくなるように、fnav(・)及びf(・)を学習する。この場合、目標ゴールの画像のみがシミュレータ20から与えられた場合に性能が劣化する問題が発生する。そこで、本実施形態では、以下の式(4)に示す評価関数Lを導入する。
【0061】
L=Σ(I-I+q{(Z-Zcx+(Z-Zgx} (4)
【0062】
但し、ZcxとZgxは、以下の式によって抽出される特徴量である。
【0063】
cx=f(Icx
gx=f(Igx
【0064】
ここで、画像Icx及び画像Igxは、画像I及び画像Iがシミュレータ20の画像である場合は同様の位置姿勢での実環境の画像とされる。つまり、特徴量Z及び特徴量Zが第1特徴量とされ、特徴量Zcx及び特徴量Zgxが第2特徴量とされる。また、画像Icx及び画像Igxは、画像I及び画像Iが実環境の画像である場合は同様の位置姿勢でのシミュレータ20の画像とされる。つまり、特徴量Z及び特徴量Zが第2特徴量とされ、特徴量Zcx及び特徴量Zgxが第1特徴量とされる。qは重み係数を示す。
【0065】
上述の[単眼深度推定]及び[走行可否判断]の例と同様に、上記式(4)において右辺第2項、つまり、第1特徴量Zと第2特徴量Zcxとの差、及び、第1特徴量Zと第2特徴量Zgxとの差を加えることで、これら第1特徴量Zと第2特徴量Zcxとの差、及び、第1特徴量Zと第2特徴量Zgxとの差が小さくなる。あるいは、第2特徴量Zと第1特徴量Zcxとの差、及び、第2特徴量Zと第1特徴量Zgxとの差を加えることで、これら第2特徴量Zと第1特徴量Zcxとの差、及び、第2特徴量Zと第1特徴量Zgxとの差が小さくなる。すなわち、シミュレータ20の画像から生成される特徴量と実環境の画像から生成される特徴量とが近くなるため、目標画像をシミュレータ20から与えても、良好な性能を得ることができる。
【0066】
上述の具体例はあくまで一例であり、様々なタスクに応用できることを述べておく。例えば、セマンティックセグメンテーション、自己位置推定等にも有効であることは容易に想像される。
【0067】
次に、図4を参照して、第1の実施形態に係る学習装置10の作用について説明する。
【0068】
図4は、第1の実施形態に係る学習プログラム15Aによる処理の流れの一例を示すフローチャートである。
【0069】
まず、学習装置10が学習処理の開始の指示を受け付けると、プロセッサ11が学習プログラム15Aを読み出して実行する。
【0070】
図4のステップS101では、プロセッサ11が、第1特徴量及び第2特徴量を取得する。第1特徴量は、シミュレータ20により生成された観測量の一例であるシミュレータ画像をニューラルネットワークに入力して得られる特徴量である。また、第2特徴量は、実環境から得られた観測量の一例である実環境画像をニューラルネットワークに入力して得られる特徴量である。
【0071】
ステップS102では、プロセッサ11が、ステップS101で取得された、第1特徴量と第2特徴量との差を含む評価関数を導出する。評価関数としては、タスクに応じて、例えば、上述の式(2)~式(4)のいずれかが適用される。
【0072】
ステップS103では、プロセッサ11が、ステップS102で導出した評価関数を用いて、シミュレータ20の第1特徴量と、実環境の第2特徴量との差が小さくなるように、ニューラルネットワークを学習し、本学習プログラム15Aによる一連の処理を終了する。
【0073】
このように本実施形態によれば、シミュレータから得られる観測量の特徴量と、実環境から得られる観測量の特徴量との差が小さくなるように、ニューラルネットワークが学習される。このため、主にシミュレータで学習されたニューラルネットワークが実環境でも同様の性能を発揮することができる。
【0074】
[第2の実施形態]
上記第1の実施形態で説明した学習方法をより精度良く機能させるためには、実環境画像Ireal及びシミュレータ画像Isimを取得したときのそれぞれの環境及び位置姿勢を一致させることが望ましい。環境は、例えば、実環境を撮影した結果を用いてシミュレータを構築する参考文献1に記載の方法を用いて対応すればよい。
【0075】
[参考文献1]
Fei Xia and et al., “Interactive Gibson Benchmark” IEEE Robotics and Automation Letters, 2020
【0076】
一方、位置姿勢を一致させることは困難である。本実施形態では、位置姿勢を一致させる形態について説明する。
【0077】
図5は、第2の実施形態に係る学習装置10Aの機能的な構成の一例を示すブロック図である。
【0078】
図5に示すように、本実施形態に係る学習装置10Aのプロセッサ11は、取得部11A、学習部11B、生成部11C、及び決定部11Dとして機能する。なお、上記第1の実施形態で説明した学習装置10が有する構成要素と同一の構成要素には同一の符号を付し、その繰り返しの説明は省略する。
【0079】
生成部11Cは、実環境で動作するロボット30の複数の位置姿勢候補の各々に対応して、シミュレータ20を用いて複数の観測量の一例である複数のシミュレータ画像を生成する。なお、複数の位置姿勢候補は、例えば、実環境でロボット30が実環境画像を収集する際に自己位置を推定した結果から得られる。
【0080】
決定部11Dは、生成部11Cにより生成された複数のシミュレータ画像のうち、実環境のロボット30から得られた実環境画像との類似度が最も高いシミュレータ画像を、ニューラルネットワークに入力するシミュレータ画像として決定する。
【0081】
次に、図6を参照して、シミュレータ20と実環境での位置姿勢が一致する画像を収集する方法を説明する。
【0082】
図6は、第2の実施形態に係る学習プログラム15Aによる処理の流れの一例を示すフローチャートである。
【0083】
まず、学習装置10が位置姿勢一致処理の開始の指示を受け付けると、プロセッサ11が学習プログラム15Aを読み出して実行する。
【0084】
図6のステップS111では、プロセッサ11が、ロボット30に備え付けられた内界センサ(例えば、LIDAR)を利用して、自己位置推定しながら、実環境画像Irealを収集する。自己位置は分布として推定される。推定される位置姿勢候補を、
【0085】
{Pi=1,・・・,N
【0086】
と表す。自己位置推定には、例えば、パーティクルフィルタが用いられる。パーティクルフィルタによって自己位置推定する場合には、そのときのパーティクルの位置姿勢を利用すれば良い。Nは候補の数である。
【0087】
ステップS112では、プロセッサ11が、ステップS111で推定した位置姿勢候補でのシミュレータ20での画像を生成する。生成するシミュレータ画像を、
【0088】
{Ii=1,・・・,N
【0089】
と表す。
【0090】
ステップS113では、プロセッサ11が、ステップS111で収集した実環境画像Irealと、ステップS112で生成したシミュレータ画像{Ii=1,・・・,Nとを比較して、その類似度{Si=1,・・・,Nを評価する。類似度の評価方法としては、例えば、ピクセル毎の誤差、SSIM(Structual Simlality)、Siamise Networkによる類似度推定、及びその組み合わせ等が考えられる。但し、本実施形態では、これらの類似度の評価方法に限定されるものではない。
【0091】
ステップS114では、プロセッサ11が、ステップS113で評価した類似度が最も高いシミュレータ画像Ii*を特定する。
【0092】
ステップS115では、プロセッサ11が、終了条件として、ステップS114で特定したシミュレータ画像Ii*の類似度が閾値以上か否かを判定する。シミュレータ画像Ii*の類似度が閾値以上であると判定した場合(肯定判定の場合)、ステップS116に移行し、シミュレータ画像Ii*の類似度が閾値未満であると判定した場合(否定判定の場合)、ステップS117に移行する。
【0093】
ステップS116では、プロセッサ11が、ステップS111で収集した実環境画像Irealと、ステップS114で特定したシミュレータ画像Ii*とを記憶部15に記憶し、本学習プログラム15Aによる一連の処理を終了する。つまり、十分高い類似度が得られた場合は、実環境画像Irealの位置姿勢で得られるシミュレータ画像Isimとして、最も類似度の高いシミュレータ画像Ii*を採用する。一方、十分高い類似度が得られない場合は再サンプリングに移行する。
【0094】
ステップS117では、プロセッサ11が、再サンプリングを実行し、ステップS112に移行し、処理を繰り返す。再サンプリングでは、実環境画像Irealの位置姿勢候補{P’i=1,・・・,Nが生成される。本実施形態では、再サンプリングの手法に依存しないが、例えば、パーティクルフィルタ、遺伝的アルゴリズムの方法等が適用される。
【0095】
本実施形態によれば、実環境で収集した全ての実環境画像に対して、それに対応するシミュレータのシミュレータ画像が得られる。ただし、類似度が十分高いシミュレータ画像を得られない場合は、そのシミュレータ画像を学習に利用しないという選択も可能であることを付記しておく。
【0096】
このように本実施形態によれば、実環境での位置姿勢とシミュレータでの位置姿勢とが一致した状態で、学習用データとしての実環境の観測量及びシミュレータの観測量が取得される。このため、ニューラルネットワークをより精度良く学習することが可能とされる。
【0097】
また、実環境で観測量を取得したときの位置姿勢を精度良く推定するために、実環境の位置姿勢の候補群から最適な位置姿勢(真値に近い位置姿勢)がオフライン最適化で定められる。このため、シミュレータの位置姿勢と実環境の位置姿勢との一致度を高めることができる。
【0098】
なお、上記各実施形態において、プロセッサとは広義的なプロセッサを指し、汎用的なプロセッサ(例えば、CPU:Central Processing Unit、等)や、専用のプロセッサ(例えば、GPU:Graphics Processing Unit、ASIC: Application Specific Integrated Circuit、FPGA:Field Programmable Gate Array、プログラマブル論理デバイス、等)を含むものである。
【0099】
また、上記各実施形態におけるプロセッサの動作は、1つのプロセッサによって成すのみでなく、物理的に離れた位置に存在する複数のプロセッサが協働して成すものであってもよい。また、プロセッサの各動作の順序は、上記各実施形態において記載した順序のみに限定されるものではなく、適宜変更してもよい。
【0100】
以上、実施形態に係る学習装置を例示して説明した。実施形態は、学習装置が備える各部の機能をコンピュータに実行させるためのプログラムの形態としてもよい。実施形態は、これらのプログラムを記憶したコンピュータが読み取り可能な非一時的記憶媒体の形態としてもよい。
【0101】
その他、上記実施形態で説明した学習装置の構成は、一例であり、主旨を逸脱しない範囲内において状況に応じて変更してもよい。
【0102】
また、上記実施形態で説明したプログラムの処理の流れも、一例であり、主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよい。
【0103】
また、上記実施形態では、プログラムを実行することにより、実施形態に係る処理がコンピュータを利用してソフトウェア構成により実現される場合について説明したが、これに限らない。実施形態は、例えば、ハードウェア構成や、ハードウェア構成とソフトウェア構成との組み合わせによって実現してもよい。
【符号の説明】
【0104】
10、10A 学習装置
11 プロセッサ
11A 取得部
11B 学習部
11C 生成部
11D 決定部
12 ROM
13 RAM
14 I/O
15 記憶部
15A 学習プログラム
16 表示部
17 操作部
18 通信部
20 シミュレータ
30 ロボット
100 学習システム
図1
図2
図3
図4
図5
図6