(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-10
(45)【発行日】2022-01-13
(54)【発明の名称】画像認識装置、画像認識方法及びプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20220105BHJP
G06N 3/08 20060101ALI20220105BHJP
【FI】
G06T7/00 350C
G06N3/08
(21)【出願番号】P 2018246993
(22)【出願日】2018-12-28
【審査請求日】2020-12-02
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100166006
【氏名又は名称】泉 通博
(74)【代理人】
【識別番号】100124084
【氏名又は名称】黒岩 久人
(74)【代理人】
【識別番号】100153280
【氏名又は名称】寺川 賢祐
(72)【発明者】
【氏名】徐 建鋒
(72)【発明者】
【氏名】田坂 和之
【審査官】藤原 敬利
(56)【参考文献】
【文献】特表2017-538195(JP,A)
【文献】特表2019-511777(JP,A)
【文献】特開2017-084320(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00- 3/12
G06N 7/08-99/00
G06T 7/00- 7/90
(57)【特許請求の範囲】
【請求項1】
複数のフィルタをモデルパラメータとして含む機械学習モデルであって、処理対象の画像データに含まれる被写体が、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す情報を出力する機械学習モデルを取得するモデル取得部と、
前記複数のフィルタのうち、前記画像データに含まれる被写体があらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するための前段フィルタ群を前記画像データに適用することにより、前記被写体グループを特定するグループ認識部と、
前記前段フィルタ群の適用結果と、前記複数のフィルタのうち前記前段フィルタ群を除いたフィルタ群である後段フィルタ群の適用結果とに基づいて、前記画像データに含まれる認識対象を特定する個別認識部と、
前記グループ認識部が特定した被写体グループと、前記後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいて、前記後段フィルタ群のうち前記個別認識部に適用させるフィルタを選択するフィルタ選択部と、
を備える画像認識装置。
【請求項2】
前記フィルタ選択部は、前記画像認識装置の計算リソースが許容する範囲において、前記後段フィルタ群を構成する各フィルタに設定されている優先度の高い順に前記個別認識部に適用させるフィルタを選択する、
請求項1に記載の画像認識装置。
【請求項3】
前記複数のフィルタそれぞれの重み係数の大きさを示す指標を算出する重み指標算出部と、
前記指標によって重み係数が大きいことを示しているフィルタには、重み係数が小さいことを示しているフィルタよりも、前記優先度を高く設定する優先度設定部と、
をさらに備える請求項1又は2に記載の画像認識装置。
【請求項4】
前記複数のフィルタそれぞれについて他のフィルタとの類似度を算出する類似度算出部と、
他に類似するフィルタが存在しないフィルタには、他に類似するフィルタが存在するフィルタよりも、前記優先度を高く設定する優先度設定部と、をさらに備える、
請求項1から3のいずれか1項に記載の画像認識装置。
【請求項5】
前記優先度設定部は、前記複数の被写体グループ毎に、前記後段フィルタ群を構成する各フィルタに設定する優先度を変更する、
請求項3又は4に記載の画像認識装置。
【請求項6】
前記フィルタ選択部は、前記後段フィルタ群を構成する2以上のフィルタそれぞれに等しい優先度が設定されている場合、等しい優先度が設定されたフィルタから無作為にフィルタを選択する、
請求項1から5のいずれか1項に記載の画像認識装置。
【請求項7】
複数の画像データと、前記複数の画像データそれぞれに含まれる被写体と、当該被写体の被写体グループとが関連付けられた学習データに基づいて、ニューラルネットワークを用いた機械学習によって前記機械学習モデルを生成する学習部をさらに備え、
前記学習部は、
前記前段フィルタ群を生成する前段学習部と、
前記前段学習部が前記前段フィルタ群を生成した後に、前記前段フィルタ群への誤差逆伝搬を行わずに前記前段フィルタ群の適用結果を用いて前記後段フィルタ群を生成する後段学習部と、を備える、
請求項1から6のいずれか1項に記載の画像認識装置。
【請求項8】
プロセッサが、
複数のフィルタをモデルパラメータとして含む機械学習モデルであって、処理対象の画像データに含まれる被写体が、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す情報を出力する機械学習モデルを取得するステップと、
前記複数のフィルタのうち、前記画像データに含まれる被写体があらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するための前段フィルタ群を前記画像データに適用することにより、前記被写体グループを特定するステップと、
特定した前記被写体グループと、前記複数のフィルタのうち前記前段フィルタ群を除いたフィルタ群である後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいて、前記後段フィルタ群を構成するフィルタの中から1以上のフィルタを選択するステップと、
前記前段フィルタ群の適用結果と、選択した前記フィルタの適用結果とに基づいて、前記画像データに含まれる認識対象を特定するステップと、
を実行する画像認識方法。
【請求項9】
コンピュータに、
複数のフィルタをモデルパラメータとして含む機械学習モデルであって、処理対象の画像データに含まれる被写体が、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す情報を出力する機械学習モデルを取得する機能と、
前記複数のフィルタのうち、前記画像データに含まれる被写体があらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するための前段フィルタ群を前記画像データに適用することにより、前記被写体グループを特定する機能と、
特定した前記被写体グループと、前記複数のフィルタのうち前記前段フィルタ群を除いたフィルタ群である後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいて、前記後段フィルタ群を構成するフィルタの中から1以上のフィルタを選択する機能と、
前記前段フィルタ群の適用結果と、選択した前記フィルタの適用結果とに基づいて、前記画像データに含まれる認識対象を特定する機能と、
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像認識装置、画像認識方法及びプログラムに関し、特に画像認識処理の負荷を軽減するための技術に関する。
【背景技術】
【0002】
近年、ニューラルネットワークの一種であるディープラーニングを用いて画像から物体のクラスを認識する技術が実用化されている。このような技術の中には、認識精度を向上させるためにより多くの層を含むニューラルネットワークの構造も提案されている。ニューラルネットワークにおいては、層を重ねるごとにより高度で複雑な特徴を抽出できるようになる。したがって、層を深くすることはニューラルネットワークを用いた機械学習モデルの認識精度向上に重要な役割を果たす。
【0003】
一方で、ニューラルネットワークの層が深くなるほど認識処理実行時の計算量が増え、認識処理を実行するために要求される計算能力が増加する傾向がある。このため、例えばIoT(Internet Of Things)デバイス等の計算リソースが相対的に小さい装置ではニューラルネットワークの層が深い機械学習モデルを実行することが困難となりうる。
【0004】
この問題に対処するために、例えば非特許文献1では、機械学習モデルを構成する複数の層に出力層を設けて、計算リソースの変動に合わせて出力層を選んで画像認識を行う技術が提案されている。
【先行技術文献】
【非特許文献】
【0005】
【文献】Gao Huang, et al., Multi-Scale Dense Convolutional Networks for Resource Efficient Image Classification, International Conference on Learning Representations (ICLR) 2018.
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献1に係る技術では、ニューラルネットワークの浅い層(すなわち、入力層に近い層)の出力層で認識のための演算を終えるほど、認識精度が低下する。また、非特許文献1に係る技術のニューラルネットワークは2次元的に広がる層構造を持つため、機械学習モデルのサイズが大きくなり、また学習が難しくなりうる。このように、ニューラルネットワークの機械学習モデルを用いた画像認識処理において、処理負荷を軽減することは改善の余地がある。
【0007】
そこで、本発明はこれらの点に鑑みてなされたものであり、ニューラルネットワークの機械学習モデルを用いた画像認識処理において、処理負荷を軽減するための技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の第1の態様は、画像認識装置である。この装置は、複数のフィルタをモデルパラメータとして含む機械学習モデルであって、処理対象の画像データに含まれる被写体が、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す情報を出力する機械学習モデルを取得するモデル取得部と、前記複数のフィルタのうち、前記画像データに含まれる被写体があらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するための前段フィルタ群を前記画像データに適用することにより、前記被写体グループを特定するグループ認識部と、前記前段フィルタ群の適用結果と、前記複数のフィルタのうち前記前段フィルタ群を除いたフィルタ群である後段フィルタ群の適用結果とに基づいて、前記画像データに含まれる認識対象を特定する個別認識部と、前記グループ認識部が特定した被写体グループと、前記後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいて、前記後段フィルタ群のうち前記個別認識部に適用させるフィルタを選択するフィルタ選択部と、を備える。
【0009】
前記フィルタ選択部は、前記画像認識装置の計算リソースが許容する範囲において、前記後段フィルタ群を構成する各フィルタに設定されている優先度の高い順に前記個別認識部に適用させるフィルタを選択してもよい。
【0010】
前記画像認識装置は、前記複数のフィルタそれぞれの重み係数の大きさを示す指標を算出する重み指標算出部と、前記指標によって重み係数が大きいことを示しているフィルタには、重み係数が小さいことを示しているフィルタよりも、前記優先度を高く設定する優先度設定部と、をさらに備えてもよい。
【0011】
前記画像認識装置は、前記複数のフィルタそれぞれについて他のフィルタとの類似度を算出する類似度算出部と、他に類似するフィルタが存在しないフィルタには、他に類似するフィルタが存在するフィルタよりも、前記優先度を高く設定する優先度設定部と、をさらに備えてもよい。
【0012】
前記優先度設定部は、前記複数の被写体グループ毎に、前記後段フィルタ群を構成する各フィルタに設定する優先度を変更してもよい。
【0013】
前記フィルタ選択部は、前記後段フィルタ群を構成する2以上のフィルタそれぞれに等しい優先度が設定されている場合、等しい優先度が設定されたフィルタから無作為にフィルタを選択してもよい。
【0014】
前記画像認識装置は、複数の画像データと、前記複数の画像データそれぞれに含まれる被写体と、当該被写体の被写体グループとが関連付けられた学習データに基づいて、ニューラルネットワークを用いた機械学習によって前記機械学習モデルを生成する学習部をさらに備えてもよく、前記学習部は、前記前段フィルタ群を生成する前段学習部と、前記前段学習部が前記前段フィルタ群を生成した後に、前記前段フィルタ群への誤差逆伝搬を行わずに前記前段フィルタ群の適用結果を用いて前記後段フィルタ群を生成する後段学習部と、を備えてもよい。
【0015】
本発明の第2の態様は、画像認識方法である。この方法において、プロセッサが、複数のフィルタをモデルパラメータとして含む機械学習モデルであって、処理対象の画像データに含まれる被写体が、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す情報を出力する機械学習モデルを取得するステップと、前記複数のフィルタのうち、前記画像データに含まれる被写体があらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するための前段フィルタ群を前記画像データに適用することにより、前記被写体グループを特定するステップと、特定した前記被写体グループと、前記複数のフィルタのうち前記前段フィルタ群を除いたフィルタ群である後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいて、前記後段フィルタ群を構成するフィルタの中から1以上のフィルタを選択するステップと、前記前段フィルタ群の適用結果と、選択した前記フィルタの適用結果とに基づいて、前記画像データに含まれる認識対象を特定するステップと、を実行する。
【0016】
本発明の第3の態様は、プログラムである。このプログラムは、コンピュータに、複数のフィルタをモデルパラメータとして含む機械学習モデルであって、処理対象の画像データに含まれる被写体が、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す情報を出力する機械学習モデルを取得する機能と、前記複数のフィルタのうち、前記画像データに含まれる被写体があらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するための前段フィルタ群を前記画像データに適用することにより、前記被写体グループを特定する機能と、特定した前記被写体グループと、前記複数のフィルタのうち前記前段フィルタ群を除いたフィルタ群である後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいて、前記後段フィルタ群を構成するフィルタの中から1以上のフィルタを選択する機能と、前記前段フィルタ群の適用結果と、選択した前記フィルタの適用結果とに基づいて、前記画像データに含まれる認識対象を特定する機能と、を実現させる。
【発明の効果】
【0017】
本発明によれば、ニューラルネットワークの機械学習モデルを用いた画像認識処理において、処理負荷を軽減することができる。
【図面の簡単な説明】
【0018】
【
図1】畳込みニューラルネットワークの一般的な機能構成を模式的に示す図である。
【
図2】AlexNetとして知られるニューラルネットワークの機械学習モデルの層構造を模式的に示す図である。
【
図3】実施の形態に係る画像認識装置が用いる畳込みニューラルネットワークの層構造を模式的に示す図である。
【
図4】実施の形態に係るニューラルネットワークの学習過程を説明するための図である。
【
図5】実施の形態に係るニューラルネットワークの認識過程を説明するための図である。
【
図6】実施の形態に係る画像認識装置の機能構成を模式的に示す図である。
【
図7】被写体グループ毎のフィルタの優先度を表形式で模式的に示す図である。
【
図8】実施の形態に係る学習部の機能構成を模式的に示す図である。
【
図9】実施の形態に係る画像認識装置が実行する画像認識処理の流れを説明するためのフローチャートである。
【発明を実施するための形態】
【0019】
<畳込みニューラルネットワーク>
実施の形態に係る画像認識装置は、ニューラルネットワークの機械学習モデルを用いた画像認識処理を実行するための装置である。実施の形態に係る画像認識装置は、主な一例として、畳込みニューラルネットワーク(Convolutional Neural Network;CNN)の機械学習モデルを用いる。そこで、実施の形態に係る情報処理装置の前提技術として、まず畳込みニューラルネットワークについて簡単に説明する。
【0020】
図1は、畳込みニューラルネットワークの一般的な機能構成を模式的に示す図である。現在、様々な構成のニューラルネットワークが提案されているが、これらの基本構成は共通である。ニューラルネットワークの基本構成は、複数種類の層の重ね合わせ(又はグラフ構造)で表現される。ニューラルネットワークは、入力データに対する出力結果が適切な値になるようにモデルパラメータを学習する。言い換えると、ニューラルネットワークは、入力データに対する出力結果が適切な値になるように定義された損失関数を最小化するようにモデルパラメータを学習する。
【0021】
図1は、入力画像Iに含まれる被写体の種類を出力するように学習された機械学習モデルを示している。
図1に示す例では、入力層Liに入力された入力画像Iは、第1畳込み層C1、第2畳込み層C2の順に処理され、プーリング層P、第1全結合層F1、第2全結合層F2、及び出力層Loに至るように構成されている。出力層は、入力画像Iに含まれる被写体の種類を示す識別ラベルBを出力する。
【0022】
例えば、
図1に示す機械学習モデルが、犬や猫、猿等の複数の動物を認識するための機械学習モデルである場合、あらかじめ識別対象の動物を特定するための識別ラベルBが割り当てられている。この機械学習モデルの入力層Liに入力画像Iが入力されると、出力層Loは、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す識別ラベルBを出力する。なお、識別ラベルBは、例えば、複数の認識対象それぞれに一意に割り当てられたビット列である。
【0023】
ニューラルネットワークにおいては、前段層の出力がその前段層に隣接する後段層の入力となる。畳込みニューラルネットワークにおける各畳込み層は、前段層から入力された信号に対してフィルタを適用し、フィルタの出力がその層の出力となる。
【0024】
図2は、AlexNetとして知られるニューラルネットワークの機械学習モデルの層構造を模式的に示す図である。
図2に示すように、AlexNetは入力層Liと、5つの畳込み層(第1畳込み層C1、第2畳込み層C2、第3畳込み層C3、第4畳込み層C4、及び第5畳込み層C5)と、2つの全結合層(第1全結合層F1及び第2全結合層F2)と、出力層Loとを含み、最終層は1000種類の識別ラベルBを出力するように構成されている。すなわち、AlexNetは1000種類の認識対象を認識するための畳込みニューラルネットワークである。
【0025】
図示はしないが、認識精度を向上させるため、さらに深い層を持つネット構造が提案されている。例えば、ResNetとして知られるニューラルネットワークの機械学習モデルは、152層からなる層構造を有している。ニューラルネットワークでは、層を重ねる毎により高度で複雑な特徴を抽出可能であるため、層を深くすることは認識精度の向上に重要な役割を果たしていると考えられる。
【0026】
<実施の形態に係るニューラルネットワーク>
図3は、実施の形態に係る画像認識装置が用いる畳込みニューラルネットワークNの層構造を模式的に示す図である。以下、
図3を参照して、実施の形態に係るニューラルネットワークNについて説明する。
【0027】
実施の形態に係る画像認識装置が用いる畳込みニューラルネットワークNの機械学習モデルは、従来の畳込みニューラルネットワークと同様に複数の畳込み層を備え、入力画像Iに含まれる被写体が複数の認識対象のうちいずれの認識対象であるかを出力する。このため、実施の形態に係る画像認識装置1が用いる畳込みニューラルネットワークNの機械学習モデルは、複数のフィルタをモデルパラメータとして含んでいる。
【0028】
畳込みニューラルネットワークでは、層を重ねる毎により高度で複雑な特徴を抽出することができるので、層を深くすることによって区別が難しい類似した認識対象であっても認識できるようになる。反対に、認識対象同士が著しく異なっていれば、畳込みニューラルネットワークの層が少なくても認識することができる。これらの事象は、畳込みニューラルネットワークの前段部分で認識対象の大きな特徴を認識し、後段に進むほど各認識対象に特有の詳細な特徴を認識していることを示唆している。同様の事象が各層のフィルタ数を変更することでも実現できる。すなわち、各層のフィルタ数を多くすることによって区別が難しい類似した認識対象であっても認識できるようになる。反対に、認識対象同士が著しく異なっていれば、各層のフィルタ数が少なくても認識することができる。
【0029】
したがって、機械学習モデルを構成するフィルタには、すべての認識対象の認識に寄与するフィルタと、ある認識対象を認識するためには重要な役割を果たす一方で別の認識対象の認識にはあまり寄与しないようなフィルタとが存在すると考えられる。前者のフィルタは複数の認識対象が共通に含む特徴を認識するためのフィルタが挙げられ、後者のフィルタは類似する特徴を有する特定の認識対象を区別するためのフィルタが挙げられる。
【0030】
例えば、ある機械学習モデルの認識対象に、猫、犬、猿、又は牛等の哺乳類と、みかん、人参、大根、又はキャベツ等の植物と、自動車やビル等の人工物とが含まれているとする。この場合、例えば、哺乳類の「目」に強く反応するフィルタは、認識対象が哺乳類か否かという大きな特徴を捉えるためのフィルタと考えられるので、すべての認識対象の認識に寄与するフィルタと考えられる。
【0031】
これに対し、例えば、「犬」と「猫」とを区別するために用いられるフィルタは、認識対象が犬又は猫である場合には認識に大きく寄与すると考えられるが、認識対象が猫や犬以外の「キャベツ」や「自動車」である場合には認識にあまり寄与しないと考えられる。すなわち、ある認識対象を認識するためには重要な役割を果たす一方で別の認識対象の認識にはあまり寄与しないようなフィルタが存在すると考えられる。
【0032】
図3に示すように、実施の形態に係る画像認識装置が用いる畳込みニューラルネットワークNの機械学習モデルは、前段フィルタ群と後段フィルタ群との2つのフィルタ群を備えている。
図3に示す例では、前段フィルタ群は、5つの畳込み層(第1前段畳込み層C
f1、第2前段畳込み層C
f2、第3前段畳込み層C
f3、第4前段畳込み層C
f4、及び第5前段畳込み層C
f5)と2つの前結合層(第1全結合層F1及び第2全結合層F2)に含まれるフィルタである。また後段フィルタ群は、5つの畳込み層(第1後段畳込み層C
r1、第2後段畳込み層C
r2、第3後段畳込み層C
r3、第4後段畳込み層C
r4、及び第5後段畳込み層C
r5)に含まれるフィルタである。
【0033】
例えば、
図2に示したAlexNetに対して本実施の形態を適用した場合、各層が備えるフィルタを前段フィルタ群と後段フィルタ群とに等分する。具体的には、ニューラルネットワーク構造としては、前段フィルタ群及び後段フィルタ群の第1畳込み層については、(55×55)ノード×48フィルタとなる。同様に、第2畳込み層~第5畳込み層については、それぞれ、(27×27)ノード×128フィルタ、(13×13)ノード×192フィルタ、(13×13)ノード×192フィルタ、(13×13)ノード×128フィルタとなる。また、第1全結合層F1、第2全結合層F2、第3全結合層F3、及び第4全結合層F4は、いずれも2048ノードとなる。
【0034】
[学習過程]
まず、実施の形態に係るニューラルネットワークNの学習過程について説明する。
【0035】
図4(a)-(c)は、実施の形態に係るニューラルネットワークNの学習過程を説明するための図である。具体的には、
図4(a)及び
図4(b)は、それぞれ前段フィルタ群の第1段階学習及び第2段階学習を示しており、
図4(c)は後段フィルタ群の学習を示している。ここで、前段フィルタ群は、入力画像Iに含まれる被写体が、あらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するために用いられるフィルタ群である。また、後段フィルタ群は、機械学習モデルを構成するフィルタの中から、前段フィルタを構成するフィルタを除いたフィルタ群である。
【0036】
図4(a)に示すように、前段フィルタ群の第1段階学習では、学習用の画像データである学習データを入力としたとき、その画像データに対応付けられた被写体の識別ラベルBを出力する第1の前段フィルタ群を生成する。すなわち、前段フィルタ群の第1段階学習は、通常の機械学習の工程と同様である。
【0037】
図4(b)に示すように、前段フィルタ群の第2段階学習では、学習データを入力としたとき、その画像データが属する被写体グループを示すグループ識別ラベルを出力するような機械学習モデルを生成する。具体的には、前段フィルタ群に含まれる第1全結合層F1と第2全結合層F2をファインチューニングすることで、画像データが属するグループを認識する第2の前段フィルタ群を生成する。
【0038】
図4(b)では、ファインチューニング後の第1全結合層F1と第2全結合層F2は、それぞれ第1全結合層F1’と第2全結合層F2’と記載されている。したがって、第1の前段フィルタ群の畳込み層と第2の前段フィルタ群の畳込み層とは共通である。第1の前段フィルタ群と第2の前段フィルタ群とは大部分が共通するため、両者を特に区別する場合を除き、単に前段フィルタ群と記載する。
【0039】
後段フィルタの学習は、
図4(c)に示すように、前段フィルタ群の第1学習段階で生成された機械学習モデルとともに学習される。すなわち、第1の前段フィルタ群の出力と、後段フィルタ群の出力とを用いて学習データの識別ラベルBを出力するように後段フィルタ群が学習される。後段フィルタ群の学習時には、前段フィルタ群への誤差逆伝搬は行われず、前段フィルタ群の適用結果を用いて後段フィルタ群が学習される。
【0040】
[認識過程]
続いて、実施の形態に係るニューラルネットワークNの学習過程について説明する。
【0041】
図5(a)-(b)は、実施の形態に係るニューラルネットワークNの認識過程を説明するための図である。実施の形態に係るニューラルネットワークNの認識過程は、入力画像Iに含まれる被写体が属するグループを認識するグループ認識の段階と、当該被写体そのものを認識する被写体認識の段階との2つの段階から構成されている。
【0042】
図5(a)は、入力画像Iのグループ認識を説明するための図である。グループ認識は、前段フィルタ群の第2段階学習で生成された第2の前段フィルタ群を用いて行われる。入力画像Iに第2の前段フィルタ群を適用することにより、入力画像Iに含まれる被写体が属する被写体グループが認識される。
【0043】
実施の形態に係る画像認識装置は、後段フィルタ群に含まれるフィルタをすべて適用することで、最も高い認識精度で認識対象を認識することが期待できる。しかしながら、後段フィルタ群に含まれるフィルタをすべて適用しなくても、一定精度の認識精度を維持することはできる。したがって、画像認識装置は、例えば、画像認識装置の計算リソースがもともと小さかったり、計算リソースは大きくても他の演算の処理負荷が大きく一時的に機械学習モデルの適用に割り当てる計算リソースが小さかったりする場合に、計算リソースに合わせて適用する後段フィルタを取捨選択することで、演算の実行可能性と、認識精度とのバランスを図ることができる。
【0044】
詳細は後述するが、実施の形態に係る画像認識装置は、入力画像Iに含まれる被写体が属する被写体グループに基づいて、後段フィルタ群を構成するフィルタの中から実際に適用するフィルタを選択する。そして、
図5(b)に示すように、第1の前段フィルタ群の出力と、選択された後段フィルタ群との出力を合わせて、入力画像Iに含まれる被写体を示す識別ラベルBが出力される。
【0045】
ここで、入力画像Iのグループ認識に要求される演算量の増加量が、後段フィルタ群のフィルタの取捨選択による演算量の低減量を上回っては、後段フィルタ群のフィルタを取捨選択することの意味がない。しかしながら、実施の形態に係るニューラルネットワークNにおいて、第1の前段フィルタ群の畳込み層と、第2の前段フィルタ群の畳込み層とは共通である。したがって、入力画像Iに含まれる被写体が属する被写体グループを認識するために実行した第2の前段フィルタ群の畳込み層の演算結果は、第1の前段フィルタ群の畳込み層の演算に流用できる。これにより、実施の形態に係るニューラルネットワークNの認識過程において、入力画像Iに含まれる被写体が属する被写体グループを認識するために増加する演算コストは、実質的に第1全結合層F1’の演算と第2全結合層F2’の演算だけである。ゆえに、入力画像Iのグループ認識に要求される演算量の増加量は、後段フィルタ群のフィルタの取捨選択による演算量の低減量を十分下回ることが期待できる。
【0046】
このように、実施の形態に係る画像認識装置は、入力画像Iに適用するフィルタを取捨選択することにより、認識処理の処理負荷を軽減することができる。
【0047】
<実施の形態に係る画像認識装置1の機能構成>
図6は、実施の形態に係る画像認識装置1の機能構成を模式的に示す図である。画像認識装置1は、記憶部2と制御部3とを備える。
図6において、矢印は主なデータの流れを示しており、
図6に示していないデータの流れがあってもよい。
図6において、各機能ブロックはハードウェア(装置)単位の構成ではなく、機能単位の構成を示している。そのため、
図6に示す機能ブロックは単一の装置内に実装されてもよく、あるいは複数の装置内に分かれて実装されてもよい。機能ブロック間のデータの授受は、データバス、ネットワーク、可搬記憶媒体等、任意の手段を介して行われてもよい。
【0048】
記憶部2は、画像認識装置1を実現するコンピュータのBIOS(Basic Input Output System)等を格納するROM(Read Only Memory)や画像認識装置1の作業領域となるRAM(Random Access Memory)、OS(Operating System)やアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するHDD(Hard Disk Drive)やSSD(Solid State Drive)等の大容量記憶装置である。
【0049】
制御部3は、画像認識装置1のCPU(Central Processing Unit)やGPU(Graphics Processing Unit)等のプロセッサであり、記憶部2に記憶されたプログラムを実行することによって画像取得部30、モデル取得部31、グループ認識部32、フィルタ選択部33、個別認識部34、リソース取得部35、重み指標算出部36、優先度設定部37、類似度算出部38、及び学習部39として機能する。
【0050】
なお、
図6は、画像認識装置1が単一の装置で構成されている場合の例を示している。しかしながら、画像認識装置1は、例えばクラウドコンピューティングシステムのように複数のプロセッサやメモリ等の計算リソースによって実現されてもよい。この場合、制御部3を構成する各部は、複数の異なるプロセッサの中の少なくともいずれかのプロセッサがプログラムを実行することによって実現される。
【0051】
画像取得部30は、画像認識装置1が処理対象とする画像データである入力画像Iを取得する。モデル取得部31は、複数のフィルタをモデルパラメータとして含む機械学習モデルを取得する。実施の形態に係るモデル取得部31が取得する機械学習モデルは、処理対象の画像データである入力画像Iに含まれる被写体が、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す情報を出力する機械学習モデルである。
【0052】
グループ認識部32は、学習モデルに含まれる複数のフィルタのうち、入力画像Iに含まれる被写体があらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するための前段フィルタ群(すなわち、上述した第2の前段フィルタ群)を、入力画像Iに適用して被写体グループを特定する。
【0053】
フィルタ選択部33は、機械学習モデルに含まれる複数のフィルタのうち、前段フィルタ群を除いたフィルタ群である後段フィルタ群の中から1以上のフィルタを選択する。ここで、フィルタ選択部33は、グループ認識部32が特定した被写体グループと、後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいてフィルタを選択する。フィルタ選択部33によるフィルタ選択の詳細は後述する。
【0054】
個別認識部34は、第1の前段フィルタ群の適用結果と、フィルタ選択部33が選択したフィルタを入力画像Iに適用した結果とに基づいて、入力画像Iに含まれる認識対象を特定する。このように、画像認識装置1は、機械学習モデルが備える後段フィルタ群の中から実際に入力画像Iに適用するフィルタを選択する。これにより、画像認識装置1は、機械学習モデルが備えるフィルタをすべて使用する場合と比較して、画像認識処理における処理負荷を軽減することができる。
【0055】
リソース取得部35は、画像認識装置1の計算リソースを取得する。ここでリソース取得部35が取得する「計算リソース」は、画像認識装置1が備えるCPU及びGPU等のプロセッサのパワー及び画像認識装置1が備える主記憶装置の容量等、画像認識装置1が画像認識処理に割り当てることができる計算能力である。画像認識装置1の計算リソースは、例えば画像認識装置1がブレードサーバである場合とIoTデバイスである場合のように、画像認識装置1の種類によって異なる。また、同一の画像認識装置1であっても、画像認識処理時に並行して実行している他の処理に割り当てている計算リソースの大きさによって、画像認識処理に割り当て可能な計算リソースが変化しうる。リソース取得部35は、画像認識装置1が機械学習モデルを用いて画像認識処理を実施する際に使用可能な計算リソースを取得する。
【0056】
フィルタ選択部33は、画像認識装置1の計算リソースが許容する範囲において、後段フィルタ群を構成する各フィルタに設定されている優先度の高い順に個別認識部34に適用させるフィルタを選択する。一般に、画像認識処理において適用するフィルタの数が多いほど高い認識精度を期待できる。画像認識装置1は、画像認識装置1の計算リソースに応じて適用する後段フィルタ群のフィルタを選択することにより、画像認識装置1が実行可能な範囲において最も高い認識精度を期待できる画像認識処理を実行することができる。
【0057】
[フィルタ選択処理]
続いて、実施の形態に係る画像認識装置1におけるフィルタ選択処理を説明する。
【0058】
上述したように、ニューラルネットワークにおいては、前段層の出力がその前段層に隣接する後段層の入力となる。畳込みニューラルネットワークにおける各畳込み層は、前段層から入力された信号に対してフィルタを適用し、フィルタの出力がその層の出力となる。したがって、畳込み層におけるフィルタの重み係数の絶対値が大きいほど、その次の層の入力信号の絶対値が大きくなりうる。
【0059】
すなわち、ある畳込み層のフィルタの重み係数の大きさは、次の層において対応するユニットの活性度の指標値となりうる。ニューラルネットワークにおいては、層を構成するユニットうち、活性度の大きいユニットは、活性度の小さいユニットよりも、認識能力に対する寄与度が大きいと言われている。
【0060】
そこで、重み指標算出部36は、後段フィルタ群に含まれる複数のフィルタそれぞれの重み係数の大きさを示す指標を算出する。ここで、「重み係数の大きさを示す指標」とは、例えばフィルタの重み係数の絶対値の総和をフィルタの重み係数の数で割った値である。あるいは、フィルタの重み係数の2乗の総和を、フィルタの重み係数の数で割った値であってもよい。いずれにしても、フィルタの重み係数の大きさを示す指標が大きいほど、そのフィルタに含まれる重み係数が大きいことを示している。
【0061】
優先度設定部37は、重み指標算出部36が算出した指標によって重み係数が大きいことを示しているフィルタには、重み係数が小さいことを示しているフィルタよりも、優先度を高く設定する。これにより、画像認識装置1は、機械学習モデルの認識能力に寄与度が大きいと考えられるフィルタを優先して選択することができる。
【0062】
ここで、優先度設定部37がある後段フィルタ群に含まれる各フィルタに設定する優先度の段階は、後段フィルタ群に含まれるフィルタの数を上限として任意である。例えば、優先度の段階をフィルタの数と同じにした場合、その畳込み層に含まれるフィルタは優先度を用いて序列をつけることができる。
【0063】
あるいは、フィルタの数が2以上の場合において、優先度の段階を「高」と「低」との2段階としてもよい。この場合、優先度設定部37は、所定の閾値Aを設定し、各フィルタの重み係数の大きさを示す指標が閾値Aを超える場合は優先度を「高」とし、閾値A未満の場合は優先度を「低」とすればよい。
【0064】
また、優先度設定部37は、後段フィルタ群に含まれるフィルタ同士の類似度に基づいて、各フィルタに設定する優先度を変更してもよい。一般に、ある2つのフィルタの重み係数が近似しているほど、その2つのフィルタは近似する特徴を抽出すると考えられる。したがって、ある2つのフィルタが類似する場合には、いずれか一方のフィルタが特徴を抽出すれば、もう一方のフィルタを用いなくても、最終的な認識精度の変化は小さいと考えられる。反対に、他に類似するフィルタが存在しないフィルタは、そのフィルタは他のフィルタでは抽出できない特徴を抽出できる可能性がある。
【0065】
そこで、類似度算出部38は、後段フィルタ群に含まれる複数のフィルタそれぞれについて他のフィルタとの類似度を算出する。優先度設定部37は、他に類似するフィルタが存在しないフィルタには、他に類似するフィルタが存在するフィルタよりも、優先度を高く設定する。これにより、画像認識装置1は、画像認識装置1の計算リソースが許容する範囲において、異なる特徴を抽出するためのフィルタを選択することができる。
【0066】
ここで、類似度算出部38は、フィルタ間の「距離」をフィルタ間の類似度として算出すればよい。類似度算出部38が算出するフィルタ間の「距離」は、距離の公理を満たせばどのような量であってもよいが、例えばフィルタ間のユークリッド距離である。具体的には、類似度算出部38は、第iフィルタと第jフィルタの類似度D(i,j)は以下の式(1)を用いて算出する。
【0067】
【数1】
ここで、I(m,n,f)は、3次元の第iフィルタの縦m、横n、高さfにおける要素であり、J(m,n,f)は、第jフィルタの縦m、横n、高さfにおける要素である。式(1)は、2つのフィルタのユークリッド距離を、フィルタの要素数(重み係数の数)で正規化した量であることを示している。ある2つのフィルタ間の非類似度Dの値が小さいほど、そのフィルタ同士は類似していることを示している。この他にも、類似度算出部38は、例えばコサイン類似度を用いてフィルタ間の類似度を算出してもよい。
【0068】
類似度算出部38は、第iフィルタの類似度S(i)として、S(i)=ΣD(i,j)(j=1,・・・,Nf;Nfはフィルタの数)を算出し、その値が大きい(即ち他に類似するフィルタが存在しない)フィルタに高い優先度を割り当ててもよい。
【0069】
重み指標算出部36と同様に、優先度設定部37も、類似度の段階を「類似」と「非類似」との2段階としてもよい。この場合、優先度設定部37は、所定の閾値Bを設定し、各フィルタ間の類似度が閾値Bを超える場合は「類似」とし、閾値B未満の場合は「非類似」とすればよい。また、優先度設定部37は、重み指標算出部36が優先度を2段階とした場合に、優先度が低となっているフィルタを対象として、フィルタ間の類似度を求めてもよい。この場合、優先度設定部37は、いずれのフィルタとも非類似となったフィルタの優先度を「高」としてもよい。
【0070】
上述したように、機械学習モデルを構成するフィルタには、ある認識対象を認識するためには重要な役割を果たす一方で別の認識対象の認識にはあまり寄与しないようなフィルタが存在すると考えられる。したがって、被写体の種類によって、その被写体を認識するためのフィルタの重要度が変わることが起こりうる。
【0071】
そこで、優先度設定部37は、あらかじめ定められた複数の被写体グループ毎に、後段フィルタ群を構成する各フィルタに設定する優先度を変更する。以下、優先度設定部37が実行する被写体グループ毎のフィルタの優先度の設定について具体的に説明する。
【0072】
いま、被写体グループの種類がP種類(Pは2以上の整数)であり、後段フィルタ群に含まれるフィルタの数がQ個(Qは2以上の整数)であるとする。q番目のフィルタをフィルタfq(1≦q≦Q)とし、p番目のグループ(1≦p≦P)におけるフィルタfqの重要性の順序をWpqとする。
【0073】
ステップ1:優先度設定部37は、pに1を設定する。
ステップ2:優先度設定部37は、p番目の被写体グループのテストデータTpを取得する。
ステップ3:優先度設定部37は、前段フィルタ群と全ての後段フィルタ群とをテストデータTpに適用し、認識率Rpを算出する。
【0074】
ステップ4:優先度設定部37は、qに1を設定する。
ステップ5:優先度設定部37は、後段フィルタ群に含まれるフィルタの中からフィルタfqを除外して適用した場合のテストデータTpの認識率Rpqを算出する。
ステップ6:優先度設定部37は、認識率Rpから認識率Rpqを減算した値である認識率の低下量Cqを算出する。低下量Cqはフィルタfqを除外したことによる認識率の低下量を示している。すなわち、認識率に対するフィルタfqの貢献度を示している。
【0075】
ステップ7:優先度設定部37は、qの値をq+1に更新する。
ステップ8:qがQを超えるまで、優先度設定部37はステップ4及びステップ5の処理を繰り返す。
ステップ9:優先度設定部37は、Q個の低下量Cqを大きい順に並べ替える。このとき低下量Cqの添字qの順序が、p番目の被写体グループにおけるフィルタfqの重要製の順序Wpqとなる。
【0076】
ステップ10:優先度設定部37は、pの値をp+1に更新する。
スタップ11:pがPを超えるまで、優先度設定部37はステップ2からステップ8までの処理を繰り返す。
【0077】
以上の処理により、優先度設定部37は、あらかじめ定められた被写体ブループ毎に、後段フィルタ群を構成する各フィルタの重要性の順序を求めることができる。優先度設定部37は、あらかじめ定められた被写体ブループ毎に、重要性が高いフィルタほど優先度を上げる。これにより、優先度設定部37は、あらかじめ定められた複数の被写体グループ毎に、後段フィルタ群を構成する各フィルタに設定する優先度を変更することができる。
【0078】
なお、フィルタの類似度と同様に、優先度設定部37は、重要度の段階を重要か否かの2段階としてもよい。この場合、優先度設定部37は、所定の閾値Cを設定し、認識率Rpqが閾値Cより小さい場合はフィルタfqを重要とし、認識率Rpqが閾値C以上の場合はフィルタfqを重要でないとすればよい。
【0079】
図7は、被写体グループ毎のフィルタの優先度を表形式で模式的に示す図である。具体的には、
図7は、第1被写体グループに関するフィルタ毎の重み係数の大きさ、類似度、重要性の順序、及び優先度を格納する優先度データベースのデータ構造を示している。優先度データベースは記憶部2に格納され、優先度設定部37によって管理される。優先度データベースを参照することにより、フィルタ選択部33は、被写体グループと、後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいて、後段フィルタ群のうち個別認識部34に適用させるフィルタを選択することができる。
【0080】
ここで、優先度設定部37が、後段フィルタ群に含まれる各フィルタに設定する優先度の段階をフィルタの数未満とした場合、複数のフィルタが同じ優先度となることも起こりうる。そこで、フィルタ選択部33は、前段フィルタ群を構成する2以上のフィルタそれぞれに等しい優先度が設定されている場合は、等しい優先度が設定されたフィルタから無作為にフィルタを選択すればよい。これにより、フィルタ選択部33は、優先度以外の他の指標を参照することなく、フィルタを選択することができる。
【0081】
学習部39は、複数の画像データと、複数の画像データそれぞれに含まれる被写体と、被写体の被写体グループとが関連付けられた学習データに基づいて、ニューラルネットワークを用いた機械学習によって機械学習モデルを生成する。
【0082】
図8は、実施の形態に係る学習部39の機能構成を模式的に示す図である。
図8に示すように、学習部39は、前段学習部390と後段学習部391とを備える。
【0083】
まず、画像取得部30は、画像データに含まれる被写体と、その被写体が属する被写体グループとが既知である複数の画像データを取得する。前段学習部390は、画像取得部30が取得した複数の画像データを学習データとして、
図4(a)-(b)を参照して説明したように、ニューラルネットワークを用いた機械学習によって前段フィルタ群を生成する。
【0084】
後段学習部391は、
図4(c)を参照して説明したように、前段学習部390が前段フィルタ群を生成した後に、前段フィルタ群への誤差逆伝搬を行わずに前段フィルタ群の適用結果を用いて後段フィルタ群を生成する。
【0085】
具体的には、後段学習部391は出力層Loの出力と、入力画像Iに対応付けられた識別ラベルBとの誤差を誤差逆伝搬させることによって各層を構成するフィルタの重みを更新する。このとき、後段学習部391は、第1前段畳込み層Cf1、第2前段畳込み層Cf2、第3前段畳込み層Cf3、第4前段畳込み層Cf4、及び第5前段畳込み層Cf5に含まれるフィルタの重みを固定し、その更新を禁止する。これにより、後段学習部391は、前段フィルタ群を固定したまま、後段フィルタ群を生成することができる。
【0086】
<画像認識装置1が実行する画像認識方法の処理フロー>
図9は、実施の形態に係る画像認識装置1が実行する画像認識処理の流れを説明するためのフローチャートである。本フローチャートにおける処理は、例えば画像認識装置1が起動したときに開始する。
【0087】
モデル取得部31は、複数のフィルタをモデルパラメータとして含む機械学習モデルであって、処理対象の画像データである入力画像Iに含まれる被写体が、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す情報を出力する機械学習モデルを取得する(S2)。
【0088】
グループ認識部32は、複数のフィルタのうち、入力画像Iに含まれる被写体があらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するための前段フィルタ群を入力画像Iに適用することにより、被写体グループを特定する(S4)。
【0089】
フィルタ選択部33は、モデル取得部31が特定した被写体グループと、後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいて、後段フィルタ群を構成するフィルタの中から1以上のフィルタを選択する(S6)。
【0090】
個別認識部34は、前段フィルタ群の適用結果と、選択したフィルタの適用結果とに基づいて、入力画像Iに含まれる認識対象を特定する(S8)。
【0091】
<実施の形態に係る画像認識装置1が奏する効果>
以上説明したように、実施の形態に係る画像認識装置1によれば、ニューラルネットワークの機械学習モデルを用いた画像認識処理において、処理負荷を軽減することができる。
【0092】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。
【符号の説明】
【0093】
1・・・画像認識装置
2・・・記憶部
3・・・制御部
30・・・画像取得部
31・・・モデル取得部
32・・・グループ認識部
33・・・フィルタ選択部
34・・・個別認識部
35・・・リソース取得部
36・・・重み指標算出部
37・・・優先度設定部
38・・・類似度算出部
39・・・学習部
390・・・前段学習部
391・・・後段学習部
N・・・畳込みニューラルネットワーク