(57)【要約】【課題】精度のよい分類原因の推定を効率よく行う。【解決手段】実施形態の学習プログラムは、入力する処理と、クラス分けする処理と、生成する処理とをコンピュータに実行させる。入力する処理は、画像を分類するニューラルネットワークに対し、分類の特徴となる所定の特徴部分が含まれる画像群と、特徴部分が含まれない画像群とを含む教師画像群の各画像を入力する。クラス分けする処理は、各画像を入力したニューラルネットワークの中間層における中間出力をクラス分けする。生成する処理は、各画像における中間出力のクラス分け結果をもとに、ニューラルネットワークの中間出力がいずれのクラスであるかを条件として所定の特徴から分類結果に至る因果関係を示す情報を生成する。【選択図】図４
2020035103.tif 000002
【特許請求の範囲】
【請求項１】
画像を分類するニューラルネットワークに対し、分類の特徴となる所定の特徴部分が含まれる画像群と、前記特徴部分が含まれない画像群とを含む教師画像群の各画像を入力し、
前記各画像を入力したニューラルネットワークの中間層における中間出力をクラス分けし、
前記各画像における中間出力のクラス分け結果をもとに、前記ニューラルネットワークの中間出力がいずれのクラスであるかを条件として前記所定の特徴から分類結果に至る因果関係を示す情報を生成する、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【請求項２】
前記クラス分けする処理は、前記中間層における複数の中間出力の平均を基準としてクラス分けを行う、
ことを特徴とする請求項１に記載の学習プログラム。
【請求項３】
前記クラス分けする処理は、前記所定の特徴部分が含まれる画像群の前記中間出力それぞれについて各クラスへ分けられた数と、前記所定の特徴部分が含まれない画像群の前記中間出力それぞれについて各クラスへ分けられた数とに基づき、前記所定の特徴に関連する反応の強さを評価する評価値を計算し、
前記生成する処理は、前記中間出力それぞれについて計算した評価値に基づき、複数の前記中間出力の中で前記因果関係を示す情報に組み入れる中間出力を選別する、
ことを特徴とする請求項２に記載の学習プログラム。
【請求項４】
前記生成する処理は、前記各画像における中間出力のクラス分け結果をもとに前記中間出力のクラスごとの条件付確率表を求めて前記因果関係を確率で記述したベイジアンネットワークに関する情報を生成する、
ことを特徴とする請求項１乃至３のいずれか一項に記載の学習プログラム。
【請求項５】
前記ニューラルネットワークは、畳み込みニューラルネットワークであり、
前記中間出力は、畳み込み層からの出力である、
ことを特徴とする請求項１乃至４のいずれか一項に記載の学習プログラム。
【請求項６】
画像を分類するニューラルネットワークに分類の対象画像を入力し、
前記ニューラルネットワークの中間層から得られた中間出力をクラス分けし、
クラス分けした前記中間出力をもとに、前記ニューラルネットワークの中間出力がいずれのクラスであるかを条件として所定の特徴から分類結果に至る因果関係を示す情報を参照して前記対象画像の入力に対する前記ニューラルネットワークの分類結果が前記所定の特徴を原因とする確度を計算し、
計算した前記確度を出力する、
処理をコンピュータに実行させることを特徴とする画像分類プログラム。
【請求項７】
画像を分類するニューラルネットワークに対し、分類の特徴となる所定の特徴部分が含まれる画像群と、前記特徴部分が含まれない画像群とを含む教師画像群の各画像を入力し、
前記各画像を入力したニューラルネットワークの中間層における中間出力をクラス分けし、
前記各画像における中間出力のクラス分け結果をもとに、前記ニューラルネットワークの中間出力がいずれのクラスであるかを条件として前記所定の特徴から分類結果に至る因果関係を示す情報を生成する、
処理をコンピュータが実行することを特徴とする学習方法。
【請求項８】
画像を分類するニューラルネットワークに分類の対象画像を入力し、
前記ニューラルネットワークの中間層から得られた中間出力をクラス分けし、
クラス分けした前記中間出力をもとに、前記ニューラルネットワークの中間出力がいずれのクラスであるかを条件として所定の特徴から分類結果に至る因果関係を示す情報を参照して前記対象画像の入力に対する前記ニューラルネットワークの分類結果が前記所定の特徴を原因とする確度を計算し、
計算した前記確度を出力する、
処理をコンピュータが実行することを特徴とする画像分類方法。
【請求項９】
画像を分類するニューラルネットワークに対し、分類の特徴となる所定の特徴部分が含まれる画像群と、前記特徴部分が含まれない画像群とを含む教師画像群の各画像を入力する入力部と、
前記各画像を入力したニューラルネットワークの中間層における中間出力をクラス分けするクラス分け部と、
前記各画像における中間出力のクラス分け結果をもとに、前記ニューラルネットワークの中間出力がいずれのクラスであるかを条件として前記所定の特徴から分類結果に至る因果関係を示す情報を生成する生成部と、
を有することを特徴とする学習装置。
【請求項１０】
画像を分類するニューラルネットワークに分類の対象画像を入力する入力部と、
前記ニューラルネットワークの中間層から得られた中間出力をクラス分けするクラス分け部と、
クラス分けした前記中間出力をもとに、前記ニューラルネットワークの中間出力がいずれのクラスであるかを条件として所定の特徴から分類結果に至る因果関係を示す情報を参照して前記対象画像の入力に対する前記ニューラルネットワークの分類結果が前記所定の特徴を原因とする確度を計算する計算部と、
計算した前記確度を出力する出力部と、
を有することを特徴とする画像分類装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、学習プログラム、画像分類プログラム、学習方法、画像分類方法、学習装置および画像分類装置に関する。
【背景技術】
【０００２】
従来、画像に含まれる車番などの認識対象について、ニューラルネットワークを用いていずれの番号であるかを分類する技術が知られている。このニューラルネットワークを用いた画像分類では、分類結果だけでなく、分類の原因も得たいという需要がある。このニューラルネットワークにおける分類の要因を得る技術としては、ニューラルネットワークが出力値を算出するに至った要因を数値で表した寄与度の値を特徴量の種別ごとに算出する技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平４−１７５９６４号公報
【特許文献２】特開２００６−４３００７号公報
【特許文献３】特開２００５−３０９０７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術では、原因の推定精度に対する処理時間や計算機資源の観点で効率が悪いという問題がある。
【０００５】
１つの側面では、精度のよい分類原因の推定を効率よく行うことを可能とする学習プログラム、画像分類プログラム、学習方法、画像分類方法、学習装置および画像分類装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの案では、学習プログラムは、入力する処理と、クラス分けする処理と、生成する処理とをコンピュータに実行させる。入力する処理は、画像を分類するニューラルネットワークに対し、分類の特徴となる所定の特徴部分が含まれる画像群と、特徴部分が含まれない画像群とを含む教師画像群の各画像を入力する。クラス分けする処理は、各画像を入力したニューラルネットワークの中間層における中間出力をクラス分けする。生成する処理は、各画像における中間出力のクラス分け結果をもとに、ニューラルネットワークの中間出力がいずれのクラスであるかを条件として所定の特徴から分類結果に至る因果関係を示す情報を生成する。
【発明の効果】
【０００７】
本発明の１実施態様によれば、精度のよい分類原因の推定を効率よく行うことができる。
【図面の簡単な説明】
【０００８】
【図１−１】図１−１は、実施形態にかかる画像分類装置の機能構成例を示すブロック図である。
【図１−２】図１−２は、実施形態にかかる画像分類装置の機能構成例を示すブロック図である。
【図２】図２は、画像分類を説明する説明図である。
【図３】図３は、実施形態にかかる画像分類装置の動作例を説明する説明図である。
【図４】図４は、実施形態にかかる画像分類装置の動作例を示すフローチャートである。
【図５】図５は、中間出力を説明する説明図である。
【図６】図６は、ベイジアンネットワークの一例を示す説明図である。
【図７】図７は、ニューラルネットワークの一例を示す説明図である。
【図８−１】図８−１は、中間値ファイルの一例を示す説明図である。
【図８−２】図８−２は、計算結果ファイルの一例を示す説明図である。
【図８−３】図８−３は、中間出力リストの一例を示す説明図である。
【図８−４】図８−４は、クラス分類テーブルの一例を示す説明図である。
【図９−１】図９−１は、収穫時における対象画像の撮影を説明する説明図である。
【図９−２】図９−２は、対象画像の分析を説明する説明図である。
【図１０】図１０は、プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、実施形態にかかる学習プログラム、画像分類プログラム、学習方法、画像分類方法、学習装置および画像分類装置を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する学習プログラム、画像分類プログラム、学習方法、画像分類方法、学習装置および画像分類装置は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【００１０】
（実施形態について）
図１−１、図１−２は、実施形態にかかる画像分類装置の機能構成例を示すブロック図である。具体的には、図１−１は、分類原因の推定を行うための、ベイジアンネットワークに関するベイジアンネットワーク構築情報１４ａを生成する学習時（運用準備時）に関する機能構成例を示す図である。また、図１−２は、生成したベイジアンネットワーク構築情報１４ａを適用した原因推定器１７により、画像分類器１２における分類原因を推定する運用時に関する機能構成例を示す図である。
【００１１】
本実施形態では学習時の機能構成と、運用時の機能構成とを有する画像分類装置１を例示するが、学習時および運用時の機能構成は別々の装置としてもよい。例えば、図１−１に示す学習時の機能構成を有する学習装置と、図１−２に示す運用時の機能構成を有する画像分類装置とを分けてもよい。
【００１２】
図１−１に示すように、学習時の機能構成として、画像分類装置１は、画像記憶部１０、学習制御部１１、画像分類器１２、中間出力抽出部１３および原因推定用情報生成部１４（以下、情報生成部１４と略す）を有する。
【００１３】
画像記憶部１０は、処理にかかる画像データを格納する。具体的には、画像記憶部１０には、学習時に教師として用いる、原因ラベル付きの複数の教師画像１０ａが保存されている。原因ラベルは、画像分類器１２における画像分類の原因となる所定の特徴が画像に含まれるか否かを示すラベルである。この原因ラベルは、画像の内容からユーザが事前に付与する。
【００１４】
例えば、車種を分類する画像分類器１２でタクシー（ｃａｂ）と分類される画像において、車体が黄色いためにタクシーと分類される教師画像１０ａには、「Ｙｅｌｌｏｗ」などの原因ラベルが付与される。また、車体にタクシーサインを備えているためにタクシーと分類される教師画像１０ａには、「Ｓｉｇｎ」などの原因ラベルが付与される。また、車体が黄色であり、タクシーサインを備えている教師画像１０ａには、「Ｙｅｌｌｏｗ」と「Ｓｉｇｎ」の両方の原因ラベルが付与される。
【００１５】
この原因ラベルをもとに、教師画像１０ａそれぞれは、所定の特徴部分が含まれる画像群（例えばラベルに「Ｙｅｌｌｏｗ」がある）と、所定の特徴部分が含まれない画像群（例えばラベルに「Ｙｅｌｌｏｗ」がない）とに分けることができる。
【００１６】
学習制御部１１は、学習時における各部の処理を制御する。具体的には、学習制御部１１は、ユーザによる起動指示の入力をもとに学習に関する処理を開始し、画像記憶部１０に保存された各教師画像１０ａを画像分類器１２に読み込ませる（入力する）。すなわち、学習制御部１１は、入力部の一例である。
【００１７】
画像分類器１２は、ＩｍａｇｅＮｅｔ等の大規模画像データセットにより、入力された画像の分類を行うように学習したニューラルネットワーク（ＮＮと略す場合がある）である。例えば、本実施形態における画像分類器１２は、入力された画像からの特徴抽出により分類するように、畳み込み層と、プーリング層とを交互に積み重ねた畳み込みニューラルネットワークである。なお、以後の説明では、ニューラルネットワーク（ＮＮ）および畳み込みニューラルネットワーク（ＣＮＮ）について、特に区別しない場合は「ＮＮ」と略す場合がある。
【００１８】
図２は、画像分類を説明する説明図である。図２に示すように、教師画像１０ａを画像分類器１２に入力した場合、例えば画像に含まれる物体の種類（図示例では車両の種類）を確率で示す分類結果１０ｂが画像分類器１２より出力される。具体的には、分類結果１０ｂには、「ｃａｂ」、「ｂｅａｃｈ＿ｗａｇｏｎ」、「ｐｏｌｉｃｅ＿ｖａｎ」、「ａｍｂｕｌａｎｃｅ」、「ｌｉｍｏｕｓｉｎｅ」とする車両の種類ごとの確率（「１」を最大とする）が示されている。この分類結果１０ｂにより、画像分類装置１では、確率が最も高い「ｃａｂ」（タクシー）と教師画像１０ａを分類することができる。
【００１９】
図１に戻り、中間出力抽出部１３は、各教師画像１０ａを入力した画像分類器１２のＮＮにおける中間層の出力値を取得する。ＮＮは、入力層に入力された画像を起点にして中間層において多段の畳み込み処理を行い、最終出力として出力層より分類結果１０ｂを出力する。中間出力抽出部１３では、画像分類器１２のＮＮより、最終出力に至る途中の計算結果、すなわち畳み込み層などの中間層の出力値を中間出力として取得する。
【００２０】
例えば、ＣＮＮでは、各層に複数次元の畳み込みフィルタが存在し、縦×横×畳み込み次元数が各層の中間出力となる。分類原因となる特徴に対応する画像的要素は、位置に依存しないことが多い。例えば、画像における絶対位置は、撮影する角度等で容易に変わるのであまり意味を持たない。また、画像における相対位置は、手前の改装の畳み込みで反映されるものと考えられる。このため、中間出力抽出部１３では、原因推定に特化するため、各層における縦×横の値の中から最大値を代表値として選び、この代表値を中間出力とする。そして、中間出力抽出部１３は、各層の中間出力について、入力した教師画像１０ａセットの枚数分の値を取得する。
【００２１】
次いで、中間出力抽出部１３は、取得した中間出力について、値の大小をもとにいくつかのクラスにクラス分けする。すなわち、中間出力抽出部１３は、クラス分け部の一例である。
【００２２】
具体的には、中間出力抽出部１３は、各層の中間出力ごとに、入力した教師画像１０ａセットの枚数分の値から平均値を求める。次いで、中間出力抽出部１３は、求めた平均値を基準にして、各層の中間出力をクラス化する。なお、クラス分けする数や、クラス分類の基準は任意なものであってもよい。平均を基準とした３クラスへの分類例としては、平均値の１２５％以上＝Ｌ、平均値の７５％未満＝Ｓ、それ以外（平均値近傍）＝Ｍとしてクラス分けする。
【００２３】
また、中間出力抽出部１３は、クラス分類の基準として求めた平均値などを、運用時に適用するためにメモリなどに格納しておく。これにより、運用時においても、学習時の同じ条件でクラス分けを行うことができる。
【００２４】
情報生成部１４は、中間出力抽出部１３のクラス分け結果、すなわち各教師画像１０ａにおける中間出力のクラス分け結果をもとに、各層の中間出力について中間出力のクラスごとの条件付確率表（Conditional  Probability  Table：以下、ＣＰＴと称する場合がある）を求める。そして、情報生成部１４は、求めたＣＰＴより画像分類器１２のＮＮの中間出力がいずれのクラスであるかを条件として所定の特徴から分類結果に至る因果関係を確率で記述したベイジアンネットワーク（以下、ＢＮと略す場合がある）に関するベイジアンネットワーク構築情報１４ａを生成する。すなわち、情報生成部１４は、生成部の一例である。
【００２５】
ＢＮは、エッジの元が原因ノード（例えば原因となる特徴）、結果が結果ノード（例えば分類結果）、原因ノードから結果ノードに至るまでの状態（条件）を中間のノード（例えば中間出力）とする非循環有向グラフである。ベイジアンネットワーク構築情報１４ａは、このＢＮを構築するための情報であり、例えば各ノードの依存関係を表すグラフ構造の情報と、各ノードの条件付確率表とを含むものである。
【００２６】
図１−２に示すように、運用時の機能構成として、画像分類装置１は、画像分類器１２、中間出力抽出部１３、画像分類制御部１５、原因推定用ベイジアンネットワーク構築部１６（以下、構築部１６と略す）、原因推定器１７および出力部１８を有する。
【００２７】
画像分類制御部１５は、運用時における各部の処理を制御する。具体的には、画像分類制御部１５は、運用開始時におけるユーザの操作などをもとに、分類の対象となる対象画像１５ａ（原因ラベルなし）の入力を受け付ける。次いで、画像分類制御部１５は、対象画像１５ａを画像分類器１２に入力する。すなわち、画像分類制御部１５は、入力部の一例である。
【００２８】
画像分類器１２は、入力された対象画像１５ａについて、教師画像１０ａと同様に分類結果を求め、画像分類制御部１５に出力する。中間出力抽出部１３は、教師画像１０ａと同様、対象画像１５ａを入力した画像分類器１２のＮＮにおける中間層の出力値を取得し、クラス分けを行う。
【００２９】
また、画像分類制御部１５は、対象画像１５ａについて中間出力抽出部１３がクラス分けした中間出力をもとに、ベイジアンネットワーク構築情報１４ａより構築部１６が構築したＢＮである原因推定器１７を参照する。次いで、画像分類制御部１５は、クラス分けした中間出力に対応する既知の確率値をもとに、ベイズの定理を用いてＮＮの分類結果が所定の特徴を原因とする確度を計算する。すなわち、画像分類制御部１５は、計算部の一例である。
【００３０】
構築部１６は、ベイジアンネットワーク構築情報１４ａをもとにＢＮを構築する。原因推定器１７は、構築部１６によりベイジアンネットワーク構築情報１４ａをもとに構築されたＢＮである。
【００３１】
出力部１８は、対象画像１５ａの画像分類器１２による分類結果および原因推定器１７を用いて計算した、分類結果が所定の特徴を原因とする確度をファイルやディスプレイなどに出力する。
【００３２】
図３は、実施形態にかかる画像分類装置１の動作例を説明する説明図である。図３に示すように、学習時（Ｓ１）において、画像記憶部１０は、所定の特徴部分が含まれる画像群と、所定の特徴部分が含まれない画像群とを含む教師画像１０ａのセットを画像分類器１２に入力する。これにより、画像分類器１２からは、各教師画像１０ａについて分類結果１０ｂを得る。また、中間出力抽出部１３は、各教師画像１０ａにおけるＮＮ各層の中間出力群（各画像中間出力群１３ａ）を得て、各画像中間出力群１３ａの値をクラス分けする。情報生成部１４は、中間出力抽出部１３のクラス分け結果をもとに、ＢＮを構築するためのベイジアンネットワーク構築情報１４ａを生成する。
【００３３】
次いで、運用時（Ｓ２）では、学習時（Ｓ１）に生成したベイジアンネットワーク構築情報１４ａをもとに構築した原因推定器１７により、対象画像１５ａの画像分類器１２による分類結果が所定の特徴を原因とする確度を示す原因推定結果１８ａを得る。
【００３４】
具体的には、画像分類制御部１５は、対象画像１５ａを画像分類器１２に入力する。これにより、画像分類器１２からは、対象画像１５ａについて分類結果１０ｂを得る。また、中間出力抽出部１３は、対象画像１５ａにおけるＮＮ各層の中間出力群（対象画像中間出力群１３ｂ）を得て、対象画像中間出力群１３ｂの値をクラス分けする。画像分類制御部１５は、中間出力抽出部１３のクラス分け結果をもとに原因推定器１７を参照し、ベイズの定理を用いて対象画像１５ａの分類結果が所定の特徴を原因とする確度を計算する。出力部１８は、画像分類制御部１５の計算結果を原因推定結果１８ａとしてディスプレイなどに出力する。
【００３５】
ここで、上記の処理の詳細を説明する。図４は、実施形態にかかる画像分類装置１の動作例を示すフローチャートである。なお、図４におけるフローチャートにおいて、Ｓ１０〜Ｓ１４は学習時（Ｓ１）の処理を示し、Ｓ１５は運用時（Ｓ２）の処理を示す。
【００３６】
図４に示すように、処理が開始されると、学習制御部１１は、画像記憶部１０に格納された教師画像群（各教師画像１０ａ）の画像分類器１２への入力を行う（Ｓ１０）。一般に、画像分類器１２における学習済みのＮＮは、正方形の画像を用いて学習されている。よって、拡縮に対しては比較的頑強であることから、教師画像群の画像サイズや縦横比は問わず、学習制御部１１は、ＮＮ入力時に固定サイズの正方形にリサイズして入力する。
【００３７】
次いで、中間出力抽出部１３は、画像分類器１２が各教師画像１０ａを処理する際の中間出力を取得する（Ｓ１１）。
【００３８】
図５は、中間出力を説明する説明図である。図５に示すように、中間出力抽出部１３は、畳み込み層などの中間層より、入力データ（例えば教師画像１０ａ）に対して畳み込みおよび活性化を行って得られた中間出力１０ｄをもとに、縦横平面の最大値（例えば「３」）を得ている。
【００３９】
具体的には、中間層では、教師画像１０ａに対し、例えば横線に強く反応するフィルタである畳み込みフィルタ１２ａを適用し、中間出力１０ｃを得る。畳み込みフィルタ１２ａによる畳み込みでは、元データ（中間出力１０ｃ）と畳み込みフィルタ１２ａの対応する箇所を掛けて全体を合計する。例えば、図示例の左上隅では、０×（−１）＋０×（−１）＋０×（−１）＋０×０＋０×０＋０×０＋０×１＋１×１＋１×１＝２となる。なお、画像の端部については０などで補完し、入力と出力の画像サイズを一致させてもよい。
【００４０】
次いで、活性化では、活性化関数（例えばＲｅＬＵ）を用いて中間出力１０ｃの値を活性化し、中間出力１０ｄを得る。例えば、ＣＮＮで一般的に適用される活性化関数ＲｅＬＵは、ｙ＝０（ｘ＜０），ｙ＝ｘ（ｘ＞＝０）なので、負の出力が０になる。
【００４１】
次いで、中間出力抽出部１３は、中間出力１０ｄから縦横の平面の中で最大値を代表値として選び（図示例では「３」）、この中間層の中間出力として取得する。
【００４２】
図示例は、グレースケール相当（１ｃｈ）の例だが、入力がカラー（３ｃｈ）の場合、各チャネル用のフィルタ３枚で１組として扱う。３ｃｈの入力それぞれに各ｃｈ用のフィルタを畳み込み、３ｃｈ分合計して出力となる。図示例では、９×９×１のデータに３×３×１の畳み込みフィルタ１２ａを畳み込んで７×７×１の
出力を得ているが、９×９×３のデータに３×３×３のフィルタを畳み込んだ場合も出力は７×７×１になる。また、ＣＮＮの設計で、各畳み込み層には出力のチャネル数が設定される。例えば、入力が３ｃｈで出力が６４ｃｈの場合は、この層で３枚１組の畳み込みフィルタが６４組用いられることを示し、各組の出力の最大値である中間出力も６４個存在することになる。
【００４３】
次いで、中間出力抽出部１３は、教師画像群の枚数から各層の中間出力ごとに平均値を計算し、計算した平均値を基準として、各層の中間出力をクラス化する（Ｓ１２）。例えば、中間出力抽出部１３は、平均値の１２５％以上＝Ｌ、平均値の７５％未満＝Ｓ、それ以外（平均値近傍）＝Ｍとして、平均を基準とした３クラスに中間出力をクラス分けする。
【００４４】
また、Ｓ１２では、中間出力抽出部１３は、各層の中間出力について、教師画像群（各画像記憶部１０）の原因（原因ラベル）ごとに、各クラスに分類された教師画像１０ａの枚数をカウントする。
【００４５】
一例として、教師画像群（各教師画像１０ａ）は、ｃａｂ（タクシー）と分類されるものであり、原因ラベルについて、（Ｙｅｌｌｏｗ）が１５枚、（Ｓｉｇｎ）が１５枚、（Ｙｅｌｌｏｗ）と（Ｓｉｇｎ）が１５枚であるものとする。よって、原因の観点では、（Ｙｅｌｌｏｗ）を含む（Ｔｒｕｅ）ものが３０枚、（Ｙｅｌｌｏｗ）を含まない（Ｆａｌｓｅ）が１５枚ある。同様に、（Ｓｉｇｎ）を含む（Ｔｒｕｅ）ものが３０枚、（Ｓｉｇｎ）を含まない（Ｆａｌｓｅ）が１５枚ある。ただし、（Ｙｅｌｌｏｗ）と（Ｓｉｇｎ）は独立しているので、以後の説明では（Ｙｅｌｌｏｗ）の場合を例示し、（Ｓｉｇｎ）については説明を省略する。
【００４６】
（Ｙｅｌｌｏｗ）を含む（Ｔｒｕｅ）ものが３０枚あるので、（Ｙｅｌｌｏｗ）を原因とする場合の、各層の中間出力における総事象数は３０である。つまり、中間出力をＬ、Ｍ、Ｓにクラス分けした場合の、Ｌのカウント数、Ｍのカウント数、Ｓのカウント数の合計は３０である。よって、（Ｙｅｌｌｏｗ）を含む（Ｔｒｕｅ）の教師画像１０ａについて、各クラスに分類された教師画像１０ａの枚数を（Ｙｅｌｌｏｗ）を原因とする場合の総事象数である３０で割れば、中間出力のクラスごとの条件付確率が得られる。同様に、（Ｙｅｌｌｏｗ）を原因としない（Ｆａｌｓｅ）の教師画像１０ａについて、各クラスに分類された教師画像１０ａの枚数を（Ｙｅｌｌｏｗ）を原因としない場合の総事象数である１５で割れば、中間出力のクラスごとの条件付確率が得られる。
【００４７】
次いで、中間出力抽出部１３は、特徴の有無における中間出力について、各クラスに分類された教師画像１０ａのカウント数をもとに、分類原因（特徴）の有無に対する中間出力の変化傾向の強さ、すなわち、特徴に対する中間出力の反応の強さを評価する寄与指数を計算する。この寄与指数は、評価値の一例である。寄与指数は、特徴の有無（Ｔｒｕｅ／Ｆａｌｓｅ）でＬ、Ｓの事象数が大きく変わる中間出力を選別するための値であればよく、例えば（Ｙｅｌｌｏｗ）の場合は次の式で計算できる。（Ｙｅｌｌｏｗ）の寄与指数＝（ｍａｘ（ＹＴＬ，ＹＴＳ）／ｍｉｎ（ＹＴＬ，ＹＴＳ）×（ｍａｘ（ＹＦＬ，ＹＦＳ）／ｍｉｎ（ＹＦＬ，ＹＦＳ）））
【００４８】
なお、ＹＴＬ，ＹＴＳ，ＹＦＬ，ＹＦＳは次のとおりである。
ＹＴＬ，ＹＴＳ＝（Ｙｅｌｌｏｗ）が（Ｔｒｕｅ）の教師画像１０ａで、中間出力のクラス分類がＬになった数とＳになった数
ＹＦＬ，ＹＦＳ＝（Ｙｅｌｌｏｗ）が（Ｆａｌｓｅ）の教師画像１０ａで、中間出力のクラス分類がＬになった数とＳになった数
【００４９】
また、中間出力抽出部１３は、寄与指数の計算の前処理として、反応が弱そうな中間出力は予め除外しておいてもよい。例えば、中間出力抽出部１３は、（Ｙｅｌｌｏｗ）の場合、（Ｔｒｕｅ）の画像群に対してＬの割合が多く、（Ｆａｌｓｅ）の画像群に対してＳの割合が多い中間出力（もしくはＳ、Ｌが逆）を計算対象とし、それ以外は除外する。また、中間出力抽出部１３は、他の特徴（例えば（Ｓｉｇｎ））についても同様に処理することで、寄与指数を求める。
【００５０】
次いで、情報生成部１４は、中間出力抽出部１３が中間出力それぞれについて計算した寄与指数に基づき、複数の中間出力の中でベイジアンネットワーク（ＢＮ）に組み入れる中間出力を選別する（Ｓ１３）。具体的には、情報生成部１４は、複数の中間出力を寄与指数が大きい順に並べ、上位の中間出力から順にＢＮに組み入れるものとして選別する。これにより、画像分類装置１では、特徴に対する反応の強い中間出力をＢＮに組み入れることができる。なお、ＢＮに組み込む中間出力の数については、任意であり、例えばユーザが事前に設定するものであってもよい。
【００５１】
次いで、情報生成部１４は、Ｓ１３で組み入れるものと選別した中間出力について、クラス化した中間出力を用いたＢＮの作成を行う（Ｓ１４）。具体的には、情報生成部１４は、所定の特徴を含む（例えば（Ｙｅｌｌｏｗ）が（Ｔｒｕｅ））教師画像群および所定の特徴を含まない（例えば（Ｙｅｌｌｏｗ）が（Ｔｒｕｅ））教師画像群について、各クラスに分類された教師画像１０ａの枚数をカウントし、各クラスの条件付確率表（ＣＰＴ）を求める。そして、情報生成部１４は、得られた各クラスのＣＰＴを用いてＢＮを作成する。
【００５２】
図６は、ベイジアンネットワークの一例を示す説明図である。図６に示すように、ベイジアンネットワーク２０は、所定の特徴（例えば（Ｙｅｌｌｏｗ））から分類結果（例えば（タクシー））に至る因果関係を示す非循環有向グラフである。具体的には、ベイジアンネットワーク２０において、エッジの元が原因（特徴）となるノード２１であり、ノード２１から途中のノード２３を経た先が結果となるノード２２である。ノード２３は、結果に至るまでの複数の中間出力（中間出力−１、中間出力−２…中間出力−ｎ）に対応する。
【００５３】
情報生成部１４は、ベイジアンネットワーク２０について、ノード２２に至るノード２３それぞれのＣＰＴを求め、各ノードの繋がりを示す情報とともにベイジアンネットワーク構築情報１４ａを生成する。
【００５４】
例えば、情報生成部１４は、原因（特徴）が（Ｙｅｌｌｏｗ）であるノード２１の値は目的地で更新されるので、初期値として（Ｔｒｕｅ）と（Ｆａｌｓｅ）ともに０．５とする。そして、情報生成部１４は、各中間出力のノード２３では、特徴を含む（例えばＹｅｌｌｏｗがＴｒｕｅ）教師画像群と、特徴を含まない（例えばＹｅｌｌｏｗがＦａｌｓｅ）の教師画像群のクラス分類結果を用いてＣＰＴを計算する。
【００５５】
例えば、情報生成部１４は、図６の下段に示すように、原因（特徴）が（Ｙｅｌｌｏｗ）に関する中間出力−ｎについて、Ｌ、Ｍ、Ｓの状態ごとにＣＰＴを計算する。
【００５６】
なお、ＹＴＬ、ＹＴＭ、ＹＴＳ、ＹＴＴ、ＹＦＬ、ＹＦＭ、ＹＦＳ、ＹＦＴについては次のとおりである。
ＹＴＬ＝ＹｅｌｌｏｗがＴｒｕｅの画像群のうち、中間出力−ｎでクラス分類がＬになった枚数
ＹＴＭ＝ＹｅｌｌｏｗがＴｒｕｅの画像群のうち、中間出力−ｎでクラス分類がＭになった枚数
ＹＴＳ＝ＹｅｌｌｏｗがＴｒｕｅの画像群のうち、中間出力−ｎでクラス分類がＳになった枚数
ＹＴＴ＝ＹＴＬ＋ＹＴＭ＋ＹＴＳ＝ＹｅｌｌｏｗがＴｒｕｅの画像群の総枚数
ＹＦＬ＝ＹｅｌｌｏｗがＦａｌｓｅの画像群のうち、中間出力−ｎでクラス分類がＬになった枚数
ＹＦＭ＝ＹｅｌｌｏｗがＦａｌｓｅの画像群のうち、中間出力−ｎでクラス分類がＭになった枚数
ＹＦＳ＝ＹｅｌｌｏｗがＦａｌｓｅの画像群のうち、中間出力−ｎでクラス分類がＳになった枚数
ＹＦＴ＝ＹＦＬ＋ＹＦＭ＋ＹＦＳ＝ＹｅｌｌｏｗがＦａｌｓｅの画像群の総枚数
【００５７】
図４に戻り、運用時において、画像分類制御部１５は、対象画像１５ａを画像分類器１２に入力し、画像分類器１２による画像分類を行う。この画像分類において、画像分類制御部１５は、画像分類器１２の中間出力値の、ベイジアンネットワーク構築情報１４ａをもとに構築したＢＮ入力による原因推定を行う（Ｓ１５）。すなわち、画像分類制御部１５は、画像分類器１２の中間出力をクラス分けした結果を中間出力抽出部１３より得て、クラス分け結果をもとにＢＮを参照する。次いで、画像分類制御部１５は、クラス分けした中間出力に対応する既知の確率値をもとに、ベイズの定理を用いて、分類結果が所定の特徴を原因とする確度を計算する。
【００５８】
具体的には、ＢＮの機能（ベイズの定理）として、ネットワークの各ノードのＣＰＴおよび確定したノードの状態があれば、残りの確定していないノードの状態、すなわち、原因（Ｙｅｌｌｏｗなど）の状態（Ｔｒｕｅ／Ｆａｌｓｅ）の確率を、確定したノードを反映して計算できる。
【００５９】
例えば、各中間出力は、近似的に独立と仮定する。この中間出力が２（Ｉ１，Ｉ２）で、ある画像を入力してＩ１＝Ｌ，Ｉ２＝Ｓであった場合に、原因（Ｙｅｌｌｏｗ）が該当する（Ｔｒｕｅ，ＹＴ）、該当しない（Ｆａｌｓｅ，ＹＦ）確率の計算をベイズの定理を用いて計算する。
【００６０】
ベイズの定理は、Ｐ（Ｂ｜Ａ）＝Ｐ(Ａ｜Ｂ）＊Ｐ（Ｂ）／Ｐ（Ａ）であるので、Ｐ（ＹＴ｜Ｉ１Ｌ，Ｉ２Ｓ）、Ｐ（ＹＦ｜Ｉ１Ｌ，Ｉ２Ｓ）は次のとおりになる。
Ｐ（ＹＴ｜Ｉ１Ｌ，Ｉ２Ｓ）＝Ｐ（ＹＴ｜Ｉ１Ｌ）＊Ｐ（ＹＴ｜Ｉ２Ｓ）＝（Ｐ（Ｉ１Ｌ｜ＹＴ）＊Ｐ（ＹＴ）／Ｐ（Ｉ１Ｌ））＊（Ｐ（Ｉ２Ｓ｜ＹＴ）＊Ｐ（ＹＴ）／Ｐ（Ｉ２Ｓ））
Ｐ（ＹＦ｜Ｉ１Ｌ，Ｉ２Ｓ）＝Ｐ（ＹＦ｜Ｉ１Ｌ）＊Ｐ（ＹＦ｜Ｉ２Ｓ）＝（Ｐ（Ｉ１Ｌ｜ＹＦ）＊Ｐ（ＹＦ）／Ｐ（Ｉ１Ｌ））＊（Ｐ（Ｉ２Ｓ｜ＹＦ）＊Ｐ（ＹＦ）／Ｐ（Ｉ２Ｓ））
【００６１】
ＢＮを参照することで、上記の式における右辺は既知であるので、Ｐ（ＹＴ｜Ｉ１Ｌ，Ｉ２Ｓ）、Ｐ（ＹＦ｜Ｉ１Ｌ，Ｉ２Ｓ）を計算することができる。よって、画像分類制御部１５は、対象画像１５ａにおいて原因（Ｙｅｌｌｏｗ）が該当するか否かの確度を求めることができる。
【００６２】
出力部１８は、対象画像１５ａの画像分類器１２による分類結果とともに、画像分類制御部１５が計算した、分類結果が所定の特徴を原因とする確度を出力する。この出力では、確率値をそのまま出力してもよいし、原因に合致するか否かを所定の閾値（例えば平均値）で２値化して出力してもよい。
【００６３】
（具体例について）
次に、りんごの等級分類に画像分類装置１を適用した具体例を説明する。各りんごの市場価値の目安として、大きさを示す階級と、品質を示す等級とがある。階級は重さからほぼ自明であるが、等級は、色、形、傷の有無など、様々な原因が影響する。したがって、ある等級に分類された原因が解析できると、原因に対応した農薬散布、剪定などの栽培方針を決めることができ、等級のより高いりんごの大量生産が望めることとなる。
【００６４】
まず、前提として、学習済みのＮＮでりんごの画像から自動で等級判定システムがあるものとする。具体的には、入力は、りんご画像（カラー：ＲＧＢを３チャネル，サイズ：固定（３００×３００など））をベクトル化したものとする。出力は、りんごの等級の２値出力（秀または優であり、秀＞優の順に価値があり、秀の確率と優の確率は足して１とする）とする。
【００６５】
図７は、ニューラルネットワークの一例を示す説明図である。図７に示すように、前提とするニューラルネットワーク３０は、入力層（ＩｎｐｕｔＬａｙｅｒ）と、出力層（Ａｃｔｉｖａｔｉｏｎ）を除き、１０層の畳み込み層３１（Ｃｏｎｖ２Ｄ）を有するものとする。このニューラルネットワーク３０は、秀のりんご画像：１万枚と、優のりんご画像：１万枚とにより学習済みである。また、ニューラルネットワーク３０は、上記の学習により、未知のりんご画像に対する秀と優の判定を、正解率９７％程度で実現できるものとする。
【００６６】
農家（ユーザ）は、等級が優のりんご画像群のうち、色・形・傷の３つの原因（特徴）について、原因を含む画像群と含まない画像群の教師画像１０ａのセットを作成する。
【００６７】
例えば、次のような教師画像１０ａのセットを作成する。
・色の原因を含む優の画像群(色に問題があり優になっている)：５０枚
・色の原因を含まない優の画像群（優ではあるが色が問題ではない）：５０枚
・形の原因を含む優の画像群（形に問題があり優になっている）：５０枚
・形の原因を含まない優の画像群（優ではあるが形が問題ではない）：５０枚
・傷の原因を含む優の画像群（傷があることで優になっている）：５０枚
・傷の原因を含まない優の画像群（優ではあるが傷が問題ではない）：５０枚
【００６８】
以上、合計３００枚の教師画像１０ａのセットを作成する。ただし、ニューラルネットワーク３０の学習時の教師データと重複していてもよいものとする。また、最終的な精度の検証のために、上記とは別に各分類５〜１０枚程度の検証用画像群を用意してもよい。
【００６９】
ついで、ニューラルネットワーク３０に対し、教師画像１０ａのセットの３００枚の画像を入力し、中間出力抽出部１３は、中間出力を取得する。
【００７０】
教師画像１０ａのセットはすべて優のりんご画像から選んでいるので、各画像の判定結果はほぼすべて優になる。各層の出力は、「縦×横×フィルタ次元数」の形式になっている。例えば図７に例示したニューラルネットワーク３０の１層目の畳み込み層３１（ｃｏｎｖ２ｄ＿１）の出力は、「２９８×２９８×６４」であるが、縦×横の中では最大値を代表値として用いるので、ｃｏｎｖ２ｄ＿１で利用可能な中間出力は６４個となる。中間出力抽出部１３は、教師画像１０ａのセットの３００枚それぞれについて、全ての畳み込み層の中間出力の値を取得してファイル等に保存する。
【００７１】
図８−１は、中間値ファイルの一例を示す説明図である。図８−１に示すように、中間出力抽出部１３は、各原因を含む／含まない画像グループごとに中間出力の値を中間値ファイル５０として保存する。なお、中間出力を識別して使用する要件はあるので、画像グループと中間出力に一意名を付けて中間値ファイル５０に保存する。
【００７２】
次いで、中間出力抽出部１３は、教師画像１０ａのセットに対するニューラルネットワーク３０の中間出力値のデータから、各中間出力の平均値と、中間出力値をクラス化する場合の基準、および各中間出力に対する教師画像１０ａセットのグループ別のクラス分類枚数を計算する。次いで、中間出力抽出部１３は、計算結果をファイル等に保存する。
【００７３】
図８−２は、計算結果ファイルの一例を示す説明図である。中間出力抽出部１３は、上記の計算結果を図８−２に示すような計算結果ファイル５１として保存する。
【００７４】
具体的には、中間出力の平均値は、教師画像１０ａセットの３００枚すべての平均値である。中間出力抽出部１３は、この平均値を基準に、平均値の１２５％以上＝Ｌ，平均値の７５％未満＝Ｓ，それ以外＝Ｍとする閾値を求める。そして、中間出力抽出部１３は、求めた閾値を用いてクラス分けを行う。図示例では、「ｃｏｎｖ２ｄ＿１＿０」が中間出力について、Ｌ：２１枚、Ｍ：１８枚、Ｓ：１１枚にクラス分けしている。なお、中間出力ごとの平均値とクラス分類基準（閾値）は運用時にも使用するので、アクセスしやすいように中間出力ごとに結果をまとめて計算結果ファイル５１に保存する。
【００７５】
次いで、情報生成部１４は、色、形、傷それぞれの原因の有無を推定するベイジアンネットワークを作成するため、それぞれの原因を含む画像グループと含まない画像グループの中間出力値の傾向の差が大きい中間出力を選別する。
【００７６】
例えば、色の原因について、情報生成部１４は、寄与指数より中間出力（ｃｏｎｖ２ｄ＿１＿０など）の順位付けを行う。寄与指数については、色の原因を含むグループ（ｃｏｌｏｒ＿ｔｒｕｅ）と含まないグループ（ｃｏｌｏｒ＿ｆａｌｓｅ）双方でのＬ／Ｍ／Ｓの内訳は計算済みであり、Ｍは除外してＬとＳを用いて求める。また、ｃｏｌｏｒ＿ｔｒｕｅでＬ＞Ｓの場合にｃｏｌｏｒ＿ｆａｌｓｅでＳ＞Ｌ、またはその逆になっていない中間出力は、寄与指数の計算に至らず足切りとする。そして、残った各中間出力について寄与指数を計算し、大きいものから順に並べる。
【００７７】
例えば、ニューラルネットワーク３０に含まれる中間出力の総計は３９０４個であるが、１００個の中間出力を用いてＢＮを作成することとし、判定寄与指数上位１００位までの中間出力を選別する。色と同様に、形と傷についても寄与指数を計算して上位１００位までの中間出力を選別する。原因ごとに別々のＢＮを作成するため、中間出力の選別は原因ごとに完全に独立した作業となり、中間出力の重複などについて考慮する必要は無いものとする。情報生成部１４は、原因ごとの中間出力の選別結果を中間出力リストとして保存する。
【００７８】
図８−３は、中間出力リストの一例を示す説明図である。図８−３に示すように、情報生成部１４は、「色（ｃｏｌｏｒ）」原因の中間出力を寄与指数の上位１００まで列挙した中間出力リスト５２ａを保存する。同様に、「形（ｓｈａｐｅ）」原因、「傷（ｄａｍｅｇｅ）」原因についても中間出力リスト５２ｂ、５２ｃとして保存する。
【００７９】
ここで、中間出力のクラス分類状況から寄与指数を計算して中間出力を選別する具体例を説明する。図８−４は、クラス分類テーブルの一例を示す説明図である。
【００８０】
図８−４に示すように、中間出力のクラス分類状況は、クラス分類テーブル５３のとおりであるものとする。なお、説明のため、原因は色（ｃｏｌｏｒ）とし、中間出力は、ｃｏｎｖ２ｄ＿１＿０、ｃｏｎｖ２ｄ＿１＿１、ｃｏｎｖ２ｄ＿１＿２の３つとする。教師画像１０ａセットにおいて、色の原因を含むグループ（ｃｏｌｏｒ＿ｔｒｕｅ）は５０枚、含まないグループ（ｃｏｌｏｒ＿ｆａｌｓｅ）も５０枚とする。クラス分類テーブル５３は、この教師画像１０ａセットをニューラルネットワーク３０に入力して各中間出力の値をＬ／Ｍ／Ｓにクラス化した結果とする。
【００８１】
情報生成部１４は、例えばクラス分類テーブル５３をもとに、寄与指数を計算する。ここで、ｃｏｌｏｒ＿ｔｒｕｅとｃｏｌｏｒ＿ｆａｌｓｅでＬとＳの大小関係が逆になっていない中間出力は足切り対象となる。ｃｏｎｖ２ｄ＿１＿２は両者ともにＳ＞Ｌの関係となっているので、足切り対象（判定寄与指数を計算しない）となる。
【００８２】
色についての寄与指数の計算は次の式のとおりである。
寄与指数＝（ｍａｘ（ＣＴＬ，ＣＴＳ）／ｍｉｎ（ＣＴＬ，ＣＴＳ））×（  ｍａｘ（ＣＦＬ，ＣＦＳ）／ｍｉｎ（ＣＦＬ，ＣＦＳ））
【００８３】
なお、ＣＴＬ，ＣＴＳは、ｃｏｌｏｒ＿ｔｒｕｅの画像で、中間出力のクラス分類がＬになった数とＳになった数である。ＣＦＬ，ＣＦＳは、ｃｏｌｏｒ＿ｆａｌｓｅの画像で、中間出力のクラス分類がＬになった数とＳになった数である。
【００８４】
色について、ｃｏｎｖ２ｄ＿１＿０では、寄与指数＝（２１／１１）×（２５／１６）＝２．９８３である。また、色について、ｃｏｎｖ２ｄ＿１＿１では、寄与指数＝（３８／４）×（２９／７）  ＝  ３９．３５７である。これら寄与指数により、色の原因について用いる中間出力は以下の順となる。
１：ｃｏｎｖ２ｄ＿１＿１
２：ｃｏｎｖ２ｄ＿１＿０
使用しない：ｃｏｎｖ２ｄ＿１＿２
【００８５】
次いで、情報生成部１４は、色、形、傷の各原因の有無を推定するＢＮを構築するためのベイジアンネットワーク構築情報１４ａを生成する。なお、ＢＮの構築に関しては、様々な公知のソフトウエアを用いいてもよい。例えば、Ｐｙｔｈｏｎ用のＯＳＳであればＰｏｍｅｇｒａｎａｔｅなどがある。
【００８６】
例えば、色の原因についてのＢＮを構築することとすると、一般に、ＢＮのノードには任意の名前を付けることができるので、目的となる原因のノード２１（例えばＹｅｌｌｏｗ）には、原因の名称（色の原因なら”色”や”ｃｏｌｏｒ”など）を付ける。また、中間出力のノード２３（例えば中間出力−１）は、中間出力リスト５２ａに選別した上位１００位までの中間出力に対応する１００個のノードを作成し、それぞれの中間出力の一意名（ｃｏｎｖ２ｄ＿１＿０など）を付ける。なお、教師画像１０ａセットに対するニューラルネットワーク３０の出力はすべて優になるので、判定結果のノード２２は作成しなくてよい。ＣＰＴについては、色の原因のノード２１では、Ｔｒｕｅ（色の原因を含んでいる）とＦａｌｓｅ（色の原因を含んでいない）ともに確率は初期値として０．５とする。各中間出力のノード２３では、グループ別のクラス分類数を用いて、色がＴｒｕｅ（ｃｏｌｏｒ＿ｔｒｕｅ）の時のＬ／Ｍ／Ｓの確率および色がＦａｌｓｅ（ｃｏｌｏｒ＿ｆａｌｓｅ）の時のＬ／Ｍ／Ｓの確率を計算してＣＰＴとして設定する。色以外にも形および傷に関するＢＮを同様に作成し、構築に利用したソフトウエアの形式でベイジアンネットワーク構築情報１４ａを保存する。
【００８７】
続いて、適用時について説明する。適用においては、収穫時に撮影したりんごの画像を対象画像１５ａとするものとする。なお、この対象画像１５ａには、ＧＰＳ（Global  Positioning  System）を用いた収穫時の位置情報が付与されているものとする。
【００８８】
図９−１は、収穫時における対象画像１５ａの撮影を説明する説明図である。図９−１に示すように、ユーザＨは、カメラ６０、ＧＰＳ６１および写真ストレージ６２を有する例えばスマートフォンなどの携帯端末２を用いて、収穫時のりんごを撮影するものとする。これにより、写真ストレージ６２には、りんごを含む対象画像１５ａが収穫時の位置情報（ＧＰＳ座標）とともに格納される。
【００８９】
図９−２は、対象画像１５ａの分析を説明する説明図である。図９−２に示すように、撮影した対象画像１５ａを画像分類装置１に入力することで、中間出力抽出部１３による等級分類の分類結果が得られる。また、画像分類装置１は、画像分類器１２の中間出力値をクラス化し、色、形、傷原因のそれぞれに関するベイジアンネットワーク構築情報１４ａをもとに構築した原因推定器１７を参照して色、形、傷それぞれの原因の確度を計算する。なお、色については原因推定器（色原因）１７ａにより、形については原因推定器（形原因）１７ｂにより、傷については原因推定器（傷原因）１７ｃにより、確度の計算が行われる。
【００９０】
具体的には、クラス化した中間出力値が求まると、ＢＮを参照することで、その条件下での色、形、傷の原因が含まれる確率が計算できる。例えば、中間出力値が決まった時の原因のＴｒｕｅ／Ｆａｌｓｅの確率は、ベイズの定理から原因がＴｒｕｅ／Ｆａｌｓｅである時の中間出力値の各クラスの確率から求めることができる。すなわち、ＢＮを用いて色、形、傷それぞれのＴｒｕｅ／Ｆａｌｓｅの確率が計算できる。例えば、色原因のＢＮでは、優のりんご画像入力時の中間出力のうち色原因のＢＮに含まれる１００個の中間出力値を取得してクラス化し、２個の中間出力を使用する場合の式を１００個に拡張した式で計算すると、色がＴｒｕｅの確率と色がＦａｌｓｅの確率が求まる。よって、色がＴｒｕｅの確率の方が高かった場合や、平均値等ストレージ１９に格納された平均値より高かった場合に、その画像が優と判定された原因のひとつが色の問題であったと判断できる。同様に、形と傷についても独立に判断できる。なお、色、形、傷ともにＴｒｕｅの確率の方が平均値より低い場合は、原因不明と判断してもよい。
【００９１】
出力部１８は、原因推定器（色原因）１７ａより求めた色の原因（問題）の有無、原因推定器（形原因）１７ｂより求めた形の原因（問題）の有無、原因推定器（傷原因）１７ｃより求めた傷の原因（問題）の有無をディスプレイなどに出力する。
【００９２】
例えば、出力部１８は、対象画像１５ａのＧＰＳ座標をもとに、収穫時のりんごの位置を地図上に表示した結果マップ１８ｂにおいて、画像分類器１２における分類結果（等級）、優における色原因、形原因、傷原因の分布を表示してもよい。これにより、ユーザは、優と分類されたりんごと、その原因の分布状態を容易に確認することができる。したがって、ユーザは、原因の分布に対応した栽培方針を容易に決めることができる。
【００９３】
（効果について）
以上のように、画像分類装置１は、学習時（運用準備時）において、学習制御部１１の制御のもと、分類の特徴となる所定の特徴部分が含まれる画像群と、特徴部分が含まれない画像群とを含む複数の教師画像１０ａを画像記憶部１０より読み出す。次いで、画像分類装置１は、読み出した各教師画像１０ａを、画像を分類するニューラルネットワークである画像分類器１２に入力する。画像分類装置１の中間出力抽出部１３は、各教師画像１０ａを入力した画像分類器１２のニューラルネットワークの中間層における中間出力をクラス分けする。画像分類装置１の情報生成部１４は、各教師画像１０ａにおける中間出力のクラス分け結果をもとに、ニューラルネットワークの中間出力がいずれのクラスであるかを条件として所定の特徴から分類結果に至る因果関係を示す情報を生成する。具体的には、情報生成部１４は、各教師画像１０ａにおける中間出力のクラス分け結果をもとに中間出力のクラスごとの条件付確率表を求めて因果関係を確率で記述したベイジアンネットワークに関するベイジアンネットワーク構築情報１４ａを生成する。
【００９４】
これにより、画像分類装置１は、運用時において、ベイジアンネットワーク構築情報１４ａに基づく原因推定器１７、すなわちベイジアンネットワーク構築情報１４ａによるベイジアンネットワーク２０を構築する。そして、画像分類装置１は、分類の対象画像１５ａを画像分類器１２に入力した際の、画像分類器１２の中間出力のクラス分け結果をもとに、原因推定器１７より画像分類器１２の分類結果が所定の特徴を原因とする確度を求めることができる。
【００９５】
具体的には、画像分類装置１は、画像分類制御部１５の制御のもと、画像分類器１２に分類の対象画像１５ａを入力する。次いで、中間出力抽出部１３は、画像分類器１２のニューラルネットワークの中間層から得られた中間出力をクラス分けする。画像分類装置１の構築部１６は、ベイジアンネットワーク構築情報１４ａをもとに、ニューラルネットワークの中間出力がいずれのクラスであるかを条件として所定の特徴から分類結果に至る因果関係を確率で記述したベイジアンネットワーク２０、すなわち原因推定器１７を構築する。画像分類制御部１５は、中間出力抽出部１３がクラス分けした中間出力をもとに、原因推定器１７を参照して対象画像１５ａの入力に対する画像分類器１２の分類結果が所定の特徴を原因とする確度を計算する。出力部１８は、画像分類制御部１５が計算した確度を出力する。
【００９６】
画像を分類する画像分類器１２における中間層の中間出力は、連続値を取り、値の大小に絶対的な意味があるわけではない。しかしながら、分類の特徴となる所定の特徴部分が含まれる画像群の教師画像セットを画像分類器１２に入力した場合の中間出力と、特徴部分が含まれない画像群の教師画像セットを画像分類器１２に入力した場合の中間出力との関係では、意味を有するものとなる。例えば、同一の分類結果となる場合であっても、特徴部分の有無に応じて所定の中間出力となる事象数に偏りが生じる。
【００９７】
本実施形態では、このような中間出力の性質を利用し、画像分類器１２の中間出力を条件として所定の特徴から分類結果に至る因果関係を確率で記述したベイジアンネットワーク２０を作成する。これにより、運用時には、分類の対象画像１５ａにおける画像分類器１２の中間出力をもとにベイジアンネットワーク２０を参照することで、例えばベイズの定理により、分類結果が所定の特徴を原因とする確度を求めることができる。また、中間出力については、連続値のまま扱うのではなく、クラス分けにより、いずれかのクラスへの絞り込みが行われるようにする。これにより、過大で低速なＢＮとなることを抑止し、計算機資源の観点で効率よく分類原因の推定を行うことができる。
【００９８】
また、中間出力抽出部１３は、画像分類器１２のニューラルネットワークの中間層における複数の中間出力の平均を基準としてクラス分けを行う。これにより、画像分類装置１では、画像の特徴部分に対する画像分類器１２の中間出力の反応が最も弱いものと想定される平均を基準とし、画像の特徴部分に対する反応の強さに応じたクラス分けを行うことができる。
【００９９】
また、中間出力抽出部１３は、画像分類器１２のニューラルネットワークの中間層における複数の中間出力それぞれについて、平均から外れたクラスへ分けられた数に基づき、所定の特徴に関連する反応の強さを評価する評価値を計算する。そして、情報生成部１４は、複数の中間出力それぞれについて計算した評価値に基づき、複数の中間出力の中でベイジアンネットワーク２０に組み入れる中間出力を選別する。一例として、情報生成部１４は、評価値の高い順に、上位所定数の中間出力をベイジアンネットワーク２０に組み入れるように選別する。これにより、画像分類装置１は、計算量削減のためにベイジアンネットワーク２０の規模を小さくする場合であっても、例えば評価値の高い中間出力をベイジアンネットワーク２０に組み入れているので、原因推定の精度が低下することを抑止できる。
【０１００】
例えば、実験用画像セットによる評価として、同ノード数（１５）のＢＮを、評価値の上位順に抽出した中間出力で作成した場合と、ランダムに抽出した中間出力で作成した場合とで比較した。上位順に抽出した場合には正解率＝８３％なのに対し（何回試行しても結果は同一）、ランダムに抽出した場合には平均の正解率＝４９％（３回平均）であった。
【０１０１】
また、画像分類器１２のニューラルネットワーク（例えばニューラルネットワーク３０）は、畳み込みニューラルネットワーク（ＣＮＮ）である。そして、クラス分けする中間出力は、畳み込み層３１〜４０からの出力である。例えば、画像の分類に起因する特徴部分については、畳み込み層の中間出力において顕著に現れると考えられる。したがって、畳み込み層の中間出力をクラス分けして原因推定に関するベイジアンネットワーク２０のノードとして組み入れることで、ニューラルネットワークの分類結果に関する原因推定を精度よく行うことが可能となる。
【０１０２】
（その他）
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、任意に変更することができる。また、実施例で説明した具体例、分布、数値などは、あくまで一例であり、任意に変更することができる。
【０１０３】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１０４】
画像分類装置１で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、画像分類装置１で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
【０１０５】
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施形態と同様の機能を有するプログラムを実行するコンピュータ（ハードウエア）の一例を説明する。図１０は、プログラムを実行するコンピュータの一例を示す図である。
【０１０６】
図１０に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０１と、データ入力を受け付ける入力装置２０２と、モニタ２０３と、スピーカ２０４とを有する。また、コンピュータ２００は、記憶媒体からプログラム等を読み取る媒体読取装置２０５と、各種装置と接続するためのインタフェース装置２０６と、有線または無線により外部機器と通信接続するための通信装置２０７とを有する。また、コンピュータ２００は、各種情報を一時記憶するＲＡＭ２０８と、ハードディスク装置２０９とを有する。また、コンピュータ２００内の各部（２０１〜２０９）は、バス２１０に接続される。
【０１０７】
ハードディスク装置２０９には、上記の実施形態で説明した機能構成（例えば画像記憶部１０、学習制御部１１、画像分類器１２、中間出力抽出部１３、情報生成部１４、構築部１６、原因推定器１７および出力部１８）における各種の処理を実行するためのプログラム２１１が記憶される。また、ハードディスク装置２０９には、プログラム２１１が参照する各種データ２１２が記憶される。入力装置２０２は、例えば、コンピュータ２００の操作者から操作情報の入力を受け付ける。モニタ２０３は、例えば、操作者が操作する各種画面を表示する。インタフェース装置２０６は、例えば印刷装置等が接続される。通信装置２０７は、ＬＡＮ（Local  Area  Network）等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
【０１０８】
ＣＰＵ２０１は、ハードディスク装置２０９に記憶されたプログラム２１１を読み出して、ＲＡＭ２０８に展開して実行することで、実施形態で説明した機能構成に関する各種の処理を行う。なお、プログラム２１１は、ハードディスク装置２０９に記憶されていなくてもよい。例えば、コンピュータ２００が読み取り可能な記憶媒体に記憶されたプログラム２１１を、コンピュータ２００が読み出して実行するようにしてもよい。コンピュータ２００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にプログラム２１１を記憶させておき、コンピュータ２００がこれらからプログラム２１１を読み出して実行するようにしてもよい。
【０１０９】
以上の実施形態に関し、さらに以下の付記を開示する。
【０１１０】
（付記１）画像を分類するニューラルネットワークに対し、分類の特徴となる所定の特徴部分が含まれる画像群と、前記特徴部分が含まれない画像群とを含む教師画像群の各画像を入力し、
前記各画像を入力したニューラルネットワークの中間層における中間出力をクラス分けし、
前記各画像における中間出力のクラス分け結果をもとに、前記ニューラルネットワークの中間出力がいずれのクラスであるかを条件として前記所定の特徴から分類結果に至る因果関係を示す情報を生成する、
処理をコンピュータに実行させることを特徴とする学習プログラム。
【０１１１】
（付記２）前記クラス分けする処理は、前記中間層における複数の中間出力の平均を基準としてクラス分けを行う、
ことを特徴とする付記１に記載の学習プログラム。
【０１１２】
（付記３）前記クラス分けする処理は、前記所定の特徴部分が含まれる画像群の前記中間出力それぞれについて各クラスへ分けられた数と、前記所定の特徴部分が含まれない画像群の前記中間出力それぞれについて各クラスへ分けられた数とに基づき、前記所定の特徴に関連する反応の強さを評価する評価値を計算し、
前記生成する処理は、前記中間出力それぞれについて計算した評価値に基づき、複数の前記中間出力の中で前記ベイジアンネットワークに組み入れる中間出力を選別する、
ことを特徴とする付記２に記載の学習プログラム。
【０１１３】
（付記４）前記生成する処理は、前記各画像における中間出力のクラス分け結果をもとに前記中間出力のクラスごとの条件付確率表を求めて前記因果関係を確率で記述したベイジアンネットワークに関する情報を生成する、
ことを特徴とする付記１乃至３のいずれか一に記載の学習プログラム。
【０１１４】
（付記５）前記ニューラルネットワークは、畳み込みニューラルネットワークであり、
前記中間出力は、畳み込み層からの出力である、
ことを特徴とする付記１乃至４のいずれか一に記載の学習プログラム。
【０１１５】
（付記６）画像を分類するニューラルネットワークに分類の対象画像を入力し、
前記ニューラルネットワークの中間層から得られた中間出力をクラス分けし、
クラス分けした前記中間出力をもとに、前記ニューラルネットワークの中間出力がいずれのクラスであるかを条件として所定の特徴から分類結果に至る因果関係を示す情報を参照して前記対象画像の入力に対する前記ニューラルネットワークの分類結果が前記所定の特徴を原因とする確度を計算し、
計算した前記確度を出力する、
処理をコンピュータに実行させることを特徴とする画像分類プログラム。
【０１１６】
（付記７）画像を分類するニューラルネットワークに対し、分類の特徴となる所定の特徴部分が含まれる画像群と、前記特徴部分が含まれない画像群とを含む教師画像群の各画像を入力し、
前記各画像を入力したニューラルネットワークの中間層における中間出力をクラス分けし、
前記各画像における中間出力のクラス分け結果をもとに、前記ニューラルネットワークの中間出力がいずれのクラスであるかを条件として前記所定の特徴から分類結果に至る因果関係を示す情報を生成する、
処理をコンピュータが実行することを特徴とする学習方法。
【０１１７】
（付記８）前記クラス分けする処理は、前記中間層における複数の中間出力の平均を基準としてクラス分けを行う、
ことを特徴とする付記７に記載の学習方法。
【０１１８】
（付記９）前記クラス分けする処理は、前記所定の特徴部分が含まれる画像群の前記中間出力それぞれについて各クラスへ分けられた数と、前記所定の特徴部分が含まれない画像群の前記中間出力それぞれについて各クラスへ分けられた数とに基づき、前記所定の特徴に関連する反応の強さを評価する評価値を計算し、
前記生成する処理は、前記中間出力それぞれについて計算した評価値に基づき、複数の前記中間出力の中で前記因果関係を示す情報に組み入れる中間出力を選別する、
ことを特徴とする付記８に記載の学習方法。
【０１１９】
（付記１０）前記生成する処理は、前記各画像における中間出力のクラス分け結果をもとに前記中間出力のクラスごとの条件付確率表を求めて前記因果関係を確率で記述したベイジアンネットワークに関する情報を生成する、
ことを特徴とする付記７乃至９のいずれか一に記載の学習方法。
【０１２０】
（付記１１）前記ニューラルネットワークは、畳み込みニューラルネットワークであり、
前記中間出力は、畳み込み層からの出力である、
ことを特徴とする付記７乃至１０のいずれか一に記載の学習方法。
【０１２１】
（付記１２）画像を分類するニューラルネットワークに分類の対象画像を入力し、
前記ニューラルネットワークの中間層から得られた中間出力をクラス分けし、
クラス分けした前記中間出力をもとに、前記ニューラルネットワークの中間出力がいずれのクラスであるかを条件として所定の特徴から分類結果に至る因果関係を示す情報を参照して前記対象画像の入力に対する前記ニューラルネットワークの分類結果が前記所定の特徴を原因とする確度を計算し、
計算した前記確度を出力する、
処理をコンピュータが実行することを特徴とする画像分類方法。
【０１２２】
（付記１３）画像を分類するニューラルネットワークに対し、分類の特徴となる所定の特徴部分が含まれる画像群と、前記特徴部分が含まれない画像群とを含む教師画像群の各画像を入力する入力部と、
前記各画像を入力したニューラルネットワークの中間層における中間出力をクラス分けするクラス分け部と、
前記各画像における中間出力のクラス分け結果をもとに、前記ニューラルネットワークの中間出力がいずれのクラスであるかを条件として前記所定の特徴から分類結果に至る因果関係示す情報を生成する生成部と、
を有することを特徴とする学習装置。
【０１２３】
（付記１４）前記クラス分け部は、前記中間層における複数の中間出力の平均を基準としてクラス分けを行う、
ことを特徴とする付記１３に記載の学習装置。
【０１２４】
（付記１５）前記クラス分け部は、前記所定の特徴部分が含まれる画像群の前記中間出力それぞれについて各クラスへ分けられた数と、前記所定の特徴部分が含まれない画像群の前記中間出力それぞれについて各クラスへ分けられた数とに基づき、前記所定の特徴に関連する反応の強さを評価する評価値を計算し、
前記生成部は、前記中間出力それぞれについて計算した評価値に基づき、複数の前記中間出力の中で前記因果関係を示す情報に組み入れる中間出力を選別する、
ことを特徴とする付記１４に記載の学習装置。
【０１２５】
（付記１６）前記生成部は、前記各画像における中間出力のクラス分け結果をもとに前記中間出力のクラスごとの条件付確率表を求めて前記因果関係を確率で記述したベイジアンネットワークに関する情報を生成する、
ことを特徴とする付記１３乃至１５のいずれか一に記載の学習装置。
【０１２６】
（付記１７）前記ニューラルネットワークは、畳み込みニューラルネットワークであり、
前記中間出力は、畳み込み層からの出力である、
ことを特徴とする付記１３乃至１６のいずれか一に記載の学習装置。
【０１２７】
（付記１８）画像を分類するニューラルネットワークに分類の対象画像を入力する入力部と、
前記ニューラルネットワークの中間層から得られた中間出力をクラス分けするクラス分け部と、
クラス分けした前記中間出力をもとに、前記ニューラルネットワークの中間出力がいずれのクラスであるかを条件として所定の特徴から分類結果に至る因果関係を示す情報を参照して前記対象画像の入力に対する前記ニューラルネットワークの分類結果が前記所定の特徴を原因とする確度を計算する計算部と、
計算した前記確度を出力する出力部と、
を有することを特徴とする画像分類装置。
【符号の説明】
【０１２８】
１…画像分類装置
２…携帯端末
１０…画像記憶部
１０ａ…教師画像
１０ｂ…分類結果
１０ｃ、１０ｄ…中間出力
１１…学習制御部
１２…画像分類器
１２ａ…畳み込みフィルタ
１３…中間出力抽出部
１３ａ…各画像中間出力群
１３ｂ…対象画像中間出力群
１４…情報生成部
１４ａ…ベイジアンネットワーク構築情報
１５…画像分類制御部
１５ａ…対象画像
１６…構築部
１７…原因推定器
１７ａ…原因推定器（色原因）
１７ｂ…原因推定器（形原因）
１７ｃ…原因推定器（傷原因）
１８…出力部
１８ａ…原因推定結果
１８ｂ…結果マップ
１９…平均値等ストレージ
２０…ベイジアンネットワーク
２１〜２３…ノード
３０…ニューラルネットワーク
３１〜４０…畳み込み層
５０…中間値ファイル
５１…計算結果ファイル
５２ａ〜５２ｃ…中間出力リスト
５３…クラス分類テーブル
６０…カメラ
６１…ＧＰＳ
６２…写真ストレージ
２００…コンピュータ
２０１…ＣＰＵ
２０２…入力装置
２０３…モニタ
２０４…スピーカ
２０５…媒体読取装置
２０６…インタフェース装置
２０７…通信装置
２０８…ＲＡＭ
２０９…ハードディスク装置
２１０…バス
２１１…プログラム
２１２…各種データ
Ｈ…ユーザ
【図１−１】
2020035103.tif 000003
【図１−２】
2020035103.tif 000004
【図２】
2020035103.tif 000005
【図３】
2020035103.tif 000006
【図４】
2020035103.tif 000007
【図５】
2020035103.tif 000008
【図６】
2020035103.tif 000009
【図７】
2020035103.tif 000010
【図８−１】
2020035103.tif 000011
【図８−２】
2020035103.tif 000012
【図８−３】
2020035103.tif 000013
【図８−４】
2020035103.tif 000014
【図９−１】
2020035103.tif 000015
【図９−２】
2020035103.tif 000016
【図１０】
2020035103.tif 000017