(57)【要約】【課題】ＣＮＮ（畳み込みニューラルネットワーク）による画像の識別精度を向上させる。【解決手段】画像識別装置１００は、入力画像が入力される入力層及び入力画像の識別結果が出力される出力層以外の層である中間層を有し入力画像を識別するＣＮＮ識別器１１と、中間層において入力画像を識別するための特徴マップ情報を取得する特徴マップ取得手段と、中間層の活性化状態を可視化した活性化マップを生成する活性化マップ生成手段と、活性化マップ生成手段が生成した活性化マップを参照して、特徴マップ取得手段が取得した特徴マップを編集する編集手段と、編集手段により編集された特徴マップを用いて入力画像を識別する識別手段と、を備える。【選択図】図１
2020008896.tif 000002
【特許請求の範囲】
【請求項１】
入力画像が入力される入力層及び前記入力画像の識別結果が出力される出力層以外の層である中間層を有し、前記入力画像を識別する識別器と、
前記中間層において、前記入力画像を識別するための特徴マップを取得する特徴マップ取得手段と、
前記中間層の活性化状態を可視化した活性化マップを生成する活性化マップ生成手段と、
前記活性化マップ生成手段が生成した前記活性化マップを参照して、前記特徴マップ取得手段が取得した特徴マップを編集する編集手段と、
前記編集手段により編集された特徴マップを用いて前記入力画像を識別する識別手段と、
を備える画像識別装置。
【請求項２】
前記活性化マップ生成手段は、前記識別器が識別するクラス毎にＣＡＭ又はＧｒａｄ−ＣＡＭを用いて前記活性化マップを生成する、
請求項１に記載の画像識別装置。
【請求項３】
前記編集手段が前記特徴マップを編集する際に前記入力画像と前記活性化マップとを重ね合わせた画像を表示する出力手段をさらに備える、
請求項１又は２に記載の画像識別装置。
【請求項４】
前記中間層において、前記入力画像を識別する際に使用しない方が良いと推定される不要領域を取得する不要領域取得手段と、
前記中間層において、前記不要領域取得手段が取得した不要領域の情報を削除する不要領域削除手段と、
をさらに備える、
請求項１から３のいずれか１項に記載の画像識別装置。
【請求項５】
予め機械学習により前記不要領域の識別を学習しておいた識別器による自動編集手段をさらに備え、
前記編集手段は、前記自動編集手段を用いて前記特徴マップを編集する、
請求項４に記載の画像識別装置。
【請求項６】
入力画像が入力される入力層及び前記入力画像の識別結果が出力される出力層以外の層である中間層を有し、前記入力画像を識別する識別器と、
前記中間層において、前記入力画像を識別する際に使用しない方が良いと推定される不要領域を取得する不要領域取得手段と、
前記中間層において、前記不要領域取得手段が取得した不要領域の情報を削除する不要領域削除手段と、
を備える画像識別装置。
【請求項７】
前記不要領域取得手段は、前記出力層に接続している全結合層の直前の中間層において、前記不要領域を取得し、
前記不要領域削除手段は、前記出力層に接続している全結合層の直前の中間層において、前記不要領域取得手段が取得した不要領域の情報を削除する、
請求項４から６のいずれか１項に記載の画像識別装置。
【請求項８】
前記不要領域取得手段は、前記中間層の活性化状態を可視化した活性化マップを生成し、前記活性化マップから前記不要領域を取得する、
請求項４から７のいずれか１項に記載の画像識別装置。
【請求項９】
前記不要領域取得手段は、前記識別器が識別するクラス毎にＣＡＭ又はＧｒａｄ−ＣＡＭを用いて前記活性化マップを生成し、前記活性化マップから前記不要領域を取得する、
請求項８に記載の画像識別装置。
【請求項１０】
前記不要領域取得手段は、ＣＡＭ又はＧｒａｄ−ＣＡＭを用いて前記クラス毎に前記活性化状態を取得し、前記入力画像の識別対象となるクラスの前記活性化状態のみを用いて前記活性化マップを生成し、前記活性化マップから前記不要領域を取得する、
請求項９に記載の画像識別装置。
【請求項１１】
ユーザの操作入力を受け付ける操作入力手段と、
前記活性化マップを表示する出力手段と、
をさらに備え、
前記不要領域取得手段は、前記活性化マップを前記出力手段に表示した後に、前記操作入力手段により選択された領域を前記不要領域として取得する、
請求項８から１０のいずれか１項に記載の画像識別装置。
【請求項１２】
前記不要領域取得手段は、前記入力画像と前記活性化マップとを重ね合わせた画像を前記出力手段に表示した後に、前記操作入力手段により選択された領域を前記不要領域として取得する、
請求項１１に記載の画像識別装置。
【請求項１３】
前記不要領域取得手段は、前記活性化マップの外縁の領域を前記不要領域として取得する、
請求項８から１０のいずれか１項に記載の画像識別装置。
【請求項１４】
前記識別器が識別する画像以外の画像を認識する画像認識手段をさらに備え、
前記不要領域取得手段は、前記画像認識手段が認識した画像の領域を前記不要領域として取得する、
請求項８から１０のいずれか１項に記載の画像識別装置。
【請求項１５】
前記入力画像は皮膚疾患の患部を撮影した画像であり、
前記不要領域取得手段は、前記識別器が有する中間層において、前記患部以外の領域を前記不要領域として取得する、
請求項４から１４のいずれか１項に記載の画像識別装置。
【請求項１６】
入力画像が入力される入力層及び前記入力画像の識別結果が出力される出力層以外の層である中間層を有する識別器により、前記入力画像を識別する画像識別方法であって、
前記中間層において、前記入力画像を識別するための特徴マップを取得する特徴マップ取得ステップと、
前記中間層の活性化状態を可視化した活性化マップを生成する活性化マップ生成ステップと、
前記活性化マップ生成ステップで生成した前記活性化マップを参照して、前記特徴マップ取得ステップで取得した特徴マップを編集する編集ステップと、
前記編集ステップにより編集された特徴マップを用いて前記入力画像を識別する識別ステップと、
を含む画像識別方法。
【請求項１７】
入力画像が入力される入力層及び前記入力画像の識別結果が出力される出力層以外の層である中間層を有する識別器を備える画像識別装置のコンピュータに、
前記中間層において、前記入力画像を識別するための特徴マップを取得する特徴マップ取得ステップ、
前記中間層の活性化状態を可視化した活性化マップを生成する活性化マップ生成ステップ、
前記活性化マップ生成ステップで生成した前記活性化マップを参照して、前記特徴マップ取得ステップで取得した特徴マップを編集する編集ステップ、及び、
前記編集ステップにより編集された特徴マップを用いて前記入力画像を識別する識別ステップ、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像識別装置、画像識別方法及びプログラムに関する。
【背景技術】
【０００２】
畳み込みニューラルネットワーク（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：ＣＮＮ）は画像解析において高い性能を発揮するため、ＣＮＮを用いて画像を識別する装置が開発されてきている。そして、ＣＮＮによる画像の識別精度を向上させるための技術の開発も進められている。例えば、特許文献１には、特定の識別対象に特化した場合の識別精度を向上可能とする技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−２０３１３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示されている技術は、不連続関数を用いる符号化処理を実行する場合でも、ＣＮＮの学習方法である誤差逆伝播（Ｂａｃｋｐｒｏｐａｇａｔｉｏｎ）法を適用できるようにすることによって、特定の識別対象に特化した場合の識別精度を向上させている。しかし、このような従来技術においては、ＣＮＮの内部処理をブラックボックスとして扱っているため、識別精度の向上に改善の余地があった。
【０００５】
本発明は、上記問題を解決するためになされたものであり、従来よりもＣＮＮによる画像の識別精度を向上させることができる画像識別装置、画像識別方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の画像識別装置は、
入力画像が入力される入力層及び前記入力画像の識別結果が出力される出力層以外の層である中間層を有し、前記入力画像を識別する識別器と、
前記中間層において、前記入力画像を識別するための特徴マップを取得する特徴マップ取得手段と、
前記中間層の活性化状態を可視化した活性化マップを生成する活性化マップ生成手段と、
前記活性化マップ生成手段が生成した前記活性化マップを参照して、前記特徴マップ取得手段が取得した特徴マップを編集する編集手段と、
前記編集手段により編集された特徴マップを用いて前記入力画像を識別する識別手段と、
を備える。
【発明の効果】
【０００７】
本発明によれば、ＣＮＮによる画像の識別精度を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態１に係る画像識別装置の機能構成を示す図である。
【図２】畳み込みニューラルネットワーク（ＣＮＮ）の処理の概要を説明する図である。
【図３】ＣＮＮの畳み込み処理及びプーリング処理の具体例を説明する図である。
【図４】ＣＮＮによる出力の算出について説明する図である。
【図５】単純平均による活性化マップ生成方法を説明する図である。
【図６】ＣＡＭによる活性化マップ生成方法を説明する図である。
【図７】Ｇｒａｄ−ＣＡＭによる活性化マップ生成方法を説明する図である。
【図８】ＣＮＮの入力側に近い層と出力側に近い層とにおける活性化マップを説明する図である。
【図９】実施形態１に係る画像識別処理のフローチャートである。
【図１０】実施形態１に係る画像識別処理を具体例で説明する図である。
【図１１】変形例１に係る画像識別処理のフローチャートである。
【図１２】変形例１に係る画像識別処理で入力画像と活性化マップが重ねて表示されている例を説明する図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態に係る画像識別装置等について、図表を参照して説明する。なお、図中同一又は相当部分には同一符号を付す。
【００１０】
（実施形態１）
本発明の実施形態１に係る画像識別装置１００は、学習用の画像を用いて学習させたＣＮＮ識別器を用いて未知の画像を識別する。画像識別装置１００は、未知の画像の識別の際に、ＣＮＮ識別器の中間層において、画像識別に不要と推定される領域の情報を削除することによって、画像識別の精度を向上させることができる。このような画像識別装置１００について、以下に説明する。
【００１１】
実施形態１に係る画像識別装置１００は、図１に示すように、制御部１０、記憶部２０、画像入力部３１、出力部３２、通信部３３、操作入力部３４、を備える。
【００１２】
制御部１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等で構成され、記憶部２０に記憶されたプログラムを実行することにより、後述する各部（ＣＮＮ識別器１１、不要領域取得部１２、不要領域削除部１３）の機能を実現する。
【００１３】
記憶部２０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、制御部１０のＣＰＵが実行するプログラム及び必要なデータを記憶する。
【００１４】
画像入力部３１は、学習用の画像データ又は識別する（未知の）画像データを入力するためのデバイスである。制御部１０は、画像入力部３１を介して画像データを取得する。画像入力部３１としては、制御部１０が画像データを取得できるなら、任意のデバイスを使用することができる。例えば、記憶部２０に画像データを記憶させておき、制御部１０が記憶部２０を読み出すことによって画像データを取得する場合は、記憶部２０が画像入力部３１を兼ねることになる。また、制御部１０が通信部３３を介して外部のサーバ等から画像データを取得する場合は、通信部３３が画像入力部３１を兼ねることになる。
【００１５】
出力部３２は、制御部１０が、画像入力部３１から入力した画像を識別した結果や後述する活性化マップ等を出力するためのデバイスである。例えば、出力部３２は、液晶ディスプレイや有機ＥＬ（Ｅｌｅｃｔｏｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイである。ただし、画像識別装置１００は、出力部３２としてこれらディスプレイを備えてもよいし、外部のディスプレイを接続するためのインタフェースとしての出力部３２を備えてもよい。画像識別装置１００は、インタフェースとしての出力部３２を備える場合は、出力部３２を介して接続した外部のディスプレイに識別結果等を表示する。出力部３２は、出力手段として機能する。
【００１６】
通信部３３は、外部の他の装置（例えば、画像データのデータベースが格納されているサーバ等）とデータの送受信を行うためのデバイス（ネットワークインタフェース等）である。制御部１０は、通信部３３を介して画像データを取得することができる。
【００１７】
操作入力部３４は、画像識別装置１００に対するユーザの操作入力を受け付けるデバイスであり、例えば、キーボード、マウス、タッチパネル等である。画像識別装置１００は、操作入力部３４を介して、ユーザからの指示等を受け付ける。操作入力部３４は、操作入力手段として機能する。
【００１８】
次に、制御部１０の機能について説明する。制御部１０は、ＣＮＮ識別器１１、不要領域取得部１２、不要領域削除部１３の機能を実現する。
【００１９】
ＣＮＮ識別器１１は、畳み込みニューラルネットワーク（ＣＮＮ）による画像の識別器である。ＣＮＮによる識別器を実現するプログラムを制御部１０が実行することにより、制御部１０はＣＮＮ識別器１１としても機能する。ＣＮＮ識別器１１は、画像入力部３１を介して入力画像が入力される入力層と、入力画像の識別結果が出力される出力層と、入力層及び出力層以外の層である中間層と、を有し、入力画像を識別した結果を出力層から出力する。ＣＮＮによる画像識別の処理概要については後述する。
【００２０】
不要領域取得部１２は、ＣＮＮ識別器１１の有するＣＮＮの中間層において、入力画像を識別する際に使用しない方が良いと推定される不要領域を取得する。不要領域取得部１２は、不要領域取得手段として機能する。
【００２１】
不要領域削除部１３は、不要領域取得部１２が取得した不要領域の情報をＣＮＮ識別器１１の有するＣＮＮの中間層から削除する。不要領域削除部１３は、不要領域削除手段として機能する。また、「削除すべき領域を取得して、その領域の情報を削除する」という処理は編集処理の一種と考えられるため、不要領域取得部１２と不要領域削除部１３とにより、編集手段が構成される。
【００２２】
以上、画像識別装置１００の機能構成について説明した。次にＣＮＮの概要を説明する。ＣＮＮは、人間の視覚野の神経細胞の働きを模倣したニューラルネットワークであり、その原型はネオコグニトロンである。ＣＮＮは、一般的な順伝搬型のニューラルネットワークとは異なり、全結合層だけでなく、畳み込み層（Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ）とプーリング層（Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ）を中間層として含んでおり、中間層によって入力画像の特徴が抽出される。そして、出力層において、入力画像の識別結果が確率的に表現される。ＣＮＮによるＮクラス識別の典型的な処理概要について、図２等を参照して説明する。
【００２３】
図２に示すように、ＣＮＮによるＮクラス識別の処理は、入力画像１１１に対して、畳み込み処理（フィルタの走査）やプーリング処理（ウィンドウの走査）を行って徐々にサイズの小さな特徴マップを算出していき、最終的に出力１１８を得る処理である。入力画像１１１を記憶する層は入力層、出力１１８を記憶する層は出力層とも呼ばれる。図２に示す例では、入力された入力画像１１１に対して、畳み込み処理用のフィルタ１２１，１２３，１２４，１２５やプーリング処理用のウィンドウ１２２，１２６を縦横ともにストライド２で走査することによって徐々にサイズの小さな特徴マップを算出し、最終的に出力１１８を得ている。なお、「ストライド２で走査する」とは、画素又は特徴マップを構成する要素を１つ飛ばしで走査することを言う。
【００２４】
フィルタ１２１，１２３，１２４，１２５の各要素には、重み係数が割り当てられており、同一チャネル数の入力画像又は特徴マップの上を平面方向に走査することにより、入力画像又は特徴マップの各注目点において、スカラ値の内積結果が出力され、新たな特徴マップが得られる。そして、フィルタを複数枚（ｎ枚）適用することにより、その枚数分（ｎチャネル）の特徴マップが得られる。また、ストライド２で走査する度に、特徴マップのサイズは縦横ともに１／２のサイズになる。この結果、後段に行くに従い、より大局的な特徴抽出が行われる（フィルタサイズは、特徴マップサイズに対して相対的に拡大する）ことになる。
【００２５】
なお、１×１よりも大きなフィルタで入力画像又は特徴マップを走査する場合、フィルタ領域が入力画像又は特徴マップからはみ出さないようにすると、走査時の注目点を入力画像又は特徴マップの端よりも内側の点にせざるを得ず、出力される特徴マップは元の入力画像又は特徴マップのサイズよりも小さくなってしまう。そこで、フィルタサイズに応じて必要な分（例えば、７×７のフィルタの場合は、３要素分）だけ０データ等を入力画像又は特徴マップの外側にパディングすることが行われる。これにより、入力画像又は特徴マップの最外周部も注目点とすることが可能になる。
【００２６】
また、フィルタ出力値（スカラ値）は、通常、活性化関数ＲｅＬＵ（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔ：ｙ＝ｍａｘ（ｘ，０））を適用することにより、負値を０にする。ただし近年、活性化関数ＲｅＬＵを適用する前に、Ｂａｔｃｈ  Ｎｏｒｍａｌｉｚａｔｉｏｎ（フィルタ出力値を平均が０、分散が１となるように正規化する処理）を行うことが一般的になってきている。Ｂａｔｃｈ  Ｎｏｒｍａｌｉｚａｔｉｏｎを行うと、活性度の偏りを補正することが可能になり、学習を加速させることができる等の効果があるためである。なお、特徴マップの各要素の値は活性度とも呼ばれ、その値が大きくなることを活性化するとも言う。
【００２７】
フィルタによる畳み込み処理や、ウィンドウによるプーリング処理について、図３を参照して具体例で説明する。ここでは、入力画像１１０は８×８×１チャネル（白黒）の画像、フィルタ１２０は３×３×１チャネルのフィルタ、ウィンドウ１３１は３×３のサイズでその領域内の最大値を返すウィンドウである場合で説明する。また、走査は縦横ともストライド２で行うこととする。
【００２８】
入力画像１１０（入力画像の外側に０をパディングしておく）に対してフィルタ１２０をストライド２で走査させると、特徴マップ１３０が得られる。例えば、入力画像１１０の最も左上の点を注目点とした場合、フィルタ１２０を適用すると、左上にはみ出ている（パディングされた）５つの点と注目点並びに注目点の右及び下の点の値は０なので、フィルタ１２０を適用しても０のままであり、注目点の右下の点の値は１だがフィルタ１２０の右下の点の値が０であるため、結局、（最上行の左端から右方向に行き、右端まで来たら１つ下の行をまた左端から右端まで行く順番で演算すると）０×０＋０×１＋０×０＋０×１＋０×（−４）＋０×１＋０×０＋０×１＋１×０＝０となって、フィルタ出力値は０となる。従って、特徴マップ１３０の最も左上の点の値は０となる。
【００２９】
ストライド２での走査を行うので、次の注目点は、入力画像１１０の最上行の左から３番目の点である。この点にフィルタ１２０を適用すると、上にはみ出ている（パディングされた）３つの点と注目点及び注目点の左右の点の値は０なので、フィルタ１２０を適用しても０のままであり、上記同様の順番で演算すると、０×０＋０×１＋０×０＋０×１＋０×（−４）＋０×１＋１×０＋１×１＋１×０＝１となって、フィルタ出力値は１となる。従って、特徴マップ１３０の最上行の左から２番目の点の値は１となる。なお、例えば、特徴マップ１３０の上から２行目、左から２番目の点の値を上記同様の順番で計算すると、１×０＋１×１＋１×０＋１×１＋２×（−４）＋２×１＋１×０＋２×１＋３×０＝−２となるが、−２に活性化関数ＲｅＬＵを適用すると０になるので、図３では０になっている。（なお、図３では、わかりやすく示すため、Ｂａｔｃｈ  Ｎｏｒｍａｌｉｚａｔｉｏｎは行っていない。）
【００３０】
次にプーリング処理についても図３を参照して具体例を説明する。入力画像１１０に対してＭａｘ  Ｐｏｏｌｉｎｇウィンドウ１３１をストライド２で走査させると、特徴マップ１３２が得られる。例えば、入力画像１１０の最も左上の点を注目点とした場合、ウィンドウ１３１を適用すると、左上にはみ出ている（パディングされた）５つの点と注目点並びに注目点の右及び下の点の値は０で、注目点の右下の点の値は１なので、これら９つの点の中の最大値は１であり、ウィンドウ出力値は１となる。従って、特徴マップ１３２の最も左上の点の値は１となる。他の点も同様にして求めることができる。なお、図３では説明しないが、図２のＡｖｅｒａｇｅ  Ｐｏｏｌｉｎｇウィンドウ１２６は、７×７のウィンドウ領域内の４９個の点のスカラ値の平均値を出力するウィンドウである。
【００３１】
図２に戻り、ＣＮＮの中間層の最終層（特徴マップ１１７）と、出力層（出力１１８）とは全結合接続１２７で接続されており、通常のニューラルネットと同様に重み付け加算が行われる。ＣＮＮの中間層の最終層は、出力層と全結合接続１２７で接続していることから、全結合層とも呼ばれる。この例では、Ｎクラス識別を行うので、出力１１８はＮ個の素子（若しくはユニット）を持ち、その素子の値の大小により、推論の確率の大小が表現される。
【００３２】
ＣＮＮでは、全結合接続１２７の各結合に割り当てられている重み係数や、上記フィルタ１２１，１２３，１２４，１２５の重み係数を、予め用意した学習データを用いて取得することができる。具体的には、学習データを入力画像として入力し、後述する順方向伝播を行い、出力結果と正解（入力した学習データの正しい識別結果）との違い（誤差）を求め、誤差逆伝播法を用いて、誤差を減らす方向に重み係数を更新する。この操作を、学習率（誤差逆伝播法における重み係数の更新量）を下げながら繰り返し実行することにより、重み係数の値を収束させる。
【００３３】
ＣＮＮの各重み係数を学習データで学習させた後は、未知の画像データを入力画像データとして順方向伝播させることで、最終出力結果が入力画像の識別の推論値として得られる。
【００３４】
順方向伝播の処理の具体例について、図２を参照して説明する。入力画像１１１は、図２の例では、サイズが２２４×２２４画素の正方形で、一つの画素がＲＧＢ（Ｒｅｄ，Ｇｒｅｅｎ，Ｂｌｕｅ）の３チャネルから構成されるものとする。各画素の１チャネル分（ＲＧＢそれぞれ）の値は、一般的な画素値表現の８ビット整数絶対値表現（０〜２５５）から、画像データベースの平均値を引き、０中心の符号付き表現に変換したものとする。
【００３５】
入力画像１１１を、サイズが７×７×３チャネルのフィルタ１２１で縦方向、横方向それぞれストライド２で走査することで、特徴マップ１１２が得られる。上述の図３での説明では入力画像１１０もフィルタ１２０も１チャネルだったが、入力画像１１１もフィルタ１２１も３チャネルなので、図３で説明した演算を各チャネルに対して行って得られる３つのスカラ値の和に活性化関数ＲｅＬＵを適用した値が特徴マップ１１２の各点の値となる。フィルタ１２１は６４枚用意されているため、特徴マップ１１２も６４枚（チャネル）得られる。特徴マップ１１２はサイズ２２４×２２４画素の入力画像１１１を縦横ともストライド２で走査した結果の値であるため、縦横とも入力画像１１１の１／２のサイズ（１１２×１１２）になる。
【００３６】
特徴マップ１１２の各チャネルに対して、サイズが３×３のＭａｘ  Ｐｏｏｌｉｎｇウィンドウ１２２で縦方向、横方向それぞれストライド２で走査することで、特徴マップ１１３が得られる。Ｍａｘ  Ｐｏｏｌｉｎｇウィンドウ１２２は、図３で説明したように、この３×３の領域内の最大値を出力するので、入力画像内の微細な位置の揺らぎを吸収する働きがある。特徴マップ１１３はサイズ１１２×１１２の特徴マップ１１２を縦横ともストライド２で走査した結果の値であるため、縦横とも特徴マップ１１２の１／２のサイズ（５６×５６）になる。Ｍａｘ  Ｐｏｏｌｉｎｇウィンドウ１２２を、特徴マップ１１２の各チャネルに対して走査し、得られた出力を特徴マップ１３の同じチャネルのデータとするため、特徴マップ１１３のチャネル数は特徴マップ１１２と変わらず、６４チャネルである。
【００３７】
特徴マップ１１３を、サイズが３×３×６４チャネルのフィルタ１２３で縦方向、横方向それぞれストライド２で走査することで、（上述した特徴マップ１１２が得られたのと同様にして）特徴マップ１１４が得られる。フィルタ１２３は１２８枚用意されているため、特徴マップ１１４も１２８枚（チャネル）得られる。特徴マップ１１４はサイズ５６×５６の特徴マップ１１３を縦横ともストライド２で走査した結果の値であるため、縦横とも特徴マップ１１３の１／２のサイズ（２８×２８）になる。
【００３８】
特徴マップ１１４を、サイズが３×３×１２８チャネルのフィルタ１２４で縦方向、横方向それぞれストライド２で走査することで、（上述した特徴マップ１１２，１１４が得られたのと同様にして）特徴マップ１１５が得られる。フィルタ１２４は２５６枚用意されているため、特徴マップ１１５も２５６枚（チャネル）得られる。特徴マップ１１５はサイズ２８×２８の特徴マップ１１４を縦横ともストライド２で走査した結果の値であるため、縦横とも特徴マップ１１４の１／２のサイズ（１４×１４）になる。
【００３９】
特徴マップ１１５を、サイズが３×３×２５６チャネルのフィルタ１２５で縦方向、横方向それぞれストライド２で走査することで、（上述した特徴マップ１１２，１１４，１１５が得られたのと同様にして）特徴マップ１１６が得られる。フィルタ１２５は５１２枚用意されているため、特徴マップ１１６も５１２枚（チャネル）得られる。特徴マップ１１６はサイズ１４×１４の特徴マップ１１５を縦横ともストライド２で走査した結果の値であるため、縦横とも特徴マップ１１５の１／２のサイズ（７×７）になる。このように、特徴マップのサイズを縮小することによって、畳み込み処理時のフィルタの相対的なカバー領域が広がり、より大局的、抽象的特徴を捉えられるようになる。また、チャネルサイズ（フィルタ枚数）を増大させることにより、局所特徴の組合せによる特徴の多様化に対応できるようになる。
【００４０】
特徴マップ１１６の各チャネルに対して、サイズが７×７のＡｖｅｒａｇｅ  Ｐｏｏｌｉｎｇウィンドウ１２６を走査することで、特徴マップ１１７が得られる。Ａｖｅｒａｇｅ  Ｐｏｏｌｉｎｇウィンドウ１２６は、この７×７の領域内の平均値を出力するが、特徴マップ１１６の各チャネルのサイズは７×７なので、結局、各チャネルの全要素の平均値が特徴マップ１１７となる。従って、特徴マップ１１７は５１２個（チャネル）のスカラ値からなる、５１２次元のベクトル（特徴ベクトル）として扱うことができる。この操作は、各チャネル内で、全平均を取るので、Ｇｌｏｂａｌ  Ａｖｅｒａｇｅ  Ｐｏｏｌｉｎｇと呼ばれる。
【００４１】
特徴マップ１１７を、出力１１８と全結合接続１２７で結び、各結合に与えられた重み係数に従って出力１１８のＮ個の素子の値が得られる。より詳細には、図４に示すように、特徴マップ１１７（特徴ベクトル）の各要素をｈ１〜ｈ５１２で表すと、出力１１８の各要素に対応する値Ａｉを各要素ｈｊに重み係数ｗｉ，ｊを掛けて総和を取ることによって求め、それをＳｏｆｔｍａｘ処理（図４のｙｎの算出に使っているＳｏｆｔｍａｘ関数を適用する処理。出力１１８の各素子の出力値範囲を［０，１］に正規化し、確率的表現にする。ここで、ｅｘｐ関数は、負値を含めた値を０からの単調増加の値に変換する働きをしている。）によって正規化した値が出力１１８のＮ個の値ｙ１〜ｙＮとなる。正規化されたＮ個の各値ｙ１〜ｙＮが該当クラスの推論値（確率的表現）となる。簡単には、ｙ１〜ｙＮの中で最大の値を持つ素子がｙiであるとすると、入力画像はクラスｉとして識別されたことになる。
【００４２】
以上、ＣＮＮによるＮクラス識別の典型的な処理概要について説明した。以上で説明したＣＮＮの各中間層（各特徴マップ）の状態を解析することによって、ＣＮＮによる識別精度を向上させる方法を検討することができると考えられる。しかし、各特徴マップは多数のチャネルから構成されるため、一見して状態を把握することは困難である。そこで、特徴マップの多数のチャネルをまとめたものを視覚化することによって、ＣＮＮの内部状態を解釈しやすくする試みが行われている。
【００４３】
例えば、特徴マップの［ｘ，ｙ］要素の値（スカラ値）が０なら［ｘ，ｙ］に対応する位置の画素の色を黒にし、［ｘ，ｙ］要素の値が大きくなるにつれて［ｘ，ｙ］に対応する位置の画素の色を黒→紫→青→水色→緑→黄緑→黄色→橙色→赤等のように変化させて表示させることにより、特徴マップの活性化状態（どの部分の要素の値がどの程度大きくなっているか）を可視化することができる。
【００４４】
ただし、以下に説明する図５以降の図面では特徴マップの活性化状態を白黒で表すこととする。これらの図面では、特徴マップの［ｘ，ｙ］要素の値（スカラ値）が０なら［ｘ，ｙ］に対応する位置の四角の色を白にし、［ｘ，ｙ］要素の値が大きくなるにつれて［ｘ，ｙ］に対応する位置の四角の色をより黒っぽく見えるような網掛けで示すことにより、特徴マップの活性化状態を可視化している。
【００４５】
このように、特徴マップの活性化状態を可視化したものを、ここでは活性化マップと呼ぶことにする。また、特徴マップで要素（スカラ値）が大きい値になっている領域を、活性化した領域（活性化領域）と呼ぶことにする。活性化マップの生成方法には種々の方法があるが、ここでは代表的な方法を説明する。
【００４６】
１つ目の方法は、図５に示すように、特徴マップをチャネル方向に単純に足し合わせたものを活性化マップとする方法である（足し合わせた後にチャネル数で割って、単純平均を取ってもよい）。図５は、猫とウサギが写っている入力画像１１１がＣＮＮ識別器１１に入力された場合に、７×７のサイズの特徴マップ１１６を可視化する例を示している。図５では、特徴マップ１１６を５１２チャネル分足し合わせて、活性化マップ１４０を生成している。図５で、特徴マップ１１６−１は、特徴マップ１１６の１番目のチャネル、特徴マップ１１６−５１２は、特徴マップ１１６の５１２番目のチャネルを示している。なお、図５では、特徴マップ１１６を可視化して活性化マップ１４０を生成しているが、他の特徴マップ（例えば特徴マップ１１２，１１４等）も、同様の方法で活性化マップを生成することができる。この手法では、全クラスの反応が合算された活性化マップが得られるので、活性化状態がどのクラスの反応によるものなのかの区別はつかない。
【００４７】
２つ目の方法は、図６に示すように、特徴マップの各チャネルを、活性化対象クラス（ｉ）の出力（ｙｉ）を算出する際の全結合接続１２７の重み係数（ｗｉ，ｊ）で重み付けして加算したものを、そのクラスｉの活性化マップとする方法である。この方法は、ＣＡＭ（Ｃｌａｓｓ  Ａｃｔｉｖａｔｉｏｎ  Ｍａｐｐｉｎｇ）と呼ばれている。図６は、猫とウサギが写っている入力画像１１１がＣＮＮ識別器１１に入力された場合に、猫に対応するクラスを対象クラスとして、７×７のサイズの特徴マップ１１６を可視化する例を示している。
【００４８】
図６では、全結合接続１２７のクラスｉの出力を得る重み係数ｗｉ，ｊ（ｊはチャネル番号）を、特徴マップ１１６のｊ番目のチャネルに乗算し、これを５１２チャネル分足し合わせて、クラスｉの活性化マップ１４１を生成している。図６で、特徴マップ１１６−１は、特徴マップ１１６の１番目のチャネル、特徴マップ１１６−５１２は、特徴マップ１１６の５１２番目のチャネルを示している。この手法では、クラス別に活性化マップが得られるが、計算原理上、出力側の特徴マップで、かつその特徴マップがＧｌｏｂａｌ  Ａｖｅｒａｇｅ Ｐｏｏｌｉｎｇで１次元特徴ベクトルとなり、さらにそのベクトルが出力に全結合接続される、という構成においてのみ適用が可能となる。
【００４９】
３つ目の方法は、図７に示すように、活性化対象クラス出力ｙｃのみを逆伝搬させ、勾配の大きさを対象クラスへの出力の寄与度と見做すことによって求めた、特徴マップの各チャネルの重み係数（αｃ，ｋ）で重み付けして加算したものを、クラスｃの活性化マップとする方法である。この方法は、Ｇｒａｄ−ＣＡＭ（Ｇｒａｄｉｅｎｔ−ｗｅｉｇｈｔｅｄ  Ｃｌａｓｓ  Ａｃｔｉｖａｔｉｏｎ  Ｍａｐｐｉｎｇ）と呼ばれている。図７は、猫とウサギが写っている入力画像１１１がＣＮＮ識別器１１に入力された場合に、猫に対応するクラスを対象クラスとして、７×７のサイズの特徴マップ１１６を可視化する例を示している。特徴マップ１１６は５１２チャネルあるので、ｋ番目のチャネルに対応する特徴マップ１１６をＭｋで表すこととする。そして、Ｍｋは７×７のサイズなので、Ｍｋの［ｉ，ｊ］の要素（ｉ及びｊは１以上７以下の整数）をＭｋ［ｉ，ｊ］で表すこととする。
【００５０】
Ｇｒａｄ−ＣＡＭでは、まず入力画像１１１をＣＮＮ識別器で普通に推論する。そして得られた出力１１８のうち、活性化対象クラス（ｃ）の出力（ｙｃ）のみを１、他（ｙｎ（ｎ≠ｃ））を０にして、勾配（∂ｙｃ／∂Ｍｋ［ｉ，ｊ］）を逆伝播計算する。そして、各チャネルで勾配の平均を取り、重み係数αｃ，ｋとする。なお、図７のαｃ，ｋの式中のＺは、特徴マップ１１６の各チャネルの要素数であり、ここではＺ＝７×７＝４９となる。そして、特徴マップの値Ｍｋに、重み係数αｃ，ｋを掛けて足し合わせることにより、対象クラスｋの活性化マップ１４２を生成している。この手法では、ＣＡＭと異なり、特徴マップ１１６のみならず、他の特徴マップ（例えば特徴マップ１１２，１１４等）も、同様の方法で活性化マップを生成することができる。
【００５１】
上述のＧｒａｄ−ＣＡＭでは、各チャネルで特徴マップ内の勾配の平均を取ることによって各クラスに対するチャネルの寄与を明瞭にすることができる。しかし、クラスによる違いを明瞭にする必要がないのであれば、勾配の平均を取らずに正値に限ってＣＮＮを入力層まで逆伝播させて画素単位の寄与を可視化することもできる。この方法は、Ｇｕｉｄｅｄ  Ｂａｃｋｐｒｏｐａｇａｔｉｏｎと呼ばれる（図７の出力１１８からＧｕｉｄｅｄ  Ｂａｃｋｐｒｏｐａｇａｔｉｏｎの画像１４３に向かう矢印で示される）。
【００５２】
Ｇｕｉｄｅｄ  Ｂａｃｋｐｒｏｐａｇａｔｉｏｎでは、入力画像と同様の水準の解像度が得られる反面、クラスによる違いが明瞭ではない。そこで、Ｇｕｉｄｅｄ  Ｂａｃｋｐｒｏｐａｇａｔｉｏｎの結果にＧｒａｄ−ＣＡＭの出力を重ねることで特徴マップを可視化する方法もある。この方法はＧｕｉｄｅｄ  Ｇｒａｄ−ＣＡＭと呼ばれ、クラス毎の特徴箇所を明瞭に区別すると同時に、高い解像度で特徴箇所を可視化できる。図７では、Ｇｕｉｄｅｄ  Ｂａｃｋｐｒｏｐａｇａｔｉｏｎの画像１４３とＧｒａｄ−ＣＡＭによる活性化マップ１４２とを合成して、Ｇｕｉｄｅｄ  Ｇｒａｄ−ＣＡＭによる活性化マップ１４４が得られる様子を示している。
【００５３】
以上、活性化マップ生成方法を説明した。各中間層で活性化マップを生成すると、図８に示すように、ＣＮＮの入力側に近い層（特徴マップ１１２を可視化した活性化マップ１４５）ではエッジ抽出が行われ、ＣＮＮの出力側に近づくにつれて（特徴マップ１１４を可視化した活性化マップ１４６や、特徴マップ１１６を可視化した活性化マップ１４７）、より複雑な大きな領域の特徴が抽出されることがわかる。
【００５４】
図８の各活性化マップ（特徴マップ１１２，１１４，１１６をそれぞれ可視化した活性化マップ１４５，１４６，１４７）は、ウサギ及び猫が写っている入力画像１１１に対して、Ｇｒａｄ−ＣＡＭを用いて、猫を識別するクラスを活性化対象クラスとした時の各層の活性化領域を示している（ただし、特徴マップは出力側に近づくにつれてサイズが小さくなっていくので、図８の各活性化マップ１４５，１４６，１４７は、それぞれのサイズを入力画像サイズにリサイズして表示している）。そうすると、出力側に最も近い層（特徴マップ１１６を可視化した活性化マップ１４７）では、入力画像１１１における、識別するクラス（猫）が写っている位置（左下）に対応する部分が活性化している（特徴マップのその部分が正の大きい値になっている）ことが確認できる。
【００５５】
ＣＮＮでは、小領域のフィルタ処理を重ねていくので、平面上の距離が離れた特徴については、後段にならない限り、統合して評価がされない。逆に言うと、中間層で抽出された特徴の局所性は、一定度維持される。そして、ＣＮＮでは、識別に関与しない特徴（負のフィルタ出力）を、活性化関数ＲｅＬＵで非線形に積極的に切り捨てながら、切り捨てられずに残った（識別に関与する）特徴を局所的に統合していく操作が繰り返し行われる。そのため、後段の活性化領域を抽出することにより、入力画像の中におけるＣＮＮ識別器の大局的注目領域を知ることができる。
【００５６】
次に、画像識別装置１００が行う画像識別処理の内容について、図９を参照して説明する。画像識別処理は、操作入力部３４を介して、ユーザにより、画像識別装置１００に対して画像識別処理の開始が指示されると開始される。
【００５７】
まず、画像識別装置１００の制御部１０は、大量の学習用画像データにより、ＣＮＮ識別器１１を学習させる（ステップＳ１０１）。ステップＳ１０１は、画像識別処理を開始する前に、予め行っておいてもよい。
【００５８】
次に、制御部１０は、画像入力部３１を介して未知の画像をＣＮＮ識別器１１に入力する（ステップＳ１０２）。ステップＳ１０２は画像入力ステップとも呼ばれる。
【００５９】
そして、制御部１０は、ＣＮＮ識別器１１の中間層（例えば、図２における特徴マップ１１６）の活性化領域を抽出して活性化マップを得る（ステップＳ１０３）。ステップＳ１０３は、特徴マップを取得する特徴マップ取得ステップと、取得した特徴マップから活性化マップを生成する活性化マップ生成ステップとを含む。制御部１０は、特徴マップ取得ステップでは特徴マップ取得手段として機能し、活性化マップ生成ステップでは活性化マップ生成手段として機能する。
【００６０】
ステップＳ１０３では、制御部１０は、例えば、上述したように、特徴マップをチャネル方向に単純平均した活性化マップを算出する。このステップでは、活性化マップ（例えば、図８の活性化マップ１４７に示されるような画像）を入力画像とともにユーザに提示（出力部３２に表示）してもよい。活性化領域抽出手法として、特徴マップのチャネル方向の単純平均ではなく、ＣＡＭ又はＧｒａｄ−ＣＡＭを用いると、クラス毎の特徴マップ（活性化マップ）が得られるが、この場合は、クラス毎の特徴マップ（活性化マップ）を全クラスで平均したものをユーザに提示すればよい。
【００６１】
次に、制御部１０は、活性化マップ中に、画像識別に使用しない方が良いと推定される不要領域があるか否かを判定する（ステップＳ１０４）。このステップでは制御部１０は、ユーザがステップＳ１０３で提示された活性化マップを確認して得た不要領域の有無の情報を操作入力部３４を介してユーザから取得することによって判定してもよいし、活性化マップの外縁付近（例えば、上下左右ともに、端から１番目と２番目の領域）が活性化されている（スカラ値が大きい値（例えば正の値）になっている）か否かによって不要領域があるか否かを判定してもよい。さらには、またユーザが提供した不要領域情報等を元に作成した機械学習による識別器によって判定してもよい。この場合、この機械学習による識別器は自動編集手段として機能する。
【００６２】
活性化マップ中に、画像識別に使用しない方が良いと推定される不要領域がないなら（ステップＳ１０４；Ｎｏ）、制御部１０は、そのままＣＮＮ識別器１１で画像識別を行い（ステップＳ１０７）、画像識別処理を終了する。
【００６３】
活性化マップ中に、画像識別に使用しない方が良いと推定される不要領域があるなら（ステップＳ１０４；Ｙｅｓ）、不要領域取得部１２は、その不要領域（の位置、サイズ、形状等）を取得する（ステップＳ１０５）。ステップＳ１０４でユーザから不要領域の有無の情報を取得している場合は、不要領域取得部１２は、操作入力部３４を介してユーザから不要領域を取得する。ステップＳ１０４で、活性化マップの外縁付近が活性化されていることに基づいて不要領域があると判定した場合は、不要領域取得部１２は、その活性化された外縁付近を不要領域として取得する。ステップＳ１０５は、不要領域取得ステップとも呼ばれる。
【００６４】
次に、不要領域削除部１３は、特徴マップの各チャネルにおいて、不要領域取得部１２が取得した不要領域に該当する領域内の要素の値を０にする（ステップＳ１０６）。ステップＳ１０６は、不要領域削除ステップとも呼ばれる。また、「不要領域の有無を判定して、不要領域を取得し、不要領域に該当する領域内の要素の値を０にする」という処理は、編集処理の一種と考えられるため、ステップＳ１０４からステップＳ１０６までの処理を編集ステップとも呼ぶ。また、制御部１０は、この編集ステップにおいて編集手段として機能する。
【００６５】
そして、ＣＮＮ識別器１１は、不要領域削除部１３が不要領域を削除した特徴マップを用いて画像識別を行い（ステップＳ１０７）、画像識別処理を終了する。ステップＳ１０７は、識別ステップとも呼ばれる。ステップＳ１０７では、制御部１０は識別手段として機能する。
【００６６】
具体的な処理の内容について、図１０を参照して説明する。例として、入力画像１１１に本来の識別対象１１１１以外に物差し１１１２が写り込んでいるとする。この場合、ステップＳ１０３で抽出した活性化マップ１５１には、本来の識別対象１１１１に対応する必要領域１５１１以外に、画像識別に使用しない方が良いと推定される不要領域１５１２が存在することが確認できる。
【００６７】
そこで、ステップＳ１０４での判定はＹｅｓとなり、ステップＳ１０５で不要領域１５１２の位置やサイズが取得される。そして、ステップＳ１０６では、特徴マップ１１６の各チャネル１５２において、不要領域に該当する領域１５２１の値が削除されて０になる。全てのチャネル１５２について、不要領域に該当する領域１５２１の値が０にされた後に、その不要領域削除後の特徴マップ１１６から特徴マップ１１７が算出され、最終的に出力１１８が得られる。すると、ここで得られた出力１１８は、本来の識別対象１１１１以外（物差し１１１２等）の影響を受けていない識別結果になると考えられる。
【００６８】
したがって、画像識別装置１００は、画像識別に不要と推定される領域の情報を削除することによって、本来の識別対象以外のものからの影響を防ぐことができるので、ＣＮＮによる画像の識別精度を向上させることができる。
【００６９】
（変形例１）
上述の実施形態１では、画像識別処理（図９）における中間層の活性化領域の抽出（ステップＳ１０３）において、活性化マップを入力画像とともにユーザに提示してもよいとした。しかし、単に活性化マップと入力画像とが提示されただけではユーザは不要領域の有無の判定がしづらい場合も考えられる。そこで、入力画像と活性化マップとを半透明で重ねて表示することによって、不要領域の有無の判定をしやすくする変形例１について説明する。
【００７０】
変形例１の画像識別処理は、図１１に示すように、実施形態１の画像識別処理（図９）のステップＳ１０３とステップＳ１０４の間に、ステップＳ１１１とステップＳ１１２を追加した処理内容になっている。
【００７１】
ステップＳ１１１では、制御部１０は、図１２に示すように、入力画像１１１とステップＳ１０３で得た活性化マップ１５１とを半透明で重ね合わせた画像１５３を出力部３２に表示する。半透明での重ね方は、入力画像１１１を半透明にして活性化マップ１５１の上に重ねてもよいし、活性化マップ１５１を半透明にして入力画像１１１の上に重ねてもよい。
【００７２】
ステップＳ１１２では、制御部１０は、操作入力部３４を介してユーザから不要領域の選択を受け付ける。例えば、ディスプレイに表示された画像１５３の上で、ユーザがマウスで不要領域に対応する網掛けの四角をクリックすることによって、不要領域が選択されるようにしてもよい。
【００７３】
ステップＳ１１１及びステップＳ１１２以外の処理は、上述した実施形態１の画像識別処理と同じなので、説明を省略する。以上のように、変形例１では、活性化マップが入力画像の上にオーバーラップされて表示されるので、ユーザは画像識別に不要と推定される不要領域を容易に選択することができる。
【００７４】
（変形例２）
上述の実施形態では、画像識別処理（図９）における不要領域の有無の判定（ステップＳ１０４）や不要領域の取得（ステップＳ１０５）において、ユーザから不要領域の情報を取得したり、活性化マップの外縁付近を不要領域として取得したりしていた。しかし、これに限られない。例えば、ＣＮＮ識別器１１とは別に制御部１０が画像認識を行うプログラムを実行することによって、不要領域の情報を取得してもよい。このような実施形態を変形例２とする。変形例２では、画像認識を行うプログラムを制御部１０が実行することにより、制御部１０は画像認識手段としても機能する。
【００７５】
例えば、患部を撮影した画像を入力すると皮膚疾患を識別するＣＮＮ識別器１１により画像識別を行う場合、皮膚疾患以外の画像（例えば物差し、髪の毛等）を認識するプログラムを制御部１０が実行することにより、皮膚疾患以外の画像が写っている領域を不要領域として取得し、特徴マップの各チャネルにおいて、その不要領域に対応する要素の値を０にするようにしてもよい。このようにすることによって、変形例２に係る画像識別装置は、ユーザによる不要領域の選択操作無しで識別精度を向上させることができる。
【００７６】
（変形例３）
上述の実施形態１では、画像識別処理（図９）における中間層の活性化領域の抽出（ステップＳ１０３）において、特定のクラスを特別扱いすることはせずに、全チャネル又は全クラスの平均をとった活性化マップを生成した。しかしこれに限られない。活性化マップの生成にＣＡＭ又はＧｒａｄ−ＣＡＭを用いると、クラス毎の活性化マップが得られるので、これを全クラスで平均化するのではなく、個別のクラス毎の活性化マップをユーザに提示してもよい。このような実施形態を変形例３とする。
【００７７】
例えば、Ｎ個のクラスのうちｍ個のクラスだけを識別対象とすればよい場合は、その識別対象とするｍ個のクラスに対応するＣＡＭ又はＧｒａｄ−ＣＡＭによる活性化マップｍ枚と、入力画像とを、出力部３２を介してディスプレイ上に並べてユーザに提示してもよい。さらに、これらの活性化マップｍ枚のうちのｓ枚（ｓ＝１〜ｍ、ユーザが適宜選択可能とする）と、入力画像とを、半透明で重ね合わせた画像を表示することによって、不要領域の有無の判定や領域選択をさらにやりやすくしてもよい。
【００７８】
（変形例４）
さらに、ＣＡＭ又はＧｒａｄ−ＣＡＭを用いて得られるクラス毎の活性化マップをそのクラスの活性化状態とし、識別対象とするｍ個のクラスの活性化状態（クラス毎の活性化マップ）ｍ枚を平均化したものを活性化マップとして用いてもよい。このような実施形態を変形例４とする。
【００７９】
例えば、皮膚疾患の患者の患部の画像を識別する場合、患者の疾患が特定のもの（例えば疾患Ａ、疾患Ｂ、疾患Ｃの３つの疾患のうちの何れか）であることが確定している場合が考えられる。この場合、ＣＮＮ識別器１１が識別するＮ個のクラスのうち、一部のクラス（疾患Ａ、疾患Ｂ、疾患Ｃのいずれか）だけを識別すればよいことになる。
【００８０】
そこで、変形例４では、このような場合には、画像識別処理（図９）における中間層の活性化領域の抽出（ステップＳ１０３）において、ＣＡＭ又はＧｒａｄ−ＣＡＭで生成したクラス毎の活性化マップ（活性化状態）のうち、今回の識別対象のクラスの活性化マップ（活性化状態）のみを平均化して、新たな活性化マップを得るようにする。識別対象のクラスのみを平均化した活性化マップは、識別対象外のクラスの活性化マップ（活性化状態）の情報を含まないので、ステップＳ１０４における不要領域の有無の判定及びステップＳ１０５における不要領域の取得を、より精度高く行うことができる。
【００８１】
そして、識別の際のノイズとなり得る不要領域の選定の精度が高くなるので、変形例４では、ＣＮＮ識別器１１による画像の識別精度をより向上させることができる。
【００８２】
なお、上述の実施形態１では、画像識別処理（図９）のステップＳ１０５において活性化マップから不要領域を取得していたが、逆に、画像識別に必要と推定される必要領域を取得してもよい。その場合は、画像識別処理のステップＳ１０６において、特徴マップの必要領域以外の要素の値を０にする。これは変形例１においても同様であり、画像識別処理（図１１）のステップＳ１１２では、ユーザに画像識別に必要と推定される必要領域を選択してもらってもよい。その場合は、必要領域以外の領域があるなら（ステップＳ１０４；Ｙｅｓ）、ステップＳ１０５で必要領域を取得し、ステップ１０６で特徴マップの必要領域以外の要素の値を０にする。
【００８３】
また、上述の実施形態及び変形例では、ＣＮＮによる識別器を実現するプログラムを制御部１０が実行することにより、制御部１０はＣＮＮ識別器１１としても機能することとしていたが、これに限られない。画像識別装置１００は、制御部１０とは別に（例えば専用のＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等の）ＣＮＮ識別器１１の機能を実現するデバイスを備えてもよい。
【００８４】
また、上述の変形例２及び変形例４では、皮膚の疾患を例にとって説明したが、本発明は皮膚科の分野に限定されるものではなく、画像識別の分野において広く適用できる。例えば、花の識別、細菌の顕微鏡写真の識別等にも適用できる。
【００８５】
また、上述の実施形態及び変形例は適宜組み合わせることができる。例えば、変形例１と変形例４とを組み合わせることにより、特定の（識別対象の）クラスに絞って平均化した活性化マップを入力画像に重ね合わせて表示することができ、ユーザは不要領域の選定を、より精度高く容易に行うことができるようになる。
【００８６】
なお、画像識別装置１００の各機能は、通常のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等のコンピュータによっても実施することができる。具体的には、上記実施形態では、画像識別装置１００が行う画像識別処理のプログラムが、記憶部２０のＲＯＭに予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  Ｄｉｓｃ）、メモリカード、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の各機能を実現することができるコンピュータを構成してもよい。
【００８７】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【００８８】
（付記１）
入力画像が入力される入力層及び前記入力画像の識別結果が出力される出力層以外の層である中間層を有し、前記入力画像を識別する識別器と、
前記中間層において、前記入力画像を識別するための特徴マップを取得する特徴マップ取得手段と、
前記中間層の活性化状態を可視化した活性化マップを生成する活性化マップ生成手段と、
前記活性化マップ生成手段が生成した前記活性化マップを参照して、前記特徴マップ取得手段が取得した特徴マップを編集する編集手段と、
前記編集手段により編集された特徴マップを用いて前記入力画像を識別する識別手段と、
を備える画像識別装置。
【００８９】
（付記２）
前記活性化マップ生成手段は、前記識別器が識別するクラス毎にＣＡＭ又はＧｒａｄ−ＣＡＭを用いて前記活性化マップを生成する、
付記１に記載の画像識別装置。
【００９０】
（付記３）
前記編集手段が前記特徴マップを編集する際に前記入力画像と前記活性化マップとを重ね合わせた画像を表示する出力手段をさらに備える、
付記１又は２に記載の画像識別装置。
【００９１】
（付記４）
前記中間層において、前記入力画像を識別する際に使用しない方が良いと推定される不要領域を取得する不要領域取得手段と、
前記中間層において、前記不要領域取得手段が取得した不要領域の情報を削除する不要領域削除手段と、
をさらに備える、
付記１から３のいずれか１つに記載の画像識別装置。
【００９２】
（付記５）
予め機械学習により前記不要領域の識別を学習しておいた識別器による自動編集手段をさらに備え、
前記編集手段は、前記自動編集手段を用いて前記特徴マップを編集する、
付記４に記載の画像識別装置。
【００９３】
（付記６）
入力画像が入力される入力層及び前記入力画像の識別結果が出力される出力層以外の層である中間層を有し、前記入力画像を識別する識別器と、
前記中間層において、前記入力画像を識別する際に使用しない方が良いと推定される不要領域を取得する不要領域取得手段と、
前記中間層において、前記不要領域取得手段が取得した不要領域の情報を削除する不要領域削除手段と、
を備える画像識別装置。
【００９４】
（付記７）
前記不要領域取得手段は、前記出力層に接続している全結合層の直前の中間層において、前記不要領域を取得し、
前記不要領域削除手段は、前記出力層に接続している全結合層の直前の中間層において、前記不要領域取得手段が取得した不要領域の情報を削除する、
付記４から６のいずれか１つに記載の画像識別装置。
【００９５】
（付記８）
前記不要領域取得手段は、前記中間層の活性化状態を可視化した活性化マップを生成し、前記活性化マップから前記不要領域を取得する、
付記４から７のいずれか１つに記載の画像識別装置。
【００９６】
（付記９）
前記不要領域取得手段は、前記識別器が識別するクラス毎にＣＡＭ又はＧｒａｄ−ＣＡＭを用いて前記活性化マップを生成し、前記活性化マップから前記不要領域を取得する、
付記８に記載の画像識別装置。
【００９７】
（付記１０）
前記不要領域取得手段は、ＣＡＭ又はＧｒａｄ−ＣＡＭを用いて前記クラス毎に前記活性化状態を取得し、前記入力画像の識別対象となるクラスの前記活性化状態のみを用いて前記活性化マップを生成し、前記活性化マップから前記不要領域を取得する、
付記９に記載の画像識別装置。
【００９８】
（付記１１）
ユーザの操作入力を受け付ける操作入力手段と、
前記活性化マップを表示する出力手段と、
をさらに備え、
前記不要領域取得手段は、前記活性化マップを前記出力手段に表示した後に、前記操作入力手段により選択された領域を前記不要領域として取得する、
付記８から１０のいずれか１つに記載の画像識別装置。
【００９９】
（付記１２）
前記不要領域取得手段は、前記入力画像と前記活性化マップとを重ね合わせた画像を前記出力手段に表示した後に、前記操作入力手段により選択された領域を前記不要領域として取得する、
付記１１に記載の画像識別装置。
【０１００】
（付記１３）
前記不要領域取得手段は、前記活性化マップの外縁の領域を前記不要領域として取得する、
付記８から１０のいずれか１つに記載の画像識別装置。
【０１０１】
（付記１４）
前記識別器が識別する画像以外の画像を認識する画像認識手段をさらに備え、
前記不要領域取得手段は、前記画像認識手段が認識した画像の領域を前記不要領域として取得する、
付記８から１０のいずれか１つに記載の画像識別装置。
【０１０２】
（付記１５）
前記入力画像は皮膚疾患の患部を撮影した画像であり、
前記不要領域取得手段は、前記識別器が有する中間層において、前記患部以外の領域を前記不要領域として取得する、
付記４から１４のいずれか１つに記載の画像識別装置。
【０１０３】
（付記１６）
入力画像が入力される入力層及び前記入力画像の識別結果が出力される出力層以外の層である中間層を有する識別器により、前記入力画像を識別する画像識別方法であって、
前記中間層において、前記入力画像を識別するための特徴マップを取得する特徴マップ取得ステップと、
前記中間層の活性化状態を可視化した活性化マップを生成する活性化マップ生成ステップと、
前記活性化マップ生成ステップで生成した前記活性化マップを参照して、前記特徴マップ取得ステップで取得した特徴マップを編集する編集ステップと、
前記編集ステップにより編集された特徴マップを用いて前記入力画像を識別する識別ステップと、
を含む画像識別方法。
【０１０４】
（付記１７）
入力画像が入力される入力層及び前記入力画像の識別結果が出力される出力層以外の層である中間層を有する識別器を備える画像識別装置のコンピュータに、
前記中間層において、前記入力画像を識別するための特徴マップを取得する特徴マップ取得ステップ、
前記中間層の活性化状態を可視化した活性化マップを生成する活性化マップ生成ステップ、
前記活性化マップ生成ステップで生成した前記活性化マップを参照して、前記特徴マップ取得ステップで取得した特徴マップを編集する編集ステップ、及び、
前記編集ステップにより編集された特徴マップを用いて前記入力画像を識別する識別ステップ、
を実行させるためのプログラム。
【符号の説明】
【０１０５】
１０…制御部、１１…ＣＮＮ識別器、１２…不要領域取得部、１３…不要領域削除部、２０…記憶部、３１…画像入力部、３２…出力部、３３…通信部、３４…操作入力部、１００…画像識別装置、１１０，１１１…入力画像、１１２，１１３，１１４，１１５，１１６，１１７，１３０，１３２…特徴マップ、１１８…出力、１２０，１２１，１２３，１２４，１２５…フィルタ、１２２，１２６，１３１…ウィンドウ、１２７…全結合接続、１４０，１４１，１４２，１４４，１４５，１４６，１４７，１５１…活性化マップ、１４３，１５３…画像、１５２…チャネル、１１１１…識別対象、１１１２…物差し、１５１１…必要領域、１５１２…不要領域、１５２１…領域
【図１】
2020008896.tif 000003
【図２】
2020008896.tif 000004
【図３】
2020008896.tif 000005
【図４】
2020008896.tif 000006
【図５】
2020008896.tif 000007
【図６】
2020008896.tif 000008
【図７】
2020008896.tif 000009
【図８】
2020008896.tif 000010
【図９】
2020008896.tif 000011
【図１０】
2020008896.tif 000012
【図１１】
2020008896.tif 000013
【図１２】
2020008896.tif 000014