(57)【要約】【課題】畳み込みニューラルネットワークのパラメータ数を増加させることなく、画像認識を精度よく行うことができるようにする。【解決手段】画像認識装置１００は、少なくとも一つの畳み込み層と、当該畳み込み層の出力を、所定の２方向に対して相互排反である１以上のブロックに分割し、当該１以上のブロックの各々について、当該ブロックに含まれる当該畳み込み層の出力を、当該ブロック内における位置に応じて相互排反な複数のサブブロックに分割し、全てのブロックにわたり、当該位置が対応するサブブロックに含まれる要素の値を集約して、当該複数のサブブロックの各々における集約結果を出力するプーリング層とを含む畳み込みニューラルネットワークを用いて画像認識を行う。【選択図】図１
2019197445.tif 000002
【特許請求の範囲】
【請求項１】
入力された１以上のチャネルを有する画像に対して、畳み込みニューラルネットワークを用いた画像認識を行う画像認識装置であって、
前記畳み込みニューラルネットワークは、
少なくとも一つの畳み込み層と、
前記畳み込み層の出力を、所定の２方向に対して相互排反である１以上のブロックに分割し、前記１以上のブロックの各々について、前記ブロックに含まれる前記畳み込み層の出力を、前記ブロック内における位置に応じて相互排反な複数のサブブロックに分割し、全てのブロックにわたり、前記位置が対応するサブブロックに含まれる要素の値を集約して、前記複数のサブブロックの各々における集約結果を出力するプーリング層と、
を含む画像認識装置。
【請求項２】
前記所定の２方向は、幅方向及び高さ方向であり、
前記ブロックは、幅及び高さが同一であり、かつ、前記幅及び前記高さの値が２のべき乗であり、
前記複数のサブブロックは、前記ブロックを、前記ブロック内における左上、左下、右上、及び右下の各位置に応じて相互排反な複数のサブブロックに分割したものである
請求項１記載の画像認識装置。
【請求項３】
前記畳み込みニューラルネットワークは、複数の畳み込み層を含み、
前記複数の畳み込み層では、共通のパラメータを用いる
請求項１又は２記載の画像認識装置。
【請求項４】
入力された１以上のチャネルを有する画像に対して、畳み込みニューラルネットワークを用いた画像認識を行う画像認識方法であって、
前記畳み込みニューラルネットワークは、
少なくとも一つの畳み込み層と、
前記畳み込み層の出力を、所定の２方向に対して相互排反である１以上のブロックに分割し、前記１以上のブロックの各々について、前記ブロックに含まれる前記畳み込み層の出力を、前記ブロック内における位置に応じて相互排反な複数のサブブロックに分割し、全てのブロックにわたり、前記位置が対応するサブブロックに含まれる要素の値を集約して、前記複数のサブブロックの各々における集約結果を出力するプーリング層と、
を含む画像認識方法。
【請求項５】
前記所定の２方向は、幅方向及び高さ方向であり、
前記ブロックは、幅及び高さが同一であり、かつ、前記幅及び前記高さの値が２のべき乗であり、
前記複数のサブブロックは、前記ブロックを、前記ブロック内における左上、左下、右上、及び右下の各位置に応じて相互排反な複数のサブブロックに分割したものである
請求項４記載の画像認識方法。
【請求項６】
前記畳み込みニューラルネットワークは、複数の畳み込み層を含み、
前記複数の畳み込み層では、共通のパラメータを用いる
請求項４又は５記載の画像認識方法。
【請求項７】
コンピュータを、請求項１〜３の何れか１項記載の画像認識装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像認識装置、画像認識方法、およびプログラムに係り、特に、畳み込みニューラルネットワークによる画像認識を精度よく行うための画像認識装置、画像認識方法、およびプログラムに関する。
【背景技術】
【０００２】
画像認識は、入力された画像に対して、その内容に関するラベルを出力する問題である。ラベルは様々なものがあり得るが、多くは画像中に写る物体や場所、シーンの名称が代表的である。
【０００３】
例えば、犬が写る画像が入力された場合、画像認識技術は「犬」というラベルを出力することが期待される。
【０００４】
画像認識技術の性能は、入力された画像に対して、いかに正確に期待される（正しい）ラベルを出力できるかにより議論され、より正しいラベルを出力できるものほど高精度であるとされる。
【０００５】
画像は、ＲＧＢの画素を要素としたテンソルにより構成されているが、このような低レベル（物理信号レベル）な情報と、高レベルな意味的なラベルとの間には大きな隔たりがあるため、画像を入力としてそのまま高精度な認識を実行する（つまり、正確なラベルを出力する）認識器を学習することは困難であると考えられていた。
【０００６】
しかしながら、畳み込みニューラルネットワーク（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：ＣＮＮ）を認識器として用いることで、このような画素の配列から直接ラベルを出力するような学習をしても、高精度な認識ができることが実証された（非特許文献１）。以降、画像認識精度について、ＣＮＮによる飛躍的な改善が報告されている。
【０００７】
一般に、ＣＮＮによる画像認識の認識精度は様々な要因に依存することが知られている。
【０００８】
前提として、ＣＮＮによる画像認識では、事前に認識したいラベルについて、それが正解となるような画像の集合（学習用画像と呼ぶ）を基にＣＮＮを学習する必要がある。したがって、認識精度は学習用画像の質と量に依存する。
【０００９】
また、認識精度に大きく作用する要因としてＣＮＮの構造が挙げられる。通常、ＣＮＮは、比較的単純な処理を行う数種類の作用素（層、レイヤなどと呼ばれる）を、幾層にも積み重ねて実現される。
【００１０】
例えば、代表的なものに畳み込み層やプーリング層、全結合層などが存在する。
【００１１】
畳み込み層は、入力されたテンソルに対して、高さ×幅方向に一定の大きさを持つ畳み込みフィルタを適用する層である（非特許文献１参照）。何種類のフィルタを持つかは任意であり、設計者により設計される。
【００１２】
畳み込み層はパラメータとして畳み込みフィルタの重みを有しており、これはデータに基づいて学習される。
【００１３】
また、一般に学習すべきパラメータを持たない層としてプーリング層が知られている。入力テンソルに対して高さ×幅方向に一定の大きさを持つ“フィルタ”を適用する点では畳み込み層と同様であるが、プーリング層は当該大きさの範囲に対して、最大の値を出力する（最大値プーリング）、平均値を出力する（平均値プーリング）等、固定的かつ単純な作用を適用する点で異なる。
【００１４】
特に、パラメータ数を増加させずに入力テンソルの大きさを減少させたい場合などに利用される。
【００１５】
ＣＮＮの性能は、これら畳み込み層やプーリング層をどのように構成し、配置するかによって左右される。
【００１６】
基本的なＣＮＮの設計指針は、全体のパラメータ数を抑えつつ、精度の高い認識が可能にすることであり、従来から、配置に関する研究の他、畳み込み層やプーリング層自体を改善することを試みる研究が進められてきている。
【００１７】
例えば、非特許文献２では、残差ブロックと呼ばれる畳み込み層の変形が開示されている。
【００１８】
ある入力テンソルがあった場合に、残差ブロックは、特定の畳み込み層を適用して出力するパスと、何の作用も適用せずにそのまま入力テンソルを出力するパスとを持ち、これら２種の出力の足し合わせを最終的な出力とする。
【００１９】
すなわち、元の入力テンソルに対する差分を、畳み込み層に学習させることを狙っている。
【００２０】
また、非特許文献３では、Ｄｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎと呼ばれる畳み込み層の亜種が開示されている。
【００２１】
通常の畳み込み層では、畳み込みフィルタは、高さ・幅方向に連続する一部領域に対して適用されるが、Ｄｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎでは一定間隔を開けた不連続な領域に適用される。
【００２２】
この工夫により、パラメータ数を増加させることなく、より入力テンソルの広い範囲に作用させることができるようになっている。
【００２３】
特に、画像はマルチスケール性、すなわち、同じ物体でも大きく写っている場合もあれば小さく写っている場合もあるという性質があり、様々な大きさをカバーできるような処理系が好ましく、また、より広い範囲を処理することで、複数の物体間の関係性を考慮することもできるという効果が期待できる。
【００２４】
また、特許文献１に開示されている技術では、ＣＮＮと再帰型ニューラルネット（Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔ：ＲＮＮ）を組み合わせて用いる映像認識方法が開示されている。
【先行技術文献】
【特許文献】
【００２５】
【特許文献１】特開２０１７−１１１６６０号公報
【非特許文献】
【００２６】
【非特許文献１】Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton, "ImageNet Classification with Deep Convolutional Neural Networks." In Proc. Advances in Neural Information Processing Systems (NIPS), 2012, Pages. 1097-1105.
【非特許文献２】Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, "Deep Residual Learning for Image Recognition." In Proc. Conference on Computer Vision & Pattern Recognition (CVPR) , 2016, Pages. 770-778.
【非特許文献３】Fisher Yu, Vladlen Koltun, "Multi-Scale Context Aggregation by Dilated Convolutions." In Proc. International Conference on Learning Representations, arXiv:1511.07122, インターネット<URL:https://arxiv.org/abs/1511.07122>, 2015.
【発明の概要】
【発明が解決しようとする課題】
【００２７】
ＣＮＮを用いた画像認識では、パラメータ数を増加させずに精度を保つことが重要な指針となる。非特許文献１では、畳み込み層の他、基本的なプーリング層である最大値プーリングが開示されており、これらの組み合わせによりＣＮＮが構成されている。
【００２８】
しかし、最大値プーリングはパラメータこそ持たないものの、入力されたテンソルのサイズを単純に小さくするだけであり、情報の欠損を引き起こしてしまうため、精度を保つという観点では望ましい性能を発揮しない、という問題があった。
【００２９】
また、非特許文献２に開示されている残差ブロックは大きな精度改善をもたらすことが知られているものの、パラメータを持つ畳み込み層の積み重ねを新たに導入する必要があるものであるため、パラメータ数の増加が避けられない、という問題があった。
【００３０】
また、非特許文献３に開示されているＤｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎは、通常のＣＮＮに組み込まれる畳み込み層とパラメータ数を変えずに、入力テンソルのより広い範囲の情報を用いた処理ができる技術である。一方で、間隔を空けた畳み込み層により、近接する画素間の関係性をうまく捉えることができないことがデメリットとして知られており、どのような場合であっても精度が改善できるわけではない、という問題があった。
【００３１】
特許文献１に開示されている技術は、映像認識においてＲＮＮとＣＮＮを組み合わせたものである。ＲＮＮ自体は、少ないパラメータ数で再帰的処理を実現する処理ブロックと見做すこともできるが、通常は映像のような時系列データへの適用が主であり、静的な画像認識に適用した場合の精度改善効果は限定的である、という問題があった。
【００３２】
本発明は上記の点に鑑みてなされたものであり、畳み込みニューラルネットワークのパラメータ数を増加させることなく、画像認識を精度よく行うことができる画像認識装置、画像認識方法、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００３３】
本発明に係る画像認識装置は、入力された１以上のチャネルを有する画像に対して、畳み込みニューラルネットワークを用いた画像認識を行う画像認識装置であって、前記畳み込みニューラルネットワークは、少なくとも一つの畳み込み層と、前記畳み込み層の出力を、所定の２方向に対して相互排反である１以上のブロックに分割し、前記１以上のブロックの各々について、前記ブロックに含まれる前記畳み込み層の出力を、前記ブロック内における位置に応じて相互排反な複数のサブブロックに分割し、全てのブロックにわたり、前記位置が対応するサブブロックに含まれる要素の値を集約して、前記複数のサブブロックの各々における集約結果を出力するプーリング層と、を備えて構成される。
【００３４】
また、本発明に係る画像認識方法は、入力された１以上のチャネルを有する画像に対して、畳み込みニューラルネットワークを用いた画像認識を行う画像認識方法であって、前記畳み込みニューラルネットワークは、少なくとも一つの畳み込み層と、前記畳み込み層の出力を、所定の２方向に対して相互排反である１以上のブロックに分割し、前記１以上のブロックの各々について、前記ブロックに含まれる前記畳み込み層の出力を、前記ブロック内における位置に応じて相互排反な複数のサブブロックに分割し、全てのブロックにわたり、前記位置が対応するサブブロックに含まれる要素の値を集約して、前記複数のサブブロックの各々における集約結果を出力するプーリング層と、を含む。
【００３５】
本発明に係る画像認識装置及び画像認識方法によれば、入力された１以上のチャネルを有する画像に対して、畳み込みニューラルネットワークを用いた画像認識を行う。
【００３６】
そして、当該畳み込みニューラルネットワークは、少なくとも一つの畳み込み層と、当該畳み込み層の出力を、所定の２方向に対して相互排反である１以上のブロックに分割し、当該１以上のブロックの各々について、当該ブロックに含まれる当該畳み込み層の出力を、当該ブロック内における位置に応じて相互排反な複数のサブブロックに分割し、全てのブロックにわたり、当該位置が対応するサブブロックに含まれる要素の値を集約して、当該複数のサブブロックの各々における集約結果を出力するプーリング層とを含む。
【００３７】
このように、少なくとも一つの畳み込み層と、当該畳み込み層の出力を、所定の２方向に対して相互排反である１以上のブロックに分割し、当該１以上のブロックの各々について、当該ブロックに含まれる当該畳み込み層の出力を、当該ブロック内における位置に応じて相互排反な複数のサブブロックに分割し、全てのブロックにわたり、当該位置が対応するサブブロックに含まれる要素の値を集約して、当該複数のサブブロックの各々における集約結果を出力するプーリング層とを含む畳み込みニューラルネットワークを用いて画像認識を行うことにより、畳み込みニューラルネットワークのパラメータ数を増加させることなく、画像認識を精度よく行うことができる。
【００３８】
また、本発明に係る画像認識装置の前記所定の２方向は、幅方向及び高さ方向であり、前記ブロックは、幅及び高さが同一であり、かつ、前記幅及び前記高さの値が２のべき乗であり、前記複数のサブブロックは、前記ブロックを、前記ブロック内における左上、左下、右上、及び右下の各位置に応じて相互排反な複数のサブブロックに分割したものであるとすることができる。
【００３９】
また、本発明に係る画像認識方法の前記所定の２方向は、幅方向及び高さ方向であり、前記ブロックは、幅及び高さが同一であり、かつ、前記幅及び前記高さの値が２のべき乗であり、前記複数のサブブロックは、前記ブロックを、前記ブロック内における左上、左下、右上、及び右下の各位置に応じて相互排反な複数のサブブロックに分割したものである。
【００４０】
また、本発明に係る画像認識装置の前記畳み込みニューラルネットワークは、複数の畳み込み層を含み、前記複数の畳み込み層では、共通のパラメータを用いることができる。
【００４１】
また、本発明に係る画像認識方法の前記畳み込みニューラルネットワークは、複数の畳み込み層を含み、前記複数の畳み込み層では、共通のパラメータを用いる。
【００４２】
本発明に係るプログラムは、上記の画像認識装置の各部として機能させるためのプログラムである。
【発明の効果】
【００４３】
本発明の画像認識装置、画像認識方法、およびプログラムによれば、畳み込みニューラルネットワークのパラメータ数を増加させることなく、画像認識を精度よく行うことができる。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施の形態に係る画像認識装置の構成を示すブロック図である。
【図２】本発明の実施の形態に係る画像認識装置のブロック集約部の処理の一例を示すイメージ図である。
【図３】本発明の実施の形態に係る画像認識装置のブロック集約部の処理の一例を示すイメージ図である。
【図４】本発明の実施の形態に係る画像認識装置のブロック畳み込み部の処理の一例を示すイメージ図である。
【図５】本発明の実施の形態に係る画像認識装置の認識処理部の処理の一例を示すイメージ図である。
【図６】本発明の実施の形態に係る画像認識装置の画像認識処理ルーチンを示すフローチャートである。
【図７】本発明の実施の形態に係る画像認識装置の実験結果を示す図である。
【図８】本発明の実施の形態に係る画像認識装置の実験結果を示す図である。
【図９】本発明の実施の形態に係る画像認識装置の実験結果を示す図である。
【図１０】本発明の実施の形態に係る画像認識装置の実験結果を示す図である。
【図１１】本発明の実施の形態に係る画像認識装置の実験結果を示す図である。
【発明を実施するための形態】
【００４５】
以下、本発明の実施の形態について図面を用いて説明する。
【００４６】
＜本発明の実施の形態に係る画像認識装置の概要＞
まず、本発明の実施形態の概要について説明する。
【００４７】
本実施形態に係る画像認識装置は、少なくとも一つの畳み込み層と、当該畳み込み層の出力を、所定の２方向に対して相互排反である１以上のブロックに分割し、当該１以上のブロックの各々について、当該ブロックに含まれる当該畳み込み層の出力を、当該ブロック内における位置に応じて相互排反な複数のサブブロックに分割し、全てのブロックにわたり、当該位置が対応するサブブロックに含まれる要素の値を集約して、当該複数のサブブロックの各々における集約結果を出力するプーリング層とを含む畳み込みニューラルネットワーク（ＣＮＮ）を用いて画像認識を行う。
【００４８】
当該プーリング層は、パラメータを持たない新たなプーリング層でありながら、最大値プーリング等とは異なり、一切の情報欠損を起こすことが無い。これにより、本実施形態に係る画像認識装置は、画像認識の安定した精度改善効果を得ることができる。
【００４９】
また、当該プーリング層は、当該位置が対応するサブブロックに含まれる要素の値を集約した複数のテンソルを出力する。そして、複数の出力テンソルの各々に対して、共通のパラメータを用いる畳み込み層を適用することで、全体としてもパラメータ数増加の無いＣＮＮを構成することが可能である。
【００５０】
すなわち、本実施形態に係る画像認識装置は、当該ＣＮＮを用いて画像認識を行うことにより、パラメータ数を増加させることなく、画像認識を精度よく行うことができる。
【００５１】
＜本発明の実施の形態に係る画像認識装置の構成＞
図１を参照して、本発明の実施の形態に係る画像認識装置１００の構成について説明する。図１は、本発明の実施の形態に係る画像認識装置１００の構成を示すブロック図である。
【００５２】
画像認識装置１００は、ＣＰＵと、ＲＡＭと、後述する画像認識処理ルーチンを実行するためのプログラムを記憶したＲＯＭとを備えたコンピュータで構成され、機能的には次に示すように構成されている。
【００５３】
図１に示すように、本実施形態に係る画像認識装置１００は、ＣＮＮ記憶部１０１と、入力部１０２と、畳み込み部１０３と、第一ブロック集約部１０４と、第一ブロック畳み込み部１０５と、第二ブロック集約部１０６と、第二ブロック畳み込み部１０７と、認識処理部１０８と、出力部１０９とを備えて構成される。
【００５４】
本実施形態のＣＮＮは、畳み込み部１０３により計算される畳み込み層、第一ブロック集約部１０４により計算されるプーリング層、第一ブロック畳み込み部１０５により計算される畳み込み層、第二ブロック集約部１０６により計算されるプーリング層、第二ブロック畳み込み部１０７により計算される畳み込み層、及び認識処理部１０８により計算される出力層により構成される。また、出力層は、Ｇｌｏｂａｌ  Ａｖｅ．  Ｐｏｏｌｉｎｇ（ＧＡＰ）層、全結合層、及びソフトマックス関数により構成される。
【００５５】
第一ブロック集約部１０４により計算されるプーリング層と、第二ブロック集約部１０６により計算されるプーリング層とは同一の構成である。
【００５６】
また、第一ブロック畳み込み部１０５により計算される畳み込み層と、第二ブロック畳み込み部１０７により計算される畳み込み層とは同一の構成である。
【００５７】
ＣＮＮ記憶部１０１は、ＣＮＮの各層の学習済みパラメータを記憶している。
【００５８】
具体的には、ＣＮＮ記憶部１０１は、畳み込み部１０３、第一ブロック集約部１０４、第一ブロック畳み込み部１０５、第二ブロック集約部１０６、第二ブロック畳み込み部１０７、及び認識処理部１０８の各々が用いるＣＮＮの各層（複数の畳み込み層、複数のプーリング層、及び出力層）のパラメータを記憶している。本実施形態では、畳み込み部１０３、第一ブロック畳み込み部１０５、及び第二ブロック畳み込み部１０７の各々が用いる畳み込み層のパラメータを同一のものとする。
【００５９】
なお、画像認識処理を実行する際には、画像認識装置１００を構成するＣＮＮは学習済みであることが一般的であり、本実施形態でも学習済みのＣＮＮを利用することを前提に説明を進めるが、後述のプーリング層及び畳み込み層の構成及び処理は、ＣＮＮが学習済みであるかないかに関わらず同一であるため、特に区別しない。
【００６０】
入力部１０２は、１以上のチャネルを有する画像１１０の入力を受け付ける。
【００６１】
具体的には、入力部１０２は、画像１１０を、外部からの通信により入力を受け付ける。通信手段は任意のものを用いることができるが、本実施形態においては、インターネット、ＴＣＰ／ＩＰにより通信するよう接続されているものとする。
【００６２】
そして、入力部１０２は、受け付けた画像１１０を、畳み込み部１０３に渡す。
【００６３】
畳み込み部１０３は、入力部１０２が受け付けた画像１１０に対して、ＣＮＮの畳み込み層の処理を実行する。
【００６４】
具体的には、畳み込み部１０３は、入力された画像１１０に対して、ＣＮＮ記憶部１０１から取得した畳み込み層のパラメータを用いて、当該畳み込み層を適用した結果であるテンソルを得る。
【００６５】
ここで、畳み込み層は、従来の畳み込み層を用いてよい（非特許文献１〜３）。
【００６６】
なお、画像１１０は、３次元（３階）テンソルとして表現することができ、実態として入力される画像１１０は、任意の大きさを持つ３次元テンソルで構わない。
【００６７】
また、畳み込み層は１層である必要はなく、複数の畳み込み層を含むように構成しても構わない。畳み込み層の入出力は共に３次元テンソルであるため、何層で構成してもその後の処理は実行可能である。
【００６８】
また、畳み込み部１０３は、結果的に最終的な出力が３次元テンソルであれば、必ずしも畳み込み層だけによって構成されている必要はない。例えば、非特許文献１〜３に記載の全結合層や最大値プーリング層、Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔ（ＲｅＬＵ）等の活性化関数、バッチ正規化等、任意の公知の層や処理要素を介在させても構わない。
【００６９】
そして、畳み込み部１０３は、畳み込み層により得られたテンソルを、第一ブロック集約部１０４に渡す。
【００７０】
第一ブロック集約部１０４は、畳み込み層の出力を、所定の２方向に対して相互排反である１以上のブロックに分割し、当該１以上のブロックの各々について、当該ブロックに含まれる当該畳み込み層の出力を、当該ブロック内における位置に応じて相互排反な複数のサブブロックに分割し、全てのブロックにわたり、当該位置が対応するサブブロックに含まれる要素の値を集約して、当該複数のサブブロックの各々における集約結果を出力するプーリング層の処理を計算する。
【００７１】
具体的には、第一ブロック集約部１０４は、畳み込み層の出力である３次元テンソルが入力されると、ＣＮＮ記憶部１０１から取得したプーリング層のパラメータを用いたプーリング層を適用し、４つの小さな３次元テンソルに分割して出力する。
【００７２】
例えば、畳み込み部１０３の畳み込み層から出力された３次元テンソルＸがあり、そのサイズ（高さ・幅・深さ／チャネル数）がＨ×Ｗ×Ｃであるとする。第一ブロック集約部１０４は、このテンソルＸにプーリング層を適用して、各々サイズがＨ／２×Ｗ／２×Ｃであるような４つの小さなテンソルに分割して出力する。
【００７３】
より具体的には、まず、第一ブロック集約部１０４は、畳み込み部１０３により得られたテンソルに対して、４つのテンソルに分割する。分割の仕方を、図２を用いて説明する。ここで、簡単のため、本実施形態では当該プーリング層に入力されるテンソルのサイズが４×４×１の場合について示すが、その他のサイズの場合であっても同様である。
【００７４】
第一ブロック集約部１０４は、プーリング層を適用することにより、大まかに図２の（１）〜（３）の３つの処理を実行する。まず、入力テンソルを、高さ及び幅方向に対して、２×２×１のサイズの相互排反なブロックに分割する（図２（１））。図２の例では４つのブロックに分割しているが、いくつのブロックに分割されるかは、入力テンソルとブロックのサイズに依存する。
【００７５】
例えば、入力テンソルのサイズが８×８×１で、ブロックのサイズを２×２とするならば、１６個のブロックに分割される。なお、分割されたブロックのそれぞれも３次元テンソルである。
【００７６】
次に、第一ブロック集約部１０４は、各ブロックの要素について、その要素がブロック内のどの位置にあるか、より具体的には、左上、左下、右上、右下の４種類のどの位置にあるかに基づいてサブブロックに分割する（図２（２））。図２の例では、左上は黒、左下は濃いグレー、右上は薄いグレー、右下は白で示している。
【００７７】
最後に、第一ブロック集約部１０４は、全てのブロックについて、同位置のサブブロックに属する要素（図２では同色の要素）を集約し、最終的に４種の小さいテンソルを構成して出力する（図２（３））。
【００７８】
なお、図２の例では、分割する際のブロックのサイズを２×２×Ｃとしたが、これに限られるものではない。望ましくは正方形で、一辺の大きさｎが２のべき乗（すなわち、ｎ×ｎ×Ｃで、ｎが２のべき乗）になるようなブロックサイズを用いる。
【００７９】
例えば、図３に、入力テンソルのサイズが８×８×１で、これをサイズ４×４×１のブロックに分割する場合の例を図示する。この場合、図２の例とは異なり、各ブロック内のサブブロックは各々２×２×１のサイズを持つことになる。いずれにしても、サイズＨ×Ｗ×Ｃの入力テンソルを、サイズＨ／２×Ｗ／２×Ｃの小さなテンソルに４分割して出力することに変わりはない。
【００８０】
第一ブロック集約部１０４の処理は、通常のプーリング層と同様、学習が必要なパラメータを一切持たないため、ネットワーク全体のパラメータ数になんら影響を及ぼさない点で好ましい性質を持つ。
【００８１】
また、通常のプーリング層（最大値プーリング層や平均値プーリング層など）が、入力テンソルの情報を損失してしまうのに対して、第一ブロック集約部１０４で適用するプーリング層は、元の入力テンソルの情報を一切損失しないという特徴を持つ。
【００８２】
したがって、第一ブロック集約部１０４で適用するプーリング層は、パラメータ数を一切増加させることなく、さらに情報損失を引き起こさずに後の畳み込み層に情報を伝達することができるため、高い認識精度を保持することができるという利点がある。
【００８３】
そして、第一ブロック集約部１０４は、当該プーリング層の出力である４つのテンソルを、第一ブロック畳み込み部１０５に渡す。
【００８４】
第一ブロック畳み込み部１０５は、第一ブロック集約部１０４により得られる複数のテンソルの各々に対して、畳み込み層を適用する処理を行う。
【００８５】
具体的には、第一ブロック畳み込み部１０５は、複数のテンソルの各々について、当該テンソルに対し、ＣＮＮ記憶部１０１から取得した畳み込み層のパラメータを用いた畳み込み層を適用して、当該畳み込み層を適用した結果であるテンソルを得る（図４）。
【００８６】
第一ブロック畳み込み層１０５が適用する畳み込み層と、通常の畳み込み層（例えば、畳み込み部１０３）との違いは、各テンソルに適用する畳み込み層は全て同一のもの、つまり、同一のパラメータを持つ畳み込み層であるということである。
【００８７】
すなわち、第一ブロック畳み込み層１０５が適用する畳み込み層を用いることで、通常の畳み込み層のみを用いる場合と比してパラメータ数が増加しない。
【００８８】
また、第一ブロック集約部１０４で適用するプーリング層は、入力テンソルの情報を損失無く伝達することができるが、第一ブロック畳み込み層１０５が適用する畳み込み層では、伝達された全ての情報に対して畳み込み処理を適用するため、豊富な情報源を活かした処理ができる構成となっている。すなわち、結果として高い認識精度を保つ効果をより大きく享受できるようになる。
【００８９】
そして、第一ブロック畳み込み部１０５は、複数のテンソルについて、それぞれ当該畳み込み層を適用して得られた複数のテンソルを、第二ブロック集約部１０６に渡す。
【００９０】
第二ブロック集約部１０６及び第二ブロック畳み込み部１０７では、第一ブロック集約部１０４及び第一ブロック畳み込み部１０５と同様に、第一ブロック畳み込み部１０５により得られた複数のテンソルの各々について、当該テンソルに対してプーリング層及び畳み込み層を適用する処理を実行する。
【００９１】
第二ブロック集約部１０６では、複数のテンソルの各々について、当該テンソルに対してプーリング層を適用する処理を実行するため、テンソル１つあたり４つの小さいテンソルに分割されることになる。
【００９２】
このため、第二ブロック集約部１０６での処理の終了時点では４×４＝１６個の小さいテンソルが出力されることになる。
【００９３】
第二ブロック畳み込み部１０７は、全てのテンソルに対して常に同一のパラメータを持つ畳み込み層を適用する。つまり、１６個の小さいテンソルに対して全て同一の畳み込み層を適用する。
【００９４】
なお、プーリング層・畳み込み層をさらに繰り返す構成とした場合も、同様であり、この処理原理は変わらない。
【００９５】
そして、第二ブロック畳み込み部１０７は、複数のテンソルについて、当該畳み込み層を適用して得られた複数のテンソルを、認識処理部１０８に渡す。
【００９６】
認識処理部１０８は、第二ブロック畳み込み部１０７により得られた複数のテンソルに基づいて、画像認識処理を行う。
【００９７】
具体的には、認識処理部１０８は、ＧＡＰ層を適用して、第二ブロック畳み込み部１０７により得られた複数のテンソルを、一つのベクトルに集約し、集約したベクトルに対して、ＣＮＮ記憶部１０１から取得した全結合層及びソフトマックス関数のパラメータを用いた全結合層及びソフトマックス関数を適用し、ベクトルである認識結果１２０を求める。
【００９８】
一つのベクトルに集約するＧＡＰ層の適用では、例えば、非特許文献２に記載のＧｌｏｂａｌ  Ａｖｅｒａｇｅ  Ｐｏｏｌｉｎｇ（ＧＡＰ）処理等を用いる。
【００９９】
なお、このベクトルの各要素は、事前に学習したクラスへの帰属確率（スコア）を表すものであり、ある要素の値が大きいほど、入力された画像１１０がその要素に対応するクラスへの帰属確率が高いと見做すことができる（非特許文献２）。
【０１００】
図５を用いて認識処理部１０８の処理の流れを説明する。認識処理部１０８は、畳み込み層の出力である複数のテンソルを受け取ると、次の３ステップの処理によって構成される。
【０１０１】
まず、複数のテンソルに対してＧＡＰ層を適用して一本のベクトルに変換する。次に、当該ベクトルに対して全結合層を適用して、認識したい対象クラス数分の要素を持つベクトルに変換する。最後に、このベクトルに対してソフトマックス関数を適用し、最終的な認識結果を表すベクトルである認識結果１２０に変換する。
【０１０２】
そして、認識処理部１０８は、認識結果１２０を出力部１０９に渡す。
【０１０３】
出力部１０９は、認識処理部１０８により得られた認識結果１２０を出力する。
【０１０４】
＜本発明の実施の形態に係る画像認識装置の作用＞
図６は、本発明の実施の形態に係る画像認識処理ルーチンを示すフローチャートである。
【０１０５】
入力部１０２に画像１１０が入力されると、画像認識装置１００において、図６に示す画像認識処理ルーチンが実行される。
【０１０６】
まず、ステップＳ２０１において、入力部１０２が画像１１０の入力を受け付ける。
【０１０７】
ステップＳ２０２において、畳み込み部１０３は、ステップＳ２０１により受け付けた画像１１０に対して、ＣＮＮの畳み込み層を適用する処理を実行し、畳み込み層の出力であるテンソルを得る。
【０１０８】
ステップＳ２０３において、第一ブロック集約部１０４は、上記ステップＳ２０２により得られたテンソルに対して、所定の２方向に対して相互排反である１以上のブロックに分割し、当該１以上のブロックの各々について、当該ブロックに含まれる当該畳み込み層の出力を、当該ブロック内における位置に応じて相互排反な複数のサブブロックに分割し、全てのブロックにわたり、当該位置が対応するサブブロックに含まれる要素の値を集約して、当該複数のサブブロックの各々における集約結果を出力するプーリング層を適用して、プーリング層の出力である複数のテンソルを得る。
【０１０９】
ステップＳ２０４において、第一ブロック畳み込み部１０５は、上記ステップＳ２０３により得られた複数のテンソルの各々に対して、畳み込み層を適用する処理を行い、畳み込み層の出力であるテンソルを得る。
【０１１０】
ステップＳ２０５において、第二ブロック集約部１０６は、上記ステップＳ２０４により得られた複数のテンソルの各々に対して、プーリング層を適用する処理を実行し、プーリング層の出力である複数のテンソルを得る。
【０１１１】
ステップＳ２０６において、第二ブロック畳み込み部１０７は、上記ステップＳ２０５により得られた複数のテンソルの各々に対して、畳み込み層を適用する処理を実行し、畳み込み層の出力であるテンソルを得る。
【０１１２】
ステップＳ２０７において、認識処理部１０８は、上記ステップＳ２０６により得られた複数のテンソルに対して出力層を適用することにより、画像認識処理を行う。
【０１１３】
ステップＳ２０８において、上記ステップＳ２０７により得られた認識結果１２０を出力する。
【０１１４】
＜本発明の実施の形態に係るＣＮＮの学習＞
本実施形態では学習済みのＣＮＮを仮定して認識処理を説明したが、本実施形態における構成のＣＮＮも、非特許文献１〜３にあるような公知のＣＮＮと同様に、誤差逆伝搬法（確率勾配法などのアルゴリズム）により、同様に学習することが可能である。
【０１１５】
この場合、学習データとして少なくとも１組の画像ファイルとそのクラス（正解クラス）を示す情報を用意した上で、当該学習データに対する認識精度が高くなるように、すなわち、学習データに含まれる各画像に対する認識結果が正解クラスとなるように、誤差逆伝搬法によってＣＮＮのパラメータを更新していく。
【０１１６】
より正確には認識結果を表すベクトル内の、正解クラスに対応する要素が高い値を持ち、その他のクラスに対応する要素が小さい値を持つように、ＣＮＮのパラメータを更新していく。
【０１１７】
そして、この学習処理を、終了条件が満たされるまで繰り返せばよい。終了条件については任意のものを用いてよいが、例えば、「所定の回数を繰り返すまで」、「目的関数の値が一定以上変化しなくなるまで」、「精度の値が一定以上になるまで」、「学習データとは別に用意された検証用データを用いた場合の精度の値が一定以上変化しなくなるまで」、「学習データとは別に用意された検証用データを用いた場合の精度の値が一定以上になるまで」などとすればよい。
【０１１８】
＜本発明の実施の形態に係る画像認識装置の実験結果＞
次に、本実施形態に係る画像認識装置１００の有効性を示すための実験結果について説明する。以下、本実施形態に係る画像認識装置１００の第一ブロック集約部１０４、第二ブロック集約部１０６で用いたプーリング手法をＰａｒａｌｌｅｌ  Ｇｒｉｄ  Ｐｏｏｌｉｎｇ（ＰＧＰ）と呼ぶ。
【０１１９】
＜＜データセット＞＞
画像分類のタスクにおいて標準的なデータセットであるＣＩＦＡＲ−１０、ＣＩＦＡＲ−１００（参考文献１）、ＳＶＨＮ（参考文献２）を用いた実験を行った。
［参考文献１］G. E. Hinton: “Learning multiple layers of representation”, Trends in cognitive sciences, 11, 10, 2007, pp. 428-434.
［参考文献２］ Y. Netzer, T. Wang, A. Coates, A. Bissacco, B. Wu and A. Y. Ng: “Reading digits in natural images with unsupervised feature learning”, NIPS Workshop on Machine Learning Systems", Vol. 2011, p. 5.
【０１２０】
ＣＩＦＡＲ−１０／１００は、６０，０００枚の３２×３２のカラー画像からなるデータセットであり、学習用画像が５０，０００枚とテスト用画像が１０，０００枚で構成されている。
【０１２１】
これら２つのデータセットに対して広く用いられている（非特許文献２、参考文献３、４）標準的なデータ拡張（Ｄａｔａ  Ａｕｇｍｅｎｔａｔｉｏｎ）手法として、学習時に各端を４０×４０になるようゼロパディングした画像から３２×３２の画像をランダムにクロップし、得られた画像をランダムに左右反転した。
［参考文献３］G. Huang, Z. Liu, K. Q. Weinberger and L. van der Maaten:“Densely connected convolutional networks”, CVPR (2017).
［参考文献４］S. Xie, R. Girshick, Piotr, Z. Tu, K. He：“Aggregated residual transformations for deep neural networks”, CVPR (2017).
【０１２２】
前処理として、チャネルの平均値と標準分散を用いて色の正規化を行った。また、５０，０００枚の学習用画像全てを用いて学習を行い、学習終了時のテストエラー率を最終結果とした。
【０１２３】
Ｓｔｒｅｅｔ  Ｖｉｅｗ  Ｈｏｕｓｅ  Ｎｕｍｂｅｒｓ（ＳＶＨＮ）とは、Ｇｏｏｇｌｅ  Ｓｔｒｅｅｔ  Ｖｉｅｗから家・マンションの部屋番号の数字（０〜９）を集めた、３２×３２のカラー画像からなるデータセットである。
【０１２４】
学習用画像が７３，２５７枚、テスト用画像が２６，０３２枚、追加の学習用画像が５３１，１３１枚で構成されている。
【０１２５】
参考文献３、５に従い、データ拡張（Ｄａｔａ  Ａｕｇｍｅｎｔａｔｉｏｎ）手法は用いず、追加の学習用画像も含めた全ての学習用画像を用いて学習を行った。
［参考文献５］S. Zagoruyko and N. Komodakis: “Wide residual networks”, BMVC (2016).
【０１２６】
＜＜ネットワークモデル＞＞
ＰＧＰの有効性を確認するため、畳み込み層として複数種類のネットワークモデルを用いて実験を行った。
【０１２７】
具体的には、ｐｒｅ−ａｃｔｉｖａｔｉｏｎＲｅｓＮｅｔ（ＰｒｅＲｅｓＮｅｔ）、ＰｙｒａｍｉｄＮｅｔ、ＤｅｎｓｅＮｅｔの計３種類を畳み込み層のネットワークモデルとして用いた。
【０１２８】
ＰｒｅＲｅｓＮｅｔに対しては、ボトルネック構造を持ったモデルを利用し、層の深さを２０、２９、３８、４７、７４、１０１、１６４の７種類に変化させて実験を行った。
【０１２９】
ＰｙｒａｍｉｄＮｅｔに対しては、ボトルネック構造を持ったモデルを利用し、パラメータ増加率はα＝２８とした。
【０１３０】
ＤｅｎｓｅＮｅｔに対しては、ボトルネック構造を持ち、かつ、省パラメータなモデルであるＤｅｎｓｅＮｅｔ−ＢＣを用いた。
【０１３１】
ＰＧＰを適用した場合の各ネットワークモデルの性能変化をより厳密に確認するため、学習に関するハイパーパラメータ（エポック数、学習率、モーメンタム率等）については同一のものを使用した。
【０１３２】
＜＜実装の詳細＞＞
学習率のスケジューリングにはＣｏｓｉｎｅ  Ａｎｎｅａｌｉｎｇ（参考文献６）を用いた。
［参考文献６］I. Loshchilov and F. Hutter: “SGDR: stochastic gradient descent with restarts”, ICLR (2017).
【０１３３】
Ｃｏｓｉｎｅ  Ａｎｎｅａｌｉｎｇは、最初は学習率を高い値にしてから学習を始め、それからコサイン曲線に従う形で急速かつスムーズに学習率を低い値に落とす学習率のスケジューリング法である。
【０１３４】
Ｃｏｓｉｎｅ  Ａｎｎｅａｌｉｎｇ  のパラメータは、下記式（１）とした。
【０１３５】
【数１】
2019197445.tif 000003
【０１３６】
参考文献３に従い、全てのモデルに対して総学習イテレーション数を、ＣＩＦＡＲ−１０／１００では３００ｅｐｏｃｈ、ＳＶＨＮでは４０ｅｐｏｃｈとした。また、重み減衰は１０-４に設定し、パラメータが０．９のモーメンタム付きの確率的勾配降下法を用い、ミニバッチサイズは６４とした。
【０１３７】
各層の重みの初期化は参考文献７の方法を用いた。
［参考文献７］K. He, X. Zhang, S. Ren and J. Sun: “Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification”, ICCV, 2015, pp. 1026-103.
【０１３８】
＜＜結果＞＞
各データセットに対して各種ネットワークモデルを学習した結果のテストエラー率をベースライン（Ｂａｓｅｌｉｎｅ）として評価を行った。
【０１３９】
畳み込み層としての各ネットワークモデルの出力にＰＧＰを適用して学習した場合の結果を図７、図８に示す。
【０１４０】
全てのデータセットに対して非特許文献３の拡張畳み込み（Ｄｉｌａｔｅｄ）を利用したネットワークは、ベースラインの結果と比較してより低いエラー率を達成した。ＰＧＰを用いたネットワークは拡張畳み込みを利用したネットワークを更に上回るエラー率を示した。
【０１４１】
特にＰｙｒａｍｉｄＮｅｔＢ−１６４（α＝２８）にＰＧＰを適用したモデルは、ＣＩＦＡＲ−１０とＣＩＦＡＲ−１００においてそれぞれ０．５３％、１．７１％改善し、３．３８％、１７．９４％のエラー率を記録した。
【０１４２】
これは、同程度のパラメータ数を持つ手法の中では最高精度のものである。
【０１４３】
次に、各ネットワークモデルに対して、ベースラインの重みを転移した場合の各データセットのテストエラー率を図９に示す。
【０１４４】
ＰＧＰを用いたネットワーク構造が、ほぼ全てのデータセットに対して最良の結果を示した。例えば、ＰｒｅＲｅｓＮｅｔでは層の深さに関わらずＰＧＰを用いた場合のエラー率が低下しているが、それはＰＧＰの構造自体にデータ拡張の効果があるからと考えられる。
【０１４５】
各ネットワークモデルに拡張畳み込みもしくはＰＧＰを適用して学習した後、学習した重みを元のネットワークに転移した場合の各データセットのテストエラー率を図１０、１１に示す。
【０１４６】
拡張畳み込みをネットワークモデルに適用して学習した重みを元のネットワークに転移した結果、ベースラインよりもテストエラー率が悪化した。
【０１４７】
これは、拡張畳み込みを適用したネットワークモデルではＧＡＰ層の前に集約する演算があるため、元のネットワークと同じ演算を行う経路が無くなってしまったためにうまく認識性能が発揮できなくなったと考えられる。
【０１４８】
一方、ＰＧＰをネットワークモデルに適用して学習した重みを元のネットワークに転移した結果、ほぼ全てにおいてベースライン及び拡張畳み込みより認識性能が向上することを確認した。
【０１４９】
画像分類の標準的データセットであるＣＩＦＡＲ−１０、ＣＩＦＡＲ−１００、ＳＶＨＮを用いた実験により、ＰＧＰの有効性を確認した。
【０１５０】
以上説明したように、本発明の実施形態に係る画像認識装置によれば、少なくとも一つの畳み込み層と、当該畳み込み層の出力を、所定の２方向に対して相互排反である１以上のブロックに分割し、当該１以上のブロックの各々について、当該ブロックに含まれる当該畳み込み層の出力を、当該ブロック内における位置に応じて相互排反な複数のサブブロックに分割し、全てのブロックにわたり、当該位置が対応するサブブロックに含まれる要素の値を集約して、当該複数のサブブロックの各々における集約結果を出力するプーリング層とを含む畳み込みニューラルネットワークを用いて画像認識を行うことにより、畳み込みニューラルネットワークのパラメータ数を増加させることなく、画像認識を精度よく行うことができる。
【０１５１】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１５２】
上述の実施形態において、ＣＮＮは、畳み込み層、プーリング層、ＧＡＰ層、全結合層、及びソフトマックス関数により構成されたがこれに限定されるものではない。例えば、これら以外にも、最大値プーリング層、平均値プーリング層、バッチ正規化、Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔ（ＲｅＬＵ）等の活性化関数、非特許文献１〜３に記載の任意の公知の層／処理要素等を更に用いて構成してもよい。
【０１５３】
また、第一ブロック集約部１０４及び第二ブロック集約部１０６は、複数のプーリング層を適用する処理を実行するように構成されてもよい。
【０１５４】
また、第一ブロック畳み込み部１０５及び第二ブロック畳み込み部１０７は、複数の畳み込み層を適用する処理を実行するように構成されてもよい。
【０１５５】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な磁気ディスク、光ディスク、半導体メモリ等の記録媒体に格納して提供することも、ネットワークを通して提供することも可能である。
【０１５６】
また、いかなる構成要素についても、単一のコンピュータやサーバによって実現しなければならないものではなく、ネットワークによって接続された複数のコンピュータに分散して実現することも可能である。
【符号の説明】
【０１５７】
１００ 画像認識装置
１０１ ＣＮＮ記憶部
１０２ 入力部
１０３ 畳み込み部
１０４ 第一ブロック集約部
１０５ 第一ブロック畳み込み部
１０６ 第二ブロック集約部
１０７ 第二ブロック畳み込み部
１０８ 認識処理部
１０９ 出力部
１１０ 画像
１２０ 認識結果
【図１】
2019197445.tif 000004
【図２】
2019197445.tif 000005
【図３】
2019197445.tif 000006
【図４】
2019197445.tif 000007
【図５】
2019197445.tif 000008
【図６】
2019197445.tif 000009
【図７】
2019197445.tif 000010
【図８】
2019197445.tif 000011
【図９】
2019197445.tif 000012
【図１０】
2019197445.tif 000013
【図１１】
2019197445.tif 000014