(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024129938
(43)【公開日】2024-09-30
(54)【発明の名称】画像分類装置、画像分類方法、および画像分類プログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20240920BHJP
【FI】
G06T7/00 350B
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023039351
(22)【出願日】2023-03-14
(71)【出願人】
【識別番号】308036402
【氏名又は名称】株式会社JVCケンウッド
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】竹原 英樹
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA06
5L096DA02
5L096EA39
5L096HA09
5L096JA03
5L096JA11
5L096JA18
5L096KA04
5L096KA15
5L096MA07
(57)【要約】
【課題】追加的な学習または少数画像の学習に対して画像の分類精度を向上することができる画像分類技術を提供する。
【解決手段】特徴抽出部510は、入力画像の第1、第2特徴ベクトルを出力する。平均第1、第2特徴算出部520a、520bは、あるクラスの第1、第2特徴ベクトルを平均して平均第1、第2特徴ベクトルを算出し、全てのクラスの平均第1、第2特徴ベクトルをまとめて平均第1、第2特徴行列を得る。第1、第2特徴類似度算出部532a、532bは、入力画像の第1、第2特徴ベクトルと第1、第2重み行列から第1、第2類似度を算出する。平均第1、第2特徴算出部520a、520bは、第1、第2特徴類似度算出部532a、532bの第1、第2重み行列を平均第1、第2特徴行列に置換する。
【選択図】
図7A
【特許請求の範囲】
【請求項1】
入力画像の第1特徴ベクトルを出力し、前記第1特徴ベクトルとは異なる特徴ベクトルである第2特徴ベクトルを出力する特徴抽出部と、
あるクラスの前記第1特徴ベクトルを平均して平均第1特徴ベクトルを算出し、全てのクラスの前記平均第1特徴ベクトルをまとめて平均第1特徴行列を得る平均第1特徴算出部と、
あるクラスの前記第2特徴ベクトルを平均して平均第2特徴ベクトルを算出し、全てのクラスの前記平均第2特徴ベクトルをまとめて平均第2特徴行列を得る平均第2特徴算出部と、
前記入力画像の第1特徴ベクトルと第1重み行列から第1類似度を算出する第1特徴類似度算出部と、
前記入力画像の第2特徴ベクトルと第2重み行列から第2類似度を算出する第2特徴類似度算出部とを含み、
前記平均第1特徴算出部は、前記第1特徴類似度算出部の第1重み行列を前記平均第1特徴行列に置換し、
前記平均第2特徴算出部は、前記第2特徴類似度算出部の第2重み行列を前記平均第2特徴行列に置換することを特徴とする画像分類装置。
【請求項2】
前記第1特徴ベクトルと前記第2特徴ベクトルは解像度が異なることを特徴とする請求項1に記載の画像分類装置。
【請求項3】
前記第1類似度と前記第2類似度を加算し、総類似度を算出する統合類似度算出部と、
前記総類似度に基づいて前記入力画像のクラスを決定する分類決定部とをさらに含むことを特徴とする請求項1または2に記載の画像分類装置。
【請求項4】
前記第1類似度と前記入力画像の正解ラベルから第1損失を算出する第1損失演算部と、
前記第2類似度と前記入力画像の正解ラベルから第2損失を算出する第2損失演算部と、
前記第1損失と前記第2損失を加算して合算損失を算出する損失重み付け加算部と、
前記合算損失を最小化するように、前記第1特徴類似度算出部の第1重み行列と前記第2特徴類似度算出部の第2重み行列を最適化する最適化部をさらに含むことを特徴とする請求項1または2に記載の画像分類装置。
【請求項5】
入力画像の第1特徴ベクトルを出力し、前記第1特徴ベクトルとは異なる特徴ベクトルである第2特徴ベクトルを出力する特徴抽出ステップと、
あるクラスの前記第1特徴ベクトルを平均して平均第1特徴ベクトルを算出し、全てのクラスの前記平均第1特徴ベクトルをまとめて平均第1特徴行列を得る平均第1特徴算出ステップと、
あるクラスの前記第2特徴ベクトルを平均して平均第2特徴ベクトルを算出し、全てのクラスの前記平均第2特徴ベクトルをまとめて平均第2特徴行列を得る平均第2特徴算出ステップと、
前記入力画像の第1特徴ベクトルと第1重み行列から第1類似度を算出する第1特徴類似度算出ステップと、
前記入力画像の第2特徴ベクトルと第2重み行列から第2類似度を算出する第2特徴類似度算出ステップとを含み、
前記平均第1特徴算出ステップは、前記第1特徴類似度算出ステップの第1重み行列を前記平均第1特徴行列に置換し、
前記平均第2特徴算出ステップは、前記第2特徴類似度算出ステップの第2重み行列を前記平均第2特徴行列に置換することを特徴とする画像分類方法。
【請求項6】
入力画像の第1特徴ベクトルを出力し、前記第1特徴ベクトルとは異なる特徴ベクトルである第2特徴ベクトルを出力する特徴抽出ステップと、
あるクラスの前記第1特徴ベクトルを平均して平均第1特徴ベクトルを算出し、全てのクラスの前記平均第1特徴ベクトルをまとめて平均第1特徴行列を得る平均第1特徴算出ステップと、
あるクラスの前記第2特徴ベクトルを平均して平均第2特徴ベクトルを算出し、全てのクラスの前記平均第2特徴ベクトルをまとめて平均第2特徴行列を得る平均第2特徴算出ステップと、
前記入力画像の第1特徴ベクトルと第1重み行列から第1類似度を算出する第1特徴類似度算出ステップと、
前記入力画像の第2特徴ベクトルと第2重み行列から第2類似度を算出する第2特徴類似度算出ステップとをコンピュータに実行させ、
前記平均第1特徴算出ステップは、前記第1特徴類似度算出ステップの第1重み行列を前記平均第1特徴行列に置換し、
前記平均第2特徴算出ステップは、前記第2特徴類似度算出ステップの第2重み行列を前記平均第2特徴行列に置換することを特徴とする画像分類プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像分類技術に関する。
【背景技術】
【0002】
人間は長期にわたる経験を通して新しい知識を学習することができ、昔の知識を忘れないように維持することができる。一方、畳み込みニューラルネットワーク(Convolutional Neural Network(CNN))等を用いたディープニューラルネットワーク(Deep Neural Network(DNN))の知識は学習に使用したデータセットに依存しており、データ分布の変化に適応するためにはデータセット全体に対してDNNのパラメータの再学習が必要となる。DNNでは、新しいタスクについて学習していくにつれて、昔のタスクに対する推定精度は低下していく。このようにDNNでは連続学習を行うと新しいタスクの学習中に昔のタスクの学習結果を忘れてしまう致命的忘却(catastrophic forgetting)が避けられない。
【0003】
致命的忘却を回避する手法として、継続学習(incremental learningまたはcontinual learning)が提案されている。継続学習とは、新しいタスクや新しいデータが発生した時に、最初からモデルを学習するのではなく、現在の学習済みのモデルを改善して学習する学習方法である。
【0004】
また、人間は少数画像から新しい知識を学習することができる。一方、畳み込みニューラルネットワーク等を用いた深層学習を利用した人工知能は学習に使用するビッグデータ(大量の画像)に依存している。深層学習を利用した人工知能を少数画像で学習すると、局所性能は良いが汎化性能に劣る過剰適合に陥ることが知られている。
【0005】
過剰適合を回避する手法として、少数ショット学習(few shot learning)が提案されている。少数ショット学習とは、基本タスクでビッグデータを利用して基本知識を学び、基本知識を利用して新規タスクの少数画像から新規知識を学習する学習方法である。
【0006】
継続学習と少数ショット学習の両方の課題を解決する手法として少数ショットクラス追加学習(few shot class incremental learning)がある(非特許文献1)。また、少数ショット学習の一つの手法として特徴ベクトルと重みベクトルを正規化してコサイン類似度を利用する技術がある(非特許文献2)。
【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】Tao, Xiaoyu, et al. "Few-shot class-incremental learning." Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2020.
【非特許文献2】Chen, Wei-Yu, et al. "A closer look at few-shot classification." arXiv preprint arXiv:1904.04232 (2019).
【発明の概要】
【発明が解決しようとする課題】
【0008】
先行技術では、追加的な学習または少数画像の学習に対して画像の分類精度が十分に高くならない課題があった。
【0009】
本発明はこうした状況に鑑みてなされたものであり、その目的は、追加的な学習または少数画像の学習に対して画像の分類精度を向上することができる画像分類技術を提供することにある。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明のある態様の画像分類装置は、入力画像の第1特徴ベクトルを出力し、前記第1特徴ベクトルとは異なる特徴ベクトルである第2特徴ベクトルを出力する特徴抽出部と、あるクラスの前記第1特徴ベクトルを平均して平均第1特徴ベクトルを算出し、全てのクラスの前記平均第1特徴ベクトルをまとめて平均第1特徴行列を得る平均第1特徴算出部と、あるクラスの前記第2特徴ベクトルを平均して平均第2特徴ベクトルを算出し、全てのクラスの前記平均第2特徴ベクトルをまとめて平均第2特徴行列を得る平均第2特徴算出部と、前記入力画像の第1特徴ベクトルと第1重み行列から第1類似度を算出する第1特徴類似度算出部と、前記入力画像の第2特徴ベクトルと第2重み行列から第2類似度を算出する第2特徴類似度算出部とを含む。前記平均第1特徴算出部は、前記第1特徴類似度算出部の第1重み行列を前記平均第1特徴行列に置換し、前記平均第2特徴算出部は、前記第2特徴類似度算出部の第2重み行列を前記平均第2特徴行列に置換する。
上記の記載において「第1」の一例は、実施の形態における「深層」または「第1深層」であり、「第2」の一例は、実施の形態における「浅層」または「第2深層」である。
【0011】
本発明の別の態様は、画像分類方法である。この方法は、入力画像の第1特徴ベクトルを出力し、前記第1特徴ベクトルとは異なる特徴ベクトルである第2特徴ベクトルを出力する特徴抽出ステップと、あるクラスの前記第1特徴ベクトルを平均して平均第1特徴ベクトルを算出し、全てのクラスの前記平均第1特徴ベクトルをまとめて平均第1特徴行列を得る平均第1特徴算出ステップと、あるクラスの前記第2特徴ベクトルを平均して平均第2特徴ベクトルを算出し、全てのクラスの前記平均第2特徴ベクトルをまとめて平均第2特徴行列を得る平均第2特徴算出ステップと、前記入力画像の第1特徴ベクトルと第1重み行列から第1類似度を算出する第1特徴類似度算出ステップと、前記入力画像の第2特徴ベクトルと第2重み行列から第2類似度を算出する第2特徴類似度算出ステップとを含む。前記平均第1特徴算出ステップは、前記第1特徴類似度算出ステップの第1重み行列を前記平均第1特徴行列に置換し、前記平均第2特徴算出ステップは、前記第2特徴類似度算出ステップの第2重み行列を前記平均第2特徴行列に置換する。
上記の記載において「第1」の一例は、実施の形態における「深層」または「第1深層」であり、「第2」の一例は、実施の形態における「浅層」または「第2深層」である。
【0012】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0013】
本発明によれば、追加的な学習または少数画像の学習に対して画像の分類精度を向上することができる画像分類技術を提供することができる。
【図面の簡単な説明】
【0014】
【
図1】実施の形態に係る画像分類学習装置の構成図である。
【
図2】
図1の画像分類学習装置による学習の全体の流れを説明するフローチャートである。
【
図3】
図1の画像分類学習装置の基本クラスの学習に関係する構成図である。
【
図4】基本データセットを用いた基本クラスの学習について
図1の画像分類学習装置の詳細な動作を説明するフローチャートである。
【
図5】深層特徴ベクトルと浅層特徴ベクトルを説明する図である。
【
図6】平均深層特徴行列と平均浅層特徴行列の算出方法を説明するフローチャートである。
【
図7A】画像分類学習装置の追加クラスの学習に関係する構成の一例である。
【
図7B】画像分類学習装置の追加クラスの学習に関係する構成の別の例である。
【
図7C】画像分類学習装置の追加クラスの学習に関係する構成のさらに別の例である。
【
図8A】追加データセットを用いた追加クラスの学習の一例について画像分類学習装置500の詳細な動作を説明するフローチャートである。
【
図8B】追加データセットを用いた追加クラスの学習の別の例について画像分類学習装置の詳細な動作を説明するフローチャートである。
【
図8C】追加データセットを用いた追加クラスの学習のさらに別の例について画像分類学習装置の詳細な動作を説明するフローチャートである。
【
図10】画像分類装置の詳細な動作を説明するフローチャートである。
【
図12】画像追加分類装置の詳細な動作を説明するフローチャートである。
【発明を実施するための形態】
【0015】
図1は、実施の形態に係る画像分類学習装置500の構成図である。画像分類学習装置500は、多数の訓練データからなる基本クラスの学習後に少数の訓練データからなる追加クラスを継続学習する少数ショットクラス追加学習を行う。
【0016】
画像分類学習装置500は、特徴抽出部510、平均深層特徴算出部520a、平均浅層特徴算出部520b、分類部530、深層類似度スケーリング部540a、浅層類似度スケーリング部540b、学習部550、統合類似度算出部560、および分類決定部570を含む。分類部530は、深層特徴類似度算出部532aおよび浅層特徴類似度算出部532bを含む。学習部550は、深層損失演算部552a、浅層損失演算部552b、損失重み付け加算部554、および最適化部556を含む。
【0017】
図2は、画像分類学習装置500による学習の全体の流れを説明するフローチャートである。
図1および
図2を参照して画像分類学習装置500の構成と動作を説明する。
【0018】
最初に、基本訓練データセットと追加訓練データセットについて説明する。
【0019】
基本訓練データセットは多数の基本クラス(例えば、100から1000クラス程度)を含み、各クラスが多数画像(例えば、3000画像)で構成される教師ありデータセットである。基本訓練データセットは、一般的な分類タスクを単独で学習させるのに十分なデータ量であるとする。ここでは、基本クラス数を60とする。
【0020】
それに対して、追加訓練データセットは少数の追加クラス(例えば、1から10クラス程度)を含み、各追加クラスが少数画像(例えば、1から10枚程度)で構成される教師ありデータセットである。また、ここでは、少数画像であるとするが、少数クラスであれば多数画像でもよい。ここでは、追加クラス数を5とする。
【0021】
基本訓練データセットを利用して、特徴抽出部510と分類部530の基本クラスの重みベクトルをコサイン類似度に基づいて学習する(S501)。基本訓練データセットを利用して学習する学習セッションをセッション0とする。これを初期セッションとも呼ぶ。
【0022】
学習済みの特徴抽出部510および分類部530の基本クラスの重みベクトルは追加学習時には更新されない。
【0023】
学習済みの基本クラスの画像を分類する(S502)。このステップは必ずしも実行する必要はない。
【0024】
次に、追加学習セッションsをL回繰り返す(s=1,2,…,L)。
【0025】
追加訓練データセットsを使って分類部530の追加セッションsの追加クラスの重みベクトルをコサイン距離に基づいて学習する(S503)。
【0026】
学習済みの基本クラスと追加クラスを分類する(S504)。このステップは必ずしも実行する必要はない。
【0027】
sを1だけインクリメントし、ステップS503に戻り、s=LまでステップS503~S504を繰り返し、sがLを超えれば、終了する。
【0028】
ここではL=8とする。この場合、追加学習セッション1の終了後は65クラス、追加学習セッション2の終了後は70クラスを、追加セッション8の終了後は100クラスを学習していることになる。
【0029】
図3は、画像分類学習装置500の基本クラスの学習に関係する構成図である。
図4は、基本データセットを用いた基本クラスの学習について画像分類学習装置500の詳細な動作を説明するフローチャートである。
図3および
図4を参照して画像分類学習装置500の基本クラスの学習の動作を詳しく説明する。
【0030】
学習はバッチサイズ単位でN回繰り返し実施する(b=1,2,…,N)。例えば、バッチサイズは128とする。エポックはM回繰り返し実施する(e=1,2,…,M)。エポック数は400とする。
【0031】
特徴抽出部510に画像が入力されると深層特徴ベクトルと浅層特徴ベクトルが抽出される(S510)。
【0032】
最初に深層特徴ベクトルと浅層特徴ベクトルについて説明する。
【0033】
図5は、深層特徴ベクトルと浅層特徴ベクトルを説明する図である。
【0034】
特徴抽出部510は、ResNet-18の畳み込み層であるCONV1からCONV5とGAP1(Global Average Pooling)及びGAP2を含む。GAPは畳み込み層から出力される特徴マップを特徴ベクトルに変換する。GAP1にはCONV5から7×7の512チャネルの特徴マップが入力されて512次元の深層特徴ベクトルが出力される。GAP2にはCONV4から14×14の256チャネルの特徴マップが入力されて256次元の浅層特徴ベクトルが出力される。なお、CONV3、CONV2、CONV1からはそれぞれ、28×28の128チャンネルの特徴マップ、56×56の64チャンネルの特徴マップ、112×112の64チャンネルの特徴マップがそれぞれ出力される。
【0035】
深層特徴ベクトルは特徴マップでみると7×7で低解像度であり、画像全体の広範囲を畳み込んでいるため画像全体の概要情報を含む。一方、浅層特徴ベクトルは特徴マップでみると14×14で高解像度であり、画像の狭範囲を畳み込んでいるため画像局部の詳細情報を含む。一方、深層特徴ベクトルは浅層特徴ベクトルよりも高次元の特徴ベクトルを含む。
【0036】
特徴抽出部510は、VGG16やResNet-34等のResNet-18以外の多数の重みパラメータを有するディープラーニングネットワークでもよく、特徴ベクトルの次元も512次元と256次元以外でもよい。また、GAP2に入力される特徴マップは、CONV3やCONV2等のCONV4以外でもよい。また、ここでは特徴抽出部510は2つの特徴ベクトルを出力するとしているが、1つまたは3つ以上の特徴ベクトルを出力してもよい。ここでは、浅層特徴ベクトルとしてCONV4の階層の出力する特徴マップを利用しているが、例えば、どの階層の特徴マップを利用するかは、初期セッションで決定してもよい。例えば、初期セッションで、浅層特徴ベクトルとしてCONV1からCONV4の全てを学習させて精度を計測し、最適な分類結果を得られる階層の出力を浅層特徴ベクトルとして選択する。
【0037】
特徴抽出部510のGAP1から出力された深層特徴ベクトルは、深層特徴類似度算出部532aに入力される。
【0038】
特徴抽出部510のGAP2から出力された浅層特徴ベクトルは、浅層特徴類似度算出部532bに入力される。
【0039】
深層特徴類似度算出部532aと浅層特徴類似度算出部532bの構成は同じであるから、これらを総称して特徴類似度算出部532として説明する。
【0040】
特徴類似度算出部532は、コサイン類似度を導出するための線形層(全結合層)の重み行列を有する。重み行列は、(D×NC)次元の重みを有する。ここでDは線形層に入力される特徴ベクトルと同じ次元数の重みベクトルである。深層特徴類似度算出部の場合はD=512であり、深層特徴類似度算出部の場合はD=256である。また、NCはクラス数である。ここでは、NCは基本クラスと追加クラスの合計である100とする。NCは基本クラスと追加クラスの合計以上でもよい。
【0041】
入力される特徴ベクトルは正規化され、正規化された特徴ベクトルが線形層に入力される。この時、線形層の重みベクトルも正規化される。その結果、特徴ベクトルと分類する各クラスの重みベクトルとのNC次元のコサイン類似度が導出される。特徴ベクトルを正規化してコサイン類似度を算出することで、クラス内分散を抑制して分類精度を向上させることができる。
【0042】
深層特徴類似度算出部532aは、入力された深層特徴ベクトルと各クラスの深層重みベクトルから深層コサイン類似度を算出して、深層類似度スケーリング部540aに出力する(S511a)。
【0043】
深層類似度スケーリング部540aは、入力された深層コサイン類似度を深層学習パラメータでα倍にスケーリングして、深層コサイン類似度を出力する(S512a)。
【0044】
浅層特徴類似度算出部532bは、入力された浅層特徴ベクトルと各クラスの浅層重みベクトルから浅層コサイン類似度を算出して、浅層類似度スケーリング部540bに出力する(S511b)。
【0045】
浅層類似度スケーリング部540bは、入力された浅層コサイン類似度を浅層学習パラメータでα倍にスケーリングして、浅層コサイン類似度を出力する(S512b)。
【0046】
ここでは、深層学習パラメータと浅層学習パラメータは同じ値αを用いてスケーリングしているが、異なる値であるα1とα2でスケーリングとしてもよい。
【0047】
深層損失演算部552aは、深層コサイン類似度と入力画像の正解ラベル(正解クラス)との損失である深層クロスエントロピー損失を算出する(S513a)。
【0048】
浅層損失演算部552bは、浅層コサイン類似度と入力画像の正解ラベル(正解クラス)との損失である浅層クロスエントロピー損失を算出する(S513b)。
【0049】
損失重み付け加算部554は、深層クロスエントロピー損失Ldと浅層クロスエントロピー損失Lsを重み付け加算して合算クロスエントロピー損失Lを算出する(S514)。ここで、λは0から1までの所定値とし、例えば0.2とする。ここでは、λとして0.2を利用しているが、例えば、0から1までのいずれの値を利用するかは、初期セッションで決定してもよい。例えば、初期セッションで、λとして0から1までの0.05刻みの全ての値を学習させて精度を計測し、最適な分類結果を得られる値をλとして選択することもできる。このような構成であれば、初期セッションはオフライン処理で行い、追加セッションをオンライン処理で行ってもよい。
L=(1-λ)*Ld+λ*Ls
【0050】
最適化部556は、合算クロスエントロピー損失を最小化するように確率的勾配降下法(SGD)やAdam等の最適化手法を用いて特徴抽出部510の畳み込み層の重みパラメータと特徴類似度算出部532の重み行列を逆伝搬で最適化する(S515)。なお、特徴類似度算出部532は実質的に分類部530である。
【0051】
学習(エポック)が終了すると、平均深層特徴算出部520aは、平均深層特徴行列を算出し、平均浅層特徴算出部520bは、平均浅層特徴行列を算出する(S516)。
【0052】
平均深層特徴算出部520aは、深層特徴類似度算出部532aの重み行列を平均深層特徴行列で置換する(S517a)。
【0053】
平均浅層特徴算出部520bは、浅層特徴類似度算出部532bの重み行列を平均浅層特徴行列で置換する(S517b)。
【0054】
図6は、平均深層特徴行列と平均浅層特徴行列の算出方法を説明するフローチャートである。平均深層特徴算出部520aと平均浅層特徴算出部520bによる平均深層特徴行列と平均浅層特徴行列の算出方法を説明する。
【0055】
基本クラスのクラス数をここではKとする。c=1,2,…,Kとして、クラスごとに平均深層特徴ベクトルと平均浅層特徴ベクトルを算出する。基本訓練データセットに含まれるあるクラスcの全ての画像データを特徴抽出部510に入力し、全ての画像の深層特徴ベクトルと全ての画像の浅層特徴ベクトルを算出して、算出した全ての画像の深層特徴ベクトルと全ての画像の浅層特徴ベクトルを得る(S520)。
【0056】
あるクラスcについての全ての深層特徴ベクトルを平均して平均深層特徴ベクトルを得る(S521a)。
【0057】
あるクラスcについての全ての浅層特徴ベクトルを平均して平均浅層特徴ベクトルを得る(S521b)。
【0058】
全てのクラスの平均深層特徴ベクトルをまとめて平均深層特徴行列を得る(S522a)。
【0059】
全てのクラスの平均浅層特徴ベクトルをまとめて平均浅層特徴行列を得る(S522b)。
【0060】
ここでは、全てのクラスの平均深層特徴ベクトルをまとめて(D×NC)次元の平均深層特徴行列とし、深層特徴類似度算出部532aの重み行列を平均深層特徴行列に置換した。また、全てのクラスの平均浅層特徴ベクトルをまとめて平均浅層特徴行列とし、浅層特徴類似度算出部532bの重み行列を平均浅層特徴行列に置換した。
【0061】
これに限定されず、一部のクラスについて深層特徴類似度算出部の重み行列を平均深層特徴ベクトルに置換してもよい。同様に、一部のクラスについて浅層特徴類似度算出部の重み行列を平均浅層特徴ベクトルに置換してもよい。
【0062】
このように画像全体と画像の一部領域とを考慮して学習された特徴抽出部510を用いて得られた平均深層特徴行列と平均浅層特徴行列をそれぞれ深層特徴類似度算出部532aの重み行列と浅層特徴類似度算出部532bの重み行列として用いることで、バッチサイズなど学習プロセスに依存しない分類器を得ることができる。そして、平均深層特徴行列と平均浅層特徴行列の算出は、データ量に依存せず、少数データにもビッグデータにも利用できる。
【0063】
図7Aは、画像分類学習装置500の追加クラスの学習に関係する構成の一例である。
図8Aは、追加データセットを用いた追加クラスの学習の一例について画像分類学習装置500の詳細な動作を説明するフローチャートである。
図7Aおよび
図8Aを参照して画像分類学習装置500の追加クラスの学習の動作を詳しく説明する。
【0064】
特徴抽出部510は、基本クラスの学習時に得られた特徴抽出部510と同じ構成で同じパラメータを有する。
【0065】
ここでは追加クラスのクラス数をLとし、追加クラスc(c=1,2,・・・L)はN個(i=1,2,…,N)の画像データがあるとする。追加クラスcのN個の画像データが特徴抽出部510に入力されると、画像データごとに深層特徴ベクトルと浅層特徴ベクトルが抽出され、それぞれ平均深層特徴算出部520aと平均浅層特徴算出部520bに出力される(S530)。
【0066】
平均深層特徴算出部520aは、特徴抽出部510から出力された深層特徴ベクトルを平均して平均深層特徴ベクトルを算出する(S530-1a)。平均浅層特徴算出部520bは、特徴抽出部510から出力された浅層特徴ベクトルを平均して平均浅層特徴ベクトルを算出する(S530-1b)。
【0067】
平均深層特徴算出部520aは、追加クラスの平均深層特徴ベクトルをまとめて平均深層特徴行列を得て、平均浅層特徴算出部520bは、追加クラスの平均浅層特徴ベクトルをまとめて平均浅層特徴行列を得る(S531)。
【0068】
深層特徴類似度算出部532aの追加クラスの重み行列を平均深層特徴行列で置換する(S532a)。
【0069】
浅層特徴類似度算出部532bの追加クラスの重み行列を平均浅層特徴行列で置換する(S532b)。
【0070】
以上のように、追加クラスの画像データを学習する必要はなく、追加クラスの画像データの平均深層特徴ベクトルと平均浅層特徴ベクトルを算出して重み行列として置換するだけで追加学習に対応した分類部を生成することができる。勿論、平均深層特徴ベクトルを算出する追加クラスの画像データとして、必ずしも基本クラスや追加クラスの全ての画像データを利用する必要はなく、一部の画像データだけを利用してもよい。
【0071】
このようにして生成した深層特徴類似度算出部532aの重み行列と浅層特徴類似度算出部532bの重み行列によって、
図9の画像分類装置580や
図11の画像追加分類装置590の深層特徴類似度算出部532aの重み行列と浅層特徴類似度算出部532bの重み行列を置換してもよい。
【0072】
ここでは、特徴抽出部510は、基本クラスを学習するため、基本クラスの学習時に得られた特徴抽出部510と同じ構成で同じパラメータを有する特徴抽出部510を用いた。基本クラスを分類する必要がない場合には、基本クラスの学習時に得られた特徴抽出部510と同じ構成で同じパラメータである必要はなく、学習済みの特徴抽出部510であれば、複数階層を有していればどのようなパラメータであってもよい。
【0073】
図7Bは、画像分類学習装置500の追加クラスの学習に関係する構成の別の例である。
図8Bは、追加データセットを用いた追加クラスの学習の別の例について画像分類学習装置500の詳細な動作を説明するフローチャートである。
図7Bおよび
図8Bを参照して画像分類学習装置500の追加クラスの学習の動作の別の例を詳しく説明する。
【0074】
特徴抽出部510は、基本クラスの学習時に得られた特徴抽出部510と同じ構成で同じパラメータを有する。
【0075】
N個(i=1,2,…,N)の追加クラスの画像データが特徴抽出部510に入力され、特徴抽出部510により画像データごとに深層特徴ベクトルと浅層特徴ベクトルが抽出される(S530)。
【0076】
追加クラスの平均深層特徴ベクトルをまとめて平均深層特徴行列を得て、追加クラスの平均浅層特徴ベクトルをまとめて平均浅層特徴行列を得る(S531)。
【0077】
深層特徴類似度算出部532aの追加クラスの重み行列をS531で得た平均深層特徴行列で置換する(S532a)。
【0078】
浅層特徴類似度算出部532bの追加クラスの重み行列をS531で得た平均浅層特徴行列で置換する(S532b)。
【0079】
N個(i=1,2,…,N)の追加クラスの画像データがM回(e=1,2,…,M)のエポック数を繰り返して特徴抽出部510に入力される。エポック数は30とする。
【0080】
深層特徴類似度算出部532aは、入力された深層特徴ベクトルと各クラスの平均深層特徴ベクトルから深層コサイン類似度を算出して、深層類似度スケーリング部540aに出力する(S533a)。
【0081】
浅層特徴類似度算出部532bは、入力された浅層特徴ベクトルと各クラスの平均浅層特徴ベクトルから浅層コサイン類似度を算出して、浅層類似度スケーリング部540bに出力する(S533b)。
【0082】
深層類似度スケーリング部540aは、入力された深層コサイン類似度を深層学習パラメータでα倍にスケーリングして、深層コサイン類似度を出力する(S534a)。
【0083】
浅層類似度スケーリング部540bは、入力された浅層コサイン類似度を浅層学習パラメータでα倍にスケーリングして、浅層コサイン類似度を出力する(S534b)。
【0084】
深層損失演算部552aは、深層コサイン類似度と入力画像の正解ラベル(正解クラス)との損失である深層クロスエントロピー損失を算出する(S535a)。
【0085】
浅層損失演算部552bは、浅層コサイン類似度と入力画像の正解ラベル(正解クラス)との損失である浅層クロスエントロピー損失を算出する(S535b)。
【0086】
損失重み付け加算部554は、深層クロスエントロピー損失Ldと浅層クロスエントロピー損失Lsを重み付け加算して合算クロスエントロピー損失Lを算出する(S536)。ここで、λは0から1までの所定値とし、例えば0.2とする。
L=(1-λ)*Ld+λ*Ls
【0087】
最適化部556は、合算クロスエントロピー損失を最小化するように確率的勾配降下法(SGD)やAdam等の最適化手法を用いて特徴類似度算出部532の重み行列を逆伝搬で最適化する(S537)。
【0088】
ここで、追加クラスの学習で使用する学習率は基本クラスの学習で使用する学習率よりも小さく設定する。また、追加クラスの学習で使用するエポック数は基本クラスの学習で使用するエポック数よりも小さく設定する。
【0089】
以上のように、追加クラスの画像データの平均特徴ベクトルを算出して特徴類似度算出部532の重み行列として置換した後にファインチューニング(調整学習)するだけで追加学習に対応した分類部530を生成することができる。これは特徴類似度算出部532の重み行列の初期値を平均特徴ベクトルとして、学習することと同じである。これにより、平均特徴ベクトルよりもより適切な重みベクトルを得られる可能性がある。
【0090】
ここでは、深層特徴類似度算出部532aの追加クラスの重み行列と浅層特徴類似度算出部532bの追加クラスの重み行列の両方について、平均特徴ベクトルに置換した後に、ファインチューニングするとしたが、いずれか一方だけをファインチューニングすることもできる。
【0091】
また、ここでは、深層特徴類似度算出部532aの追加クラスの重み行列と浅層特徴類似度算出部532bの追加クラスの重み行列の両方について、平均特徴ベクトルに置換したが、いずれか一方だけを平均特徴ベクトルに置換することもできる。平均特徴ベクトルに置換しない場合には、例えば、追加クラスの重み行列をランダム値で初期化する。
【0092】
以上のように、深層特徴類似度算出部532aと浅層特徴類似度算出部532bの学習特性を変えることで、深層特徴類似度算出部532aと浅層特徴類似度算出部532bの学習傾向を変えることができ、それらを組み合わせた時に精度が向上する可能性が増加し、精度を向上させることができる。
【0093】
このようにして生成した深層特徴類似度算出部532aの重み行列と浅層特徴類似度算出部532bの重み行列によって、
図9の画像分類装置580や
図11の画像追加分類装置590の深層特徴類似度算出部532aの重み行列と浅層特徴類似度算出部532bの重み行列を置換してもよい。
【0094】
ここでは、特徴抽出部510は、基本クラスを学習するため、基本クラスの学習時に得られた特徴抽出部510と同じ構成で同じパラメータを有する特徴抽出部510を用いた。基本クラスを分類する必要がない場合には、基本クラスの学習時に得られた特徴抽出部510と同じ構成で同じパラメータである必要はなく、学習済みの特徴抽出部510であれば、複数階層を有していればどのようなパラメータであってもよい。
【0095】
以上のように、深層(低解像度)と浅層(高解像度)という複数の解像度について平均特徴ベクトルを重みベクトルとして有することで、低解像度の平均特徴ベクトルでは画像の特徴が表現できないような画像についても、高解像度の平均特徴ベクトルを用いることで画像の特徴を表現することができる。
【0096】
図7Cは、画像分類学習装置500の追加クラスの学習に関係する構成のさらに別の例である。
図8Cは、追加データセットを用いた追加クラスの学習のさらに別の例について画像分類学習装置500の詳細な動作を説明するフローチャートである。
図7Cおよび
図8Cを参照して画像分類学習装置500の追加クラスの学習の動作のさらに別の例を説明する。
【0097】
ここでは、深層(低解像度)と浅層(高解像度)という複数の解像度の平均特徴ベクトルを利用するのではなく、同一の解像度の複数のグループの平均特徴ベクトルを利用する。この場合、あるクラスの画像を複数のグループに分けて、グループ毎に平均特徴ベクトルを算出して複数の平均特徴ベクトルを得る。あるクラスの画像を複数のグループに分ける場合には、ランダムに分けてもよいが、主成分分析などを用いて所定の特性に基づいて分類することで、所定の特性に応じた平均特徴ベクトルを算出することができる。
【0098】
特徴抽出部510は、基本クラスの学習時に得られた特徴抽出部510と同じ構成で同じパラメータを有する。
【0099】
ここでは2つのグループに分けた場合について説明する。2つのグループに分けられたN個(i=1,2,…,N)の追加クラスの画像データが特徴抽出部510に入力され、特徴抽出部510により画像データごとに第1深層特徴ベクトルと第2深層特徴ベクトルが抽出される(S540)。
【0100】
第1グループの追加クラスの第1平均深層特徴ベクトルをまとめて第1平均深層特徴行列を得て、第2グループの追加クラスの第2平均深層特徴ベクトルをまとめて第2平均深層特徴行列を得る(S541)。
【0101】
第1深層特徴類似度算出部532aの追加クラスの重み行列を第1平均深層特徴行列で置換する(S542a)。
【0102】
第2深層特徴類似度算出部533aの追加クラスの重み行列を第2平均深層特徴行列で置換する(S542b)。
【0103】
2つのグループに分けられたN個(i=1,2,…,N)の追加クラスの画像データがM回(e=1,2,…,M)のエポック数を繰り返して特徴抽出部510に入力される。エポック数は30とする。
【0104】
第1深層特徴類似度算出部532aは、入力された第1深層特徴ベクトルと各クラスの第1平均深層特徴ベクトルから第1深層コサイン類似度を算出して、第1深層類似度スケーリング部540aに出力する(S543a)。
【0105】
第2深層特徴類似度算出部533aは、入力された第2深層特徴ベクトルと各クラスの第2平均深層特徴ベクトルから第2深層コサイン類似度を算出して、第2深層類似度スケーリング部541aに出力する(S543b)。
【0106】
第1深層類似度スケーリング部540aは、入力された第1深層コサイン類似度を第1深層学習パラメータでα倍にスケーリングして、第1深層コサイン類似度を出力する(S544a)。
【0107】
第2深層類似度スケーリング部541aは、入力された第2深層コサイン類似度を第2深層学習パラメータでα倍にスケーリングして、第2深層コサイン類似度を出力する(S544b)。
【0108】
第1深層損失演算部552aは、第1深層コサイン類似度と入力画像の正解ラベル(正解クラス)との損失である第1深層クロスエントロピー損失を算出する(S545a)。
【0109】
第2深層損失演算部553aは、第2深層コサイン類似度と入力画像の正解ラベル(正解クラス)との損失である第2深層クロスエントロピー損失を算出する(S545b)。
【0110】
損失重み付け加算部554は、第1深層クロスエントロピー損失Ld1と第2深層クロスエントロピー損失Ld2を重み付け加算して合算クロスエントロピー損失Lを算出する(S546)。ここで、λは0から1までの所定値とする。
L=(1-λ)*Ld1+λ*Ld2
【0111】
最適化部556は、合算クロスエントロピー損失を最小化するように確率的勾配降下法(SGD)やAdam等の最適化手法を用いて特徴類似度算出部532の重み行列を逆伝搬で最適化する(S547)。
【0112】
以上のように、複数のグループの平均特徴ベクトルを重みベクトルとして有することで、1つの平均特徴ベクトルでは画像の特徴が表現できないような画像についても、複数のグループの平均特徴ベクトルを用いることで画像の特徴を表現することができる。なお、ここでは特徴抽出部510は深層特徴ベクトルを抽出するとしたが、特徴抽出部510が浅層特徴ベクトルを抽出するとしてもよい。
【0113】
図9は、画像分類装置580の構成図である。
図9の画像分類装置580は画像分類学習装置500の分類に必要な構成要素で構成されている。
図10は、画像分類装置580の詳細な動作を説明するフローチャートである。
図9および
図10を参照して画像分類装置580の分類の動作を詳しく説明する。
【0114】
特徴抽出部510は、基本クラスの学習時に得られた特徴抽出部と同じ構成で同じパラメータを有する。
【0115】
深層特徴類似度算出部532aの重み行列の中の基本クラスの重み行列については、
図6で示した算出方法で算出された平均深層特徴行列で置換されているものとする。深層特徴類似度算出部532aの重み行列の中の追加クラスの重み行列は、
図7Aと
図8Aで示した算出方法で算出された平均深層特徴行列で置換されているものとする。浅層特徴類似度算出部532bの重み行列の中の基本クラスの重み行列については、
図6で示した算出方法で算出された平均浅層特徴行列で置換されているものとする。浅層特徴類似度算出部532bの重み行列の中の追加クラスの重み行列も同様に
図7Aと
図8Aで示した算出方法で算出された平均浅層特徴行列で置換されているものとする。
【0116】
入力画像を特徴抽出部510に入力すると、深層特徴ベクトルと浅層特徴ベクトルが抽出される(S550)。
【0117】
深層特徴類似度算出部532aは、入力された深層特徴ベクトルと平均深層特徴行列が持つ各クラスの深層重みベクトルから各クラスについて深層コサイン類似度を算出して、深層類似度スケーリング部540aに出力する(S551a)。
【0118】
浅層特徴類似度算出部532bは、入力された浅層特徴ベクトルと平均浅層特徴行列が持つ各クラスの浅層重みベクトルから各クラスについて浅層コサイン類似度を算出して、浅層類似度スケーリング部540bに出力する(S551b)。
【0119】
深層類似度スケーリング部540aは、入力された深層コサイン類似度を深層想起パラメータでβ倍にスケーリングして、各クラスの深層コサイン類似度を出力する(S552a)。
【0120】
浅層類似度スケーリング部540bは、入力された浅層コサイン類似度を想起浅層パラメータでγ倍にスケーリングして、各クラスの浅層コサイン類似度を出力する(S552b)。
【0121】
統合類似度算出部560は、深層コサイン類似度と浅層コサイン類似度を加算して各クラスの総コサイン類似度を算出する(S553)。
【0122】
統合類似度算出部560は、追加クラスの総コサイン類似度を重みづける(S554)。重み付けパラメータをwとする。追加クラスの精度を基本クラスの精度よりも相対的に高くしたければ、w>1.0とし、基本クラスの精度を追加クラスの精度よりも相対的に高くしたければ、w<1.0とする。基本クラスの精度と追加クラスの精度を同等にする場合には、w=1.0とする。
【0123】
ここで、学習時の深層学習パラメータと浅層学習パラメータは同一のパラメータαとし、分類時の深層想起パラメータβと浅層想起パラメータγは異なるパラメータとした。一般的に学習時には分類時よりも処理負荷が大きい。そのため、深層と浅層の調整を学習する時ではなく分類する時にする。勿論、α=β=γとしても良いし、α≠β=γ、α=γ≠β、やα≠β≠γとしても良い。処理効率の問題がなければ、深層学習パラメータと浅層学習パラメータを異なる値にして学習する時に調整してもよい。
【0124】
また、
図1、
図3、
図9において、浅層特徴類似度算出部532b、浅層類似度スケーリング部540b、浅層損失演算部552b、損失重み付け加算部554がない構成でもよい。この場合、深層学習パラメータと深層想起パラメータを異なる値α≠βに設定する。β=1となるようにαを設定することで、分類時のスケーリング処理を削減することができる。例えば、α=20、β=1のように学習パラメータαが想起パラメータβ以上になるように設定する。αを大きく設定するのは学習時にコサイン類似度の分解能を高めるためである。分類時には既に学習済みの深層コサイン類似度を用いるためスケーリングは必須ではなく、弱くスケーリングすることができる。
【0125】
分類決定部570は、各クラスの総コサイン類似度から最大の総コサイン類似度を有するクラスを選択する(S555)。
【0126】
図11は、画像追加分類装置590の構成図である。
図11の画像追加分類装置590は
図9の画像分類装置580に平均深層特徴行列と平均浅層特徴行列を得るための
図7Aの構成を追加した構成である。
図12は、画像追加分類装置590の詳細な動作を説明するフローチャートである。
図11および
図12を参照して画像追加分類装置520の追加クラスの分類の動作を詳しく説明する。
【0127】
特徴抽出部510は、基本クラスの学習時に得られた特徴抽出部510と同じ構成で同じパラメータを有する。
【0128】
追加学習セッションsをL回繰り返す(s=1,2,…,L)。
【0129】
N個(i=1,2,…,N)の追加クラスの画像データが特徴抽出部510に入力され、特徴抽出部510により画像データごとに深層特徴ベクトルと浅層特徴ベクトルが抽出される(S560)。
【0130】
追加クラスの平均深層特徴ベクトルをまとめて平均深層特徴行列を得て、追加クラスの平均浅層特徴ベクトルをまとめて平均浅層特徴行列を得る(S561)。
【0131】
深層特徴類似度算出部532aの追加クラスの重み行列を平均深層特徴行列で置換する(S562a)。
【0132】
浅層特徴類似度算出部532bの追加クラスの重み行列を平均浅層特徴行列で置換する(S562b)。
【0133】
入力画像を特徴抽出部510に入力すると、深層特徴ベクトルと浅層特徴ベクトルが抽出される(S563)。
【0134】
深層特徴類似度算出部532aは、入力された深層特徴ベクトルと各クラスの平均深層特徴ベクトルから各クラスについて深層コサイン類似度を算出して、深層類似度スケーリング部540aに出力する(S564a)。
【0135】
浅層特徴類似度算出部532bは、入力された浅層特徴ベクトルと各クラスの平均浅層特徴ベクトルから各クラスについて浅層コサイン類似度を算出して、浅層類似度スケーリング部540bに出力する(S564b)。
【0136】
深層類似度スケーリング部540aは、入力された深層コサイン類似度を深層想起パラメータでβ倍にスケーリングして、各クラスの深層コサイン類似度を出力する(S565a)。
【0137】
浅層類似度スケーリング部540bは、入力された浅層コサイン類似度を想起浅層パラメータでγ倍にスケーリングして、各クラスの浅層コサイン類似度を出力する(S565b)。
【0138】
統合類似度算出部560は、深層コサイン類似度と浅層コサイン類似度を加算して各クラスの総コサイン類似度を算出する(S566)。ここでは、深層コサイン類似度と浅層コサイン類似度を単純に加算するとしたが、算出方法はこれに限定されない。例えば、重み付け加算や乗算等を行ってもよい。
【0139】
統合類似度算出部560は、追加クラスの総コサイン類似度を重みづける(S567)。重み付けパラメータをwとする。
【0140】
分類決定部570は、各クラスの総コサイン類似度から最大の総コサイン類似度を有するクラスを選択する(S568)。ここでは、総コサイン類似度から最大の総コサイン類似度を有するクラスを選択するとしたが、選択方法はこれに限定されない。例えば、上位の複数個を選択する等を行ってもよい。
【0141】
これにより、非常に処理の重い損失計算や最適化処理が不要でありながら、追加クラスを分類することができる。
図11では、基本クラスの内容は不変であるとして、追加クラスについて平均深層特徴行列と平均浅層特徴行列を算出する例を示したが、基本クラスの内容に変更がある場合には、基本クラスについて平均深層特徴行列と平均浅層特徴行列を算出してもよい。
【0142】
なお、深層類似度スケーリング部540aと浅層類似度スケーリング部540b、第1深層類似度スケーリング部540aと第2深層類似度スケーリング部541aは、それぞれの実施の形態において必須ではない。深層類似度スケーリング部540a、浅層類似度スケーリング部540bのいずれか一方がない構成でもよく、両方がない構成でもよい。第1深層類似度スケーリング部540a、第2深層類似度スケーリング部541aのいずれか一方がない構成でもよく、両方がない構成でもよい。
【0143】
すなわち、深層類似度スケーリング部540aがない場合、深層特徴類似度算出部532aが算出した深層コサイン類似度は、深層損失演算部552a、または統合類似度算出部560に出力される。第1深層類似度スケーリング部540aがない場合、第1深層特徴類似度算出部532aが算出した第1深層コサイン類似度は、第1深層損失演算部552aに出力される。浅層類似度スケーリング部540bがない場合、浅層特徴類似度算出部532bが算出した浅層コサイン類似度は、浅層損失演算部552b、または統合類似度算出部560に出力される。第2深層類似度スケーリング部541aがない場合、第2深層特徴類似度算出部533aが算出した第2深層コサイン類似度は、第2深層損失演算部553aに出力される。
【0144】
以上説明した画像分類学習装置500、画像分類装置580、画像追加分類装置590の各種の処理は、CPUやメモリ等のハードウェアを用いた装置として実現することができるのは勿論のこと、ROM(リード・オンリ・メモリ)やフラッシュメモリ等に記憶されているファームウェアや、コンピュータ等のソフトウェアによっても実現することができる。そのファームウェアプログラム、ソフトウェアプログラムをコンピュータ等で読み取り可能な記録媒体に記録して提供することも、有線あるいは無線のネットワークを通してサーバと送受信することも、地上波あるいは衛星ディジタル放送のデータ放送として送受信することも可能である。
【0145】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【符号の説明】
【0146】
500 画像分類学習装置、 510 特徴抽出部、 520a 平均深層特徴算出部、 520b 平均浅層特徴算出部、 530 分類部、 532a 深層特徴類似度算出部、 532b 浅層特徴類似度算出部、 540a 深層類似度スケーリング部、 540b 浅層類似度スケーリング部、 550 学習部、 552a 深層損失演算部、 552b 浅層損失演算部、 554 損失重み付け加算部、 556 最適化部、 560 統合類似度算出部、 570 分類決定部、 580 画像分類装置、 590 画像追加分類装置。