IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士フイルム株式会社の特許一覧

<>
  • 特許-学習装置及び学習方法 図1
  • 特許-学習装置及び学習方法 図2
  • 特許-学習装置及び学習方法 図3
  • 特許-学習装置及び学習方法 図4
  • 特許-学習装置及び学習方法 図5
  • 特許-学習装置及び学習方法 図6
  • 特許-学習装置及び学習方法 図7
  • 特許-学習装置及び学習方法 図8
  • 特許-学習装置及び学習方法 図9
  • 特許-学習装置及び学習方法 図10
  • 特許-学習装置及び学習方法 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-06-01
(45)【発行日】2022-06-09
(54)【発明の名称】学習装置及び学習方法
(51)【国際特許分類】
   G06T 7/00 20170101AFI20220602BHJP
【FI】
G06T7/00 350C
【請求項の数】 19
(21)【出願番号】P 2020548221
(86)(22)【出願日】2019-08-28
(86)【国際出願番号】 JP2019033599
(87)【国際公開番号】W WO2020059446
(87)【国際公開日】2020-03-26
【審査請求日】2021-05-07
(31)【優先権主張番号】P 2018176317
(32)【優先日】2018-09-20
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】306037311
【氏名又は名称】富士フイルム株式会社
(74)【代理人】
【識別番号】100083116
【弁理士】
【氏名又は名称】松浦 憲三
(74)【代理人】
【識別番号】100170069
【弁理士】
【氏名又は名称】大原 一樹
(74)【代理人】
【識別番号】100128635
【弁理士】
【氏名又は名称】松村 潔
(74)【代理人】
【識別番号】100140992
【弁理士】
【氏名又は名称】松浦 憲政
(72)【発明者】
【氏名】大酒 正明
【審査官】佐藤 実
(56)【参考文献】
【文献】米国特許出願公開第2017/0109881(US,A1)
【文献】国際公開第2017/106645(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
学習用の第1画像と前記第1画像に含まれる注目領域よりも広い領域を特定する座標情報とが関連付けられた第1画像セットと、学習用の第2画像と前記第2画像に含まれる注目領域を特定する第2マスクデータとが関連付けられた第2画像セットとを記憶する記憶部と、
入力画像から特徴マップを出力するニューラルネットワークと、
前記入力画像として、前記第1画像を入力し、前記ニューラルネットワークから出力される第1特徴マップと前記第1画像に関連付けられた前記座標情報を元に作成した第1マスクデータとを比較し、第1損失値を計算する第1損失値算出部と、
前記入力画像として、前記第2画像を入力し、前記ニューラルネットワークから出力される第2特徴マップと前記第2画像に関連付けられた前記第2マスクデータとを比較し、第2損失値を計算する第2損失値算出部と、
前記第1損失値及び前記第2損失値に基づいて前記ニューラルネットワークのパラメータを更新させるパラメータ制御部と、
を備えた学習装置。
【請求項2】
前記第1画像に関連付けられた前記座標情報を元に前記第1マスクデータを作成するマスクデータ作成部を有し、
前記マスクデータ作成部は、前記第1画像を前記ニューラルネットワークに入力する前に、当該第1画像に対応する前記第1マスクデータを作成する請求項1に記載の学習装置。
【請求項3】
前記座標情報は、前記注目領域を含む四角領域を特定する情報であり、前記第1マスクデータは、前記四角領域をマスクしたマスクデータである請求項1又は2に記載の学習装置。
【請求項4】
前記四角領域内に前記四角領域よりも小さい領域を設定し、
前記第1損失値算出部は、前記四角領域内かつ前記四角領域よりも小さい領域外は損失値の計算に含めない請求項3に記載の学習装置。
【請求項5】
前記四角領域内に前記四角領域よりも小さい領域を設定し、
前記第1損失値算出部は、前記四角領域よりも小さい領域は損失値の計算に含めない請求項3に記載の学習装置。
【請求項6】
前記座標情報は、前記注目領域を含む楕円領域を特定する情報であり、前記第1マスクデータは、前記楕円領域をマスクしたマスクデータである請求項1又は2に記載の学習装置。
【請求項7】
前記楕円領域内に前記楕円領域よりも小さい領域を設定し、
前記第1損失値算出部は、前記楕円領域内かつ前記楕円領域よりも小さい領域外は損失値の計算に含めない請求項6に記載の学習装置。
【請求項8】
前記楕円領域内に前記楕円領域よりも小さい領域を設定し、
前記第1損失値算出部は、前記楕円領域よりも小さい領域内は損失値の計算に含めない請求項6に記載の学習装置。
【請求項9】
前記第1損失値算出部は、前記第1画像よりもサイズが小さい前記第1特徴マップと前記第画像よりもサイズが小さい前記第1マスクデータとを比較し、前記第1損失値を計算し、
前記第2損失値算出部は、前記第2画像よりもサイズが小さい前記第2特徴マップと前記第2画像よりもサイズが小さい前記第2マスクデータとを比較し、前記第2損失値を計算する請求項1から8のいずれか1項に記載の学習装置。
【請求項10】
学習用の第1画像と前記第1画像に含まれる注目領域よりも広い領域を特定する第1マスクデータとが関連付けられた第1画像セットと、学習用の第2画像と前記第2画像に含まれる注目領域を特定する第2マスクデータとが関連付けられた第2画像セットとを記憶する記憶部と、
入力画像から特徴マップを出力するニューラルネットワークと、
前記入力画像として、前記第1画像を入力し、前記ニューラルネットワークから出力される第1特徴マップと前記第1画像に関連付けられた前記第1マスクデータとを比較し、第1損失値を計算する第1損失値算出部と、
前記入力画像として、前記第2画像を入力し、前記ニューラルネットワークから出力される第2特徴マップと前記第2画像に関連付けられた前記第2マスクデータとを比較し、第2損失値を計算する第2損失値算出部と、
前記第1損失値及び前記第2損失値に基づいて前記ニューラルネットワークのパラメータを更新させるパラメータ制御部と、
を備えた学習装置。
【請求項11】
前記第1マスクデータ及び前記第2マスクデータは、少なくとも1回はプーリング処理されたマスクデータである請求項1から10のいずれか1項に記載の学習装置。
【請求項12】
前記ニューラルネットワークは、少なくとも1つのプーリング層を有し、
前記第1マスクデータ及び前記第2マスクデータは、前記プーリング層に対応するプーリング処理がされたマスクデータである請求項11に記載の学習装置。
【請求項13】
前記第1画像セットには、ボケ又はブレを含む前記第1画像が存在する請求項1から11のいずれか1項に記載の学習装置。
【請求項14】
前記第1画像セットを構成する前記第1画像及び前記第2画像セットを構成する前記第2画像は、それぞれ医用画像である請求項1から12のいずれか1項に記載の学習装置。
【請求項15】
前記第1画像セットを構成する前記第1画像は、動画から抽出した画像である請求項1から13のいずれか1項に記載の学習装置。
【請求項16】
前記第1画像セットを構成する前記第1画像及び前記第2画像セットを構成する前記第2画像は、それぞれ内視鏡装置で撮像された画像である請求項1から15のいずれか1項に記載の学習装置。
【請求項17】
前記第2マスクデータは、前記第2画像に含まれる病変領域をマスクしたマスクデータである請求項1から16のいずれか1項に記載の学習装置。
【請求項18】
学習用の第1画像と前記第1画像に含まれる注目領域よりも広い領域を特定する座標情報とが関連付けられた第1画像セットと、学習用の第2画像と前記第2画像に含まれる注目領域を特定する第2マスクデータとが関連付けられた第2画像セットとを準備するステップと、
ニューラルネットワークの入力画像として、前記第1画像を入力し、前記ニューラルネットワークから出力される第1特徴マップと前記第1画像に関連付けられた前記座標情報を元に作成した第1マスクデータとを比較し、第1損失値を計算するステップと、
前記ニューラルネットワークの入力画像として、前記第2画像を入力し、前記ニューラルネットワークから出力される第2特徴マップと前記第2画像に関連付けられた前記第2マスクデータとを比較し、第2損失値を計算するステップと、
前記第1損失値及び前記第2損失値に基づいて前記ニューラルネットワークのパラメータを更新させるステップと、
を含む学習方法。
【請求項19】
学習用の第1画像と前記第1画像に含まれる注目領域よりも広い領域を特定する第1マスクデータとが関連付けられた第1画像セットと、学習用の第2画像と前記第2画像に含まれる注目領域を特定する第2マスクデータとが関連付けられた第2画像セットとを準備するステップと、
ニューラルネットワークの入力画像として、前記第1画像を入力し、前記ニューラルネットワークから出力される第1特徴マップと前記第1画像に関連付けられた前記第1マスクデータとを比較し、第1損失値を計算するステップと、
前記ニューラルネットワークの入力画像として、前記第2画像を入力し、前記ニューラルネットワークから出力される第2特徴マップと前記第2画像に関連付けられた前記第2マスクデータとを比較し、第2損失値を計算するステップと、
前記第1損失値及び前記第2損失値に基づいて前記ニューラルネットワークのパラメータを更新させるステップと、
を含む学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は学習装置及び学習方法に係り、特に入力画像から所望の注目領域を識別するための技術に関する。
【背景技術】
【0002】
近年、機械学習の分野では、多層ニューラルネットワークを利用する深層学習が注目を集めている。深層学習によれば、ニューラルネットワークは多様な特徴表現を半自動的に獲得できるので、設計者は特徴量の抽出法を考案する必要が無い。特に画像の認識においては、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)が注目されている(非特許文献1)。
【0003】
また、CNNを利用してピクセル単位で領域を分離する手法も知られている(非特許文献2)。
【0004】
CNNにおいて、入力画像内の注目領域をピクセル単位、もしくはいくつかのピクセルを一塊にした単位で領域分類(セグメンテーション)するためには、入力画像の注目領域とそれ以外でピクセル単位、もしくはいくつかのピクセルを一塊にした単位でアノテーションを行ったマスクデータを作成し、これをCNNに教師データとして与える必要がある。
【0005】
しかし、ピクセル単位、もしくはいくつかのピクセルを一塊にした単位で分類を行う学習は、学習時のパラメータ変動が大きく、過学習に陥りやすい。
【0006】
過学習とは、教師データに対しては学習されているが、教師データに合わせすぎる結果、未知データに対しては適合できていない状態(汎化できていない状態)をいう。
【0007】
この過学習の防止のためには大量の教師データが必要であるが、入力画像の注目領域とそれ以外でピクセル単位、もしくはいくつかのピクセルを一塊にした単位でアノテーションを行ったマスクデータを大量に作成する必要がある。
【0008】
従来、教師データを生成する装置が提案されている(特許文献1、2)。
【0009】
特許文献1に記載のデータ処理装置は、教師データを生成する対象となる物体の種別が何であるかを目視により判断し、手動でラベリングを行う代わりに、認識処理部により入力画像から物体の種別を自動的に認識し、その認識結果を入力画像に付加することで、教師データを生成している。
【0010】
また、特許文献2に記載の教師データ生成装置は、入力画像から抽出されたオブジェクトの形状及びその他の外観要因の少なくともいずれか1つ以上の画像固有成分を記憶するデータベースと,このデータベースに記憶されている画像固有成分を変更して一又は複数種類の別の画像固有成分を生成する変更部と,この別の画像固有成分を用いて少なくとも部分的に入力画像に対応する再構成画像を生成し機械学習に適用する再構成部と、を備えている。
【先行技術文献】
【特許文献】
【0011】
【文献】特開2018-96834号公報
【文献】特許第6330092号公報
【非特許文献】
【0012】
【文献】A. Krizhevsky, I. Sutskever, and G. Hinton. ImageNet classification with deep convolutional neural networks. In NIPS, 2012
【文献】Long J, Shelhamer E, Darrell T. Fully convolutional networks for semantic segmentation. Computer Vision and Pattern Recognition. IEEE, 2015:34-3440.
【発明の概要】
【発明が解決しようとする課題】
【0013】
特許文献1に記載の発明は、物体のラベリングを自動化することができ、大量の教師データを用意するための労力を軽減することができるが、入力画像からピクセル単位、もしくはいくつかのピクセルを一塊にした単位で領域分類(セグメンテーション)を行うための学習用の教師データを生成するものではない。
【0014】
また、特許文献2に記載の発明は、一の入力画像から様々なバリエーションの教師データを生成するものであり、特許文献1と同様にセグメンテーションを行うための学習用の教師データを生成するものではない。
【0015】
本発明はこのような事情に鑑みてなされたもので、教師データの作成が容易であり、かつ過学習を防止することができる学習装置及び学習方法を提供することを目的とする。
【課題を解決するための手段】
【0016】
上記目的を達成するために本発明の一の態様に係る学習装置は、学習用の第1画像と第1画像に含まれる注目領域よりも広い領域を特定する座標情報とが関連付けられた第1画像セットと、学習用の第2画像と第2画像に含まれる注目領域を特定する第2マスクデータとが関連付けられた第2画像セットとを記憶する記憶部と、入力画像から特徴マップを出力するニューラルネットワークと、入力画像として、第1画像を入力し、ニューラルネットワークから出力される第1特徴マップと第1画像に関連付けられた座標情報を元に作成した第1マスクデータとを比較し、第1損失値を計算する第1損失値算出部と、入力画像として、第2画像を入力し、ニューラルネットワークから出力される第2特徴マップと第2画像に関連付けられた第2マスクデータとを比較し、第2損失値を計算する第2損失値算出部と、第1損失値及び第2損失値に基づいてニューラルネットワークのパラメータを更新させるパラメータ制御部と、を備える。
【0017】
本発明の一の態様によれば、第1画像セットの作成に当り、学習用の第1画像と第1画像に含まれる注目領域よりも広い領域を特定する座標情報との関連付けを行うが、注目領域よりも広い領域を特定する座標情報の入力は、注目領域を特定する第2マスクデータを手動で入力する場合(例えば、注目領域をピクセル単位で塗りつぶす作業)に比べて簡単である。即ち、第1画像セットと第2画像セットとを学習データとすることで、第2画像セットのみを学習データとする場合に比べて、学習データ(特に教師データ)を準備するための労力を大幅に軽減することができる。また、注目領域よりも広い領域を特定する座標情報を元に作成した第1マスクデータは、第2マスクデータのように注目領域を正確に示すものではないため、第1マスクデータを使用した学習により、少ないデータ量の画像セットであっても過学習を防止することができ、更に第2マスクデータを使用した学習により、入力画像から注目領域を正確に認識できる学習が可能である。
【0018】
本発明の他の態様に係る学習装置において、第1画像に関連付けられた座標情報を元に第1マスクデータを作成するマスクデータ作成部を有し、マスクデータ作成部は、第1画像をニューラルネットワークに入力する前に、第1画像に対応する第1マスクデータを作成することが好ましい。
【0019】
本発明の更に他の態様に係る学習装置において、座標情報は、注目領域を含む四角領域を特定する情報であり、第1マスクデータは、四角領域をマスクしたマスクデータである。
【0020】
本発明の更に他の態様に係る学習装置において、四角領域内に四角領域よりも小さい領域を設定し、第1損失値算出部は、四角領域内かつ四角領域よりも小さい領域外は損失値の計算に含めないことが好ましい。四角領域内かつ四角領域よりも小さい領域外(特に四角領域の隅の領域)は、背景領域(注目領域ではない領域)である場合が多いからである。
【0021】
本発明の更に他の態様に係る学習装置において、四角領域内に四角領域よりも小さい領域を設定し、第1損失値算出部は、四角領域よりも小さい領域内は損失値の計算に含めないことが好ましい。
【0022】
本発明の更に他の態様に係る学習装置において、座標情報は、注目領域を含む楕円領域を特定する情報であり、第1マスクデータは、楕円領域をマスクしたマスクデータである。
【0023】
本発明の更に他の態様に係る学習装置において、楕円領域内に楕円領域よりも小さい領域を設定し、第1損失値算出部は、楕円領域内かつ楕円領域よりも小さい領域外は損失値の計算に含めないことが好ましい。
【0024】
本発明の更に他の態様に係る学習装置において、楕円領域内に楕円領域よりも小さい領域を設定し、第1損失値算出部は、楕円領域よりも小さい領域内は損失値の計算に含めないことが好ましい。
【0025】
本発明の更に他の態様に係る学習装置において、第1損失値算出部は、第1画像よりもサイズが小さい第1特徴マップと第2画像よりもサイズが小さい第1マスクデータとを比較し、第1損失値を計算し、第2損失値算出部は、第2画像よりもサイズが小さい第2特徴マップと第2画像よりもサイズが小さい第2マスクデータとを比較し、第2損失値を計算することが好ましい。第1特徴マップ及び第2特徴マップのサイズは、プーリング処理等により元の第1画像及び第2画像のサイズよりも小さくなるが、第1画像及び第2画像と同じサイズに戻さなくても損失値の計算はできるからである。
【0026】
本発明の更に他の態様に係る学習装置は、学習用の第1画像と第1画像に含まれる注目領域よりも広い領域を特定する第1マスクデータとが関連付けられた第1画像セットと、学習用の第2画像と第2画像に含まれる注目領域を特定する第2マスクデータとが関連付けられた第2画像セットとを記憶する記憶部と、入力画像から特徴マップを出力するニューラルネットワークと、入力画像として、第1画像を入力し、ニューラルネットワークから出力される第1特徴マップと第1画像に関連付けられた第1マスクデータとを比較し、第1損失値を計算する第1損失値算出部と、入力画像として、第2画像を入力し、ニューラルネットワークから出力される第2特徴マップと第2画像に関連付けられた第2マスクデータとを比較し、第2損失値を計算する第2損失値算出部と、第1損失値及び第2損失値に基づいてニューラルネットワークのパラメータを更新させるパラメータ制御部と、を備える。
【0027】
本発明の更に他の態様に係る学習装置において、第1マスクデータ及び第2マスクデータは、少なくとも1回はプーリング処理されたマスクデータであることが好ましい。第1マスクデータ及び第2マスクデータのサイズを、第1特徴マップ及び第2特徴マップのサイズと合わせるためである。
【0028】
本発明の更に他の態様に係る学習装置において、ニューラルネットワークは、少なくとも1つのプーリング層を有し、第1マスクデータ及び第2マスクデータは、プーリング層に対応するプーリング処理がされたマスクデータであることが好ましい。
【0029】
本発明の更に他の態様に係る学習装置において、第1画像セットには、ボケ又はブレを含む第1画像が存在することが好ましい。ボケ又はブレを含む第1画像を使用することで、更に過学習を防止可能にする。
【0030】
本発明の更に他の態様に係る学習装置において、第1画像セットを構成する第1画像及び第2画像セットを構成する第2画像は、それぞれ医用画像であることが好ましい。医用画像には、内視鏡画像、X線画像、CT(Computed Tomography)画像、MRI(Magnetic Resonance Imaging)画像などが含まれる。
【0031】
本発明の更に他の態様に係る学習装置において、第1画像セットを構成する第1画像は、動画から抽出した画像であることが好ましい。第1画像を多数取得することができ、また、動画にはボケ又はブレを有する画像が含まれるからである。
【0032】
本発明の更に他の態様に係る学習装置において、第1画像セットを構成する第1画像及び第2画像セットを構成する第2画像は、それぞれ内視鏡装置で撮像された画像である。
【0033】
本発明の更に他の態様に係る学習装置において、第2マスクデータは、第2画像に含まれる病変領域をマスクしたマスクデータであることが好ましい。
【0034】
本発明の更に他の態様に係る学習方法は、学習用の第1画像と第1画像に含まれる注目領域よりも広い領域を特定する座標情報とが関連付けられた第1画像セットと、学習用の第2画像と第2画像に含まれる注目領域を特定する第2マスクデータとが関連付けられた第2画像セットとを準備するステップと、ニューラルネットワークの入力画像として、第1画像を入力し、ニューラルネットワークから出力される第1特徴マップと第1画像に関連付けられた座標情報を元に作成した第1マスクデータとを比較し、第1損失値を計算するステップと、ニューラルネットワークの入力画像として、第2画像を入力し、ニューラルネットワークから出力される第2特徴マップと第2画像に関連付けられた第2マスクデータとを比較し、第2損失値を計算するステップと、第1損失値及び第2損失値に基づいてニューラルネットワークのパラメータを更新させるステップと、を含む。
【0035】
本発明の更に他の態様に係る学習方法は、学習用の第1画像と第1画像に含まれる注目領域よりも広い領域を特定する第1マスクデータとが関連付けられた第1画像セットと、学習用の第2画像と第2画像に含まれる注目領域を特定する第2マスクデータとが関連付けられた第2画像セットとを準備するステップと、ニューラルネットワークの入力画像として、第1画像を入力し、ニューラルネットワークから出力される第1特徴マップと第1画像に関連付けられた第1マスクデータとを比較し、第1損失値を計算するステップと、ニューラルネットワークの入力画像として、第2画像を入力し、ニューラルネットワークから出力される第2特徴マップと第2画像に関連付けられた第2マスクデータとを比較し、第2損失値を計算するステップと、第1損失値及び第2損失値に基づいてニューラルネットワークのパラメータを更新させるステップと、を含む。
【発明の効果】
【0036】
本発明によれば、第1画像セット及び第2画像セットを学習データとすることで、第2画像の注目領域とそれ以外の領域とでピクセル単位、もしくはいくつかのピクセルを一塊にした単位でアノテーションを行ったマスクデータが付帯する第2画像セットを大量に作成する必要がなく、第2画像セットのみを学習データとする場合に比べて、学習データを準備するための労力を大幅に軽減することができ、かつ過学習を防止することができる。
【図面の簡単な説明】
【0037】
図1図1は、本発明に係る学習装置のハードウエア構成の一例を示すブロック図である。
図2図2は、第1データベース14に記憶される第1画像セットの一例を示す図である。
図3図3は、内視鏡装置により撮像された画像(第1画像)及び四角領域Bを示す図である。
図4図4は、図2に示した座標情報から作成される第1マスクデータを説明するために用いた図である。
図5図5は、第2データベース16に記憶される第2画像セットの一例を示す図である。
図6図6は、本発明に係る学習装置10の実施形態を示すブロック図である。
図7図7は、内視鏡装置により撮像された画像(第1画像)及び楕円領域Eを示す図である。
図8図8は、第1マスクデータの他の実施形態を説明するために用いた図である。
図9図9は、第1マスクデータの更に他の実施形態を説明するために用いた図である。
図10図10は、CNNでのプーリング処理を経る毎に入力画像のサイズに対して特徴マップのサイズが徐々に小さくなる様子を示す模式図である。
図11図11は、本発明に係る画像学習方法の実施形態を示すフローチャートである。
【発明を実施するための形態】
【0038】
以下、添付図面に従って本発明に係る学習装置及び方法の好ましい実施形態について説明する。
【0039】
[学習装置のハードウエア構成]
図1は、本発明に係る学習装置のハードウエア構成の一例を示すブロック図である。
【0040】
図1に示す学習装置10は、入力画像内の注目領域をピクセル単位、もしくはいくつかのピクセルを一塊にした単位で領域分類(セグメンテーション)するための認識器として機能するための学習を行うものであり、パーソナルコンピュータ又はワークステーションにより構成することができる。
【0041】
本例の学習装置10は、主として通信部12と、大容量のストレージもしくは第1データベース14、第2データベース16と、操作部18と、CPU(Central Processing Unit)20と、RAM(Random Access Memory)22と、ROM(Read Only Memory)24と、表示部26とから構成されている。
【0042】
通信部12は、有線又は無線により外部装置との通信処理を行い、外部装置との間で情報のやり取りを行う部分である。
【0043】
記憶部として機能する第1データベース14及び第2データベース16は、それぞれ学習用の第1画像セット及び第2画像セットを記憶している。
【0044】
第1画像セットは、学習用の第1画像と第1画像に含まれる注目領域よりも広い領域を特定する座標情報とが関連付けられた学習データの集合であり、また、第2画像セットは、学習用の第2画像と第2画像に含まれる注目領域を特定する第2マスクデータとが関連付けられた学習データの集合である。
【0045】
図2は、第1データベース14に記憶される第1画像セットの一例を示す図であり、学習装置10の入力画像として、内視鏡装置で撮像された第1画像(医用画像)を使用する場合に関して示している。
【0046】
図2に示すように第1画像セットは、学習装置10の学習時における入力画像である第1画像(図2の上段に示した画像)と、第1画像に対する教師データとして機能するマスクデータの作成に使用する座標情報(図2の下段に示した座標情報)とが対となって記憶された学習データの集合である。
【0047】
ここで、座標情報は、図3に示すように第1画像に含まれる病変領域等の注目領域Aよりも広い四角領域Bを特定する座標情報である。本例の座標情報は、注目領域Aを含む四角領域Bの左辺を示す座標(left=w)、上辺を示す座標(top=x)、右辺を示す座標(right=y)、及び下辺を示す座標(bottom=z)を有している。
【0048】
第1画像に関連付けられた座標情報は、図4の下段に示すマスクデータ(第1マスクデータ)を作成するために使用される。第1マスクデータは、注目領域を含む四角領域を、ピクセル単位、もしくはいくつかのピクセルを一塊にした単位でマスクしたマスクデータであり、例えば、四角領域内のピクセルには、「1」を割り当て、背景領域(四角領域以外の領域)のピクセルには、「0」を割り当てることで2値の画像データとすることができる。
【0049】
第1画像に含まれる注目領域Aよりも広い領域を特定する座標情報の入力は、例えば、第1画像を表示部26に表示させ、ユーザが、操作部18(マウス等のポインティングデバイス)を操作して、注目領域Aを囲む矩形枠(図3参照)を表示部26に表示させ、その矩形枠の位置及びサイズを確定させることで行うことできる。
【0050】
図5は、第2データベース16に記憶される第2画像セットの一例を示す図であり、学習装置10の入力画像として、内視鏡装置で撮像された第2画像(医用画像)を使用する場合に関して示している。
【0051】
図5に示すように第2画像セットは、学習装置10の学習時における入力画像である第2画像(図5の上段に示した画像)と、第2画像に対する教師データとして機能するマスクデータ(図5の下段に示した第2マスクデータ)とが対となって記憶された学習データの集合である。
【0052】
第2マスクデータは、第2画像に含まれる注目領域(例えば、病変領域)をピクセル単位、もしくはいくつかのピクセルを一塊にした単位でマスクしたマスクデータである。
【0053】
第2画像に含まれる注目領域Aを特定する第2マスクデータの作成は、例えば、第2画像を表示部26に表示させ、ユーザが、操作部18(マウス等のポインティングデバイス)を操作して、注目領域Aの輪郭を、ピクセル単位、もしくはいくつかのピクセルを一塊にした単位で描画し、又は注目領域Aをピクセル単位、もしくはいくつかのピクセルを一塊にした単位で塗り潰すことで行うことができる。
【0054】
ユーザによる座標情報の入力は、第2マスクデータの作成に比べて簡単である。したがって、第1データベース14に記憶させる第1画像セットは、第2データベース16に記憶させる第2画像セットに比べて容易に作成することができ、これにより大量の第2画像セットを準備する場合に比べてユーザの労力を大幅に軽減することができる。
【0055】
また、座標情報により作成される第1マスクデータは、注目領域をピクセル単位で正確に特定するものではないため、第1画像セットを使用する学習は、過学習に陥り難い利点がある。更に、過学習を防止するために、第1画像セットには、ボケ又はブレを含む第1画像が存在することが好ましい。
【0056】
更にまた、第1画像セットには、ボケ又はブレを含む第1画像が存在してもよいため、例えば、内視鏡スコープが移動中に撮像される動画から抽出した画像であってもよい。動画から第1画像を抽出することで、第1画像は、第2画像に比べて多く集めることができる。
【0057】
尚、本例では、第1データベース14及び第2データベース16は、学習装置10が備えているが、外部に設けられたものでもよい。この場合、通信部12を介して外部のデータベースから学習用の第1画像セット及び第2画像セットを取得することができる。
【0058】
操作部18は、コンピュータに有線接続又は無線接続されるキーボード及びマウス等が用いられ、機械学習に当たって各種の操作入力を受け付ける。
【0059】
CPU20は、ROM24又は図示しないハードディスク装置等に記憶された各種のプログラム(機械学習に使用する学習用プログラムを含む)を読み出し、各種の処理を実行する。RAM22は、CPU20の作業領域として使用され、読み出されたプログラムや各種のデータを一時的に記憶する記憶部として用いられる。
【0060】
表示部26は、コンピュータに接続可能な液晶モニタ等の各種モニタが用いられ、操作部18とともに、ユーザインターフェースの一部として使用される。
【0061】
上記構成の学習装置10は、操作部18により指示入力によりCPU20が、ROM24やハードディスク装置等に記憶されている学習用プログラムを読み出し、学習用プログラムを実行することにより、後述するように学習装置として機能する。
【0062】
[学習装置の実施形態]
図6は、本発明に係る学習装置10の実施形態を示すブロック図であり、図1に示した学習装置10の主要な機能を示す機能ブロック図である。
【0063】
図6に示す学習装置10は、第1データベース14に保存された第1画像セットと、第2データベース16に保存された第2画像セットとを用いて学習することにより、入力画像から注目領域の領域分類(セグメンテーション)を行う学習モデルを生成する。本例では、学習モデルの一つである畳み込みニューラルネットワーク(CNN:Convolution Neural Network)を構築する。
【0064】
図6に示す学習装置10は、主としてCNN32と、損失値算出部34と、パラメータ制御部36と、マスクデータ作成部38とから構成される。
【0065】
CNN32は、例えば、内視鏡装置で撮像された画像(医用画像)を入力画像とするとき、その入力画像に写っている病変領域等の注目領域を認識する認識器に対応する部分であり、複数のレイヤ構造を有し、複数の重みパラメータを保持している。重みパラメータは、畳み込み層での畳み込み演算に使用されるカーネルと呼ばれるフィルタのフィルタ係数などである。
【0066】
CNN32は、重みパラメータが初期値から最適値に更新されることで、未学習モデルから学習済みモデルに変化しうる。
【0067】
このCNN32は、入力層32Aと、畳み込み層とプーリング層から構成された複数セットを有する中間層32Bと、出力層32Cとを備え、各層は複数の「ノード」が「エッジ」で結ばれる構造となっている。
【0068】
入力層32Aには、学習対象である入力画像31が入力される。
【0069】
中間層32Bは、畳み込み層とプーリング層とを1セットとする複数セットを有し、入力層32Aから入力した画像から特徴を抽出する部分である。畳み込み層は、前の層で近くにあるノードにフィルタ処理し(フィルタを使用した畳み込み演算を行い)、「特徴マップ」を取得する。プーリング層は、畳み込み層から出力された特徴マップを縮小して新たな特徴マップとする。「畳み込み層」は、画像からのエッジ抽出等の特徴抽出の役割を担い、「プーリング層」は抽出された特徴が、平行移動などによる影響を受けないようにロバスト性を与える役割を担う。
【0070】
尚、中間層32Bには、畳み込み層とプーリング層とを1セットとする場合に限らず、畳み込み層が連続する場合や活性化関数による活性化プロセス、正規化層も含まれ得る。
【0071】
出力層32Cは、中間層32Bにより抽出された特徴を示す特徴マップを出力する部分である。また、出力層32Cは、学習済みCNN32では、例えば、入力画像に写っている病変領域等の注目領域をピクセル単位、もしくはいくつかのピクセルを一塊にした単位で領域分類(セグメンテーション)した認識結果を出力する。
【0072】
学習前のCNN32の各畳み込み層に適用されるフィルタの係数やオフセット値は、任意の初期値がセットされる。
【0073】
第1損失値算出部及び第2損失値算出部として機能する損失値算出部34は、CNN32の出力層32Cから出力される特徴マップと、入力画像(第1画像又は第2画像)に対する教師データであるマスクデータ(第1マスクデータ又は第2マスクデータ)とを比較し、両者間の誤差(損失関数の値である損失値)を計算する。損失値の計算方法は、例えばソフトマックスクロスエントロピー、シグモイドなどが考えられる。
【0074】
パラメータ制御部36は、損失値算出部34により算出された損失値(第1損失値、第2損失値)を元に、誤差逆伝播法によりCNN3の重みパラメータを調整する。
【0075】
このパラメータの調整処理を繰り返し行い、CNN32の出力と教師データであるマスクデータとの差が小さくなるまで繰り返し学習を行う。
【0076】
マスクデータ作成部38は、第1データベース14に保存された第1画像セットの中から学習に使用する1又は複数(1バッチ)の学習データを取得し、取得した学習データを用いて学習を行う場合、学習データを構成する第1画像をCNN32に入力する前に、CNN32に入力する第1画像に関連付けられた座標情報37を元に第1マスクデータを作成する。
【0077】
本例の座標情報37は、図3に示すように注目領域Aを含む四角領域の4辺(左辺、上辺、右辺、下辺)を示す座標情報であり、マスクデータ作成部38は、これらの4辺の座標情報に基づいて四角領域をマスクした(四角領域と背景領域とを領域分類した)第1マスクデータを作成する。この第1マスクデータは、入力画像である第1画像に対する教師データである。尚、四角領域を特定するための座標情報は、四角領域の4辺を示す座標情報に限らず、例えば、四角領域の対角の2つの頂点を示す座標でもよい。
【0078】
上記構成の学習装置10は、第1データベース14に記憶された第1画像セットと、第2データベース16に記憶された第2画像セットとを使用して学習を行うが、第1画像セットに含まれる学習データと、第2画像セットに含まれる学習データとを交互に使用し、又は適当に混在させて使用して学習する場合、あるいは最初に第1画像セットに含まれる学習データを使用して学習し、その後、第2画像セットに含まれる学習データを使用して学習する場合が考えられる。
【0079】
いま、CNN32が、第1データベース14に記憶された第1画像セットに含まれる学習データに基づいて学習を行う場合、マスクデータ作成部38は、第1データベース14から取得した学習データを構成する第1画像を、入力画像31としてCNN32(入力層32A)に入力する前に、その第1画像に関連付けられた座標情報37を元に第1マスクデータを作成し、これをマスクデータ35とする。
【0080】
その後、第1画像をCNN32に入力し、CNN32の出力層32Cからの出力である特徴マップが、損失値算出部34に加えられる。
【0081】
損失値算出部34には、マスクデータ作成部38により作成された第1マスクデータが加えられており、第1損失値算出部として機能する損失値算出部34は、入力する特徴マップ(第1特徴マップ)と第1マスクデータとを比較し、損失値(第1損失値)を計算する。
【0082】
パラメータ制御部36は、損失値算出部34により算出された第1損失値を元に、誤差逆伝播法によりCNN3の重みパラメータを調整する。誤差逆伝播法では、誤差を最終レイヤから順に逆伝播させ、各レイヤにおいて確率的勾配降下法を行い、誤差が収束するまでパラメータの更新を繰り返す。
【0083】
次に、CNN32が、第2データベース16に記憶された第2画像セットに含まれる学習データに基づいて学習を行う場合、第2データベース16から取得した学習データを構成する第2画像を、入力画像31としてCNN32(入力層32A)に入力する。そして、CNN32の出力層32Cからの出力である特徴マップが、損失値算出部34に加えられる。
【0084】
損失値算出部34には、CNN32に入力された第2画像に関連付けられた第2マスクデータが加えられており、第2損失値算出部として機能する損失値算出部34は、入力する特徴マップ(第2特徴マップ)と第2マスクデータとに基づいて損失値(第2損失値)を算出する。
【0085】
パラメータ制御部36は、損失値算出部34により算出された第2損失値を元に、誤差逆伝播法によりCNN3の重みパラメータを調整する。
【0086】
学習装置10は、以上の第1画像セットの学習データを使用した学習と、第2画像セットの学習データを使用した学習とを繰り返すことで、CNN32が学習済みモデルとなり、未知の入力画像に対して注目領域をピクセル単位、もしくはいくつかのピクセルを一塊にした単位で領域分類する認識結果を出力する。
【0087】
この学習装置10によれば、学習データとして、第2画像セットだけでなく、第1画像セットを使用することで、大量の第2画像セットを使用しなくても過学習に陥ることがなく、大量の第2画像セットを使用する場合と同等の認識結果を出力する学習モデルを生成することができる。
【0088】
また、第1画像セットの学習データは、第1画像に含まれる注目領域よりも広い領域を特定する座標情報を指定することで作成することができ、画像に含まれる注目領域を特定するマスクデータ(第2マスクデータ)を教師データとして作成する必要がある、第2画像セットの学習データに比べて簡単に作成することができる。
【0089】
また、この学習装置10は、第1画像と座標情報のセット(第1画像セット)を受け取るが、第1画像とマスクデータ(第1マスクデータ)のセットを受け取る構成としても良い。
【0090】
[第1画像セットの他の実施形態]
図2に示した第1画像セットの学習データは、第1画像に関連付けて、第1画像に含まれる注目領域Aよりも広い四角領域を特定する座標情報を有するが、これに限らず、例えば注目領域よりも広い楕円領域を特定する座標情報でもよい。
【0091】
図7は、内視鏡装置により撮像された画像(第1画像)及び楕円領域Eを示す図である。楕円領域Eは、第1画像に含まれる注目領域Aを含む領域であり、注目領域Aよりも広い。
【0092】
楕円領域Eは、その長軸方向と注目領域Aの最も長い方向と一致するように方向を決定することが好ましい。
【0093】
楕円領域Eを特定する座標情報としては、図7に示すように楕円領域Eの長軸の両端(a,b)の座標情報、及び短軸の両端(c,d)の座標情報が考えられる。
【0094】
[第1マスクデータの他の実施形態]
図4に示した第1マスクデータは、図2に示した座標情報により特定される四角領域をマスクしたマスクデータであるが、四角領域内に四角領域よりも小さい領域を設定し、四角領域内かつ四角領域よりも小さい領域外の領域は、第1損失値算出部として機能する損失値算出部34での損失値の計算に含めないマスクデータとすることができる。
【0095】
図8に示すように注目領域Aを含む四角領域B内に、四角領域Bよりも小さい領域Cを設定する。この領域Cも注目領域Aを含む領域である。
【0096】
そして、四角領域B内かつ四角領域Bよりも小さい領域C外の領域D(図8上で、四角領域Bの四隅の領域)は、損失値算出部34での損失値の計算に含めないようにする。
【0097】
例えば、四角領域Bよりも小さい領域C内のピクセルには、「1」を割り当て、背景領域(四角領域Bの外側の領域)のピクセルには、「0」を割り当て、四角領域B内かつ四角領域Bよりも小さい領域C外の領域Dのピクセルには、「-1」を割り当てることで、3値の画像データとすることができる。
【0098】
損失値算出部34は、「-1」が割り当てられた領域D内のピクセルについては、損失値の計算に含めないようにする。
【0099】
尚、四角領域B内かつ四角領域Bよりも小さい領域Cを、注目領域Aを含む円領域又は楕円領域とする場合には、領域Cを特定する座標情報は、円領域又は楕円領域を示す情報とすることができ、また、四角領域Bの四隅をカットした八角形の領域とする場合には、八角形の領域を示す情報とすることができる。
【0100】
また、第1マスクデータとして、楕円領域Eをマスクするマスクデータの場合(図7)、図9に示すように楕円領域E内に楕円領域Eよりも小さい領域Fを設定する。そして、楕円領域E内かつ楕円領域Eよりも小さい領域F外は、第1損失値算出部として機能する損失値算出部34での損失値の計算に含めないマスクデータとすることができる。
【0101】
例えば、楕円領域Eよりも小さい領域F内のピクセルには、「1」を割り当て、背景領域(楕円領域Eの外側の領域)のピクセルには、「0」を割り当て、楕円領域E内かつ楕円領域Eよりも小さい領域F外の領域Gのピクセルには、「-1」を割り当てることで、3値の画像データとすることができる。
【0102】
損失値算出部34は、「-1」が割り当てられた領域G内のピクセルについては、損失値の計算に含めないようにする。
【0103】
尚、楕円領域E内かつ楕円領域Eよりも小さい領域Fを、注目領域Aを含む他の楕円領域又は円領域とする場合には、領域Gを特定する座標情報は、他の楕円領域又は円領域を示す情報とすることができる。
【0104】
更に、図8を用いて説明した第1マスクデータは、四角領域Bよりも小さい領域Cと、四角領域Bの外側の領域と、四角領域B内かつ四角領域Bよりも小さい領域C外の領域Dとを領域分類するマスクデータであるが、第1マスクデータとして、四角領域B内に四角領域Bよりも小さい領域Cを設定し、四角領域Bよりも小さい領域Cは、損失値算出部34での損失値の計算に含めないマスクデータとすることができる。この場合、図8を用いて説明した第1マスクデータの「-1」が割り当てられた領域と、「1」が割り当てられた領域とが逆転することになる。
【0105】
同様に、図9を用いて説明した第1マスクデータは、楕円領域Eよりも小さい領域Fと、楕円領域Eの外側の領域(背景領域)と、楕円領域E内かつ楕円領域Eよりも小さい領域F外の領域Gとを領域分類するマスクデータであるが、第1マスクデータとして、楕円領域E内に楕円領域Eよりも小さい領域Fを設定し、楕円領域Eよりも小さい領域Fは、損失値算出部34での損失値の計算に含めないマスクデータとすることができる。
【0106】
[学習装置の変形例]
本実施形態の学習装置10は、CNN32の出力が、入力画像のサイズになるようにデコンボリューション処理や拡大処理を行うが、学習装置の変形例では、拡大処理等を行わず、1回以上のプーリング処理により入力画像のサイズよりも小さくなった特徴マップをそのまま出力する。
【0107】
図10は、CNNでのプーリング処理を経る毎に入力画像のサイズに対して特徴マップのサイズが徐々に小さくなる様子を示す模式図である。
【0108】
学習装置の変形例では、CNNの出力層から出力される特徴マップ(入力画像のサイズになるように拡大処理されていない特徴マップ)と同じサイズの第1マスクデータ及び第2マスクデータを作成する。
【0109】
この場合、入力画像と同じサイズの第1マスクデータ、又は第2マスクデータに対して、CNNのプーリング処理と同じ処理(少なくとも1回のプーリング処理)を施すことで、CNNの出力層から出力される特徴マップと同じサイズの第1マスクデータ、又は第2マスクデータにすることができる。
【0110】
損失値算出部34は、CNNから出力される拡大処理されていない特徴マップと、少なくとも1回のプーリング処理により縮小された第1マスクデータ、又は第2マスクデータとに基づいて損失値を算出することができる。
【0111】
[学習方法]
図11は、本発明に係る画像学習方法の実施形態を示すフローチャートであり、図6に示した学習装置10の各部の処理手順に関して示している。
【0112】
第1データベース14及び第2データベース16には、それぞれ学習用の第1画像セット及び第2画像セットが格納される(画像セットを準備するステップS10)。
【0113】
第1画像セットの学習データを使用して学習する場合には、ステップS12に遷移し、第2画像セットの学習データを使用して学習する場合には、ステップS22に遷移する。尚、第1画像セットの学習データを使用するか、又は第2画像セットの学習データを使用するかは、予めプログラムにより決定されているものとする。
【0114】
ステップS12では、第1画像セットから1又は1バッチの学習データを取得する。第1画像セットから取得した学習データには、学習時の入力画像となる第1画像と、教師データとなる第1マスクデータを作成するための座標情報とを含む(図2参照)。
【0115】
図6に示した学習装置10のマスクデータ作成部38は、ステップS12で取得した座標情報を元に第1マスクデータを作成する(ステップS13)。
【0116】
続いて、ステップS12で取得した第1画像を、CNN32の入力画像31として入力し、CNN32から出力される特徴マップを取得する(ステップS14)。
【0117】
損失値算出部34は、ステップS14で取得した特徴マップとステップS13で作成した第1マスクデータとを比較し、損失値(第1損失値)を計算する(ステップS16)。
【0118】
パラメータ制御部36は、損失値算出部34により算出された第1損失値を元に、誤差逆伝播法によりCNN3の重みパラメータを調整(更新)する(ステップS18)。ステップS14からステップS18の処理は、誤差が収束するまで実行し、パラメータの更新を繰り返す。
【0119】
続いて、第1画像セット及び第2画像セットを使用した所望の学習が終了したか否かを判別し(ステップS20)、終了していないと判別されると(「No」の場合)、ステップS12又はステップS22に遷移する。
【0120】
そして、第2画像セットの学習データを使用して学習する場合には、ステップS22に進む。
【0121】
ステップS22では、第2画像セットから1又は1バッチの学習データを取得する。第2画像セットから取得した学習データには、学習時の入力画像となる第2画像と、教師データとなる第2マスクデータとを含む(図5参照)。
【0122】
次に、ステップS22で取得した第2画像を、CNN32の入力画像31として入力し、CNN32から出力される特徴マップを取得する(ステップS24)。
【0123】
損失値算出部34は、ステップS24で取得した特徴マップとステップS22で取得した第2マスクデータとを比較し、損失値(第2損失値)を計算する(ステップS26)。
【0124】
パラメータ制御部36は、損失値算出部34により算出された第2損失値を元に、誤差逆伝播法によりCNN3の重みパラメータを調整(更新)する(ステップS28)。ステップS24からステップS28の処理は、誤差が収束するまで実行し、パラメータの更新を繰り返す。
【0125】
その後、ステップS20において、第1画像セット及び第2画像セットを使用した所望の学習が終了したと判別されると(「Yes」の場合)、本学習方法による処理が終了する。
【0126】
[その他]
本実施形態の学習装置10の各種制御を実行するハードウエア的な構造は、次に示すような各種のプロセッサ(processor)である。各種のプロセッサには、ソフトウェア(プログラム)を実行して各種の制御部として機能する汎用的なプロセッサであるCPU(Central Processing Unit)、FPGA(Field Programmable Gate Array)などの製造後に回路構成を変更可能なプロセッサであるプログラマブルロジックデバイス(Programmable Logic Device:PLD)、ASIC(Application Specific Integrated Circuit)などの特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路などが含まれる。
【0127】
1つの制御部は、これら各種のプロセッサのうちの1つで構成されていてもよいし、同種又は異種の2つ以上のプロセッサ(例えば、複数のFPGA、あるいはCPUとFPGAの組み合わせ)で構成されてもよい。また、複数の制御部を1つのプロセッサで構成してもよい。複数の制御部を1つのプロセッサで構成する例としては、第1に、クライアントやサーバなどのコンピュータに代表されるように、1つ以上のCPUとソフトウェアの組合せで1つのプロセッサを構成し、このプロセッサが複数の制御部として機能する形態がある。第2に、システムオンチップ(System On Chip:SoC)などに代表されるように、複数の制御部を含むシステム全体の機能を1つのIC(Integrated Circuit)チップで実現するプロセッサを使用する形態がある。このように、各種の制御部は、ハードウエア的な構造として、上記各種のプロセッサを1つ以上用いて構成される。
【0128】
また、これらの各種のプロセッサのハードウエア的な構造は、より具体的には、半導体素子などの回路素子を組み合わせた電気回路(circuitry)である。
【0129】
また、本発明は上述した実施形態に限定されず、本発明の精神を逸脱しない範囲で種々の変形が可能であることは言うまでもない。
【符号の説明】
【0130】
10 学習装置
12 通信部
14 第1データベース
16 第2データベース
18 操作部
20 CPU
22 RAM
24 ROM
26 表示部
31 入力画像
32A 入力層
32B 中間層
32C 出力層
34 損失値算出部
35 マスクデータ
36 パラメータ制御部
37 座標情報
38 マスクデータ作成部
S10~S28 ステップ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11