(57)【要約】  【課題】使用環境での学習データを効率的に収集することができる。  【解決手段】認識装置は、データが入力される第１のニューラルネットワークと、第１のニューラルネットワークと構造が異なるデータが入力される第２のニューラルネットワークと、第１のニューラルネットワークの第１の出力結果と、前記第２のニューラルネットワークの第２の出力結果とを比較する比較部と、第１の出力結果と第２の出力結果との比較結果が所定の基準以上異なったときのデータを、データを学習する上位システムに無線送信する通信部と、を有する。【選択図】図２
2018060268.tif 000002
【特許請求の範囲】
【請求項１】
データが入力される第１のニューラルネットワークと、
前記第１のニューラルネットワークと構造が異なる前記データが入力される第２のニューラルネットワークと、
前記第１のニューラルネットワークの第１の出力結果と、前記第２のニューラルネットワークの第２の出力結果とを比較する比較部と、
前記第１の出力結果と前記第２の出力結果との比較結果が所定の基準以上異なったときの前記データを、前記データを学習する上位システムに無線送信する通信部と、
を有することを特徴とする認識装置。
【請求項２】
請求項１に記載の認識装置であって、
前記第１のニューラルネットワークの構造および前記第２のニューラルネットワークの構造は、前記上位システムによって生成され、
前記通信部は、前記上位システムから、前記第１のニューラルネットワークの構造と前記第２のニューラルネットワークの構造とを受信する、
ことを特徴とする認識装置。
【請求項３】
請求項１に記載の認識装置であって、
前記第２のニューラルネットワークを所定の時間ごとに別の構造に変更するコントローラ、
をさらに有することを特徴とする認識装置。
【請求項４】
請求項３に記載の認識装置であって、
別の構造の前記第２のニューラルネットワークを記憶した記憶部、をさらに有し、
前記コントローラは、前記記憶部を参照して、前記第２のニューラルネットワークを別の構造に変更する、
ことを特徴とする認識装置。
【請求項５】
請求項１に記載の認識装置であって、
前記第２のニューラルネットワークは、各層の一部の構造が前記第１のニューラルネットワークと異なっている、
ことを特徴とする認識装置。
【請求項６】
請求項１に記載の認識装置であって、
前記第２のニューラルネットワークは、前記第１のニューラルネットワークに対し、一部の層方向の構造が異なっている、
ことを特徴とする認識装置。
【請求項７】
請求項１に記載の認識装置であって、
前記第２のニューラルネットワークは、前記第１のニューラルネットワークに対し、少なくとも１層の全体の構造が異なっている、
ことを特徴とする認識装置。
【請求項８】
請求項１に記載の認識装置であって、
前記第２のニューラルネットワークは、前記第１のニューラルネットワークの全体において構造が異なっている、
ことを特徴とする認識装置。
【請求項９】
請求項１に記載の認識装置であって、
前記第１のニューラルネットワークおよび前記第２のニューラルネットワークは、プログラマブルロジックデバイスに形成される、
ことを特徴とする認識装置。
【請求項１０】
ネットワークを介して、ニューラルネットワークの構造を受信する受信部と、データが入力される入力部と、前記ニューラルネットワークによって、前記データから特徴データを抽出する抽出部と、前記特徴データを、前記ネットワークを介して送信する第１の送信部と、を有する認識装置と、
前記特徴データを、前記ネットワークを介して受信し、記憶する記憶部と、
前記記憶部に記憶された前記特徴データに基づいて、前記ニューラルネットワークの構造を生成する生成部と、前記ニューラルネットワークの構造を、前記ネットワークを介して前記認識装置に送信する第２の送信部と、を有する学習装置と、
を有することを特徴とする学習システム。
【請求項１１】
学習によってニューラルネットワークの構造を生成する上位システムから、ネットワークを介して、前記ニューラルネットワークの構造を受信する受信部と、
データが入力される入力部と、
前記ニューラルネットワークによって、前記データから特徴データを抽出する抽出部と、
前記特徴データを、前記ネットワークを介して前記上位システムに送信する送信部と、
を有することを特徴とする認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認識装置および学習システムに関するものである。
【背景技術】
【０００２】
特許文献１には、「初期能力を保持しつつ実環境に適応できるニューラルネットワーク演算装置。」が開示されている。特許文献２には、「画像の認識処理などを行うニューラルネットワーク回路。」が開示されている。特許文献３には、「ニューロンを層状に結合した階層型ニューラルネットワーク。」が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平５−２９００１３号公報
【特許文献２】特開平７−８４９８４号公報
【特許文献３】特開平９−９１２６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
自動車等の車両が走行する環境は、日々変化する。そのため、車両に搭載される人工知能は、日々変化する使用環境に合った新しい学習データを収集する必要がある。
【０００５】
また、車両に搭載される人工知能は、例えば、走行中の危険等を瞬時に認識し、判断等する必要がある。そのため、車両に搭載される人工知能は、危険等の認識処理等に負担をかけずに、使用環境での新しい学習データを効率的に収集することが重要となる。
【０００６】
なお、特許文献１〜３には、使用環境での学習データを効率的に収集することに関しては開示されていない。
【０００７】
そこで本発明は、使用環境での学習データを効率的に収集する技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願は、上記課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下の通りである。上記課題を解決すべく、本発明の一態様に係る認識装置は、データが入力される第１のニューラルネットワークと、前記第１のニューラルネットワークと構造が異なる前記データが入力される第２のニューラルネットワークと、前記第１のニューラルネットワークの第１の出力結果と、前記第２のニューラルネットワークの第２の出力結果とを比較する比較部と、前記第１の出力結果と前記第２の出力結果との比較結果が所定の基準以上異なったときの前記データを、前記データを学習する上位システムに無線送信する通信部と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、使用環境での学習データを効率的に収集することができる。上記した以外の課題、構成、および効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態に係るＰＬＤを適用した学習システムの例を示した図である。
【図２】図１のＰＬＤのブロック構成例を示した図である。
【図３】リコンフィグデータメモリに記憶されるニューラルネットワークの構造例を説明する図である。
【図４】シーケンスデータメモリのデータ構成例を示している。
【図５】ＰＬＤの動作例を説明するタイミングチャートである。
【図６】ニューラルネットワークの変更処理例を示したシーケンス図ある。
【図７】ニューラルネットワークの形成および特徴画像データの抽出の処理例を示したシーケンス図ある。
【図８】リコンフィギュラブルコントローラのブロック構成例を示した図である。
【図９】ＰＬＤのハードウェア構成例を示した図である。
【図１０】第２の実施の形態に係るＰＬＤのブロック構成例を示した図である。
【図１１】リコンフィグデータメモリに記憶されるニューラルネットワークの構造例を説明する図である。
【図１２】第３の実施の形態に係るＰＬＤのブロック構成例を示した図である。
【図１３】リコンフィグデータメモリに記憶されるニューラルネットワークの構造例を説明する図である。
【図１４】第４の実施の形態に係るＰＬＤのブロック構成例を示した図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を、図面を参照して説明する。以下では、本発明に係る認識装置を、ＦＰＧＡ（Field-Programmable Gate Array）等のＰＬＤ（Programmable Logic Device）によって実現した例について説明する。
【００１２】
［第１の実施の形態］
図１は、第１の実施の形態に係るＰＬＤを適用した学習システムの例を示した図である。図１に示すように、学習システムは、自動車等の車両１と、車両１が備えるＥＣＵ（Electronic Control Unit）２と、学習装置３と、ＤＢ（Data Base）４と、を有している。ＥＣＵ２は、例えば、無線通信によって、インターネット等のネットワーク５にアクセスし、学習装置３およびＤＢ４と通信を行う。
【００１３】
図１の矢印Ａ１に示す図は、車両１が備えるＥＣＵ２の拡大図である。矢印Ａ１に示すように、ＥＣＵ２は、ＰＬＤ２ａを有している。ＰＬＤ２ａは、ニューラルネットワークＮＮを有している。
【００１４】
ＤＢ４には、学習装置３が学習する学習データが記憶されている。学習データは、例えば、道路の画像データや、自動車、バイク、自転車等の車両の画像データ、標識等の画像データである。ＤＢ４は、例えば、データセンタやクラウドシステムによって管理されている。
【００１５】
学習装置３は、人工知能を搭載し、ＤＢ４に記憶されている学習データ（画像データ）に基づいて学習を行う（図１の矢印Ａ１１）。学習装置３は、学習データの学習結果に基づいて、車両１のＰＬＤ２ａに形成されるニューラルネットワークＮＮの構造を生成（決定）する。ニューラルネットワークＮＮの構造とは、例えば、ユニット間の接続関係や重み係数である。
【００１６】
学習装置３は、例えば、数日から数週間等に１度等、周期的にＤＢ４の画像データの学習を行い、ＰＬＤ２ａのニューラルネットワークＮＮの構造を生成する。そして、学習装置３は、生成したニューラルネットワークＮＮの構造（構造の情報）を、ネットワーク５を介して、ＥＣＵ２に送信する（図１の矢印Ａ１２）。
【００１７】
ＥＣＵ２は、学習装置３から、学習装置３が生成したニューラルネットワークＮＮの構造を受信する。ＥＣＵ２が有するＰＤＬ２ａには、学習装置３から送信された構造のニューラルネットワークＮＮが形成される。すなわち、車両１のＰＬＤ２ａのニューラルネットワークＮＮは、その構造が、学習装置３によって周期的に更新される。
【００１８】
車両１には、車両１の前方等、車両１の周囲を撮影するカメラ（図示せず）が搭載されている。ＰＬＤ２ａには、車両１に搭載されたカメラによって撮影される画像データＤ１が入力される。ＰＬＤ２ａは、学習装置３が生成したニューラルネットワークＮＮによって、入力された画像データＤ１の認識（または認知）および判断を行う。
【００１９】
例えば、ＰＬＤ２ａは、入力された画像データＤ１において、交差点や歩行者、信号の状態を認識し、危険であるか否か判断する。ＰＬＤ２ａは、入力された画像データＤ１において、危険であると判断した場合、危険を回避する回避行動の指示を出力する。例えば、ＰＬＤ２ａは、車両１が前方の車両に衝突しそうな場合、ブレーキ指示を出力する。
【００２０】
また、ＰＬＤ２ａは、以下で詳述するが、ニューラルネットワークＮＮによって、入力される画像データＤ１の中から、特徴のある画像データＤ２を抽出する。特徴のある画像データＤ２とは、学習装置３が学習していない画像データ（ＤＢ４に記憶されていない画像データ）である。ＥＣＵ２は、ＰＬＤ２ａによって抽出された特徴のある画像データＤ２を、ネットワーク５を介して、ＤＢ４に送信する（図１の矢印Ａ１３）。すなわち、ＰＬＤ２ａによって、特徴があると判断された画像データＤ２は、ＤＢ４に記憶される。
【００２１】
ここで、学習装置３は、ＤＢ４の今ある画像データを学習して、ＰＬＤ２ａのニューラルネットワークＮＮの構造を生成している。しかし、車両１が走行する環境は、日々変化する。例えば、自動車のデザインや危険対象物は、日々変化する。そのため、新たなデザインの自動車や新たな危険対象物が出現した場合、ＰＬＤ２ａのニューラルネットワークＮＮは、新たなデザインの自動車や新たな危険対象物を適切に認識することができない場合がある。
【００２２】
しかし、上記したように、ＰＬＤ２ａは、ニューラルネットワークＮＮによって、入力される画像データＤ１の中から、特徴のある画像データＤ２（新たなデザインの自動車や新たな危険対象物の画像データ）を抽出する。そして、抽出された特徴のある画像データＤ２は、ネットワーク５を介してＤＢ４に送信され、記憶される。
【００２３】
これにより、学習装置３は、特徴のある画像データＤ２を学習でき、新たなデザインの自動車や新たな危険対象物に対応した、ニューラルネットワークＮＮの構造を生成できる。そして、ＰＬＤ２ａは、新たなデザインの自動車や新たな危険対象物が出現しても、それらを適切に認識および判断することができる。つまり、ＰＬＤ２ａは、使用環境での学習データを効率的に収集し、日々変化する使用環境に応じた認識処理等を行うことができる。
【００２４】
また、ＰＬＤ２ａは、特徴のある画像データＤ２を抽出し、抽出した特徴のある画像データＤ２をネットワーク５に送信する。すなわち、車両１は、撮影する全ての画像データをネットワーク５に送信しなくてよい。これにより、ＤＢ４の記憶容量を抑制できる。また、ネットワーク５の負荷を抑制できる。
【００２５】
なお、上記では、学習装置３は、周期的にＤＢ４の画像データを更新するとしたが、例えば、自動車メーカが行うＥＣＵ２のプログラム更新時に、ＤＢ４の画像データの学習を行ってもよい。そして、学習装置３が学習して生成したＰＬＤ２ａのニューラルネットワークＮＮの構造を、自動車メーカが、ＥＣＵ２の更新プログラムとともに、ＥＣＵ２に送信してもよい。
【００２６】
また、図１では、学習装置３とＤＢ４は、別々の装置としているが、１台の装置で構成してもよい。
【００２７】
また、図１では、車両を１台しか示していないが、複数台存在してもよい。
【００２８】
以下では、学習装置３およびＤＢ４を、上位システムと呼ぶことがある。
【００２９】
図２は、図１のＰＬＤ２ａのブロック構成例を示した図である。図２に示すように、ＰＬＤ２ａは、入力部１１と、ニューラルネットワーク１２ａ，１２ｂと、比較部１３と、通信部１４と、リコンフィグデータメモリ１５と、シーケンスデータメモリ１６と、リコンフィギュラブルコントローラ１７と、タイマ１８と、データメモリ１９と、を有している。
【００３０】
図１に示した車両１は、カメラを搭載している。車両１が搭載するカメラは、例えば、車両１の周囲を撮影している。入力部１１には、車両１が有するカメラから出力される画像データが入力される。
【００３１】
ニューラルネットワーク１２ａ，１２ｂは、図１に示したニューラルネットワークＮＮに対応している。ニューラルネットワーク１２ａ，１２ｂのそれぞれには、入力部１１に入力された画像データが入力される。ニューラルネットワーク１２ａ，１２ｂは、入力された画像データの認識および判断を行う。
【００３２】
ニューラルネットワーク１２ｂの構造は、ニューラルネットワーク１２ａの構造と一部異なっている。例えば、図２に示すニューラルネットワーク１２ｂの四角の網掛け部分は、ニューラルネットワーク１２ａの構造と異なっている部分を示している。ニューラルネットワーク１２ａ，１２ｂの構造は、上位システムから送信される。例えば、図１で説明したように、ニューラルネットワーク１２ａ，１２ｂの構造は、学習装置３の学習によって生成され、周期的にＰＬＤ２ａに送信される。
【００３３】
ニューラルネットワーク１２ａの出力結果（出力値）は、比較部１３および車両制御部に出力される。車両制御部は、ニューラルネットワーク１２ａの出力結果に基づいて、所定の車両制御（例えば、車両１のブレーキ制御やハンドル制御等）を行う。
【００３４】
ニューラルネットワーク１２ｂの出力結果は、比較部１３に出力される。ニューラルネットワーク１２ｂは、入力部１１に入力された画像データから、特徴のある画像データを抽出するためのニューラルネットワークである。以下では、特徴のある画像データを、特徴画像データと呼ぶことがある。
【００３５】
比較部１３は、ニューラルネットワーク１２ａの出力結果と、ニューラルネットワーク１２ｂの出力結果とを比較する。比較部１３は、ニューラルネットワーク１２ａの出力結果と、ニューラルネットワーク１２ｂの出力結果とが所定の基準以上（所定の閾値以上）異なる場合、特徴検出信号を通信部１４へ出力する。例えば、比較部１３は、ニューラルネットワーク１２ａの出力結果と、ニューラルネットワーク１２ｂの出力結果との類似度が所定以上異なる場合、特徴検出信号を通信部１４へ出力する。
【００３６】
通信部１４は、無線通信によって、インターネット等のネットワーク５にアクセスし、ネットワーク５に接続された上位システムと通信を行う。通信部１４は、上位システムから送信されたニューラルネットワーク１２ａの構造をリコンフィギュラブルコントローラ１７に出力する。また、通信部１４は、上位システムから送信されたニューラルネットワーク１２ｂの構造をリコンフィグデータメモリ１５に記憶する。なお、以下で説明するが、上位システムから送信されるニューラルネットワーク１２ｂの構造は、複数（複数パターン）ある。
【００３７】
また、通信部１４は、比較部１３から特徴検出信号が出力されたとき、データメモリ１９に記憶されている画像データを上位システムに送信する。すなわち、通信部１４は、比較部１３によって、入力部１１に入力された画像データが特徴画像データであると判断されると、入力部１１に入力された画像データ（データメモリ１９に記憶されている画像データ）を、上位システムに送信する。これにより、上位システムは、車両１の使用環境に応じた学習を行うことができる。
【００３８】
リコンフィグデータメモリ１５には、通信部１４が上位システムから受信したニューラルネットワーク１２ｂの構造が記憶される。上記したように、上位システムから送信されるニューラルネットワーク１２ｂの構造は、複数存在する。
【００３９】
図３は、リコンフィグデータメモリ１５に記憶されるニューラルネットワーク１２ｂの構造例を説明する図である。図３に示す「００」、「０１」…「Ｎ」は、ニューラルネットワーク１２ｂの構造を識別する識別子である。識別子は、ニューラルネットワーク１２ｂの構造とともに、上位システムから送信される。
【００４０】
図３に示す網掛け部分は、ニューラルネットワーク１２ａの構造と異なっている部分を示している。ニューラルネットワーク１２ｂは、各層において、一部の構造が（網掛け部分）が、ニューラルネットワーク１２ａと異なっている。上位システムからは、（Ｎ＋１）個の異なるニューラルネットワーク１２ｂの構造（構造の情報）が送信され、リコンフィグデータメモリ１５に記憶される。
【００４１】
なお、リコンフィグデータメモリ１５には、ニューラルネットワーク１２ｂの構造の全てを記憶しなくてもよい。例えば、リコンフィグデータメモリ１５には、ニューラルネットワーク１２ａの構造と異なっている部分のみ（網掛け部分のみ）を記憶してもよい。
【００４２】
図２の説明に戻る。シーケンスデータメモリ１６には、リコンフィギュラブルコントローラ１７が、リコンフィグデータメモリ１５に記憶されているニューラルネットワーク１２ｂの構造を参照するシーケンスが記憶されている。例えば、シーケンスデータメモリ１６には、ニューラルネットワーク１２ｂの識別子が記憶されている。
【００４３】
図４は、シーケンスデータメモリ１６のデータ構成例を示している。図４に示す「００」、「０１」…「Ｎ」は、ニューラルネットワーク１２ｂの識別子に対応している。
【００４４】
図２の説明に戻る。リコンフィギュラブルコントローラ１７は、通信部１４によって受信されたニューラルネットワーク１２ａの構造に基づいて、ニューラルネットワーク１２ａを形成する。
【００４５】
また、リコンフィギュラブルコントローラ１７は、シーケンスデータメモリ１６に記憶されているシーケンスに従って、リコンフィグデータメモリ１５を参照し、ニューラルネットワーク１２ｂを形成する。リコンフィギュラブルコントローラ１７は、タイマ１８からの周期的な指示に応じて、リコンフィグデータメモリ１５を参照し、ニューラルネットワーク１２ｂを形成する。
【００４６】
例えば、図４に示したシーケンス例の場合、リコンフィギュラブルコントローラ１７は、タイマ１８からの指示に応じて、識別子「００」の構造のニューラルネットワーク１２ｂ（図３の「００」に対応するニューラルネットワークを参照）を形成する。リコンフィギュラブルコントローラ１７は、タイマ１８から次の指示があると、識別子「０１」の構造のニューラルネットワーク１２ｂ（図３の「０１」に対応するニューラルネットワークを参照）を形成する。以下同様にして、リコンフィギュラブルコントローラ１７は、タイマ１８からの指示に応じて、識別子「Ｎ」の構造のニューラルネットワーク１２ｂ（図３の「Ｎ」に対応するニューラルネットワークを参照）を形成する。リコンフィギュラブルコントローラ１７は、識別子「Ｎ」の構造のニューラルネットワーク１２ｂを形成すると、次は、識別子「００」の構造のニューラルネットワーク１２ｂを形成する。
【００４７】
データメモリ１９には、入力部１１に入力された画像データが一時的に記憶される。通信部１４は、比較部１３からの特徴検出信号に応じて、データメモリ１９に記憶されている画像データを、上位システムに送信する。
【００４８】
このように、ＰＬＤ２ａに形成されるニューラルネットワーク１２ｂは、タイマ１８の周期に応じて、その構造が変更される。すなわち、比較部１３は、ニューラルネットワーク１２ａの出力結果と、一部の構造が周期的に変更されるニューラルネットワーク１２ｂの出力結果とを比較する。これにより、ＰＬＤ２ａは、様々な特徴画像データを抽出し、上位システムに送信できる。
【００４９】
そして、上位システムは、ＰＬＤ２ａによって抽出された新たな画像データを学習し、新たな学習に基づいたニューラルネットワーク１２ａ，１２ｂを生成できる。ＰＬＤ２ａは、この新たな学習に基づいたニューラルネットワーク１２ａ，１２ｂを受信することにより、新たな環境に対応することができる。
【００５０】
図５は、ＰＬＤ２ａの動作例を説明するタイミングチャートである。なお、通信部１４は、上位システムから、ニューラルネットワーク１２ａの構造と、ニューラルネットワーク１２ｂの複数の構造とを受信しているとする。そして、通信部１４は、上位システムから受信したニューラルネットワーク１２ｂの複数の構造を、図３に示したように、リコンフィグデータメモリ１５に記憶しているとする。また、リコンフィギュラブルコントローラ１７は、通信部１４が受信したニューラルネットワーク１２ａの構造に基づいて、ニューラルネットワーク１２ａを形成しているとする。
【００５１】
図５に示す「Ｃｌｋ」は、ＰＬＤ２ａが動作する基準クロックを示している。
【００５２】
「Ｔｉｍｅｒ」は、タイマ１８がリコンフィギュラブルコントローラ１７にタイマ信号を出力するタイミングを示している。すなわち、リコンフィギュラブルコントローラ１７は、図５の「Ｔｉｍｅｒ」に示すタイミングで、リコンフィグデータメモリ１５を参照し、ニューラルネットワーク１２ｂを形成する。なお、リコンフィギュラブルコントローラ１７は、図４に示したシーケンスデータメモリ１６のシーケンス順（識別子順）に、図３に示したリコンフィグデータメモリ１５を参照する。
【００５３】
「Ｒｅｃｏｎｆｉｇ」は、ＰＬＤ２ａに形成されるニューラルネットワーク１２ｂを示している。図５の例の場合、最初の「Ｔｉｍｅｒ」に示すタイミングで、まず、識別子「００」のニューラルネットワーク１２ｂが形成されることを示している。次の「Ｔｉｍｅｒ」タイミングで、識別子「０１」のニューラルネットワーク１２ｂが形成されることを示している。次の「Ｔｉｍｅｒ」のタイミングで、識別子「０２」のニューラルネットワーク１２ｂが形成されることを示している。
【００５４】
「Ｉｎｐｕｔ  Ｄａｔａ（Ｂｕｆｆｅｒ）」は、データメモリ１９が、入力部１１に入力される画像データを記憶するタイミングを示している。
【００５５】
「Ｃｏｍｐ  Ｅｎｂｌ」は、比較部１３がニューラルネットワーク１２ａの出力結果と、ニューラルネットワーク１２ｂの出力結果とを比較するタイミングを示している。図５の例では、比較部１３は、「Ｃｏｍｐ  Ｅｎｂｌ」がＨ状態のとき、ニューラルネットワーク１２ａの出力結果と、ニューラルネットワーク１２ｂの出力結果とを比較する。
【００５６】
なお、「Ｃｏｍｐ  Ｅｎｂｌ」は、少なくとも、ニューラルネットワーク１２ｂのリコンフィグが行われている間は、Ｌ状態となっている。すなわち、比較部１３は、ニューラルネットワーク１２ｂのリコンフィグが行われている間は、ニューラルネットワーク１２ａの出力結果と、ニューラルネットワーク１２ｂの出力結果とを比較しない。
【００５７】
「Ｃｏｍｐ  Ｒｓｌｔ」は、比較部１３から通信部１４に出力される特徴検出信号を示している。なお、特徴検出信号は、図５の「Ｍａｓｋ」に示すように、ニューラルネットワーク１２ｂのリコンフィグが行われている間、通信部１４に出力されないようマスクされる。
【００５８】
「Ｕｐｌｏａｄ」は、通信部１４がデータメモリ１９に記憶されている画像データを上位システムに送信するタイミングを示している。通信部１４は、特徴検出信号（ＣｏｍｐＲｓｌｔ）がアクティブになったとき（比較部１３から出力されたとき）、特徴検出信号を出力する元となった画像データをデータメモリ１９から抽出し、上位システムに送信する。
【００５９】
図６は、ニューラルネットワーク１２ａ，１２ｂの変更処理例を示したシーケンス図ある。図６には、学習装置３およびＰＬＤ２ａのシーケンス例が示してある。学習装置３は、例えば、少なくともステップＳ１の学習周期より短い周期で、繰り返し図６に示すシーケンスを実行する。学習周期は、例えば、１週間である。
【００６０】
まず、学習装置３は、学習周期になったか否か判定する（ステップＳ１）。学習装置３は、学習周期でないと判定した場合（Ｓ１の「Ｎｏ」）、当該シーケンスの処理を終了する。
【００６１】
一方、学習装置３は、学習周期であると判定した場合（Ｓ１の「Ｙｅｓ」）、ＤＢ４を参照し、ＤＢ４に記憶されている画像データを学習する（ステップＳ２）。ＤＢ４に記憶されている画像データは、図１で説明したように、例えば、道路の画像データや、自動車、バイク、自転車等の車両の画像データ、標識等の画像データであり、学習装置３は、これらの画像データに基づいて、例えば、車両１における危険対象物などを学習する。
【００６２】
学習装置３は、ステップＳ２による学習により、車両１のＰＬＤ２ａに形成するニューラルネットワーク１２ａ，１２ｂの構造を生成する（ステップＳ３）。
【００６３】
例えば、学習装置３は、ＰＬＤ２ａが車両１の危険物等を認識するためのニューラルネットワーク１２ａの構造を生成する。また、学習装置３は、例えば、ＰＬＤ２ａが特徴画像データを抽出するためのニューラルネットワーク１２ｂの構造を生成する。なお、ニューラルネットワーク１２ｂの構造は、上記したように、様々な特徴画像データを抽出できるよう複数生成される（例えば、図３参照）。
【００６４】
学習装置３は、ステップＳ３にて生成したニューラルネットワーク１２ａ，１２ｂの構造を、車両１に送信する（ステップＳ４）。
【００６５】
ＰＬＤ２ａの通信部１４は、ステップＳ４にて送信されたニューラルネットワーク１２ａ，１２ｂの構造を受信する（ステップＳ５）。
【００６６】
ＰＬＤ２ａの通信部１４は、ステップＳ５にて受信したニューラルネットワーク１２ｂの構造を、リコンフィグデータメモリ１５に記憶する（ステップＳ６）。これにより、リコンフィグデータメモリ１５には、例えば、図３に示したように、構造が異なる複数のニューラルネットワーク１２ｂの構造が記憶される。
【００６７】
ＰＬＤ２ａのリコンフィギュラブルコントローラ１７は、ステップＳ５にて受信したニューラルネットワーク１２ａ，１２ｂの構造を有する、ニューラルネットワーク１２ａ，１２ｂを形成する（ステップＳ７）。なお、リコンフィギュラブルコントローラ１７は、ニューラルネットワーク１２ｂに対しては、シーケンスデータメモリ１６に記憶されているシーケンスの最初のシーケンスに従って、形成する。例えば、図５の例の場合、リコンフィギュラブルコントローラ１７は、識別子「００」のニューラルネットワーク１２ｂを形成する。
【００６８】
以上のシーケンスにより、ＰＬＤ２ａには、学習周期ごとに、最新の学習に基づいたニューラルネットワーク１２ａ，１２ｂが形成される。
【００６９】
図７は、ニューラルネットワーク１２ｂの形成および特徴画像データの抽出の処理例を示したシーケンス図ある。図７には、ＰＬＤ２ａおよびＤＢ４のシーケンス例が示してある。ＰＬＤ２ａは、例えば、入力部１１に画像データが入力される周期（図５の「Ｉｎｐｕｔ  Ｄａｔａ（Ｂｕｆｆｅｒ）を参照」）で、繰り返し図７に示すシーケンスを実行する。
【００７０】
まず、ＰＬＤ２ａタイマ１８は、タイマ時間（図５の「Ｔｉｍｅｒ」を参照）になったか否か判定する（ステップＳ１１）。タイマ１８は、タイマ時間になっていないと判定した場合（Ｓ１１の「Ｎｏ」）、処理をステップＳ１３へ移行する。
【００７１】
一方、タイマ１８が、タイマ時間になったと判定した場合（Ｓ１１の「Ｙｅｓ」）、ＰＬＤ２ａのリコンフィギュラブルコントローラ１７は、シーケンスデータメモリ１６に記憶されているシーケンスに基づいて、リコンフィグデータメモリ１５を参照し、ニューラルネットワーク１２ｂを形成する（図５の「Ｒｅｃｏｎｆｉｇ」を参照）。これにより、ＰＬＤ２ａには、タイマ時間ごとに、例えば、図３に示した識別子「００」〜「Ｎ」の構造のニューラルネットワーク１２ｂが、順番に繰り返し形成される。
【００７２】
ＰＬＤ２ａの比較部１３は、ニューラルネットワーク１２ａの出力結果と、ニューラルネットワーク１２ｂの出力結果とを比較する（ステップＳ１３）。
【００７３】
ＰＬＤ２ａの比較部１３は、ニューラルネットワーク１２ａの出力結果と、ニューラルネットワーク１２ｂの出力結果との比較結果が、所定の基準以上異なるか否か判定する（ステップＳ１４）。比較部１３は、ニューラルネットワーク１２ａの出力結果と、ニューラルネットワーク１２ｂの出力結果との比較結果が、所定の基準以上異なっていない場合（Ｓ１４の「Ｎｏ」）、当該シーケンスの処理を終了する。
【００７４】
一方、比較部１３は、ニューラルネットワーク１２ａの出力結果と、ニューラルネットワーク１２ｂの出力結果との比較結果が、所定の基準以上異なっている場合（Ｓ１４の「Ｙｅｓ」）、特徴検出信号を通信部１４へ出力する（ステップＳ１５）。
【００７５】
ＰＬＤ２ａの通信部１４は、ステップＳ１５にて出力された特徴検出信号に基づいて、データメモリ１９に記憶されている画像データ（特徴画像データ）を、ＤＢ４に送信する（ステップＳ１６）。
【００７６】
ＤＢ４は、ステップＳ１６にて送信された特徴画像データを受信する（ステップＳ１７）。そして、ＤＢ４は、ステップＳ１７にて受信した特徴画像データを記憶する（ステップＳ１８）。
【００７７】
以上のシーケンスにより、ＰＬＤ２ａには、タイマ時間ごとに、構造の異なるニューラルネットワーク１２ｂが形成される。また、入力部１１に特徴のある画像データ入力された場合、特徴画像データとして、ＤＢ４に送信および記憶される。これにより、学習装置３は、新たな学習データ（特徴画像データ）を含む学習データに基づいて、学習をすることができる。
【００７８】
図８は、リコンフィギュラブルコントローラ１７のブロック構成例を示した図である。図８において、図２と同じものには同じ符号が付してある。図８には、リコンフィギュラブルコントローラ１７の他に、図２に示したリコンフィグデータメモリ１５と、タイマ１８と、が示してある。また、図８には、リコンフィギュラブルコントローラ１７の他に、ニューラルネットワーク１２ａ，１２ｂが形成されるニューラルネットワークエリア３１ａ，３１ｂが示してある。なお、図８では、リコンフィギュラブルコントローラ１７がシーケンスデータメモリ１６を有しているが、図２に示したように、リコンフィギュラブルコントローラ１７の外に、シーケンスデータメモリ１６が形成されてもよい。また、リコンフィグデータメモリ１５は、リコンフィギュラブルコントローラ１７内に形成されてもよい。
【００７９】
リコンフィギュラブルコントローラ１７は、制御部２１と、Ｒ／Ｗ部２２と、を有している。制御部２１は、例えば、電源等が投入されたとき、例えば、不揮発性のメモリであるリコンフィグデータメモリ１５に記憶されている初期コンフィグ用データを参照して、ＰＬＤ２ａを初期コンフィグする。
【００８０】
次に、制御部２１は、リコンフィグデータメモリ１５を参照し、Ｒ／Ｗ部２２を介して、順次、ニューラルネットワークエリア３１ａ，３１ｂの各領域をリコンフィグ制御する。その際、制御部２１は、シーケンスデータメモリ１６のシーケンスに従って、リコンフィグ制御を行う。シーケンスデータメモリ１６には、初期コンフィグ用データと、時分割でリコンフィグを行うためのデータ（例えば、ニューラルネットワーク１２ｂの構造）とが別々に記憶される。
【００８１】
ニューラルネットワークエリア３１ａ，３１ｂは、例えば、ＣＲＡＭ（Configuration Random Access Memory）等のコンフィギュレーションメモリである。ニューラルネットワークエリア３１ａには、例えば、ニューラルネットワーク１２ａが形成され、ニューラルネットワークエリア３１ｂには、例えば、ニューラルネットワーク１２ｂが形成される。図８のニューラルネットワークエリア３１ａには、８層（レイヤ０〜レイヤ７）のニューラルネットワーク１２ａが形成されている例を示している。
【００８２】
図９は、ＰＬＤ２ａのハードウェア構成例を示した図である。図９において、図２および図８と同じものには同じ符号が付してある。なお、図９では、図２に示した入力部１１、比較部１３、通信部１４、リコンフィグデータメモリ１５、タイマ１８、データメモリ１９のハードウェアの図示を省略している。また、図９では、図８と異なり、シーケンスデータメモリ１６は、リコンフィギュラブルコントローラ１７の外に形成されている。
【００８３】
図９に示すニューラルネットワークエリア３１ａは、例えば、ＣＲＡＭで形成され、入力された画像データを認識および判断するニューラルネットワーク１２ａが形成される。ニューラルネットワークエリア３１ｂは、例えば、ＣＲＡＭで形成され、入力された画像データから特徴画像データを抽出するためのニューラルネットワーク１２ｂが形成される。
【００８４】
ニューラルネットワークエリア３１ａは、重み係数を格納する格納エリア５１と、ニューラルネットワーク１２ａの層間等の接続関係の情報を格納する格納エリア５２と、演算を行う演算エリア５３とを有している。ニューラルネットワークエリア３１ｂも同様の格納エリアおよび演算エリアを有している。
【００８５】
Ｒ／Ｗ部２２は、ＣＲＡＭに対してデータのリードおよびライト制御を行う。アドレス出力部４１は、ＣＲＡＭの物理アドレスを出力する。シーケンスコントローラ４２は、シーケンスデータメモリ１６のシーケンスに従って、アドレス出力部４１およびコピーアドレスマップメモリ４３を制御する。コピーアドレスマップメモリ４３は、ニューラルネットワークエリア３１ａ，３１ｂの物理アドレスの対応関係を記憶したメモリである。
【００８６】
制御部２１は、時分割でニューラルネットワーク１２ｂの重み係数と接続関係とを変更するため、論理情報を格納するＣＲＡＭに重み係数も格納する。ニューラルネットワーク１２ｂが形成されるニューラルネットワークエリア３１ｂは、タイマ１８のタイマ時間間隔で書き換えられる。これにより、ＣＲＡＭ内のニューラルネットワークエリア３１ｂは、時分割で自律的に書き換えられる。
【００８７】
従来のニューラルネットワークの重み係数は、ＲＡＭブロックに格納され、１ワード毎にＲ／Ｗが行われるが、ＦＰＧＡの特徴である並列化された演算器へのデータ供給を複数同時に実行することが困難である。ＰＬＤ２ａでは、ＣＲＡＭに重み係数を格納することで、複数の演算器に同時に重み係数値を供給することが可能となる。また、ＲＡＭブロックは、ニューラルネットワークのコピー処理を実行している際に、読み出しポートが占有されるため重み係数を読み出すことが困難となるが、ＰＬＤ２ａでは、演算時の読み出し経路とは独立したコンフィギュレーション用バスを、Ｒ／Ｗ部２２を介して行うことで演算処理を停止することなく更新することが可能となる。さらに、ＲＡＭブロックは、ＦＰＧＡの物理配置上、グループ化かつ固定化されているため、ニューラルネットワークの構造を変更した際に配置場所によっては配線遅延が大きくなるが、ＰＬＤ２ａでは、ネットワークと重み係数ともにコンフィギュレーションメモリに実装するため、配置を近接することができ配線遅延を小さくすることができる。以上により書き換えのための新たなメモリや論理回路が不要となり小規模なＦＰＧＡへの実装が可能となる。
【００８８】
以上説明したように、ＰＬＤ２ａは、画像データが入力されるニューラルネットワーク１２ａと、ニューラルネットワーク１２ａと構造が異なる画像データが入力されるニューラルネットワーク１２ｂと、ニューラルネットワーク１２ａの出力結果と、ニューラルネットワーク１２ｂの出力結果とを比較する比較部１３と、を有する。そして、ＰＬＤ２ａは、ニューラルネットワーク１２ａの出力結果と、ニューラルネットワーク１２ｂの出力結果とが所定の基準以上異なったときの画像データを、画像データを学習する上位システムに無線送信する通信部１４を有する。これにより、ＰＬＤ２ａは、使用環境での画像データを効率的に収集することができる。
【００８９】
また、ＰＬＤ２ａは、使用環境での画像データを効率的に収集するので、上位システムは、日々変化する使用環境に応じたニューラルネットワーク１２ａ，１２ｂを生成できる。また、ＰＬＤ２ａは、上位システムによって生成された、日々変化する使用環境に応じたニューラルネットワーク１２ａ，１２ｂによって、適切な認識処理等を行うことができる。
【００９０】
また、ＰＬＤ２ａは、カメラが撮影する全ての画像データを学習データとしてネットワーク５に送信しない。これにより、ＤＢ４の記憶容量を抑制できる。また、ネットワーク５の負荷を抑制できる。
【００９１】
また、ＰＬＤ２ａは、所定の周期で、複数の異なる構造のニューラルネットワーク１２ｂを形成する。これにより、ＰＬＤ２ａは、様々な種類の特徴画像データを抽出することができる。
【００９２】
また、プログラマブルロジックデバイスを用いて、ニューラルネットワーク構造をコンフィギュレーションメモリ上に実現することで、高い性能を小規模、省電力で実現することができる。
【００９３】
また、ＰＬＤ２ａは、２つのニューラルネットワーク１２ａ，１２ｂを備えることにより、認識処理等に負担を掛けずに、使用環境での画像データを収集することができる。
【００９４】
［第２の実施の形態］
第２の実施の形態では、第１の実施の形態に対し、ニューラルネットワーク１２ｂの構造が異なる。第１の実施の形態のニューラルネットワーク１２ｂ（図３参照）は、各層の一部の構造がニューラルネットワーク１２ａと異なっていたが、第２の実施の形態では、ニューラルネットワーク１２ａに対し、一部の層方向の構造が異なっている。
【００９５】
図１０は、第２の実施の形態に係るＰＬＤ２ａのブロック構成例を示した図である。図１０において、図２と同じものには同じ符号が付してある。以下では、図２と異なる部分について説明する。
【００９６】
図１０に示すニューラルネットワーク６１の構造は、ニューラルネットワーク１２ａの構造と一部異なっている。例えば、ニューラルネットワーク６１は、ニューラルネットワーク１２ａに対し、一部の層方向の構造が異なっている。より具体的には、ニューラルネットワーク６１は、ニューラルネットワーク１２ａの層方向部分１２ａａの構造が、ニューラルネットワーク１２ａと異なっている。
【００９７】
なお、図１０には示してないが、ニューラルネットワーク１２ｂのニューラルネットワーク１２ａと異なっている部分以外の部分は、ニューラルネットワーク１２ａと同じ構造を有している。すなわち、ニューラルネットワーク１２ｂは、ニューラルネットワーク１２ａに対し、層方向部分１２ａａのみが異なっている。
【００９８】
ニューラルネットワーク６１の構造は、複数存在する。リコンフィグデータメモリ１５には、ニューラルネットワーク６１の複数の構造が記憶される。
【００９９】
図１１は、リコンフィグデータメモリ１５に記憶されるニューラルネットワーク６１の構造例を説明する図である。図１１に示す「００」、「０１」…「Ｎ」は、ニューラルネットワーク６１の構造を識別する識別子である。
【０１００】
図１１に示す点線部分は、ニューラルネットワーク１２ａと異なっている構造部分を示している。リコンフィグデータメモリ１５には、例えば、図１１に示すような、識別子「００」〜「Ｎ」の複数のニューラルネットワーク６１の構造が記憶される。
【０１０１】
なお、リコンフィグデータメモリ１５には、ニューラルネットワーク１２ａと異なっている部分のみが記憶される。すなわち、リコンフィグデータメモリ１５には、図１１に示す点線部分の構造のみが記憶される。そして、図１０に示したリコンフィギュラブルコントローラ１７は、点線部分以外の構造を、ニューラルネットワーク１２ａからコピーし、ニューラルネットワーク６１を形成する。
【０１０２】
以上説明したように、ニューラルネットワーク６１は、ニューラルネットワーク１２ａに対し、一部の層方向の構造が異なっている。これにより、ＰＬＤ２ａは、使用環境での画像データを効率的に収集することができる。
【０１０３】
なお、上記では、リコンフィグデータメモリ１５には、ニューラルネットワーク１２ａと異なっている構造部分のみが記憶されるとしたが、ニューラルネットワーク１２ａと同じ構造部分も記憶してもよい。例えば、リコンフィグデータメモリ１５には、図１１に示す点線部分以外の構造も記憶してもよい。
【０１０４】
［第３の実施の形態］
第３の実施の形態では、ニューラルネットワーク１２ｂの構造が、ニューラルネットワーク１２ａに対し、１枚の層の全体において異なっている。
【０１０５】
図１２は、第３の実施の形態に係るＰＬＤ２ａのブロック構成例を示した図である。図１２において、図２と同じものには同じ符号が付してある。以下では、図２と異なる部分について説明する。
【０１０６】
図１２に示すニューラルネットワーク７１の構造は、ニューラルネットワーク１２ａの構造と一部異なっている。例えば、ニューラルネットワーク７１は、ニューラルネットワーク１２ａに対し、１つの層の構造が異なっている。
【０１０７】
ニューラルネットワーク７１の構造は、複数存在する。リコンフィグデータメモリ１５には、ニューラルネットワーク７１の複数の構造が記憶される。
【０１０８】
図１３は、リコンフィグデータメモリ１５に記憶されるニューラルネットワーク７１の構造例を説明する図である。図１１に示す「００」、「０１」…「Ｎ」は、ニューラルネットワーク７１の構造を識別する識別子である。
【０１０９】
図１３に示す網掛けの層は、ニューラルネットワーク１２ａと構造が異なっている層を示している。例えば、識別子「００」のニューラルネットワーク７１は、第１層がニューラルネットワーク１２ａと構造が異なっている。例えば、識別子「０１」のニューラルネットワーク７１は、第２層がニューラルネットワーク１２ａと構造が異なっている。リコンフィグデータメモリ１５には、例えば、図１３に示すような、識別子「００」〜「Ｎ」の複数のニューラルネットワーク７１の構造が記憶される。
【０１１０】
なお、リコンフィグデータメモリ１５には、ニューラルネットワーク１２ａと異なっている部分のみが記憶される。すなわち、リコンフィグデータメモリ１５には、図１１に示す網掛けの層の構造のみが記憶される。そして、図１２に示したリコンフィギュラブルコントローラ１７は、網掛け以外の層の構造を、ニューラルネットワーク１２ａからコピーし、ニューラルネットワーク７１を形成する。
【０１１１】
なお、上記では、ニューラルネットワーク７１は、ニューラルネットワーク１２ａに対し、１層の構造が異なるとしたが、２層以上の構造が異なっていてもよい。
【０１１２】
以上説明したように、ニューラルネットワーク７１は、ニューラルネットワーク１２ａに対し、少なくとも１層の全体の構造が異なっている。これにより、ＰＬＤ２ａは、使用環境での画像データを効率的に収集することができる。
【０１１３】
なお、上記では、リコンフィグデータメモリ１５には、ニューラルネットワーク１２ａと構造が異なっている層のみが記憶されるとしたが、ニューラルネットワーク１２ａと同じ構造の層も記憶してもよい。例えば、リコンフィグデータメモリ１５には、図１３に示す網掛けの層以外の層の構造も記憶してもよい。
【０１１４】
［第４の実施の形態］
第１〜第３の実施の形態では、ニューラルネットワーク１２ｂは、ニューラルネットワーク１２ａに対し、一部の構造が異なっていた。第４の実施の形態では、ニューラルネットワーク１２ｂの構造は、ニューラルネットワーク１２ａに対し、全体において異なっている。
【０１１５】
図１４は、第４の実施の形態に係るＰＬＤ２ａのブロック構成例を示した図である。図１４において、図２と同じものには同じ符号が付してある。以下では、図２と異なる部分について説明する。
【０１１６】
図１４に示すニューラルネットワーク８１は、ニューラルネットワーク１２ａの全体において、構造が異なっている。すなわち、ＰＬＤ２ａには、ニューラルネットワーク１２ａと互いに関連性のないニューラルネットワーク８１が形成される。
【０１１７】
リコンフィグデータメモリ１５には、ニューラルネットワーク１２ａと全体の構造が異なる、複数のニューラルネットワーク８１の構造が記憶されている。
【０１１８】
以上説明したように、ニューラルネットワーク８１は、ニューラルネットワーク１２ａの全体において構造が異なっている。これにより、ＰＬＤ２ａは、使用環境での画像データを効率的に収集することができる。
【０１１９】
上述した認識装置および学習システムの機能構成は、認識装置および学習システムの構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。認識装置および学習システムの構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、１つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【０１２０】
また、上述したシーケンスの各処理単位は、認識装置および学習システムの処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。認識装置および学習システムの処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、１つの処理単位がさらに多くの処理を含むように分割することもできる。また、本発明は、認識装置および学習システムの機能を実現するプログラム、および当該プログラムを記憶した記憶媒体として提供することもできる。
【０１２１】
また、上記の各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【０１２２】
また、上記した実施形態の技術的要素は、単独で適用されてもよいし、プログラム部品とハードウェア部品のような複数の部分に分けられて適用されるようにしてもよい。
【符号の説明】
【０１２３】
１…車両、２…ＥＣＵ、２ａ…ＰＬＤ、３…学習装置、４…ＤＢ、５…ネットワーク、１１…入力部、１２ａ，１２ｂ…ニューラルネットワーク、１３…比較部、１４…通信部、１５…リコンフィグデータメモリ、１６…シーケンスデータメモリ、１７…リコンフィギュラブルコントローラ、１８…タイマ、１９…データメモリ、２１…制御部、２２…Ｒ／Ｗ部、３１ａ，３１ｂ…ニューラルネットワークエリア…アドレス出力部、４２…シーケンスコントローラ、４３…コピーアドレスマップメモリ、５１，５２…格納エリア、５３…演算エリア、６１，７１，８１…ニューラルネットワーク
【図１】
2018060268.tif 000003
【図２】
2018060268.tif 000004
【図３】
2018060268.tif 000005
【図４】
2018060268.tif 000006
【図５】
2018060268.tif 000007
【図６】
2018060268.tif 000008
【図７】
2018060268.tif 000009
【図８】
2018060268.tif 000010
【図９】
2018060268.tif 000011
【図１０】
2018060268.tif 000012
【図１１】
2018060268.tif 000013
【図１２】
2018060268.tif 000014
【図１３】
2018060268.tif 000015
【図１４】
2018060268.tif 000016