(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024168233
(43)【公開日】2024-12-05
(54)【発明の名称】演算装置、更新方法、環境認識装置
(51)【国際特許分類】
G06N 3/08 20230101AFI20241128BHJP
【FI】
G06N3/08
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023084726
(22)【出願日】2023-05-23
(71)【出願人】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】110002365
【氏名又は名称】弁理士法人サンネクスト国際特許事務所
(72)【発明者】
【氏名】中野 和香子
(72)【発明者】
【氏名】平井 理宇
(72)【発明者】
【氏名】伊藤 浩朗
(72)【発明者】
【氏名】高田 雅士
(57)【要約】
【課題】設定される空間情報に応じてニューラルネットワークモデルの重みを更新できる。
【解決手段】演算装置は、ニューラルネットワークモデルである推論モデルを用いて入力データに対応する推論結果を出力する推論部と、推論結果と、入力データにおける少なくとも一部の領域を示す空間情報と、に基づいて、推論モデルの重みを更新する更新部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ニューラルネットワークモデルである推論モデルを用いて入力データに対応する推論結果を出力する推論部と、
前記推論結果と、前記入力データにおける少なくとも一部の領域を示す空間情報と、に基づいて、前記推論モデルの重みを更新する更新部と、を備える演算装置。
【請求項2】
請求項1に記載の演算装置において、
前記更新部は、前記推論モデルのいずれかの前記重みをゼロに更新する演算装置。
【請求項3】
請求項1に記載の演算装置において、
前記更新部は、前記推論結果が真値に近くなるように前記推論モデルの前記重みを更新する演算装置。
【請求項4】
請求項1に記載の演算装置において、
前記入力データは1組の画像であり、
前記推論結果は、前記1組の画像の重複領域における視差であり、
前記空間情報は、視差および重要度係数の対応表であり、
前記推論結果と正解値の差分である誤差値、および前記重要度係数に基づき重みづけ誤差を求める損失算出部と、をさらに備え、
前記更新部は、前記重みづけ誤差を用いて前記推論モデルの重みを決定する、演算装置。
【請求項5】
請求項4に記載の演算装置において、
前記損失算出部は、前記誤差値および前記重要度係数の積を足しあわせることで前記重みづけ誤差を算出し、
前記重要度係数にはゼロを含む演算装置。
【請求項6】
請求項1に記載の演算装置において、
前記入力データは1組の画像であり、
前記推論結果は、前記1組の画像の重複領域における視差であり、
前記空間情報は、前記重複領域における座標および重要度係数の対応表であり、
前記推論結果と正解値の差分である誤差値、および前記重要度係数に基づき重みづけ誤差を求める損失算出部と、をさらに備え、
前記更新部は、前記重みづけ誤差を用いて、前記推論モデルの重みを決定する、演算装置。
【請求項7】
請求項1に記載の演算装置において、
前記入力データは1組の画像であり、
前記推論結果は、前記1組の画像における視差であり、
前記空間情報は、視差および重要度係数の対応表であり、
前記推論結果と正解値の差分である誤差値に基づき誤差を求める損失算出部と、
前記誤差を用いて前記推論モデルにおける重みパラメタの重要度を算出し、前記重みパラメタの重要度および前記重要度係数に基づき重みづけ重要度を算出する重み解析部と、をさらに備え
前記更新部は、前記重みづけ重要度に基づき、更新候補の重みを決定する、演算装置。
【請求項8】
ニューラルネットワークモデルである推論モデルが格納される記憶部を有する演算装置が実行する更新方法であって、
前記推論モデルを用いて入力データに対応する推論結果を出力する推論処理と、
前記推論結果と、前記入力データにおける少なくとも一部の領域を示す空間情報と、に基づいて、前記推論モデルの重みを更新する更新処理と、を含む更新方法。
【請求項9】
外界センサにより取得された外界情報を用いて外界環境を認識する環境認識装置であって、
前記外界情報が入力される第一のニューラルネットワークモデルを用いた推論、および前記外界情報が入力される第二のニューラルネットワークモデルを用いた推論を行う外界推論部と、
前記外界推論部の推論結果に基づいて、外界環境を認識する環境認識部と、を備え、
前記第一のニューラルネットワークモデルは、請求項1に記載の演算装置により前記外界情報における少なくとも一部の第一の領域を示す空間情報に応じて重みが設定されたニューラルネットワークモデルであり、
前記第二のニューラルネットワークモデルは、請求項1に記載の演算装置により前記外界情報における前記第一の領域と異なる第二の領域を示す空間情報に応じて重みが設定されたニューラルネットワークモデルである、環境認識装置。
【請求項10】
請求項9に記載の環境認識装置であって、
前記外界センサはイメージセンサであり、
前記外界情報は前記外界センサを用いて撮影された撮影画像であり、
前記外界推論部は、前記第一のニューラルネットワークモデルを用いて前記撮影画像の視差を推論し、前記第二のニューラルネットワークモデルを用いて前記撮影画像中の画素にマスクを設定するか否かを推論し、
前記環境認識部は、前記推論部の推定結果に基づいて、マスクを設定すると推論された画素にマスクが設定された視差画像を生成する、環境認識装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、演算装置、更新方法、および環境認識装置に関する。
【背景技術】
【0002】
ステレオカメラの撮影画像を用いた視差情報の算出に機械学習モデルが利用されている。視差の算出対象となる画素数を増やし、かつ処理周波数を向上させるためには演算量の削減が求められる。演算量削減方法は、機械学習モデルの縮約とアプリケーションに特化した軽量モデルの作成が考えられる。機械学習モデルの縮約では、パラメタの冗長性の削減および演算の近似を行うことで演算量を削減する。軽量モデルの作成では、アプリケーションで情報を必要とする空間のみに対して推論し、情報が必要でない空間について推論を行わないようなモデルを作成することで演算量を削減する。たとえば自動ブレーキ用のアプリケーションでは、制動距離が25mの場合には25mよりも手前の空間では物体を認識する必要性が希薄となる。そのため、視差探索範囲を削減することで演算量削減が可能となる。
【0003】
視差モデルの演算量削減では、まずアプリ特化の軽量化モデルを作成した後にAIモデルの縮約を行うことで演算量を削減することが考えられる。このとき、ある程度大きな空間を持つモデルを作成し、従来手法の縮約技術を適用した後に空間情報を削減すると、縮約時にはより広い空間に対する特徴を平均的に保持するように重みを削減するため、削減したい空間の特徴を余分に保持するモデルが作成されてしまう。この一方で、空間情報を削減したモデルを作成した後に従来技術を適用すると、すべての推論結果は空間情報を削減した範囲内に収まるように推論され、空間を削減した付近に対して精度が劣化する。この状態で従来の技術を適用すると空間削減付近の精度劣化点の影響を受け、推論結果全体に推論誤差が生じる。
【0004】
特許文献1には、入力データと、重み係数を用いて演算を行うニューラルネットワークを有する演算装置であって、前記入力データによる前記ニューラルネットワークのニューロンの発火状態を算出するネットワーク解析部と、前記ニューロンの発火状態に基づいて、前記ニューラルネットワークの縮約率が設定された複数の縮約パターンから縮約パターンの候補を絞り込み、前記絞り込んだ縮約パターンの候補に基づいて前記ニューラルネットワークの縮約を実行して縮約後のニューラルネットワークを生成する縮約部と、を有することを特徴とする演算装置が開示されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載されている発明では、ニューラルネットワークモデルの重みの更新に改善の余地がある。
【課題を解決するための手段】
【0007】
本発明の第1の態様による演算装置は、ニューラルネットワークモデルである推論モデルを用いて入力データに対応する推論結果を出力する推論部と、前記推論結果と、前記入力データにおける少なくとも一部の領域を示す空間情報と、に基づいて、前記推論モデルの重みを更新する更新部と、を備える。
本発明の第2の態様による更新方法は、ニューラルネットワークモデルである推論モデルが格納される記憶部を有する演算装置が実行する更新方法であって、前記推論モデルを用いて入力データに対応する推論結果を出力する推論処理と、前記推論結果と、前記入力データにおける少なくとも一部の領域を示す空間情報と、に基づいて、前記推論モデルの重みを更新する更新処理と、を含む。
本発明の第3の態様による環境認識装置は、外界センサにより取得された外界情報を用いて外界環境を認識する環境認識装置であって、前記外界情報が入力される第一のニューラルネットワークモデルを用いた推論、および前記外界情報が入力される第二のニューラルネットワークモデルを用いた推論を行う外界推論部と、前記外界推論部の推論結果に基づいて、外界環境を認識する環境認識部と、を備え、前記第一のニューラルネットワークモデルは、前述の演算装置により前記外界情報における少なくとも一部の第一の領域を示す空間情報に応じて重みが設定されたニューラルネットワークモデルであり、前記第二のニューラルネットワークモデルは、前述の演算装置により前記外界情報における前記第一の領域と異なる第二の領域を示す空間情報に応じて重みが設定されたニューラルネットワークモデルである。
【発明の効果】
【0008】
本発明によれば、設定される空間情報に応じてニューラルネットワークモデルの重みを更新できる。
【図面の簡単な説明】
【0009】
【
図3】第1の実施の形態における演算装置の処理を示すフローチャート
【
図4】設定部が入出力装置に出力する画面の一例を示す図
【
図7】第2の実施の形態における演算装置の処理を示すフローチャート
【
図8】
図7のステップS350の詳細を示すフローチャート
【
図10】第3の実施の形態における演算装置の処理を示すフローチャート
【
図11】第4の実施の形態における環境認識装置の構成図
【
図12】第4の実施の形態における環境認識装置の処理を示すフローチャート
【発明を実施するための形態】
【0010】
―第1の実施の形態―
以下、
図1~
図4を参照して、演算装置の第1の実施の形態を説明する。
【0011】
図1は、演算装置1の構成図である。演算装置1は、中央演算装置であるCPU2、読み出し専用の記憶装置であるROM3、読み書き可能な記憶装置であるRAM4、ユーザインタフェースである入出力装置5、および通信装置6を備える。CPU2がROM3に格納されるプログラムをRAM4に展開して実行することで次の機能を実現する。すなわち、推論部41、損失算出部42、重み解析部43、縮約部44、および設定部45がCPU2、ROM3、およびRAM4により実現される。以下では、縮約部44を「更新部」とも呼ぶ。
【0012】
演算装置1は、CPU2、ROM3、およびRAM4の組み合わせの代わりに書き換え可能な論理回路であるFPGA(Field Programmable Gate Array)や特定用途向け集積回路であるASIC(Application Specific Integrated Circuit)により実現されてもよい。また演算装置1は、CPU2、ROM3、およびRAM4の組み合わせの代わりに、異なる構成の組み合わせ、たとえばCPU2、ROM3、RAM4とFPGAの組み合わせにより実現されてもよい。
【0013】
入出力装置5は、演算装置1を使用するオペレータの入出力インタフェースである。入出力装置5はたとえば、マウス、キーボード、および液晶ディスプレイである。通信装置6は、演算装置1が他の装置と通信を行うためのインタフェース、たとえば通信モジュールである。演算装置1は記憶装置7とデータを授受する。記憶装置7には、入力画像71と、正解視差72と、機械学習モデル73と、係数テーブル74と、推定視差75が格納される。
【0014】
入力画像71は、2枚1組の画像を1組以上含む。1組を構成する2枚の画像は視野が重複しており、たとえば所定のベースライン距離だけ離れて光軸が平行に配された2台のカメラで撮影された画像である。正解視差72は、入力画像71における1組2枚の画像における視野が重複する領域の各画素の正確な視差値(以下、「正解値」とも呼ぶ)の集合である。たとえば入力画像71に含まれるある1組の画像において、視野が重複する領域が横100、縦100ピクセル、すなわち1万ピクセルであったとする。この場合に正解視差72には、この1組の画像に対応する正しい視差値、たとえば1万ピクセルそれぞれの正しい視差値が含まれる。入力画像71および正解視差72は、あらかじめ作成されて記憶装置7に格納される。
【0015】
機械学習モデル73は、2枚1組の画像を入力とし、2枚の画像における重複領域の各画素の視差である推定視差75を出力するモデルである。なお以下では、機械学習モデル73を「ニューラルネットワークモデル」や「推論モデル」と呼ぶこともある。本実施の形態では、この機械学習モデル73の縮約を行う。推定視差75は正解視差72と一致することが理想である。以下では推定視差75に含まれるそれぞれの値を「推定値」とも呼ぶ。係数テーブル74は、視差と後述する重要度係数との対応表である。
【0016】
図2は、係数テーブル74の一例を示す図である。係数テーブル74は、視差と重要度係数との対応表である。本実施の形態における重要度係数は、対応する視差の推定誤差を考慮する度合いであり、「0」または「1」の2種類のいずれかの値をとる。重要度係数が「0」の場合は対応する視差の推定誤差を後述する重みづけ誤差の算出に考慮しないことを示し、重要度係数が「1」の場合は対応する視差の推定誤差を重みづけ誤差に考慮することを示す。
【0017】
図2に示す例では、視差が0~48ピクセルは重要度係数が「1」に設定され、視差が49ピクセル以上では重要度係数が「0」に設定されている。すなわち、
図2に示す例では視差が48ピクセル以下の画素のみを重みづけ誤差に考慮することを意味する。
【0018】
図3は、演算装置1が実行する処理を示すフローチャートである。本フローチャートは、ステップS301~S302は推論部41、ステップS303~S304は損失算出部42、ステップS305~S306は重み解析部43、ステップS307~S309は縮約部44が実行する。
【0019】
まずステップS301において推論部41は、機械学習モデル73および入力画像71を読み込む。続くステップS302では推論部41は、機械学習モデル73に入力画像71を入力して推論を実行する。この推論により推定視差75、たとえば1万ピクセルのそれぞれについて視差の推定値が算出される。続くステップS303では損失算出部42は、正解値と推論値との誤差である視差誤差を算出する。前述のように正解値は正解視差72として格納されている。続くステップS304では損失算出部42は、正解視差72に対応する重要度係数と視差誤差との積である重みづけ誤差WEを次の数式1を用いて算出する。
【0020】
【0021】
ただし数式1において、d
trueは正解値を示し、d
estは推定値を示す。また関数fは係数テーブル74を示す関数であり、視差を引数として重要度係数を返す。
図2に示す例では、視差が0~48ピクセルは重要度係数が「1」に設定されており、視差が49ピクセル以上では重要度係数が「0」に設定されているので、d
trueが48ピクセル以下の場合にはf(d
true)は「1」を返し、d
trueが49ピクセル以上の場合にはf(d
true)は「0」を返す。数式1は、たとえばステップS302において算出した1万ピクセル個の推論値に対して、それぞれ正解値との差を算出し、さらにその正解値が48ピクセル以下の場合のみその差を足し合わせて重みづけ誤差WEを算出する。
【0022】
ステップS305では重み解析部43は、重みづけ誤差の値を用いて誤差逆伝搬法で勾配を算出する。続くステップS306では重み解析部43は、ステップS305において算出した勾配と、重みパラメタを用いて重要度を算出する。たとえば重要度Xは勾配をg、重みパラメタをwで表すと次の数式2のように算出できる。
【0023】
【0024】
ただし、重要度の算出の方法は前述した方法に限定されず、正解値と推論値の誤差を用いて算出される重要度算出方法であればどの方法であってもよい。続くステップS307では縮約部44は、ステップS306において算出した重要度の値を用いて、目標の演算量になるように重要度の値が小さいものから重みパラメタを0にまたは縮約対象の重みとして決定する。
【0025】
続くステップS308では縮約部44は、縮約したモデルを用いて再学習を行うか、ファインチューニングを行う。最後のステップS309では縮約部44は、縮約後のモデルを保存して
図3に示す処理を終了する。なお、ステップS307以降の処理は一例であり、重みパラメタごとの重要度を用いて縮約する様々な公知の手法を用いることができる。
【0026】
図4は、設定部45が入出力装置5に出力する画面80の一例を示す図である。画面80は、推論結果確認領域81と、重要度係数設定領域85とを有する。推論結果確認領域81には、入力画像表示ボタン82、オリジナル推論結果表示ボタン83、および縮約後推論結果表示ボタン84が含まれる。ユーザが入力画像表示ボタン82を押すと、入出力装置5に推論部41に入力される入力画像71が表示される。ユーザがオリジナル推論結果表示ボタン83を押すと、入出力装置5に縮約前の機械学習モデル73を用いた推論結果が表示される。ユーザが縮約後推論結果表示ボタン84を押すと、入出力装置5に縮約後の機械学習モデル73を用いた推論結果が表示される。
【0027】
重要度係数設定領域85には、視差入力欄86、重要度係数入力欄87、および設定ボタン88が含まれる。ユーザが視差入力欄86および重要度係数入力欄87に数値を入力してから設定ボタン88を押すと、入力内容が係数テーブル74に追記される。ただし視差入力欄86には複数の数値が入力されてもよい。また重要度係数設定領域85は、係数テーブル74を初期化するボタンを備えてもよい。
【0028】
上述した第1の実施の形態によれば、次の作用効果が得られる。
(1)演算装置1は、ニューラルネットワークモデルである機械学習モデル73を用いて入力画像71に対応する推論結果である推定視差75を出力する推論部41と、推定視差75と、入力画像71における少なくとも一部の領域を示す空間情報である重要度係数と、に基づいて、機械学習モデル73の重みを更新する縮約部44と、を備える。そのため演算装置1は、設定される係数テーブル74に応じて機械学習モデル73の重みを更新できる。
【0029】
(2)縮約部44は、機械学習モデル73のいずれかの重みをゼロに更新する。そのため、演算装置1は機械学習モデル73を縮約できる。
【0030】
(3)入力画像71は1組の画像である。推定視差75は、入力画像71である1組の画像の重複領域における視差である。係数テーブル74は、
図2に示すように視差および重要度係数の対応表である。演算装置1は、推論結果と正解値の差分である誤差値、および重要度係数に基づき重みづけ誤差を求める損失算出部42と、重みづけ誤差を用いて、機械学習モデル73の重みを更新する縮約部44と、を備える。
【0031】
(4)損失算出部42は、誤差値および重要度係数の積を足しあわせることで重みづけ誤差を算出する。
図2に示すように、重要度係数にはゼロを含む。そのため、機械学習モデル73による推定が不要な視差の重要度係数をゼロにすることで機械学習モデル73を効率よく縮約できる。
【0032】
(変形例1)
図5は、変形例1における係数テーブル74Aを示す図である。上述した第1の実施の形態では、係数テーブル74における重要度係数は「0」または「1」のいずれかであった。しかし重要度係数は「0」および「1」以外の値をとってもよいし、値の種類は「2」に限定されない。すなわち、
図5に示すように、「0」~「4」の整数でもよいし、「0.1」や「5.5」などの小数でもよい。重要度係数の値や種類の数が変化しても
図3に示すフローチャートの処理は特段の変更は不要である。この変形例1によれば、視差ごとの重要性を細かく設定できる。
【0033】
(変形例2)
図6は、変形例2における係数テーブル74Bを示す図である。上述した第1の実施の形態および変形例1では、重要度係数は視差に対応する値として設定された。しかし重要度係数は入力画像71の座標空間に対応する値として設定されてもよい。この場合に重要度係数は、第1の実施の形態のように「0」または「1」の2値でもよいし、変形例1のように「0」以上の3種類以上の数でもよい。
【0034】
本変形例では、推論部41に入力される2枚1組の画像において視野が重複する領域が既知であることを前提に、視野が重複する領域における各ピクセルの重要度係数を定義する。たとえば視野の重複が縦1000ピクセル、横1000ピクセルの場合に、
図6の下部に示すように左上の座標を(0、0)とし、右下の座標を(999、999)として、座標空間ごとに重要度係数を設定する。具体的には
図6に示す例では、左上の(0、0)~(12、12)の領域は重要度係数が「4」に設定される。本変形例においても、
図3に示すフローチャートの処理は特段の変更は不要である。
【0035】
この変形例2によれば、入力画像71の座標空間に対して重要度係数を設定できる。そのため、入力画像71において視差の精度が求められる座標空間に対して大きな重要度係数を設定すればよく、重要度係数の設定が容易である。
【0036】
この変形例2によれば次の作用効果が得られる。
(5)係数テーブル74Aは、重複領域における座標および重要度係数の対応表である。そのため、入力画像71における機械学習モデル73による推定が不要な領域の重要度を小さくすることで、機械学習モデル73を効率よく縮約できる。
【0037】
―第2の実施の形態―
図7~
図8を参照して、演算装置の第2の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、処理の内容が第1の実施の形態と異なる。
【0038】
図7は、第2の実施の形態における演算装置1Aの処理を示すフローチャートである。
図7では、
図3と同一の処理には同一のステップ番号を付し、
図3と類似する処理には類似するステップ番号を付す。ステップS301~S302は推論部41、ステップS303およびS350は損失算出部42、ステップS305A、S306A、およびS360は重み解析部43、ステップS307A~S309は縮約部44が実行する。
【0039】
ステップS301~S303は
図3と同様なので説明を省略する。ステップS303の次に実行されるステップS350では、同一係数誤差算出処理を行う。同一係数誤差算出処理では、重要度係数の値ごとに誤差である同一係数誤差を算出する。ステップS350の詳細を
図8を参照して説明する。
【0040】
図8は、
図7のステップS350の詳細を示すフローチャートである。まずステップS351では損失算出部42は、係数テーブル74における重要度係数の値の種類数を特定する。たとえば
図2に示す例では、重要度係数は「0」か「1」の値しかとらないので、種類数は「2」となる。続くステップS352では損失算出部42は、重要度係数の値のうち未選択の1つを選択する。なおここで選択した値を以下では「対象係数」と呼ぶ。
【0041】
ステップS353では損失算出部42は、対象係数に対応する視差である対象視差を列挙する。たとえば
図2の例において対象係数が「1」の場合には、ステップS353では「0、1、2、・・、48」が対象視差として列挙される。続くステップS354では損失算出部42は、正解視差72から正解視差72が対象係数の視差であるピクセルの座標を全て抽出する。以下では、本ステップにおいて抽出した座標を「抽出座標」と呼ぶ。上述した例では、正解値が「0、1、2、・・、48」である座標が抽出される。続くステップS355では損失算出部42は、ステップS303で算出する正解値と推論値との誤差における抽出座標の値を抽出し平均を取り、同一係数誤差とする。対象係数が「V」である同一係数誤差SE
Vの算出は次の数式3により表される。
【0042】
【0043】
ただし数式3において、Nvは対象係数が「V」の場合にステップS354において抽出される抽出座標の総数である。数式1に示すように、本式には重要度係数の値は含まれていない点で
図3のステップS304における処理と大きく異なる。続くステップS356では損失算出部42は、重要度係数に未選択の値があるか否かを判断する。損失算出部42は、未選択の値があると判断する場合はステップS352に戻る。損失算出部42は、全ての値を選択した、換言すると全ての値を対象にステップS352~S355の処理を実行したと判断する場合は
図8に示す処理を終了して
図7に戻る。
図7に戻って説明を続ける。
【0044】
ステップS305Aでは重み解析部43は、ステップS350において算出した重要度係数の種類ごとに算出した同一係数誤差を用いて誤差逆伝搬法で同一係数勾配をそれぞれ算出する。
図3におけるステップS305と本ステップの処理を比較すると、重みづけ誤差と同一係数誤差のいずれを用いるかが異なる。続くステップS306Aでは重み解析部43は、重要度係数の種類ごとに算出した勾配それぞれについて、
図3のステップS306と同様に重要度を算出する。なおここでは説明の便宜のためにステップ番号を
図3とは異ならせた。
【0045】
続くステップS360では重み解析部43は、ステップS306Aにおいて算出した重要度係数ごとに算出した重要度(同一係数重要度)と重要度係数との積の和を重みづけ重要度として算出する。重みづけ重要度は、重みWと同じ次元の行列である。続くステップS307Aでは縮約部44は、ステップS307における重要度の代わりにステップS360において算出した重み付け重要度を用いて、縮約する重みパラメタを探索する。続くステップS308およびステップS309の処理は
図3と同様なので説明を省略する。
【0046】
上述した第2の実施の形態によれば、次の作用効果が得られる。
(6)係数テーブル74は、視差および重要度係数の対応表である。演算装置1Aは、推論結果と正解値の差分である誤差値に基づき誤差を求める損失算出部42と、誤差を用いてニューラルネットワークモデルにおける重みパラメタの重要度を算出(
図7のS306A)し、重みパラメタの重要度および重要度係数に基づき重みづけ重要度を算出する(S360)重み解析部43と、重みづけ重要度に基づき更新候補の重みを決定する縮約部44と、を備える。そのため、係数テーブル74を用いて重みづけ重要度を算出し、機械学習モデル73を縮約できる。なお、第1の実施の形態の手法と本実施の形態の手法に明確な優劣はなく、いずれの手法でも同様の効果が得られる。
【0047】
―第3の実施の形態―
図9~
図10を参照して、演算装置の第3の実施の形態を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第1の実施の形態と同じである。本実施の形態では、主に、縮約ではなく学習を行う点で、第1の実施の形態と異なる。
【0048】
図9は、演算装置1Bの構成図である。第1の実施の形態における演算装置1との相違点は、RAM4が縮約部44の代わりに学習部44Aを備える点である。学習部44Aは、機械学習モデル73を用いた推論部41による推論結果が真値に近くなるように機械学習モデル73の重みを更新する。以下では、学習部44Aを「更新部」とも呼ぶ。
【0049】
図10は、第3の実施の形態における演算装置1Bの処理を示すフローチャートである。
図10では、
図3と同一の処理には同一のステップ番号を付し、
図3と類似する処理には類似するステップ番号を付す。ステップS301~S302は推論部41、ステップS303およびS304は損失算出部42、ステップS305は重み解析部43、ステップS380およびS309は学習部44Aが実行する。第1の実施の形態における
図3と比較すると、重要度を計算するステップS306が削除され、ステップS307およびステップS308の代わりにステップS380が追加されている点が異なる。
【0050】
ステップS301~S305の処理は第1の実施の形態と同様なので説明を省略する。ステップS380では学習部44Aは、勾配降下法で機械学習モデル73の重みパラメタを変更する。続くステップS309Aでは学習部44Aは、ステップS380において変更した機械学習モデル73を保存して
図10に示す処理を終了する。
【0051】
上述した第3の実施の形態によれば、次の作用効果が得られる。
(7)学習部44Aは、推論結果が真値に近くなるように機械学習モデル73の重みを更新する。
【0052】
―第4の実施の形態―
図11~
図12を参照して、本発明の第4の実施の形態として、環境認識装置を説明する。以下の説明では、第1の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。本実施の形態では、演算装置1により生成された更新後または縮約後の機械学習モデル73を搭載した環境認識装置である点で第1の実施の形態と異なる。
【0053】
図11は、環境認識装置300の構成図である。環境認識装置300は、第一撮像装置310、第二撮像装置311、および車両制御装置340とともに車両に搭載され、外界環境を認識する。ただし環境認識装置300が搭載される対象は車両に限定されず、移動可能な移動体であればよい。この場合には、第一撮像装置310、第二撮像装置311、および車両制御装置340も同一の移動体に搭載される。
【0054】
環境認識装置300は、第一撮像装置310および第二撮像装置311において撮像された撮影画像を取得する画像取得部320、および視差推定を行う視差演算部330を備える。なお以下では、特徴量抽出部331、視差推論部333、およびマスク推論部334の3つをまとめて「外界推論部」とも呼び、マスク視差画像生成部335を「環境認識部」とも呼ぶ。
【0055】
視差演算部330は、取得された画像から特徴量を抽出する特徴量抽出部331、機械学習モデル(「ニューラルネットワークモデル」や「推論モデル」と呼ぶ)を格納する機械学習モデル格納部332、視差を求める視差推論部333、後述するマスク領域を推定するマスク推論部334、視差推論部333が求めた視差とマスク推論部334が求めたマスク領域を基に視差画像を生成するマスク視差画像生成部335を備える。特徴量抽出部331における画像の特徴抽出、視差推論部333およびマスク推論部334における推論処理は、機械学習モデルを用いて処理する。マスク推論部334により生成されたマスク視差画像は、後段の車両制御装置340に出力され、任意の車両制御アプリケーションの実行等に用いられる。
【0056】
第一撮像装置310および第二撮像装置311は、たとえば車両の前方を撮像することにより、互いに視差を有する一組の撮影画像(左画像P1および右画像P2)を生成するステレオカメラである。第一撮像装置310および第二撮像装置311はイメージセンサを内蔵し、車両の外界の情報を収集する。そのため、第一撮像装置310および第二撮像装置311は「外界センサ」と呼ぶこともできる。
【0057】
このステレオカメラは、左カメラとして第一撮像装置310および右カメラとして第二撮像装置311を有している。左カメラおよび右カメラは、たとえば、車両におけるフロントガラスの上部近傍に、車両の幅方向に沿って所定距離だけ離間して配置されている。また、これらの左カメラおよび右カメラは、互いに同期して撮像動作を行うように設定されている。左右のカメラの視差を利用してステレオ視差画像を生成することができる。
【0058】
なお第一撮像装置310および第二撮像装置311は、互いに視差を有する一組の撮影画像を生成できればよく、例えば3つ以上のカメラを備えた三眼カメラに第一撮像装置310および第二撮像装置311が含まれてもよい。また、車両の全周囲の重複撮像領域を含んで撮像するマルチカメラに第一撮像装置310および第二撮像装置311が含まれてもよい。さらに、第一撮像装置310および第二撮像装置311はカメラの種類がそれぞれ異なるものであってもよい。また、複数のカメラでなく単眼のカメラであってもよい。たとえば移動機構を有する単眼カメラが第1の位置で撮影を行う際に第一撮像装置310として扱い、その単眼カメラが第2の位置で撮影を行う際に第二撮像装置311として扱ってもよい。
【0059】
画像取得部320は、第一撮像装置310において取得された左画像P1、および第二撮像装置311において取得された右画像P2を取得する。このとき、左画像P1および右画像P2のそれぞれは1枚の画像であってもよいし、時系列に取得した複数枚の画像でもよい。
【0060】
特徴量抽出部331は、画像取得部320により取得された左画像P1および右画像P2から、視差推定用の特徴量を抽出する。特徴量の抽出には、機械学習モデルを用いることができる。特徴量抽出部331は、視差を有する左画像P1および右画像P2をそれぞれ特徴量推定用機械学習モデルに入力し、左画像P1および右画像P2のそれぞれから特徴量を抽出し、それぞれに対応する特徴マップKを生成する。特徴マップKは、例えば、幅W、高さH、チャンネルCが3次元配置された画素値により構成されている。
【0061】
次に特徴量抽出部331は、生成された2つの特徴マップKを用い、左画像P1および右画像P2の対応点に関する情報(以下、「視差推定用特徴量U」と呼ぶ)を作成する。ここで、左画像P1および右画像P2の対応点に関する情報とは、左画像P1および右画像P2の同一被写体のデプス(距離)に応じたずれ量を求めるための情報である。
【0062】
ただし特徴量抽出部331は、画像取得部320において取得される時系列の複数の左画像P1に対し特徴量を抽出した、時系列の特徴マップK間の対応点に関する情報を作成してもよい。なお、特徴量の抽出に先立って所定の前処理を施してもよい。前処理には、一例として、アフィン処理や輝度補正処理、画素補完処理等が含まれる。前処理済みの画像を用いて特徴量の抽出を行うことで、特徴量推定用機械学習モデルの演算量を削減することができる。
【0063】
視差推論部333は、機械学習モデルの重みパラメタ(以下、「第一のニューラルネットワークモデル」とも呼ぶ)を機械学習モデル格納部332から読み出す。重みパラメタは、第1の実施の形態に係る演算装置1により更新された縮約後の機械学習モデルを示すものである。すなわち、所定の視差に対する重要度係数を用いて更新された更新後の機械学習モデルである。視差推論部333は、重要度係数が0に設定された重みパラメタに係る乗算や加算等の計算を省略するように計算を制御する。機械学習モデル格納部332には、第1の実施の形態に示した演算装置1により更新された更新後の機械学習モデルに係る重みパラメタの情報が保存されている。
【0064】
ただし、機械学習モデル格納部332に保存される重みパラメタの情報は、重みパラメタの数値そのものでもよいし、符号化された形式でもよい。また、機械学習モデル格納部332には、あらかじめ重みパラメタが保存されてもよいし、図示しないネットワークを介して図示しないサーバから受信した重みパラメタを保存してもよい。さらに、機械学習モデル格納部332は通信インタフェースとしてのみ機能し、特徴量抽出部331などから要求があるたびに、図示しないサーバから重みパラメタを取得してもよい。
【0065】
視差推論部333は、視差推定用特徴量Uを入力値として、機械学習モデル格納部332から読み出した重みパラメタに係る更新後の機械学習モデルを用いて視差を推定する。ここで、更新後の機械学習モデルが特定の視差に対する重要度係数を基に縮約されているため、重要度係数が高く設定されている領域(以下、「第一の領域」とも呼ぶ)の視差に対する推定精度が高くなる。たとえば、自車両から近距離の領域に対応する視差の重要度係数が高く、自車両から遠距離の領域に対応する視差の重要度係数が低く設定されている場合には、重要度係数を用いた更新により、更新後の機械学習モデルは自車両から近距離の範囲において高い推論精度を有する。したがって、更新後の機械学習モデルを用いることで、車両制御アプリケーション毎に必要な精度で視差が推論できる。視差推論部333は、推論によって求められた各画素の画素値を示す視差画像Dを後段のマスク視差画像生成部335に出力する。
【0066】
一方、重要度係数が低く設定された領域(以下、「第二の領域」とも呼ぶ)は、更新の実行に伴い、視差の推論精度が低下する場合がある。そこで、第4の実施の形態に係る環境認識装置300は、視差の推論精度が低くなる領域に対してマスク(遮蔽)処理を施すマスク推論部334を有する。
【0067】
マスク推論部334は、マスク推定用機械学習モデルに係る重みパラメタ(以下、「第二のニューラルネットワークモデル」とも呼ぶ)を機械学習モデル格納部332から読み込み、視差推定用特徴量Uとマスク推定用機械学習モデルとに基づいてマスクを生成する。具体的には、マスク推論部102は、視差推定用特徴量Uをマスク推定用機械学習モデルに入力し、マスク推定用機械学習モデルから出力されるデータをマスク領域データMとして得る。
【0068】
マスク領域データMは、重要度係数が低く設定された第二の領域のうち、重要度係数に基づいた縮約により視差の推定精度が低下している可能性のある領域(以下、「マスク領域」と呼ぶ)を遮蔽または無効化するためのデータである。マスク領域データMはたとえば、当該マスク領域内に対応する画素に第1の値(たとえば「0」)が設定され、当該マスク領域外に対応する画素に第1の値とは異なる第2の値(たとえば「1」)が設定される。なお、マスク領域データMの各画素に設定される値は、2値データでなくてもよく、連続値であってもよい。マスク推論部334は、推論によって求められたマスク領域データM、すなわち画素毎に設定された第1の値または第2の値を後段のマスク視差画像生成部335に出力する。
【0069】
マスク推定用機械学習モデルに係る重みパラメタは、前述の重要度係数が低く設定された空間情報に対応する画素に第1の値を設定し、重要度係数が高く設定された空間情報に対応する画素に第2の値を設定するように学習されている。第1の値または第2の値を設定する際の基準には、重要度係数に対する所定の閾値や評価関数等を適宜用いればよい。
【0070】
マスク視差画像生成部335は、視差推論部333およびマスク推論部334から入力された視差画像Dおよびマスク領域データMに基づいて、マスク視差画像Dmを生成する。このとき、マスク推論部334により「0」の値が設定された画素は視差が無効となり、「1」の値が設定された画素は視差推論部333により求められた視差値が使用される。マスク推論部334が生成するマスク領域データMにより、視差の推論精度が低下すると予想される視差に対応する画素を無効にすることができ、誤検知や誤認識を抑制することが可能となる。生成された視差画像Dは、車両制御装置340に出力され、任意の車両制御アプリケーションや自己位置推定等に用いられる。
【0071】
図12は、環境認識装置300の処理を示すフローチャートである。具体的には
図4は、視差推論部333、マスク推論部334およびマスク視差画像生成部335の処理を示している。まずステップS31において、視差推論部333は、視差推定用特徴量Uを更新後の機械学習モデルに入力する。続くステップS32ではマスク推論部334は、視差推定用特徴量Uをマスク推定用機械学習モデルに入力する。続くステップS33では視差推論部333は、更新後の機械学習モデルによる推論を実行し、視差画像Dを出力する。
【0072】
続くステップS34ではマスク推論部334は、マスク推定用機械学習モデルによる推論を実行し、マスク領域データMを出力する。最後にステップS35においてマスク視差画像生成部335は、マスク視差画像Dmを生成して
図12に示す処理を終了する。なおステップS31とS32は実行順序が逆でもよいし並列に実行されてもよい。また、ステップS33とS34は実行順序が逆でもよいし並列に実行されてもよい。
【0073】
以上説明した第4の実施の形態によれば、次の作用効果が得られる。
(8)環境認識装置300は、第一撮像装置310および第二撮像装置311に内蔵された外界センサにより取得された外界情報を用いて外界環境を認識する。環境認識装置300は、外界情報が入力される第一のニューラルネットワークモデルを用いた推論、および外界情報が入力される第二のニューラルネットワークモデルを用いた推論を行う外界推論部、すなわち特徴量抽出部331、視差推論部333、およびマスク推論部334と、外界推論部の推論結果に基づいて、外界環境を認識する環境認識部、すなわちマスク視差画像生成部335と、を備える。第一のニューラルネットワークモデルは、第1の実施の形態に係る演算装置1により所定の視差に対する重要度係数を用いて更新された更新後の機械学習モデルである。第二のニューラルネットワークモデルは、演算装置1により外界情報における第一の領域と異なる第二の領域を示す空間情報に応じて重みが設定されたニューラルネットワークモデルである。
【0074】
(9)第一撮像装置310および第二撮像装置311が備える外界センサはイメージセンサである。外界情報は外界センサを用いて撮影された撮影画像、具体的には左画像P1および右画像P2である。特徴量抽出部331、視差推論部333、およびマスク推論部334は、第一のニューラルネットワークモデルを用いて撮影画像の視差を推論し、第二のニューラルネットワークモデルを用いて撮影画像中の画素にマスクを設定するか否かを推論する。マスク視差画像生成部335(環境認識部)は、特徴量抽出部331、視差推論部333、およびマスク推論部334の推定結果に基づいて、マスクを設定すると推論された画素にマスクが設定された視差画像を生成する。
【0075】
そのため、特定のアプリケーションに特化した更新後の機械学習モデルを環境認識装置300に適用して視差推論精度が低下する領域が存在する場合であっても、誤検知や誤認識を防止することができる。第4の実施の形態では視差を推定する環境認識装置の例を示したが、深度の推定や画像に対してピクセル単位に映っているものの種類を推定するタスク等の認識でもよい。
【0076】
上述した各実施の形態および変形例において、機能ブロックの構成は一例に過ぎない。別々の機能ブロックとして示したいくつかの機能構成を一体に構成してもよいし、1つの機能ブロック図で表した構成を2以上の機能に分割してもよい。また各機能ブロックが有する機能の一部を他の機能ブロックが備える構成としてもよい。
【0077】
上述した各実施の形態および変形例において、プログラムはROM3に格納されるとしたが、プログラムは演算装置1に内蔵される不揮発性記憶装置に格納されていてもよい。また、演算装置1が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースと演算装置1が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、例えば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やFPGAにより実現されてもよい。
【0078】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【0079】
1、1A、1B:演算装置、5:入出力装置、6:通信装置、7:記憶装置、41:推論部、42:損失算出部、43:重み解析部、44:縮約部、44A:学習部、45:設定部、41:入力画像、72:正解視差、73:機械学習モデル、74、74A、74B:係数テーブル、300:環境認識装置、331:特徴量抽出部(外界推論部)、333:視差推論部(外界推論部)、334:マスク推論部(外界推論部)、335:マスク視差画像生成部(環境認識部)