(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-19
(45)【発行日】2024-08-27
(54)【発明の名称】情報処理装置、画像認識方法、及びプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20240820BHJP
【FI】
G06T7/00 350C
(21)【出願番号】P 2021002348
(22)【出願日】2021-01-08
【審査請求日】2023-04-10
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【識別番号】100113549
【氏名又は名称】鈴木 守
(74)【代理人】
【識別番号】100115808
【氏名又は名称】加藤 真司
(74)【代理人】
【識別番号】100169199
【氏名又は名称】石本 貴幸
(72)【発明者】
【氏名】有住 なな
【審査官】佐藤 実
(56)【参考文献】
【文献】米国特許出願公開第2020/0320408(US,A1)
【文献】Maitreya Suin et al.,Spatially-Attentive Patch-Hierarchical Network for Adaptive Motion Deblurring,2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR),IEEE,2020年06月13日,pp.3603-3612,https://ieeexplore.ieee.org/document/9157139
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
画像データを入力データとし、前記入力データに基づいてアテンションマップを作成して出力データを得る情報処理装置(10)であって、
前記入力データから
クエリデータのスぺーシャルロケーションが含まれるキーデータを算出するキーデータ算出部(22)と、
前記入力データからバリューデータを算出するバリューデータ算出部(24)と、
クエリデータの代わりに前記キーデータ
のみを使いSAN構造とされる前記アテンションマップを生成するアテンションマップ生成部(26)と、
前記アテンションマップと前記バリューデータとから前記出力データを生成する出力データ生成部(28)と、
を備える情報処理装置。
【請求項2】
前記キーデータ算出部は、前記バリューデータ算出部によって算出された前記バリューデータから前記キーデータを算出する、請求項1記載の情報処理装置。
【請求項3】
前記出力データ生成部からの前記出力データに前記バリューデータを加算して出力データとする、請求項2記載の情報処理装置。
【請求項4】
前記アテンションマップ生成部は、前記キーデータ及び前記バリューデータに基づいて前記アテンションマップを生成する、請求項1から請求項3の何れか1項記載の情報処理装置。
【請求項5】
画像データを入力データとし、前記入力データに基づいてアテンションマップを作成して出力データを得るための画像認識方法であって、
前記入力データから
クエリデータのスぺーシャルロケーションが含まれるキーデータを算出し、
前記入力データからバリューデータを算出し、
クエリデータの代わりに前記キーデータ
のみを使いSAN構造とされる前記アテンションマップを生成し、
前記アテンションマップと前記バリューデータとから前記出力データを生成する、
画像認識方法。
【請求項6】
画像データを入力データとし、前記入力データに基づいてアテンションマップを作成して出力データを得るためのプログラムであって、
コンピュータを、
前記入力データから
クエリデータのスぺーシャルロケーションが含まれるキーデータを算出するキーデータ算出部と、
前記入力データからバリューデータを算出するバリューデータ算出部と、
クエリデータの代わりに前記キーデータ
のみを使いSAN構造とされる前記アテンションマップを生成するアテンションマップ生成部と、
前記アテンションマップと前記バリューデータとから前記出力データを生成する出力データ生成部と、
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、画像認識方法、及びプログラムに関する。
【背景技術】
【0002】
ニューラルネットワークの手法として畳み込みニューラルネットワーク(Convolution Neutral Network:CNN)が広く用いられているが、近年、CNNに代わり特許文献1に記載されているアテンション(attention)構造も用いられている。
【0003】
アテンション構造は
図7に示されるように、入力データをリニア(linear)変換することでバリュー(Value)、キー(Key)、クエリ(Query)の3種類のデータに変換し、キーデータとクエリデータとを用いてアテンションマップ(attention map)を生成する。そして、アテンション構造は、アテンションマップとバリューデータとのアグリゲーション(aggregation)によって出力データを得る。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、アテンション構造は自然言語の認識に用いられていたが、画像認識用のアテンション構造としてパッチワイズ セルフ アテンションマップ(patchwise self-attention map)を用いたSAN(Self-Attention Network)構造が開発されている。SAN構造は、従来のアテンション構造のようにクエリデータ対キーデータのスぺーシャルロケーション(spatial location)一つずつとの関係性からアテンションマップを生成するのではなく、クエリデータ対キーデータの全てのスぺーシャルロケーションを用いてアテンションマップを生成する。
【0006】
しかしながら、従来のアテンション構造及びSAN構造であっても、入力データをバリューデータ、キーデータ、クエリデータの3種類に変換するため、情報処理装置に計算量とメモリ容量とを必要とする。
【0007】
本発明は上記背景に鑑み、アテンション構造を用いて行われる画像認識に必要とする計算量とメモリ容量とを抑制できる、情報処理装置、画像認識方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は上記課題を解決するために以下の技術的手段を採用する。特許請求の範囲及びこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示す一例であって、本発明の技術的範囲を限定するものではない。
【0009】
本発明の一態様の情報処理装置(10)は、画像データを入力データとし、前記入力データに基づいてアテンションマップを作成して出力データを得る情報処理装置であって、前記入力データからキーデータを算出するキーデータ算出部(22)と、前記入力データからバリューデータを算出するバリューデータ算出部(24)と、前記キーデータに基づいて前記アテンションマップを生成するアテンションマップ生成部(26)と、前記アテンションマップと前記バリューデータとから前記出力データを生成する出力データ生成部(28)と、を備える。
【0010】
本発明の一態様の画像認識方法は、画像データを入力データとし、前記入力データに基づいてアテンションマップを作成して出力データを得るための画像認識方法であって、前記入力データからキーデータを算出し、前記入力データからバリューデータを算出し、前記キーデータに基づいて前記アテンションマップを生成し、前記アテンションマップと前記バリューデータとから前記出力データを生成する。
【0011】
本発明の一態様のプログラムは、画像データを入力データとし、前記入力データに基づいてアテンションマップを作成して出力データを得るためのプログラムであって、コンピュータを、前記入力データからキーデータを算出するキーデータ算出部と、前記入力データからバリューデータを算出するバリューデータ算出部と、前記キーデータに基づいて前記アテンションマップを生成するアテンションマップ生成部と、前記アテンションマップと前記バリューデータとから前記出力データを生成する出力データ生成部と、して機能させる。
【発明の効果】
【0012】
本発明によれば、アテンション構造を用いて行われる画像認識に必要とする計算量とメモリ容量とを抑制できる。
【図面の簡単な説明】
【0013】
【
図1】第1実施形態の情報処理装置の構成を示す機能ブロック図である。
【
図2】第1実施形態のアテンション構造の処理の流れを示すフローチャートである。
【
図3】第2実施形態のアテンション構造の処理の流れを示すフローチャートである。
【
図4】第3実施形態のアテンション構造の処理の流れを示すフローチャートである。
【
図5】第4実施形態のアテンション構造の処理の流れを示すフローチャートである。
【
図6】実施形態のアテンション構造と従来のアテンション構造による精度の比較を示す図である。
【
図7】従来のアテンション構造の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、図面を参照して本発明の実施形態を説明する。なお、以下に説明する実施形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施形態に応じた具体的構成が適宜採用されてよい。
【0015】
(第1実施形態)
図1は、本実施形態の情報処理装置10の構成を示す機能ブロック図である。本実施形態の情報処理装置10は、複数のアテンション構造を有するニューラルネットワークを用いて、画像認識を行うものであり、画像データを入力データとし、入力データに基づいてアテンションマップを作成して出力データ(画像認識結果)を得る。なお、本実施形態の情報処理装置10は、例えば、車両に搭載され、車載カメラで取得された画像データを入力データとするが、これに限らず、画像認識の対象となる画像データがネットワークを介して入力されるサーバ等とされてもよい。
【0016】
本実施形態の情報処理装置10は、CPU(Central Processing Unit)等の演算部12、各種プログラム及び各種データ等が予め記憶されたROM(Read Only Memory)14、演算部12による各種プログラムの実行時のワークエリア等として用いられるRAM(Random Access Memory)16、演算部12で実行される各種プログラム(画像認識処理)や各種データ等を記憶する記憶装置18を備えている。なお、記憶装置18は、半導体記憶装置であるが、特に限定されない。
【0017】
演算部12は、アテンション構造を用いた画像認識処理を実行するために、入力部20、キーデータ算出部22、バリューデータ算出部24、アテンションマップ生成部26、及び出力データ生成部28を備える。
【0018】
入力部20は、認識の対象となる画像データの入力を受け付ける。なお、以下の説明では、入力部20で受け付けた画像データを入力データともいう。
【0019】
キーデータ算出部22は、入力データからキーデータを算出する。キーデータ算出部22は、一例として、入力データをリニア(linear)変換することでキーデータを算出する。なお、入力データを変換してキーデータにするための変換式は、学習済みの変換式である。
【0020】
バリューデータ算出部24は、入力データからバリューデータを算出する。バリューデータ算出部24は、一例として、入力データをリニア変換することでバリューデータを算出する。なお、入力データを変換してバリューデータにするための変換式は、学習済みの変換式である。
【0021】
アテンションマップ生成部26は、アテンションマップを生成する。本実施形態のアテンションマップ生成部26は、一例として、学習済みの所定の変換式を用いてキーデータに基づいてアテンションマップを生成するものであり、詳細を後述するようにアテンションマップの生成にクエリデータを用いない。
【0022】
出力データ生成部28は、アテンションマップとバリューデータとから出力データを生成する。なお、アテンションマップとバリューデータとから出力データを生成することをアグリゲーションともいう。
【0023】
なお、演算部12は、入力データをリニア変換することでクエリデータを算出するクエリデータ算出部が設けられてもよい。また、アテンションマップ生成部26は、キーデータとクエリデータとに基づいてアテンションマップを生成する機能を有してもよい。
【0024】
また、本実施形態のアテンション構造は、入力データを画像データとし、パッチワイズ セルフ アテンションマップ(patchwise self-attention map)を用いたSAN(Self-Attention Network)構造である。
【0025】
SAN構造では、クエリデータが1つのピクセルに対応し、キーデータがNピクセル×Nピクセルに対応しているため、キーデータはクエリデータを含むという関係性がある。また、キーデータとバリューデータとでは、入力データに対する画像範囲は同じであるものの、バリューデータのチャンネル数はキーデータのチャンネル数に比べて多い。なお、バリューデータ、キーデータ、及びクエリデータを算出するためのリニア変換によって増減する。
【0026】
次に、本実施形態のアテンション構造を用いた画像認識処理について
図2を用いて説明する。
図2は、情報処理装置10で実行されるアテンション構造の処理の流れを示すフローチャートである。また、画像認識処理は、情報処理装置10が備える記憶装置18等の記録媒体に格納されたプログラムによって実行される。なお、このプログラムが実行されることで、プログラムに対応する方法が実行される。
【0027】
まず、ステップ100では、入力部20が入力データである画像データを受け付ける。
【0028】
次のステップ102では、バリューデータ算出部24が入力データをリニア変換することでバリューデータを算出する。また、ステップ104では、キーデータ算出部22が入力データをリニア変換することでキーデータを算出する。なお、ステップ102及びステップ104は並行して処理が行われてもよい。
【0029】
次のステップ106では、アテンションマップ生成部26がキーデータを変換することでアテンションマップを生成する。
【0030】
次のステップ108では、出力データ生成部28がアテンションマップとバリューデータとをアグリゲーションすることで出力データを生成して出力する。
【0031】
なお、本実施形態のニューラルネットワークは、複数層のアテンション構造で構成されており、
図2に示されるアテンション構造が一層に該当する。すなわち、アグリゲーションを経て出力される出力データは、次層のアテンション構造の入力データとなる。そして、最終層のアテンション構造からの出力データが、入力された画像データに対する画像認識結果となる。
【0032】
本実施形態のアテンション構造は、
図2に示されるように、従来のアテンション構造で行われていたクエリデータの算出を行わず、キーデータのみを変換することでアテンションマップを算出している。
【0033】
なお、クエリデータを用いずにキーデータのみを用いることでアテンションマップを生成できる理由は以下のとおりである。
【0034】
(1)SAN構造では、ある一点(ピクセル)のアテンションマップを生成するために、その一点を含む、キーデータの画像空間領域(以下「スぺーシャルロケーション(spatial location)」という。)を用いる。クエリデータとキーデータとは、入力データからのリニア変換で生成され、キーデータのスぺーシャルロケーションにはクエリデータのスぺーシャルロケーションが含まれている。このため、クエリデータの代わりにキーデータのみを使いアテンションマップを生成できる。
【0035】
(2)SAN構造では、キーデータとクエリデータとを連結(concatenate)したのち全結合(full connect)でアテンションマップを生成する。従って、キーデータとクエリデータとで同じデータを2回入力することになり、これは全結合層において重みの値を2倍とすることと同じとなる。このため、クエリデータをキーデータで代用することで、キーデータを2回使用するのではなく、キーデータを1回のみ使用することとなり、計算量やメモリ容量が削減されることとなる。
【0036】
(第2実施形態)
以下、本発明の第2実施形態について説明する。なお、本実施形態に係る情報処理装置10の構成は、
図1に示す第1実施形態に係る情報処理装置10の構成と同様であるが、本実施形態のキーデータ算出部22は、バリューデータ算出部24によって算出されたバリューデータからキーデータを算出する。
【0037】
図3は、本実施形態のアテンション構造を用いた画像認識処理の流れを示すフローチャートである。
【0038】
まず、ステップ200では、入力部20が入力データである画像データを受け付ける。
【0039】
次のステップ202では、バリューデータ算出部24が入力データをリニア変換することでバリューデータを算出する。
【0040】
次のステップ204では、キーデータ算出部22がバリューデータをリニア変換することでキーデータを算出する。
【0041】
次のステップ206では、アテンションマップ生成部26がキーデータを変換することでアテンションマップを生成する。
【0042】
次のステップ208では、出力データ生成部28がアテンションマップとバリューデータとをアグリゲーションすることで出力データを生成して出力する。
【0043】
図3に示されるように本実施形態では、入力データをバリューデータに変換してから、さらにバリューデータからキーデータに変換することで、計算量を削減できる。なお、この理由は以下のとおりである。
【0044】
従来ではバリューデータとキーデータ共に入力データのリニア変換によって算出されている。ここで、バリューデータの方がキーデータよりもチャンネル数が多い。そこで、本実施形態では、キーデータの算出に用いるデータをバリューデータとし、バリューデータをリニア変換することでキーデータの算出を行う。上述のようにバリューデータのチャンネル数はキーデータよりも多いため、バリューデータにはキーデータに必要なデータが十分に含まれている。さらにバリューデータの方が入力データよりもチャンネル数が少ないため、バリューデータからキーデータへ変換した方が変換に要する計算量は少なくなる。
【0045】
(第3実施形態)
以下、本発明の第3実施形態について説明する。なお、本実施形態に係る情報処理装置10の構成は、
図1に示す第1実施形態に係る情報処理装置10の構成と同様であるが、本実施形態のアテンション構造はスキップコネクション(skip connection)を有する。
【0046】
図4は、本実施形態のアテンション構造を用いた画像認識処理の流れを示すフローチャートであり、ステップ200からステップ208は第2実施形態と同様である。一方、本実施形態のアテンション構造は、スキップコネクションとして、アグリゲーション(出力データ生成部28)からの出力データにバリューデータを加算して出力データとする。
【0047】
ここで、従来のアテンション構造のように入力データからキーデータを算出すると共に、入力データからバリューデータを算出すると、出力データを得るまでのアテンション構造に分岐経路が生じ、アテンションマップはバリューデータを用いて算出したものではない(
図7参照)。しかしながら、本実施形態のようにキーデータをバリューデータから算出することで、従来のアテンション構造に存在していた分岐経路が無くなり、アテンションマップはバリューデータを用いて算出したものとなるので、バリューデータを用いたスキップコネクションを導入でき、勾配消失発散問題の回避が可能となる。
【0048】
(第4実施形態)
以下、本発明の第4実施形態について説明する。なお、本実施形態に係る情報処理装置10の構成は、
図1に示す第1実施形態に係る情報処理装置10の構成と同様であるが、本実施形態のアテンションマップ生成部26は、キーデータ及びバリューデータに基づいてアテンションマップを生成する。
【0049】
図5は、本実施形態のアテンション構造を用いた画像認識処理の流れを示すフローチャートである。なお、
図5における
図3又は
図4と同一のステップについては
図3又は
図4と同一の符号を付して、その説明を一部又は全部省略する。
【0050】
ステップ204から移行するステップ207では、アテンションマップ生成部26がバリューデータ及びキーデータを所定の変換式を用いて変換することでアテンションマップを生成する。そしてステップ208では、アテンションマップとバリューデータとをアグリゲーションすることで出力データを生成して出力する。
【0051】
なお、
図5に示される本実施形態のアテンション構造でも、
図4のようにスキップコネクションが導入されてもよい。
【0052】
(実施形態の効果)
図6は、従来のアテンション構造と一例として第2実施形態のアテンション構造とによる精度の比較を示す図である。比較の対象として用いSAN構造はSAN19、SAN15、SAN10である。なお、SAN19はSAN構造の数が19であり、SAN15はSAN構造の数が15であり、SAN10はSAN構造の数が10である。
【0053】
図6では、ImageNetデータセットでのtop1及びtop5の精度を比較しており、いずれのSAN構造でも従来と本実施形態とで有意な精度の違いはなかった。すなわち、クエリデータを用いずにアテンションマップを生成したとしても、画像認識の精度に劣化は生じなかった。さらに、パラメータ数(Params)及びFlops数共に従来に比べて本実施形態の方が減少しており、この結果は従来の計算量に比べて本実施形態の計算量が少ないことを示している。
【0054】
以上により本実施形態の情報処理装置10は、アテンション構造を用いて行われる画像認識に必要とする計算量とメモリ容量とを抑制できる。すなわち、従来ではバリューデータ、キーデータ、クエリデータの3種類を算出し、各々の異なるメモリ領域に記憶して各メモリから各データを読み出す必要があったため、計算量とメモリ容量を必要としていた。一方、本実施形態のように入力データが画像データの場合にはキーデータにクエリデータが含まれることを利用して、クエリデータを算出することなく、アテンションマップの生成にクエリデータを使用しない。従って、本実施形態では、クエリデータの算出に要する計算量と共にクエリデータを記憶するためのメモリ容量を削減でき、これによりメモリからの読み出しも削減されるので、計算量とメモリ容量とを従来に比べて少なくできる。
【0055】
以上、本発明を、上記実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記実施形態に多様な変更又は改良を加えることができ、該変更又は改良を加えた形態も本発明の技術的範囲に含まれる。
【0056】
また、上記実施形態で説明した処理の流れも一例であり、本発明の主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよい。
【符号の説明】
【0057】
10・・・情報処理装置、22…キーデータ算出部、24…バリューデータ算出部、
26…アテンションマップ算出部、28…出力データ生成部