(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024044914
(43)【公開日】2024-04-02
(54)【発明の名称】画像処理装置、学習モデルの生産方法、および推論方法
(51)【国際特許分類】
G06T 7/00 20170101AFI20240326BHJP
G06N 3/08 20230101ALI20240326BHJP
【FI】
G06T7/00 350C
G06N3/08
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2022150740
(22)【出願日】2022-09-21
(71)【出願人】
【識別番号】000001432
【氏名又は名称】グローリー株式会社
(71)【出願人】
【識別番号】500433225
【氏名又は名称】学校法人中部大学
(74)【代理人】
【識別番号】100117673
【弁理士】
【氏名又は名称】中島 了
(72)【発明者】
【氏名】鵜飼 祐生
(72)【発明者】
【氏名】藤吉 弘亘
(72)【発明者】
【氏名】山下 隆義
(72)【発明者】
【氏名】平川 翼
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096EA23
5L096GA06
5L096GA34
5L096HA11
5L096JA03
5L096KA04
5L096KA15
(57)【要約】
【課題】未分類クラスの推論対象画像の類似画像を検索する画像検索処理においても判断根拠の説明性を向上させることが可能な技術を提供する。
【解決手段】学習モデルは、プロトタイプベクトル(画像特徴概念候補を示すパラメータ列)を複数個生成し、CNNからの特徴マップ内の各ピクセルベクトルと一のプロトタイプベクトルとの類似性に基づき、入力画像と各プロトタイプとの類似度を複数のプロトタイプについて示す統合類似度ベクトルを生成する。画像処理装置30は、各クラスにおける所属プロトタイプのプロトタイプ所属度を同一クラス内の2以上の画像のそれぞれに対して分配した、画像ごとのプロトタイプ所属度(分配プロトタイプ所属度)を求める。そして、各プロトタイプベクトルが各画像の分配プロトタイプ所属度に応じて、各画像に対応する特徴マップ内のいずれかのピクセルベクトルに対して近づくように、学習モデルが機械学習される。
【選択図】
図12
【特許請求の範囲】
【請求項1】
画像処理装置であって、
畳み込みニューラルネットワークを備えて構成される学習モデルに関する機械学習を実行する制御部、
を備え、
前記学習モデルは、
入力画像の入力に応じて前記畳み込みニューラルネットワーク内の所定層から得られる特徴マップであって前記入力画像内の部分領域ごとの特徴量を複数のチャンネルについて示す特徴マップを生成し、
前記複数のチャンネルで構成される特定の画像特徴概念の候補を示すプロトタイプとして学習されるパラメータ列であるプロトタイプベクトルを複数個生成し、
前記特徴マップ内の各ピクセルの各平面位置における前記複数のチャンネルに亘る画像特徴を表現するベクトルである各ピクセルベクトルと一のプロトタイプベクトルとの類似性に基づき、前記入力画像と各プロトタイプとの類似度を複数のプロトタイプについて示す統合類似度ベクトルを生成する、
モデルであり、
前記制御部は、学習用の複数の画像に基づく前記学習モデルの学習段階において、
一のクラスに所属するプロトタイプである所属プロトタイプと、当該所属プロトタイプの前記一のクラスへの所属度合いを示すプロトタイプ所属度とを、前記学習用の前記複数の画像にラベル付けされた複数のクラスのそれぞれについて求めるとともに、
各クラスにおける所属プロトタイプのプロトタイプ所属度を同一クラス内の2以上の画像のそれぞれに対して所定の基準に基づき分配した、画像ごとのプロトタイプ所属度である分配プロトタイプ所属度を求め、
前記複数の画像に対応する複数の統合類似度ベクトルに基づく学習処理を実行する際に、各プロトタイプベクトルが各画像の分配プロトタイプ所属度に応じて、前記各画像に対応する特徴マップ内のいずれかのピクセルベクトルに対して近づくようにも、前記学習モデルを機械学習することを特徴とする画像処理装置。
【請求項2】
前記制御部は、
前記一のクラスの所属プロトタイプを前記学習用の前記複数の画像のうち前記一のクラスに属する所定画像と前記一のクラス以外のクラスに属する複数の比較対象画像のそれぞれとの比較に基づき選出するプロトタイプ選出処理を実行し、
前記プロトタイプ選出処理における各所属プロトタイプの選出数の多寡に基づき、前記一のクラスに関する前記各所属プロトタイプの前記プロトタイプ所属度を求め、
前記プロトタイプ選出処理は、
前記所定画像を学習モデルに入力して得られる統合類似度ベクトルから、前記複数の比較対象画像のうちの一の比較対象画像を前記学習モデルに入力して得られる統合類似度ベクトルを差し引いた差分ベクトルを求め、当該差分ベクトルにおける複数の成分のうち最も大きな成分に対応するプロトタイプを前記所定画像のクラスに所属する前記所属プロトタイプとして選出する単位選出処理を含むとともに、
前記一の比較対象画像を別の比較対象画像に変更しつつ前記単位選出処理を前記複数の比較対象画像について実行することによって、前記一のクラスに所属する少なくとも1つの所属プロトタイプを選出するとともに所属プロトタイプごとの選出数をカウントする選出数算出処理を含むことを特徴とする、請求項1に記載の画像処理装置。
【請求項3】
前記制御部は、一のプロトタイプが2以上のクラスに所属する場合、当該2以上のクラスのそれぞれにおける当該一のプロトタイプの所属度を低減することを特徴とする、請求項2に記載の画像処理装置。
【請求項4】
前記制御部は、前記一のクラスに所属する一の所属プロトタイプのプロトタイプ所属度を前記一のクラスに属するN個の画像に分配してN個の画像のそれぞれに対する分配プロトタイプ所属度を決定するにあたり、
前記N個の画像のうちの一の画像に対応する特徴マップ内の複数のピクセルベクトルのうち前記一の所属プロトタイプのプロトタイプベクトルに最も類似するピクセルベクトルとの距離である第1の距離を求め、
前記N個の画像のうちの他の画像に対応する特徴マップ内の複数のピクセルベクトルのうち前記一の所属プロトタイプのプロトタイプベクトルに最も類似するピクセルベクトルとの距離である第2の距離を求め、
前記第1の距離が前記第2の距離よりも大きい場合、前記一の画像に対する前記分配プロトタイプ所属度を、前記他の画像に対する前記分配プロトタイプ所属度よりも小さな値として決定することを特徴とする、請求項2または請求項3に記載の画像処理装置。
【請求項5】
前記制御部は、前記学習モデルの機械学習が終了した後、前記各プロトタイプベクトルを、前記複数の画像に関する複数の特徴マップにおける複数のピクセルベクトルのうち当該各プロトタイプベクトルに最も類似するピクセルベクトルである最類似ピクセルベクトルにそれぞれ置き換えることによって前記学習モデルを修正することを特徴とする、請求項1から請求項4のいずれかに記載の画像処理装置。
【請求項6】
前記学習モデルの機械学習に用いられる評価関数は、明瞭性に関する評価項である第1評価項を有し、
前記制御部は、前記学習用の前記複数の画像のうちの任意の組合せに係る第1画像と第2画像とに関して、
前記第1画像を前記学習モデルに入力して得られる統合類似度ベクトルである第1ベクトルと、前記第2画像を前記学習モデルに入力して得られる統合類似度ベクトルである第2ベクトルとの両ベクトルを求め、
前記第1ベクトルと前記第2ベクトルとの差分ベクトルにおける複数の成分の絶対値を降順にソートし、
前記差分ベクトルの前記複数の成分のうち降順にソートした後の上位n個までの成分のみで再構成される部分差分ベクトルの大きさDnを複数の値n(n=1,...,,Nd;ただし、値Ndは、前記統合類似度ベクトルの次元数Nc以下の所定の整数である)のそれぞれについて求め、
前記複数の値nにそれぞれ対応する複数の大きさDnの総和を前記両ベクトル間のベクトル間距離で除して正規化した値が最大化されるように、前記第1評価項を最適化して前記学習モデルを機械学習することを特徴とする、請求項1から請求項5のいずれかに記載の画像処理装置。
【請求項7】
前記評価関数は、
前記複数の画像に対応する前記複数の統合類似度ベクトルに基づく距離学習のための評価項である第2評価項、
をさらに有し、
前記第1評価項は、前記複数の大きさの総和に関する評価項を画像ペアごとに求めたペア別第1評価項を、複数組の画像ペアについて加算した総和で表現され、
前記第2評価項は、前記複数の統合類似度ベクトルに基づく距離学習に関する評価項を画像ペアごとに求めたペア別第2評価項を、複数組の画像ペアについて加算した総和で表現され、
前記制御部は、前記ペア別第1評価項を前記各画像ペアに関する前記ベクトル間距離で偏微分した値の絶対値が、前記ペア別第2評価項を前記各画像ペアに関する前記ベクトル間距離で偏微分した値の絶対値を上回らないように、前記ペア別第1評価項の大きさを調整することを特徴とする、請求項6に記載の画像処理装置。
【請求項8】
前記制御部は、前記学習モデルの機械学習が終了した後に、検索対象の入力画像を前記学習モデルに入力することに応じて前記学習モデルから出力される統合類似度ベクトルと、前記学習用の前記複数の画像を前記学習モデルに入力することに応じて前記学習モデルから出力される複数の統合類似度ベクトルとに基づいて、前記学習用の前記複数の画像の中から、前記検索対象の入力画像に類似する画像を検索することを特徴とする、請求項1から請求項7のいずれかに記載の画像処理装置。
【請求項9】
前記制御部は、前記学習モデルの機械学習が終了し且つ前記各プロトタイプベクトルが前記最類似ピクセルベクトルにそれぞれ置き換えられた後に、検索対象の入力画像を前記学習モデルに入力することに応じて前記学習モデルから出力される統合類似度ベクトルと、前記学習用の前記複数の画像を前記学習モデルに入力することに応じて前記学習モデルから出力される複数の統合類似度ベクトルとに基づいて、前記学習用の前記複数の画像の中から、前記検索対象の入力画像に類似する画像を検索することを特徴とする、請求項5に記載の画像処理装置。
【請求項10】
学習モデルの生産方法であって、
前記学習モデルは、
入力画像の入力に応じて前記学習モデル内の畳み込みニューラルネットワーク内の所定層から得られる特徴マップであって前記入力画像内の部分領域ごとの特徴量を複数のチャンネルについて示す特徴マップを生成し、
前記複数のチャンネルで構成される特定の画像特徴概念の候補を示すプロトタイプとして学習されるパラメータ列であるプロトタイプベクトルを複数個生成し、
前記特徴マップ内の各ピクセルの各平面位置における前記複数のチャンネルに亘る画像特徴を表現するベクトルである各ピクセルベクトルと一のプロトタイプベクトルとの類似性に基づき、前記入力画像と各プロトタイプとの類似度を複数のプロトタイプについて示す統合類似度ベクトルを生成する、
モデルであり、
前記学習モデルの生産方法は、
a)学習用の複数の画像に基づき、一のクラスに所属するプロトタイプである所属プロトタイプと、当該所属プロトタイプの前記一のクラスへの所属度合いを示すプロトタイプ所属度とを、前記学習用の前記複数の画像にラベル付けされた複数のクラスのそれぞれについて求めるステップと、
b)各クラスにおける所属プロトタイプのプロトタイプ所属度を同一クラス内の2以上の画像のそれぞれに対して所定の基準に基づき分配した、画像ごとのプロトタイプ所属度である分配プロトタイプ所属度を求めるステップと、
c)前記複数の画像に対応する複数の統合類似度ベクトルに基づく学習処理を実行する際に、各プロトタイプベクトルが各画像の分配プロトタイプ所属度に応じて、前記各画像に対応する特徴マップ内のいずれかのピクセルベクトルに対して近づくようにも、前記学習モデルを機械学習するステップと、
を備えることを特徴とする、学習モデルの生産方法。
【請求項11】
d)前記学習モデルの機械学習が終了した後、前記各プロトタイプベクトルを、前記複数の画像に関する複数の特徴マップにおける複数のピクセルベクトルのうち当該各プロトタイプベクトルに最も類似するピクセルベクトルである最類似ピクセルベクトルにそれぞれ置き換えることによって、前記学習モデルを修正するステップ、
をさらに備えることを特徴とする、請求項10に記載の学習モデルの生産方法。
【請求項12】
前記ステップc)は、前記学習用の前記複数の画像のうちの任意の組合せに係る第1画像と第2画像とに関して、
c-1)前記第1画像を前記学習モデルに入力して得られる統合類似度ベクトルである第1ベクトルと、前記第2画像を前記学習モデルに入力して得られる統合類似度ベクトルである第2ベクトルとの両ベクトルを求めるステップと、
c-2)前記第1ベクトルと前記第2ベクトルとの差分ベクトルにおける複数の成分の絶対値を降順にソートするステップと
c-3)前記差分ベクトルの前記複数の成分のうち降順にソートした後の上位n個までの成分のみで再構成される部分差分ベクトルの大きさDnを複数の値n(n=1,...,,Nd;ただし、値Ndは、前記統合類似度ベクトルの次元数Nc以下の所定の整数である)のそれぞれについて求めるステップと、
c-4)前記複数の値nにそれぞれ対応する複数の大きさDnの総和を前記両ベクトル間のベクトル間距離で除して正規化した値が最大化されるようにも、前記学習モデルを機械学習するステップと、
を備えることを特徴とする、請求項10または請求項11に記載の学習モデルの生産方法。
【請求項13】
請求項10から請求項12のいずれかに記載の学習モデルの生産方法によって生産された学習モデルを用いて、新たな入力画像に関する推論処理を実行することを特徴とする、推論方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置(特に、機械学習における説明性を向上させる画像処理装置)、およびそれに関連する技術に関する。
【背景技術】
【0002】
近年、深層学習(ディープラーニング)などの機械学習を用いた推論処理技術が急速に進化を遂げている(特許文献1等参照)。
【0003】
しかしながら、機械学習における学習モデルが非常に複雑であること等に起因して、学習モデルによる推論結果がどのような判断根拠に基づいて得られているのかが必ずしも明確ではない(説明が容易ではない)、という問題が存在する。
【0004】
特に、推論結果が重要な影響を与える場面では、判断根拠の説明性を向上させることが要求されている。
【0005】
たとえば、判断根拠の説明性、特に「透明性」(人間により理解可能なコンセプトで推論結果を説明できるか)を向上させることが可能な技術として、クラス分類問題にProtoPNetを適用する機械学習技術が存在する。当該技術においては、学習モデル内に設けた「プロトタイプ」(何らかの画像特徴を表す学習パラメータ)が用いられる。より具体的には、特徴マップ内の各平面位置における画像特徴(特徴マップ内のピクセルベクトル)へ向けて「プロトタイプ」が近づくように、機械学習が進められる。当該特徴マップは、学習用の入力画像を学習モデルに入力した際に当該学習モデル内の畳み込みニューラルネットワークから出力されるものである。当該特徴マップ内の各平面位置における画像特徴は、入力画像内の部分領域(画像パッチ)の画像特徴を表している。
【0006】
このような機械学習により得られた学習モデルを用いた推論を行うことによれば、推論対象画像が特定画像の特定位置の部分領域(画像パッチ)に類似していること、を判断根拠として示すことが可能である。すなわち、透明性を高めることができる。
【先行技術文献】
【特許文献】
【0007】
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上述の技術は、クラス分類問題にProtoPNetを適用したものである。すなわち、当該技術は、推論対象画像が(既知の)複数のクラスのいずれに属するかを求めるクラス分類問題の解決にのみ利用することが可能である。
【0009】
特に、当該技術(ProtoPNetを用いた従来技術)においては、クラス分類問題がターゲットであり、各プロトタイプはそれぞれ一の特定クラスのみに(一意に)関連付けられることが前提とされている。そして、当該前提に基づく損失関数(評価関数)を最適化するように機械学習が進められる。
【0010】
それ故、当該技術は、そのままではクラス分類以外の用途には利用できない。たとえば、既知クラス以外の画像(未分類クラスの画像)を推論対象画像とし、当該推論対象画像に類似する類似画像を複数の画像の中から検索する画像検索処理等に当該技術をそのまま利用することはできない。
【0011】
そこで、この発明は、既知クラス以外の画像(未分類クラスの画像)を含み得る推論対象画像に関してその類似画像を複数の画像の中から検索する画像検索処理においても判断根拠の説明性を向上させることが可能な技術を提供することを課題とする。
【課題を解決するための手段】
【0012】
上記課題を解決すべく、本発明に係る画像処理装置は、畳み込みニューラルネットワークを備えて構成される学習モデルに関する機械学習を実行する制御部、を備え、前記学習モデルは、入力画像の入力に応じて前記畳み込みニューラルネットワーク内の所定層から得られる特徴マップであって前記入力画像内の部分領域ごとの特徴量を複数のチャンネルについて示す特徴マップを生成し、前記複数のチャンネルで構成される特定の画像特徴概念の候補を示すプロトタイプとして学習されるパラメータ列であるプロトタイプベクトルを複数個生成し、前記特徴マップ内の各ピクセルの各平面位置における前記複数のチャンネルに亘る画像特徴を表現するベクトルである各ピクセルベクトルと一のプロトタイプベクトルとの類似性に基づき、前記入力画像と各プロトタイプとの類似度を複数のプロトタイプについて示す統合類似度ベクトルを生成する、モデルであり、前記制御部は、学習用の複数の画像に基づく前記学習モデルの学習段階において、一のクラスに所属するプロトタイプである所属プロトタイプと、当該所属プロトタイプの前記一のクラスへの所属度合いを示すプロトタイプ所属度とを、前記学習用の前記複数の画像にラベル付けされた複数のクラスのそれぞれについて求めるとともに、各クラスにおける所属プロトタイプのプロトタイプ所属度を同一クラス内の2以上の画像のそれぞれに対して所定の基準に基づき分配した、画像ごとのプロトタイプ所属度である分配プロトタイプ所属度を求め、前記複数の画像に対応する複数の統合類似度ベクトルに基づく学習処理を実行する際に、各プロトタイプベクトルが各画像の分配プロトタイプ所属度に応じて、前記各画像に対応する特徴マップ内のいずれかのピクセルベクトルに対して近づくようにも、前記学習モデルを機械学習する。
【0013】
前記制御部は、前記一のクラスの所属プロトタイプを前記学習用の前記複数の画像のうち前記一のクラスに属する所定画像と前記一のクラス以外のクラスに属する複数の比較対象画像のそれぞれとの比較に基づき選出するプロトタイプ選出処理を実行し、前記プロトタイプ選出処理における各所属プロトタイプの選出数の多寡に基づき、前記一のクラスに関する前記各所属プロトタイプの前記プロトタイプ所属度を求め、前記プロトタイプ選出処理は、前記所定画像を学習モデルに入力して得られる統合類似度ベクトルから、前記複数の比較対象画像のうちの一の比較対象画像を前記学習モデルに入力して得られる統合類似度ベクトルを差し引いた差分ベクトルを求め、当該差分ベクトルにおける複数の成分のうち最も大きな成分に対応するプロトタイプを前記所定画像のクラスに所属する前記所属プロトタイプとして選出する単位選出処理を含むとともに、前記一の比較対象画像を別の比較対象画像に変更しつつ前記単位選出処理を前記複数の比較対象画像について実行することによって、前記一のクラスに所属する少なくとも1つの所属プロトタイプを選出するとともに所属プロトタイプごとの選出数をカウントする選出数算出処理を含んでもよい。
【0014】
前記制御部は、一のプロトタイプが2以上のクラスに所属する場合、当該2以上のクラスのそれぞれにおける当該一のプロトタイプの所属度を低減してもよい。
【0015】
前記制御部は、前記一のクラスに所属する一の所属プロトタイプのプロトタイプ所属度を前記一のクラスに属するN個の画像に分配してN個の画像のそれぞれに対する分配プロトタイプ所属度を決定するにあたり、前記N個の画像のうちの一の画像に対応する特徴マップ内の複数のピクセルベクトルのうち前記一の所属プロトタイプのプロトタイプベクトルに最も類似するピクセルベクトルとの距離である第1の距離を求め、前記N個の画像のうちの他の画像に対応する特徴マップ内の複数のピクセルベクトルのうち前記一の所属プロトタイプのプロトタイプベクトルに最も類似するピクセルベクトルとの距離である第2の距離を求め、前記第1の距離が前記第2の距離よりも大きい場合、前記一の画像に対する前記分配プロトタイプ所属度を、前記他の画像に対する前記分配プロトタイプ所属度よりも小さな値として決定してもよい。
【0016】
前記制御部は、前記学習モデルの機械学習が終了した後、前記各プロトタイプベクトルを、前記複数の画像に関する複数の特徴マップにおける複数のピクセルベクトルのうち当該各プロトタイプベクトルに最も類似するピクセルベクトルである最類似ピクセルベクトルにそれぞれ置き換えることによって前記学習モデルを修正してもよい。
【0017】
前記学習モデルの機械学習に用いられる評価関数は、明瞭性に関する評価項である第1評価項を有し、前記制御部は、前記学習用の前記複数の画像のうちの任意の組合せに係る第1画像と第2画像とに関して、前記第1画像を前記学習モデルに入力して得られる統合類似度ベクトルである第1ベクトルと、前記第2画像を前記学習モデルに入力して得られる統合類似度ベクトルである第2ベクトルとの両ベクトルを求め、前記第1ベクトルと前記第2ベクトルとの差分ベクトルにおける複数の成分の絶対値を降順にソートし、前記差分ベクトルの前記複数の成分のうち降順にソートした後の上位n個までの成分のみで再構成される部分差分ベクトルの大きさDnを複数の値n(n=1,...,,Nd;ただし、値Ndは、前記統合類似度ベクトルの次元数Nc以下の所定の整数である)のそれぞれについて求め、前記複数の値nにそれぞれ対応する複数の大きさDnの総和を前記両ベクトル間のベクトル間距離で除して正規化した値が最大化されるように、前記第1評価項を最適化して前記学習モデルを機械学習してもよい。
【0018】
前記評価関数は、前記複数の画像に対応する前記複数の統合類似度ベクトルに基づく距離学習のための評価項である第2評価項、をさらに有し、前記第1評価項は、前記複数の大きさの総和に関する評価項を画像ペアごとに求めたペア別第1評価項を、複数組の画像ペアについて加算した総和で表現され、前記第2評価項は、前記複数の統合類似度ベクトルに基づく距離学習に関する評価項を画像ペアごとに求めたペア別第2評価項を、複数組の画像ペアについて加算した総和で表現され、前記制御部は、前記ペア別第1評価項を前記各画像ペアに関する前記ベクトル間距離で偏微分した値の絶対値が、前記ペア別第2評価項を前記各画像ペアに関する前記ベクトル間距離で偏微分した値の絶対値を上回らないように、前記ペア別第1評価項の大きさを調整してもよい。
【0019】
前記制御部は、前記学習モデルの機械学習が終了した後に、検索対象の入力画像を前記学習モデルに入力することに応じて前記学習モデルから出力される統合類似度ベクトルと、前記学習用の前記複数の画像を前記学習モデルに入力することに応じて前記学習モデルから出力される複数の統合類似度ベクトルとに基づいて、前記学習用の前記複数の画像の中から、前記検索対象の入力画像に類似する画像を検索してもよい。
【0020】
前記制御部は、前記学習モデルの機械学習が終了し且つ前記各プロトタイプベクトルが前記最類似ピクセルベクトルにそれぞれ置き換えられた後に、検索対象の入力画像を前記学習モデルに入力することに応じて前記学習モデルから出力される統合類似度ベクトルと、前記学習用の前記複数の画像を前記学習モデルに入力することに応じて前記学習モデルから出力される複数の統合類似度ベクトルとに基づいて、前記学習用の前記複数の画像の中から、前記検索対象の入力画像に類似する画像を検索してもよい。
【0021】
上記課題を解決すべく、本発明に係る学習モデルの生産方法は、次のような学習モデルを次のように機械学習して生産する。当該学習モデルは、入力画像の入力に応じて前記学習モデル内の畳み込みニューラルネットワーク内の所定層から得られる特徴マップであって前記入力画像内の部分領域ごとの特徴量を複数のチャンネルについて示す特徴マップを生成し、前記複数のチャンネルで構成される特定の画像特徴概念の候補を示すプロトタイプとして学習されるパラメータ列であるプロトタイプベクトルを複数個生成し、前記特徴マップ内の各ピクセルの各平面位置における前記複数のチャンネルに亘る画像特徴を表現するベクトルである各ピクセルベクトルと一のプロトタイプベクトルとの類似性に基づき、前記入力画像と各プロトタイプとの類似度を複数のプロトタイプについて示す統合類似度ベクトルを生成する、モデルである。当該学習モデルの生産方法は、a)学習用の複数の画像に基づき、一のクラスに所属するプロトタイプである所属プロトタイプと、当該所属プロトタイプの前記一のクラスへの所属度合いを示すプロトタイプ所属度とを、前記学習用の前記複数の画像にラベル付けされた複数のクラスのそれぞれについて求めるステップと、b)各クラスにおける所属プロトタイプのプロトタイプ所属度を同一クラス内の2以上の画像のそれぞれに対して所定の基準に基づき分配した、画像ごとのプロトタイプ所属度である分配プロトタイプ所属度を求めるステップと、c)前記複数の画像に対応する複数の統合類似度ベクトルに基づく学習処理を実行する際に、各プロトタイプベクトルが各画像の分配プロトタイプ所属度に応じて、前記各画像に対応する特徴マップ内のいずれかのピクセルベクトルに対して近づくようにも、前記学習モデルを機械学習するステップとを備える。
【0022】
前記学習モデルの生産方法は、d)前記学習モデルの機械学習が終了した後、前記各プロトタイプベクトルを、前記複数の画像に関する複数の特徴マップにおける複数のピクセルベクトルのうち当該各プロトタイプベクトルに最も類似するピクセルベクトルである最類似ピクセルベクトルにそれぞれ置き換えることによって、前記学習モデルを修正するステップ、をさらに備えてもよい。
【0023】
前記ステップc)は、前記学習用の前記複数の画像のうちの任意の組合せに係る第1画像と第2画像とに関して、c-1)前記第1画像を前記学習モデルに入力して得られる統合類似度ベクトルである第1ベクトルと、前記第2画像を前記学習モデルに入力して得られる統合類似度ベクトルである第2ベクトルとの両ベクトルを求めるステップと、c-2)前記第1ベクトルと前記第2ベクトルとの差分ベクトルにおける複数の成分の絶対値を降順にソートするステップとc-3)前記差分ベクトルの前記複数の成分のうち降順にソートした後の上位n個までの成分のみで再構成される部分差分ベクトルの大きさDnを複数の値n(n=1,...,,Nd;ただし、値Ndは、前記統合類似度ベクトルの次元数Nc以下の所定の整数である)のそれぞれについて求めるステップと、c-4)前記複数の値nにそれぞれ対応する複数の大きさDnの総和を前記両ベクトル間のベクトル間距離で除して正規化した値が最大化されるようにも、前記学習モデルを機械学習するステップと、を備えてもよい。
【0024】
上記課題を解決すべく、本発明に係る推論方法は、上記いずれかの学習モデルの生産方法によって生産された学習モデルを用いて、新たな入力画像に関する推論処理を実行する。
【発明の効果】
【0025】
本発明によれば、各プロトタイプベクトルが各画像の分配プロトタイプ所属度に応じて当該各画像に対応する特徴マップ内のいずれかのピクセルベクトルに近づくように学習される。それ故、各プロトタイプが特定画像の特定領域の画像特徴(ピクセルベクトル)に近い特徴を表現するように学習される。ひいては、学習モデルにおける学習結果に関する説明性(特に透明性(人間による理解が可能なコンセプトで説明できること))を向上させることが可能である。
【図面の簡単な説明】
【0026】
【
図3】学習モデルにおけるデータ構造等を示す図である。
【
図4】特徴抽出層の構成の一例を示す概念図である。
【
図5】画像処理装置(コントローラ等)の処理を示すフローチャートである。
【
図7】学習進展前における特徴空間等を示す図である。
【
図8】学習進展後における特徴空間等を示す図である。
【
図9】学習処理の詳細を示すフローチャートである。
【
図10】学習処理の詳細を示すフローチャートである。
【
図11】
図9の一部の処理を詳細に示すフローチャートである。
【
図12】評価項Lclstに関連する学習処理を概念的に示す図である。
【
図13】プロトタイプ選出処理を示す概念図である。
【
図14】プロトタイプ所属度のクラス単位での平均化処理の一例を示す図である。
【
図15】デバイアス処理(偏り抑制処理)を示す概念図である。
【
図20】プロトタイプベクトルの置き換え処理を示す概念図である。
【
図25】2つの画像が互いに似ていない旨の判断根拠が生成される様子の一部を示す図である。
【
図27】似ていない推論結果に関する説明情報の表示例を示す図である。
【
図28】似ていない推論結果に関する説明情報の表示例を示す図である。
【
図29】上位所定数個のプロトタイプによる説明程度を示す図である(改善前)。
【
図30】明瞭性が改善される様子を示す概念図である。
【
図31】明瞭性改善用の評価項Lintを説明するための図である。
【
図32】評価項Lintに関する学習処理等を示す図である。
【
図33】
図29の画像ペアに関する明瞭性の改善例を示している。
【
図34】ネガティブペアに作用する斥力および引力を示す図である。
【発明を実施するための形態】
【0027】
以下、本発明の実施形態を図面に基づいて説明する。
【0028】
<1.第1実施形態>
<1-1.システム概要等>
図1は、画像処理システム1を示す概略図である。
図1に示されるように、画像処理システム1は、撮影画像を撮像する複数(多数)の撮影装置20と、撮影画像を処理する画像処理装置30とを備えている。画像処理装置30は、撮影画像の対象(ここでは対象人物)を識別ないし分類するための各種の処理を実行する装置である。
【0029】
各撮影装置20で撮影された撮影画像は、通信ネットワーク(LANおよび/またはインターネット等)を介して画像処理装置30に入力される。そして、画像処理装置30における画像処理等によって、或る推論対象画像(或る撮影画像等)に関してその類似画像を複数の画像(既知の画像(学習用の撮影画像等))の中から検索する画像検索処理等が実行される。
【0030】
より詳細には、
図5のフローチャートに示されるように、まず、画像処理装置30は、複数の対象物(複数の種類の対象物(たとえば鳥)等)のそれぞれを撮影した複数の学習用画像に基づき、後述する学習モデル400を学習(機械学習)する。そのような機械学習により、学習済みの学習モデル400(420とも表記する)が生成される(ステップS11)。なお、
図5は、画像処理装置30(コントローラ31等)の処理を示すフローチャートである。
【0031】
その後、画像処理装置30は、学習済みの学習モデル420を用いた推論処理を実行する(ステップS12)。詳細には、画像処理装置30は、学習済みの学習モデル420を用いて、或る推論対象画像に最も類似する画像(或る推論対象画像内の対象物に最も類似する対象物を含む画像)を複数の学習用画像の中から検索(抽出)する画像検索処理等を実行する。このような処理は、或る画像内の対象(動物、人物等)を識別する処理とも称される。
【0032】
さらに、画像処理装置30は、推論結果に対する説明情報生成処理(ステップS13)を実行する。
【0033】
なお、ここでは、推論対象画像および学習用の複数の画像として、撮影画像を主に例示するが、これに限定されない。たとえば、学習用の複数の画像および推論対象画像は、撮影画像以外の画像(たとえば、CG(コンピュータグラフィック)画像あるいは手書き画像等)であってもよい。また、当該撮影画像は、画像処理システム1の撮影装置20によって撮影された画像でもよく、画像処理システム1の撮影装置20以外の撮影装置によって撮影された画像でもよい。
【0034】
<1-2.画像処理装置30>
図1を再び参照する。
図1に示されるように、画像処理装置30は、コントローラ31(制御部とも称される)と記憶部32と通信部34と操作部35とを備える。
【0035】
コントローラ31は、画像処理装置30に内蔵され、画像処理装置30の動作を制御する制御装置である。
【0036】
コントローラ31は、1又は複数のハードウェアプロセッサ(例えば、CPU(Central Processing Unit)およびGPU(Graphics Processing Unit))等を備えるコンピュータシステムとして構成される。コントローラ31は、CPU等において、記憶部(ROMおよび/またはハードディスクなどの不揮発性記憶部)32内に格納されている所定のソフトウエアプログラム(以下、単にプログラムとも称する)を実行することによって、各種の処理を実現する。なお、当該プログラム(詳細にはプログラムモジュール群)は、USBメモリなどの可搬性の記録媒体に記録され、当該記録媒体から読み出されて画像処理装置30にインストールされるようにしてもよい。あるいは、当該プログラムは、通信ネットワーク等を経由してダウンロードされて画像処理装置30にインストールされるようにしてもよい。
【0037】
具体的には、コントローラ31は、学習モデル400を機械学習する学習処理、および学習済みの学習モデル400(420)を用いた推論処理(画像検索処理等)を実行する。コントローラ31は、当該推論処理の根拠を示す説明処理等をも実行する。
【0038】
記憶部32は、ハードディスクドライブ(HDD)および/またはソリッドステートドライブ(SSD)等の記憶装置で構成される。記憶部32は、学習モデル400(学習モデルに関する学習パラメータおよびプログラムを含む)(ひいては学習済みモデル420)等を記憶する。
【0039】
通信部34は、ネットワークを介したネットワーク通信を行うことが可能である。このネットワーク通信では、たとえば、TCP/IP(Transmission Control Protocol / Internet Protocol)等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、画像処理装置30は、所望の相手先(たとえば、撮影装置20あるいは不図示の情報格納装置等)との間で各種のデータ(撮影画像データおよび正解データ等)を授受することが可能である。
【0040】
操作部35は、画像処理装置30に対する操作入力を受け付ける操作入力部35aと、各種情報の表示出力を行う表示部35bとを備えている。操作入力部35aとしてはマウスおよびキーボード等が用いられ、表示部35bとしてはディスプレイ(液晶ディスプレイ等)が用いられる。また、操作入力部35aの一部としても機能し且つ表示部35bの一部としても機能するタッチパネルが設けられてもよい。
【0041】
なお、画像処理装置30は、教師データ(学習用の複数の画像の画像データ等)を用いて学習モデル400を機械学習して生成する機能を備えているので、学習モデル生成装置とも称される。また、画像処理装置30は、学習された学習モデル400を用いて対象の識別および/また分類に関する推論を実行する装置でもあるので、推論装置とも称される。
【0042】
また、ここでは、様々な処理(機能)が1つの画像処理装置30によって実現されているが、これに限定されない。たとえば、様々な処理が複数の装置で分担されて実現されてもよい。たとえば、学習モデル400の学習処理と、学習済みモデル400(420)を用いた推論処理とが、それぞれ別個の装置で実行されてもよい。
【0043】
<1-3.学習モデル400>
上述のように、画像処理装置30は、学習モデル400を備えている。ここでは、学習モデル400として、複数の層で構成されるニューラルネットワークモデル、詳細には、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)モデルが用いられる。そして、当該学習モデル400がメトリックラーニング(Deep Metric Learning)によって学習される。具体的には、畳み込みニューラルネットワークモデルにおける複数の層(特に複数の中間層)における特徴抽出用の各種画像フィルタ(畳み込み層の画像フィルタ)のパラメータ(学習パラメータ)等が調整される。
【0044】
なお、上述のように、機械学習によって学習された後の学習モデル400は、学習済みモデルとも称される。学習モデル400(学習器)の学習パラメータが所定の機械学習手法を用いて調整されることによって、学習済みの学習モデル400(学習済みモデル420)が生成される。
【0045】
本願において、学習済みモデル400(420)を生成することは、学習済みモデル400を製造(生産)することを意味するとともに、「学習済みモデルの生成方法」は「学習済みモデルの生産方法」を意味する。
【0046】
図2および
図3は、学習モデル400の構成を示す図である。
図2は、学習モデル400の階層的構造を示しており、
図3は、学習モデル400におけるデータ構造等を示している。
【0047】
図2に示されるように、学習モデル400は、複数の層(階層)が階層的に接続される階層構造を有している。具体的には、学習モデル400は、入力層310と特徴抽出層320と類似度マップ生成層330と統合類似度ベクトル生成層370と出力層380とを備えている。
【0048】
<入力層310>
入力層310は、入力画像210を受け付ける層である。入力画像210は、対象物の撮影画像(たとえば、鳥の画像)である。たとえば、幅(横)W0画素および高さ(縦)H0画素の画素配列(矩形形状の画素配列)を有するカラー画像(3チャンネル)が入力画像210として入力される。換言すれば、入力画像210は、W0×H0×C0のボクセルデータ(ただし、C0=3)として生成される。
【0049】
<特徴抽出層320>
学習モデル400は、入力層310の後(次)に特徴抽出層320を備えている。特徴抽出層320は、畳み込みニューラルネットワーク(CNN)220(
図3)を備えて構成される。入力画像210に対して特徴抽出層320の処理が施されることによって、特徴マップ230が生成される。
【0050】
特徴抽出層320は、複数の畳み込み層と複数のプーリング層(平均プーリングおよび/または最大プーリング等)とを含む。この畳み込みニューラルネットワークにおいては、複数の中間層が設けられる。特徴抽出層320としては、たとえば、各種の畳み込みニューラルネットワーク構成(VGGあるいはResNet等)の一部(特徴抽出部分)が利用され得る。
【0051】
たとえば、VGG16において最終畳み込み層CV13の次の最終プーリング層(全結合層(3層)の直前のプーリング層)までに設けられる特徴抽出層(13層の畳み込み層および5層のプーリング層)(
図4参照)が、特徴抽出層320として設けられる。換言すれば、入力層310の次から始まる18層が、畳み込みニューラルネットワークにおける特徴抽出層320として設けられる。
図4においては、特徴抽出層320として、VGG16(13層の畳み込み層と5層のプーリング層と3層の全結合層とを有する)の構成の一部(最終プーリング層までの特徴抽出部分)が例示されている。なお、
図4においては、活性化関数等は適宜省略されている。
【0052】
あるいは、ResNet(Residual Network)(残差ネットワーク)などの他の畳み込みニューラルネットワークにおいて設けられる特徴抽出層の全部(または一部)が、畳み込みニューラルネットワークにおける特徴抽出層320として設けられてもよい。ResNetは、層間で残差を足し合わせることを含む畳み込みニューラルネットワークである。ResNetにおける特徴抽出層は、畳み込み層と活性化関数とスキップコネクション(ショートカットコネクション)との組合せ等で構成される複数の残差ブロック等で構成される。ここにおいて、一般的な畳み込みニューラルネットワークにおいては、特徴抽出層の後に、当該特徴抽出層にて抽出された特徴量に基づく分類処理を実行する層(分類層とも称する)として全結合層等が設けられる。そのような全結合層の直前までに設けられる特徴抽出層の全部(または一部)が、畳み込みニューラルネットワークにおける特徴抽出層320として設けられてもよい。
【0053】
特徴マップ230は、学習モデル400の畳み込みニューラルネットワークにおける所定層(ここでは最終プーリング層)から出力される特徴マップである。特徴マップ230は、複数のチャンネルを有する特徴マップとして生成される。特徴マップ230は、それぞれ幅W1画素および高さH1画素の画素配列(矩形形状の画素配列)の2次元配列データで構成されるチャンネルをC1個備える3次元配列データ(W1×H1×C1のボクセルデータ)として生成される。特徴マップ230の各チャンネルのサイズ(W1×H1)は、たとえば、14×14である。また、特徴マップ230のチャンネル数C1は、たとえば、512である。ただし、これに限定されず、各チャンネルのサイズおよびチャンネル数は、他の値であってもよい。たとえば、チャンネル数C1は、256、あるいは1024などであってもよい。
【0054】
ここにおいて、特徴抽出層320は、1又は複数の畳み込み層と1のプーリング層とが繰り返し配置されること等によって構成される。各畳み込み層では、畳み込み処理を実行するフィルタにより画像内の特徴が抽出される。また、各プーリング層では、微小画素範囲(たとえば、2×2の画素範囲)毎の平均画素値あるいは最大画素値等を抽出するプーリング処理(平均プーリング処理あるいは最大プーリング処理等)が行われ、画素サイズが低減(たとえば、縦横の各方向に1/2)される(情報量が凝縮される)。
【0055】
そして、このような特徴抽出層320による処理(畳み込み処理およびプーリング処理)が入力画像210に対して施されることによって、特徴マップ230が生成される。このように、特徴マップ230は、畳み込みニューラルネットワークにおいて入力層310の後に設けられた複数の畳み込み層と複数のプーリング層とを含む中間層によって生成される。これによれば、入力画像210における画像の各種の特徴は、特徴マップ230におけるチャンネルごとに抽出される。また、入力画像210における画像の特徴は、特徴マップ230における各チャンネルの2次元画像内において、その大まかな位置が保持された状態で抽出される。
【0056】
このように、特徴抽出層320は、入力画像210の入力に応じて畳み込みニューラルネットワーク(CNN)200内の所定層から得られる特徴マップ230を生成する層である。当該特徴マップ230は、入力画像210内の部分領域ごとの特徴量を複数(C1個)のチャンネルCHについて示すボクセルデータである。
【0057】
<類似度マップ生成層330>
類似度マップ生成層330は、特徴マップ230と複数のプロトタイプベクトル250(
図3参照)とに基づき類似度マップ270を生成する処理層である。各プロトタイプベクトル250は、プロトタイプベクトルp(あるいはpk)とも表現される。
【0058】
各プロトタイプベクトルp(第kプロトタイプベクトルpk)(
図3参照)は、複数のチャンネルCHで構成される特定の画像特徴概念の候補を示すプロトタイプPT(第kプロトタイプPTk)として学習される、パラメータ列である。各プロトタイプベクトルpは、学習対象の複数のパラメータで構成されるベクトルであり、特徴マップ230のチャンネル数(奥行き方向の次元数)C1と同じ次元数を有するベクトルである。各プロトタイプベクトルpは、大まかに言えば、特定の画像の特定の画像特徴を示すように学習されるベクトルであり、いずれかの画像の特徴マップ230内のいずれかのピクセルベクトルq(次述)に近づくように学習される。
【0059】
学習モデル400においては、このようなプロトタイプベクトルpが複数個(Nc個(たとえば512個))生成される。換言すれば、複数(Nc個)のプロトタイプベクトルpk(k=1,...,Nc)が生成される。
【0060】
一方、特徴マップ230内の各ピクセルベクトルq(qwh)は、特徴マップ230内の各ピクセルの各平面位置(w,h)における複数のチャンネルCHに亘る画像特徴を表現するベクトルである。
図3においては、特徴マップ230内の或る位置(w,h)におけるピクセルベクトルq(詳細には、当該ピクセルベクトルqに対応する奥行き方向に伸びる柱状空間)にハッチングが付されて示されている。当該各ピクセルベクトルqの次元数(奥行き方向の次元数)は、特徴マップ230のチャンネル数(CH1)と同じである。特徴マップ230内の各ピクセルベクトルqは、当該特徴マップ230の元の画像内の特定領域の特定の画像特徴を示している。換言すれば、各ピクセルベクトルqは、特定画像内の部分領域の特徴を示すベクトル(部分領域の画像特徴表現ベクトル)である。
【0061】
類似度マップ生成層330は、このような各ピクセルベクトルqwhと一のプロトタイプベクトルpkとの類似度Sim(qwh,pk)を平面位置ごとに示す平面類似度マップ260(平面マップ(2Dマップ))を生成する。第kプロトタイプベクトルpkに対応する平面類似度マップ260は、第k平面類似度マップとも称される。さらに、類似度マップ生成層330は、平面類似度マップ260を複数のプロトタイプPTk(複数のプロトタイプベクトルpk)に関して構成した類似度マップ(3Dマップ)270を生成する。ここで、類似度Sim (q,pk)は、プロトタイプベクトルpkと特徴マップ230内の複数のピクセルベクトルq(詳細には、qwh)のそれぞれとの類似度を計算する関数である。当該関数は、たとえばコサイン類似度である。ただし、これに限定されず、類似度Simを算出する関数として、その他の関数(各種の距離関数等)が用いられてもよい。
【0062】
図3に示されるように、或るプロトタイプベクトル(第kプロトタイプベクトルpk)と各ピクセルベクトル240(qwh)との類似度が、1枚の平面類似度マップ260(平面マップ(2Dマップ))内の各位置(w,h)に配置される。そして、このような平面類似度マップ260が複数(Nc個)のプロトタイプベクトルpk(k=1,...,Nc)についてそれぞれ生成されることによって、類似度マップ270(3Dマップ)が生成される。換言すれば、類似度マップ270は、複数枚の平面マップ260が奥行き方向に積層された3Dマップである。なお、類似度マップ270は、(特徴マップ230とは異なるマップであるものの、)一種の(広義の)「特徴マップ」であるとも表現される。
【0063】
<統合類似度ベクトル生成層370>
統合類似度ベクトル生成層370は、類似度マップ270に基づき統合類似度ベクトル280を生成する処理層である。
【0064】
統合類似度ベクトル280は、Nc次元のベクトルである。統合類似度ベクトル280は統合類似度ベクトルsとも表記される。統合類似度ベクトルsの第k成分Skは、第kプロトタイプベクトルに対応する平面類似度マップ260に対してGMP処理を施すことによって算出される。すなわち、第k成分Skは、第kプロトタイプベクトルに対応する平面類似度マップ260内の複数の値のうちの最大値である。この統合類似度ベクトル280の第k成分Skは、特徴マップ230(詳細には、特徴マップ230内の或るピクセルベクトルq)と第kプロトタイプベクトルとの類似度を表しており、式(1)で表現される。より詳細には、第k成分Skは、第kプロトタイプベクトルpkと特徴マップ230内の任意のピクセルベクトルqとの類似度のうちの最大値である。
【0065】
【0066】
なお、グローバルマックスプーリング(GMP:Global Max Pooling)処理は、最大プーリング(Max Pooling)処理の一種である。
【0067】
マックス(最大)プーリング(Max Pooling)処理は、カーネル(フィルタ)サイズに対応する複数の画素のうち最大の値(最大画素値)を特徴値(出力値)として抽出する処理である。最大プーリング処理では、一般的にはチャンネルサイズよりも小さなフィルタサイズ(たとえば、2×2サイズ)に対応する複数の画素(たとえば、4つの画素)のうちの最大値が抽出されることが多い。
【0068】
グローバルマックスプーリング(GMP)処理は、「チャンネル全体」(ここでは1枚の平面類似度マップ260の全体)を対象とする最大プーリング処理である。GMP処理(全体最大プーリング処理)は、チャンネルサイズ(1枚の平面類似度マップ260のサイズ)と同じフィルタサイズ(たとえば、W1×H1=14×14)に対応する複数の画素(チャンネル内の全ての画素)(たとえば、196個の画素)のうちの最大値を抽出する最大プーリング処理である。
【0069】
このGMP処理(グローバルマックスプーリング処理)を複数の平面類似度マップ260のそれぞれに対して施すことによって、処理対象の特徴マップ(ここでは類似度マップ270)のチャンネル毎(プロトタイプ毎)の最大画素値が(チャンネル毎に)抽出される。Nc個(たとえば512個)のチャンネル(プロトタイプ)を有する類似度マップ270に対してGMP処理が施されると、チャンネル毎(プロトタイプ毎)の最大値がNc個(たとえば512個の最大値)出力される。換言すれば、統合類似度ベクトル280は、Nc次元(たとえば512次元)を有するベクトルとして生成される。この統合類似度ベクトル280は、入力画像と各プロトタイプとの類似度Skを(複数のプロトタイプPTについて統合)集約したベクトルである。統合類似度ベクトル280は、入力画像と各プロトタイプとの類似性(換言すれば、画像の特徴)を示すベクトルであり、一種の「特徴(量)ベクトル」であるとも表現される。
【0070】
このようにして、特徴マップ230内の各ピクセルの各平面位置における複数のチャンネルに亘る画像特徴を表現するベクトルである各ピクセルベクトルと一のプロトタイプベクトルとの類似性に基づき、統合類似度ベクトル280が生成される。統合類似度ベクトル280は、入力画像210と各プロトタイプとの類似度を複数のプロトタイプについて示すベクトルである。
【0071】
なお、或る入力画像210の統合類似度ベクトル280の各成分Skは、当該入力画像210の画像内最類似ピクセルベクトルq(qnkとも表記する)と当該第kプロトタイプベクトルpkとの類似度(ないし距離)を表す指標値である、とも表現される(
図25も参照)。画像内最類似ピクセルベクトルqnkは、入力画像210の入力に対してCNN220(特徴抽出層320)から出力される特徴マップ230内の複数のピクセルベクトルqのうち、第kプロトタイプベクトルpkに最も類似するピクセルベクトルqである。各成分Skは、「第kプロトタイプベクトルpkで表現される画像特徴が入力画像210に存在する度合い(程度)」を示している。換言すれば、類似度Skは、入力画像におけるプロトタイプPTk(のコンセプト)の存在度である、とも表現される。また、このような統合類似度ベクトル280は、類似度マップ270の生成を伴わずに、複数のプロトタイプベクトルpと特徴マップ230内の各ピクセルベクトルqとに基づいて直接的に生成されてもよい。
【0072】
<出力層380>
出力層380は、統合類似度ベクトル280をそのまま出力する処理層である。換言すれば、入力画像210に対する学習モデル400による写像(統合類似度ベクトル280)が出力層380から出力される。
【0073】
<1-4.学習モデル400の学習処理>
ステップS11(
図5)において、学習モデル400の学習処理(機械学習処理)が実行される。当該学習処理(学習モデル400の学習段階の処理)は、学習用の複数の画像に基づき実行される。
【0074】
まず、画像処理装置30は、撮影装置20等から取得した複数の撮影画像のそれぞれに対してサイズ調整処理(リサイズ処理)等を施して学習用の複数の画像を生成し、当該複数の画像を学習モデル400に対する入力画像群として準備する。なお、学習用の複数の画像のそれぞれに対してその所属クラス(たとえば、「鳥の種類」)が予めラベル(正解データ)として付されている(ラベル付けされている)ものとする。たとえば、複数の画像の被写体が複数の種類の鳥を含む場合、各画像の被写体である鳥の種類(「ペリカン」、「ミドリカケス(Green Jay)」等)が当該各画像のクラスとして予め付与されているものとする。このように予めラベル付けされた複数の画像(データ)が教師データ(正解ラベル付き教師データ)として用いられる。
【0075】
この実施形態では、画像処理装置30は、機械学習処理として、基本的にはメトリックラーニング(距離学習とも称される)を実行する。より詳細には、ディープニューラルネットワーク(特に畳み込みニューラルネットワーク(Convolutional Neural Network))を用いたディープメトリックラーニング(Deep Metric Learning)が利用される。当該メトリックラーニングでは、入力画像の入力に対して特徴空間(特徴量空間)における特徴ベクトルを出力する学習モデル400が用いられる。このような学習モデル400は、入力画像(入力)から特徴ベクトル(出力)への変換(写像)を示すモデルである、とも表現される。
【0076】
学習用の複数の画像(入力画像群)が順次に学習モデル400に入力され、学習モデル400からの複数の出力、すなわち特徴空間における複数の特徴ベクトル(特徴ベクトル群)が順次に出力される。理想的には、特徴空間において、同一クラス(たとえば、同一の種類の鳥)を被写体とする複数の入力画像に対応する複数の特徴ベクトルは互いに近い位置に配置され、異なるクラス(異なる種類の鳥)に関する複数の入力画像に対応する複数の特徴ベクトルは互いに遠い位置に配置される。ただし、学習前の学習モデル400からの出力に基づく特徴ベクトル群の分布(
図7参照)は、このような理想的な分布状態(
図8参照)からずれている。なお、
図7および
図8では、右端の特徴空間を示す矩形内に配置された各点状図形(小さな四角形あるいは小さな丸印等)が、当該特徴空間内に配置された各特徴ベクトルを表している。同じクラスの特徴ベクトル同士(同じクラスに属する複数の画像に対応する複数の特徴ベクトル)は、同じ図形(白丸図形同士等)で示されている。逆に、互いに異なるクラスの特徴ベクトル同士(互いに異なるクラスに属する複数の画像に対応する複数の特徴ベクトル)は、互いに異なる図形(互いに異なるハッチングが付された図形同士等)で示されている。
【0077】
つぎに、メトリックラーニングにおいて、トリプレットロス(Triplet Loss)などの評価関数を最適化(最小化)するように、学習モデル400が学習される。これによって、入力空間での入力画像の類似度が特徴空間での距離(特徴ベクトル間の距離)に対応するように、学習モデル400(写像関係)が学習される。換言すれば、特徴空間における特徴ベクトルの分布位置が学習の進行に応じて徐々に変更される。非常に良好な機械学習が実行されれば、特徴空間における特徴ベクトルの分布は、上述の理想的な分布状態(
図8参照)に徐々に近づいていく。
【0078】
図6は、本実施形態における学習処理の概要を示す概念図である。
図6に示されるように、この実施形態では、2種類のメトリックラーニング(距離学習)が実行される(
図6の上段参照)。1つは、統合類似度ベクトル280を特徴ベクトルとして扱うメトリックラーニングである。他の1つは、サブ特徴ベクトル290を特徴ベクトルとして扱うメトリックラーニングである。この実施形態では、統合類似度ベクトル280に関するメトリックラーニングが主たるメトリックラーニングとして実行され、サブ特徴ベクトル290に関するメトリックラーニングは従たる(補助的な)メトリックラーニングとして実行される。また、この実施形態では、各プロトタイプベクトルpk(250)を特定画像の特定部分領域の画像特徴(いずれかのピクセルベクトルq(240))に近づけるような学習処理もが実行される(
図6の下段参照)。
【0079】
さて、
図6のような学習処理を実現するにあたって、本実施形態では、3種類の評価項(評価関数)Ltask,Lclst,Laux(後述)を有する(全体の)評価関数(損失関数)Lを最適化(最小化)するように、学習モデル400が機械学習される。評価関数Lは、たとえば次式(2)のように、3種類の評価項Ltask,Lclst,Lauxの線形和(一次結合)で表現される。なお、値λc,λaは、評価項間のバランスをとるためのハイパーパラメータである。
【0080】
【0081】
以下、各評価項Ltask,Lclst,Lauxについて順次に説明する。
【0082】
<評価項Ltask>
評価項Ltaskは、複数の画像に対応する複数の統合類似度ベクトル280に基づく距離学習(メトリックラーニング)のための評価項である。評価項Ltaskは、たとえば、次の式(3)で表現される。なお、右下に「+」を有する括弧で表現される記号は、当該括弧内の値vとゼロとのうちの大きな方の値を出力することを意味する。すなわち、当該記号は、max(v,0)を表す。
【0083】
【0084】
ここで、距離dapは、或る画像(アンカー(anchor)画像)に対応する特徴ベクトル(ここでは統合類似度ベクトル280)と、同じクラスに属する別画像(ポジティブ(positive)画像)に対応する特徴ベクトル(統合類似度ベクトル280)との間の距離である。一方、距離danは、当該或る画像(アンカー画像)に対応する特徴ベクトル(統合類似度ベクトル280)と、異なるクラスに属する画像(ネガティブ(negative)画像)に対応する特徴ベクトル(ここでは統合類似度ベクトル280)との間の距離である。アンカー画像とポジティブ画像との組合せはポジティブペアとも称され、アンカー画像とネガティブ画像との組合せはネガティブペアとも称される。距離dapは、ポジティブペアの統合類似度ベクトル280同士の距離であり、距離danは、ネガティブペアの統合類似度ベクトル280同士の距離である。
【0085】
式(3)は、注目要素(アンカー)と同分類要素(ポジティブ)との距離dapを一定程度以下に小さくし且つ注目要素と異分類要素(ネガティブ)との距離danを一定程度以上に大きくするための評価関数を示している。なお、値mは、マージンを示すハイパーパラメータである。ネガティブペアの特徴ベクトル同士の距離を値(β+m)以上に引き離すとともにポジティブペアの特徴ベクトル同士の距離を値(β-m)以内に近づけることが意図されている。値βは、クラスごと(アンカーごと)の学習パラメータであり、特徴空間内での位置の調整度合いをクラス間(アンカー間)で調整する調整パラメータである。
【0086】
式(3)においては、中括弧内の値を学習用の複数の画像について加算した総和Σを当該複数の画像の総数N(アンカー数)で除することによって平均化した値がLtaskとして算出される。
【0087】
このような評価関数Ltaskを最小化するように学習処理が進められることによって、統合類似度ベクトル280に基づく距離学習が実現される。具体的には、特徴空間において、同一クラス(たとえば、同一の種類の鳥)を被写体とする複数の入力画像に対応する複数の統合類似度ベクトル280は互いに近い位置に配置される。一方、異なるクラス(異なる種類の鳥)に関する複数の入力画像に対応する複数の統合類似度ベクトル280は互いに遠い位置に配置される。
【0088】
<評価項Laux>
評価項Lauxは、複数の画像に対応する複数のサブ特徴ベクトル290に基づく距離学習のための評価項である。
【0089】
評価項Lauxは、たとえば、次の式(4)で表現される。式(4)は、上述のようにサブ特徴ベクトル290に関するメトリックラーニングを実現する評価関数(評価項)である。
【0090】
【0091】
式(4)における各値は、式(3)にて対応する各値と同趣旨の値である。ただし、統合類似度ベクトル280に関する距離に代えてサブ特徴ベクトル290に関する距離が考慮される点で相違する。
【0092】
ここで、距離d’apは、或る画像(アンカー(anchor)画像)に関するポジティブペアの特徴ベクトル(ここではサブ特徴ベクトル290)同士の距離である。一方、距離d’anは、当該或る画像(アンカー画像)に関するネガティブペアの特徴ベクトル(ここではサブ特徴ベクトル290)同士の距離である。また、値m’は、マージンを示すハイパーパラメータである。同じクラスの特徴ベクトル同士の距離を値(β’-m’)以内に近づけ且つ異なるクラスの特徴ベクトル同士の距離を値(β’+m’)以上に離すことが意図されている。値β’は、クラス毎(アンカー毎)の学習パラメータであり、特徴空間内での位置の調整度合いをクラス間(アンカー間)で調整する調整パラメータである。
【0093】
この評価項Lauxは、補助的に用いられる評価項である。なお、この実施形態では評価項Lauxを考慮しているが、必ずしも考慮されなくてもよい(評価項Lauxは無くてもよい)。ただし、評価項Lauxをも考慮することによれば、CNN(特徴抽出層320)をより適切に構築することが可能であり、ひいては推論精度を向上することが可能である。
【0094】
なお、サブ特徴ベクトル290に関するメトリックラーニングを実現する評価関数(評価項)は、式(4)の評価関数に限定されず、その他の評価関数(たとえば、各種のトリプレットロス(ネガティブペアの距離をポジティブペアの距離よりも大きくするような損失関数等))であってもよい。統合類似度ベクトル280に関するメトリックラーニングを実現する評価関数(式(3))についても同様である。
【0095】
<評価項Lclstおよび学習処理>
評価項Lclstは、各プロトタイプベクトルpをいずれかの画像の部分領域の画像特徴(いずれかのピクセルベクトルq)に近づけるための評価項である。より詳細には、評価項Lclstは、各画像iの所属プロトタイプPTkのプロトタイプベクトルpkを当該各画像iに対応する特徴マップ230内のいずれかのピクセルベクトルqに対して近づけるための評価項である(
図6下段参照)。後述するように、各画像iにおける各所属プロトタイプPTkの分配プロトタイプ所属度Bi(k)に応じて、各プロトタイプベクトルpkが、各画像iに対応する特徴マップ230内のいずれかのピクセルベクトルqに対して近づけられる。それ故、各プロトタイプベクトルpkは、互いに異なる画像に存在する2以上のピクセルベクトルqに近づけられることもある。
【0096】
本実施形態の学習処理においては、基本的には統合類似度ベクトル280に関する距離学習(メトリックラーニング)が実行される。具体的には、評価項Ltaskを考慮することによって、特徴空間における統合類似度ベクトル280の分布が理想的な分布状態に近づくように、学習モデル400が学習される。
【0097】
本実施形態の学習処理においては、さらに、評価項Lclstを考慮することによって、各プロトタイプベクトルpkをいずれかの画像のいずれかの部分領域の画像特徴(いずれかのピクセルベクトルq)に近づけるようにも学習モデル400が学習される。
【0098】
以下、このような学習処理(評価項Lclstに基づく学習処理)について主に説明する。
【0099】
図9および
図10は、本実施形態の学習処理(ステップS11(
図5))の詳細を示すフローチャートである。
図9のフローチャートにおいては、評価項Lclstに関連する学習処理が主に示されており、他の評価項Ltask,Lauxに関連する学習処理は簡略化して示されている。また、
図11は、
図9の一部(ステップS21)の処理を詳細に示すフローチャートである。さらに、
図12は、評価項Lclstに関連する学習処理を概念的に示す図である。
【0100】
評価項Lclstに関連する学習処理は、
図9および
図12に示されるように、3つ(あるいは4つ)の処理(ステップS41,S42,(S43,S44))に大別される。
【0101】
ステップS41において、コントローラ31は、学習用の複数の画像にラベル付けされた複数のクラスのそれぞれについて、各クラスの所属プロトタイプPT(PTk)と当該所属プロトタイプPT(PTk)の当該各クラスへの所属度Bkを求める。具体的には、一のクラス(着目クラス)に所属するプロトタイプである所属プロトタイプPTkと、当該所属プロトタイプPTkの当該一のクラスへの所属度合いを示すプロトタイプ所属度Bkとが、複数のクラス(着目クラス)のそれぞれについて求められる。プロトタイプ所属度Bkは、一のクラスの画像特徴を各プロトタイプPTkが表現する度合い(程度)である、とも表現される。ステップS41は、ステップS21,S22(
図9)を含む。
【0102】
ステップS42において、コントローラ31は、画像ごとのプロトタイプ所属度である分配プロトタイプ所属度Bikを求める。分配プロトタイプ所属度Bikは、各クラスにおける所属プロトタイプPTkのプロトタイプ所属度Bkを同一クラス(たとえば、同一種類の鳥)内の2以上の画像のそれぞれに対して所定の基準に基づき分配した所属度である。なお、分配プロトタイプ所属度Bikを分配プロトタイプ所属度Tikとも表記する。また、分配プロトタイプ所属度Bik(Tik)は、画像別プロトタイプ所属度とも称される。ステップS42は、ステップS23を含む。
【0103】
ステップS43,S44において、コントローラ31は、各プロトタイプベクトルpが各画像の分配プロトタイプ所属度Bikに応じて、当該各画像に対応する特徴マップ内のいずれかのピクセルベクトルに対して近づくように、学習処理を実行する。換言すれば、各プロトタイプベクトルpを各画像の特徴マップ230内の複数のピクセルベクトルqのうち最も近いピクセルベクトルqに対してさらに近づけるように学習処理が実行される。
【0104】
コントローラ31は、複数の画像に対応する複数の統合類似度ベクトル280に基づく学習処理(メトリックラーニング等)を実行する際に、ステップS43,S44の学習処理を併せて実行する。換言すれば、統合類似度ベクトル280にも基づく学習処理(距離学習を含む)が実行される際に、各プロトタイプベクトルpが各画像に対応する特徴マップ内のいずれかのピクセルベクトルに対して近づくようにも、学習モデル400が機械学習される。この機械学習によって、学習モデル400内の各パラメータ(プロトタイプベクトルpおよび畳み込みニューラルネットワーク220等に関する各パラメータ)が学習される。このステップS43,S44は、ステップS24,S25,S26を含む。
【0105】
詳細には、ステップS43にて、評価関数L(評価項Ltask,Lclst等を含む)が求められる(ステップS24,S25)とともに、ステップS44にて、評価関数Lに基づく学習処理(ステップS26)が実行される。
【0106】
以下、ステップS41から順に詳細に説明する。まず、ステップS41のうちステップS21(
図11も参照)の処理が実行される。ステップS21においては、各クラスに所属する所属プロトタイプPTkとその所属度Bkが、複数のクラスのそれぞれについて(暫定的に)求められる。
【0107】
具体的には、ステップS211~S215(
図11)において、コントローラ31は、一のクラス(着目クラス)の所属プロトタイプを選出するプロトタイプ選出処理を実行する。
図13は、プロトタイプ選出処理を示す概念図である。
図13をも参照しつつ、当該プロトタイプ選出処理について説明する。
【0108】
当該プロトタイプ選出処理においては、まず、学習用の複数の画像のうち一のクラス(着目クラス)に属する所定画像IMGiと当該一のクラス以外のクラス(ネガティブクラス)に属する複数の比較対象画像IMGjのそれぞれとの比較が行われる。そして、その比較結果に基づき、当該一のクラスの所属プロトタイプ(且つ所定画像に基づく所属プロトタイプPT)が選出される(ステップS211~S213)。
【0109】
図13では、学習用の複数の画像のうち一のクラス(着目クラス)に属する所定画像(着目画像)として左側の第i画像IMGiに着目している。また、当該所定画像の比較対象として、当該一のクラス以外のクラス(ネガティブクラス)に属する複数の比較対象画像IMGj(
図13の右側参照)が存在する。たとえば、或るクラス(たとえば、種類「ミドリカケス」の鳥)内の一枚のサンプル(所定画像)が第i画像IMGi(着目画像)である。また、学習単位のミニバッチ内のサンプル(学習用画像)の個数が100個であり、1クラスあたり5個のサンプルが20クラスについて準備される場合において、当該或るクラス以外のクラス(ネガティブクラス)に属するサンプル数は、95個である。この場合、1枚の第i画像IMGi(
図13左列の着目画像)とネガティブクラスの95枚の画像IMGj(
図13右列参照)のそれぞれとが比較される。
【0110】
詳細には、コントローラ31は、まず複数の比較対象画像のうちの一の比較対象画像(たとえば
図13の右列最上段の画像)について、単位選出処理(ステップS211,S212(
図11))を実行する。
【0111】
ステップS211においては、差分ベクトルΔs(=si-sj)が求められる。ベクトルsiは、着目画像(第i画像)IMGiを学習モデル400に入力して得られる統合類似度ベクトルsi(280)である。また、ベクトルsjは、複数の比較対象画像IMGjのうちの一の比較対象画像(第j画像)IMGjを学習モデル400に入力して得られる統合類似度ベクトルsj(280)である。差分ベクトルΔsは、ベクトルsiからベクトルsjを差し引いたベクトルである。
【0112】
次に、ステップS212において、当該差分ベクトルΔsにおける複数(Nc個)の成分ΔSkのうち最も大きな成分(最大の正の成分)に対応するプロトタイプが、所定画像のクラス(着目クラス)に所属する所属プロトタイプとして選出される。たとえば、
図13の左下の差分ベクトルΔsにおいては、その複数の成分ΔSkのうちの最大成分ΔS1に対応するプロトタイプPT1が、当該所属プロトタイプPTとして選出されている。
【0113】
統合類似度ベクトルsiにおいては、着目クラスの着目画像(第i画像)IMGiの特徴を表すプロトタイプPTに対応する成分の値が、他の成分の値よりも大きな値として出現する。一方、統合類似度ベクトルsjにおいては、着目クラス以外のクラス(ネガティブクラス)の比較対象画像(第j画像)IMGjの特徴を表すプロトタイプPTの対応成分の値が他の成分の値よりも大きな値として出現する。それ故、着目クラスの特徴を顕著に表すプロトタイプPTは、着目画像IMGiに関して大きな成分として出現し、比較対象IMGjに関しては逆にあまり出現しない(小さな成分として出現する)プロトタイプPTである。したがって、差分ベクトルΔsの複数の成分ΔSkのうち比較的大きな値(たとえば最も大きな値)を有する成分、に対応するプロトタイプPTが、着目クラスの特徴を顕著に表すプロトタイプPTである。ステップS212では、このような特性を考慮し、差分ベクトルΔsの複数の成分ΔSkのうちの最大成分に対応するプロトタイプPTが、着目クラスの所属プロトタイプPTとして選出される。
【0114】
このように、単位選出処理(S211,S212)は、一のクラスに属する所属プロトタイプを、当該一のクラス内の一の画像(着目画像)と一の比較対象画像(他クラス画像)との比較処理に基づいて選出する処理(着目画像単位で選出する処理)である。
【0115】
このような単位選出処理が、複数の比較対象画像(たとえば95個)のうちの残り(たとえば94個)の比較対象画像についても実行される(S213)。すなわち、当該一の比較対象画像を別の比較対象画像に変更しつつ当該単位選出処理が複数の比較対象画像について実行される。なお、
図13の下側中央付近の2つ目の差分ベクトルΔsにおいては、複数の成分ΔSkのうちの最大成分ΔS3に対応するプロトタイプPT3が、当該所属プロトタイプPTとして選出されている。残り(93個(=95-2))の差分ベクトルΔsに関しても、その最大成分に対応するプロトタイプPTが、所属プロトタイプPTとして選出される。
【0116】
図13の最下段においては、複数(たとえば95回)の単位選出処理によって選出されたプロトタイプPTが列挙されている。たとえば、当該複数の単位選出処理によって、所定画像(第1画像IMG1)に基づく所属プロトタイプPT(着目クラスの所属プロトタイプPT)としてプロトタイプPT1,PT3,PT4が選出される。また、プロトタイプPT1,PT3,PT4の選出数(選出回数)は、それぞれ、「40個」、「30個」、「25個」である(
図13の最下段および
図14の上段左側を参照)。なお、
図13の最下段等におけるプロトタイプPT(の画像化表現(鳥の青色頭部、青色尾部等))は、学習完了後の理想的な状態(特定サンプル画像の特定部分領域に対応する画像特徴)で示されている。各プロトタイプPTの内容は、学習中において徐々に変化していく。
【0117】
このように、一のクラスに属する所定画像と他クラスの複数の比較対象画像との比較処理によって、当該一のクラスに属する所定画像に基づき、当該一のクラスに所属する少なくとも1つの所属プロトタイプPT(所定画像に基づく所属プロトタイプPT)が選出される。また、所属プロトタイプごとの選出数をカウントする選出数算出処理も実行される。
【0118】
次に、ステップS214において、コントローラ31は、着目クラス内の別の基準画像についても、各基準画像を着目画像としてステップS211~S213の処理を実行する。具体的には、コントローラ31は、一のクラス(着目クラス)に属する、所定画像以外の(N-1)個の画像(たとえば4個の画像)のそれぞれについても、複数の比較対象画像(たとえば95個の画像)のそれぞれとの比較に基づくプロトタイプ選出処理等を実行する。
【0119】
たとえば、着目クラスの第2画像(新たな着目画像)に関する単位選出処理が95枚のネガティブ画像に対して繰り返し行われることによって、第2画像に基づく所属プロトタイプPTとしてプロトタイプPT1,PT2,PT4が選出される。また、各プロトタイプPT1,PT2,PT4の選出数(選出回数)は、それぞれ、「30個」、「30個」、「35個」である(
図14の上段右側参照)。
【0120】
同様に、或るクラスの第3画像に関する単位選出処理を95枚のネガティブ画像に対して繰り返し行うことによって、たとえば、第3画像に基づく所属プロトタイプPTとしてプロトタイプPT1,PT2,PT3,PT4が選出され、各プロトタイプPT1,PT2,PT3,PT4の選出数(選出回数)は、それぞれ、「35個」、「30個」、「25個」、「5個」である。
【0121】
次に、ステップS215において、コントローラ31は、着目クラスに属するN個(ここでは5枚)の画像についての所属プロトタイプPTの選出数を集計する。具体的には、コントローラ31は、プロトタイプ選出処理で選出された所属プロトタイプごとの選出数の合計値を当該着目クラスに属する画像の個数N(ここでは5枚)で除した平均値を当該着目クラスにおける各所属プロトタイプPTの選出数として決定する。
【0122】
たとえば、一のクラスの基準画像5枚について、一のクラスの所属プロトタイプPT1の選出数が、それぞれ「40」、「30」、「35」、「30」、「40」である場合を想定する。この場合、これらの5つの値の合計「175」を基準画像の枚数「5」で除した平均値「35」が当該一のクラスにおける各所属プロトタイプPT1の選出数(平均選出数)として決定される(
図14下段のPT1参照)。
【0123】
そして、ステップS216において、コントローラ31は、プロトタイプ選出処理における各所属プロトタイプの選出数(選出回数)の多寡に基づき、当該一のクラスに関する各所属プロトタイプPTkのプロトタイプ所属度Bk(Ya)を求める。
【0124】
具体的には、コントローラ31は、一のクラス(着目クラス)における各所属プロトタイプPTの選出数を複数の比較対象画像の個数(たとえば95個)で除した値を、当該一のクラス(Yc)における各所属プロトタイプのプロトタイプ所属度Bk
(Yc)として(暫定的に)算出する。たとえば、当該一のクラス(着目クラス)CS1における各所属プロトタイプPT1,PT2,PT3,PT4の選出数(平均選出数)がそれぞれ「35個」、「15個」、「15個」、「30個」である場合を想定する(
図14下段)。この場合、クラスCS1における各所属プロトタイプPT1,PT2,PT3,PT4の所属度B1,B2,B3,B4は、「35/95」、「15/95」、「15/95」、「30/95」として算出される。
【0125】
このようにして、一のクラスに所属する所属プロトタイプPTkと、当該所属プロトタイプPTkの当該一のクラスへの所属度合いを示すプロトタイプ所属度Bkとが、(暫定的に)算出される。
【0126】
また、ステップS217においては、着目クラスを別のクラスに変更しつつステップS211~S216の処理が繰り返し実行される。換言すれば、コントローラ31は、上記一のクラスとは別のクラスに所属する所属プロトタイプを選出するプロトタイプ選出処理をも実行する。これによって、コントローラ31は、複数のクラスのそれぞれに所属する所属プロトタイプと当該所属プロトタイプの所属度とを決定する。
【0127】
たとえば、別のクラスCS2の所属プロトタイプPTとしてプロトタイプPT4,PT5が決定され、当該所属プロトタイプPT4,PT5の所属度B4,B5が「30/95」、「65/95」して算出される(
図16の上段右側参照)。他のクラスCS3等についても、それぞれ、その所属プロトタイプPTとその所属度とが算出される。
【0128】
次に、ステップS41のステップS22(
図9)について説明する。
【0129】
ここにおいて、上述のステップS21で求められた各クラスの所属プロトタイプPTの中には、複数のクラス(Y1,Y2,...)に跨がって選出されている所属プロトタイプPTが存在し得る。換言すれば、複数のプロトタイプPTのうち特定のプロトタイプPTが、所属プロトタイプPTとして偏って選出されている。
【0130】
たとえば、プロトタイプPT4が、クラスCS1~CS10の10個のクラスに関する所属プロトタイプPTとして選出されていることがある(
図16上段参照)。このようなプロトタイプPT(PT4)は、背景画像特徴のように、多数の画像に共通の特徴である可能性がある。換言すれば、当該プロトタイプPT4等は、特定クラスの画像特徴を必ずしも顕著には表していない。
【0131】
そこで、この実施形態では、このようなプロトタイプPTの影響を抑制するため、コントローラ31は、複数のクラスに亘って所属プロトタイプベクトルとして選出されたプロトタイプPTの所属度を抑制する(ステップS22)。換言すれば、所属プロトタイプPTとして特定のプロトタイプPTが偏って選出されている場合、プロトタイプPTの偏りを抑制する処理(De-Bias処理(デバイアス処理))が実行される(
図15参照)。具体的には、一のプロトタイプPTkが2以上のクラスに所属する場合、コントローラ31は、当該2以上のクラスのそれぞれ(各クラスYc)における当該一のプロトタイプの所属度(プロトタイプ所属度Bk
(Yc))を低減する(正規化する)。たとえば、複数のクラスに所属する所属プロトタイプPTの所属度を、単一のクラスにのみ所属する所属プロトタイプPTの所属度よりも小さな値に変更する。
【0132】
具体的には、式(5)等に従って、各クラスYcにおける各所属プロトタイプPTkのプロトタイプ所属度Bk(Yc)が修正される。
【0133】
【0134】
式(5)は、その左辺の値(新たな所属度Bk(Yc))をその右辺の値で置き換えることを意味する。式(5)の右辺の分数の値は、分子(或るクラスYcにおける各所属プロトタイプPTkの元の所属度Bk(Yc))を分母で除した値である。分母は、各所属プロトタイプPTkの元の所属度Bk(Yc)を全てのクラスに亘って合計した値(合計値)と所定値εとのうち大きい方の値である。
【0135】
たとえば、
図16に示されるように、プロトタイプPT4が多数(たとえば10個)のクラスに亘って所属プロトタイプPTとして選出されており、当該10のクラスに亘る上記合計値(その所属度B4の合計値)が「300/95」であると仮定する。この場合において、所定値ε=1とするときには、式(5)によって、或るクラスCS1における所属プロトタイプPT4の修正前の所属度B4「30/95」は、「1/10」(=(30/95)/300/95)へと低減(正規化)される。他のクラスCS2等においても同様に、各クラスにおける所属プロトタイプPT4の所属度B4は、同様に当該各クラスにおける修正前の所属度を、上記合計値と所定値εとのうち大きい方の値(たとえば「1」)で除することによって算出される。なお、修正前の所属度が「1」で除される場合には、修正後の所属度は修正前の所属度と同じ値である。
【0136】
その後、各クラス内において、(互いに異なる種類の)複数の所属プロトタイプPTの所属度Bkの和が「1」になるように調整される。たとえば、
図16の中段に示されるように、クラスCS1における調整前(且つ上記偏り修正後)の各所属プロトタイプPT1,PT2,PT3,PT4の所属度B1,B2,B3,B4がそれぞれ「35/95」、「15/95」、「15/95」、「1/10」である場合を想定する。この場合、所属度B1,B2,B3,B4は、それぞれ「70/149」、「30/149」、「30/149」、「19/149」へと修正される(
図16の下段参照)。他のクラス(CS2等)においても、その所属プロトタイプPTの所属度の和が「1」になるように調整される。
【0137】
このように、ステップS22においては、プロトタイプ所属度をクラス間で調整する処理が主に行われる。ステップS22においては、複数のクラスに共通に所属するプロトタイプPTの所属度が、単一のクラスにのみ所属するプロトタイプPTの所属度よりも低減される。
【0138】
なお、ここでは、ε=1の場合を主に例示しているが、これに限定されず、値εは1よりも小さな値(たとえば0.1等)であってもよい。その場合、たとえば、単一のクラス(あるいは少数のクラス)に所属するプロトタイプPTの所属度が一旦「1」(あるいは「1/2」等)に変更され、複数のクラスに跨がって所属するプロトタイプPTの所属度が比較的小さな値に変更される。その後、同一クラス内の所属プロトタイプPTの所属度の合計値が「1」になるように正規化される。
【0139】
この場合、各Bkは、たとえば、
図17のように変更される。
【0140】
【0141】
図17の中段では、所属プロトタイプPT4の修正前の所属度B4「30/95」は、同様に、「1/10」(=(30/95)/300/95)へと低減(正規化)される。一方、式(5)の値εが小さな値であることに起因して、所属プロトタイプPT1の所属度B1が「1」(=(35/95)/(35/95))に変更される。他の所属プロトタイプPT2,PT3の所属度B2,B3も「1」に修正される。このような修正によれば、単一のクラスに所属するプロトタイプPT1,PT2,PT3の所属度(「1」)は、2以上のクラスに所属するプロトタイプPT4の所属度よりも(相対的に)大きな値へと(より確実に)変更される。また、その後、各クラス内において、(互いに異なる種類の)複数の所属プロトタイプPTの所属度Bkの和が「1」になるように調整される。たとえば、
図17の最下段に示されるように、クラスCS1では、所属度B1,B2,B3は、いずれも「10/31」に変更され、所属度B4は、「1/31」に変更される。
【0142】
ステップS22においては、以上のような処理が実行される。
【0143】
次のステップS42(ステップS23)(
図9)では、コントローラ31は、画像ごとのプロトタイプ所属度である分配プロトタイプ所属度Bik(Tik)を求める(
図18および
図19参照)。上述のように、分配プロトタイプ所属度Bikは、各クラスにおける所属プロトタイプPTkのプロトタイプ所属度Bkを同一クラス(たとえば、同一種類の鳥)内の2以上の画像のそれぞれに対して所定の基準に基づき分配した所属度である。
【0144】
具体的には、コントローラ31は、一のクラスに所属する一の所属プロトタイプのプロトタイプ所属度Bkを当該一のクラスに属するN個の画像に分配して、当該N個の画像(IMGi)のそれぞれに対する分配プロトタイプ所属度Bik(Tik)を決定する。この際、所属プロトタイプPTのプロトタイプベクトルpと各画像IMGi内の最類似ピクセルベクトルqとの距離が小さい(類似度が大きい)ほど、当該各画像の分配プロトタイプ所属度Bikが大きくなるように、元のプロトタイプ所属度Bkが各画像IMGiに対して分配される。
【0145】
たとえば、第1の距離D1(次述)が第2の距離D2(次述)よりも大きい場合、コントローラ31は、一の画像(たとえばIMG1)に対する分配プロトタイプ所属度(たとえばT1k)を、他の画像(たとえばIMG2)に対する分配プロトタイプ所属度(たとえばT2k)よりも小さな値として決定する。ここで、第1の距離D1は、N個の画像のうちの「一の画像」(たとえばIMG1)に対応する特徴マップ内の複数のピクセルベクトルqのうち当該一の所属プロトタイプPTkのプロトタイプベクトルpkに最も類似するピクセルベクトル(最類似ピクセルベクトル)と、プロトタイプベクトルpkとの距離(たとえば、C1k)である。また、第2の距離D2は、当該N個の画像のうちの「他の画像」(たとえばIMG2)に対応する特徴マップ内の複数のピクセルベクトルのうち当該一の所属プロトタイプのプロトタイプベクトルpkに最も類似するピクセルベクトルと、プロトタイプベクトルpkとの距離(たとえば、C2k)である。各距離D1,D2は、それぞれの最類似ピクセルベクトルqとプロトタイプベクトルpkとの距離である(後述する式(6)参照)。k=2、且つ、C12>C22、の場合、分配プロトタイプ所属度T12は、分配プロトタイプ所属度T22よりも小さな値に決定される。
【0146】
詳細には、このような分配処理は、離散最適輸送問題として捉えることができる。当該分配処理は、比喩的に表現すれば、総輸送コスト(各配送店と各配送先との間の配送距離と各配送店から各配送先への配送量とに応じた輸送コストの合計値)を最小化するように、複数の配送先での必要量を複数の配送店に割り当てる問題(離散最適輸送問題)である。この実施形態では、各画像iが各配送店と捉えられ、各配送先が各プロトタイプPTkと捉えられ、各配送先での必要量が各プロトタイプPTkの所属度Bkと捉えられればよい。輸送コストに相当する評価値を最小化するように、複数のプロトタイプPTの各所属度Bkが複数の画像に分配される(割り当てられる)。当該評価値は、距離Cik(式(6)参照)と分配プロトタイプ所属度Tikの大きさ(割当量)とに応じた評価値(式(7)参照)である。距離Cikは、各プロトタイプベクトルpkと(各画像iに対応する特徴マップ230内の)最類似ピクセルベクトルqとの間の距離であり、分配プロトタイプ所属度Tikは、プロトタイプPTkごとに各画像iに対して分配された所属度である。このような離散最適輸送問題は、たとえば、Sinkhorn-Knoppアルゴリズムなどの解法によって解くことが可能である。
【0147】
【0148】
式(6)のCikは、第i画像の特徴マップ230内の複数のピクセルベクトルqのそれぞれ(第i画像の第jピクセルベクトルqj(i))と第kプロトタイプベクトルpkとの距離のうちの最小値である。換言すれば、Cikは、第i画像の特徴マップ230内にて第kプロトタイプベクトルpkに最も類似するピクセルベクトルq(最類似ピクセルベクトル)と、当該第kプロトタイプベクトルpkとの距離である。端的に言えば、Cikは、第i画像内のいずれかのピクセルベクトルq(qj(i))とプロトタイプベクトルpkとの最小距離である。なお、式(6)のCikは、式(1)のSkと等価である。
【0149】
【0150】
式(7)は、上記分配処理における評価値を示す式である。Tik(Bik)は、着目クラスにおける第kプロトタイプPTkの所属度Bkのうち、第i画像IMGiに対して分配される(割り当てられる)分配プロトタイプ所属度を表している。式(7)の値は、上記離散最適輸送問題における「総輸送コスト」に相当する。
【0151】
【0152】
式(8)の(上側の式の)右辺は、或るクラスYcに関する分配処理において、T(Tij)を変動させて得られる複数の評価値(式(7)参照)のうち最小化された評価値を表している。
【0153】
式(8)では、Tikに関する2つの条件も併せて示されている。1つの条件は、第i画像に対する第kプロトタイプPTkの分配プロトタイプ所属度Tikを(プロトタイプPTkごとに)クラス内の複数(Ns個)の画像について加算した値が、第kプロトタイプPTkのクラスYcへの所属度Bk(Yc)のNs倍に等しい旨の条件である。他の1つの条件は、第i画像に対する第kプロトタイプPTkの分配プロトタイプ所属度Tikを(画像ごとに)複数のプロトタイプPTkについて加算した値が「1」に等しい旨の条件である。なお、Nsは同一クラス内の画像数(分配画像数)である。
【0154】
すなわち、式(8)の値Lclstは、式(7)の評価値を式(8)における2つの条件に従いつつ最小化(最適化)した値である。ステップS23等では、上記の分配問題(離散最適輸送問題)の解等が用いられる。具体的には、式(8)で示される最適解(近似最適解を含む)、および当該最適解を構成するCik,Tik(分配結果等)が用いられる。
【0155】
【0156】
ここでは、一のクラスにおいて、3つの所属プロトタイプPT1,PT2,PT3が存在し、各プロトタイプPTkの当該クラスに対する各プロトタイプ所属度Bk(B1,B2,B3)は、「5/12」、「3/12」、「4/12」であるものと仮定する。また、距離C12(画像IMG1内のピクセルベクトルqとプロトタイプベクトルp2との最小距離)は非常に大きく、距離C22(画像IMG2内のピクセルベクトルqとプロトタイプベクトルp2との最小距離)は非常に小さい。また、距離C13は非常に小さく、距離C23は非常に大きい。
【0157】
このように距離C12が距離C22よりも大きい場合、コントローラ31は、画像IMG1に対する分配プロトタイプ所属度T12(B12)を、画像IMG2に対する分配プロトタイプ所属度T22(B22)よりも小さな値として決定する。たとえば、分配プロトタイプ所属度T12は「0(ゼロ)」であり、分配プロトタイプ所属度T22は「1/2」である。端的に言えば、同一クラス内の2以上の画像のうちプロトタイプベクトルpkへの類似度が比較的小さな画像に対しては、比較的小さな所属度が分配される。
【0158】
また、距離C13が距離C23よりも小さい場合、コントローラ31は、画像IMG1に対する分配プロトタイプ所属度T13を、画像IMG2に対する分配プロトタイプ所属度T23よりも大きな値として決定する。たとえば、分配プロトタイプ所属度T12は「2/3」であり、分配プロトタイプ所属度T22は「0(ゼロ)」である。端的に言えば、同一クラス内の2以上の画像のうちプロトタイプベクトルpkへの類似度が比較的大きな画像に対しては、比較的大きな所属度が分配される。
【0159】
また、画像IMG1に対する分配プロトタイプ所属度T11、および画像IMG2に対する分配プロトタイプ所属度T21は、距離C11と距離C12との大小関係等にも基づいて決定される。
【0160】
各Tikは、式(8)の2条件を充足するように決定される。その結果、たとえば、分配プロトタイプ所属度T11,T12,T13は、「1/3」、「0(ゼロ)」、「2/3」として決定され、分配プロトタイプ所属度T21,T22,T23は、「1/2」、「1/2」、「0(ゼロ)」として決定される(
図19の左端側参照)。
【0161】
このようにして一のクラスに関する分配処理が行われる。
【0162】
コントローラ31は、このような分配処理を他のクラスにも適用し、同様の分配処理を繰り返すことによって、複数のクラスの評価値(式(8)にて最適化された評価値)をそれぞれ求める。
【0163】
そして、コントローラ31は、複数のクラスについて求めた複数の評価値Lclst(Yc)(最適化後の評価値)をさらに加算することによって、評価関数Lのうちの評価項Lclstを算出する(式(9)参照)(ステップS24)。
【0164】
【0165】
式(9)は、評価関数(評価項)Lclstを示す式である。式(9)の評価項Lclstは、式(8)で規定されるクラス毎の評価項Lclst(Yc)を複数のクラスについて加算した値である。
【0166】
さらに、ステップS25(
図9)において、コントローラ31は、式(9)によって得られる評価項Lclstに加えて他の評価項Ltask,Lauxをも算出し、これらを式(2)に従って加算することによって評価関数Lを算出する。
【0167】
ステップS26においては、コントローラ31は、この評価関数Lを最小化(最適化)するように学習処理(機械学習)を実行する。より詳細には、ステップS21~S25を繰り返し実行することによって、当該学習処理が実行される。
【0168】
この際、特に、コントローラ31は、評価項Lclst(およびLclst(Yc))をも最小化するように学習処理を実行する。すなわち、各プロトタイプベクトルpkが、各画像iの分配プロトタイプ所属度Tik(Bik)に応じて、当該各画像iに対応する特徴マップ内のいずれかのピクセルベクトルqに対して近づくように、学習処理が実行される。換言すれば、各プロトタイプベクトルpkを各画像の特徴マップ230内の複数のピクセルベクトルqのうち最も近いピクセルベクトルqに対してさらに近づけるように学習処理が実行される。これによって、各プロトタイプベクトルpkが学習用の複数の画像のいずれかの画像特徴に近づくように、学習モデル400(各プロトタイプベクトルpおよびCNN220等(特にプロトタイプベクトルp))が学習される。
【0169】
このような処理によって、学習モデル400が学習(機械学習)されて学習済みモデル420が生成される。
【0170】
以上のような学習処理によれば、評価項Ltask,Lclst,Lauxを有する評価関数Lを最適化(最小化)するように、学習モデル400が学習される。詳細には、評価項Ltask,Lclst,Lauxをそれぞれ最適化(最小化)するように、学習モデル400が学習される。
【0171】
評価項Ltaskを最小化する作用によって、統合類似度ベクトル280に関する距離学習が進行する。これによれば、統合類似度ベクトル280に関する特徴空間において、同一クラス(たとえば、同一の種類の鳥)を被写体とする複数の入力画像に対応する複数の特徴ベクトルは、互いに近い位置に配置される。一方、異なるクラス(異なる種類の鳥)に関する複数の入力画像に対応する複数の特徴ベクトルは、互いに遠い位置に配置される。
【0172】
また、評価項Lauxを最小化する作用によって、サブ特徴ベクトル290に関する距離学習が進行する。このような距離学習によれば、サブ特徴ベクトル290に関する特徴空間において、同一クラスの複数の入力画像に対応する複数の特徴ベクトルは互いに近い位置に配置され、互いに異なるクラスの複数の入力画像に対応する複数の特徴ベクトルは互いに遠い位置に配置される。
【0173】
サブ特徴ベクトル290は、CNN220からの出力(特徴マップ230)をチャンネル毎に集約したベクトルである。すなわち、サブ特徴ベクトル290は、(統合類似度ベクトル280と比較して、)学習モデル400内においてCNN220からの出力箇所に近い箇所からの出力ベクトルである。本実施形態においては、このような特質を有するサブ特徴ベクトル290を用いた距離学習が行われる。したがって、評価項Ltask,Lauxのうち、評価項Lauxを考慮しない場合(評価項Ltaskのみを考慮する場合)に比べて、適切な特徴抽出能力を有するCNN220をより的確に構築することが可能である。
【0174】
さらに、評価項Lclstを最小化する作用によって、各プロトタイプベクトルpkが最類似ピクセルベクトルq等に近づくように学習される。それ故、各プロトタイプベクトルpkが特定画像の特定部分領域の画像特徴を反映するように学習される。換言すれば、学習後の各プロトタイプベクトルpkは、各プロトタイプPTkのコンセプト(画像特徴のコンセプト)を表現するように学習される。
【0175】
特に、各プロトタイプベクトルpkは、各画像の分配プロトタイプ所属度Tikに応じて、各画像内の画像別最類似ピクセルベクトルqに近づくように学習される。また特に、各プロトタイプPTは、2つ以上のクラスに跨がって所属することが可能である。それ故、各プロトタイプベクトルpは、互いに異なるクラスの異なる画像相互間にて互いに類似する特徴を反映するように学習され得る。また、クラス毎に所定数の専用のプロトタイプベクトルを準備することを要しないので、プロトタイプベクトルpを効率的に構築することが可能である。
【0176】
また、各プロトタイプベクトルpは、同一クラス内の異なる画像に対して、画像ごとのプロトタイプ所属度(画像毎に異なる所属度)に応じて近づくように学習される。詳細には、各プロトタイプベクトルpは、同一クラス内の画像ごとにも異なる所属度(画像別プロトタイプ所属度)に応じて画像特徴を反映するように学習される。それ故、プロトタイプベクトルpを効率的に構築することが可能である。
【0177】
なお、ProtoPNetをクラス分類に利用する従来技術と比較すると、各プロトタイプベクトルpを各クラス専用のプロトタイプベクトルpとして準備することを要しない。換言すれば、プロトタイプベクトルpとクラスとの関係を固定しなくてもよい。それ故、上述のように、プロトタイプベクトルpとクラスとの関係を固定せずにプロトタイプベクトルpを或る画像特徴に近づけるような学習処理(距離学習等)、を実現することが可能である。ひいては、未分類画像に関する類似画像検索処理等において、プロトタイプベクトルpに基づく画像特徴抽出および推論根拠説明等が可能になる。したがって、推論根拠の説明性(特に「透明性」:人間により理解可能なコンセプトで推論結果を説明できる性質)を向上させることができる。
【0178】
<プロトタイプベクトルの置き換え処理>
上述のようにして学習モデル400の機械学習が終了すると、処理はステップS28(
図10)に進む。ステップS28では、コントローラ31は、当該学習モデル400(学習済みモデル420)内の各プロトタイプベクトルpkを、最類似ピクセルベクトルq(qmkとも表記する)にそれぞれ置き換える(
図20参照)。詳細には、学習終了後の学習済みモデル420内の全て(Nc個)のプロトタイプベクトルpk(k=1,...,Nc)が、それぞれに対する最類似ピクセルベクトルqmkに置き換えられる。最類似ピクセルベクトルqmkは、学習用の複数の画像に関する複数の特徴マップにおける複数のピクセルベクトルqのうち当該各プロトタイプベクトルpkに最も類似するピクセルベクトルである。なお、最類似ピクセルベクトルqmkは、特定画像内の特定領域に対応するピクセルベクトル(当該特定領域の画像特徴を示すベクトル)である。
【0179】
具体的には、コントローラ31は、まず、一の画像(第i画像)を学習済み420に入力して得られる特徴マップ230を取得する。そして、コントローラ31は、当該特徴マップ230内の複数のピクセルベクトルqの中から、着目プロトタイプベクトルpk(たとえばp1)に対して最も類似するピクセルベクトルqを求める。第i画像の特徴マップ230に対して最も類似するピクセルベクトルqは、画像別最類似ピクセルベクトルqとも称される。なお、両ベクトルq,pkの類似性は、コサイン類似度等を用いて算出されればよい(式(1)あるいは式(6)参照)。
【0180】
コントローラ31は、同様の動作を複数の画像について繰り返す。これによって、学習用の複数(たとえば100個)の画像に対応する複数の特徴マップ230が抽出され、当該複数の特徴マップ230のそれぞれにおいて、着目プロトタイプベクトルpk(たとえばp1)に対する画像別最類似ピクセルベクトルqが求められる。
【0181】
そして、コントローラ31は、複数の画像に関する複数(たとえば100個)の画像別最類似ピクセルベクトルqのうち、着目プロトタイプベクトルpkに最も類似する画像別最類似ピクセルベクトルqを、最類似ピクセルベクトルq(qmk)として特定する。また、コントローラ31は、当該最類似ピクセルベクトルqmkを含む画像(たとえば第1画像)を最類似画像(プロトタイプベクトルpkの特徴を最も有する画像)として特定する。
【0182】
このようにして、コントローラ31は、着目プロトタイプベクトルpkに対する最類似ピクセルベクトルqmkを求める。
【0183】
そして、コントローラ31は、学習済みモデル420内の着目プロトタイプベクトルpkを、当該着目プロトタイプベクトルpkに対する最類似ピクセルベクトルqmkで置き換える(
図20参照)。
【0184】
さらに、その他の各プロトタイプベクトルpkについても同様にして最類似ピクセルベクトルqmkがそれぞれ求められ、当該各プロトタイプベクトルpkがそれぞれの最類似ピクセルベクトルqmkに置き換えられる。
【0185】
このような置き換えによって、学習済みモデル420が修正され、修正後の学習済みモデル420が完成する(ステップS29(
図10))。
【0186】
このようにしてステップS11(
図5)の処理(学習モデル400の学習段階の処理)が実行される。
【0187】
<1-5.学習モデル400を用いた推論処理>
次に、ステップS11にて生成された学習モデル400(学習済みモデル420)を利用することによって、推論処理が行われる(ステップS12(
図5))。
【0188】
たとえば、新たな画像(推論対象画像)215に類似する画像を複数の画像213の中から探し出す処理等が、推論処理として実行される。より詳細には、検索元の画像(クエリ画像とも称する)215との類似度合いが所定程度以上(換言すれば、特徴空間における特徴ベクトル(統合類似度ベクトル280)間の距離が所定距離以下)の画像を、複数の画像213(ここでは学習用の複数の画像)の中から探し出す処理等が、推論処理として実行される。あるいは、クエリ画像に類似した画像をその類似順に探し出す処理等が推論処理として実行されてもよい。
【0189】
推論対象画像(クエリ画像)は、学習データ(学習用の複数の画像の画像データ等)に対するラベル付けに利用されたクラス(既分類クラス(既知クラス))以外のクラス(未分類クラス)に属する画像であってもよい。すなわち、推論対象画像は、既分類クラスの画像であってもよく、未分類クラスの画像であってもよい。なお、本実施形態に係る推論処理(上述の学習モデル400を用いた推論処理)は、(既分類クラスの推論対象画像に類似する画像を良好に検索できるだけでなく)未分類クラスの推論対象画像に類似する画像を良好に検索できる点において特に有意である。
【0190】
以下、この推論処理について
図21および
図22を参照しつつ説明する。
図21は、統合類似度ベクトル280(283)を特徴空間における特徴ベクトルとして用いた推論処理について説明する図である。
図22は、推論処理結果の一例を示す図である。
【0191】
まず、画像処理装置30は、学習用の複数の画像(ギャラリー画像213)を学習済みモデル420にそれぞれ入力し、当該学習済みモデル420からの出力をそれぞれ取得する。具体的には、
図21(特にその右側)に示されるように、各入力画像210(213)に対する出力(特徴ベクトル)として、各統合類似度ベクトル280(283)が取得される。複数の統合類似度ベクトル283は、学習用の複数の画像を学習済みモデル420に入力することに応じて学習済みモデル420から出力される複数の統合類似度ベクトル280である。また、各統合類似度ベクトル280(283)は、たとえば、512次元のベクトルとして生成される。このような統合類似度ベクトル283(特徴ベクトル)が、各入力画像213の特徴を表すベクトルとして、複数の入力画像213のそれぞれに関して求められる。
【0192】
同様に、画像処理装置30は、検索対象の入力画像(クエリ画像)215を学習モデル420に入力し、当該学習モデル420から出力された統合類似度ベクトル280(285)を特徴ベクトルとして取得する(
図21左側参照)。統合類似度ベクトル285は、クエリ画像215を学習済みモデル420に入力することに応じて当該学習済みモデル420から出力される統合類似度ベクトル280である。なお、クエリ画像215は、たとえば、複数の入力画像213(ギャラリー画像)とは別の画像(探索用に新たに付与された画像等)である。ただし、これに限定されず、クエリ画像215は、複数の入力画像213(ギャラリー画像)のいずれかであってもよい。
【0193】
そして、画像処理装置30は、統合類似度ベクトル285と複数の統合類似度ベクトル283とに基づいて、学習用の複数の画像の中から、クエリ画像215に類似する画像を検索する。
【0194】
具体的には、画像処理装置30は、クエリ画像215の特徴ベクトル285と複数の入力画像213に関する複数の特徴ベクトル283のそれぞれとの類似度合い(たとえば、ユークリッド距離、あるいはベクトル間の内積(コサイン類似度)等)を算出する。さらに、当該類似度合いの高い順(類似度合いの降順)に当該複数の特徴ベクトル283が並べ替えられる。より詳細には、ユークリッド距離の昇順に(あるいは、コサイン類似度の降順に)複数の特徴ベクトル283が並べ替えられる。
【0195】
つぎに、画像処理装置30は、特徴空間における特徴ベクトル285との距離が所定の距離以下(すなわち、類似度合いが所定程度以上)の1又は2以上の特徴ベクトル283を、クエリ画像215に(特に)類似する画像の特徴ベクトル285として特定する。換言すれば、画像処理装置30は、特定された当該1又は2以上の特徴ベクトル285に対応する1又は2以上の入力画像213内の被写体を、クエリ画像215内の被写体に類似する被写体として認識する。
【0196】
また、画像処理装置30は、特徴空間における特徴ベクトル285との距離が最も小さな特徴ベクトル283を、クエリ画像215に最も類似する画像の特徴ベクトル285として特定する。換言すれば、画像処理装置30は、特定された当該一の特徴ベクトル285に対応する一の入力画像213内の被写体を、クエリ画像215内の被写体に最も類似する被写体として認識する。
【0197】
図22は、複数の入力画像213にそれぞれ対応する複数の特徴ベクトル283(
図22にてハッチングを付した白丸でそれぞれ示される)が特徴空間にて分布する様子を示している。
図22では、クエリ画像215の特徴ベクトル285(白星印参照)から所定の距離範囲内に、3つの特徴ベクトル283(V301,V302,V303)が存在している。
【0198】
この場合、たとえば、当該3つの特徴ベクトル283(V301,V302,V303)に対応する3つの画像213が類似画像として抽出される。当該3つの特徴ベクトル283を含む複数の特徴ベクトル283は、特徴ベクトル285との類似度の降順に(距離の昇順に)並べられている。ここでは、上位3つの特徴ベクトル283に対応する3つの画像213が、クエリ画像215の被写体に特に類似する被写体の画像である、と認識されている。
【0199】
また、特徴ベクトル285に最も近い特徴ベクトル283(V301)に対応する一の画像213が、クエリ画像215に最も類似する類似画像として抽出される。
【0200】
なお、これに限定されず、複数の入力画像213が、クエリ画像215との(特徴ベクトル285に関する)距離の昇順(類似度の降順)に並べ替えられるだけでもよい。この場合でも、画像処理装置30は、実質的にクエリ画像内の被写体に類似する被写体をその類似順に探し出す処理(類似画像の検索処理)を実行している。また、当該処理は、クエリ画像内の被写体を認識するための推論処理であるとも表現される。
【0201】
また、この実施形態では、推論対象画像に類似する画像が学習用の複数の画像の中から検索されているが、これに限定されない。たとえば、学習用の複数の画像以外の画像を含む画像の中から、推論対象画像に類似する画像が検索されてもよい。
【0202】
<1-6.推論結果に関する説明処理1>
つぎに、推論結果についての説明処理(ステップS13(
図5))について説明する。
【0203】
たとえば、「特徴ベクトル285に最も近い特徴ベクトル283(V301)に対応する一の画像213a(214とも称する)が、クエリ画像215に最も類似する類似画像である」(
図22参照)と推論される場合を想定する。換言すれば、クエリ画像215に対応する統合類似度ベクトル285と、画像214に対応する統合類似度ベクトル284との両ベクトルの距離Dが、複数の組合せに係る距離Dの中で最小(両ベクトルの類似度が最大)であると判定される場合を想定する。
【0204】
この場合、画像処理装置30(コントローラ31)は、その推論根拠(画像213aがクエリ画像215に類似する旨を画像処理装置30が推論した根拠)を説明する説明情報を生成する。そして、当該説明情報は、表示画面に表示される。
【0205】
図23は、このような説明情報の表示例(表示画面の例)を示す図である。たとえば、
図23の全体が表示部35bにおいて表示される。当該表示例においては、クエリ画像215(最上部左側参照)に最も類似する画像として検索された画像が最上部右側に表示されている。また、「判断根拠1」として、プロトタイプPTmax(次述)に対応する部分画像が示されており、「判断根拠2」として、クエリ画像215内にて当該プロトタイプPTmaxに類似する部分領域画像(および当該部分領域画像のクエリ画像215内での位置)が示されている。
【0206】
このような表示を実現するにあたり、コントローラ31は、まず、クエリ画像215に対応する特徴ベクトル(統合類似度ベクトル)285の複数の成分Skを降順に並べる。当該複数の成分Skのうちの最大成分Smaxに対応するプロトタイプPT(PTmaxとも表記する)が、類似判断の最大根拠である。すなわち、プロトタイプPTmaxに係る特定の画像特徴に類似する画像特徴がクエリ画像に含まれていることが、画像類似判断の最大根拠である。
【0207】
特に、上述の置き換え処理(ステップS28)によって、各プロトタイプPTkのプロトタイプベクトルpkは、各最類似ピクセルベクトルqmkに置き換えられている(
図23の破線矩形内参照)。換言すれば、各プロトタイプベクトルpkは、各最類似ピクセルベクトルqmkで上書きされている。それ故、特徴空間における統合類似度ベクトル280の各成分Skは、各最類似ピクセルベクトルqmkとの類似性を表している。したがって、プロトタイプPT(PTmax)のプロトタイプベクトルpに上書きされた最類似ピクセルベクトルq(qmax)が、類似判断の最大根拠である。
【0208】
そこで、コントローラ31は、最大成分Smaxを有するプロトタイプPT(PTmax)に対応する画像特徴(すなわち、上書きされた最類似ピクセルベクトルqmaxに対応する画像特徴)を判断根拠としてユーザに提示する。
【0209】
たとえば、プロトタイプPTmaxのプロトタイプベクトルp(pmax)に対して上書きされた最類似ピクセルベクトルqmaxが、画像IMG1内の特定部分領域R1(
図20の最上段および
図23の下側参照)に対応する場合、コントローラ31は、当該特定部分領域R1の画像を、類似判断根拠を示す画像としてユーザに提示する。具体的には、コントローラ31は、「判断根拠1」として、プロトタイプPTmaxに対応する部分領域画像(より具体的には、最類似ピクセルベクトルqmaxに対応する部分領域画像)を表示する。
【0210】
また、コントローラ31は、クエリ画像(推論対象画像)215内において、当該特定部分領域R1に類似する領域(特定類似領域Rq)を特定し、当該特定類似領域Rqの画像等をユーザに提示する。具体的には、コントローラ31は、「判断根拠2」として、クエリ画像215内の特定類似領域Rqを囲む矩形(包囲矩形)をクエリ215に重畳表示することによって、特定類似領域Rqの画像特徴とクエリ画像215内での特定類似領域Rqの位置とを併せてユーザに提示する。また、「判断根拠2」として、コントローラ31は、特定類似領域Rqの拡大画像をも表示する。当該拡大画像は、上記包囲矩形を含むクエリ画像215の表示エリアの近傍(ここでは左側)に表示される。
【0211】
より詳細には、まず、コントローラ31は、クエリ画像215内において、最類似ピクセルベクトルqmaxに最も類似する画像特徴を検索する。具体的には、クエリ画像215を学習済みモデル420に入力して得られる特徴マップ230内の複数のピクセルベクトルqのうち、最類似ピクセルベクトルqmax(=プロトタイプPTmaxのプロトタイプベクトルpmax)に最も類似するピクセルベクトルqが抽出される。そして、コントローラ31は、抽出された当該ピクセルベクトルqに対応する部分領域画像(特定類似領域)およびその画像内位置等を「判断根拠2」として表示する。
【0212】
このような判断根拠の提示(装置からの提示)のうち、特に「判断根拠1」に基づき、次のような理解が得られる。具体的には、プロトタイプPTmaxに対応する画像特徴(特定部分領域R1における「青色の頭部」の画像特徴等)を基準に画像処理装置30が「類似」判断を下した、とユーザは理解することができる。
【0213】
また、「判断根拠2」に基づき、次のような理解が得られる。具体的には、クエリ画像215内にて特定部分領域R1に類似していると装置によって推論された部分領域(特定類似領域Rq)をユーザは把握できる。ユーザは、特定類似領域Rqの画像特徴を特定部分領域R1の画像特徴と見比べることによって、特定部分領域R1の画像特徴(「青色の頭部」等)が特定類似領域Rqの画像特徴に存在することを確認し、推論結果が正しいことを理解できる。
【0214】
このような説明情報によれば、クエリ画像215(推論対象画像)に関する類似性が、各置き換え後のプロトタイプベクトルpmaxとの類似性を用いて非常に適切に説明され得る。ここにおいて、置き換え後の各プロトタイプベクトルpmaxは、最類似ピクセルベクトルqmaxの画像特徴(すなわち、学習用の複数の画像のうちの特定画像(IMG1等)の特定部分領域(R1等)の画像特徴)を表している。それ故、推論処理において学習済みモデル420から出力される統合類似度ベクトル280は、(置き換え前のプロトタイプベクトルpmaxではなく)置き換えられた当該最類似ピクセルベクトルqmaxの画像特徴との類似性を表している。したがって、画像処理装置30は、当該特定画像(IMG1等)の特定部分領域(R1等)の画像特徴(「青色の頭部」等)に類似しているか否かに基づき自装置30が類似を判断した旨をユーザ(人間)に説明できる。換言すれば、高い「透明性」(人間により理解可能なコンセプトで推論結果を説明できる性質)を的確に得ることが可能である。
【0215】
図23では、クエリ画像215(推論対象画像)が既分類クラスに属する場合が示されているが、これに限定されず、クエリ画像215は既分類クラスに属しなくてもよい。
【0216】
図24は、
図23とは別の表示例である。
図24においては、クエリ画像215が既分類クラスに属しない場合が示されている。
【0217】
図24は、説明情報の別の表示例(表示画面の例)を示す図である。
【0218】
クエリ画像215は、未分類クラスに属する鳥((赤っぽい足を有する)特定種類の鳥)の画像である。そのようなクエリ画像215に最も類似する画像が学習用の複数の画像の中から検索されている。ここでは、学習用の複数のクラスの中に、第1クラスY1((オレンジ色の足を有する)或る鳥の種類)と第2クラスY2((赤色の足を有する)別の鳥の種類)とが含まれている。
【0219】
「判断根拠1」として、プロトタイプPTmaxに対応する部分画像が示されている。このプロトタイプPTmaxは、複数(ここでは2つ)のクラスY1,Y2に跨がって所属するプロトタイプPTである。
【0220】
また、「判断根拠2」として、クエリ画像215(「赤っぽい色の足」を有する鳥の画像)内にて当該プロトタイプPTmaxに最も類似する部分領域画像(「赤っぽい色の足」を示す部分領域画像)等が示されている。
【0221】
上述したように、上記評価項Ltaskに基づく統合類似度ベクトル280の距離学習が行われる際に、評価項Lclstもが考慮される。これによれば、各クラスへのプロトタイプPT所属度に応じて当該各クラス内の各画像内の或るピクセルベクトルqに当該プロトタイプPT(結果的にPTmax)が近づくように学習される。たとえば、当該プロトタイプPTmaxのプロトタイプベクトルpmaxは、(クラスY1に属する画像の「オレンジ色の足」に対応する)ピクセルベクトルq1に近づくように且つ(クラスY2に属する画像の「赤色の足」に対応する)ピクセルベクトルq2に近づくように学習される(
図24下側の大きな破線矩形内参照)。この結果、「オレンジの足」の鳥画像のみならず「赤色の足」の鳥画像も統合類似度ベクトル280の特徴空間内にて近くに配置される。ただし、ステップS28の置き換え処理において、プロトタイプベクトルpmaxは、ピクセルベクトルq1,q2のうちピクセルベクトルq1に置き換えられたものとする。
【0222】
画像処理装置30は、
図24に示すような説明情報をユーザに対して提示する。
【0223】
このような説明情報によれば、クエリ画像215(推論対象画像)に関する類似性が、各置き換え後のプロトタイプベクトルpmaxとの類似性を用いて非常に適切に説明され得る。ここにおいて、置き換え後の各プロトタイプベクトルpmaxは、最類似ピクセルベクトルqmaxの画像特徴(端的に言えば「オレンジ色の足」)を表している。したがって、画像処理装置30は、当該特定画像特徴(「オレンジ色の足」)に類似しているか否かに基づき自装置30が類似を判断した旨を説明できる。換言すれば、高い透明性(人間により理解可能なコンセプトで推論結果を説明できる性質)を的確に得ることが可能である。
【0224】
また、そのような説明情報を知得したユーザは、「判断根拠1」に基づきクエリ画像215に類似する画像がプロトタイプPTmaxに基づき検索されたことを理解できる。すなわち、ユーザは、置き換え後のプロトタイプPTmax(ここではピクセルベクトルq1に等しい)の特定画像特徴(「オレンジ色の足」)に類似しているか否かに基づき装置が画像の類似を判断した旨を理解することができる。
【0225】
ただし、これに限定されず、ユーザは、「判断根拠2」に含まれる情報にも基づいて次のような解釈を行うことも可能である。
【0226】
「判断根拠2」においては、クエリ画像内の類似箇所の画像特徴(具体的には、「赤っぽい足」)等が示されている。ユーザは、プロトタイプPTmaxがピクセルベクトルq2(「赤色の足」)をも反映するように学習されていること自体は知得できないものの、ユーザは、プロトタイプPTmaxの画像特徴(「オレンジ色の足」)とクエリ画像215内の画像特徴(「赤っぽい色の足」)とを知得できる。ユーザは、このような情報に基づき、プロトタイプPTmaxは実際には「明るい赤っぽい色の足」という画像特徴(「オレンジ色」と「赤色」との双方を含むような画像特徴)を示すものとして学習されていることを推測すること(総合的に理解すること)ができる。したがって、ユーザは、画像処理装置30が「明るい赤っぽい色の足」という画像特徴に基づき類似を判断している、と解釈することも可能である。特に、上述のように、評価値Lclstの作用にも依拠して、互いに類似する特徴(ピクセルベクトルq1,q2に対応する特徴)を有する画像群に対応する統合類似度ベクトル280群は、特徴空間において近くに配置されている。このことを考慮すれば、そのような解釈は一定の合理性を有している。
【0227】
<1-7.推論結果に関する説明処理2>
上記においては、クエリ画像215が検索対象の複数の画像のうちの特定の画像に類似している根拠が画像処理装置30によって説明されている。ただし、これに限定されず、クエリ画像215が検索対象の複数の画像のうちの特定の画像に類似していない根拠も画像処理装置30によって説明され得る。以下では、このような態様について説明する。
【0228】
以下では、第1画像G1と第2画像G2とが似ていない旨を画像処理装置30が判定する場合において、両画像G1,G2が似ていない(非類似の)旨の判定根拠を画像処理装置30が説明する態様について説明する(
図25参照)。なお、たとえば、第1画像はクエリ画像215であり、第2画像はクエリ画像215に似ていないと判定(推論)された画像(学習用の複数の画像のうちのいずれか等)である。
【0229】
コントローラ31は、類否判定に際して、第1画像G1に対応する特徴ベクトル(統合類似度ベクトル)280(s1とも表記する)と、第2画像G2に対応する特徴ベクトル(統合類似度ベクトル)280(s2とも表記する)とを求める(
図25参照)。
【0230】
なお、上述のように、或る入力画像210の統合類似度ベクトル280の各成分Skは、当該入力画像210の画像内最類似ピクセルベクトルqnkと当該第kプロトタイプベクトルpkとの距離を表している(
図25参照)。各成分Skは、第kプロトタイプベクトルpkで表現される画像特徴がその入力画像に存在する程度を示している。画像内最類似ピクセルベクトルqnkは、当該入力画像210の入力に対してCNN220(特徴抽出層320)から出力される特徴マップ230内の複数のピクセルベクトルqのうち、第kプロトタイプベクトルpkに最も類似するピクセルベクトルqである。
【0231】
そして、たとえば、両画像G1,G2に関する両ベクトルs1,s2相互間の距離(ここではユークリッド距離)D(次式(10))が所定値未満である場合、画像処理装置30が第1画像G1と第2画像G2とが似ていない、と判定される。なお、式(10)において、統合類似度ベクトルs(280)の各成分Skの右肩の括弧で囲まれた数字は、第1画像と第2画像とのいずれに関する成分を表すかを識別するために付されている。
【0232】
【0233】
次に、コントローラ31は、両ベクトルs1,s2をその成分Skごとに比較する。より具体的には、コントローラ31は、両ベクトル283の差分ベクトルΔs(=Δs12=s1-s2)を求める(
図25中段右側参照)とともに、当該差分ベクトルΔsの複数(Nc個)の成分ΔSk(k=1,...,Nc)(詳細にはその絶対値)を降順に並べ替える(
図26参照)。
【0234】
差分ベクトルΔsの第k成分ΔSk(絶対値)が小さいことは、一方のベクトル(たとえばベクトルs1)の第k成分Skと他方のベクトル(たとえばベクトルs2)の第k成分Skとが近い値であることを意味する。逆に、差分ベクトルΔsの第k成分ΔSk(絶対値)が大きいことは、たとえば、一方のベクトルs1の第k成分Skが大きく且つ他方のベクトルs2の第k成分Skが小さいことを意味する。換言すれば、当該第k成分Skに対応するプロトタイプPTk(画像特徴のコンセプト)は一方の画像(たとえば第1画像G1)に大きく含まれており、一方、当該プロトタイプPTkは第他方の画像(2画像G2)には(あまり)含まれていないことを意味する。すなわち、当該第k成分Skのプロトタイプベクトルpの画像特徴が一方の画像(たとえば第1画像)に(十分に)存在し、他方の画像(第2画像)には当該第k成分Skのプロトタイプベクトルpの画像特徴が(ほとんど)存在していないことを意味する。それ故、差分ベクトルΔsの第k成分ΔSkが大きいほど、その第kプロトタイプPTkは、2つの画像G1,G2の相互間の違いをより適切に説明できるプロトタイプ(コンセプト)である。
【0235】
ここでは、差分ベクトルΔsの複数(Nc個)の成分ΔSk(絶対値)が降順に並べ替えられた後、最も大きなΔSk(
図26ではΔS2)に対応するプロトタイプPTkが、両画像G1,G2の違いを最も(第1順位で)適切に説明できるプロトタイプPT(最上位プロトタイプPT)である、と画像処理装置30が判定する。また、2番目に大きなΔSk(
図26ではΔS3)に対応するプロトタイプPTkが、両画像G1,G2の違いを次順位(第2順位)で適切に説明できるプロトタイプPT(最上位プロトタイプPT)である、と画像処理装置30が判定する。同様に、各プロトタイプPTkは、対応するΔSk(絶対値)の順位に従って順位付けられる。
【0236】
図27は、違いを説明する説明情報の表示例(表示画面の例)を示す図である。たとえば、
図27の全体が表示部35bにおいて表示される。
【0237】
図27においては、両画像G1,G2が左側に表示されるとともに、並べ替え後の差分ベクトルΔsの各成分ΔSk(絶対値)がグラフ形式で表示されている。なお、各成分ΔSkの値等もが併せて表示されてもよい。
【0238】
また、複数の成分ΔSkのうちの上位数個(ここでは3個)に対応するプロトタイプベクトルpkの画像特徴等が表示されている(
図27の右端列参照)。具体的には、プロトタイプベクトルpkを置き換えた最類似ピクセルベクトルqmkを含む画像(プロトタイプベクトルpkの特徴を最も有する画像)gkとともに、当該最類似ピクセルベクトルqmkに対応する部分画像が矩形で囲まれて示されている。
【0239】
たとえば、最上位成分ΔS2については、画像g2と当該画像g2内の部分画像(矩形で囲まれた領域)とが示されている。同様に、第2順位成分ΔS3については画像g3と当該画像g3内の部分画像とが示されており、第3順位成分ΔS7については画像g7と当該画像g7内の部分画像とが示されている。
【0240】
また、
図28は、詳細情報をさらに示す表示例である。
図27の表示画面のみならず
図28の表示画面もが表示されることが好ましい。
【0241】
図28の上下方向3段且つ左右方向3列の合計9つのヒートマップは、これらの上位3つのプロトタイプベクトルp2(最上段参照),p3(中段参照),p7(最下段参照)に関して、各最類似画像での発火位置(最左列参照)と第1画像G1での発火位置(中央列参照)と第2画像G2での発火位置(最右列参照)とを示している。各段のプロトタイプベクトルpkに対応する各ヒートマップ(横方向に配列された3つのヒートマップ)は、各列の画像に関する第k平面類似度マップ260(
図3)に対応する。なお、各画像内での発火位置(各プロトタイプベクトルpkとの類似度合いが高いピクセルベクトルqの位置(w,h))は、比較的明るい色で示されている。ただし、ヒートマップごとにスケールが異なっている(詳細には、各ヒートマップ内での最大類似度が100%になるようにスケール変換されている)。それ故、9つのヒートマップの相互間での明るさの比較には注意を要する(あるいは9つのヒートマップの相互間では明るさの比較をしないことが好ましい)。
【0242】
図28の最上段最左列においては、プロトタイプベクトルp2に関する最類似画像g2での発火位置が鳥の足付近に存在することが示されている。すなわち、プロトタイプベクトルp2は、最類似画像g2における鳥の足付近の画像特徴を表していることが判る。また、最上段の(左右方向)中央列においては、プロトタイプベクトルp2の第1画像G1での発火位置が鳥の足付近に存在することが示されている。最上段の最右列においては、プロトタイプベクトルp2の第2画像G2での発火位置が鳥の足付近に存在することが示されている。ただし、第1画像G1での発火位置での類似度は高く(たとえば「0.489」)、第2画像G2での発火位置での類似度は低い(たとえば「0.201」)。すなわち、プロトタイプベクトルp2の画像特徴は、第1画像G1(
図27左端列上側)に比較的大きく現れている一方、第2画像G2(
図27左端列下側)にはあまり現れていない。
【0243】
図28の中段最左列においては、プロトタイプベクトルp3に関する最類似画像g3での発火位置が背景(鳥頭部よりも上側)に存在することが示されている。すなわち、プロトタイプベクトルp3は、最類似画像g3における背景の一部の画像特徴を表していることが判る。また、中段の(左右方向)中央列においては、第1画像G1での発火位置および第2画像G2での発火位置が明るい領域として示されている。ただし、第1画像G1での発火位置での類似度は高く(たとえば「0.406」)、第2画像G2での発火位置での類似度は低い(たとえば「0.168」)。すなわち、プロトタイプベクトルp3の画像特徴は、第1画像G1に比較的大きく現れている一方、第2画像G2にはあまり現れていない。
【0244】
図28の最下段最左列においては、プロトタイプベクトルp7に関する最類似画像g7での発火位置が鳥のくちばし先端付近に存在することが示されている。すなわち、プロトタイプベクトルp7は、最類似画像g7における鳥のくちばし先端付近の画像特徴(細長い形状等)を表していることが判る。また、最下段(左右方向)中央列においては、第1画像G1での発火位置および第2画像G2での発火位置が明るい領域として示されている。ただし、第1画像G1での発火位置での類似度は低く(たとえば「0.147」)、第2画像G2での発火位置での類似度は高い(たとえば「0.361」)。すなわち、プロトタイプベクトルp7の画像特徴は、第2画像G2に比較的大きく現れている一方、第1画像G1にはあまり現れていない。
【0245】
このような説明情報が画像処理装置30からユーザに提示される。
【0246】
特に、画像処理装置30は、両画像G1,G2が互いに似ていないと自装置30が判断した根拠として、上位数個(ここでは3個)のプロトタイプベクトルpk(コンセプト)をユーザに提示する。ユーザは、このような提示を受けて、当該上位数個のプロトタイプベクトルpkで表現されるコンセプト、たとえば最上位プロトタイプベクトルp2のコンセプト(最類似画像g2における鳥の足付近の画像特徴)等に基づき、両画像が非類似であると判断されたことを理解できる。
【0247】
なお、ここでは、(未分類クラスに属する)クエリ画像215(推論対象画像)の比較対象の画像が学習用の複数の画像のいずれかである場合を想定しているが、これに限定されず、当該比較対象の画像は、学習用の複数の画像以外の画像であってもよい。また、当該比較対象の画像も、未分類クラスの画像であってもよい。このように、2つの画像を比較する際において、当該2つの画像のそれぞれは、学習用の複数の画像のいずれかであってもよく、学習用の複数の画像以外の画像であってもよい。また、当該2つの画像は、未分類クラスの画像であってもよい。
【0248】
<1-8.実施形態による効果>
上記実施形態においては、学習モデル400の学習段階において、評価項Ltaskを最小化する作用によって、統合類似度ベクトル280に関する距離学習が進行する。これによれば、統合類似度ベクトル280に関する特徴空間において、同一クラス(たとえば、同一の種類の鳥)を被写体とする複数の入力画像に対応する複数の特徴ベクトルは、互いに近い位置に配置される。一方、異なるクラス(異なる種類の鳥)に関する複数の入力画像に対応する複数の特徴ベクトルは、互いに遠い位置に配置される。
【0249】
さらに、評価項Lclstを最小化する作用によって、各プロトタイプベクトルpkが最類似ピクセルベクトルq等に近づくように学習される。それ故、各プロトタイプベクトルpkが特定画像の特定部分領域の画像特徴を反映するように学習される。換言すれば、学習後の各プロトタイプベクトルpkは、各プロトタイプPTkのコンセプト(画像特徴のコンセプト)を表現するように学習される。
【0250】
特に、各プロトタイプベクトルpkは、各画像の分配プロトタイプ所属度Tikに応じて、当該各画像に対応する特徴マップ内のいずれかのピクセルベクトル(当該各画像内の画像別最類似ピクセルベクトルq)に近づくように学習される。それ故、各プロトタイプが特定画像の特定領域の画像特徴(ピクセルベクトル)に近い特徴を表現するように学習される。ひいては、学習モデルにおける学習結果に関する説明性(特に透明性(人間による理解が可能なコンセプトで説明できること))を向上させることが可能である。
【0251】
また特に、各プロトタイプPTは、2つ以上のクラスに跨がって所属することが可能である。それ故、各プロトタイプベクトルpは、互いに異なるクラスの異なる画像相互間にて互いに類似する画像特徴を反映するように学習され得る。また、クラス毎に所定数の専用のプロトタイプベクトルを準備することを要しないので、プロトタイプベクトルpを効率的に構築することが可能である。
【0252】
たとえば、或るプロトタイプベクトルpkが第1クラスと第2クラスとに所属する場合を想定する。この場合、第1クラス内の或る画像の第1画像特徴に対応するピクセルベクトルq1と第2クラス内の或る画像の第2画像特徴に対応するピクセルベクトルq2との双方に類似する画像特徴を反映するように、当該プロトタイプベクトルpkが学習される。また、統合類似度ベクトル280に関する距離学習との相乗効果によって、ピクセルベクトルq1に近い画像特徴を有する画像に対応する統合類似度ベクトル280と、ピクセルベクトルq2に近い画像特徴を有する画像に対応する統合類似度ベクトル280とは、特徴空間において近い位置に配置され得る。
【0253】
また、各プロトタイプベクトルpは、同一クラス内の異なる画像に対して、画像ごとのプロトタイプ所属度(画像毎に異なる所属度)に応じて近づくように学習される。詳細には、各プロトタイプベクトルpは、同一クラス内の画像ごとにも異なる所属度(画像別プロトタイプ所属度)に応じて画像特徴を反映するように学習される。それ故、プロトタイプベクトルpを効率的に構築することが可能である。
【0254】
また、このような学習処理によれば、既知クラス以外の画像(未分類クラスの画像)を推論対象画像とし、当該推論対象画像に類似する類似画像を複数の画像の中から検索する画像検索処理にも利用可能な学習モデルを構築(生成)することが可能である。
【0255】
また、上記ステップS22(
図9)において、一のプロトタイプが2以上のクラスに所属する場合、当該2以上のクラスのそれぞれにおける当該一のプロトタイプの所属度が低減される。これによれば、複数(特に多数)のクラスに共通する所属プロトタイプは背景等である可能性が高いことを考慮してその重要度を低減することが可能である。
【0256】
また、上記ステップS28(
図10)において、各プロトタイプベクトルが特定画像内の特定領域に対応するピクセルベクトルに置き換えられることによって学習済みモデル420が修正される。修正後の学習済みモデル420においては、置き換え後のプロトタイプベクトルpk(すなわちその最類似ピクセルベクトルqmk)と各入力画像内のいずれかの部分領域の画像特徴との類似度が統合類似度ベクトル280に直接的に現れる。詳細には、入力画像の各ピクセルベクトルqと置き換え後のプロトタイプベクトルpkとの類似度を示す類似度マップ270および統合類似度ベクトル280等が形成される。
【0257】
それ故、プロトタイプベクトルpkに上書きされた最類似ピクセルベクトルqmk(学習用の複数の画像のうちの特定画像の特定領域の画像特徴)との類似性を用いて、入力画像の特徴が更に適切に説明され得る。たとえば、
図23に示されるように、画像処理装置30は、最類似ピクセルベクトルqmaxの画像特徴(IMG1の特定部分領域R1の画像特徴:「青色の頭部」等(
図23参照))に類似していることを自装置30による類似判断根拠として説明できる。換言すれば、非常に高い透明性(人間により理解可能なコンセプトで推論結果を説明できる性質)を的確に得ることが可能である。
【0258】
<2.第2実施形態>
第2実施形態は、第1実施形態の変形例である。以下では、第1実施形態との相違点を中心に説明する。
【0259】
上記第1実施形態においては、或る画像に対してクエリ画像215が「類似していない」根拠等も説明されている。すなわち、或る画像ペアが似ていない根拠が説明されている。
【0260】
図29は、Nc個のプロトタイプベクトルpのうち上位所定数個(たとえば20個)のプロトタイプベクトルp(コンセプト)を用いることによって、或る画像ペア(画像G1,G2)の相違をどの程度まで説明できているかを評価した評価結果を示すグラフである。ただし、
図29等においては、
図25~
図26における画像ペアとは異なる画像ペアが例示されている。
【0261】
ここにおいて、Nc個のプロトタイプベクトルpのうち上位n個のプロトタイプPTの成分で表現される両画像間の距離Dnは、次式(11)で表現される。差分ベクトルΔs(=s1-s2)の複数の成分ΔSk(絶対値)が降順にソートされた後、その上位n個までの成分ΔSkのみで再構成される部分差分ベクトルの大きさが値Dnである、とも表現される。
【0262】
【0263】
そして、画像ペアの全距離D(式(10))に対して、上位n個のプロトタイプPTの成分で表現される距離Dn(式(10))が占める割合Drは、次式(12)で表される。
【0264】
【0265】
この値(距離比)Drは、上位n個のプロトタイプベクトルp(コンセプト)を用いることによって、或る画像ペア(画像G1,G2)の相違をどの程度まで説明できているかを評価する評価値である。この値Drによれば、2つの画像i,jの特徴ベクトル間の距離D(100%)に対して、上位n個のプロトタイプベクトルpによってどの程度までの距離Dnに到達しているかを評価することが可能である。
【0266】
図29のグラフは、互いに異なるクラスの2つの画像G1,G2(
図29の画像ペア)についての値Drを示している。この値Drは、上記第1実施形態の学習処理によって得られた学習済みモデル420を用いて得られた2つの統合類似度ベクトル280(s1,s2)に基づいて算出されている。グラフにおける横軸は、値n(考慮対象のプロトタイプ数)を表しており、縦軸は値Drを表している。
【0267】
図29のグラフでは、改善前の上位1個から上位20個までのプロトタイプベクトルpをそれぞれ用いたときの各値Drが示されている。すなわち、上位1個のプロトタイプベクトルpを用いたときの値Dr、上位2個のプロトタイプベクトルpを用いたときの値Dr、(...中略...)、および上位20個のプロトタイプベクトルpを用いたときの値Drがそれぞれ示されている。
【0268】
図29のグラフでは、最上位のプロトタイプで約10%、上位第2位までのプロトタイプで約13%の各値Drが得られている。また上位第20位までのプロトタイプに対応する値Drは、40%未満である。このことは、上位20個のコンセプトを用いても、全体の相違(全距離D)のうちの40%も説明できていないことを意味する。換言すれば、生成されたプロトタイプが必ずしも適切なプロトタイプになっていない可能性がある。したがって、判断根拠の説明性(解釈可能性)のうち「明瞭性」(少ないコンセプトで判断根拠を説明できる性質)において改善の余地がある。
【0269】
そこで、この第2実施形態においては、判断根拠に関する「明瞭性」を向上させることが可能な技術を提供する。
【0270】
第2実施形態においては、式(2)の評価関数Lに代えて、式(13)の評価関数Lを用いる。
【0271】
【0272】
式(13)の評価関数Lは、新たな評価項Lintもが加算された評価関数である。
【0273】
以下、この評価項Lintについて説明する。
【0274】
図30は、
図29のグラフの横軸を全て(Nc個)のプロトタイプPTにまで広げた状態を示すグラフである。
図30の上段のグラフは、「明瞭性」に劣る状態を示しており、一方、
図30の下段のグラフは上段のグラフよりも「明瞭性」が向上した状態を示している。
図30に示されるように、グラフを上側に引き上げること、より詳細にはグラフの斜線部分の面積を最小化することによって、明瞭性を向上させることが可能である。
【0275】
そのため、式(14)の値Liaが定義され、当該値Liaを最小化するように学習が進められる。
【0276】
【0277】
式(14)の値Lia(ただし、Nd=Ncのとき)は、
図30のグラフの斜線部(斜線ハッチング領域)の面積に相当する。
図31に示されるように、ここでは、当該斜線部の面積を帯状領域の集合体の面積で近似する。各帯状領域の面積は、縦方向の長さ(1-Dn/D)に幅(たとえば「1」)を乗じた値である。値nを1からNdまで変化させつつ当該長さ(1-Dn/D)を加算した値を更に値Ndで除した値が式(14)の値Liaに等しい。ここでは、値Ndは値Nc(プロトタイプPTの全個数)である。この値Liaは、画像ペア毎に決定される値である。
【0278】
そして、この値Liaを学習用の複数の画像に関する全ての画像ペアについて算出して加算した値をペア数Npで除した値が評価項Lintである(式(15)参照)。
【0279】
【0280】
このような評価項Lintを含む評価関数を最小化するように学習モデル400が学習されることによって、学習モデル400(プロトタイプベクトルp等)が最適化される。換言すれば、式(15)の評価値Lint(および式(14)の評価値Lia)を最小化するように、学習モデル400が最適化される。
【0281】
ここにおいて、式(15)の評価値Lint(および式(14)の評価値Lia)を最小化(最適化)することは、複数の値nにそれぞれ対応する複数の大きさDn(式(11)参照)の総和を両ベクトルs1,s2間のベクトル間距離Dで除して正規化した値(式(14)参照)を最大化することと等価である。なお、複数の大きさDnは、距離Dn(式(11)参照)を複数の値n(n=1,...,,Nd;ただし、値Ndは、統合類似度ベクトルの次元数Nc以下の所定の整数である)のそれぞれについて求めた値である。また、差分ベクトルΔs(=s1-s2)の複数の成分ΔSk(絶対値)が降順にソートされた後、その上位n個までの成分ΔSkのみで再構成される部分差分ベクトルの大きさが距離Dnである。
【0282】
次に、このような処理について、
図32のフローチャートを参照しつつさらに詳細に説明する。
図32は、評価項Lintに関する学習処理等を示す図である。
【0283】
図32の処理(ステップS60)は、ステップS25(
図9)の処理時(あるいはその前に)実行される。ステップS25においては、ステップS60で算出された評価関数Lintもが評価関数Lに加算され、ステップS26等において機械学習が進められる。
【0284】
そのため、まずステップS61において、コントローラ31は、学習用の複数の画像に関する全ての画像ペアのうちのいずれかの画像ペアに着目する。
【0285】
そして、コントローラ31は、当該画像ペア(着目画像ペアとも称する)における各画像の統合類似度ベクトル280を求める(ステップS62)。具体的には、コントローラ31は、第1画像G1を学習モデル400に入力して得られる統合類似度ベクトル280(第1ベクトルs1)と、第2画像G2を学習モデル400に入力して得られる統合類似度ベクトル280(第2ベクトルs2)との両ベクトルを求める。
【0286】
つぎに、コントローラ31は、第1ベクトルs1と第2ベクトルs2との差分ベクトルΔsにおける複数の成分ΔSkの絶対値を降順にソートする(ステップS63)。なお、各成分ΔSkの絶対値は、両ベクトルs1,s2をその成分(プロトタイプ成分)ごとに差分した差分値の絶対値(プロトタイプ成分毎の差異の大きさ)である、とも表現される。
【0287】
また、コントローラ31は、差分ベクトルΔsの複数の成分ΔSkのうち降順ソート後の上位n個までの成分のみで再構成される部分差分ベクトルの大きさDnを複数の値n(n=1,...,,Nd)のそれぞれについて求める(ステップS64)。ただし、値Ndは、前記統合類似度ベクトルの次元数Nc以下の所定の整数である。なお、ここでは、値Ndは、値Nc(に等しい値)に設定される。
【0288】
そして、コントローラ31は、式(14)に従って値Liaを算出する(ステップS65)。
【0289】
さらに、コントローラ31は、ステップS65において、着目画像ペアを変更しつつステップS61~S64を繰り返し実行することによって、全ての画像ペアについて値Liaを求める。換言すれば、コントローラ31は、学習用の複数の画像のうちの任意の組合せに係る第1画像と第2画像とに関して、ステップS61~S64の処理を実行する。そして、コントローラ31は、式(15)に従って、値Lintを算出する(ステップS65)。
【0290】
その後、ステップS25において、式(13)に従って、評価項Lintをも含む評価関数Lが算出される。
【0291】
そして、ステップS21~S25およびステップS61~S65が繰り返し実行され、当該評価関数Lを最小化(最適化)するように、学習モデル400の学習処理(機械学習)が進められる(ステップS26)。詳細には、式(14)の評価項Liaおよび式(15)の評価項Lint等がそれぞれ最小化されるように、学習処理が進められる。なお、式(14)の評価項Liaが最小化されることは、複数の値nにそれぞれ対応する複数の大きさDnの総和を両ベクトル間のベクトル間距離Dで除して正規化した値(Dn/D)が最大化されることと等価である。
【0292】
図33は、
図29の画像ペアに関する改善例を示している。具体的には、第2実施形態に係る学習処理によって得られた学習済みモデル420に基づき推論対象画像(詳細には、
図29の画像ペア)に関する推論処理が実行された場合において、その推論根拠(似ていない理由)の明瞭性がどのように改善されたかが示されている。
【0293】
図33の上段は、改善前の上位1個から上位20個までのプロトタイプベクトルpをそれぞれ用いたときの各値Drが示されている。上段のグラフでは、上述のように、上位20個のプロトタイプベクトルp(コンセプト)を用いても、全体の相違(全距離D)のうちの40%弱の説明ができているに止まっている。
【0294】
一方、
図33の下段は、改善後(上述のような評価項Lintを伴って学習された学習済みモデル420を用いて推論が行われる場合)の上位1個から上位20個までのプロトタイプベクトルpをそれぞれ用いたときの各値Drが示されている。下段のグラフでは、上位20個のプロトタイプベクトルp(コンセプト)を用いることによって、全体の相違(全距離D)のうちの60%程度の説明ができている。改善前に比べて説明の程度(値Dr)が約20%向上している。
【0295】
また、改善後においては、最上位のプロトタイプで約22%、上位第2位までのプロトタイプで約28%の各値Drが得られている。また、上位7個程度で約40%の値Drが得られている。このように、少ないコンセプトで判断根拠を説明できており、「明瞭性」が向上している。
【0296】
このように第2実施形態によれば、説明性(解釈可能性)のうち明瞭性(少ないコンセプトで判断根拠を説明できること)を向上させることが可能である。
【0297】
また、図示していないが、改善後の上位のプロトタイプベクトルは、改善前の上位のプロトタイプベクトルとは異なるプロトタイプベクトルに変化している。換言すれば、上位のプロトタイプベクトルは、両画像G1,G2の違いをより適切に説明するためのプロトタイプベクトルに変化している。
【0298】
なお、上記実施形態においては、式(14)において、値Ndを値Ncとしているが、これに限定されず、値Ndは、値Ncよりも小さな値でもよい。値Ndが値Ncよりも小さい場合、式(14)の値Liaは、
図31のグラフの斜線部の面積のうち、n=Ndよりも左側の面積に相当する。この場合でも、斜線部の面積を最小化する効果を一定程度得ることが可能である。ただし、この場合には、値Ndよりも右側の斜線領域の面積が必ずしも最小化されない。それ故、値Ndは値Ncであることが好ましい。
【0299】
<第2実施形態の変形例>
ところで、距離学習に関する評価項Ltask(式(3)参照)を最小化する学習処理においては、特徴空間におけるネガティブペア間の距離D(ネガティブペアに関する統合類似度ベクトル280の相互間の距離)を拡大させる力(斥力)が作用している(
図34の両矢印参照)。評価項Ldist(後述)を距離Dで偏微分した値(δLdist/δD)は、評価項Ltaskによってネガティブペア間(アンカー-ネガティブ間)で作用する斥力である、とも表現される。ここで、値Ldistは、式(3)におけるアンカー-ネガティブ間の距離danに関する項である(式(20)参照(後述))。なお、値(δLdist/δD)の絶対値は、「1」である。
【0300】
一方、明瞭性に関する評価項Lint(式(15))を距離Dで偏微分した値(δLint/δD)は常に正であることが、式(14)等に基づき導出される。評価項Lintを用いた最適化は、特徴空間における統合類似度ベクトル280の相互間の距離Dを縮める効果を有している。当該値(δLint/δD)は、評価項Lintによる引力(
図34の内向き矢印参照)である、とも表現される。また式(15)の評価項Lintを距離Dで偏微分した値(δLint/δD)は距離Dに反比例する(式(16)参照)ことが、式(14)等に基づき導出される。すなわち、距離Dが低減するにつれて、評価項Lintによる引力が増大する。
【0301】
【0302】
明瞭性を改善するためには、評価項Lintを低減する必要がある。評価項Lintを低減すると距離Dが低減し、評価項Lintによる引力が増大する。
【0303】
したがって、式(14)の評価項Lia(および式(15)の評価項Lint)をそのまま採用すると、評価項Lintによる引力が評価項Ltaskによる斥力を上回り、ネガティブペアが互いに近づいてしまう(ネガティブペア間の距離Dが小さくなるように移動してしまう)可能性が存在する。換言すれば、距離学習においてネガティブペア間の距離Dを増大させたいにもかかわらず、評価項Lintによる引力が大きく作用し過ぎるとネガティブペア間の距離Dが逆に低減してしまう可能性がある。すなわち、距離学習の精度が劣化する可能性がある。
【0304】
そこで、この変形例では、評価項Lintを式(17)のように変更する。式(17)は、式(15)の値Liaを新たな値Lia(以下、値Libとも表記する)で置き換えた式である。
【0305】
【0306】
ただし、値Libは、次の式(18)で表現される。値Libは、式(14)の値Liaに係数w(ただし、1以下の値)を乗じた値である。値Libは、修正前の値Liaを係数wを用いて修正(低減等)した後の値(修正後の値Lia)である、とも表現される。
【0307】
【0308】
また、係数wは、次の式(19)で表現される。
【0309】
【0310】
係数wは、(修正前の値Liaと同様に、)ペアごとに決定される。式(19)の係数wは、評価項Lintによる引力で、評価項Ltaskによる斥力を除した値に相当する。評価項Lintによる引力は、修正前の評価項Liaを距離Dで偏微分した値(δLia/δD)で表現され、評価項Ltaskによる斥力は、評価項Ltask(詳細には、そのうちネガティブペアに関する評価項Ldist)を距離Dで偏微分した値(δLdist/δD)で表現される。
【0311】
すなわち、当該係数wは、大きくなり過ぎた引力(δLia/δD)で斥力(δLdist/δD)を除した値である。引力(δLia/δD)が斥力(δLdist/δD)よりも大きい場合、値w(1より小さな値)で値Liaを低減するように調整して、修正後の値Lia(Lib)が算出される。換言すれば、修正後の引力(δLib/δD)が斥力(δLdist/δD)を上回らないように、値Liaが調整される。
【0312】
なお、評価項Ldistは、式(20)で表現される。
【0313】
【0314】
ここにおいて、評価項Ltask(式(3))は、複数の統合類似度ベクトル280に基づく距離学習に関する評価項を画像ペアごとに求めたペア別評価項Lta(次述)を、複数組の画像ペアについて加算した総和(詳細には、当該総和を平均化した値)で表現される。ペア別評価項Ltaは、式(3)における総和記号Σの内部(加算対象)の値である。
【0315】
また、修正前の評価項Lint(式(15))は、ペア別評価項Liaを、複数組(Np組)の画像ペアについて加算した総和(詳細には当該総和を平均化した値)で表現される。ペア別評価項Lia(式(14))は、複数の大きさDnの総和(詳細には当該総和を両ベクトル間のベクトル間距離Dで除して正規化した値)に関する評価項を画像ペアごとに求めた値である。
【0316】
そして、係数wは、ペア別評価項Liaが大きくなり過ぎないように調整するための値である。具体的には、「ペア別評価項Liaを各画像ペア(対応画像ペア)に関するベクトル間距離Dで偏微分した値(ペア別評価項Liaに基づく引力)の絶対値」が、「ペア別評価項Ltaを各画像ペア(特にネガティブペア)に関するベクトル間距離Dで偏微分した値(ペア別評価項Ltaに基づく斥力)の絶対値」を上回らないように、ペア別評価項Liaの大きさが係数wによって調整される。すなわち、ペア別評価項Liaは、新たなペア別評価項Lia(すなわちペア別評価項Lib)に変更される。
【0317】
なお、斥力(δLdist/δD)は、「ペア別評価項Ltaを各画像ペア(ネガティブペア)に関するベクトル間距離Dで偏微分した値(ペア別評価項Ltaに基づく斥力)の絶対値」に相当する。
【0318】
そして、調整後の値Lia(値Lib)を学習用の複数の画像に関する全ての画像ペアについて算出して加算した値をペア数Npで除した値が評価項Lintである(式(17)参照)。
【0319】
このような評価項Lintを含む評価関数を最小化するように学習モデル400が学習されることによって、学習モデル400(プロトタイプベクトルp等)が最適化される。
【0320】
これによれば、学習モデル400の精度ひいては推論精度の低下(劣化)を抑制することが可能である。
【0321】
<3.第3実施形態:置き換え無し>
第3実施形態は、第1実施形態および第2実施形態の変形例である。以下では、第1実施形態等との相違点を中心に説明する。
【0322】
上記各実施形態では、学習モデル400の機械学習が終了し且つ各プロトタイプベクトルpkが最類似ピクセルベクトルqmkにそれぞれ置き換えられた後に、検索処理(推論処理)が実行されている。すなわち、学習済みモデル420における各プロトタイプベクトルpkは、最類似ピクセルベクトルqmkにそれぞれ置き換えられている(ステップS28(
図10)および
図20参照)。
【0323】
上述したように、第1実施形態における説明情報(
図23等参照)によれば、比較対象の画像間の類似性が、置き換え後のプロトタイプベクトルpmax(すなわち最類似ピクセルベクトルqmax)に関する類似性を用いて非常に適切に説明され得る。たとえば、画像処理装置30は、最類似ピクセルベクトルqmaxの画像特徴(IMG1の特定部分領域R1の画像特徴:「青色の頭部」等(
図23参照))に類似しているか否かに基づき自装置30が類似を判断した旨を説明できる。換言すれば、非常に高い透明性(人間により理解可能なコンセプトで推論結果を説明できる性質)を的確に得ることが可能である。
【0324】
また、2つの画像間の相違を説明する情報として、上位数個のプロトタイプベクトルpkが利用され得る。第1実施形態および第2実施形態のいずれにおいても、上位数個のプロトタイプベクトルpkを含む全てのプロトタイプベクトルpkは、それぞれ、対応する最類似ピクセルベクトルqに置き換えられている。それ故、置き換え後の学習済みモデル420を用いた推論処理においては、置き換え後の各最類似ピクセルベクトルqとの類似性に基づく推論処理が行われている。したがって、2つの画像間の相違は、当該最類似ピクセルベクトルqの画像特徴との類似性(相違性)に基づき、説明され得る。換言すれば、非常に高い透明性(人間により理解可能なコンセプトで推論結果を説明できる性質)を的確に得ることが可能である。
【0325】
一方、この第3実施形態では、プロトタイプベクトルを最類似ピクセルベクトルqへ置き換える処理は行われない。学習モデル400の機械学習が終了した後において、各プロトタイプベクトルpkが最類似ピクセルベクトルにそれぞれ置き換えられることなく、検索処理(推論処理)が実行される。
【0326】
この場合、判断根拠1(
図23等参照)におけるプロトタイプベクトルpmaxは、特定画像の特定部分領域の画像に完全には対応していない。プロトタイプベクトルpmaxは、或る画像特徴に近づくように学習されてはいるものの、最類似ピクセルベクトルqmaxへの置き換えが行われていない。換言すれば、推論処理自体は、最類似ピクセルベクトルqに置き換えられたプロトタイプベクトルpではなく、最類似ピクセルベクトルqに置き換えられる前のプロトタイプベクトルpを用いて行われる。すなわち、プロトタイプベクトルpmaxと最類似ピクセルベクトルqmaxとの完全な一致性は保証されない。それ故、非常に高い透明性を得ることは難しい。
【0327】
ただし、このような態様(第3実施形態の態様)においても、一定程度の透明性を得ることは可能である。
【0328】
たとえば、画像処理装置30は、クエリ画像215に対して類似する画像を検索する処理において、「プロトタイプベクトルpmaxの特徴に似ていることが類似判断の根拠である旨」、および「プロトタイプベクトルpmaxに類似する上位n個のピクセルベクトル(たとえば上位2個のq1,q2)の各画像特徴」を示すことが可能である。
【0329】
たとえば、画像処理装置30は、
図24の表示画面内の「判断根拠1」の欄に、「プロトタイプベクトルpmaxに類似する上位n個のピクセルベクトルの各画像特徴」として、ピクセルベクトルq1に対応する画像特徴(「オレンジ色の足」)とピクセルベクトルq2に対応する画像特徴(「赤色の足」)とを示すことが可能である。この場合、ユーザは、「これら2種類の画像特徴を反映したプロトタイプベクトルに類似していること(端的に言えば、ピクセルベクトルq1,q2の共通画像特徴(「明るい赤っぽい色の足」)に類似していること)」が画像処理装置30による類似判断の根拠であることを理解できる。
【0330】
それ故、一定程度の「透明性」(人間により理解可能なコンセプトで推論結果を説明できる性質)を得ることが可能である。
【0331】
あるいは、画像処理装置30は、2つの画像が似ていない理由を説明するにあたり、
図27および
図28と同様の説明情報を提示することが可能である。すなわち、「上位数個(たとえば3個)のプロトタイプベクトルpが非類似の根拠である旨」、および「上位数個のプロトタイプベクトルpについて、それぞれ類似する上位n個(たとえば最上位の1個のみ)のピクセルベクトルの各画像特徴」を示すことが可能である。しかしながら、第3実施形態では、プロトタイプベクトルpが最類似ピクセルベクトルqに置き換えられておらず各画像とプロトタイプベクトルp自体との類似性は統合類似度ベクトル280に対して完全には反映されていない。それ故、第1実施形態等のような非常に高い透明性を得ることはできない。具体的には、或るプロトタイプベクトルpに1対1に対応する特定のピクセルベクトルqの画像特徴が非類似根拠である、との説明を行うことはできない。ただし、この場合でも、「上位数個のプロトタイプベクトルpについて、それぞれ類似する上位n個(たとえば最上位の1個のみ)のピクセルベクトルの各画像特徴」を示すことによって、一定程度の「透明性」(人間により理解可能なコンセプトで推論結果を説明できる性質)を得ることが可能である。
【0332】
<4.変形例等>
以上、この発明の実施の形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
【0333】
たとえば、上記各実施形態においては、複数の種類の対象物(たとえば複数の種類の鳥)を撮影した複数の画像の中から、推定対象画像に最も類似する画像が検索されているが、これに限定されない。たとえば、複数の対象物(たとえば複数の人物)を撮影した複数の画像の中から、推定対象画像に最も類似する画像が検索されてもよい。より詳細には、推定対象画像内の或る人物(迷子、あるいは犯人(被疑者)等)に最も類似する人物(当該或る人物と同一の人物であってもよい)を含む画像等が、当該複数の画像の中から、当該推定対象画像に最も類似する画像として検索されてもよい。換言すれば、同一クラスは、「同一種類の対象」で構成されてもよく、「同一対象」で構成されてもよい。
【0334】
また、上記各実施形態においては、既知クラス以外の画像(未分類クラスの画像)を含み得る(であり得る)推論対象画像(或る撮影画像等)に関して、その類似画像を複数の画像(既知の画像(学習用の撮影画像等))の中から検索する画像検索処理が例示されている。しかしながら、本発明はこれに限定されない。たとえば、既分類クラスのいずれかに属する或る推論対象画像が既分類クラスのいずれに所属するかを推論するクラス分類問題(或る推定対象画像をいずれかの既知クラスに分類する分類処理)に本発明の思想が適用されてもよい。
【0335】
具体的には、上記各実施形態と同様にして、コントローラ31は、推論対象画像に関する統合類似度ベクトル285と学習用の複数の画像に関する統合類似度ベクトル283とを求める。そして、これらのベクトルの特徴空間内の位置関係に基づき、k-近傍法等が用いられればよい。より具体的には、推論対象画像に近い順(類似度合いの降順)に抽出された上位数個(k個)の画像に基づき当該推論対象画像の所属クラスを推定するクラス分類処理が行われる。詳細には、当該上位k個(たとえば、k=1,3,5等)の画像(学習用画像)の所属クラス(予めラベル付けされていたクラス)のうち最も多いクラスが、当該推論対象画像の所属クラスであることが推定される。
【0336】
このような変形例においては、ProtoPNetを用いたクラス分類を実行する従来技術に比べて、少ないコンセプト(プロトタイプ)で複数の画像の特徴を効率的に表現することが可能である。ProtoPNetを用いたクラス分類を実行する従来技術では、クラス毎に所定数の専用のプロトタイプが準備されるので、非常に多数(=所定数×クラス数)のプロトタイプを要する。たとえば、2000個(=10×200クラス)のプロトタイプを要する。これに対して、本実施形態では、クラス毎の専用のプロトタイプが準備されることを要さず、複数のクラスに共通のプロトタイプが準備されればよいので、プロトタイプの個数を抑制することが可能である。たとえば、512個程度で同程度(あるいは同程度以上)の推論精度を実現することが可能である。
【0337】
なお、上記各実施形態のような画像検索処理(クラス分類以外の処理)においても、クラス毎に所定数の専用のプロトタイプを準備することを要しない。それ故、プロトタイプベクトルpを効率的に(比較的少数のプロトタイプベクトルpで)構築することが可能である。
【0338】
このように、本発明は、推論対象画像に類似する画像検索処理以外の処理(特に距離学習を用いた推論処理)に適用されてもよい。たとえば、上述のように複数の統合類似度ベクトル280に基づく学習処理は、距離情報を用いたクラス分類学習(KNN近傍法等を用いたクラス分類学習等)でもよい。また、距離情報を用いた生体認証、あるいは異常検知処理に上記の思想が適用されてもよい。
【符号の説明】
【0339】
30 画像処理装置
210 各入力画像
220 畳み込みニューラルネットワーク(CNN)
230 特徴マップ
240 ピクセルベクトル
250,p,pk プロトタイプベクトル
260 平面類似度マップ
270 類似度マップ
280,283,285,s 統合類似度ベクトル
290 サブ特徴ベクトル
400,420 学習モデル
q ピクセルベクトル
Sk 統合類似度ベクトルの第k成分