(57)【特許請求の範囲】
【請求項１】
複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置（１００）であって、
前階層から入力される入力データに対して、少なくとも畳み込み演算処理および低解像度化処理を実行する演算処理手段（１０４）と、
前記低解像度化処理の際に特徴を示す画素データのうち最大値を示す画素データの位置情報を記憶する記憶手段（１０５）と、
前記記憶手段が記憶している前記位置情報に基づいて、前記入力データにおける検出対象物の位置を特定する復元手段（１０６）と、
を備え、
前記記憶手段は、前階層から複数の前記入力データが入力される場合には、それぞれの前記入力データに対する前記低解像度化処理の際に最大値を示す画素データをそれぞれ特徴画素データとして特定し、これら複数の前記特徴画素データのうち最も大きい値を示す特徴画素データの位置情報を記憶するものであり、
前記低解像度化処理の際に最大値を示す画素データの位置情報を記憶しながら、前記畳み込み演算処理および前記低解像度化処理を多階層にわたって繰り返し実行することを特徴とする演算処理装置。
【請求項２】
前記復元手段が特定した前記検出対象物の位置を補正する補正手段（１０７）をさらに備えることを特徴とする請求項１に記載の演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置に関する。
【背景技術】
【０００２】
従来より、複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置が考えられている。特に画像認識を行う演算処理装置においては、いわゆる畳み込みニューラルネットワーク（ＣＮＮ：Convolutional Neural Network）が中核的な存在となっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５１８４８２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この種の畳み込みニューラルネットワークは、コンボルーション層およびプーリング層を交互に接続した構造を有する。コンボルーション層では、前階層から入力される入力データに対して学習済みのフィルタを用いたいわゆる畳み込み演算処理が行われ、これにより、入力データに含まれる特徴量が抽出される。コンボルーション層に続くプーリング層では、畳み込み演算処理により得られる特徴マップのうち近傍数画素の領域から最大値または平均値を出力することにより、特徴量の微小な変化に対する応答の不変性を獲得する。即ち、特徴量の微小な変化を吸収する。
【０００５】
ところで、畳み込みニューラルネットワークによれば、このようなコンボルーション層およびプーリング層による処理を繰り返すことにより、より高次元の特徴量の抽出を実現する。しかしながら、プーリング処理は、その処理の繰り返しに伴い出力データの解像度が徐々に低下していく低解像度化処理である。そのため、このような低解像度化処理が繰り返されることに伴い、出力データの解像度が徐々に不足していく可能性があり、入力画像における検出対象物の位置を精度良く特定できなくなる懸念がある。
【０００６】
そこで、本発明は、ニューラルネットワークによる演算処理を実現する演算処理装置において、低解像度化処理の繰り返しに伴いデータの解像度が低下する場合であっても、入力画像における検出対象物の位置を精度良く特定することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る演算処理装置は、複数の処理層が階層的に接続されたニューラルネットワークによる演算を実行する演算処理装置であり、演算処理手段と、記憶手段と、復元手段と、を備える。演算処理手段は、前階層から入力される入力データに対して、少なくとも畳み込み演算処理および低解像度化処理を実行する。記憶手段は、低解像度化処理の際に特徴を示す画素データのうち最大値を示す画素データの位置情報を記憶する。復元手段は、記憶手段が記憶している位置情報に基づいて、入力データにおける検出対象物の位置を特定する。前記記憶手段は、前階層から複数の前記入力データが入力される場合には、それぞれの前記入力データに対する前記低解像度化処理の際に最大値を示す画素データをそれぞれ特徴画素データとして特定し、これら複数の前記特徴画素データのうち最も大きい値を示す特徴画素データの位置情報を記憶する。そして、前記低解像度化処理の際に最大値を示す画素データの位置情報を記憶しながら、前記畳み込み演算処理および前記低解像度化処理を多階層にわたって繰り返し実行する。
【０００８】
この構成によれば、低解像度化処理の繰り返しに伴いデータの解像度が低下する場合であっても、記憶手段が記憶している位置情報に基づいて、入力画像における検出対象物の位置を精度良く特定することができる。
【図面の簡単な説明】
【０００９】
【図１】畳み込みニューラルネットワークの構成例を概念的に示す図
【図２】中間層における演算処理の流れを視覚的に示す図（その１）
【図３】中間層における演算処理の流れを視覚的に示す図（その２）
【図４】特徴量抽出処理に用いられる一般的な演算式および関数の一例を示す図
【図５】一実施形態に係る演算処理装置の構成例を概略的に示すブロック図
【図６】各プーリング層におけるデータの解像度の一例を示す図
【図７】記憶処理部による位置情報の記憶処理の一例を視覚的に示す図
【図８】記憶処理部による位置情報の記憶処理の一例を多階層にわたって視覚的に示す図
【図９】補正処理部による矩形枠の補正処理の一例を視覚的に示す図
【図１０】複数の特徴マップから位置情報を記憶する処理の一例を視覚的に示す図
【図１１】複数の特徴マップから得られた位置情報に基づく矩形枠の補正処理の一例を視覚的に示す図
【発明を実施するための形態】
【００１０】
以下、演算処理装置に係る一実施形態について図面を参照しながら説明する。
（ニューラルネットワーク）
図１には、詳しくは後述する演算処理装置１００に適用されるニューラルネットワーク、この場合、畳み込みニューラルネットワークの構成を概念的に示している。即ち、畳み込みニューラルネットワークＮは、入力データである画像データＤ１から所定の形状やパターンを認識する画像認識技術に応用されるものであり、中間層Ｎａと全結合層Ｎｂとを有する。中間層Ｎａは、複数の特徴量抽出処理層Ｎａ１，Ｎａ２，Ｎａ３，・・・が階層的に接続された構成である。各特徴量抽出処理層Ｎａ１，Ｎａ２，Ｎａ３，・・・は、それぞれコンボルーション層Ｃおよびプーリング層Ｐを備える。
【００１１】
次に、中間層Ｎａにおける処理の流れについて説明する。図２に例示するように、第１層目の特徴量抽出処理層Ｎａ１では、演算処理装置は、入力される画像データＤ１を例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる特徴量を抽出する。なお、第１層目の特徴量抽出処理層Ｎａ１では、例えば水平方向に延びる線状の特徴量や斜め方向に延びる線状の特徴量などといった比較的シンプルな単独の特徴量を抽出する。
【００１２】
第２層目の特徴量抽出処理層Ｎａ２では、演算処理装置は、前階層の特徴量抽出処理層Ｎａ１から入力される入力データを例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる特徴量を抽出する。なお、第２層目の特徴量抽出処理層Ｎａ２では、第１層目の特徴量抽出処理層Ｎａ１で抽出された複数の特徴量の空間的な位置関係などを考慮しながら統合させることで、より高次元の複合的な特徴量を抽出する。
【００１３】
第３層目の特徴量抽出処理層Ｎａ３では、演算処理装置は、前階層の特徴量抽出処理層Ｎａ２から入力される入力データを例えばラスタスキャンにより所定サイズごとに走査する。そして、走査したデータに対して周知の特徴量抽出処理を施すことにより入力画像に含まれる特徴量を抽出する。なお、第３層目の特徴量抽出処理層Ｎａ３では、第２層目の特徴量抽出処理層Ｎａ２で抽出された複数の特徴量の空間的な位置関係などを考慮しながら統合させることで、より高次元の複合的な特徴量を抽出する。このように、複数の特徴量抽出処理層による特徴量の抽出処理を繰り返すことで、演算処理装置は、画像データＤ１に含まれる検出対象物体の画像認識を行う。
【００１４】
演算処理装置は、中間層Ｎａにおいて複数の特徴量抽出処理層Ｎａ１，Ｎａ２，Ｎａ３，・・・による処理を繰り返すことで入力画像データＤ１に含まれる種々の特徴量を高次元で抽出していく。そして、演算処理装置は、中間層Ｎａの処理により得られた結果を中間演算結果データとして全結合層Ｎｂに出力する。
【００１５】
全結合層Ｎｂは、中間層Ｎａから得られる複数の中間演算結果データを結合して最終的な演算結果データを出力する。即ち、全結合層Ｎｂは、中間層Ｎａから得られる複数の中間演算結果データを結合し、さらに、その結合結果に対して重み係数を異ならせながら積和演算を行うことにより、最終的な演算結果データ、即ち、入力データである画像データＤ１に含まれる検出対象物を認識した画像データを出力する。このとき、積和演算による演算結果の値が大きい部分が検出対象物の一部または全部として認識される。
【００１６】
次に、演算処理装置による特徴量抽出処理の流れについて説明する。図３に例示するように、演算処理装置は、複数の演算ブロックを備える構成であり、それぞれの演算ブロックにより演算処理を実行する。即ち、演算処理装置は、前階層の特徴量抽出処理層から入力される入力データＤｎを所定サイズ、この場合、図にてハッチングで示す５×５画素ごとに走査する。なお、画素サイズは、５×５画素に限られず適宜変更することができる。
【００１７】
そして、演算処理装置は、走査したデータに対して、それぞれ周知の畳み込み演算を行う。そして、演算処理装置は、畳み込み演算後のデータに対して周知の活性化処理を行い、コンボルーション層Ｃの出力とする。そして、演算処理装置は、コンボルーション層Ｃの出力データＣｎ１，Ｃｎ２，Ｃｎ３，・・・に対して、それぞれ所定サイズ、この場合、２×２画素ごとに周知のプーリング処理を行い、プーリング層Ｐの出力とする。そして、演算処理装置は、プーリング層Ｐの出力データＰｎ１，Ｐｎ２，Ｐｎ３，・・・を次の階層の特徴量抽出処理層に出力する。なお、画素サイズは、２×２画素に限られず適宜変更することができる。
【００１８】
図４には、畳み込み演算処理に用いられる畳み込み関数、活性化処理に用いられる関数、プーリング処理に用いられる関数の一般的な例を参考として示している。即ち、畳み込み関数ｙｊは、直前の層の出力ｙｉに、学習により得られる重み係数ｗｉｊを乗算した値の和に所定のバイアス値Ｂｊを加算する関数となっている。また、活性化処理には、周知のロジスティックジグモイド関数やＲｅＬＵ関数（Rectified Linear Units）など、あるいは、その他の非線形関数が用いられる。また、プーリング処理には、入力されるデータの最大値を出力する周知の最大プーリング関数や、入力されるデータの平均値を出力する周知の平均プーリング関数などが用いられる。
【００１９】
（一実施形態）
図５に例示する演算処理装置１００は、畳み込み演算処理部１０１、活性化処理部１０２、プーリング処理部１０３を備える。図示はしないが、演算処理装置１００は、これら畳み込み演算処理部１０１、活性化処理部１０２、プーリング処理部１０３を含む演算ブロック１０４を複数備える。演算ブロック１０４は、演算処理手段の一例である。また、演算処理装置１００は、記憶処理部１０５、復元処理部１０６、補正処理部１０７を備える。演算処理装置１００は、各処理部をソフトウェアにより仮想的に実現する構成としてもよいし、ハードウェアにより実現する構成としてもよいし、ソフトウェアによる構成とハードウェアによる構成を混在させる構成としてもよい。
【００２０】
畳み込み演算処理部１０１は、前階層から入力される入力データに対して周知の畳み込み演算処理を実行して、その処理結果データを活性化処理部１０２に出力する。活性化処理部１０２は、畳み込み演算処理部１０１による処理結果データに対して周知の活性化処理を実行して、その処理結果データをプーリング処理部１０３に出力する。プーリング処理部１０３は、活性化処理部１０２による処理結果データに対して周知のプーリング処理を実行して、その処理結果データを出力する。即ち、演算ブロック１０４は、この場合、低解像度化処理としてプーリング処理を行う構成である。
【００２１】
記憶処理部１０５は、記憶手段の一例であり、プーリング処理の際に特徴を示す画素データの位置情報を図示しない記憶媒体に記憶する。この場合、記憶処理部１０５は、プーリング処理の際に「最大値」を示す画素データの位置情報を記憶する。記憶媒体としては、例えば半導体メモリなどが考えられる。復元処理部１０６、復元手段の一例であり、記憶処理部１０５が記憶している位置情報に基づいて、入力データ、つまり入力画像における検出対象物の位置を特定する。補正処理部１０７、復元処理部１０６が特定した検出対象物の位置を補正する。
【００２２】
図６に例示するように、畳み込みニューラルネットワークＮによれば、コンボルーション層Ｃによる処理およびプーリング層Ｐによる処理が繰り返されることにより、より高次元の特徴量の抽出が可能となる。しかしながら、プーリング処理が繰り返されることに伴いデータの解像度が徐々に低下していく。即ち、図６に示す例では、第２層目のプーリング層Ｐ２におけるデータの解像度は、第１層目のプーリング層Ｐ１におけるデータの解像度の１／４まで低下し、第３層目のプーリング層Ｐ３におけるデータの解像度は、第１層目のプーリング層Ｐ１におけるデータの解像度の１／６まで低下している。そのため、入力画像データＤ１における検出対象物の位置を特定するための情報が後層に進むほど不足することとなり、入力画像における検出対象物の位置を精度良く特定できなくなる懸念がある。
【００２３】
そこで、演算処理装置１００によれば、プーリング処理の繰り返しに伴いデータの解像度が低下する場合であっても、入力画像における検出対象物の位置を精度良く特定するための工夫が施されている。
即ち、図７に例示するように、演算処理装置１００は、記憶処理部１０５により、プーリング処理の際に最大値を示す画素データの位置情報を記憶していく。具体的には、記憶処理部１０５は、１回のプーリング処理により処理される画素群Ｇ、この場合、２×２の４画素ごとに位置情報「１」〜「４」を設定する。そして、記憶処理部１０５は、プーリング処理の際に、これら４画素のうち最大値を示す画素データの位置情報を記憶する。この場合、第１層目の４画素のうち位置情報「４」の画素が最大値を示しているものとする。そのため、記憶処理部１０５は、第１層目で最大値を示した画素の位置情報が「４」であることを記憶して、次の第２層に伝達する。
【００２４】
第２層目では、第１層目よりも解像度が低下した状態で、再び、１回のプーリング処理により処理される４画素ごとに位置情報「１」〜「４」が設定される。この場合、第２層目の位置情報「２」の画素に、前層において最大値を示した画素の位置情報が「４」であることを示す情報「２［４］」が示されている。なお、情報「２［４］」のうち括弧内に示されている数値が、前層において最大値を示した画素の位置情報である。このようにして、演算処理装置１００は、図８に例示するように、プーリング処理の際に最大値を示す画素データの位置情報を記憶しながら、コンボルーション層Ｃによる処理およびプーリング層Ｐによる処理を多階層にわたって繰り返し実行する。
【００２５】
そして、演算処理装置１００は、各層の処理において記憶した位置情報に基づいて、復元処理部１０６により、入力画像データＤ１、換言すれば入力画像における検出対象物の位置を特定する。即ち、図９に例示するように、演算処理装置１００は、例えば第３層目で記憶した位置情報Ｊ３に基づいて、入力画像において検出対象物が存在すると推定される領域を囲む矩形枠Ｗ３を設定する。この矩形枠Ｗ３は、第３層目で記憶された複数の位置情報Ｊ３からなる位置情報群を含む最小の大きさの枠である。
【００２６】
しかし、第３層目の位置情報Ｊ３に基づく矩形枠Ｗ３は、検出対象物を含んではいるものの、検出対象物が存在しない領域も多く含んでいる。そのため、入力画像において検出対象物が存在する位置の特定精度が良くない。そこで、演算処理装置１００は、補正処理部１０７により、復元処理部１０６が設定した矩形枠Ｗ２を補正する。即ち、演算処理装置１００は、第２層目で記憶した位置情報Ｊ２に基づいて、矩形枠Ｗ３を、当該矩形枠Ｗ３よりも小さい矩形枠Ｗ２に補正する。この矩形枠Ｗ２は、第２層目で記憶された複数の位置情報Ｊ２からなる位置情報群を含む最小の大きさの枠である。矩形枠Ｗ２によれば、矩形枠Ｗ３に比べ、検出対象物が存在しない領域を少なくすることができる。よって、入力画像において検出対象物が存在する位置の特定精度を向上することができる。
【００２７】
しかし、第２層目の位置情報Ｊ２に基づく矩形枠Ｗ２によっても、検出対象物が存在しない領域が残存している。そこで、演算処理装置１００は、補正処理部１０７により、矩形枠Ｗ２をさらに補正する。即ち、演算処理装置１００は、第１層目で記憶した位置情報Ｊ１に基づいて、矩形枠Ｗ２を、当該矩形枠Ｗ２よりも小さい矩形枠Ｗ１に補正する。この矩形枠Ｗ１は、第１層目で記憶された複数の位置情報Ｊ１からなる位置情報群を含む最小の大きさの枠である。矩形枠Ｗ１によれば、矩形枠Ｗ２に比べ、検出対象物が存在しない領域をさらに少なくすることができる。よって、入力画像において検出対象物が存在する位置の特定精度をさらに向上することができる。
【００２８】
ところで、実際の畳み込みニューラルネットワークによる処理によれば、前階層からは、複数の入力データが特徴マップとして入力される。そこで、演算処理装置１００は、記憶処理部１０５により、それぞれの特徴マップに対するプーリング処理の際に最大値を示す画素データをそれぞれ特徴画素データとして特定するように構成されている。そして、記憶処理部１０５は、これら複数の特徴画素データのうち最も大きい値を示す特徴画素データの位置情報を記憶するように構成されている。
【００２９】
即ち、図１０には、第２層目に対する入力データとして２つの特徴マップＭ１，Ｍ２が入力される場合を示している。特徴マップＭ１では、領域Ｒ１に含まれる画像群のうち最大値を示す特徴画素データＤｓの画素値は「２．７」であり、特徴マップＭ２では、領域Ｒ１に含まれる画素群のうち最大値を示す特徴画素データＤｓの画素値は「０．３」である。そのため、記憶処理部１０５は、これら特徴画素データＤｓの画素値うち最も大きい値である「２．７」を記憶して、後層に伝達する。
【００３０】
また、特徴マップＭ１では、領域Ｒ２に含まれる画像群のうち最大値を示す特徴画素データＤｓの画素値は「０．４」であり、特徴マップＭ２では、領域Ｒ２に含まれる画素群のうち最大値を示す特徴画素データＤｓの画素値は「３．４」である。そのため、記憶処理部１０５は、これら特徴画素データＤｓの画素値うち最も大きい値である「３．４」を記憶して、後層に伝達する。
【００３１】
このように、演算処理装置１００は、複数の特徴マップ間で特徴量の比較を行い、最も顕著に特徴を抽出している特徴マップの位置情報を記憶して後層に伝達するようになっている。なお、特徴マップＭ１は、入力画像において主として横方向に延びる対象物の特徴を抽出するように学習されたフィルタにより得られる特徴マップの一例である。また、特徴マップＭ２は、入力画像において主として縦方向に延びる対象物の特徴を抽出するように学習されたフィルタにより得られる特徴マップの一例である。
【００３２】
また、演算処理装置１００により処理される特徴マップは、図１０に例示したものに限られない。また、演算処理装置１００は、複数の特徴マップ間で特徴量を比較する場合には、図示しない正規化処理部により、特徴マップを正規化するように構成することが望ましい。即ち、演算処理装置１００は、プーリング処理後のデータに対して周知の正規化処理を施すことにより、データを所定の基準形式である正規化データに変換してから特徴量の比較を行うようにするとよい。この構成によれば、特徴量の比較をより高精度で行うことができる。
【００３３】
図１１には、複数の特徴マップから得られた位置情報が混在する場合において、入力画像において検出対象物が存在すると推定される領域を囲む矩形枠を補正する場合の例を示している。即ち、演算処理装置１００は、例えば第３層目で記憶した特徴マップＭ１からの位置情報Ｊ３ａおよび特徴マップＭ２からの位置情報Ｊ３ｂに基づいて矩形枠Ｗ３を設定する。この矩形枠Ｗ３は、第３層目で記憶された複数の位置情報Ｊ３ａ，Ｊ３ｂからなる位置情報群を含む最小の大きさの枠である。さらに、演算処理装置１００は、第２層目で記憶した特徴マップＭ１からの位置情報Ｊ２ａおよび特徴マップＭ２からの位置情報Ｊ２ｂに基づいて矩形枠Ｗ３を矩形枠Ｗ２に補正することが可能である。この矩形枠Ｗ２は、第２層目で記憶された複数の位置情報Ｊ２ａ，Ｊ２ｂからなる位置情報群を含む最小の大きさの枠である。さらに、演算処理装置１００は、第１層目で記憶した特徴マップＭ１からの位置情報Ｊ１ａおよび特徴マップＭ２からの位置情報Ｊ１ｂに基づいて矩形枠Ｗ２を矩形枠Ｗ１に補正することが可能である。この矩形枠Ｗ１は、第１層目で記憶された複数の位置情報Ｊ１ａ，Ｊ１ｂからなる位置情報群を含む最小の大きさの枠である。
【００３４】
演算処理装置１００によれば、プーリング処理の繰り返しに伴いデータの解像度が低下する場合であっても、各層の処理において記憶処理部１０５により記憶した位置情報に基づいて、入力画像における検出対象物の位置を精度良く特定することができる。
また、演算処理装置１００によれば、前階層から複数の特徴マップが入力される場合には、それぞれの特徴マップに対するプーリング処理の際に最大値を示す画素データをそれぞれ特徴画素データとして特定し、これら複数の特徴画素データのうち最も大きい値を示す特徴画素データの位置情報を記憶する。これにより、最も顕著に特徴を抽出している特徴マップから得られる位置情報に基づいて検出対象物の位置を特定することができ、その特定精度を一層向上することができる。
【００３５】
また、演算処理装置１００によれば、多階層にわたって階層的に記憶した位置情報に基づいて、一旦特定された矩形枠Ｗ、つまり検出対象物の位置をさらに補正することができる。これにより、検出対象物の位置の特定精度を一層向上することができる。
なお、本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。例えば、演算ブロック１０４は、低解像度化処理として、プーリング処理に類似するサブサンプリング処理を行う構成としてもよい。サブサンプリング処理は、複数の画素データをスキップ、即ち読み取らないようにすることで出力データを減らす処理である。よって、処理の繰り返しに伴い出力データの解像度が低下する低解像度化処理である。
【符号の説明】
【００３６】
図面中、１００は演算処理装置、１０４は演算処理ブロック（演算処理手段）、１０５は記憶処理部（記憶手段）、１０６は復元処理部（復元手段）、１０７は補正処理部（補正手段）を示す。
【図１】
0006414458.tif 000002
【図２】
0006414458.tif 000003
【図３】
0006414458.tif 000004
【図４】
0006414458.tif 000005
【図５】
0006414458.tif 000006
【図６】
0006414458.tif 000007
【図７】
0006414458.tif 000008
【図８】
0006414458.tif 000009
【図９】
0006414458.tif 000010
【図１０】
0006414458.tif 000011
【図１１】
0006414458.tif 000012