(57)【要約】【課題】画像データを分類する分類モデルを生成し、画像データを分類する画像データ分類装置を提供する。【解決手段】画像データ分類装置１は、畳み込みニューラルネットワーク（ＣＮＮ）の最初の畳み込み層のフィルタ領域ごとにエッジ成分の主方向を推定する領域別主方向推定手段１２と、分類が既知の画像データと分類内容を示す教師データとから、最初の畳み込み層において、フィルタ領域の基準の向きがエッジ成分の主方向に対して一定方向となるようにフィルタ領域を回転させて畳み込み演算を行いＣＮＮを学習して分類モデルを生成する分類モデル学習手段１４と、学習済みの分類モデルを用いて、最初の畳み込み層において、フィルタ領域の基準の向きがエッジ成分の主方向に対して一定方向となるようにフィルタ領域を回転させてＣＮＮの演算を行い画像データを分類する分類手段１６と、を備える。【選択図】図１
2019046334.tif 000002
【特許請求の範囲】
【請求項１】
分類が既知の複数の画像データから、分類が未知の画像データを分類するための畳み込みニューラルネットワークである分類モデルを生成する分類モデル生成装置であって、
前記分類が既知の画像データから、前記畳み込みニューラルネットワークの最初の畳み込み層の畳み込みフィルタを適用するフィルタ領域ごとに、画像のエッジ成分の主方向を推定する領域別主方向推定手段と、
前記分類が既知の画像データと分類内容を示す教師データとから、前記畳み込みニューラルネットワークを学習し前記分類モデルを生成する分類モデル学習手段と、を備え、
前記分類モデル学習手段は、最初の畳み込み層において、前記フィルタ領域ごとに、前記フィルタ領域の予め定めた基準の向きが、前記領域別主方向推定手段で推定されたエッジ成分の主方向に対して一定方向となるようにフィルタ領域を回転させて、畳み込み演算を行うことを特徴とする分類モデル生成装置。
【請求項２】
前記領域別主方向推定手段は、前記フィルタ領域の画素ごとに、当該画素に近接する近接画素の画素値から当該フィルタ領域のエッジ成分の勾配強度および勾配方向を算出し、量子化した勾配方向ごとに累計した勾配強度が最も大きい勾配角度を前記主方向として推定することを特徴とする請求項１に記載の分類モデル生成装置。
【請求項３】
請求項１または請求項２に記載のモデル生成装置で生成された畳み込みニューラルネットワークである分類モデルを用いて、分類が未知の画像データを分類する画像データ分類装置であって、
前記分類が未知の画像データから、前記畳み込みニューラルネットワークの最初の畳み込み層の畳み込みフィルタを適用するフィルタ領域ごとに、画像のエッジ成分の主方向を推定する領域別主方向推定手段と、
前記分類モデルである畳み込みニューラルネットワークにより、前記分類が未知の画像データを分類する分類手段と、を備え、
前記分類手段は、最初の畳み込み層において、前記フィルタ領域ごとに、前記フィルタ領域の予め定めた基準の向きが、前記領域別主方向推定手段で推定されたエッジ成分の主方向に対して一定方向となるようにフィルタ領域を回転させて、畳み込み演算を行うことを特徴とする画像データ分類装置。
【請求項４】
前記領域別主方向推定手段は、前記フィルタ領域の画素ごとに、近接画素の画素値からエッジ成分の勾配強度および勾配方向を算出し、量子化した勾配方向ごとに累計した勾配強度が最も大きい勾配角度を前記主方向として推定することを特徴とする請求項３に記載の画像データ分類装置。
【請求項５】
分類が既知の複数の画像データから、分類が未知の画像データを分類するための畳み込みニューラルネットワークである分類モデルを生成し、分類が未知の画像データを分類する画像データ分類装置であって、
画像データから、前記畳み込みニューラルネットワークの最初の畳み込み層の畳み込みフィルタを適用するフィルタ領域ごとに、画像のエッジ成分の主方向を推定する領域別主方向推定手段と、
前記分類が既知の画像データと分類内容を示す教師データとから、前記畳み込みニューラルネットワークを学習し前記分類モデルを生成する分類モデル学習手段と、
前記分類モデルである畳み込みニューラルネットワークにより、前記分類が未知の画像データを分類する分類手段と、を備え、
前記分類モデル学習手段は、最初の畳み込み層において、前記フィルタ領域ごとに、前記フィルタ領域の予め定めた基準の向きが、前記領域別主方向推定手段で推定されたエッジ成分の主方向に対して一定方向となるようにフィルタ領域を回転させて、畳み込み演算を行い、
前記分類手段は、最初の畳み込み層において、前記フィルタ領域ごとに、前記フィルタ領域の予め定めた基準の向きが、前記領域別主方向推定手段で推定されたエッジ成分の主方向に対して一定方向となるようにフィルタ領域を回転させて、畳み込み演算を行うことを特徴とする画像データ分類装置。
【請求項６】
コンピュータを、請求項１または請求項２に記載の分類モデル生成装置として機能させるための分類モデル生成プログラム。
【請求項７】
コンピュータを、請求項３から請求項５のいずれか一項に記載の画像データ分類装置として機能させるための画像データ分類プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データを分類するための畳み込みニューラルネットワークで構成される分類モデルを生成する分類モデル生成装置、分類モデルにより画像データを分類する画像データ分類装置およびそれらのプログラムに関する。
【背景技術】
【０００２】
従来、画像データを分類する手法として、畳み込みニューラルネットワーク（Convolutional Neural Network：ＣＮＮ）を用いた手法が用いられている（非特許文献１，２等）。
ここで、図１２，図１３を参照して、ＣＮＮの一例についてその概要を説明する。ＣＮＮは、図１２に示すように、入力層Ｉと、隠れ層Ｈと、出力層Ｏとの各層で構成される。各層は、複数のノード（ユニット）をエッジで結んだ構造を有する。なお、図１２ではＣＮＮの説明を簡易にするため、各層の数を少なくし、入力画像の大きさを小さくして説明している。
【０００３】
入力層Ｉは、分類対象となる画像データ（入力画像）を入力する層である。
隠れ層Ｈは、複数の畳み込み層Ｃ（Ｃ１，Ｃ２，…）およびプーリング層Ｐ（Ｐ１，Ｐ２，…）と、全結合層Ｆ（Ｆ１，Ｆ２，…）とを介して、入力画像から特徴量（特徴マップ）を抽出する層である。なお、隠れ層Ｈは、畳み込み層Ｃを連続して設けたり、正規化層を設けたり等、図１２の構成には限定されない。
【０００４】
畳み込み層Ｃは、入力画像、あるいは、前層の出力となる特徴マップに対して、複数の畳み込みフィルタによって画像の畳み込み演算を行うものである。図１２では、例えば、畳み込み層Ｃ１において、２４×２４画素の入力画像に対して、４つの畳み込みフィルタによって畳み込み演算を行うことで、４つの２０×２０画素の特徴マップＭ１（４＠２０×２０）を生成した例を示している。
【０００５】
この畳み込み層Ｃは、図１３に示すように、畳み込みフィルタＣｆの大きさ（ここでは、３×３画素）に対応する前の層（第Ｌ層）の画像に対して、順次、畳み込みフィルタＣｆを移動させて畳み込み処理を行い、活性化関数ｆ（例えば、正規化線形関数ｍａｘ（０，ｘ））による演算を行うことで、次の層（第（Ｌ＋１）層）の画素値を求める。なお、ここでは、畳み込みフィルタＣｆを４つとし、第Ｌ層の画像から、４つの第（Ｌ＋１）層の特徴マップを生成した例を示している。
【０００６】
プーリング層Ｐは、畳み込み層Ｃで生成される特徴マップＭをサブサンプリングするものである。図１２では、例えば、プーリング層Ｐ１において、４つの２０×２０画像の特徴マップＭ１（４＠２０×２０）に対して、水平垂直にそれぞれ１／２のサブサンプリングを行うことで、４つの１０×１０画像の特徴マップＭ２（４＠１０×１０）を生成した例を示している。
【０００７】
全結合層Ｆは、複数の畳み込み層Ｃおよびプーリング層Ｐを介して生成される特徴マップを１次元のベクトルとする多層パーセプトロンである。この全結合層Ｆは、複数の層（Ｆ１，Ｆ２，…）で構成され、各層のノードは次の層のノードとすべて繋がっている。
出力層Ｏは、入力画像の分類結果を確率値として出力する層である。この出力層Ｏは、全結合層Ｆの出力をすべて接続した分類対象と同じノード数を持ち、活性化関数（例えばソフマックス関数）により、ノードごとの確率値を出力する。
このＣＮＮは、学習段階において、分類が既知の複数の画像データにより、各層のパラメータ（ネットワーク）を学習し、分類段階において、学習したパラメータにより、分類が未知の画像データを分類する。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Quoc V Le,”Building high-level features using large scale unsupervised learning”, ICASSP, 2013
【非特許文献２】Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton,”ImageNet classification with deep convolutional neural networks”, NIPS, 2012
【発明の概要】
【発明が解決しようとする課題】
【０００９】
前記したＣＮＮは、画像データから特徴量を抽出するために、畳み込みフィルタを移動させながら畳み込み処理を行っている。この畳み込みフィルタは、画像データの内容に依存せず、常にフィルタの向きは一定である。
例えば、図１４に示すように、同じオブジェクト（一例として、「家」の画像）が異なる画像データ内で傾いた状態であった場合、図１４（ａ），（ｂ），（ｃ）において、オブジェクトの同一領域（「煙突部分」の画像領域）で畳み込みフィルタＣｆにより畳み込み処理を行って特徴量を抽出すると、同じオブジェクトの同一領域であっても、それぞれ異なった特徴量が抽出されることになる。
そのため、従来のＣＮＮは、図１４（ａ），（ｂ），（ｃ）の各画像データに同一のオブジェクトが含まれていても、オブジェクトが傾くことで異なるオブジェクトを含んだ画像データとして分類してしまうことになる。
【００１０】
これらの画像データ内のオブジェクトを同一のオブジェクトとして認識するためには、オブジェクトを様々な方向に傾けた画像データを学習データとして、ＣＮＮを学習する必要がある。
このように、従来のＣＮＮを用いた画像データの分類手法は、様々な方向のオブジェクトを含んだ画像データを学習データとして準備する必要があり、学習データの量と学習に要する時間が膨大になってしまうという問題がある。
【００１１】
そこで、本発明は、１つの方向のオブジェクトの画像データからＣＮＮ（分類モデル）を学習するだけで、画像データ内のオブジェクトの向きに関わらず同一のオブジェクトとして認識し、画像データを分類することが可能な分類モデルを生成する分類モデル生成装置、その分類モデルを用いて画像データを分類する画像データ分類装置およびそれらのプログラムを提供することを課題とする。
【課題を解決するための手段】
【００１２】
前記課題を解決するため、本発明に係る分類モデル生成装置は、分類が既知の複数の画像データから、分類が未知の画像データを分類するための畳み込みニューラルネットワークである分類モデルを生成する分類モデル生成装置であって、領域別主方向推定手段と、分類モデル学習手段と、を備える構成とした。
【００１３】
かかる構成において、分類モデル生成装置は、領域別主方向推定手段によって、分類が既知の画像データから、畳み込みニューラルネットワークの最初の畳み込み層の畳み込みフィルタを適用するフィルタ領域ごとに、画像のエッジ成分の主たる方向（主方向）を推定する。なお、エッジ成分の主方向は、ソーベルフィルタ等を用いて推定することができる。
【００１４】
そして、分類モデル生成装置は、分類モデル学習手段によって、分類が既知の画像データと分類内容を示す教師データとから、畳み込みニューラルネットワークを学習し分類モデルを生成する。このとき、分類モデル学習手段は、最初の畳み込み層において、フィルタ領域ごとに、フィルタ領域の予め定めた基準の向きが、領域別主方向推定手段で推定されたエッジ成分の主方向に対して一定方向となるようフィルタ領域を回転させ、その回転した領域に対して、空間フィルタである畳み込みフィルタを適用して畳み込み演算を行う。
これによって、分類モデル学習手段は、最初の畳み込み層において、画像データ内のオブジェクトの向きに対してほぼ不変な特徴量を抽出することができる。
なお、分類モデル生成装置は、コンピュータを、前記した各手段として機能させるための分類モデル生成プログラムで動作させることができる。
【００１５】
また、前記課題を解決するため、本発明に係る画像データ分類装置は、モデル生成装置で生成された畳み込みニューラルネットワークである分類モデルを用いて、分類が未知の画像データを分類する画像データ分類装置であって、領域別主方向推定手段と、分類手段と、を備える構成とした。
【００１６】
かかる構成において、画像データ分類装置は、領域別主方向推定手段によって、分類が未知の画像データから、畳み込みニューラルネットワークの最初の畳み込み層の畳み込みフィルタを適用するフィルタ領域ごとに、画像のエッジ成分の主方向を推定する。なお、エッジ成分の主方向は、ソーベルフィルタ等を用いて推定することができる。
【００１７】
そして、画像データ分類装置は、分類手段によって、分類モデルである畳み込みニューラルネットワークにより、分類が未知の画像データを分類する。このとき、分類手段は、最初の畳み込み層において、フィルタ領域ごとに、フィルタ領域の予め定めた基準の向きが、領域別主方向推定手段で推定されたエッジ成分の主方向に対して一定方向となるようにフィルタ領域を回転させ、その回転した領域に対して、空間フィルタである畳み込みフィルタを適用して畳み込み演算を行う。
これによって、分類手段は、最初の畳み込み層において、画像データ内のオブジェクトの向きに対してほぼ不変な特徴量を抽出することができる。
なお、画像データ分類装置は、コンピュータを、前記した各手段として機能させるための画像データ分類プログラムで動作させることができる。
【００１８】
また、前記課題を解決するため、本発明に係る画像データ分類装置は、分類が既知の複数の画像データから、分類が未知の画像データを分類するための畳み込みニューラルネットワークである分類モデルを生成し、分類が未知の画像データを分類する画像データ分類装置であって、領域別主方向推定手段と、分類モデル学習手段と、分類手段と、を備える構成としてもよい。
【発明の効果】
【００１９】
本発明は、以下に示す優れた効果を奏するものである。
本発明によれば、最初の畳み込み層において、畳み込みフィルタのフィルタ領域の予め定めた基準の向きを、フィルタ領域に対応する画像のエッジ成分の主方向に対して一定方向となるように回転して畳み込み演算を行うことで、画像データ内のオブジェクトの向きに対してほぼ不変な特徴量を抽出することができる。
これによって、本発明は、１つの方向のオブジェクトの画像データを学習データとして用いて分類モデルを学習すればよく、学習データの量と学習に要する時間を抑えることができる。また、本発明は、画像データ内のオブジェクトが傾いているか否かに関わらず同一のオブジェクトとして認識し、画像データを分類することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態に係る画像データ分類装置の構成を示すブロック構成図である。
【図２】畳み込み層において適用する畳み込みフィルタのフィルタ領域の大きさと移動量を説明するための説明図である。
【図３】ソーベルフィルタの例を示す図であって、（ａ）は縦方向ソーベルフィルタ、（ｂ）は横方向ソーベルフィルタを示す。
【図４】エッジ成分の主方向を求める手法を説明するための説明図であって、（ａ）はフィルタ領域のエッジ成分の勾配強度および勾配方向を画素ごとにベクトルで表した図、（ｂ）は勾配方向を量子化して勾配強度の累計をヒストグラム化した図である。
【図５】フィルタ領域の回転方向を説明するための説明図であって、（ａ）はフィルタ領域の基準方向とエッジ成分の主方向との関係を示す図、（ｂ）はフィルタ領域を回転させた図、（ｃ）は回転したフィルタ領域に対して適用する畳み込みフィルタの対応画素を示す図である。
【図６】フィルタ領域を回転させながらフィルタ領域を移動させて畳み込み処理を行う例を説明するための説明図である。
【図７】本発明の最初の畳み込み層のフィルタ領域を説明するための図であって、（ａ）〜（ｃ）は、同じオブジェクトの同一領域において、ほぼ同じ方向の特徴量が抽出される例を説明するための説明図である。
【図８】本発明の実施形態に係る画像データ分類装置の学習モードの動作を示すフローチャートである。
【図９】本発明の実施形態に係る画像データ分類装置の分類モードの動作を示すフローチャートである。
【図１０】本発明の他の実施形態に係る分類モデル生成装置の構成を示すブロック構成図である。
【図１１】本発明の他の実施形態に係る画像データ分類装置の構成を示すブロック構成図である。
【図１２】畳み込みニューラルネットワークの構造の例を示すネットワーク図である。
【図１３】畳み込みニューラルネットワークの畳み込み層の処理を説明するための説明図である。
【図１４】従来の畳み込みフィルタの領域を説明するための図であって、（ａ）〜（ｃ）は、同じオブジェクトの同一領域において、それぞれ異なった方向の特徴量が抽出される例を説明するための説明図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態について図面を参照して説明する。
＜画像データ分類装置の構成＞
まず、図１を参照して、本発明の実施形態に係る画像データ分類装置１の構成について説明する。
画像データ分類装置１は、画像データを、画像データ内のオブジェクトにより分類するための畳み込みニューラルネットワーク（ＣＮＮ；以下、分類モデルという）を学習し、その分類モデルを用いて、画像データを分類するものである。この画像データ分類装置１は、分類モデルを学習するモード（以下、「学習モードという」）と、画像データを分類するモード（以下、「分類モード」という）の２つの異なる動作モードを有する。
【００２２】
学習モードにおいて、画像データ分類装置１は、分類が既知の画像データと、その分類内容を示す教師データとを学習データとして複数入力し、分類モデルを学習する。ここで、教師データは、例えば、分類対象が人物であれば、それぞれの人物を一意に特定する情報（例えば、人物名等）である。
分類モードにおいて、画像データ分類装置１は、分類が未知の画像データを入力し、分類モデルを用いて分類した結果（分類結果）を出力する。
以下、この２つの動作モードで動作する画像データ分類装置１の構成を詳細に説明する。
【００２３】
画像データ分類装置１は、学習用データ入力手段１０と、分類用データ入力手段１１と、領域別主方向推定手段１２と、領域別主方向記憶手段１３と、分類モデル学習手段１４と、分類モデル記憶手段１５と、分類手段１６と、を備える。
【００２４】
学習用データ入力手段１０は、学習データとして、分類が既知の画像データと、その分類内容を示す教師データとを入力するものである。この学習用データ入力手段１０は、入力した画像データを、領域別主方向推定手段１２および分類モデル学習手段１４に出力する。また、学習用データ入力手段１０は、入力した教師データを、分類モデル学習手段１４に出力する。
【００２５】
分類用データ入力手段１１は、分類が未知の画像データを入力するものである。この分類用データ入力手段１１は、入力した画像データを、領域別主方向推定手段１２および分類手段１６に出力する。
【００２６】
領域別主方向推定手段１２は、分類モデル（ＣＮＮ）の最初の畳み込み層で行う畳み込み処理において畳み込みフィルタを適用する画像領域（フィルタ領域）ごとに、画像データのエッジ成分の主方向を推定するものである。この領域別主方向推定手段１２は、学習モードにおいては画像データを学習用データ入力手段１０から入力し、分類モードにおいては画像データを分類用データ入力手段１１から入力する。
【００２７】
図２に、畳み込み層において適用するフィルタ領域の大きさと移動量の例を示す。ここでは、畳み込みフィルタの大きさ（ここでは、３×３画素）と同じで、畳み込みフィルタの移動幅（ストライド：ここでは、水平・垂直方向ともに１画素）で移動させたフィルタ領域Ｒ，Ｒ，…，Ｒの例を示す。もちろん、畳み込みフィルタの大きさおよび移動幅は、これに限定されるものではない。
領域別主方向推定手段１２は、図２に例示したフィルタ領域Ｒごとに、エッジ成分の主方向を推定する。なお、エッジ成分の主方向を推定する手法は、ソーベル（Ｓｏｂｅｌ）フィルタを用いる等の一般的な手法を用いることができる。
【００２８】
ここで、ソーベルフィルタを用いて、フィルタ領域Ｒのエッジ成分の主方向を推定する手法について簡単に説明する。
まず、領域別主方向推定手段１２は、図３に例示したソーベルフィルタ（（ａ）縦方向ソーベルフィルタ、（ｂ）横方向ソーベルフィルタ）を用い、フィルタ領域Ｒの画素ごとに、近接画素の画素値からエッジ成分の勾配強度および勾配方向を演算する。
ここで、フィルタ領域Ｒの（ｘ，ｙ）座標の画素に、図３（ａ）の縦方向ソーベルフィルタを適用した値をｆｘ（ｘ，ｙ）、図３（ｂ）の横方向ソーベルフィルタを適用した値をｆｙ（ｘ，ｙ）としたとき、領域別主方向推定手段１２は、以下の式（１）により、（ｘ，ｙ）座標の画素のエッジ成分の勾配強度Ｇ（ｘ，ｙ）を求め、以下の式（２）により、（ｘ，ｙ）座標の画素のエッジ成分の勾配方向θ（ｘ，ｙ）を求める。
【００２９】
【数１】
2019046334.tif 000003
【数２】
2019046334.tif 000004
【００３０】
これによって、図４（ａ）に示すように、フィルタ領域Ｒの画素ごとに、エッジ成分の勾配強度（ベクトルの長さ）および勾配方向（ベクトルの方向）を求めることができる。そして、領域別主方向推定手段１２は、図４（ａ）に示した画素ごとのエッジ成分の勾配方向を、図４（ｂ）に示すように量子化（例えば、５°単位で量子化）して、勾配方向ごとの勾配強度を累計したヒストグラムを生成する。
【００３１】
そして、領域別主方向推定手段１２は、図４（ｂ）に示したヒストグラムにおける勾配強度の累計がピークとなる勾配方向を、フィルタ領域Ｒのエッジ成分の主方向として推定する。なお、領域別主方向推定手段１２は、明確なピークを検出できない場合、エッジ成分の主方向が存在しないこととし、例えば、主方向を０°とする。ここで、ヒストグラムに明確なピークが存在するか否かは、例えば、勾配強度の最も大きい累計値に対する２番目に大きい累計値の割合が予め定めた割合よりも大きい場合等とすればよい。
図１に戻って、画像データ分類装置１の構成について説明を続ける。
【００３２】
領域別主方向推定手段１２は、フィルタ領域Ｒ，Ｒ，…，Ｒ（図２）ごとのエッジ成分の主方向を、フィルタ領域Ｒの位置に対応付けて領域別主方向記憶手段１３に記憶する。
この領域別主方向推定手段１２は、画像データのすべてのフィルタ領域Ｒについてエッジ成分の主方向を推定した段階で、推定が完了したことを示す「推定完了通知」を、学習モードにおいては分類モデル学習手段１４に通知し、分類モードにおいては分類手段１６に通知する。
【００３３】
領域別主方向記憶手段１３は、画像データのフィルタ領域の位置と、領域別主方向推定手段１２で推定されたフィルタ領域に対応するエッジ成分の主方向とを対応付けて記憶するものである。この領域別主方向記憶手段１３は、ハードディスク、半導体メモリ等の一般的な記憶媒体で構成することができる。
この領域別主方向記憶手段１３に記憶されているフィルタ領域ごとのエッジ成分の主方向を、学習モードにおいては分類モデル学習手段１４が参照し、分類モードにおいては分類手段１６が参照する。
【００３４】
分類モデル学習手段１４は、学習用データ入力手段１０から入力される複数の学習データ（画像データ、教師データ）と、領域別主方向記憶手段１３に記憶されているフィルタ領域ごとのエッジ成分の主方向とを用いて、分類が未知の画像データを分類する分類モデルである畳み込みニューラルネットワーク（ＣＮＮ）を学習するものである。なお、分類モデルのパラメータ等の初期値は分類モデル記憶手段１５に記憶されており、分類モデル学習手段１４は、学習により、分類モデル記憶手段１５に記憶されている分類モデルのパラメータを更新する。
【００３５】
この分類モデル学習手段１４は、ＣＮＮの最初の畳み込み層における畳み込み処理において、画像データのそれぞれのフィルタ領域を、エッジ成分の主方向に応じて所定角度回転させて、回転後のフィルタ領域に対して、畳み込み演算を行う。
図５（ａ）に示すように、例えば、画像データ内におけるあるフィルタ領域Ｒのエッジ成分の主方向が予め定めた基準方向（ここでは、画像の水平右方向〔０°方向〕とする）から３０°の方向であった場合、分類モデル学習手段１４は、図５（ｂ）に示すように、フィルタ領域Ｒの中心Ｏを基準に３０°回転させた領域を新たなフィルタ領域ＲＮとする。なお、フィルタ領域Ｒの回転は、畳み込み対象のエリアを所定角度回転させるのみであり、領域内の画像を回転させるわけではない。
【００３６】
そして、分類モデル学習手段１４は、図５（ｃ）に示すように、回転前のフィルタ領域Ｒの画素領域（ａ１，ａ２，…，ａ９）の画素値の代わりに、回転後のフィルタ領域ＲＮの画素領域（ｂ１，ｂ２，…，ｂ９）の画素値に対して、畳み込みフィルタを適用して畳み込み演算を行う。なお、厳密には、回転後のフィルタ領域ＲＮの画素領域（ｂ１，ｂ２，…，ｂ９）の画素値とは、フィルタ領域ＲＮの画素領域（ｂ１，ｂ２，…，ｂ９）のそれぞれの中心位置に対応する画素の画素値である。
これによって、分類モデル学習手段１４は、フィルタ領域Ｒのエッジ成分の主方向がどの方向であっても、主方向に対して、畳み込みフィルタを適用する方向を同じにすることができる。
【００３７】
そして、分類モデル学習手段１４は、図６に示すように、画像データのフィルタ領域を順次移動させる際に、エッジ成分の主方向に応じてフィルタ領域を回転させ、回転したフィルタ領域に畳み込みフィルタＣｆを適用して畳み込み処理を行う。
このように、分類モデル学習手段１４は、ＣＮＮの最初の畳み込み層において、すべてのフィルタ領域Ｒで、エッジ成分の主方向に対して畳み込みフィルタの向きが一定となるように畳み込み処理を行う。これにより、画像データ内のオブジェクトが傾いているか否かに関わらず、フィルタ領域ごとにほぼ不変な特徴量としてＣＮＮの次の層に伝播させることができる。
図１に戻って、画像データ分類装置１の構成について説明を続ける。
【００３８】
分類モデル学習手段１４は、最初の畳み込み層においてのみ、エッジ成分の主方向に応じた畳み込み処理を行い、以降の処理（２段目以降の畳み込み層、プーリング層、全結合層、出力層；図１２参照）は、従来のＣＮＮと同じ処理を行う。
そして、分類モデル学習手段１４は、入力された画像データに対応して出力層から出力される分類結果と、教師データである既知の分類結果との誤差をなくす方向（誤差関数の値が“０”に漸近するよう）に、例えば、誤差逆伝播法を用いて、分類モデルのパラメータ（畳み込みフィルタ、全結合層の層間の重み〔重み行列〕等）を更新する。この分類モデルのパラメータの更新は、一般的なＣＮＮの手法であるため、ここでは詳細な説明を省略する。
なお、後述するように、誤差逆伝播法によって、フィルタ領域を所定角度回転させた畳み込みフィルタの更新が可能である。
【００３９】
分類モデル記憶手段１５は、分類モデル学習手段１４で学習した分類モデルを記憶するものである。この分類モデル記憶手段１５は、ハードディスク、半導体メモリ等の一般的な記憶媒体で構成することができる。学習後の分類モデルは、分類手段１６によって参照される。
この分類モデル記憶手段１５には、予め分類モデルの構造（畳み込み層、プーリング層、全結合層等の構造、畳み込みフィルタの大きさ、数、移動幅等）を記憶するとともに、分類モデルのパラメータ（畳み込みフィルタ、全結合層の層間の重み〔重み行列〕等）の初期値を記憶しておく。なお、分類モデルのパラメータは、分類モデル学習手段１４によって、学習モードの動作時に更新される。
【００４０】
分類手段１６は、領域別主方向記憶手段１３に記憶されているフィルタ領域ごとのエッジ成分の主方向と、分類モデル記憶手段１５に記憶されている分類モデルとを用いて、分類用データ入力手段１１から入力される画像データを分類するものである。
この分類手段１６は、分類モデルの最初の畳み込み層における畳み込み処理において、画像データのそれぞれのフィルタ領域を、エッジ成分の主方向に応じて所定角度回転させて、回転後のフィルタ領域に対して、畳み込み演算を行う。
【００４１】
なお、この分類モデルの最初の畳み込み層における畳み込み処理は、分類モデル記憶手段１５に記憶されている学習済みの畳み込み係数を用いる以外は、図５、図６を用いて説明した分類モデル学習手段１４の処理と同じであるため、説明を省略する。
また、分類手段１６は、最初の畳み込み層における畳み込み処理以降、分類モデル記憶手段１５に記憶されている分類モデルを用いて、画像データの特徴を伝播させ、分類モデルの出力層のノードで最も高い確率値となるノードの対応する分類結果を出力する。
【００４２】
以上、本発明の実施形態に係る画像データ分類装置１の構成について説明したが、画像データ分類装置１は、コンピュータを前記した各手段として機能させるためのプログラム（画像データ分類プログラム）で動作させることができる。
【００４３】
以上説明したように画像データ分類装置１を構成することで、画像データ分類装置１は、１つの方向のオブジェクトを含んだ画像データを用いて分類モデルを学習することで、オブジェクトの向きによらずに精度よく画像データを分類することができる。
【００４４】
例えば、図７に示すように、同じオブジェクト（一例として、「家」の画像）が異なる画像データ内で傾いた状態であった場合、画像データ分類装置１は、図７（ａ），（ｂ），（ｃ）において、オブジェクトの同一領域（「煙突部分」の画像領域）で畳み込みフィルタＣｆを適用する際に、エッジ成分の主方向に対して同一方向となるフィルタ領域で畳み込み処理を行う。そのため、画像データ分類装置１は、同じオブジェクトの同一領域において、ほぼ同じ特徴量を抽出することができ、１つの方向のオブジェクトを含んだ画像データを用いて分類モデルを学習すればよい。
【００４５】
＜画像データ分類装置の動作＞
次に、図８，図９を参照して、本発明の実施形態に係る画像データ分類装置１の動作について説明する。ここでは、画像データ分類装置１の動作を、学習モードと、分類モードとに分けて説明する。
【００４６】
（学習モード）
図８を参照（構成については適宜図１参照）して、画像データ分類装置１の学習モードの動作について説明する。
【００４７】
ステップＳ１において、学習用データ入力手段１０は、学習データとして、分類が既知の画像データと、その分類内容を示す教師データとを入力する。
そして、領域別主方向推定手段１２は、以下のステップＳ２からステップＳ６の動作により、ステップＳ１で入力した画像データにおいて、畳み込みフィルタを適用するフィルタ領域ごとにエッジ成分の主方向を推定する。
【００４８】
ステップＳ２において、領域別主方向推定手段１２は、ステップＳ１で入力した画像データに対して、畳み込みフィルタを適用するフィルタ領域の初期位置（例えば、画像の左上）を設定する。
【００４９】
ステップＳ３において、領域別主方向推定手段１２は、フィルタ領域において、画像のエッジ成分の主方向を推定する。具体的には、領域別主方向推定手段１２は、ソーベルフィルタを用いて、フィルタ領域内の画像の各画素の勾配強度および勾配方向を求める。そして、領域別主方向推定手段１２は、勾配方向を量子化し、量子化した勾配方向ごとの勾配強度を累計し、勾配強度の累計がピークとなる勾配方向を、エッジ成分の主方向とする。なお、勾配強度の最も大きい累計値に対する２番目に大きい累計値の割合が予め定めた割合よりも大きい場合は、主方向が存在しないもの（主方向＝０°）とする。
【００５０】
ステップＳ４において、領域別主方向推定手段１２は、フィルタ領域の位置と、ステップＳ３で推定したエッジ成分の主方向とを対応付けて領域別主方向記憶手段１３に記憶する。
ステップＳ５において、領域別主方向推定手段１２は、画像データ内のすべてのフィルタ領域の画像に対して、エッジ成分の主方向を推定したか否かを判定する。
【００５１】
ここで、まだ、すべてのフィルタ領域の画像に対してエッジ成分の主方向を推定していない場合（ステップＳ５でＮｏ）、ステップＳ６において、領域別主方向推定手段１２は、フィルタ領域を、畳み込みフィルタの移動幅に応じた位置に移動させる。そして、領域別主方向推定手段１２は、ステップＳ３に戻って、次のフィルタ領域の画像に対して、エッジ成分の主方向を推定する。
一方、すべてのフィルタ領域の画像に対してエッジ成分の主方向を推定した場合（ステップＳ５でＹｅｓ）、分類モデル学習手段１４がステップＳ７以降の動作を行う。
【００５２】
分類モデル学習手段１４は、以下のステップＳ７からステップＳ１１の動作により、最初の畳み込み層の処理を行う。
【００５３】
ステップＳ７において、分類モデル学習手段１４は、ステップＳ１で入力した画像データに対して、畳み込みフィルタを適用するフィルタ領域の初期位置を設定する。
ステップＳ８において、分類モデル学習手段１４は、フィルタ領域の位置に対応するエッジ成分の主方向を、領域別主方向記憶手段１３から読み出し、フィルタ領域の予め定めた基準方向が主方向となるように回転させた領域を新たなフィルタ領域とする。
【００５４】
ステップＳ９において、分類モデル学習手段１４は、ステップＳ８で主方向の向きに所定角度回転させたフィルタ領域に対して畳み込みフィルタを適用して畳み込み演算を行う。
ステップＳ１０において、分類モデル学習手段１４は、画像データ内のすべてのフィルタ領域に対して、畳み込み演算を行ったか否かを判定する。
【００５５】
ここで、まだ、すべてのフィルタ領域に対して畳み込み演算を行っていない場合（ステップＳ１０でＮｏ）、ステップＳ１１において、分類モデル学習手段１４は、フィルタ領域を、畳み込みフィルタの移動幅に応じた位置に移動させる。そして、分類モデル学習手段１４は、ステップＳ８に戻って、次のフィルタ領域に対して、畳み込み演算を行う。
【００５６】
一方、すべてのフィルタ領域に対して畳み込み演算を行った場合（ステップＳ１０でＹｅｓ）、分類モデル学習手段１４は、ステップＳ１２に動作を進める。なお、図示は省略するが、最初の畳み込み層において、複数の畳み込みフィルタを用いる場合、分類モデル学習手段１４は、ステップＳ７からステップＳ１１までの動作を、畳み込みフィルタの数だけ実行する。
【００５７】
ステップＳ１２において、分類モデル学習手段１４は、ステップＳ１１までの動作で最初の畳み込み層により生成された特徴マップに対して、後段の２段目以降の畳み込み層、プーリング層、全結合層、出力層の処理を実行する。
ステップＳ１３において、分類モデル学習手段１４は、ステップＳ１２の出力層から出力される分類結果と、ステップＳ１で入力した教師データとの誤差から、誤差逆伝播法を用いて、分類モデルのパラメータを更新し、分類モデル記憶手段１５に記憶する。
【００５８】
ステップＳ１４において、分類モデル学習手段１４は、分類モデルの学習を完了したか否かを判定する。ここで、分類モデルの学習の判定は、ステップＳ１３における誤差が予め定めた閾値よりも小さくなった場合である。
ここで、分類モデルの学習が完了していない場合（ステップＳ１４でＮｏ）、ステップＳ１において、学習用データ入力手段１０が新たな学習データを入力することで、分類モデル学習手段１４は、分類モデルの学習を継続する。
一方、分類モデルの学習が完了した場合（ステップＳ１４でＹｅ）、画像データ分類装置１は、動作を終了する。
【００５９】
以上の動作によって、画像データ分類装置１は、ＣＮＮの分類モデルを学習する際に、最初の畳み込み層の処理において、フィルタ領域のエッジ成分の主方向に対して、一定方向となるように畳み込みフィルタを適用して畳み込み処理を行う。
これによって、画像データ分類装置１は、画像データのオブジェクトの傾きに対してほぼ不変な特徴量を抽出して学習を行うことができるため、様々な向きでオブジェクトが映った画像データを学習データとする必要がなく、学習データの量と学習時間とを従来に比べて軽減することができる。
【００６０】
（分類モード）
次に、図９を参照（構成については適宜図１参照）して、画像データ分類装置１の画像データの分類モードの動作について説明する。
【００６１】
ステップＳ２０において、分類用データ入力手段１１は、分類が未知の画像データを入力する。
そして、領域別主方向推定手段１２は、ステップＳ２１からステップＳ２５の動作により、ステップＳ２０で入力した画像データにおいて、畳み込みフィルタを適用するフィルタ領域ごとにエッジ成分の主方向を推定する。なお、ステップＳ２１からステップＳ２５の動作は、図８で説明したステップＳ２からステップＳ６の動作と同じであるため、説明を省略する。
【００６２】
そして、分類手段１６は、ステップＳ２６からステップＳ３０の動作により、最初の畳み込み層の処理を行う。なお、ステップＳ２６からステップＳ３０の動作は、動作主体が分類モデル学習手段１４から分類手段１６に替わるだけ、図８で説明したステップＳ７からステップＳ１１の動作と同じであるため、説明を省略する。
【００６３】
ステップＳ３１において、分類手段１６は、ステップＳ３０までの動作で最初の畳み込み層により生成された特徴マップに対して、後段の２段目以降の畳み込み層、プーリング層、全結合層、出力層の処理を実行する。
ステップＳ３２において、分類手段１６は、ステップＳ３１における出力層のノードで最も高い確率値となるノードの対応する分類結果を出力する。
【００６４】
以上の動作によって、画像データ分類装置１は、ＣＮＮの分類モデルにより画像データを分類する際に、最初の畳み込み層の処理において、フィルタ領域のエッジ成分の主方向に対して、一定方向となるように畳み込みフィルタを適用して畳み込み処理を行う。
これによって、画像データ分類装置１は、画像データのオブジェクトの傾きに対してほぼ不変な特徴量を抽出するため、異なる向きで同じオブジェクトが映った画像データであっても、同じ内容として画像データを分類することができる。
【００６５】
＜変形例＞
以上、本発明の実施形態に係る画像データ分類装置１の構成および動作について説明したが、本発明は、この実施形態に限定されるものではない。
（変形例１）
画像データ分類装置１は、分類モデルを学習するモード（学習モード）と、画像データを分類するモード（分類モード）との２つの異なる動作モードの処理を１つの装置で実行するものである。しかし、これらの処理は、別々の装置で行うようにしても構わない。
【００６６】
具体的には、分類モデルを学習する装置は、図１０に示す分類モデル生成装置２として構成することができる。
分類モデル生成装置２は、図１０に示すように、学習用データ入力手段１０と、領域別主方向推定手段１２と、領域別主方向記憶手段１３と、分類モデル学習手段１４と、分類モデル記憶手段１５と、を備える。この構成は、図１で説明した画像データ分類装置１の構成から、分類用データ入力手段１１と、分類手段１６とを削除したものである。
この分類モデル生成装置２は、分類モデルを学習する動作のみを行う。分類モデル生成装置２の動作は、図８で説明した動作と同じである。
なお、分類モデル生成装置２は、コンピュータを前記した各手段として機能させるためのプログラム（分類モデル生成プログラム）で動作させることができる。
【００６７】
（変形例２）
また、分類モデルを用いて、画像データを分類する装置は、図１１に示す画像データ分類装置１Ｂとして構成することができる。
画像データ分類装置１Ｂは、分類用データ入力手段１１と、領域別主方向推定手段１２と、領域別主方向記憶手段１３と、分類モデル記憶手段１５と、分類手段１６と、を備える。この構成は、図１で説明した画像データ分類装置１の構成から、学習用データ入力手段１０と、分類モデル学習手段１４とを削除したものである。また、分類モデル記憶手段１５に記憶する分類モデルは、図１０の分類モデル生成装置２で生成されたものである。
この画像データ分類装置１Ｂは、画像データを分類する動作のみを行う。画像データ分類装置１Ｂの動作は、図９で説明した動作と同じである。
なお、画像データ分類装置１Ｂは、コンピュータを前記した各手段として機能させるためのプログラム（画像データ分類プログラム）で動作させることができる。
【００６８】
このように、分類モデルを学習する動作と、分類モデルを用いて画像データを分類する動作とを、異なる装置（分類モデル生成装置２，画像データ分類装置１Ｂ）で動作させることで、１つの分類モデル生成装置２で生成した分類計モデルを、複数の画像データ分類装置１Ｂで利用することが可能になる。
【００６９】
（変形例３）
また、ここでは、領域別主方向推定手段１２がソーベルフィルタを用いてエッジ成分の主方向を推定することとしたが、これに限定されるものではない。
例えば、領域別主方向推定手段１２は、ＳＩＦＴ（Scale-Invariant Feature Transform）、ＳＵＲＦ（Speed-Up Robust Features）等の画像データの特徴量であるエッジ成分の勾配強度、勾配方向を用いてもよい。あるいは、畳み込みフィルタの大きさの画像を、予めエッジ成分の主方向が既知の複数のパターンで機械学習した結果を用いて、領域別主方向推定手段１２が、入力された画像データの主方向を推定することとしてもよい。
【００７０】
＜畳み込みフィルタの更新について＞
最後に、分類モデル学習手段１４（図１）において、誤差逆伝播法によって、フィルタ領域を所定角度だけ回転させた畳み込みフィルタの更新（学習）が可能であることを説明する。
ＣＮＮにおける第Ｌ層の座標（ｉ，ｊ）における出力値（重み付き和）をｕｉｊＬ、活性化関数をｆとすると、活性（活性化関数の値）ｚｉｊＬは、以下の式（３）で表すことができる。
【００７１】
【数３】
2019046334.tif 000005
【００７２】
ここで、畳み込みフィルタの係数をｈｐｑとすると従来の畳み込み層における出力値ｕｉｊＬは、以下の式（４）で表すことができる。なお、（ｐ，ｑ）は、畳み込みフィルタの座標を示す。
【００７３】
【数４】
2019046334.tif 000006
【００７４】
一方、本発明において、畳み込みフィルタの畳み込み対象となる座標（ｉ＋ｐ，ｊ＋ｑ）はエッジ成分の主方向に応じて所定角度回転することになる。この回転角度は、領域別主方向推定手段１２によって、分類モデル学習手段１４におけるＣＮＮの学習以前に既知の情報である。ここで、回転後の座標を（（ｉ＋ｐ）′，（ｊ＋ｑ）′）とすると、分類モデル学習手段１４における最初の畳み込み層の出力値ｕｉｊＬは、以下の式（５）で表すことができる。
【００７５】
【数５】
2019046334.tif 000007
【００７６】
本発明において、誤差逆伝播法によって所定角度回転させた畳み込みフィルタの更新が可能であるか否かは、誤差関数が微分可能（誤差関数の勾配を求めることが可能）であるか否かと同義である。以下、本発明において、誤差関数が微分可能であることを示す。
ここで、誤差関数をＥとする。誤差関数Ｅの勾配は、偏微分の連鎖法則から以下の式（６）で表すことができる。
【００７７】
【数６】
2019046334.tif 000008
【００７８】
ここで、誤差関数Ｅを重み付き和ｕｉｊＬで偏微分した結果を以下の式（７）に示すδｉｊＬとする。
【００７９】
【数７】
2019046334.tif 000009
【００８０】
すると、前記式（５）から、前記式（６）は以下の式（８）に書き換えることができる。
【００８１】
【数８】
2019046334.tif 000010
【００８２】
この式（８）のｚ（ｉ＋ｐ）′，（ｊ＋ｑ）′Ｌ−１は、前の層（第（Ｌ−１）層）の出力値であり、回転後の座標の値は、エッジ成分の主方向がすでに決定されていることから、確定した値となる。そこで、誤差伝播を行うためには、δｉｊＬを求めることができればよいことになる。なお、δｉｊＬを求めることができか否かは、畳み込みフィルタが所定角度回転しているか否かによらず、従来と同様の手法で求めることができる。
まず、偏微分の連鎖法則によって、δｉｊＬは、以下の式（９）のように変形することができる。なお、座標（ｓ，ｔ）における重み付き和をｕｓｔＬとする。
【００８３】
【数９】
2019046334.tif 000011
【００８４】
ここで、前記式（３）および前記式（５）から、前記式（９）の（∂ｕｓｔＬ＋１／∂ｕｉｊＬ）は、以下の式（１０）に変形することができる。
【００８５】
【数１０】
2019046334.tif 000012
【００８６】
前記式（９）を前記式（１０）で置き換えると、以下の式（１１）となる。
【００８７】
【数１１】
2019046334.tif 000013
【００８８】
この式（１１）における∂（…）／∂ｕｉｊＬは、ｕｉｊＬで偏微分していることから、ｕｓ＋ｐ，ｔ＋ｑＬ＝ｕｉｊＬ、すなわち、ｓ＋ｐ＝ｉ，ｔ＋ｑ＝ｊとなる（ｓ，ｔ）および（ｐ，ｑ）の組み合わせだけを考えればよい（他の値は“０”になる）ため、前記式（１１）は以下の式（１２）となる。
【００８９】
【数１２】
2019046334.tif 000014
【００９０】
ここで、ｆ′（…）は、既知の活性化関数ｆの微分であり、δｉ−ｐ，ｊ−ｑＬ＋１は、後ろの層から伝播される値であることから、δｉｊＬを求めることができる。
このように、本発明によっても、誤差関数Ｅは微分可能であり、ＣＮＮにおける順伝播および逆伝播の処理を行うことで、分類モデルを学習することができる。
【符号の説明】
【００９１】
１，１Ｂ  画像データ分類装置
２      分類モデル生成装置
１０    学習用データ入力手段
１１    分類用データ入力手段
１２    領域別主方向推定手段
１３    領域別主方向記憶手段
１４    分類モデル学習手段
１５    分類モデル記憶手段
１６    分類手段
【図１】
2019046334.tif 000015
【図２】
2019046334.tif 000016
【図３】
2019046334.tif 000017
【図４】
2019046334.tif 000018
【図５】
2019046334.tif 000019
【図６】
2019046334.tif 000020
【図７】
2019046334.tif 000021
【図８】
2019046334.tif 000022
【図９】
2019046334.tif 000023
【図１０】
2019046334.tif 000024
【図１１】
2019046334.tif 000025
【図１２】
2019046334.tif 000026
【図１３】
2019046334.tif 000027
【図１４】
2019046334.tif 000028