(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-17
(45)【発行日】2023-04-25
(54)【発明の名称】検出方法、検出プログラム及び検出装置
(51)【国際特許分類】
G06T 7/00 20170101AFI20230418BHJP
G06N 3/02 20060101ALI20230418BHJP
【FI】
G06T7/00 350B
G06N3/02
(21)【出願番号】P 2021553211
(86)(22)【出願日】2019-10-23
(86)【国際出願番号】 JP2019041580
(87)【国際公開番号】W WO2021079441
(87)【国際公開日】2021-04-29
【審査請求日】2022-02-08
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】横田 泰斗
【審査官】松浦 功
(56)【参考文献】
【文献】特開2019-061658(JP,A)
【文献】特開2019-095910(JP,A)
【文献】足立一樹 外1名,注目領域に基づいたCNNの特徴マップに対する正則化,電子情報通信学会論文誌D,電子情報通信学会,2019年03月01日,Vol. J102-D, No. 3,pp. 185-193
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
G06N 3/02
G06V 10/00 -20/90
(57)【特許請求の範囲】
【請求項1】
深層学習モデルに第1の画像を入力して得られたクラスごとのスコアのうち、第1のクラスのスコアの計算に寄与した領域を前記第1の画像の中から特定し、
前記第1の画像の中の、前記特定する処理によって特定された領域以外の領域をマスクした第2の画像を生成し、
前記深層学習モデルに前記第2の画像を入力して得られるスコアを取得する
処理をコンピュータが実行することを特徴とする検出方法。
【請求項2】
前記第1のクラスと異なるクラスであって、前記取得する処理によって取得されたスコアが第1の閾値以上である第2のクラスを検出する
処理をさらに実行することを特徴とする請求項1に記載の検出方法。
【請求項3】
前記生成する処理は、前記特定する処理によって特定された領域以外の領域の画素の画素値を同一にすることで、当該領域をマスクすることを特徴とする請求項1に記載の検出方法。
【請求項4】
前記特定する処理は、Grad-CAMによって得られた寄与度を基に、前記第1のクラスのスコアの計算に寄与した領域を特定することを特徴とする請求項1に記載の検出方法。
【請求項5】
前記特定する処理は、前記深層学習モデルに前記第1の画像を入力して得られたスコアが第2の閾値以上である第1のクラスのスコアの計算に寄与した領域を特定することを特徴とする請求項1に記載の検出方法。
【請求項6】
深層学習モデルに第1の画像を入力して得られたクラスごとのスコアのうち、第1のクラスのスコアの計算に寄与した領域を前記第1の画像の中から特定し、
前記第1の画像の中の、前記特定する処理によって特定された領域以外の領域をマスクした第2の画像を生成し、
前記深層学習モデルに前記第2の画像を入力して得られるスコアを取得する
処理をコンピュータに実行させることを特徴とする検出プログラム。
【請求項7】
深層学習モデルに第1の画像を入力して得られたクラスごとのスコアのうち、第1のクラスのスコアの計算に寄与した領域を前記第1の画像の中から特定する特定部と、
前記第1の画像の中の、前記特定部によって特定された領域以外の領域をマスクした第2の画像を生成する生成部と、
前記深層学習モデルに前記第2の画像を入力して得られるスコアを取得する取得部と、
を有することを特徴とする検出装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検出方法、検出プログラム及び検出装置に関する。
【背景技術】
【0002】
近年、企業等で利用されている情報システムに対して、画像データの判定及び分類機能等への深層学習モデルの導入が進んでいる。深層学習モデルは、開発時に学習させた教師データの通りに判定及び分類を行うものであるため、教師データに偏りがあった場合、ユーザが意図しない結果を出力する恐れがある。これに対し、教師データの偏りを検出するための手法が提案されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】R. R. Selvaraju, M. Cogswell, A. Das, R. Vedantam, D. Parikh, and D. Batra, "Grad-CAM:Visual Explanations from Deep Networks via Gradient-based Localization," in Proc. IEEE Int. Conf. on Computer Vision (ICCV), 2017. (https://arxiv.org/abs/1610.02391)
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の手法には、教師データの偏りの検出に膨大な工数がかかる場合があるという問題がある。例えば、従来のGrad-CAMは、あるクラスの分類に寄与した画像中の領域及び寄与度をヒートマップで出力する。このとき、ユーザは、出力されたヒートマップを手動で確認し、寄与度の高い領域がユーザの意図した通りのものであるかを判断する。このため、深層学習モデルが例えば1,000クラスの分類を行うものである場合、ユーザは、1枚の画像に対して1,000枚のヒートマップを手動で確認することになり、工数が膨大になる。
【0005】
1つの側面では、少ない工数で教師データの偏りを検出することを目的とする。
【課題を解決するための手段】
【0006】
1つの態様において、コンピュータは、深層学習モデルに第1の画像を入力して得られたクラスごとのスコアのうち、第1のクラスのスコアの計算に寄与した領域を第1の画像の中から特定する処理を実行する。コンピュータは、第1の画像の中の、特定する処理によって特定された領域以外の領域をマスクした第2の画像を生成する処理を実行する。コンピュータは、深層学習モデルに第2の画像を入力して得られるスコアを取得する処理を実行する。
【発明の効果】
【0007】
1つの側面では、少ない工数で教師データの偏りを検出することができる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、実施例1の検出装置の構成例を示す図である。
【
図2】
図2は、データバイアスを説明するための図である。
【
図3】
図3は、マスク画像を生成する方法を説明するための図である。
【
図4】
図4は、ヒートマップの一例を示す図である。
【
図5】
図5は、データバイアスを検出する方法を説明するための図である。
【
図7】
図7は、検出装置の処理の流れを示すフローチャートである。
【
図8】
図8は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【0009】
以下に、本発明に係る検出方法、検出プログラム及び検出装置の実施例を図面に基づいて詳細に説明する。なお、この実施例により本発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例1】
【0010】
[機能構成]
図1を用いて、実施例に係る検出装置の構成を説明する。
図1は、実施例1の検出装置の構成例を示す図である。
図1に示すように、検出装置10は、通信部11、入力部12、出力部13、記憶部14及び制御部15を有する。
【0011】
通信部11は、他の装置との間でデータの通信を行うためのインタフェースである。例えば、通信部11は、NIC(Network Interface Card)であり、インターネットを介してデータの通信を行うものであってもよい。
【0012】
入力部12は、データの入力を受け付けるためのインタフェースである。例えば、入力部12は、キーボードやマウス等の入力装置等の入力装置であってもよい。また、出力部13は、データを出力するためのインタフェースである。出力部13は、ディスプレイやスピーカ等の出力装置であってもよい。また、入力部12及び出力部13は、USBメモリ等の外部記憶装置との間でデータの入出力を行うものであってもよい。
【0013】
記憶部14は、データや制御部15が実行するプログラム等を記憶する記憶装置の一例であり、例えばハードディスクやメモリ等である。記憶部14は、モデル情報141及び教師データ142を記憶する。
【0014】
モデル情報141は、モデルを構築するためのパラメータ等の情報である。本実施例において、モデルは、画像のクラス分類を行う深層学習(Deep Learning)モデルであるものとする。深層学習モデルは、入力された画像の特徴を基にあらかじめ定められたクラスごとのスコアを計算する。モデル情報141は、例えばDNN(Deep Neural Network)の各層の重み及びバイアスである。
【0015】
教師データ142は、深層学習モデルの学習に用いられた画像の集合である。また、教師データ142に含まれる画像には、学習のためのラベルが付与されているものとする。画像には、当該画像を人が見て認識できたものに対応するラベルが付与されていてもよい。例えば、人が画像を見て猫が写っていることを認識できた場合、当該画像には「猫」というラベルが付与される。
【0016】
制御部15は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等によって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部15は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されるようにしてもよい。制御部15は、計算部151、特定部152、生成部153、取得部154、検出部155及び通知部156を有する。
【0017】
以降、検出装置10による処理の流れに沿って、制御部15の各部の動作を説明する。検出装置10は、入力画像からマスク画像を生成する処理、及びマスク画像を基に教師データに偏りがあるクラスを検出する処理を行う。また、教師データの偏りをデータバイアスと呼ぶ場合がある。
【0018】
図2は、データバイアスを説明するための図である。
図2の画像142aは、教師データ142に含まれる画像の一例である。画像142aには、平均台と2匹の猫が写っている。また、画像142aには、ラベル「平均台」が付与されている。また、深層学習モデルの分類対象のクラスには、「平均台」及び「猫」の両方が含まれているものとする。
【0019】
ここで、深層学習モデルの学習時には、画像142aのラベルが「平均台」であるという情報が与えられるに過ぎない。このため、深層学習モデルは、画像142aの猫が写っている領域の特徴をも平均台の特徴として認識することになる。このような場合、「平均台」クラスは、データバイアスがあるクラスということができる。
【0020】
(マスク画像を生成する処理)
図3は、マスク画像を生成する方法を説明するための図である。まず、計算部151は、入力画像201を深層学習モデルに入力し、スコアの計算を行う(ショット1)。入力画像201には、犬と猫が写っている。一方、入力画像201には平均台は写っていない。なお、入力画像201は、第1の画像の一例である。
【0021】
ここで、深層学習モデルの学習が、
図2の画像142aを使って行われている場合、「平均台」クラスにデータバイアスが生じていることが考えられる。その場合、深層学習モデルは、入力画像201の中の猫が写っている領域の特徴から、「平均台」クラスのスコアを大きく計算することが考えられる。逆に、このとき、深層学習モデルは、「猫」クラスのスコアを、ユーザの想定よりも小さく計算することになる。このように、データバイアスは、深層学習モデルの機能の劣化を生じさせる。
【0022】
特定部152は、深層学習モデルに入力画像201を入力して得られたクラスごとのスコアのうち、第1のクラスのスコアの計算に寄与した領域を入力画像201の中から特定する。具体的には、検出部155は、第1のクラスと異なるクラスであって、取得部154によって取得されたスコアが第1の閾値以上である第2のクラスを検出する。
【0023】
図3の例では、特定部152は、深層学習モデルに入力画像201を入力して得られたクラスごとのスコアが例えば0.3以上である「犬」クラス及び「猫」クラスのスコアの計算に寄与した領域を特定する。0.3は、第2の閾値の一例である。また、「犬」クラス及び「猫」クラスのスコアは、第1のクラスの一例である。また、以降の説明では、第1のクラスを予測クラスと呼ぶ場合がある。
【0024】
ここで、特定部152は、Grad-CAMによって得られた寄与度を基に、各クラスのスコアの計算に寄与した領域を特定することができる(例えば、非特許文献1を参照)。特定部152は、Grad-CAMを実行する場合、まず、対象クラスの損失(Loss)を計算し、最も出力層に近い畳込層に逆伝播を行うことで各チャンネル重みを計算する。次に、特定部152は、畳込層の順伝播の出力に計算したチャンネルごとの重みをかけて、対象クラスの予測に寄与した領域を特定する。
【0025】
Grad-CAMによって特定された領域は、
図4のようなヒートマップによって表される。
図4は、ヒートマップの一例を示す図である。
図4に示すように、「犬」クラスのスコアと「猫」クラスのスコアは、それぞれ犬が写った領域の特徴及び猫が写った領域の特徴を基に計算されている。一方で、猫が写った領域の特徴からは、「猫」クラスだけでなく「平均台」クラスのスコアが計算されている。
【0026】
図3に戻り、生成部153は、入力画像201の中の、特定部152によって特定された領域以外の領域をマスクしたマスク画像を生成する。言い換えると、生成部153は、入力画像201の中の、特定部152によって特定された第1の領域以外の第2の領域をさらに特定し、第2の領域をマスクしたマスク画像を生成する。生成部153は、「犬」クラスのマスク画像202a及び「猫」クラスのマスク画像202bを生成する。
【0027】
また、例えば、生成部153は、特定部152によって特定された領域以外の領域の画素の画素値を同一にすることで、当該領域をマスクすることができる。例えば、生成部153は、マスクをする領域の画素を黒又は白一色にすることでマスク処理を行う。
【0028】
(データバイアスがあるクラスを検出する処理)
図5を用いて、「猫」クラスに影響を与えているデータバイアスがあるクラスを検出する方法を説明する。
図5は、データバイアスを検出する方法を説明するための図である。計算部151は、「猫」クラスのマスク画像202bを深層学習モデルに入力し、スコアの計算を行う(ショット2)。取得部154は、深層学習モデルにマスク画像を入力して得られるスコアを取得する。
【0029】
検出部155は、第1のクラスと異なるクラスであって、取得部154によって取得されたスコアが第1の閾値以上である第2のクラスを検出する。
図5の例では、検出部155は、「猫」クラスと異なるクラスであって、取得部154によって取得されたスコアが例えば0.1以上である「平均台」クラスを、データバイアスがあるクラスとして検出する。0.1は、第1の閾値の一例である。
【0030】
通知部156は、出力部13を介して、検出部155によって検出されたデータバイアスがあるクラスを通知する。通知部156は、
図6に示すように、各クラスのマスク画像とともに検出結果を示す画面を出力部13に表示させてもよい。
図6は、検出結果の一例を示す図である。
図6の画面には、データバイアスがある「平均台」クラスによって、「猫」クラスの予測精度が低下していることが示されている。また、
図6の画面には、「犬」クラスについては、データバイアスによる予測精度の低下が生じていないことが示されている。
【0031】
また、通知部156は、データバイアスがあるクラスの画像を教師データ142の中から抽出し、抽出した画像をユーザに提示してもよい。例えば、検出部155が、「平均台」クラスをデータバイアスがあるクラスとして検出した場合、通知部156は、ラベル「平均台」が付与された画像142aをユーザに提示する。
【0032】
ユーザは、提示された画像142aを教師データ142から除外し、「平均台」ラベルを付与した別の画像を教師データ142に適宜追加し、深層学習モデルの再学習を行うことができる。
【0033】
[処理の流れ]
図7を用いて、検出装置10の処理の流れを説明する。
図7は、検出装置の処理の流れを示すフローチャートである。
図7に示すように、まず、検出装置10は、深層学習モデルに画像を入力し、クラスごとのスコアを計算する(ステップS101)。次に、検出装置10は、クラスのうちスコアが第1の閾値以上である予測クラスについて、予測に寄与した領域を特定する(ステップS102)。そして、検出装置10は、特定した領域以外の領域に対しマスク処理を行ったマスク画像を生成する(ステップS103)。
【0034】
さらに、検出装置10は、深層学習モデルにマスク画像を入力し、クラスごとのスコアを計算する(ステップS104)。ここで、検出装置10は、予測クラス以外のクラスのスコアが第2の閾値以上であるか否かを判定する(ステップS105)。検出装置10は、スコアが第2の閾値以上であるクラスが存在する場合(ステップS105、Yes)、検出結果を通知する(ステップS106)。一方、検出装置10は、スコアが第2の閾値以上であるクラスが存在しない場合(ステップS105、No)、検出結果を通知することなく処理を終了する。
【0035】
[効果]
これまで説明してきたように、特定部152は、深層学習モデルに入力画像201を入力して得られたクラスごとのスコアのうち、第1のクラスのスコアの計算に寄与した領域を入力画像201の中から特定する。生成部153は、入力画像201の中の、特定部152によって特定された領域以外の領域をマスクしたマスク画像を生成する。取得部154は、深層学習モデルにマスク画像を入力して得られるスコアを取得する。ここで、取得部154によって取得されたスコアには教師データの偏りが現れる。つまり、深層学習モデルにマスク画像を入力してスコアを計算した場合、予測クラス以外のクラスで教師データに偏りがあるクラスのスコアは大きくなる。このため、検出装置10によれば、少ない工数で教師データの偏りを検出することができる。
【0036】
検出部155は、第1のクラスと異なるクラスであって、取得部154によって取得されたスコアが第1の閾値以上である第2のクラスを検出する。教師データに偏りがない場合、マスク画像を深層学習モデルに入力したときの第1のクラス以外のクラスのスコアは、非常に小さくなることが考えられる。逆に、第1のクラス以外のクラスのスコアがある程度大きい場合、教師データに偏りがあることが考えられる。このため、第2の閾値を設けることで、検出装置10は、少ない工数で教師データに偏りがある第2のクラスを検出することができる。
【0037】
生成部153は、特定部152によって特定された領域以外の領域の画素の画素値を同一にすることで、当該領域をマスクする。画素値が一様な領域は、スコアの計算への影響が小さいことが考えられる。このため、検出装置10は、マスクした領域のスコアの計算への影響を小さくし、教師データの偏りの検出精度を向上させることができる。
【0038】
特定部152は、Grad-CAMによって得られた寄与度を基に、第1のクラスのスコアの計算に寄与した領域を特定する。この結果、検出装置10は、既存の手法を用いて、寄与度の大きい領域を特定することができる。
【0039】
特定部152は、深層学習モデルに入力画像201を入力して得られたクラスごとのスコアが第2の閾値以上である第1のクラスのスコアの計算に寄与した領域を特定する。スコアが大きいクラスほど、教師データの偏りの影響が明確に現れることが考えられる。このため、検出装置10は、閾値により第1のクラスを特定することで、効率的に検出を行うことができる。
【0040】
上記の実施例では、検出装置10が深層学習モデルを使ったスコアの計算を行うものとして説明した。一方で、検出装置10は、入力画像及び計算済みのクラスごとのスコアを他の装置から受け取ってもよい。その場合、検出装置10は、マスク画像の生成、及びスコアに基づくデータバイアスのあるクラスの検出を行う。
【0041】
また、検出装置10によるマスク処理の方法は、上記の実施例で説明したものに限られない。検出装置10は、マスクをする領域を、黒と白の間のグレー一色にしてもよいし、入力画像の特徴や予測クラスに応じた所定のパターンに置き換えてもよい。
【0042】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、実施例で説明した具体例、分布、数値等は、あくまで一例であり、任意に変更することができる。
【0043】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0044】
[ハードウェア]
図7は、ハードウェア構成例を説明する図である。
図7に示すように、検出装置10は、通信インタフェース10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図7に示した各部は、バス等で相互に接続される。
【0045】
通信インタフェース10aは、ネットワークインタフェースカード等であり、他のサーバとの通信を行う。HDD10bは、
図2に示した機能を動作させるプログラムやDBを記憶する。
【0046】
プロセッサ10dは、
図1に示した各処理部と同様の処理を実行するプログラムをHDD10b等から読み出してメモリ10cに展開することで、
図1等で説明した各機能を実行するプロセスを動作させるハードウェア回路である。すなわち、このプロセスは、検出装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、計算部151、特定部152、生成部153、取得部154、検出部155及び通知部156と同様の機能を有するプログラムをHDD10b等から読み出す。そして、プロセッサ10dは、計算部151、特定部152、生成部153、取得部154、検出部155及び通知部156等と同様の処理を実行するプロセスを実行する。
【0047】
このように検出装置10は、プログラムを読み出して実行することで学習類方法を実行する情報処理装置として動作する。また、検出装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、検出装置10によって実行されることに限定されるものではない。例えば、他のコンピュータ又はサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【0048】
このプログラムは、インターネット等のネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【0049】
10 検出装置
11 通信部
12 入力部
13 出力部
14 記憶部
15 制御部
151 計算部
152 特定部
153 生成部
154 取得部
155 検出部
156 通知部