(57)【要約】【課題】必要な演算リソース又は処理時間の増加を抑えながら、入力データの識別により適した特徴量の抽出を行う。【解決手段】演算層が階層的に複数接続されて構成された畳み込みニューラルネットワーク（Convolutional Neural Network、ＣＮＮ）。特定階層より後の階層にある演算層の処理を行う複数の部分ニューラルネットワークを有し、複数の部分ニューラルネットワークのそれぞれには、特定階層の同じ演算層の出力のうち、互いに異なるデータが入力されるように構成されている。【選択図】図１
2020030480.tif 000002
【特許請求の範囲】
【請求項１】
演算層が階層的に複数接続されて構成された畳み込みニューラルネットワーク（Convolutional Neural Network、ＣＮＮ）であって、
特定階層より後の階層にある演算層の処理を行う複数の部分ニューラルネットワークを有し、前記複数の部分ニューラルネットワークのそれぞれには、前記特定階層の同じ演算層の出力のうち、互いに異なるデータが入力されるように構成されていることを特徴とする、畳み込みニューラルネットワーク。
【請求項２】
前記特定階層の演算層の出力は、三次元構造を有するデータとして表現され、
前記部分ニューラルネットワークには、前記特定階層の演算層の出力のうち、前記三次元構造のうち少なくとも一つの次元方向に関して限定された範囲内にあるデータが入力されるように構成されていることを特徴とする、請求項１に記載の畳み込みニューラルネットワーク。
【請求項３】
前記畳み込みニューラルネットワークは画像データが入力されるように構成され、
前記部分ニューラルネットワークは、前記特定階層の演算層の出力のうち、画像領域に関して限定された範囲内にあるデータが入力されるように構成されていることを特徴とする、請求項１又は２に記載の畳み込みニューラルネットワーク。
【請求項４】
前記複数の部分ニューラルネットワークのうちの第１の部分ニューラルネットワークは、前記特定階層の演算層の出力のうち、画像の第１の領域に対応するデータが入力され、
前記複数の部分ニューラルネットワークのうちの第２の部分ニューラルネットワークは、前記特定階層の演算層の出力のうち、画像の第２の領域に対応するデータが入力され、
前記第１の領域に対応するデータと前記第２の領域に対応するデータとは部分的に重複するように構成されていることを特徴とする、請求項３に記載の畳み込みニューラルネットワーク。
【請求項５】
前記複数の部分ニューラルネットワークは、互いに同じ演算層の階層構造を有するが、各演算層の演算パラメータが互いに異なることを特徴とする、請求項１から４のいずれか１項に記載の畳み込みニューラルネットワーク。
【請求項６】
前記複数の部分ニューラルネットワークは、互いに異なる演算層の階層構造を有することを特徴とする、請求項１から４のいずれか１項に記載の畳み込みニューラルネットワーク。
【請求項７】
少なくとも１つの前記部分ニューラルネットワークは、前記特定階層の演算層の出力のうち一部を入力として処理を行う第１部分と、前記第１部分の出力のうち互いに異なるデータを入力として処理を行う第２部分及び第３部分と、を有していることを特徴とする、請求項１から６のいずれか１項に記載の畳み込みニューラルネットワーク。
【請求項８】
前記複数の部分ニューラルネットワークは、中間層において互いに演算結果を交換することなく独立に処理が行うことができるように構成されていることを特徴とする、請求項１から７のいずれか１項に記載の畳み込みニューラルネットワーク。
【請求項９】
前記複数の部分ニューラルネットワークからの出力を統合する統合演算層を有することを特徴とする、請求項１から８のいずれか１項に記載の畳み込みニューラルネットワーク。
【請求項１０】
前記畳み込みニューラルネットワークのパラメータは、前記部分ニューラルネットワークごとに算出されたコストを、前記部分ニューラルネットワークごとに設定された重みを用いて重み付け加算することにより算出される全体コストを小さくするように学習を行うことで得られたものであることを特徴とする、請求項１から９のいずれか１項に記載の畳み込みニューラルネットワーク。
【請求項１１】
前記部分ニューラルネットワークごとの重みも前記学習により決定されることを特徴とする、請求項１０に記載の畳み込みニューラルネットワーク。
【請求項１２】
前記畳み込みニューラルネットワークのパラメータは、前記複数の部分ニューラルネットワークからの出力の統合結果に基づいて算出されたコストを小さくするように学習を行うことで得られたものであることを特徴とする、請求項１から９のいずれか１項に記載の畳み込みニューラルネットワーク。
【請求項１３】
請求項１から１２のいずれか１項に記載の畳み込みニューラルネットワークに画像データを入力することにより画像の特徴量を抽出する抽出手段と、
前記抽出手段が抽出した特徴量に基づいて前記画像の識別を行う処理手段と、
を備えることを特徴とする画像識別装置。
【請求項１４】
請求項１から１２のいずれか１項に記載の畳み込みニューラルネットワークを用いて画像の特徴量を抽出する工程と、
抽出された前記特徴量に基づいて前記画像の識別を行う処理工程と、
を有することを特徴とする画像識別方法。
【請求項１５】
演算層が階層的に複数接続されて構成された畳み込みニューラルネットワーク（Convolutional Neural Network、ＣＮＮ）の学習を行う学習装置であって、
前記畳み込みニューラルネットワークは、特定階層より後の階層にある演算層の処理を行う複数の部分ニューラルネットワークを有し、前記複数の部分ニューラルネットワークのそれぞれには、前記特定階層の同じ演算層の出力のうち、互いに異なるデータが入力されるように構成されており、
前記学習装置は、前記複数の部分ニューラルネットワークのそれぞれからの出力に基づいて算出されるコストを小さくするように、前記畳み込みニューラルネットワークのパラメータを学習する学習手段を備えることを特徴とする学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、畳み込みニューラルネットワーク並びにこれを用いた画像識別装置及び画像識別方法並びに学習手段に関し、例えば、画像データに対して顔又は物体等の画像認識処理を行う技術に関する。
【背景技術】
【０００２】
ディープニューラルネットワークと呼ばれる多階層のニューラルネットワーク（ディープニューラルネット又はディープラーニングとも呼ばれ、以下ではディープネットと呼ぶ）が近年大きな注目を集めている。ディープネットは、一般的には、入力データ（例えば画像）に対して、階層的な処理（ある階層の処理結果を、その後段の階層の処理の入力とする）を行うものを指す。ディープネットとしては、階層的畳み込みニューラルネットワーク（Convolutional Neural Networks：ＣＮＮ）がよく知られており、これは畳み込みフィルタ演算を行う畳み込み層と、全結合演算を行う全結合層とを含む構成を有している。特に画像識別の分野では、ディープネットが主流の手法になりつつある。さらに近年では、このようなディープネットを複数用意し、それぞれのディープネットの出力を統合することで、画像認識の精度を向上させる手法が提案されている（非特許文献１）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Y. Sun, Y. Chen, X. Wang, and X. Tang. "Deep learning face representation by joint identification-verification." In Proc. NIPS, 2014.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１では、顔画像の異なる領域それぞれから切り出し画像が抽出され、それぞれの切り出し画像が異なるディープネットに投入される。この構成においては、切り出し画像の数と同じ数のディープネットが用いられるため、顔認証に必要な演算リソース及び処理時間が増大する。すなわち、切り出し画像の数がＭ枚である場合、Ｍ個のディープネットが必要となるため、必要な演算リソース及び処理時間も１つのディープネットを用いる場合と比較してＭ倍となる（Ｍ個のディープネットがすべて同じネットワーク構成である場合）。
【０００５】
本発明は、必要な演算リソース又は処理時間の増加を抑えながら、入力データの識別により適した特徴量の抽出を行うことを目的とする。
【課題を解決するための手段】
【０００６】
本発明の目的を達成するために、例えば、本発明の畳み込みニューラルネットワークは以下の構成を備える。すなわち、
演算層が階層的に複数接続されて構成された畳み込みニューラルネットワーク（Convolutional Neural Network、ＣＮＮ）であって、
特定階層より後の階層にある演算層の処理を行う複数の部分ニューラルネットワークを有し、前記複数の部分ニューラルネットワークのそれぞれには、前記特定階層の同じ演算層の出力のうち、互いに異なるデータが入力されるように構成されていることを特徴とする。
【発明の効果】
【０００７】
必要な演算リソース又は処理時間の増加を抑えながら、入力データの識別により適した特徴量の抽出を行うことができる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係るＣＮＮの構成の一例を示す図。
【図２】一実施形態に係る分岐面での部分領域の設定方法を説明する図。
【図３】一実施形態に係る顔認証システムの機能構成の一例を示すブロック図。
【図４】一実施形態に係るＣＮＮの構成の一例を示す図。
【図５】一実施形態に係るＣＮＮの構成の一例を示す図。
【図６】一実施形態に係るＣＮＮの構成の一例を示す図。
【図７】一実施形態に係るＣＮＮの構成の一例を示す図。
【図８】一実施形態に係る処理を実現するコンピュータの機能構成を示す図。
【発明を実施するための形態】
【０００９】
本発明の一実施形態によれば、処理対象画像の性質をよく表現した特徴量を算出できる畳み込みニューラルネットワークを実現できる。この畳み込みニューラルネットワークを用いる場合、処理対象画像中に切り出し領域が複数設けられていても、必要な演算リソース又は処理時間が切り出し領域の数に比例することなく、より少ない演算リソース又は処理時間を用いて演算を行うことができる。本発明の一実施形態に係る畳み込みニューラルネットワークは、演算層が階層的に複数接続されて構成されており、階層的畳み込みニューラルネットワークとも呼ばれる。以下では、説明を簡潔にするため、畳み込みニューラルネットワークのことをＣＮＮ（Convolutional Neural Network）と呼ぶ。
【００１０】
本発明の一実施形態に係るＣＮＮは、次の２つの部分を有している。第１の部分は、入力層からある中間出力特徴面（分割対象特徴面とも呼ぶことができ、以下では分岐面と呼ぶ）までのニューラルネットワークである。第１の部分は、単一のＣＮＮで構成されており、以降ルートニューラルネットワーク、略してルートネットワークと呼ぶ。第２の部分は、分岐面以降のニューラルネットワークである。第２の部分は、複数の部分領域ニューラルネットワーク（以下、部分ニューラルネットワーク、略して部分ネットワークと呼ぶ）で構成されている。このように、本発明の一実施形態に係るＣＮＮは、特定階層（分岐面を出力する階層）より後の階層にある演算層の処理を行う複数の部分ニューラルネットワークを有している。ここで、複数の部分ニューラルネットワークのそれぞれには、特定階層の同じ演算層の出力（すなわち分岐面）のうち、互いに異なるデータが入力される。例えば、それぞれの部分ネットワークは、分岐面上に設定された複数の部分領域のそれぞれを入力として用いて演算を行うことができる。ここで、それぞれの部分領域は、完全には一致しないものの、一部が重複していてもよい。
【００１１】
ＣＮＮを以上のように構成することで、演算リソース又は処理時間が切り出し領域数に比例することなく、処理対象画像の性質をよく表現した特徴量を算出することができる。以下、本発明の実施形態を図面に基づいて説明する。ただし、本発明の範囲は以下の実施例に限定されるものではない。例えば、ＣＮＮに入力されるデータは、必ずしも画像データには限定されない。
【００１２】
［実施形態１］
以下ではまず、ＣＮＮを顔認証に使用する場合を例として、分岐面に部分領域を２つ設定する場合のＣＮＮの構成例について説明する。ただし、認証するオブジェクトは顔には限定されず、本発明に係るＣＮＮを人体又は物体の認証のために用いてもよい。
【００１３】
図３は、本発明の一実施形態に係る情報処理システムである、顔認証システムの機能ブロック図を示す。顔認証とは、入力画像中に存在する顔画像を識別するための処理を指し、例えば、顔画像についてのＩＤ（名前等の個人を特定する識別子）を特定するための処理である。
【００１４】
顔認証システム３０１は、入力画像を取得し、入力画像中の顔画像についてのＩＤを出力する。顔認証システム３０１は、検出部３０２、特徴量算出部３０３、格納部３０４、類似度算出部３０５、及び処理部３０６を有している。
【００１５】
検出部３０２は、入力画像から顔を含む顔画像を抽出する顔検出処理を行う。顔検出処理には公知の手法、例えば"Rapid Object Detection using a Boosted Cascade of Simple Features", Paul Viola, Michael Jones, Proceedings of the 2001 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, pp.511-518, (2001).に記載の手法を用いることができる。検出部３０２は、検出された顔を含む顔画像を出力する。
【００１６】
特徴量算出部３０３は、畳み込みニューラルネットワークに画像データを入力することにより画像の特徴量を抽出する。本実施形態において特徴量算出部３０３は、検出部３０２から取得した顔画像から特徴量（例えば特徴ベクトル）を算出する。顔認証の目的では、特徴ベクトルとして、個人の違いをよく表現する特徴ベクトルを算出することができる。本実施形態においては、特徴量算出部３０３はＣＮＮを用いてこの処理を行う。具体的な処理に関しては、のちほど図１を参照して詳細に説明する。
【００１７】
格納部３０４は、登録されている画像についての特徴量を予め格納している。本実施形態において格納部３０４は、登録人物についての特徴量（例えば特徴ベクトルであり、以下登録特徴ベクトルと呼ぶ）を格納している。登録人物とは、顔認証システムを用いて識別したい人物であり、予め決められている。また、登録人物の顔画像（以下、登録画像と呼ぶ）については特徴ベクトルが予め算出され、登録特徴ベクトルとして格納部３０４に格納されている。格納部３０４は登録特徴ベクトルを格納することができ、例えば、複数の登録画像が複数ある場合、格納部３０４はそれぞれの登録画像に対応した登録特徴ベクトルを格納することができる。
【００１８】
類似度算出部３０５及び処理部３０６は、特徴量算出部３０３が抽出した特徴量に基づいて、ＣＮＮに入力された画像の識別を行う。具体的な識別の方法は特に限定されず、例えば入力された特徴量に対応する識別結果を与える識別器を用いてもよいし、抽出された特徴量と既に識別されている画像の特徴量とを比較してもよい。本実施形態においては、特徴量算出部３０３が抽出した特徴量と、予め識別されている画像の特徴量との比較に基づいて、画像の識別が行われる。例えば、類似度算出部３０５は、特徴量算出部３０３が抽出した特徴量と、格納部３０４に予め格納されている画像の特徴量との比較に基づいて、ＣＮＮに入力された画像と予め格納されている画像との類似度を算出することができる。そして、処理部３０６は、この類似度に基づいて、ＣＮＮに入力された画像の識別を行うことができる。
【００１９】
本実施形態において類似度算出部３０５は、特徴量算出部３０３が顔画像から算出した特徴量（特徴ベクトル）と、登録人物についての特徴量（登録特徴ベクトル）との類似度を算出する。特徴量算出部３０３が複数の特徴ベクトルを算出した場合、類似度算出部３０５は類似度を算出する際に複数の特徴ベクトルを組み合わせることができる。例えば本実施形態において、特徴量算出部３０３は、部分領域ごとに特徴ベクトル（部分領域１０６についての特徴ベクトル１１３及び部分領域１０７についての特徴ベクトル１１７）を算出する。この場合、類似度算出部３０５は、部分領域ごとに算出された複数の特徴ベクトルを連結することにより単一の特徴ベクトルを作成することができる。そして、類似度算出部３０５は、こうして作成された特徴ベクトルと、登録画像から算出された登録特徴ベクトル（格納部３０４に格納されている）との類似度を算出する。
【００２０】
類似度の算出方法は特に限定されないが、本実施形態において類似度算出部３０５は、特徴ベクトルと登録特徴ベクトルとの間のＬ２距離（ユークリッド距離）の逆数を算出する。格納部３０４に複数の登録特徴ベクトルが格納されている場合、類似度算出部３０５は、それぞれの登録特徴ベクトルについて、顔画像から算出された特徴ベクトルとの類似度を算出する。この場合、登録特徴ベクトルの数と同数の類似度が出力される。
【００２１】
処理部３０６は、類似度算出部３０５が算出した類似度と、予め設定された閾値とを比較し、比較結果に基づく認証結果を出力する。例えば、特徴量算出部３０３が算出した特徴ベクトルと、登録画像の登録特徴ベクトルとの類似度が所定の閾値より大きい場合、特徴量算出部３０３に入力された顔画像は、登録画像と同じＩＤを持つと判定される。この場合、処理部３０６は、登録画像（又は登録特徴ベクトル）のＩＤを、顔認証結果として出力することができる。また、類似度算出部３０５から複数の類似度を取得した場合、処理部３０６は、最大の類似度と閾値とを比較し、同様に認証結果を出力することができる。また、閾値を超える類似度を有する登録特徴ベクトルが存在しない場合、処理部３０６は、入力画像中には登録人物がいないことを示す認証結果を出力することができる。
【００２２】
上記の特徴量算出部３０３、類似度算出部３０５、及び処理部３０６の組み合わせは、本発明の一実施形態に係る画像識別装置として動作することができる。すなわち、特徴量算出部３０３は、上記のＣＮＮを用いて画像の特徴量を抽出し、類似度算出部３０５及び処理部３０６は、抽出された特徴量に基づいて画像の識別を行う。また、本発明の一実施形態に係る画像識別方法は、上記のＣＮＮを用いて画像の特徴量を抽出する工程と、抽出された特徴量に基づいて画像の識別を行う工程と、により実現できる。
【００２３】
続いて、特徴量算出部３０３について説明する。上述したように本実施形態において、特徴量算出部３０３はＣＮＮを用いて処理を行う。図３を用いて説明したように、本実施形態においては、顔認証処理の対象である入力画像に対して顔検出処理を行うことにより、顔画像が抽出されている。そして、この顔画像がＣＮＮに入力される。したがって、ＣＮＮに入力される様々な顔画像において、目、鼻、又は口等の顔に含まれる器官の位置は、概略同じ位置に存在する。
【００２４】
図１は、本実施形態におけるＣＮＮの構成の一例を示す。入力された顔画像（画像１０１）に対しては、畳み込みフィルタ演算のフィルタカーネル１０２を適用することにより、畳み込みフィルタ処理が行われる。こうして、第１階層（入力層）の出力として特徴面１０３が得られる。一般にＣＮＮにおいては、画像１０１に対して、複数のフィルタカーネル１０２のそれぞれを適用することにより、複数の特徴面が得られる。図１において特徴面１０３は、複数の特徴面を積み重ねた三次元形状で表現されている。
【００２５】
なお、第１階層（入力層）の出力である特徴面１０３は、第２階層に入力される入力参照面となる。つまり、前階層（下位階層）の出力特徴面が、次階層（上位階層）の入力参照面となることで、階層的な演算が実現される。以下では、階層間の相対的な位置関係を表現する場合、入力層に近い方を下位階層、遠い方を上位階層と呼ぶ。すなわち、演算処理は、下位階層から上位階層に向かう順序で進む。
【００２６】
また、一般にＣＮＮにおいては、複数の参照面から得られる畳み込みフィルタ演算結果を加算し、加算結果に対して非線形変換を行い、さらにプーリング（間引き処理）を行うことにより得られる結果が、次階層の特徴面になる。このような処理は、複雑になるため図１には明示されていない。また、発明の本質にはかかわらないため、本明細書にも明示しない。しかしながら、本実施形態において、各階層の入力参照面から出力特徴面を得るためには、このような処理が行われるものとする。
【００２７】
こうして得られた特徴面１０３に対しては、畳み込みフィルタ演算のフィルタカーネル１０４を適用することにより、畳み込みフィルタ処理が行われる。こうして、第２階層の出力として特徴面１０５が得られる。図１において、ルートネットワークは、入力として画像１０１を用い、第２階層の特徴面１０５を出力するネットワークである。図１においては、第２階層の特徴面１０５が分岐面とされる。
【００２８】
一実施形態において、特定階層の演算層の出力（分岐面である特徴面１０５）は、三次元構造を有するデータとして表現される。そして、部分ニューラルネットワークには、特定階層の演算層の出力のうち、三次元構造のうち少なくとも一つの次元方向に関して限定された範囲内にあるデータが入力される。
【００２９】
また、一実施形態において、部分ニューラルネットワークには、特定階層の演算層の出力のうち画像領域に関して限定された範囲内にあるデータ（例えば特徴面１０５の部分領域１０６，１０７）が入力されることができる。
【００３０】
図１には、具体例として、第２階層の特徴面１０５についての部分領域１０６，１０７が示されている（それぞれの領域は太線で表されている）。部分領域１０６は特徴面１０５の上側の部分領域であり、部分領域１０７は特徴面１０５の下側の部分領域である。図１に示すように、複数の部分領域（例えば部分領域１０６と部分領域１０７）は重複領域を含んでいてもよい。以下では、部分領域１０６のみを参照面として以降の演算を行うネットワークを第１部分ネットワークと呼び、部分領域１０７のみを参照面として以降の演算を行うネットワークを第２部分ネットワークと呼ぶ。第１部分ネットワークは、複数の部分ニューラルネットワークのうちの第１の部分ニューラルネットワークにあたり、第２部分ネットワークは、複数の部分ニューラルネットワークのうちの第２の部分ニューラルネットワークにあたる。
【００３１】
第１部分ネットワークには、特定階層の演算層の出力のうち、画像の第１の領域（例えば画像１０１の上側）に対応するデータ（図１の例では部分領域１０６のデータ）が入力される。すなわち、部分領域１０６に対しては、畳み込みフィルタ演算のフィルタカーネル１０８を適用することにより、畳み込みフィルタ処理が行われる。こうして、第１部分ネットワークの第３階層の出力として特徴面１１０が得られる。同様に、特徴面１１０に対しては、畳み込みフィルタ演算のフィルタカーネル１１１を適用することにより、畳み込みフィルタ処理が行われる。こうして、第１部分ネットワークの第４階層の出力として特徴面１１２が得られる。最後に、特徴面１１２に対して全結合演算を行うことにより、第１部分ネットワークから出力される特徴ベクトル１１３が得られる。
【００３２】
同様に、第２部分ネットワークには、特定階層の演算層の出力のうち、画像の第２の領域（例えば画像１０１の下側）に対応するデータ（図１の例では部分領域１０７のデータ）が入力される。すなわち、部分領域１０７に対してフィルタカーネル１０９を適用することにより、畳み込みフィルタ処理が行われ、第２部分ネットワークの第３階層の出力として特徴面１１４が得られる。さらに、特徴面１１４に対してフィルタカーネル１１５を適用することにより、畳み込みフィルタ処理が行われ、第２部分ネットワークの第４階層の出力として特徴面１１６が得られる。最後に、特徴面１１６に対して全結合演算を行うことにより、第２部分ネットワークから出力される特徴ベクトル１１７が得られる。
【００３３】
以上のような構成のＣＮＮを用いることにより、画像１０１の上側の特徴（例えば目周辺の特徴）をよく表現した特徴ベクトルを第１部分ネットワークから得ることができる。また、画像１０１の下側の特徴（例えば口周辺の特徴）をよく表現した特徴ベクトルを第２部分ネットワークから得ることができる。上記のとおり、分岐面である特徴面１０５において、部分領域１０６（画像の第１の領域に対応するデータ）と、部分領域１０７（画像の第２の領域に対応するデータ）とは部分的に重なっていてもよい。また、画像の第１の領域と第２の領域とは部分的に重なっていてもよい。一方で、別の例として、分岐面である特徴面において、部分領域１０６（画像の第１の領域に対応するデータ）は、部分領域１０７（画像の第２の領域に対応するデータ）を包含していてもよい。また、画像の第１の領域は第２の領域を包含していてもよい。
【００３４】
本実施形態においては、画像１０１から分岐面（第２階層から出力される特徴面１０５）を得るまでは、画像１０１の上側及び下側に対して同じ処理が行われる。すなわち、ルートネットワークでは、画像１０１の全体に対して同じ処理が適用される。一方で、それぞれの部分領域に対しては、異なる部分ネットワークを用いて、異なる処理が適用される。
【００３５】
一般的に、ディープネットワークにおける階層処理では、入力に近い層では低次の視覚的特徴（エッジ等）が抽出され、出力層に近づくにつれてデータセットに特化した意味的な特徴が抽出されることが知られている。本実施形態において、入力される画像１０１は顔画像であり、入力層に近いルートネットワーク（第１〜第２階層）では、顔画像からエッジのような低次の特徴量が抽出される。この低次の特徴量は、顔画像中の位置（領域）によらず同一の処理を用いて抽出できる。一方で部分ネットワークでは、ルートネットワークで抽出された低次の特徴量の組み合わせを用いて、部分領域ごとの特徴量が算出される。例えば、分岐面の上側を入力として用いる第１部分ネットワークは、低次の特徴量を用いて顔の上側の特徴（例えば目周辺の特徴）を抽出する。同様に、分岐面の下側を入力として用いる第２部分ネットワークは、低次の特徴量を用いて顔の下側の特徴（例えば口周辺の特徴）を抽出する。顔の上側と下側とは見た目が異なるので、顔の上側の特徴量を算出するのに適した手法と、顔の下側の特徴量を算出するのに適した手法とは異なるものと考えられる。本実施形態においては、高次の特徴量を算出する上位階層（第三階層〜第五階層）を領域ごとに分割することで、領域ごとに識別に適した特徴量を抽出することができる。
【００３６】
続いて、本実施形態におけるＣＮＮを用いる際に必要な演算リソース及び処理時間に関して説明する。ここで演算リソースとは、演算するのに必要なメモリ量のことを指し、これはパラメータ量（具体的には、畳み込みフィルタ演算に用いるフィルタカーネルの量、及び全結合層で用いる結合係数の量）と密接に関連する。また、処理時間は、必要な演算量（具体的には積和演算回数）に密接に関連する。
【００３７】
これまで詳細に説明してきたように、本実施形態において、ＣＮＮのルートネットワークを用いた処理は、複数の部分ネットワークを用いた処理に先立って、各部分領域に共通に行われる。したがって、部分ネットワークを用いた演算に必要なパラメータ量は部分領域の数（部分ネットワークの数）に比例して増加するが、ルートネットワークを用いた演算に必要なパラメータ量は部分領域の数によらず一定である。このため、部分領域の数が増加したとしても、ＣＮＮ全体としてのパラメータ量の増加を抑制することができる。
【００３８】
また、各部分領域についてＣＮＮを用いた処理を行うと、部分領域の数が増加した際の演算量の増加は、分岐面に設定される複数の部分領域の間の重複領域の大きさに応じて決まる。しかしながら本実施形態においては、重複領域が大きいほど、部分ネットワークにおける演算量は大きくなるものの、ルートネットワークにおける演算量は一定である。このように、入力された画像の各部分領域に対して独立のＣＮＮを用いる場合と比較して、本実施形態のようなルートネットワークと部分ネットワークの組み合わせを用いることにより、ＣＮＮ全体としての演算量の増加を抑制することができる。
【００３９】
図１には、重複領域が小さい２つの部分領域１０６，１０７の例を示したが、部分領域の設定方法はこれに限定されない。例えば、図２は、分岐面における部分領域の設定方法の別の例を示す。図２（Ａ）〜（Ｅ）には、分岐面２０１に設定された部分領域２０２〜２０５の位置を示している。部分領域２０２〜２０５は、それぞれ分岐面２０１の上側、下側、左側、及び右側にある部分領域である。図２（Ｅ）では部分領域２０２〜２０５が重ねられており、斜線でハッチングされた領域２０６は３つの部分領域が重なっている領域を、格子模様でハッチングされた領域２０７は４つの部分領域が重なっている領域を表す。なお、図２では、面数の次元方向は省略されている。すなわち、図１で特徴面１０５は立体として表現されているが、簡略化のために図２で分岐面２０１は平面で表されている。
【００４０】
図２のように部分領域が設定されると、分岐面の大きさに対する重複領域の大きさの割合は大きくなる。しかしながら、このような場合であっても、ルートネットワークにおける演算量は、分岐面の階層に相当する各部分領域についての特徴面を得るために必要な演算量よりも、重複領域の面積の分だけ小さくなる。このため、部分領域の数が増加したとしても、ＣＮＮ全体としての演算量の増加を抑制することができる。
【００４１】
以上詳細に説明したように、本実施形態の構成によれば、切り出し領域（部分領域）が複数あったとしても、ＣＮＮを用いた特徴ベクトル算出処理における必要な演算リソース又は処理時間を少なくすることができる。
【００４２】
そして、認識しようとするオブジェクトの種類に応じて、複数の切り出し領域のそれぞれに適した特徴ベクトル抽出処理を行うことにより、認識性能を向上させることができる。例えば、顔認識処理においては、図１に関して既に説明したように、切り出し領域を目、鼻、又は口等の器官の位置に応じて設定することで、器官の特徴をよく表現できるような特徴ベクトルを抽出できるという、第１の利点を得ることもできる。また、これとは別に、顔のオクルージョン（隠れ）に対してロバストな（オクルージョンの影響を受けにくい）顔認証が実現できるという、第２の利点を得ることもできる。一般に、画像中の顔の向きは一定ではなく、また顔の向きによっては顔の片側が隠れることもある。このような場合であっても、切り出し領域ごとに特徴ベクトルを抽出する方法を用いる場合、隠れていない領域の特徴ベクトルはこの領域の特徴をよく表現することが期待できる。例えば、顔の向きの検出を行うことなどにより顔のオクルージョン領域を特定すると、隠れていない領域から抽出した特徴ベクトルのみを用いて類似度算出及び顔認識を行うことができる。このように、過オクルージョンにロバスト（頑健）な顔認証を実現することが可能となる。
【００４３】
別の利点として、本実施形態のように構成されたネットワークを用いる場合、複数の部分ニューラルネットワークを、中間層において互いに演算結果を交換することなく独立に処理が行うことができるように構成することができる。すなわち、ある部分領域についての部分ネットワークを用いた演算結果は、他の部分領域についての部分ネットワークを用いた演算に使用されない。このように、それぞれの部分ネットワークを用いた演算は互いに独立に行うことができるため、並列処理により処理時間を短縮することができる。
【００４４】
［実施形態２］
実施形態１に係るネットワークに、分岐面が１つあり、この分岐面から先が複数の部分ネットワークに分割されていた。実施形態２に係るネットワークには、複数の分岐面があり、それぞれの分岐面から先が部分ネットワークに分割されている。すなわち、少なくとも１つの部分ニューラルネットワーク（第１部分ネットワーク）は、特定階層の演算層の出力のうち一部（部分領域１０６）を入力として処理を行う第１部分を有している。また、第１部分ネットワークはさらに、第１部分の出力（特徴面４０１）のうち互いに異なるデータ（部分領域４０２及び４０３）を入力として処理を行う第２部分及び第３部分を有している。
【００４５】
図４は、実施形態２に係るＣＮＮの一例についての構成図である。図４において、図１と同様の部分には同じ参照符号が付されており、それらの説明は省略する。特徴面４０１は、実施形態１で説明した第１部分ネットワークの第３階層の出力であり、特徴面１１０と同様のものである。本実施形態においては、この特徴面４０１も分岐面となっている。特徴面４０１には、右側の部分領域４０２及び左側の部分領域４０３が設定されている（図中の太線はそれぞれの領域を表す）。図４の例では、部分領域４０２と部分領域４０３とは一部が重複している。以下では、部分領域４０２のみを参照面として以降の演算を行うネットワークを第１−１部分ネットワークと、部分領域４０３のみを参照面として以降の演算を行うネットワークを第１−２部分ネットワークと呼ぶ。
【００４６】
以降も、実施形態１と同様、部分領域４０２に対して畳み込みフィルタ演算のフィルタカーネル４０４を適用することにより、第４階層の出力として特徴面４０６が得られる。さらに、特徴面４０６に対して全結合演算を行うことにより、第１−１部分ネットワークから出力される特徴ベクトル４０７が得られる。さらに、部分領域４０３に対して畳み込みフィルタ演算のフィルタカーネル４０５を適用することにより、第４階層の出力として特徴面４０８が得られる。さらに、特徴面４０８に対して全結合演算を行うことにより、第１−２部分ネットワークから出力される特徴ベクトル４０９が得られる。
【００４７】
以上、本実施形態に係るＣＮＮの構成を説明した。なお、実施形態１において、第２階層の出力である特徴面１０５のみを分岐面として設定し、特徴面１０５に３つの部分領域を設定することにより、本実施形態と同様に３つの部分領域についての特徴ベクトルを得ることもできる。一方で、本実施形態においては、第１−１部分ネットワーク及び第１−２部分ネットワークにおける処理を、第３階層まで共通化することができる。このため、演算リソース又は処理時間の増加をさらに抑制できる。
【００４８】
［実施形態３］
実施形態１，２では、学習により得られたＣＮＮのパラメータ（例えば畳み込みフィルタ演算のフィルタカーネル又は全結合層の結合係数）を用いて認識処理を行う構成について説明した。実施形態３では、各実施形態に係るＣＮＮのパラメータの学習装置及び学習方法を説明する。
【００４９】
パラメータの学習は、一般的には次のような手順で行うことができる。まず、特徴ベクトルからコストを算出するコスト関数が定義される。続いて、学習データ（例えば識別結果が既に得られている画像）をＣＮＮに入力し、ＣＮＮから出力された特徴ベクトルをコスト関数に入力することにより、コストが算出される。こうして算出されたコストが小さくなるようにパラメータを調整することで、パラメータの学習が進められる。
【００５０】
コストとは、顔認証の失敗に対するペナルティを表すことができる。例えば、所望の特徴ベクトルが出力されればコストが小さく、所望の特徴ベクトルが出力されなければコストは大きくなるように、コスト関数を設計することができる。顔認証の例においては、２枚の顔画像が同一人物のものか否かを判定するために、２つの顔画像から得られる特徴ベクトルの距離を用いることができる。このような場合には、同一人物についての異なる顔画像について得られる特徴ベクトルは近似していることが望ましい。つまり、同一人物についての顔画像の特徴ベクトルは、ある半径を持つ超球の範囲内に入ることが望ましい。したがって、同一人物についての顔画像の特徴ベクトルが超球の範囲内に入れば小さなコストを出力し、入らない場合には大きいコストを出力するようなコスト関数を設計することができる。同時に、異なる人物についての顔画像の特徴ベクトル同士の距離は、この半径よりも離れていることが望ましい。このため、同一人物の場合とは逆に、他人の顔画像の特徴ベクトルが超球の範囲内に入れば大きなコストを出力し、入らない場合には小さいコストを出力するようなコスト関数を設計することができる。
【００５１】
このようにして設計されたコスト関数に対して、大量に用意した学習画像について算出された特徴ベクトルを投入した際に、なるべく小さなコストが出力されるようにパラメータを最適化することができる。コストが小さいということは、学習画像に対する顔認証の失敗が少ないことを意味する。このようにして、パラメータの最適化を行うことができる。最適化の具体的な手法としては、例えば誤差逆伝播法が知られている。
【００５２】
このような方法を実施形態１，２に適用する場合、複数の部分ニューラルネットワークのそれぞれからの出力に基づいて算出されるコストを小さくするように、畳み込みニューラルネットワークのパラメータの学習を行うことができる。例えば、複数の部分ニューラルネットワークからの出力の統合結果に基づいて算出されたコストを小さくするように学習を行うことで、畳み込みニューラルネットワークのパラメータを得ることができる。一実施形態に係る学習装置は、このような処理を行う学習手段を備えている。
【００５３】
以上説明したような学習手法を、実施形態１に係るＣＮＮの学習に適用する方法について説明する。図１の例では、ＣＮＮからは２つの特徴ベクトル１１３，１１７が出力される。この２つの特徴ベクトルを連結して単一の特徴ベクトルを生成し、前述のコスト関数に入力すれば、同様にコストを求めることができる。このような方法で、パラメータの最適化（学習）を行うことが可能である。
【００５４】
別の方法として、部分ニューラルネットワークごとに算出されたコストを統合することにより、統合コストを求めることができる。例えば、２つの特徴ベクトルのそれぞれに対するコスト関数を定義することができ、２つのコスト関数のそれぞれから出力されるコストを統合することにより全体コストを得ることができる。そして、このように得られた全体コストを小さくするように学習を行うことにより、最適化されたパラメータを得ることができる。全体コストの算出方法としては、例えば、部分ニューラルネットワークごとに算出されたコストを、部分ニューラルネットワークごとに設定された重みを用いて重み付け加算する方法が挙げられる。
【００５５】
全体コストの算出は、部分領域の重要度を考慮して行うこともできる。例えば、顔認証の場合、目の周辺から得られる情報は、口の周辺から得られる情報よりも、認証のために有用であるという知見が存在する。この知見をコスト算出に反映させることにより、より精度のよいＣＮＮを実現できることが期待される。このためには、目の領域から抽出された特徴ベクトル１１３から算出されるコストが、口の領域から抽出された特徴ベクトル１１７から算出されるコストよりも重視されるように、コスト関数を設計することができる。つまり、全体コストを算出する際の重み付き加算において、特徴ベクトル１１３から算出されるコストに対する重みを、特徴ベクトル１１７から算出されるコストに対する重みよりも重くすることができる。このようにコスト関数を設計した場合、目の領域から抽出された特徴ベクトル１１３を算出するネットワーク（第１部分ネットワーク）のパラメータが、全体コストに大きな影響を与える。したがって、パラメータの最適化においては、第１部分ネットワークのパラメータの最適化が重点的に進むことが期待される。この結果、目の周辺から抽出される特徴ベクトルの特徴表現能力が向上し、顔認証の精度が向上することが期待される。
【００５６】
以上のように、認証精度に与える各部分領域の重要度を予め調べておき、この重要度を反映したコスト関数を設計することで、認証精度を向上させることができる。一例としては、部分領域ｉについて設定された重要度をＷ（ｉ）、部分領域ｉについてのコストをＣ（ｉ）とすると、Ｃ（ｉ）×Ｗ（ｉ）をすべての部分領域にわたって加算した値を与えるようにコスト関数を設計することができる。
【００５７】
さらには、上記の部分ニューラルネットワークごとの重みも、学習により決定することができる。すなわち、全体コストを算出する際に用いる各部分領域の重要度（例えば上記の重みＷ（ｉ））を学習で得る構成を用いることにより、学習により自動的に部分領域の重要度を考慮することが可能になる。顔認証時には、学習で得られた重みを用いて、部分領域ごとに得られる類似度を重みづけることも可能であり、このような方法によってもさらに顔認証の精度が向上することが期待される。
【００５８】
（その他の実施形態）
上記の実施形態では、複数の部分ニューラルネットワークは、互いに同じ演算層の階層構造を有していた。すなわち、ある分岐面以降の部分ネットワークは、お互いに同じネットワーク構造を有していた。例えば、図１において、第１及び第２部分ネットワークは同じ構造を有しており、具体的にはネットワークの階層数及び各階層の特徴面の数が同じであった。一方で、学習の結果、第１及び第２部分ネットワークにおいては各演算層の演算パラメータが互いに異なっており、このために部分領域ごとに適した特徴抽出を行うことが可能であった。しかしながら、本発明はこのような構成には限定されず、複数の部分ニューラルネットワークは、互いに異なる演算層の階層構造を有していてもよい。すなわち、分岐面以降の部分ネットワークが異なる構成を有していてもよい。
【００５９】
図５には、分岐面以降の部分ネットワークの構造がお互いに異なっている例を示す。図５において、図１と同様の部分には同じ参照符号が付されており、それらの説明は省略する。図５においても、第２階層の出力である特徴面１０５（分岐面）には部分領域１０６，１０７が設定されている。そして、それぞれ部分領域１０６及び１０７のみを参照面として以降の演算を行うネットワークを、第１及び第２部分ネットワークと呼ぶ。ここで、第２部分ネットワークでは、図１と同様に特徴面１１４，１１６を経て特徴ベクトル１１７が得られる。一方で、第１部分ネットワークでは、特徴面１１２に対して畳み込みフィルタ演算のフィルタカーネル５０１を適用することで特徴面５０２が得られる。また、特徴面５０２に対して畳み込みフィルタ演算のフィルタカーネル５０３を適用することで特徴面５０４が得られる。そして、特徴面５０４に対して全結合演算を行うことにより、特徴ベクトル５０５が得られる。このように、第１部分ネットワークでは、特徴面１１４，１１６，５０２，５０４を経て、第１部分ネットワークから出力される特徴ベクトル１１７が得られる。
【００６０】
このように、部分領域ごとにネットワーク構造（例えばネットワークの階層数又は各階層の特徴面の数）を変更することで、部分領域ごとに適した特徴抽出を行うことができる。前述のようにディープネットワークにおける階層処理では、階層処理を経るにつれ、抽出される特徴が低次の視覚的特徴（エッジ等）から高次の意味的な特徴へと移っていくことが知られている。したがって、例えば、部分領域ごとにネットワークの階層数を調節することで、部分領域ごとに適した抽象度を有する特徴ベクトルを抽出することができる。図５の場合、第１部分ネットワークの階層数は第２部分ネットワークよりも多いので、第１部分ネットワークからはより高次の情報を持つ特徴ベクトルを抽出することができる。
【００６１】
また、同じ部分領域（又は部分ネットワーク）から、異なる抽象度を有する特徴を抽出することもできる。このような例を図６に示す。図６において、図１と同様の部分には同じ参照符号が付されており、それらの説明は省略する。図６に示される例では、第２階層の出力である特徴面１０５（分岐面）の一部分である部分領域１０７に対して全結合演算を行うことで得られる特徴ベクトル６０１が示されている。特徴ベクトル６０１，１１７は、両者とも中間特徴面である部分領域１０７から得られた特徴ベクトルであるが、これらの特徴ベクトルが持つ情報の抽象度は異なると考えられる。このように、同一領域から異なる抽象度の特徴ベクトルを得ることにより、画像認識の精度が向上しうる。例えば顔認証の場合には、エッジ等の低次の情報で顔中のしわの有無を認識し、高次の情報で口の形状特徴を認識することができる。このように、多元的な特徴を抽出することで、認証性能が向上することが期待される。
【００６２】
既に説明したように、複数の部分ネットワークから出力された特徴ベクトルを組み合わせて、最終的な特徴ベクトルを算出することができる。すなわち実施形態１では、特徴ベクトル１１３，１１７を連結したベクトルが最終的な特徴ベクトルとして用いられ、類似度算出部３０５は最終的な特徴ベクトルと登録特徴ベクトルとの類似度を算出した。一方で、複数の部分ネットワークから出力された特徴ベクトルに対して、さらに全結合演算を行うことにより、最終的な特徴ベクトルを算出してもよい。図７には、それぞれの部分ネットワークから出力された特徴ベクトル１１３，１１７を連結したベクトルに対して、全結合演算を行うことにより得られる特徴ベクトル７０１が示されている。この例においては、特徴ベクトル７０１のサイズを特徴ベクトル１１３，１１７を連結したベクトルよりも小さくすることで、特徴ベクトル１１３，１１７中に存在する冗長な情報又はノイズが削減された特徴ベクトル７０１を得ることができる。また、より小さな特徴ベクトル７０１を用いることにより、類似度算出処理の計算量を低減すること、及び登録特徴ベクトルを格納するために必要なメモリを削減することができる。
【００６３】
ＣＮＮは、複数の部分ニューラルネットワークからの出力を統合する統合演算層を有していてもよい。この統合演算層は、上記のように複数の部分ネットワークから出力された特徴ベクトルを連結してもよいし、全結合演算を行うことにより最終的な特徴ベクトルを算出してもよい。実施形態３においては、このような統合演算層からの出力に基づいて算出されたコストを小さくするように学習を行うことで、畳み込みニューラルネットワークのパラメータを得ることもできる。
【００６４】
各実施形態に係るＣＮＮは、プログラムとして表現することができる。例えば、各演算層における演算を記述するプログラムと、プログラム中に又はプログラムとは別のデータとして記録されているそれぞれの演算で用いられるパラメータと、を用いることにより、ＣＮＮを用いた処理を実現することができる。また、上述の情報処理システムや画像識別装置が有する各処理部の機能も、プログラムとして表現することができる。一方で、ＣＮＮ及び処理部のうち一部又は全部の機能が、専用のハードウェアを用いて実現されてもよい。
【００６５】
プログラムとして表現されたＣＮＮ又は処理部の機能は、通常のコンピュータを用いて実現することができる。図８はコンピュータの基本構成を示す図である。図８においてプロセッサー８０１は、例えばＣＰＵであり、コンピュータ全体の動作をコントロールする。メモリ８０２は、例えばＲＡＭであり、プログラム及びデータ等を一時的に記憶する。コンピュータが読み取り可能な記憶媒体８０３は、例えばハードディスク又はＣＤ−ＲＯＭ等であり、プログラム及びデータ等を長期的に記憶する。本実施形態においては、記憶媒体８０３が格納している、各部の機能を実現するプログラムが、メモリ８０２へと読み出される。そして、プロセッサー８０１が、メモリ８０２上のプログラムに従って動作することにより、各機能が実現される。図８において、入力インタフェース８０４は外部の装置から情報を取得するためのインタフェースである。また、出力インタフェース８０５は外部の装置へと情報を出力するためのインタフェースである。バス８０６は、上述の各部を接続し、データのやりとりを可能とする。
【００６６】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６７】
３０１：顔認証システム、３０２：検出部、３０３：特徴量算出部、３０４：格納部、３０５：類似度算出部、３０６：処理部
【図１】
2020030480.tif 000003
【図２】
2020030480.tif 000004
【図３】
2020030480.tif 000005
【図４】
2020030480.tif 000006
【図５】
2020030480.tif 000007
【図６】
2020030480.tif 000008
【図７】
2020030480.tif 000009
【図８】
2020030480.tif 000010