(57)【要約】      （修正有）【課題】階層型ニューラルネットワークによる画像認識の精度を向上する画像認識装置、画像認識方法、コンピュータプログラム、及び製品監視システムを提供する。【解決手段】画像認識装置１０は、原画像に所定のデータ処理を施して入力データを生成するデータ生成部３を有する演算処理部１と、生成された入力データに含まれるオブジェクトの種類を認識する階層型ニューラルネットワークを有する画像処理部２と、を備える。画像処理部は、原画像がサンプル画像である場合は、ネットワークの認識結果に基づいて当該ネットワークのパラメータを学習する処理を行い、原画像が認識の対象画像である場合は、ネットワークの認識結果を出力する処理を行う。データ生成部が行うデータ処理は、原画像に対して回転及び反転のうちの少なくとも１つの不変性を付与する処理である。【選択図】図１
2018165948.tif 000002
【特許請求の範囲】
【請求項１】
原画像に所定のデータ処理を施して入力データを生成するデータ生成部と、
生成された前記入力データに含まれるオブジェクトの種類を認識する階層型ニューラルネットワークを有する画像処理部と、を備える画像認識装置であって、
前記画像処理部は、前記原画像がサンプル画像である場合は、前記ネットワークの認識結果に基づいて当該ネットワークのパラメータを学習する処理を行い、前記原画像が認識の対象画像である場合は、前記ネットワークの認識結果を出力する処理を行い、
前記データ生成部が行う前記データ処理は、前記原画像に対して回転及び反転のうちの少なくとも１つの不変性を付与する処理である画像認識装置。
【請求項２】
前記データ生成部が行う前記データ処理には、下記に定義する第１処理及び第２処理が含まれる請求項１に記載の画像認識装置。
第１処理：原画像に対して回転及び反転のうちの少なくとも１つの不変性を有する画像フィルタを生成する処理
第２処理：第１処理で生成した画像フィルタを原画像に畳み込む処理
【請求項３】
前記画像フィルタは、前記原画像の所定点を原点とする極座標で定義される任意の画素点の色ベクトルを、当該画素点を起点として所定角度で開く任意の方向に分割した、複数の色ベクトルに含まれる要素よりなる請求項２に記載の画像認識装置。
【請求項４】
前記画像フィルタは、前記原画像の所定点を原点とする極座標で定義される任意の画素点の色ベクトルを、当該画素点を起点として半径方向及び接線方向に分割した、２つの色ベクトルに含まれる要素よりなる請求項２又は請求項３に記載の画像認識装置。
【請求項５】
前記階層型ニューラルネットワークは、畳み込みニューラルネットワークである請求項１〜請求項４のいずれか１項に記載の画像認識装置。
【請求項６】
種類が認識される前記オブジェクトは、手書き文字、人間、動物、植物、及び製品のうちの少なくとも１つの物体よりなる請求項１〜請求項５のいずれか１項に記載の画像認識装置。
【請求項７】
原画像に所定のデータ処理を施して入力データを生成するデータ生成部と、
生成された前記入力データに含まれるオブジェクトを認識する階層型ニューラルネットワークを有する画像処理部と、を備える画像認識装置として、コンピュータを機能させるためのコンピュータプログラムであって、
前記データ生成部が、前記データ処理として、前記原画像に対して回転及び反転のうちの少なくとも１つの不変性を付与する処理を行うステップと、
前記画像処理部が、前記原画像がサンプル画像である場合は、前記ネットワークの認識結果に基づいて当該ネットワークのパラメータを学習する処理を行うステップと、
前記画像処理部が、前記原画像が認識の対象画像である場合は、前記ネットワークの認識結果を出力するステップと、を含むコンピュータプログラム。
【請求項８】
原画像に所定のデータ処理を施して入力データを生成するデータ生成部と、
生成された前記入力データに含まれるオブジェクトを認識する階層型ニューラルネットワークを有する画像処理部と、を備える画像認識装置が実行する画像認識方法であって、
前記データ生成部が、前記データ処理として、前記原画像に対して回転及び反転のうちの少なくとも１つの不変性を付与する処理を行うステップと、
前記画像処理部が、前記原画像がサンプル画像である場合は、前記ネットワークの認識結果に基づいて当該ネットワークのパラメータを学習する処理を行うステップと、
前記画像処理部が、前記原画像が認識の対象画像である場合は、前記ネットワークの認識結果を出力するステップと、を含む画像認識方法。
【請求項９】
複数の製品を撮影する撮影装置と、
撮影された前記複数の製品のうちのいずれかを外部に取り出すロボット装置と、
取り出すべき前記製品を前記ロボット装置に指示する制御装置と、を備える製品監視システムであって、
前記制御装置は、請求項１〜請求項６のいずれか１項に記載の画像認識装置を含み、
前記画像認識装置は、不良品と認識した前記製品の取り出しを前記ロボット装置に指示する製品監視システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像認識装置、画像認識方法、コンピュータプログラム、及び製品監視システムに関する。具体的には、階層型畳み込みニューラルネットワークを用いた画像認識の精度を向上する画像処理技術に関する。
【背景技術】
【０００２】
近年、深層学習（Deep Learning）による画像認識の性能が飛躍的に向上している。深層学習は、多層の階層型ニューラルネットワークを用いた機械学習の総称である。多層の階層型ニューラルネットワークとしては、例えば、畳み込みニューラルネットワーク（以下、「ＣＮＮ」ともいう。）が用いられる。
【０００３】
ＣＮＮは、局所領域の畳み込み層とプーリング層とが繰り返される多層の積層構造を有しており、かかる積層構造により画像認識の性能が向上するとされている。
非特許文献１及び２に示すように、畳み込みニューラルネットワークを用いた深層学習により、オブジェクトのクラスを認識することも既に行われている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】"ImageNet Classification with Deep Convolutional Neural Networks" A. krizhevsky et al. in: Proc. Adv. Neural Inf. Proc. Syst. (NIPS), 2012, PP.1097-1105
【非特許文献２】"Very Deep Convolutional Networks for Large-Scale Image Recognition" K.Symonyan et al. arXiv:1409.1556v6 [cs.CV] 10 Apr.2015
【発明の概要】
【発明が解決しようとする課題】
【０００５】
畳み込みニューラルネットワークを用いた画像認識では、原画像に前処理を施すことなく、原画像の画素値（ＲＧＢ値）をそのままネットワークに入力するか、画素値に主成分分析（Principle Component Analysis）が行われる。
このように、従来では、原画像の画素値（生データ）をそのまま使用するか、原画像から単一の特徴因子を抽出する前処理を行うだけであるから、認識精度を向上するには、多数のサンプル画像及び同じクラスの多形態のサンプル画像を収集する必要がある。
【０００６】
特に、回転又は反転したオブジェクトを含むサンプル画像は稀少であるから、通常の向きのサンプル画像を用いてＣＮＮの学習を重ねても、回転又は反転したオブジェクトの認識精度を余り向上できないという問題もある。
本発明は、かかる従来の問題点に鑑み、階層型ニューラルネットワークによる画像認識の精度を向上することを目的とする。
【課題を解決するための手段】
【０００７】
（１）  本発明の画像認識装置は、原画像に所定のデータ処理を施して入力データを生成するデータ生成部と、生成された前記入力データに含まれるオブジェクトの種類を認識する階層型ニューラルネットワークを有する画像処理部と、を備える画像認識装置であって、前記画像処理部は、前記原画像がサンプル画像である場合は、前記ネットワークの認識結果に基づいて当該ネットワークのパラメータを学習する処理を行い、前記原画像が認識の対象画像である場合は、前記ネットワークの認識結果を出力する処理を行い、前記データ生成部が行う前記データ処理は、前記原画像に対して回転及び反転のうちの少なくとも１つの不変性を付与する処理である。
【０００８】
本発明の画像認識装置によれば、データ生成部が行うデータ処理は、原画像に対して回転及び反転のうちの少なくとも１つの不変性を付与する処理よりなる。
このため、同数のサンプル画像により学習した場合には、上記のデータ処理を施さずに原画像をそのまま入力データとする用いる場合に比べて、階層型ニューラルネットワークによる画像認識の精度を向上することができる（図１０参照）。また、回転又は反転したオブジェクトでも正確に認識できようになる。
【０００９】
（２）  本発明の画像認識装置において、具体的には、前記データ生成部が行う前記データ処理には、下記に定義する第１処理及び第２処理が含まれる。
第１処理：原画像に対して回転及び反転のうちの少なくとも１つの不変性を有する画像フィルタを生成する処理
第２処理：第１処理で生成した画像フィルタを原画像に畳み込む処理
【００１０】
（３）  より具体的には、前記画像フィルタは、前記原画像の所定点を原点とする極座標で定義される任意の画素点の色ベクトルを、当該画素点を起点として所定角度で開く任意の方向に分割した、複数の色ベクトルに含まれる要素よりなる。
その理由は、極座標表示の画素点の色ベクトルを上記のように分割した複数の色ベクトルは、原点回りに任意の角度で回転しても等価なままであり、原画像に対して回転及び反転のうちの少なくとも１つの不変性を有するからである。
【００１１】
（４）  更に具体的には、前記画像フィルタは、前記原画像の所定点を原点とする極座標で定義される任意の画素点の色ベクトルを、当該画素点を起点として半径方向及び接線方向に分割した、２つの色ベクトルに含まれる要素よりなることが好ましい。
その理由は、色ベクトルを半径方向と接線方向の２方向に分解すると、計算パラメータの数量を最小限にすることができ、データ生成部の処理負荷を低減できるからである。
【００１２】
（５）  本発明の画像認識装置において、具体的には、前記階層型ニューラルネットワークは、畳み込みニューラルネットワークよりなる。
その理由は、畳み込みニューラルネットワークは、階層型ニューラルネットワークの中でも画像認識に高い性能を実現できるからである。
【００１３】
（６）  本発明の画像認識装置において、種類が認識される前記オブジェクトは、手書き文字、人間、動物、植物、及び製品のうちの少なくとも１つの物体であればよい。
その理由は、本発明の特徴である、原画像に対して回転及び反転のうちの少なくとも１つの不変性を付与するデータ処理は、原画像に含まれるオブジェクトの属性に関係なく、種々のオブジェクトに適用可能であると考えられるからである。従って、本発明の画像認識装置の適用範囲は、特定のオブジェクトの認識に限定されるものではない。
【００１４】
（７）  本発明のコンピュータプログラムは、上述の（１）〜（６）のいずれかに記載の画像認識装置として、コンピュータを機能させるためのコンピュータプログラムに関する。
従って、本発明のコンピュータプログラムは、上述の（１）〜（６）のいずれかに記載の画像認識装置と同様の作用効果を奏する。
【００１５】
（８）  本発明の画像認識方法は、上述の（１）〜（６）のいずれかに記載の画像認識装置が実行する画像認識方法に関する。
従って、本発明の画像認識方法は、上述の（１）〜（６）のいずれかに画像認識装置と同様の作用効果を奏する。
【００１６】
（９）  本発明の製品監視システムは、複数の製品を撮影する撮影装置と、撮影された前記複数の製品のうちのいずれかを外部に取り出すロボット装置と、取り出すべき前記製品を前記ロボット装置に指示する制御装置と、を備える製品監視システムであって、前記制御装置は、上述の（１）〜（６）のいずれかに記載の画像認識装置を含み、前記画像認識装置は、不良品と認識した前記製品の取り出しを前記ロボット装置に指示する。
【００１７】
本発明の製品監視システムによれば、画像認識装置が、不良品と認識した製品の取り出しをロボット装置に指示するので、適当数のサンプル画像により画像認識装置を学習させることにより、不良品の取り出しを自動的かつ正確に行うことができる。
【００１８】
本発明は、上記のような特徴的な構成を備えるシステム及び装置として実現できるだけでなく、かかる特徴的な構成をコンピュータに実行させるためのコンピュータプログラムとして実現することができる。
また、上記の本発明は、システム及び装置の一部又は全部を実現する、１又は複数の半導体集積回路として実現することができる。
【発明の効果】
【００１９】
本発明によれば、階層型ニューラルネットワークによる画像認識の精度を向上することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態に係る画像識別装置のブロック図である。
【図２】ＣＮＮ処理部に含まれるＣＮＮの概略構成図である。
【図３】畳み込み層の処理内容の概念図である。
【図４】受容野の構造の概念図である。
【図５】データ生成部による第１処理の説明図である。
【図６】データ生成部による第２処理の説明図である。
【図７】任意の画素点を所定角度だけ回転させた回転点等の説明図である。
【図８】ＣＮＮ処理部に構築される深層ＣＮＮの構造図である。
【図９】シミュレーション実験に用いた手書き文字の一例を示す図である。
【図１０】文字クラスごとの認識精度の試験結果を表すグラフである。
【図１１】本発明の実施形態に係る製品監視システムの全体構成図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照して、本発明の実施形態の詳細を説明する。なお、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【００２２】
〔画像処理装置の全体構成〕
図１は、本発明の実施形態に係る画像認識装置１０のブロック図である。
図１に示すように、本実施形態の画像認識装置１０は、例えば、図示しないＰＣ（Personal Computer）に搭載された演算処理部１と画像処理部２と備える。
【００２３】
演算処理部１は、ＣＰＵ（Central Processing Unit）を含む。演算処理部１のＣＰＵの数は１つでも複数でもよく、ＦＰＧＡ（Field-Programmable Gate Array）やＡＳＩＣ（Application Specific Integrated Circuit）などの集積回路を含んでもよい。
演算処理部１は、ＲＡＭ（Random Access Memory）を含む。ＲＡＭは、ＳＲＡＭ（Static ＲＡＭ）又はＤＲＡＭ（Dynamic ＲＡＭ）などのメモリ素子で構成され、ＣＰＵなどが実行するコンピュータプログラム及びその実行に必要なデータを一時的に記憶する。
【００２４】
画像処理部２は、ＧＰＵ（Graphics Processing Unit）を含む。画像処理部２のＧＰＵの数は１つでも複数でもよく、ＦＰＧＡやＡＳＩＣなどの集積回路を含んでもよい。
画像処理部２は、ＲＡＭを含む。ＲＡＭは、ＳＲＡＭ又はＤＲＡＭなどのメモリ素子で構成され、ＧＰＵなどが実行するコンピュータプログラム及びその実行に必要なデータを一時的に記憶する。
【００２５】
演算処理部１は、メモリに記録された演算処理のコンピュータプログラムを、ＣＰＵが実行することにより実現される機能部として、ＣＮＮ処理部４への入力画像を生成するデータ生成部３を備える。
データ生成部３は、ラベル付きのサンプル画像７又は識別対象の撮影画像（以下、「対象画像」ともいう。）８に対して、下記の第１及び第２処理を施すことにより、ＣＮＮ処理部４に対する入力画像（以下、「入力データ」ともいう。）を生成する。
【００２６】
第１処理：サンプル画像７又は対象画像８から、当該画像７，８に対して回転及び反転の不変性を有する画像フィルタ９を生成する処理（図５参照）
第２処理：サンプル画像７又は対象画像８に対して、第１処理で生成した画像フィルタ９を畳み込む処理（図６参照）
【００２７】
以下において、データ生成部３に入力される「サンプル画像」及び「対象画像」の総称を、「原画像」ともいう。原画像は、処理される（訓練若しくは認識）オブジェクト領域画像のみを指す。
データ生成部３は、原画像７，８に対して第１及び第２処理を行って得られた入力データを、後段の画像処理部２におけるＣＮＮ処理部４に入力する。
【００２８】
画像処理部２は、メモリに記録された画像処理のコンピュータプログラムを、ＧＰＵが実行することにより実現される機能部として、ＣＮＮ処理部４、学習部５、及び認識部６を備える。
ＣＮＮ処理部４は、入力データに含まれるオブジェクトの種類の認識（例えば、入力画像に含まれる文字の種類の認識など）を実行し、その認識結果（具体的には、分類クラスごとの確率など）を学習部５又は認識部６に入力する。
【００２９】
具体的には、ラベル付きのサンプル画像７を用いてＣＮＮを訓練する場合には、ＣＮＮ処理部４は、サンプル画像７の分類クラスを特定し、特定した分類クラスを学習部５に入力する。
他方、学習済みのＣＮＮ処理部４に対象画像８の分類クラスを特定させる場合、すなわち、画像処理部２が識別器として動作する場合には、ＣＮＮ処理部４は、特定した分類クラスを認識部６に入力する。
【００３０】
学習部５は、入力された分類クラスに基づいて、ＣＮＮ処理部４が保持するパラメータ（重みやバイアス）を更新し、更新後のパラメータをＣＮＮ処理部４に記憶させる。
認識部６は、入力された分類クラスに基づいて、認識結果を出力する。具体的には、ＣＮＮ処理部４から入力された最も高い確率の分類クラスを、対象画像８の分類クラスとして出力する。認識部６が出力する認識結果は、ＰＣのディスプレイなどに表示されることにより、ＰＣのオペレータに通知される。
【００３１】
〔ＣＮＮ処理部の処理内容〕
（ＣＮＮの構成例）
図２は、ＣＮＮ処理部４に含まれるＣＮＮの概略構成図である。
図２に示すように、ＣＮＮ処理部４に構築されるＣＮＮは、畳み込み層（「ダウンサンプリング層」ともいう。）Ｃ１，Ｃ２、プーリング層Ｐ１，Ｐ２及び全結合層Ｆの３つの演算処理層と、ＣＮＮの出力層である最終層Ｅとを備える。
【００３２】
畳み込み層Ｃ１，Ｃ２の後にはプーリング層Ｐ１，Ｐ２が配置され、最後のプーリング層Ｐ２の後に全結合層Ｆが配置される。ＣＮＮの最終層Ｅには、予め設定された分類クラス数と同数（図２では１０個）の最終ノードが含まれる。
図２では、畳み込み層Ｃ１，Ｃ２とこれに対応するプーリング層Ｐ１，Ｐ２が２つの場合を例示している。もっとも、畳み込み層とプーリング層は、３つ以上であってもよい。また、全結合層Ｆは少なくとも１つ配置される。
【００３３】
ある層Ｃ１，Ｐ１，Ｃ２，Ｐ２におけるｊ番目のノードは、直前の層のｍ個のノードからそれぞれ入力ｘｉ（ｉ＝１，２，……ｍ）を受け取り、これらの重み付き和にバイアスを加算した中間変数ｕｊを計算する。すなわち、中間変数ｕｊは次式で計算される。なお、次式において、ｗｉｊは重みであり、ｂｊはバイアスである。
【数１】
2018165948.tif 000003
【００３４】
非線形関数である活性化関数ａ（・）に中間変数ｕｊを適用した応答ｙｊ、すなわち、ｙｊ＝ａ（ｕｊ）がこの層のノードの出力となり、この出力は次の層に入力される。
活性化関数ａには、「シグモイド関数」、或いは、ａ（ｘｊ）＝ｍａｘ（ｘｊ，０）などが使用される。特に、後者の活性化関数は、「ＲｅＬＵ（Rectified Linear Unit）」と呼ばれる。ＲｅＬＵは、収束性の良さや学習速度の向上などに貢献することから、近年よく使用される。
【００３５】
ＣＮＮの出力層付近には、隣接層間のノードをすべて結合した全結合層Ｆが１層以上配置される。ＣＮＮの出力を与える最終層Ｅは、通常のニューラルネットワークと同様に設計される。
入力画像のクラス分類を目的とする場合は、分類クラス数と同数のノードが最終層Ｅに配置され、最終層Ｅの活性化関数ａには「ソフトマックス関数」が用いられる。
【００３６】
具体的には、ｎ個のノードへの入力ｕｊ（ｊ＝１，２，……ｎ）をもとに、次式が算出される。認識時には、ｐｊが最大値をとるノードのインデックスｊ＝ａｒｇｍａｘｊｐｊが推定クラスとして選択される。
【数２】
2018165948.tif 000004
【００３７】
（畳み込み層の処理内容）
図３は、畳み込み層Ｃ１，Ｃ２の処理内容の概念図である。
図３に示すように、畳み込み層Ｃ１，Ｃ２の入力は、縦長のサイズがＳ×Ｓ画素のＮ枚（Ｎチャンネル）の形式となっている。
以下、この形式の画像をＳ×Ｓ×Ｎと記載する。また、Ｓ×Ｓ×Ｎの入力をｘｉｊｋ（ただし、(i,j,k）∈[0,S-1],[0,S-1],[1,N]）と記載する。
【００３８】
ＣＮＮにおいて、最初の入力層（畳み込み層Ｃ１）のチャンネル数は、入力画像がグレースケールならばＮ＝１となり、カラーならばＮ＝３（ＲＧＢの３チャンネル）となる。
畳み込み層Ｃ１，Ｃ２では、入力ｘｉｊｋにフィルタ（「カーネル」ともいう。）を畳み込む計算が実行される。
【００３９】
この計算は、一般的な画像処理におけるフィルタの畳み込み、例えば、小サイズの画像を入力画像に２次元的に畳み込んで画像をぼかす処理（ガウシアンフィルタ）や、エッジを強調する処理（鮮鋭化フィルタ）と基本的に同様の処理である。
具体的には、各チャンネルｋ（ｋ＝１〜Ｎ）の入力ｘｉｊｋのサイズＳ×Ｓの画素に、Ｌ×Ｌのサイズの２次元フィルタを畳み込み、その結果を全チャンネルｋ＝１〜Ｎにわたって加算する。この計算結果は、１チャンネルの画像ｕｉｊの形式となる。
【００４０】
フィルタをｗｉｊｋ（ただし、(i,j,k）∈[1,L-1],[1,L-1],[1,N]）と定義すると、ｕｉｊは次式で算出される。
【数３】
2018165948.tif 000005
【００４１】
ただし、Ｐｉｊは、画像中の画素（ｉ，ｊ）を頂点とするサイズＬ×Ｌ画素の正方領域である。すなわち、Ｐｉｊは、次式で定義される。
【数４】
2018165948.tif 000006
【００４２】
ｂｋは、バイアスである。本実施形態では、バイアスは、チャンネルごとに全出力ノード間で共通とする。すなわち、ｂｉｊｋ＝ｂｋとする。
フィルタは、全画素ではなく複数画素の間隔で適用されることもある。すなわち、所定の画素数ｓについて、Ｐｉｊを次式のように定義し、ｗｐ−ｉ，ｑ−ｊ，ｋをｗｐ−ｓｉ，ｑ−ｓｊ，ｋと置き換えてｕｉｊを計算してもよい。この画素間隔ｓを「スライド」という。
【数５】
2018165948.tif 000007
【００４３】
上記のように計算されたｕｉｊは、その後、活性化関数ａ（・）を経て、畳み込み層Ｃ１，Ｃ２の出力ｙｉｊとなる。すなわち、ｙｉｊ＝ａ（ｕｉｊ）となる。
これにより、１つのフィルタｗｉｊｋにつき、入力ｘｉｊｋと縦横サイズが同じであるＳ×Ｓの１チャンネル分の出力ｙｉｊが得られる。
【００４４】
同様のフィルタをＮ’個用意して、それぞれ独立して上述の計算を実行すれば、Ｎ’チャンネル分のＳ×Ｓの出力、すなわち、Ｓ×Ｓ×Ｎ’サイズの出力ｙｉｊｋ（ただし、(i,j,k）∈[1,S-1],[1,S-1],[1,N']）が得られる。
このＮ’チャンネル分の出力ｙｉｊｋは、次の層への入力ｘｉｊｋとなる。図３は、Ｎ’個あるフィルタのうちの１つに関する計算内容を示している。
【００４５】
以上の計算は、例えば図４に示すように、特殊な形で層間ノードが結ばれた単層ネットワークとして表現できる。図４は、受容野の構造の概念図である。左側の図では受容野が矩形で表現され、右側の図では受容野がノードで表現されている。
具体的には、上位層の各ノードは下位層の各ノードの一部と結合している（これを「局所受容野」という。）。また、結合の重みは各ノード間で共通となっている（これを「重み共有」という。）。
【００４６】
（プーリング層の処理内容）
図２に示す通り、プーリング層Ｐ１，Ｐ２は、畳み込み層Ｃ１，Ｃ２と対で存在する。従って、畳み込み層Ｃ１，Ｃ２の出力はプーリング層Ｐ１，Ｐ２への入力となり、プーリング層Ｐ１，Ｐ２の入力はＳ×Ｓ×Ｎの形式となる。
プーリング層Ｐ１，Ｐ２の目的は、画像のどの位置でフィルタの応答が強かったかという情報を一部捨てて、特徴の微少な変化に対する応答の不変性を実現することである。
【００４７】
プーリング層Ｐ１，Ｐ２のノード（ｉ，ｊ）は、畳み込み層Ｃ１，Ｃ２と同様に、入力側の層に局所受容野Ｐｉ，ｊを有する。プーリング層Ｐ１，Ｐ２のノード（ｉ，ｊ）は、局所受容野Ｐｉ，ｊの内部のノード（ｐ，ｑ）∈Ｐｉ，ｊの出力ｙｐ，ｑを１つに集約する。
プーリング層Ｐ１，Ｐ２の局所受容野Ｐｉ，ｊのサイズは、畳み込み層Ｃ１，Ｃ２のそれ（フィルタサイズ）と無関係に設定される。
【００４８】
入力が複数チャンネルの場合、チャンネルごとに上記の処理が行われる。すなわち、畳み込み層Ｃ１，Ｃ２とプーリング層Ｐ１，Ｐ２の出力チャンネル数は一致する。
プーリングは、画像の縦横（ｉ，ｊ）の方向に間引いて行われる。すなわち、２以上のストライドｓが設定される。例えば、ｓ＝２とすると、出力の縦横サイズは入力の縦横サイズの半分となり、プーリング層の出力ノード数は、入力ノード数の１／ｓ２倍となる。
【００４９】
受容野Ｐｉ，ｊの内部のノードからの入力を１つに纏めて集約する方法には、「平均プーリング」及び「最大プーリング」などがある。
平均プーリングは、次式の通り、Ｐｉ，ｊに属するノードからの入力ｘｐｑｋの平均値を出力する方法である。
【数６】
2018165948.tif 000008
【００５０】
最大プーリングは、次式の通り、Ｐｉ，ｊに属するノードからの入力ｘｐｑｋの最大値を出力する方法である。ＣＮＮの初期の研究では平均プーリングが主流であったが、現在では最大プーリングが一般的に採用される。
【数７】
2018165948.tif 000009
【００５１】
なお、畳み込み層Ｃ１，Ｃ２と異なり、プーリング層Ｐ１，Ｐ２では、学習によって変化する重みは存在せず、活性化関数も適用されない。
本実施形態のＣＮＮにおいて、平均プーリング及び最大プーリングのいずれを採用してもよいが、図７に示すＣＮＮの実装例では最大プーリングを採用している。
【００５２】
〔学習部の処理内容〕
ＣＮＮの学習（training）では、「教師あり学習」が基本である。本実施形態においても、学習部５は教師あり学習を実行する。
具体的には、学習部５は、学習データとなる多数のラベル付きのサンプル画像を含む集合を対象として、各サンプル画像の分類誤差を最小化することにより実行される。以下、この処理について説明する。
【００５３】
ＣＮＮ処理部４の最終層Ｅの各ノードは、ソフトマックス関数による正規化（前述の〔数２〕）により、対応するクラスに対する確率ｐｊ（ｊ＝１，２，……ｎ）を出力する。この確率ｐｊは、学習部５に入力される。
学習部５は、入力された確率ｐｊから算出される分類誤差を最小化するように、ＣＮＮ処理部４に設定された重みなどのパラメータを更新する。
【００５４】
具体的には、学習部５は、入力サンプルに対する理想的な出力ｄ１，ｄ２，……ｄｎ（ラベル）と、出力ｐ１．ｐ２．……ｐｎの乖離を、次式の交差エントロピーＣによって算出する。この交差エントロピーＣが分類誤差である。
【数８】
2018165948.tif 000010
【００５５】
目標出力ｄ１，ｄ２，……ｄｎは、正解クラスｊのみでｄｊ＝１となり、それ以外のすべてのｋ（≠ｊ）ではｄｋ＝０となるように設定される。
学習部５は、上記の交差エントロピーＣが小さくなるように、各畳み込み層Ｃ１，Ｃ２のフィルタの係数ｗｉｊｋと各ノードのバイアスｂｋ、及び、ＣＮＮの出力層側に配置された全結合層Ｆの重みとバイアスを調整する。
【００５６】
分類誤差Ｃの最小化には、確率的勾配降下法が用いられる。学習部５は、重みやバイアスに関する誤差勾配（∂Ｃ／∂ｗｉｊ）を、誤差逆伝播法（ＢＰ法）により計算する。ＢＰ法による計算方法は、通常のニューラルネットワークの場合と同様である。
もっとも、ＣＮＮ処理部４が最大プーリングを採用する場合の逆伝播では、学習サンプルに対する順伝播の際に、プーリング領域のどのノードの値を選んだかを記憶し、逆伝播時にそのノードのみと結合（重み１で結合）させる。
【００５７】
学習部５による分類誤差Ｃの評価とこれに基づくパラメータ（重みなど）の更新は、全学習サンプルについて実行してもよい。しかし、収束性及び計算速度の観点から、数個から数百個程度のサンプルの集合（ミニバッチ）ごとに実行することが好ましい。この場合の重みｗｉｊの更新量Δｗｉｊは、次式で決定される。
【数９】
2018165948.tif 000011
【００５８】
上式において、Δｗｉｊ（ｔ）は今回の重み更新量であり、Δｗｉｊ（ｔ−１）は前回の重み更新量である。上式の第１項は、勾配降下法により誤差を削減するためのｗｉｊの修正量を表す項であり、εは学習率である。
上式の第２項は、モメンタム（momentum）である。モメンタムは、前回更新量のα（〜０．９）倍を加算することでミニパッチの選択による重みの偏りを抑える。第３項は、重み減衰（weight decay）である。重み減衰は、重みが過大にならないようにするパラメータである。なお、バイアスｂｋの更新についても同様である。
【００５９】
〔画像生成部の処理内容〕
図５は、データ生成部３による第１処理の説明図である。
前述の通り、「第１処理」は、サンプル画像７又は対象画像８から、当該原画像７，８に対して回転及び反転の不変性を有する画像フィルタ９を生成する処理である。
図５において、学習段階での原画像は、サンプル画像７であり、画像処理装置２を識別器とする場合の原画像は、対象画像８である。
【００６０】
原画像７，８には、直交座標の各画素点ｐ（ｘ，ｙ）におけるＲＧＢ値（０〜２５５）が含まれる。ここでは、図５（ａ）に示すように、画素点ｐでのＲＧＢ値を要素とするデータ列（Ｒ，Ｇ，Ｂ）を色ベクトル「ｇ」という。
データ生成部３は、まず、原画像７，８の中心点ｃを抽出し、抽出した中心点ｃを座標の原点とする。次に、データ生成部３は、図５（ｂ）に示すように、直交座標（ｘ，ｙ）の画素点ｐを、中心点ｃを原点とする極座標に変換する（極化処理）。
【００６１】
なお、極座標の原点は、必ずしも原画像７，８の中心点ｃでなくてもよく、中心点ｃから多少ずれた位置にある所定のポイントであってもよい。
【００６２】
次に、データ生成部３は、中心点ｃを原点とする極座標に含まれる、任意の画素点ｐの色ベクトルｇ＝（Ｒ，Ｇ，Ｂ）を、画素点ｐにおける半径方向の色ベクトルｇｒと接線方向の色ベクトルｇｔに分解する。この色ベクトルｇの分解は、次式により実行される。
【数１０】
2018165948.tif 000012
【００６３】
ここで、「ｇＴ」は、色ベクトルｇ＝（Ｒ，Ｇ，Ｂ）の転置ベクトルである。「ｒ」は、次式により定義される画素点ｐにおける半径方向の単位ベクトルである。「ｔ」は、次式により定義される画素点ｐにおける接線方向の単位ベクトルである。
【００６４】
【数１１】
2018165948.tif 000013
【００６５】
上式において、「Ｒθ」は、単位ベクトルｒを角度θだけ回転させる回転ベクトルである。本実施形態では、単位ベクトルｔの方向は接線方向（単位ベクトルｒからの角度が９０度）であるから、回転行列Ｒθの角度θの値は、θ＝π／２となる。
原画像７，８の極座標に含まれるすべての画素点ｐに上記の計算を行うことにより、各画素点ｐについて、合計６種類の要素（Ｒｒ、Ｒｔ、Ｇｒ、Ｇｔ、Ｂｒ、Ｂｔ）を含むシングルチャンネルの画像フィルタ９が生成される。
【００６６】
図６は、データ生成部３による第２処理の説明図である。
前述の通り、「第２処理」は、原画像７，８に対して、第１処理で生成した画像フィルタ９を畳み込む処理である。
図６において、学習段階での原画像は、サンプル画像７であり、画像処理装置２を識別器とする場合の原画像は、対象画像８である。
【００６７】
〔画像フィルタの回転及び反転の不変性〕
図７は、画素点ｐを所定角度θだけ回転させた変換点ｐθ、反転させた反転点ｐ'と回転反転（若しくは反転回転）させた複数変更点ｐ'θの説明図である。
図７に示すように、任意の画素点ｐに対して、同じ半径で左回りに所定角度θだけ進んだ点である回転点を「ｐθ」とする。
図７に示すように、任意の画素点ｐに対して、反転させた反転点を「ｐ'」とする。
図７に示すように、任意の画素点ｐの反転点ｐ'に対して、同じ半径で左回りに所定角度θだけ進んだ点である回転点を「ｐ'θ」とする。但し、複数の変更があった場合に、変換される手順は反転回転でも回転反転でもよい。
また、回転点ｐθ、反転点ｐ'、回転反転（若しくは反転回転）点ｐ'θにおける色ベクトルをそれぞれ「ｇθ」、「ｇ'」、「ｇ'θ」とし、回転点ｐ'θにおける半径方向及び接線方向の単位ベクトルをそれぞれ「ｒθ」、「ｒ'」、「ｒ'θ」及び「ｔθ」、「ｔ'」、「ｔ'θ」とする。
【００６８】
この場合、次式に示すように、画素点ｐ、回転点ｐθ、反転点ｐ'、複数変換点ｐ'θにおける半径方向及び接線方向の色ベクトルは、（ｇＴｒ，ｇＴｔ）、（(Ｒθｇ)Ｔｒ，(Ｒθｇ)Ｔｔ）、（(Mｇ)Ｔｒ，(Mｇ)Ｔｔ）、（(MＲθｇ)Ｔｒ，(MＲθｇ)Ｔｔ）と一致する。
ただし、次式において、Ｍは反転行列である。Ｍは、対角成分が１又は−１の対角行列であるため、ＭＴＭ＝Ｉとなる。
【００６９】
（回転の場合）
【数１２】
2018165948.tif 000014
【００７０】
（反転の場合）
【数１３】
2018165948.tif 000015
【００７１】
（回転反転（若しくは反転回転）の場合）
【数１４】
2018165948.tif 000016
【００７２】
上記の等式は、中心点ｃ回りの角度θの値に関係なく成立する。すなわち、画素点ｐでの半径方向の色ベクトルｇｒと接線方向の色ベクトルｇｔは、中心点ｃ回りにどのような角度θで回転しても不変である。同様、反転及び複数変更の場合も不変性を有する。なお、反転には、左右の反転（ｙ軸対称）と上下の反転（ｘ軸対称）の双方が含まれる。
従って、離散情報に構成された原画像７，８の色ベクトルｇに対して、各方向の色ベクトルｇｒ，ｇｔを要素とする画像フィルタ９を畳み込む処理を実行すれば、処理後の入力データは、中心点ｃ回りの回転及び反転に対して不変性を有する入力データとなる。
【００７３】
〔推奨されるＣＮＮの構造例〕
図８は、ＣＮＮ処理部４に構築される深層ＣＮＮの構造図である。
図８に示すように、本願発明者らが推奨する、画像認識のためのＣＮＮのアーキテクチャは、入力ボリュームを出力ボリュームに変換する畳み込み層Ｃ１〜Ｃ４と、全結合層Ａ１〜Ａ３の積層体により構成されている。
【００７４】
ＣＮＮの各層Ｃ１〜Ｃ４，Ａ１〜Ａ３は、幅、高さ及び奥行きの３次元的に配列されたニューロンを有する。
最初の入力層Ｃ１の幅、高さ及び奥行きのサイズは５６×５６×３が好ましい。畳み込み層Ｃ２〜Ｃ４及び全結合層Ａ１の内部のニューロンは、１つ前の層の受容野と呼ばれる小領域のノードのみに接続されている。
【００７５】
出力ボリュームの空間的な大きさは、次式で計算することができる。
Ｗ２＝１＋（Ｗ１−Ｋ＋２Ｐ）／Ｓ
上式において、Ｗ１は、入力ボリュームのサイズである。Ｋは、畳み込み層のニューロンの核（ノード）のフィールドサイズである。Ｓはストライド、すなわち、カーネルマップにおける隣接するニューロンの受容野の中心間距離を意味する。Ｐは、ボーダー上で使用されるゼロパディングの量を意味する。
【００７６】
図８のＣＮＮでは、第１畳み込み層Ｃ１において、Ｗ１＝５６、Ｋ＝５、Ｓ＝２、Ｐ＝２である。従って、第２畳み込み層Ｃ２の出力ボリュームの空間的な大きさは、Ｗ２＝１＋（５６−５＋２×２）／２＝２８．５→２８となる。
図８のネットワークでは、重みを持つ７つの層を含む。最初の４つは畳み込み層Ｃ１〜Ｃ４であり、残りの３つは完全に接続された全結合層Ａ１〜Ａ３である。全結合層Ａ１〜Ａ３には、ドロップアウトが含まれる。
【００７７】
最後の全結合層Ａ３の出力は、この層Ａ３と完全に接続された最終層である、７クラスラベルの分布を生成する7-way SOFTMAXに供給される。
畳み込み層Ｃ２〜Ｃ４と全結合層Ａ１のニューロンは前の層の受容野に接続され、全結合層Ａ２〜Ａ３のニューロンは、前の層の全てのニューロンに接続されている。
【００７８】
畳み込み層Ｃ１，Ｃ２の後にはバッチ正規化層が続く。各バッチ正規化層の後には、それぞれ前述の最大プーリングを実行するプーリング層が続く。
畳み込み層Ｃ１〜Ｃ４と全結合層Ａ１〜Ａ３のための非線形マッピング関数は、整流リニアユニット（ＲｅＬＵ）よりなる。
【００７９】
第１畳み込み層Ｃ１は、サイズが５×５×３の６４個のカーネルにより、２画素のストライドで５６×５６×３の入力画像（ＡＧＥ画像）をフィルタリングする。
ストライド（歩幅）は、カーネルマップ内で隣接するニューロンの受容野の中心間の距離である。ストライドは、すべての畳み込み層において１ピクセルに設定されている。
【００８０】
第２畳み込み層Ｃ２の入力は、バッチ正規化及び最大プールされた第１畳み込み層Ｃ１の出力である。第２畳込み層Ｃ２は、サイズが３×３×６４である１２８のカーネルで入力をフィルタリングする。
第３畳み込み層Ｃ３は、サイズが３×３×６４である１２８のカーネルを有し、これらは第２層Ｃ２（バッチ正規化とＭＡＸプーリング）の出力に接続されている。
【００８１】
第４畳み込み層Ｃ４は、サイズが３×３×１２８である１２８のカーネルを備えている。完全に接続された全結合層Ａ１〜Ａ３は、それぞれ１０２４のニューロンを備えている。
【００８２】
〔推奨される学習例〕
本願発明者らは、図８の構造の深層ＣＮＮを実際に訓練（学習）させた。訓練に際しては、NVIDIA GTX745 4GBのＧＰＵを実装するＰＣに対して、オープンソースの数値解析ソフトウェアである「ＭＡＴＬＡＢ」を用いて行った。
ＣＮＮの学習ステップにおいては、重み減衰、モメンタム、バッチサイズ、学習率や学習サイクルを含むパラメータなどの重要な設定がある。以下、この点について説明する。
【００８３】
本願発明者らによる訓練では、モメンタムが０．９であり、重み減衰が０．０００５である非同期の確率的勾配降下法を採用した。次式は、今回採用した重みｗの更新ルールである。
【数１５】
2018165948.tif 000017
【００８４】
上式において、ｉは反復回数であり、ｍはモメンタム変数である。εは学習率を意味する。右辺の第３項は、ｗｉにおいて誤差Ｌを削減するための重みｗの修正量のｉ番目のバッチＤｉに関する平均値である。
バッチサイズの増加は、より信頼性の高い勾配推定値をもたらし、学習時間を短縮できるが、それでは最大の安定した学習率εの増加が得られない。そこで、ＣＮＮのモデルに適したバッチサイズを選択する必要がある。
【００８５】
ここでは、畳み込み層Ｃ１〜Ｃ４について、それぞれ、６４、１２８、２５６及び５１２のバッチサイズを採用した訓練（学習）の結果を比較した。その結果、図８のＣＮＮでは、２５６のバッチサイズが最適であることが判明した。
また、すべての層に同等の学習率を使用し、訓練を通して手動で調整した。学習率は０．１に初期化し、エラーレートが現時点の学習率で改善を停止したときに、学習率を１０で分割した。また、訓練に際しては、約２０サイクルでネットワークを訓練した。
【００８６】
〔実験例：手書き文字を識別する場合の効果〕
本願発明者らは、「神戸大学経済経営研究所  附属企業資料総合センター」に所蔵された、「鐘紡資料データベース」の「支配人回章１」に含まれる手書き文字の画像を用いて、本願発明の有意性を試す比較実験を行った。
【００８７】
識別するオブジェクト（手書き文字）の種類は、支配人回章１に含まれる「支」、「配」、「人」、「工」、「場」、「長」、「会（會）」、「社」、「明」及び「治」とした。学習に用いる各文字のサンプル数は、各々４００枚（５６×５６ピクセル）とした。図９は、比較実験に用いた手書き文字（原画像）の一例を示す図である。
【００８８】
図１０は、文字クラスごとの認識精度の試験結果を表すグラフである。図１０において、○のグラフ（ours）は、本願発明の認識精度を示す。□のグラフ（alexnet）は、非特許文献１の場合（ただし、入力データはＲＧＢ値）の認識精度を示す。
▽のグラフ（vgg-vd-16）は、非特許文献２の場合（入力データはＲＧＢ値であり、レイヤ数は１６）の認識精度を示す。＊のグラフ（vgg-vd-19）は、非特許文献２の場合（入力データはＲＧＢ値であり、レイヤ数は１９）の認識精度を示す。
【００８９】
図１０に示すように、入力画像として従来通りのＲＧＢ値を用いる非特許文献１及び２の場合には、１０種類のすべての文字クラスについて、９０％を超える認識精度を達成できない。
これに対して、手書き文字の原画像に回転及び反転の不変性を与える本願発明の場合には、１０種類のすべての文字クラスについて、９０％以上の認識精度を獲得した。
【００９０】
図１０のグラフから明らかな通り、深層ＣＮＮを用いた画像認識（図１０の例では文字認識）において、原画像に回転及び反転の不変性を与える処理を行ってＣＮＮの入力データとすれば、従来の生データ（ＲＧＢ画像）を入力データとする場合に比べて、認識精度が有意に改善される。
【００９１】
〔画像認識装置の効果〕
以上の通り、本実施形態の画像認識装置１０によれば、原画像７，８に対して回転及び反転の不変性を有する画像フィルタ９を畳み込むことにより、ＣＮＮ処理部４への入力データを生成する。このため、サンプル画像７をそれほど多く収集しなくても、他の深層学習技術に比べて高い認識精度を発揮できる。
例えば、図１０に示す通り、サンプル画像７の数が「４００」の場合には、従来の深層学習技術よりも高い認識精度が得られる。
【００９２】
本実施形態では、６種類の要素（Ｒｒ、Ｒｔ、Ｇｒ、Ｇｔ、Ｂｒ、Ｂｔ）を含むシングルチャンネルの画像フィルタ９をサンプル画像７に畳み込むので、１つのサンプル画像７に含まれるデータ量を少なくとも１６倍に拡張することになる。
このため、従来の深層学習では１００枚のサンプル画像７を必要とする場合には、ほぼ６枚（１００／１６＝６．２５）のサンプル画像７を収集すれば、従来の深層学習と概ね同程度の識別精度が得られる。
【００９３】
本実施形態の画像認識装置１０によれば、画像フィルタ９の畳み込みにより、回転又は反転したオブジェクトでも正確に認識できる。
従って、例えば、古文書などの撮影画像に含まれる文字を正確に認識して、テキスト又はワープロ文書データに変換する装置として利用できる。また、帳票などの文書に記載の文字を読み込んで、テキストやワープロ文書データに変換する装置や、タッチパネルに手書き入力された文字をリアルタイムに認識する装置として利用することもできる。
【００９４】
その他、本実施形態の画像認識装置１０は、人間の顔の表情認識、顔画像からの年齢認識、及び、動物、植物、製品などのあらゆる物体の種類の認識などに利用可能である。
このように、本実施形態の画像認識装置１０において、ＣＮＮ処理部４が種類を認識可能なオブジェクトは、手書き文字、人間、動物、植物、及び製品のうちの少なくとも１つの物体であればよく、あらゆるオブジェクトの種類の認識に利用することができる。
【００９５】
〔画像認識装置のその他の応用例〕
図１１は、本実施形態の製品監視システム２０の全体構成図である。
製品監視システム２０は、撮影画像に含まれる製品２５の種類を認識する画像認識装置１０（図１参照）を、不良品の選別及び取り出しに利用するシステムである。
図１１に示すように、製品監視システム２０は、撮影装置２１、駆動制御装置２２、及び可動アーム式のロボット装置２３を備える。
【００９６】
撮影装置２１は、例えば、ＣＣＤ（電荷結合素子）を利用してデジタル画像を生成するデジタルカメラよりなる。撮影装置２１は、ベルトコンベア２４の上方に吊り下げられており、下流側（図１１の右側）に進行するベルトコンベア２４上の複数の製品２５を上から撮影する。
撮影装置２１は、複数の製品２５が含まれるデジタル画像よりなる撮影画像を、駆動制御装置２２に送信する。撮影画像は、静止画及び動画像のいずれでもよい。
【００９７】
駆動制御装置２２は、ロボット装置２３の動作を制御するコンピュータ装置よりなる。駆動制御装置２２は、第１通信部２６、第２通信部２７、制御部２８、及び記憶部２９を備える。
第１通信部２６は、所定のＩ／Ｏインタフェース規格により、撮影装置２１と通信する通信装置よりなる。第１通信部２６と撮影装置２１との通信は、有線通信及び無線通信のいずれであってもよい。
【００９８】
第２通信部２７は、所定のＩ／Ｏインタフェース規格により、ロボット装置２３と通信する通信装置よりなる。第２通信部２７とロボット装置２３との通信は、有線通信及び無線通信のいずれであってもよい。
【００９９】
制御部２８は、１又は複数のＣＰＵを有する情報処理装置であり、上述の本実施形態の画像識別装置（図１参照）を含む制御装置よりなる。
記憶部２９は、１又は複数のＲＡＭ及びＲＯＭなどのメモリを含む記憶装置よりなる。記憶部２９は、制御部２８に実行させる各種のコンピュータプログラムや、撮影装置２１などから受信した画像データなどの、一時的又は非一時的な記録媒体として機能する。
【０１００】
このように、駆動制御装置２２は、コンピュータを備えて構成される。従って、駆動制御装置２２の各機能は、当該コンピュータの記憶装置に記憶されたコンピュータプログラムが当該コンピュータのＣＰＵ及びＧＰＵによって実行されることで発揮される。
かかるコンピュータプログラムは、ＣＤ−ＲＯＭやＵＳＢメモリなどの一時的又は非一時的な記録媒体に記憶させることができる。
【０１０１】
制御部２８は、記憶部２９に格納されたコンピュータプログラムを読み出して実行することにより、第１及び第２通信部２６，２７に対する通信制御や、ロボット装置２３の動作制御を実現できる。
例えば、制御部２８は、第１通信部２６が受信した撮影画像から製品２５の画像部分（以下、「製品画像」という。）を抽出し、抽出した製品画像の分類クラス（ここでは、「正常」又は「不良」とする。）を識別する。
【０１０２】
制御部２８は、分類クラスが不良である製品画像を検出すると、撮影時刻とベルトコンベア２４の進行速度などから、製品２５がロボット装置２３の下を通過する時刻及び位置を算出し、算出した通過時刻及び通過位置を第２通信部２７に送信させる。
ロボット装置２３は、多関節のロボットアーム３０と、ロボットアーム３０を駆動するアクチュエータ３１とを備える。ロボットアーム３０は、コンベア２４上の製品２５を把持することができるハンド部（図示せず）を有する。
【０１０３】
制御部２８が算出した不良品の通過時刻及び通過位置は、アクチュエータ３１に送信される。アクチュエータ３１は、不良品の通過時刻にハンド部が通過位置に移動し、製品２５を掴んで外部に取り出すように、ロボットアーム３０の各関節を駆動する。
記憶部２９は、製品２５の良否判定を実行可能な所定構造のＣＮＮ（例えば図８）や、当該ＣＮＮに対する学習済みの重み及びバイアスなどを記憶している。制御部２８は、学習済みのＣＮＮにより、撮影画像から抽出した製品画像の良否を判定する。
【０１０４】
上述の製品監視システム２０を実現するのに必要となる、工場管理者が行うべき作業工程を列挙すると、次の通りである。
工程１）  ロボットアーム３０の下流側の作業員３２が、コンベア２４を流れる製品２５の中から不良品を判別し、その不良品をデジタルカメラ（図示せず）で撮影する。
工程２）  撮影した画像データを、不良品のサンプル画像７として駆動制御装置２２の記憶部２９に入力する。
【０１０５】
工程３）  上記の工程１及び２を、所望の識別精度（例えば、９９％以上）が得られるまで繰り返す。
なお、不良品の代表的な形状が予め判明している場合には、不良品のサンプル画像は、コンベア２４を流れる製品２５以外の製品を撮影した画像データであってもよい。
【０１０６】
工程１及び２を繰り返す学習段階において、運用当初は、不良品のサンプル画像７が少ないことから、駆動制御装置２２による不良品の認識精度は低い。
しかし、不良品のサンプル画像７が増加するに従い、駆動制御装置２２の認識精度が向上し、不良品を１００％に近い状態で排除できるようになる。このため、駆動制御装置２２が所定数のサンプル画像７によって学習を積むことにより、作業員３２による目視の監視が不要となる。
【０１０７】
特に、本実施形態では、回転又は反転したオブジェクトでも認識精度が高い識別器を使用するので、例えば図１１に示すように、コンベア２４に種々の向きで載せられる製品２５の場合でも、早期にほぼ１００％に近い形で、不良品の識別を行うことができる。
なお、コンベア２４に種々の向きで載せられる製品２５の例としては、お菓子や練り製品などの食品類や成形機により生産される成形品等が考えられる。また、現在、コンベア２４上で製品２５を搬送し、作業員３２が目視し、不良品をコンベア２４上から除去しているような場合には、本実施形態の製品監視システム２０を採用することで、目視検査を実施している当該作業員３２の人数を、大幅に削減できる効果が期待できる。
【０１０８】
〔第１の変形例〕
上述の実施形態において、色ベクトルｇの分解方向は、「半径方向」（図５のｒ方向）及び「接線方向」（図５のｔ方向）に限定されない。すなわち、色ベクトルｇの分解方向は、画素点ｐを基点として所定角度で開く任意の２方向であればよい。
もっとも、半径方向と接線方向以外の２方向で分解すると、各方向の色ベクトルの演算式が複雑になり、データ生成部３の処理負荷が大きくなる。従って、上述の実施形態の通り、色ベクトルｇの分解方向は半径方向及び接線方向とすることが好ましい。
【０１０９】
〔第２の変形例〕
上述の実施形態において、中心点ｃを原点とする３次元極座標を定義し、色ベクトルｇを、半径方向と２つの接線方向（３次元の場合は合計で３方向）に分解した要素を有する３次元の画像フィルタにより、原画像７，８を畳み込み処理してもよい。
このようにすれば、中心点ｃを原点とする２次元の回転又は反転だけでなく、中心点ｃを原点とした奥行き方向に傾斜する対象画像８に対しても、画像の認識精度を向上することができる。
【０１１０】
〔第３の変形例〕
上述の実施形態では、原画像７，８に対して回転及び反転の不変性を有する画像フィルタ９を採用したが、画像フィルタ９は、原画像７，８に対して回転のみの不変性を有する画像フィルタ、或いは、原画像７，８に対して反転のみの不変性を有する画像フィルタであってもよい。すなわち、本願発明の画像フィルタ９は、原画像７，８に対して回転及び反転のうちの少なくとも１つの不変性を有する画像フィルタであればよい。
【０１１１】
〔その他の変形例〕
今回開示した実施形態（変形例を含む。）はすべての点で例示であって制限的なものではない。本発明の権利範囲は、上述の実施形態に限定されるものではなく、特許請求の範囲に記載された構成と均等の範囲内でのすべての変更が含まれる。
例えば、上述の実施形態では、ニューラルネットワークが畳み込みニューラルネットワーク（ＣＮＮ）よりなるが、畳み込み層を有しない他の構造の階層型ニューラルネットワークであってもよい。
【符号の説明】
【０１１２】
１  演算処理部
２  画像処理部
３  データ生成部
４  ＣＮＮ処理部
５  学習部
６  認識部
７  サンプル画像（原画像）
８  対称画像（原画像）
９  画像フィルタ
１０  画像認識装置
２０  製品監視システム
２１  撮影装置
２２  駆動制御装置（制御装置）
２３  ロボット装置
２４  ベルトコンベア
２５  製品
２６  第１通信部
２７  第２通信部
２８  制御部
２９  記憶部
３０  ロボットアーム
３１  アクチュエータ
３２  作業員
【図１】
2018165948.tif 000018
【図２】
2018165948.tif 000019
【図３】
2018165948.tif 000020
【図４】
2018165948.tif 000021
【図５】
2018165948.tif 000022
【図６】
2018165948.tif 000023
【図７】
2018165948.tif 000024
【図８】
2018165948.tif 000025
【図９】
2018165948.tif 000026
【図１０】
2018165948.tif 000027
【図１１】
2018165948.tif 000028