(57)【要約】【課題】ニューラルネットワークの機械学習モデルを用いた画像認識処理において、処理負荷を軽減する。【解決手段】モデル取得部３１は、処理対象の画像データに含まれる被写体を認識する機械学習モデルを取得する。グループ認識部３２は、機械学習に含まれる複数のフィルタのうち、画像データに含まれる被写体がいずれの被写体グループに属すかを認識するための前段フィルタ群を画像データに適用することにより、被写体グループを特定する。個別認識部３４は、前段フィルタ群の適用結果と、複数のフィルタのうち前段フィルタ群を除いたフィルタ群である後段フィルタ群の適用結果とに基づいて、画像データに含まれる認識対象を特定する。フィルタ選択部３３は、グループ認識部３２が特定した被写体グループと、後段フィルタ群を構成する各フィルタに設定されている優先度とに基づいて後段フィルタ群のうち個別認識部３４に適用させるフィルタを選択する。【選択図】図６
2020107185.tif 000002
【特許請求の範囲】
【請求項１】
複数のフィルタをモデルパラメータとして含む機械学習モデルであって、処理対象の画像データに含まれる被写体が、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す情報を出力する機械学習モデルを取得するモデル取得部と、
前記複数のフィルタのうち、前記画像データに含まれる被写体があらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するための前段フィルタ群を前記画像データに適用することにより、前記被写体グループを特定するグループ認識部と、
前記前段フィルタ群の適用結果と、前記複数のフィルタのうち前記前段フィルタ群を除いたフィルタ群である後段フィルタ群の適用結果とに基づいて、前記画像データに含まれる認識対象を特定する個別認識部と、
前記グループ認識部が特定した被写体グループと、前記後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいて、前記後段フィルタ群のうち前記個別認識部に適用させるフィルタを選択するフィルタ選択部と、
を備える画像認識装置。
【請求項２】
前記フィルタ選択部は、前記画像認識装置の計算リソースが許容する範囲において、前記後段フィルタ群を構成する各フィルタに設定されている優先度の高い順に前記個別認識部に適用させるフィルタを選択する、
請求項１に記載の画像認識装置。
【請求項３】
前記複数のフィルタそれぞれの重み係数の大きさを示す指標を算出する重み指標算出部と、
前記指標によって重み係数が大きいことを示しているフィルタには、重み係数が小さいことを示しているフィルタよりも、前記優先度を高く設定する優先度設定部と、
をさらに備える請求項１又は２に記載の画像認識装置。
【請求項４】
前記複数のフィルタそれぞれについて他のフィルタとの類似度を算出する類似度算出部と、
他に類似するフィルタが存在しないフィルタには、他に類似するフィルタが存在するフィルタよりも、前記優先度を高く設定する優先度設定部と、をさらに備える、
請求項１から３のいずれか１項に記載の画像認識装置。
【請求項５】
前記優先度設定部は、前記複数の被写体グループ毎に、前記後段フィルタ群を構成する各フィルタに設定する優先度を変更する、
請求項３又は４に記載の画像認識装置。
【請求項６】
前記フィルタ選択部は、前記後段フィルタ群を構成する２以上のフィルタそれぞれに等しい優先度が設定されている場合、等しい優先度が設定されたフィルタから無作為にフィルタを選択する、
請求項１から５のいずれか１項に記載の画像認識装置。
【請求項７】
複数の画像データと、前記複数の画像データそれぞれに含まれる被写体と、当該被写体の被写体グループとが関連付けられた学習データに基づいて、ニューラルネットワークを用いた機械学習によって前記機械学習モデルを生成する学習部をさらに備え、
前記学習部は、
前記前段フィルタ群を生成する前段学習部と、
前記前段学習部が前記前段フィルタ群を生成した後に、前記前段フィルタ群への誤差逆伝搬を行わずに前記前段フィルタ群の適用結果を用いて前記後段フィルタ群を生成する後段学習部と、を備える、
請求項１から６のいずれか１項に記載の画像認識装置。
【請求項８】
プロセッサが、
複数のフィルタをモデルパラメータとして含む機械学習モデルであって、処理対象の画像データに含まれる被写体が、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す情報を出力する機械学習モデルを取得するステップと、
前記複数のフィルタのうち、前記画像データに含まれる被写体があらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するための前段フィルタ群を前記画像データに適用することにより、前記被写体グループを特定するステップと、
特定した前記被写体グループと、前記複数のフィルタのうち前記前段フィルタ群を除いたフィルタ群である後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいて、前記後段フィルタ群を構成するフィルタの中から１以上のフィルタを選択するステップと、
前記前段フィルタ群の適用結果と、選択した前記フィルタの適用結果とに基づいて、前記画像データに含まれる認識対象を特定するステップと、
を実行する画像認識方法。
【請求項９】
コンピュータに、
複数のフィルタをモデルパラメータとして含む機械学習モデルであって、処理対象の画像データに含まれる被写体が、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す情報を出力する機械学習モデルを取得する機能と、
前記複数のフィルタのうち、前記画像データに含まれる被写体があらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するための前段フィルタ群を前記画像データに適用することにより、前記被写体グループを特定する機能と、
特定した前記被写体グループと、前記複数のフィルタのうち前記前段フィルタ群を除いたフィルタ群である後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいて、前記後段フィルタ群を構成するフィルタの中から１以上のフィルタを選択する機能と、
前記前段フィルタ群の適用結果と、選択した前記フィルタの適用結果とに基づいて、前記画像データに含まれる認識対象を特定する機能と、
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像認識装置、画像認識方法及びプログラムに関し、特に画像認識処理の負荷を軽減するための技術に関する。
【背景技術】
【０００２】
近年、ニューラルネットワークの一種であるディープラーニングを用いて画像から物体のクラスを認識する技術が実用化されている。このような技術の中には、認識精度を向上させるためにより多くの層を含むニューラルネットワークの構造も提案されている。ニューラルネットワークにおいては、層を重ねるごとにより高度で複雑な特徴を抽出できるようになる。したがって、層を深くすることはニューラルネットワークを用いた機械学習モデルの認識精度向上に重要な役割を果たす。
【０００３】
一方で、ニューラルネットワークの層が深くなるほど認識処理実行時の計算量が増え、認識処理を実行するために要求される計算能力が増加する傾向がある。このため、例えばＩｏＴ（Internet Of Things）デバイス等の計算リソースが相対的に小さい装置ではニューラルネットワークの層が深い機械学習モデルを実行することが困難となりうる。
【０００４】
この問題に対処するために、例えば非特許文献１では、機械学習モデルを構成する複数の層に出力層を設けて、計算リソースの変動に合わせて出力層を選んで画像認識を行う技術が提案されている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Gao Huang, et al., Multi-Scale Dense Convolutional Networks for Resource Efficient Image Classification, International Conference on Learning Representations (ICLR) 2018.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
非特許文献１に係る技術では、ニューラルネットワークの浅い層（すなわち、入力層に近い層）の出力層で認識のための演算を終えるほど、認識精度が低下する。また、非特許文献１に係る技術のニューラルネットワークは２次元的に広がる層構造を持つため、機械学習モデルのサイズが大きくなり、また学習が難しくなりうる。このように、ニューラルネットワークの機械学習モデルを用いた画像認識処理において、処理負荷を軽減することは改善の余地がある。
【０００７】
そこで、本発明はこれらの点に鑑みてなされたものであり、ニューラルネットワークの機械学習モデルを用いた画像認識処理において、処理負荷を軽減するための技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の態様は、画像認識装置である。この装置は、複数のフィルタをモデルパラメータとして含む機械学習モデルであって、処理対象の画像データに含まれる被写体が、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す情報を出力する機械学習モデルを取得するモデル取得部と、前記複数のフィルタのうち、前記画像データに含まれる被写体があらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するための前段フィルタ群を前記画像データに適用することにより、前記被写体グループを特定するグループ認識部と、前記前段フィルタ群の適用結果と、前記複数のフィルタのうち前記前段フィルタ群を除いたフィルタ群である後段フィルタ群の適用結果とに基づいて、前記画像データに含まれる認識対象を特定する個別認識部と、前記グループ認識部が特定した被写体グループと、前記後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいて、前記後段フィルタ群のうち前記個別認識部に適用させるフィルタを選択するフィルタ選択部と、を備える。
【０００９】
前記フィルタ選択部は、前記画像認識装置の計算リソースが許容する範囲において、前記後段フィルタ群を構成する各フィルタに設定されている優先度の高い順に前記個別認識部に適用させるフィルタを選択してもよい。
【００１０】
前記画像認識装置は、前記複数のフィルタそれぞれの重み係数の大きさを示す指標を算出する重み指標算出部と、前記指標によって重み係数が大きいことを示しているフィルタには、重み係数が小さいことを示しているフィルタよりも、前記優先度を高く設定する優先度設定部と、をさらに備えてもよい。
【００１１】
前記画像認識装置は、前記複数のフィルタそれぞれについて他のフィルタとの類似度を算出する類似度算出部と、他に類似するフィルタが存在しないフィルタには、他に類似するフィルタが存在するフィルタよりも、前記優先度を高く設定する優先度設定部と、をさらに備えてもよい。
【００１２】
前記優先度設定部は、前記複数の被写体グループ毎に、前記後段フィルタ群を構成する各フィルタに設定する優先度を変更してもよい。
【００１３】
前記フィルタ選択部は、前記後段フィルタ群を構成する２以上のフィルタそれぞれに等しい優先度が設定されている場合、等しい優先度が設定されたフィルタから無作為にフィルタを選択してもよい。
【００１４】
前記画像認識装置は、複数の画像データと、前記複数の画像データそれぞれに含まれる被写体と、当該被写体の被写体グループとが関連付けられた学習データに基づいて、ニューラルネットワークを用いた機械学習によって前記機械学習モデルを生成する学習部をさらに備えてもよく、前記学習部は、前記前段フィルタ群を生成する前段学習部と、前記前段学習部が前記前段フィルタ群を生成した後に、前記前段フィルタ群への誤差逆伝搬を行わずに前記前段フィルタ群の適用結果を用いて前記後段フィルタ群を生成する後段学習部と、を備えてもよい。
【００１５】
本発明の第２の態様は、画像認識方法である。この方法において、プロセッサが、複数のフィルタをモデルパラメータとして含む機械学習モデルであって、処理対象の画像データに含まれる被写体が、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す情報を出力する機械学習モデルを取得するステップと、前記複数のフィルタのうち、前記画像データに含まれる被写体があらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するための前段フィルタ群を前記画像データに適用することにより、前記被写体グループを特定するステップと、特定した前記被写体グループと、前記複数のフィルタのうち前記前段フィルタ群を除いたフィルタ群である後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいて、前記後段フィルタ群を構成するフィルタの中から１以上のフィルタを選択するステップと、前記前段フィルタ群の適用結果と、選択した前記フィルタの適用結果とに基づいて、前記画像データに含まれる認識対象を特定するステップと、を実行する。
【００１６】
本発明の第３の態様は、プログラムである。このプログラムは、コンピュータに、複数のフィルタをモデルパラメータとして含む機械学習モデルであって、処理対象の画像データに含まれる被写体が、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す情報を出力する機械学習モデルを取得する機能と、前記複数のフィルタのうち、前記画像データに含まれる被写体があらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するための前段フィルタ群を前記画像データに適用することにより、前記被写体グループを特定する機能と、特定した前記被写体グループと、前記複数のフィルタのうち前記前段フィルタ群を除いたフィルタ群である後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいて、前記後段フィルタ群を構成するフィルタの中から１以上のフィルタを選択する機能と、前記前段フィルタ群の適用結果と、選択した前記フィルタの適用結果とに基づいて、前記画像データに含まれる認識対象を特定する機能と、を実現させる。
【発明の効果】
【００１７】
本発明によれば、ニューラルネットワークの機械学習モデルを用いた画像認識処理において、処理負荷を軽減することができる。
【図面の簡単な説明】
【００１８】
【図１】畳込みニューラルネットワークの一般的な機能構成を模式的に示す図である。
【図２】ＡｌｅｘＮｅｔとして知られるニューラルネットワークの機械学習モデルの層構造を模式的に示す図である。
【図３】実施の形態に係る画像認識装置が用いる畳込みニューラルネットワークの層構造を模式的に示す図である。
【図４】実施の形態に係るニューラルネットワークの学習過程を説明するための図である。
【図５】実施の形態に係るニューラルネットワークの認識過程を説明するための図である。
【図６】実施の形態に係る画像認識装置の機能構成を模式的に示す図である。
【図７】被写体グループ毎のフィルタの優先度を表形式で模式的に示す図である。
【図８】実施の形態に係る学習部の機能構成を模式的に示す図である。
【図９】実施の形態に係る画像認識装置が実行する画像認識処理の流れを説明するためのフローチャートである。
【発明を実施するための形態】
【００１９】
＜畳込みニューラルネットワーク＞
実施の形態に係る画像認識装置は、ニューラルネットワークの機械学習モデルを用いた画像認識処理を実行するための装置である。実施の形態に係る画像認識装置は、主な一例として、畳込みニューラルネットワーク（Convolutional Neural Network；ＣＮＮ）の機械学習モデルを用いる。そこで、実施の形態に係る情報処理装置の前提技術として、まず畳込みニューラルネットワークについて簡単に説明する。
【００２０】
図１は、畳込みニューラルネットワークの一般的な機能構成を模式的に示す図である。現在、様々な構成のニューラルネットワークが提案されているが、これらの基本構成は共通である。ニューラルネットワークの基本構成は、複数種類の層の重ね合わせ（又はグラフ構造）で表現される。ニューラルネットワークは、入力データに対する出力結果が適切な値になるようにモデルパラメータを学習する。言い換えると、ニューラルネットワークは、入力データに対する出力結果が適切な値になるように定義された損失関数を最小化するようにモデルパラメータを学習する。
【００２１】
図１は、入力画像Ｉに含まれる被写体の種類を出力するように学習された機械学習モデルを示している。図１に示す例では、入力層Ｌｉに入力された入力画像Ｉは、第１畳込み層Ｃ１、第２畳込み層Ｃ２の順に処理され、プーリング層Ｐ、第１全結合層Ｆ１、第２全結合層Ｆ２、及び出力層Ｌｏに至るように構成されている。出力層は、入力画像Ｉに含まれる被写体の種類を示す識別ラベルＢを出力する。
【００２２】
例えば、図１に示す機械学習モデルが、犬や猫、猿等の複数の動物を認識するための機械学習モデルである場合、あらかじめ識別対象の動物を特定するための識別ラベルＢが割り当てられている。この機械学習モデルの入力層Ｌｉに入力画像Ｉが入力されると、出力層Ｌｏは、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す識別ラベルＢを出力する。なお、識別ラベルＢは、例えば、複数の認識対象それぞれに一意に割り当てられたビット列である。
【００２３】
ニューラルネットワークにおいては、前段層の出力がその前段層に隣接する後段層の入力となる。畳込みニューラルネットワークにおける各畳込み層は、前段層から入力された信号に対してフィルタを適用し、フィルタの出力がその層の出力となる。
【００２４】
図２は、ＡｌｅｘＮｅｔとして知られるニューラルネットワークの機械学習モデルの層構造を模式的に示す図である。図２に示すように、ＡｌｅｘＮｅｔは入力層Ｌｉと、５つの畳込み層（第１畳込み層Ｃ１、第２畳込み層Ｃ２、第３畳込み層Ｃ３、第４畳込み層Ｃ４、及び第５畳込み層Ｃ５）と、２つの全結合層（第１全結合層Ｆ１及び第２全結合層Ｆ２）と、出力層Ｌｏとを含み、最終層は１０００種類の識別ラベルＢを出力するように構成されている。すなわち、ＡｌｅｘＮｅｔは１０００種類の認識対象を認識するための畳込みニューラルネットワークである。
【００２５】
図示はしないが、認識精度を向上させるため、さらに深い層を持つネット構造が提案されている。例えば、ＲｅｓＮｅｔとして知られるニューラルネットワークの機械学習モデルは、１５２層からなる層構造を有している。ニューラルネットワークでは、層を重ねる毎により高度で複雑な特徴を抽出可能であるため、層を深くすることは認識精度の向上に重要な役割を果たしていると考えられる。
【００２６】
＜実施の形態に係るニューラルネットワーク＞
図３は、実施の形態に係る画像認識装置が用いる畳込みニューラルネットワークＮの層構造を模式的に示す図である。以下、図３を参照して、実施の形態に係るニューラルネットワークＮについて説明する。
【００２７】
実施の形態に係る画像認識装置が用いる畳込みニューラルネットワークＮの機械学習モデルは、従来の畳込みニューラルネットワークと同様に複数の畳込み層を備え、入力画像Ｉに含まれる被写体が複数の認識対象のうちいずれの認識対象であるかを出力する。このため、実施の形態に係る画像認識装置１が用いる畳込みニューラルネットワークＮの機械学習モデルは、複数のフィルタをモデルパラメータとして含んでいる。
【００２８】
畳込みニューラルネットワークでは、層を重ねる毎により高度で複雑な特徴を抽出することができるので、層を深くすることによって区別が難しい類似した認識対象であっても認識できるようになる。反対に、認識対象同士が著しく異なっていれば、畳込みニューラルネットワークの層が少なくても認識することができる。これらの事象は、畳込みニューラルネットワークの前段部分で認識対象の大きな特徴を認識し、後段に進むほど各認識対象に特有の詳細な特徴を認識していることを示唆している。同様の事象が各層のフィルタ数を変更することでも実現できる。すなわち、各層のフィルタ数を多くすることによって区別が難しい類似した認識対象であっても認識できるようになる。反対に、認識対象同士が著しく異なっていれば、各層のフィルタ数が少なくても認識することができる。
【００２９】
したがって、機械学習モデルを構成するフィルタには、すべての認識対象の認識に寄与するフィルタと、ある認識対象を認識するためには重要な役割を果たす一方で別の認識対象の認識にはあまり寄与しないようなフィルタとが存在すると考えられる。前者のフィルタは複数の認識対象が共通に含む特徴を認識するためのフィルタが挙げられ、後者のフィルタは類似する特徴を有する特定の認識対象を区別するためのフィルタが挙げられる。
【００３０】
例えば、ある機械学習モデルの認識対象に、猫、犬、猿、又は牛等の哺乳類と、みかん、人参、大根、又はキャベツ等の植物と、自動車やビル等の人工物とが含まれているとする。この場合、例えば、哺乳類の「目」に強く反応するフィルタは、認識対象が哺乳類か否かという大きな特徴を捉えるためのフィルタと考えられるので、すべての認識対象の認識に寄与するフィルタと考えられる。
【００３１】
これに対し、例えば、「犬」と「猫」とを区別するために用いられるフィルタは、認識対象が犬又は猫である場合には認識に大きく寄与すると考えられるが、認識対象が猫や犬以外の「キャベツ」や「自動車」である場合には認識にあまり寄与しないと考えられる。すなわち、ある認識対象を認識するためには重要な役割を果たす一方で別の認識対象の認識にはあまり寄与しないようなフィルタが存在すると考えられる。
【００３２】
図３に示すように、実施の形態に係る画像認識装置が用いる畳込みニューラルネットワークＮの機械学習モデルは、前段フィルタ群と後段フィルタ群との２つのフィルタ群を備えている。図３に示す例では、前段フィルタ群は、５つの畳込み層（第１前段畳込み層Ｃｆ１、第２前段畳込み層Ｃｆ２、第３前段畳込み層Ｃｆ３、第４前段畳込み層Ｃｆ４、及び第５前段畳込み層Ｃｆ５）と２つの前結合層（第１全結合層Ｆ１及び第２全結合層Ｆ２）に含まれるフィルタである。また後段フィルタ群は、５つの畳込み層（第１後段畳込み層Ｃｒ１、第２後段畳込み層Ｃｒ２、第３後段畳込み層Ｃｒ３、第４後段畳込み層Ｃｒ４、及び第５後段畳込み層Ｃｒ５）に含まれるフィルタである。
【００３３】
例えば、図２に示したＡｌｅｘＮｅｔに対して本実施の形態を適用した場合、各層が備えるフィルタを前段フィルタ群と後段フィルタ群とに等分する。具体的には、ニューラルネットワーク構造としては、前段フィルタ群及び後段フィルタ群の第１畳込み層については、（５５×５５）ノード×４８フィルタとなる。同様に、第２畳込み層〜第５畳込み層については、それぞれ、（２７×２７）ノード×１２８フィルタ、（１３×１３）ノード×１９２フィルタ、（１３×１３）ノード×１９２フィルタ、（１３×１３）ノード×１２８フィルタとなる。また、第１全結合層Ｆ１、第２全結合層Ｆ２、第３全結合層Ｆ３、及び第４全結合層Ｆ４は、いずれも２０４８ノードとなる。
【００３４】
［学習過程］
まず、実施の形態に係るニューラルネットワークＮの学習過程について説明する。
【００３５】
図４（ａ）−（ｃ）は、実施の形態に係るニューラルネットワークＮの学習過程を説明するための図である。具体的には、図４（ａ）及び図４（ｂ）は、それぞれ前段フィルタ群の第１段階学習及び第２段階学習を示しており、図４（ｃ）は後段フィルタ群の学習を示している。ここで、前段フィルタ群は、入力画像Ｉに含まれる被写体が、あらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するために用いられるフィルタ群である。また、後段フィルタ群は、機械学習モデルを構成するフィルタの中から、前段フィルタを構成するフィルタを除いたフィルタ群である。
【００３６】
図４（ａ）に示すように、前段フィルタ群の第１段階学習では、学習用の画像データである学習データを入力としたとき、その画像データに対応付けられた被写体の識別ラベルＢを出力する第１の前段フィルタ群を生成する。すなわち、前段フィルタ群の第１段階学習は、通常の機械学習の工程と同様である。
【００３７】
図４（ｂ）に示すように、前段フィルタ群の第２段階学習では、学習データを入力としたとき、その画像データが属する被写体グループを示すグループ識別ラベルを出力するような機械学習モデルを生成する。具体的には、前段フィルタ群に含まれる第１全結合層Ｆ１と第２全結合層Ｆ２をファインチューニングすることで、画像データが属するグループを認識する第２の前段フィルタ群を生成する。
【００３８】
図４（ｂ）では、ファインチューニング後の第１全結合層Ｆ１と第２全結合層Ｆ２は、それぞれ第１全結合層Ｆ１’と第２全結合層Ｆ２’と記載されている。したがって、第１の前段フィルタ群の畳込み層と第２の前段フィルタ群の畳込み層とは共通である。第１の前段フィルタ群と第２の前段フィルタ群とは大部分が共通するため、両者を特に区別する場合を除き、単に前段フィルタ群と記載する。
【００３９】
後段フィルタの学習は、図４（ｃ）に示すように、前段フィルタ群の第１学習段階で生成された機械学習モデルとともに学習される。すなわち、第１の前段フィルタ群の出力と、後段フィルタ群の出力とを用いて学習データの識別ラベルＢを出力するように後段フィルタ群が学習される。後段フィルタ群の学習時には、前段フィルタ群への誤差逆伝搬は行われず、前段フィルタ群の適用結果を用いて後段フィルタ群が学習される。
【００４０】
［認識過程］
続いて、実施の形態に係るニューラルネットワークＮの学習過程について説明する。
【００４１】
図５（ａ）−（ｂ）は、実施の形態に係るニューラルネットワークＮの認識過程を説明するための図である。実施の形態に係るニューラルネットワークＮの認識過程は、入力画像Ｉに含まれる被写体が属するグループを認識するグループ認識の段階と、当該被写体そのものを認識する被写体認識の段階との２つの段階から構成されている。
【００４２】
図５（ａ）は、入力画像Ｉのグループ認識を説明するための図である。グループ認識は、前段フィルタ群の第２段階学習で生成された第２の前段フィルタ群を用いて行われる。入力画像Ｉに第２の前段フィルタ群を適用することにより、入力画像Ｉに含まれる被写体が属する被写体グループが認識される。
【００４３】
実施の形態に係る画像認識装置は、後段フィルタ群に含まれるフィルタをすべて適用することで、最も高い認識精度で認識対象を認識することが期待できる。しかしながら、後段フィルタ群に含まれるフィルタをすべて適用しなくても、一定精度の認識精度を維持することはできる。したがって、画像認識装置は、例えば、画像認識装置の計算リソースがもともと小さかったり、計算リソースは大きくても他の演算の処理負荷が大きく一時的に機械学習モデルの適用に割り当てる計算リソースが小さかったりする場合に、計算リソースに合わせて適用する後段フィルタを取捨選択することで、演算の実行可能性と、認識精度とのバランスを図ることができる。
【００４４】
詳細は後述するが、実施の形態に係る画像認識装置は、入力画像Ｉに含まれる被写体が属する被写体グループに基づいて、後段フィルタ群を構成するフィルタの中から実際に適用するフィルタを選択する。そして、図５（ｂ）に示すように、第１の前段フィルタ群の出力と、選択された後段フィルタ群との出力を合わせて、入力画像Ｉに含まれる被写体を示す識別ラベルＢが出力される。
【００４５】
ここで、入力画像Ｉのグループ認識に要求される演算量の増加量が、後段フィルタ群のフィルタの取捨選択による演算量の低減量を上回っては、後段フィルタ群のフィルタを取捨選択することの意味がない。しかしながら、実施の形態に係るニューラルネットワークＮにおいて、第１の前段フィルタ群の畳込み層と、第２の前段フィルタ群の畳込み層とは共通である。したがって、入力画像Ｉに含まれる被写体が属する被写体グループを認識するために実行した第２の前段フィルタ群の畳込み層の演算結果は、第１の前段フィルタ群の畳込み層の演算に流用できる。これにより、実施の形態に係るニューラルネットワークＮの認識過程において、入力画像Ｉに含まれる被写体が属する被写体グループを認識するために増加する演算コストは、実質的に第１全結合層Ｆ１’の演算と第２全結合層Ｆ２’の演算だけである。ゆえに、入力画像Ｉのグループ認識に要求される演算量の増加量は、後段フィルタ群のフィルタの取捨選択による演算量の低減量を十分下回ることが期待できる。
【００４６】
このように、実施の形態に係る画像認識装置は、入力画像Ｉに適用するフィルタを取捨選択することにより、認識処理の処理負荷を軽減することができる。
【００４７】
＜実施の形態に係る画像認識装置１の機能構成＞
図６は、実施の形態に係る画像認識装置１の機能構成を模式的に示す図である。画像認識装置１は、記憶部２と制御部３とを備える。図６において、矢印は主なデータの流れを示しており、図６に示していないデータの流れがあってもよい。図６において、各機能ブロックはハードウェア（装置）単位の構成ではなく、機能単位の構成を示している。そのため、図６に示す機能ブロックは単一の装置内に実装されてもよく、あるいは複数の装置内に分かれて実装されてもよい。機能ブロック間のデータの授受は、データバス、ネットワーク、可搬記憶媒体等、任意の手段を介して行われてもよい。
【００４８】
記憶部２は、画像認識装置１を実現するコンピュータのＢＩＯＳ（Basic Input Output System）等を格納するＲＯＭ（Read Only Memory）や画像認識装置１の作業領域となるＲＡＭ（Random Access Memory）、ＯＳ（Operating System）やアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の大容量記憶装置である。
【００４９】
制御部３は、画像認識装置１のＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）等のプロセッサであり、記憶部２に記憶されたプログラムを実行することによって画像取得部３０、モデル取得部３１、グループ認識部３２、フィルタ選択部３３、個別認識部３４、リソース取得部３５、重み指標算出部３６、優先度設定部３７、類似度算出部３８、及び学習部３９として機能する。
【００５０】
なお、図６は、画像認識装置１が単一の装置で構成されている場合の例を示している。しかしながら、画像認識装置１は、例えばクラウドコンピューティングシステムのように複数のプロセッサやメモリ等の計算リソースによって実現されてもよい。この場合、制御部３を構成する各部は、複数の異なるプロセッサの中の少なくともいずれかのプロセッサがプログラムを実行することによって実現される。
【００５１】
画像取得部３０は、画像認識装置１が処理対象とする画像データである入力画像Ｉを取得する。モデル取得部３１は、複数のフィルタをモデルパラメータとして含む機械学習モデルを取得する。実施の形態に係るモデル取得部３１が取得する機械学習モデルは、処理対象の画像データである入力画像Ｉに含まれる被写体が、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す情報を出力する機械学習モデルである。
【００５２】
グループ認識部３２は、学習モデルに含まれる複数のフィルタのうち、入力画像Ｉに含まれる被写体があらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するための前段フィルタ群（すなわち、上述した第２の前段フィルタ群）を、入力画像Ｉに適用して被写体グループを特定する。
【００５３】
フィルタ選択部３３は、機械学習モデルに含まれる複数のフィルタのうち、前段フィルタ群を除いたフィルタ群である後段フィルタ群の中から１以上のフィルタを選択する。ここで、フィルタ選択部３３は、グループ認識部３２が特定した被写体グループと、後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいてフィルタを選択する。フィルタ選択部３３によるフィルタ選択の詳細は後述する。
【００５４】
個別認識部３４は、第１の前段フィルタ群の適用結果と、フィルタ選択部３３が選択したフィルタを入力画像Ｉに適用した結果とに基づいて、入力画像Ｉに含まれる認識対象を特定する。このように、画像認識装置１は、機械学習モデルが備える後段フィルタ群の中から実際に入力画像Ｉに適用するフィルタを選択する。これにより、画像認識装置１は、機械学習モデルが備えるフィルタをすべて使用する場合と比較して、画像認識処理における処理負荷を軽減することができる。
【００５５】
リソース取得部３５は、画像認識装置１の計算リソースを取得する。ここでリソース取得部３５が取得する「計算リソース」は、画像認識装置１が備えるＣＰＵ及びＧＰＵ等のプロセッサのパワー及び画像認識装置１が備える主記憶装置の容量等、画像認識装置１が画像認識処理に割り当てることができる計算能力である。画像認識装置１の計算リソースは、例えば画像認識装置１がブレードサーバである場合とＩｏＴデバイスである場合のように、画像認識装置１の種類によって異なる。また、同一の画像認識装置１であっても、画像認識処理時に並行して実行している他の処理に割り当てている計算リソースの大きさによって、画像認識処理に割り当て可能な計算リソースが変化しうる。リソース取得部３５は、画像認識装置１が機械学習モデルを用いて画像認識処理を実施する際に使用可能な計算リソースを取得する。
【００５６】
フィルタ選択部３３は、画像認識装置１の計算リソースが許容する範囲において、後段フィルタ群を構成する各フィルタに設定されている優先度の高い順に個別認識部３４に適用させるフィルタを選択する。一般に、画像認識処理において適用するフィルタの数が多いほど高い認識精度を期待できる。画像認識装置１は、画像認識装置１の計算リソースに応じて適用する後段フィルタ群のフィルタを選択することにより、画像認識装置１が実行可能な範囲において最も高い認識精度を期待できる画像認識処理を実行することができる。
【００５７】
［フィルタ選択処理］
続いて、実施の形態に係る画像認識装置１におけるフィルタ選択処理を説明する。
【００５８】
上述したように、ニューラルネットワークにおいては、前段層の出力がその前段層に隣接する後段層の入力となる。畳込みニューラルネットワークにおける各畳込み層は、前段層から入力された信号に対してフィルタを適用し、フィルタの出力がその層の出力となる。したがって、畳込み層におけるフィルタの重み係数の絶対値が大きいほど、その次の層の入力信号の絶対値が大きくなりうる。
【００５９】
すなわち、ある畳込み層のフィルタの重み係数の大きさは、次の層において対応するユニットの活性度の指標値となりうる。ニューラルネットワークにおいては、層を構成するユニットうち、活性度の大きいユニットは、活性度の小さいユニットよりも、認識能力に対する寄与度が大きいと言われている。
【００６０】
そこで、重み指標算出部３６は、後段フィルタ群に含まれる複数のフィルタそれぞれの重み係数の大きさを示す指標を算出する。ここで、「重み係数の大きさを示す指標」とは、例えばフィルタの重み係数の絶対値の総和をフィルタの重み係数の数で割った値である。あるいは、フィルタの重み係数の２乗の総和を、フィルタの重み係数の数で割った値であってもよい。いずれにしても、フィルタの重み係数の大きさを示す指標が大きいほど、そのフィルタに含まれる重み係数が大きいことを示している。
【００６１】
優先度設定部３７は、重み指標算出部３６が算出した指標によって重み係数が大きいことを示しているフィルタには、重み係数が小さいことを示しているフィルタよりも、優先度を高く設定する。これにより、画像認識装置１は、機械学習モデルの認識能力に寄与度が大きいと考えられるフィルタを優先して選択することができる。
【００６２】
ここで、優先度設定部３７がある後段フィルタ群に含まれる各フィルタに設定する優先度の段階は、後段フィルタ群に含まれるフィルタの数を上限として任意である。例えば、優先度の段階をフィルタの数と同じにした場合、その畳込み層に含まれるフィルタは優先度を用いて序列をつけることができる。
【００６３】
あるいは、フィルタの数が２以上の場合において、優先度の段階を「高」と「低」との２段階としてもよい。この場合、優先度設定部３７は、所定の閾値Ａを設定し、各フィルタの重み係数の大きさを示す指標が閾値Ａを超える場合は優先度を「高」とし、閾値Ａ未満の場合は優先度を「低」とすればよい。
【００６４】
また、優先度設定部３７は、後段フィルタ群に含まれるフィルタ同士の類似度に基づいて、各フィルタに設定する優先度を変更してもよい。一般に、ある２つのフィルタの重み係数が近似しているほど、その２つのフィルタは近似する特徴を抽出すると考えられる。したがって、ある２つのフィルタが類似する場合には、いずれか一方のフィルタが特徴を抽出すれば、もう一方のフィルタを用いなくても、最終的な認識精度の変化は小さいと考えられる。反対に、他に類似するフィルタが存在しないフィルタは、そのフィルタは他のフィルタでは抽出できない特徴を抽出できる可能性がある。
【００６５】
そこで、類似度算出部３８は、後段フィルタ群に含まれる複数のフィルタそれぞれについて他のフィルタとの類似度を算出する。優先度設定部３７は、他に類似するフィルタが存在しないフィルタには、他に類似するフィルタが存在するフィルタよりも、優先度を高く設定する。これにより、画像認識装置１は、画像認識装置１の計算リソースが許容する範囲において、異なる特徴を抽出するためのフィルタを選択することができる。
【００６６】
ここで、類似度算出部３８は、フィルタ間の「距離」をフィルタ間の類似度として算出すればよい。類似度算出部３８が算出するフィルタ間の「距離」は、距離の公理を満たせばどのような量であってもよいが、例えばフィルタ間のユークリッド距離である。具体的には、類似度算出部３８は、第ｉフィルタと第ｊフィルタの類似度Ｄ（ｉ，ｊ）は以下の式（１）を用いて算出する。
【００６７】
【数１】
2020107185.tif 000003
ここで、Ｉ（ｍ，ｎ，ｆ）は、３次元の第ｉフィルタの縦ｍ、横ｎ、高さｆにおける要素であり、Ｊ（ｍ，ｎ，ｆ）は、第ｊフィルタの縦ｍ、横ｎ、高さｆにおける要素である。式（１）は、２つのフィルタのユークリッド距離を、フィルタの要素数（重み係数の数）で正規化した量であることを示している。ある２つのフィルタ間の非類似度Ｄの値が小さいほど、そのフィルタ同士は類似していることを示している。この他にも、類似度算出部３８は、例えばコサイン類似度を用いてフィルタ間の類似度を算出してもよい。
【００６８】
類似度算出部３８は、第ｉフィルタの類似度Ｓ（ｉ）として、Ｓ（ｉ）＝ΣＤ（ｉ，ｊ）（ｊ＝１，・・・，Ｎｆ；Ｎｆはフィルタの数）を算出し、その値が大きい（即ち他に類似するフィルタが存在しない）フィルタに高い優先度を割り当ててもよい。
【００６９】
重み指標算出部３６と同様に、優先度設定部３７も、類似度の段階を「類似」と「非類似」との２段階としてもよい。この場合、優先度設定部３７は、所定の閾値Ｂを設定し、各フィルタ間の類似度が閾値Ｂを超える場合は「類似」とし、閾値Ｂ未満の場合は「非類似」とすればよい。また、優先度設定部３７は、重み指標算出部３６が優先度を２段階とした場合に、優先度が低となっているフィルタを対象として、フィルタ間の類似度を求めてもよい。この場合、優先度設定部３７は、いずれのフィルタとも非類似となったフィルタの優先度を「高」としてもよい。
【００７０】
上述したように、機械学習モデルを構成するフィルタには、ある認識対象を認識するためには重要な役割を果たす一方で別の認識対象の認識にはあまり寄与しないようなフィルタが存在すると考えられる。したがって、被写体の種類によって、その被写体を認識するためのフィルタの重要度が変わることが起こりうる。
【００７１】
そこで、優先度設定部３７は、あらかじめ定められた複数の被写体グループ毎に、後段フィルタ群を構成する各フィルタに設定する優先度を変更する。以下、優先度設定部３７が実行する被写体グループ毎のフィルタの優先度の設定について具体的に説明する。
【００７２】
いま、被写体グループの種類がＰ種類（Ｐは２以上の整数）であり、後段フィルタ群に含まれるフィルタの数がＱ個（Ｑは２以上の整数）であるとする。ｑ番目のフィルタをフィルタｆｑ（１≦ｑ≦Ｑ）とし、ｐ番目のグループ（１≦ｐ≦Ｐ）におけるフィルタｆｑの重要性の順序をＷｐｑとする。
【００７３】
ステップ１：優先度設定部３７は、ｐに１を設定する。
ステップ２：優先度設定部３７は、ｐ番目の被写体グループのテストデータＴｐを取得する。
ステップ３：優先度設定部３７は、前段フィルタ群と全ての後段フィルタ群とをテストデータＴｐに適用し、認識率Ｒｐを算出する。
【００７４】
ステップ４：優先度設定部３７は、ｑに１を設定する。
ステップ５：優先度設定部３７は、後段フィルタ群に含まれるフィルタの中からフィルタｆｑを除外して適用した場合のテストデータＴｐの認識率Ｒｐｑを算出する。
ステップ６：優先度設定部３７は、認識率Ｒｐから認識率Ｒｐｑを減算した値である認識率の低下量Ｃｑを算出する。低下量Ｃｑはフィルタｆｑを除外したことによる認識率の低下量を示している。すなわち、認識率に対するフィルタｆｑの貢献度を示している。
【００７５】
ステップ７：優先度設定部３７は、ｑの値をｑ＋１に更新する。
ステップ８：ｑがＱを超えるまで、優先度設定部３７はステップ４及びステップ５の処理を繰り返す。
ステップ９：優先度設定部３７は、Ｑ個の低下量Ｃｑを大きい順に並べ替える。このとき低下量Ｃｑの添字ｑの順序が、ｐ番目の被写体グループにおけるフィルタｆｑの重要製の順序Ｗｐｑとなる。
【００７６】
ステップ１０：優先度設定部３７は、ｐの値をｐ＋１に更新する。
スタップ１１：ｐがＰを超えるまで、優先度設定部３７はステップ２からステップ８までの処理を繰り返す。
【００７７】
以上の処理により、優先度設定部３７は、あらかじめ定められた被写体ブループ毎に、後段フィルタ群を構成する各フィルタの重要性の順序を求めることができる。優先度設定部３７は、あらかじめ定められた被写体ブループ毎に、重要性が高いフィルタほど優先度を上げる。これにより、優先度設定部３７は、あらかじめ定められた複数の被写体グループ毎に、後段フィルタ群を構成する各フィルタに設定する優先度を変更することができる。
【００７８】
なお、フィルタの類似度と同様に、優先度設定部３７は、重要度の段階を重要か否かの２段階としてもよい。この場合、優先度設定部３７は、所定の閾値Ｃを設定し、認識率Ｒｐｑが閾値Ｃより小さい場合はフィルタｆｑを重要とし、認識率Ｒｐｑが閾値Ｃ以上の場合はフィルタｆｑを重要でないとすればよい。
【００７９】
図７は、被写体グループ毎のフィルタの優先度を表形式で模式的に示す図である。具体的には、図７は、第１被写体グループに関するフィルタ毎の重み係数の大きさ、類似度、重要性の順序、及び優先度を格納する優先度データベースのデータ構造を示している。優先度データベースは記憶部２に格納され、優先度設定部３７によって管理される。優先度データベースを参照することにより、フィルタ選択部３３は、被写体グループと、後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいて、後段フィルタ群のうち個別認識部３４に適用させるフィルタを選択することができる。
【００８０】
ここで、優先度設定部３７が、後段フィルタ群に含まれる各フィルタに設定する優先度の段階をフィルタの数未満とした場合、複数のフィルタが同じ優先度となることも起こりうる。そこで、フィルタ選択部３３は、前段フィルタ群を構成する２以上のフィルタそれぞれに等しい優先度が設定されている場合は、等しい優先度が設定されたフィルタから無作為にフィルタを選択すればよい。これにより、フィルタ選択部３３は、優先度以外の他の指標を参照することなく、フィルタを選択することができる。
【００８１】
学習部３９は、複数の画像データと、複数の画像データそれぞれに含まれる被写体と、被写体の被写体グループとが関連付けられた学習データに基づいて、ニューラルネットワークを用いた機械学習によって機械学習モデルを生成する。
【００８２】
図８は、実施の形態に係る学習部３９の機能構成を模式的に示す図である。図８に示すように、学習部３９は、前段学習部３９０と後段学習部３９１とを備える。
【００８３】
まず、画像取得部３０は、画像データに含まれる被写体と、その被写体が属する被写体グループとが既知である複数の画像データを取得する。前段学習部３９０は、画像取得部３０が取得した複数の画像データを学習データとして、図４（ａ）−（ｂ）を参照して説明したように、ニューラルネットワークを用いた機械学習によって前段フィルタ群を生成する。
【００８４】
後段学習部３９１は、図４（ｃ）を参照して説明したように、前段学習部３９０が前段フィルタ群を生成した後に、前段フィルタ群への誤差逆伝搬を行わずに前段フィルタ群の適用結果を用いて後段フィルタ群を生成する。
【００８５】
具体的には、後段学習部３９１は出力層Ｌｏの出力と、入力画像Ｉに対応付けられた識別ラベルＢとの誤差を誤差逆伝搬させることによって各層を構成するフィルタの重みを更新する。このとき、後段学習部３９１は、第１前段畳込み層Ｃｆ１、第２前段畳込み層Ｃｆ２、第３前段畳込み層Ｃｆ３、第４前段畳込み層Ｃｆ４、及び第５前段畳込み層Ｃｆ５に含まれるフィルタの重みを固定し、その更新を禁止する。これにより、後段学習部３９１は、前段フィルタ群を固定したまま、後段フィルタ群を生成することができる。
【００８６】
＜画像認識装置１が実行する画像認識方法の処理フロー＞
図９は、実施の形態に係る画像認識装置１が実行する画像認識処理の流れを説明するためのフローチャートである。本フローチャートにおける処理は、例えば画像認識装置１が起動したときに開始する。
【００８７】
モデル取得部３１は、複数のフィルタをモデルパラメータとして含む機械学習モデルであって、処理対象の画像データである入力画像Ｉに含まれる被写体が、あらかじめ定められた複数の認識対象のうちいずれの認識対象であるかを示す情報を出力する機械学習モデルを取得する（Ｓ２）。
【００８８】
グループ認識部３２は、複数のフィルタのうち、入力画像Ｉに含まれる被写体があらかじめ定められた複数の被写体グループのうちいずれの被写体グループに属すかを認識するための前段フィルタ群を入力画像Ｉに適用することにより、被写体グループを特定する（Ｓ４）。
【００８９】
フィルタ選択部３３は、モデル取得部３１が特定した被写体グループと、後段フィルタ群を構成する各フィルタに設定されている優先度とに少なくとも基づいて、後段フィルタ群を構成するフィルタの中から１以上のフィルタを選択する（Ｓ６）。
【００９０】
個別認識部３４は、前段フィルタ群の適用結果と、選択したフィルタの適用結果とに基づいて、入力画像Ｉに含まれる認識対象を特定する（Ｓ８）。
【００９１】
＜実施の形態に係る画像認識装置１が奏する効果＞
以上説明したように、実施の形態に係る画像認識装置１によれば、ニューラルネットワークの機械学習モデルを用いた画像認識処理において、処理負荷を軽減することができる。
【００９２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。
【符号の説明】
【００９３】
１・・・画像認識装置
２・・・記憶部
３・・・制御部
３０・・・画像取得部
３１・・・モデル取得部
３２・・・グループ認識部
３３・・・フィルタ選択部
３４・・・個別認識部
３５・・・リソース取得部
３６・・・重み指標算出部
３７・・・優先度設定部
３８・・・類似度算出部
３９・・・学習部
３９０・・・前段学習部
３９１・・・後段学習部
Ｎ・・・畳込みニューラルネットワーク
【図１】
2020107185.tif 000004
【図２】
2020107185.tif 000005
【図３】
2020107185.tif 000006
【図４】
2020107185.tif 000007
【図５】
2020107185.tif 000008
【図６】
2020107185.tif 000009
【図７】
2020107185.tif 000010
【図８】
2020107185.tif 000011
【図９】
2020107185.tif 000012