(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-11
(45)【発行日】2023-01-19
(54)【発明の名称】学習プログラム、検出プログラム、学習装置、検出装置、学習方法および検出方法
(51)【国際特許分類】
G06V 10/82 20220101AFI20230112BHJP
G06T 7/00 20170101ALI20230112BHJP
【FI】
G06V10/82
G06T7/00 350C
(21)【出願番号】P 2018193387
(22)【出願日】2018-10-12
【審査請求日】2021-07-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】鈴木 彼方
(72)【発明者】
【氏名】遠藤 利生
【審査官】大塚 俊範
(56)【参考文献】
【文献】特開2018-032078(JP,A)
【文献】特開2012-203634(JP,A)
【文献】KIM, Nuri、他2名,Learning Instance-Aware Object Detection Using Determinantal Point Processes,Computer Vision and Pattern Recognition,ARXIV.ORG, CORNELL UNIVERSITY LIBRARY,2018年05月30日,p.1-19,https://doi.org/10.48550/arXiv.1805.10765
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00- 7/90
G06V 10/00-10/98
(57)【特許請求の範囲】
【請求項1】
コンピュータに、
複数のクラスのうち何れか1つのクラスに属する物体がそれぞれ写った
画像であって、物体が写った領域および当該物体が属するクラスを示す教師情報が付加された第3の画像から、前記教師情報が示す領域を切り出すことで生成された複数の第1の画像を用いて、入力された画像の特徴量を算出する特徴モデルを学習し、
前記特徴モデルを用いて、前記複数の第1の画像それぞれに対する第1の特徴量を算出し、前記複数のクラスと前記第1の特徴量との間の関係を示す特徴分布情報を生成し、
複数の第2の画像を用いて、入力された画像から物体が写った領域および当該物体が属するクラスを判定する検出モデルを学習する際に、前記特徴モデルを用いて、前記検出モデルにより前記複数の第2の画像の中から判定された領域に対する第2の特徴量を算出し、前記特徴分布情報および前記第2の特徴量を用いて、前記検出モデルのクラスの判定精度を示す評価値を修正し、前記修正した評価値に基づいて前記検出モデルを更新する、
処理を実行させる学習プログラム。
【請求項2】
前記特徴モデルは、複数のノードを含む入力層と、複数のノードを含む出力層と、前記入力層および前記出力層よりノードが少ない中間層とを有するオートエンコーダであり、
前記特徴モデルが算出する特徴量は、前記中間層で算出されるベクトルである、
請求項1記載の学習プログラム。
【請求項3】
前記評価値の修正では、前記第2の特徴量と前記検出モデルにより判定されたクラスに対応する前記第1の特徴量との間の距離を算出し、前記算出した距離が大きいほど前記判定精度の評価が低下するように前記評価値を修正する、
請求項1記載の学習プログラム。
【請求項4】
前記評価値の修正では、前記第2の特徴量と前記複数のクラスそれぞれに対応する前記第1の特徴量との間の距離を示す距離分布を算出し、前記距離分布と前記複数の第2の画像に付加された教師情報が示す正解クラスとの間の差異を示す第1の修正項目と、前記距離分布と前記検出モデルによるクラスの判定結果との間の差異を示す第2の修正項目とに基づいて、前記評価値を修正する、
請求項1記載の学習プログラム。
【請求項5】
前記評価値の修正では、前記検出モデルの学習の進行に応じて、前記第1の修正項目の重みを段階的に小さくし、前記第2の修正項目の重みを段階的に大きくする、
請求項
4記載の学習プログラム。
【請求項6】
コンピュータに、
入力された画像から物体が写った領域および当該物体が属するクラスを判定する検出モデルと、入力された画像の特徴量を算出する
モデルであって、複数のクラスのうち何れか1つのクラスに属する物体が写った領域および当該物体が属するクラスを示す教師情報が付加された第3の画像から、前記教師情報が示す領域を切り出すことで生成された複数の第1の画像を用いて学習された特徴モデルと、
前記複数のクラスと前記特徴モデルにより
前記複数の第1の画像それぞれから算出される
第1の特徴量との間の関係を示す特徴分布情報とを取得し、
前記検出モデルを用いて、
第2の画像の中から異なる複数の領域を判定し、前記複数の領域それぞれにおけるクラスの判定結果の信頼度を算出し、
前記複数の領域それぞれについて、前記特徴モデルを用いて当該領域に対する
第2の特徴量を算出し、前記特徴分布情報および前記算出した
第2の特徴量を用いて前記信頼度を修正し、
前記修正した信頼度に基づいて、前記複数の領域のうち1以上の領域を選択する、
処理を実行させる検出プログラム。
【請求項7】
複数のクラスのうち何れか1つのクラスに属する物体がそれぞれ写った
画像であって、物体が写った領域および当該物体が属するクラスを示す教師情報が付加された第3の画像から、前記教師情報が示す領域を切り出すことで生成された複数の第1の画像と、複数の第2の画像とを記憶する記憶部と、
前記複数の第1の画像を用いて、入力された画像の特徴量を算出する特徴モデルを学習し、前記特徴モデルを用いて、前記複数の第1の画像それぞれに対する第1の特徴量を算出し、前記複数のクラスと前記第1の特徴量との間の関係を示す特徴分布情報を生成し、前記複数の第2の画像を用いて、入力された画像から物体が写った領域および当該物体が属するクラスを判定する検出モデルを学習する際に、前記特徴モデルを用いて、前記検出モデルにより前記複数の第2の画像の中から判定された領域に対する第2の特徴量を算出し、前記特徴分布情報および前記第2の特徴量を用いて、前記検出モデルのクラスの判定精度を示す評価値を修正し、前記修正した評価値に基づいて前記検出モデルを更新する処理部と、
を有する学習装置。
【請求項8】
入力された画像から物体が写った領域および当該物体が属するクラスを判定する検出モデルと、入力された画像の特徴量を算出する
モデルであって、複数のクラスのうち何れか1つのクラスに属する物体が写った領域および当該物体が属するクラスを示す教師情報が付加された第3の画像から、前記教師情報が示す領域を切り出すことで生成された複数の第1の画像を用いて学習された特徴モデルと、
前記複数のクラスと前記特徴モデルにより
前記複数の第1の画像それぞれから算出される
第1の特徴量との間の関係を示す特徴分布情報とを記憶する記憶部と、
前記検出モデルを用いて、
第2の画像の中から異なる複数の領域を判定し、前記複数の領域それぞれにおけるクラスの判定結果の信頼度を算出し、前記複数の領域それぞれについて、前記特徴モデルを用いて当該領域に対する
第2の特徴量を算出し、前記特徴分布情報および前記算出した
第2の特徴量を用いて前記信頼度を修正し、前記修正した信頼度に基づいて、前記複数の領域のうち1以上の領域を選択する処理部と、
を有する検出装置。
【請求項9】
コンピュータが、
複数のクラスのうち何れか1つのクラスに属する物体がそれぞれ写った
画像であって、物体が写った領域および当該物体が属するクラスを示す教師情報が付加された第3の画像から、前記教師情報が示す領域を切り出すことで生成された複数の第1の画像を用いて、入力された画像の特徴量を算出する特徴モデルを学習し、
前記特徴モデルを用いて、前記複数の第1の画像それぞれに対する第1の特徴量を算出し、前記複数のクラスと前記第1の特徴量との間の関係を示す特徴分布情報を生成し、
複数の第2の画像を用いて、入力された画像から物体が写った領域および当該物体が属するクラスを判定する検出モデルを学習する際に、前記特徴モデルを用いて、前記検出モデルにより前記複数の第2の画像の中から判定された領域に対する第2の特徴量を算出し、前記特徴分布情報および前記第2の特徴量を用いて、前記検出モデルのクラスの判定精度を示す評価値を修正し、前記修正した評価値に基づいて前記検出モデルを更新する、
学習方法。
【請求項10】
コンピュータが、
入力された画像から物体が写った領域および当該物体が属するクラスを判定する検出モデルと、入力された画像の特徴量を算出する
モデルであって、複数のクラスのうち何れか1つのクラスに属する物体が写った領域および当該物体が属するクラスを示す教師情報が付加された第3の画像から、前記教師情報が示す領域を切り出すことで生成された複数の第1の画像を用いて学習された特徴モデルと、
前記複数のクラスと前記特徴モデルにより
前記複数の第1の画像それぞれから算出される
第1の特徴量との間の関係を示す特徴分布情報とを取得し、
前記検出モデルを用いて、
第2の画像の中から異なる複数の領域を判定し、前記複数の領域それぞれにおけるクラスの判定結果の信頼度を算出し、
前記複数の領域それぞれについて、前記特徴モデルを用いて当該領域に対する
第2の特徴量を算出し、前記特徴分布情報および前記算出した
第2の特徴量を用いて前記信頼度を修正し、
前記修正した信頼度に基づいて、前記複数の領域のうち1以上の領域を選択する、
検出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は学習プログラム、検出プログラム、学習装置、検出装置、学習方法および検出方法に関する。
【背景技術】
【0002】
入力された画像の中から所定の種類の物体を検出する画像認識技術がある。画像認識では、人間や車両など検出したい物体の種類を示す複数のクラスを設定しておき、入力された画像の中から、何れかのクラスに属する物体が写っている領域および当該物体が属するクラスを判定することがある。領域およびクラスの判定には、予め機械学習によって生成された検出モデルを使用することがある。機械学習は深層学習(ディープラーニング)であることがあり、検出モデルは多層ニューラルネットワークであることがある。
【0003】
1枚の画像から1以上の領域を検出し各領域のクラスを判定する検出モデルを、ディープラーニングによって学習する技術として、SSD(Single Shot MultiBox Detector)が提案されている。SSDの検出モデルは、検出した領域の位置を示す位置情報と、当該領域に写った物体が特定のクラスに属する確率を示す信頼度とを出力する。
【0004】
なお、画像の中から人間の顔を検出するための顔検出モデルを学習する学習装置が提案されている。また、車載カメラの画像の中から歩行者を検出するための識別モデルを学習する識別モデル生成装置が提案されている。また、侵入者の体の一部分が隠蔽されていても監視カメラの画像の中から侵入者を検出できるように、検出モデルを学習する学習装置が提案されている。また、対象データの次元数よりも分類クラス数が少ない場合であっても、認識精度の高い認識モデルを学習できる認識モデル学習装置が提案されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2005-44330号公報
【文献】特開2010-211460号公報
【文献】特開2011-210181号公報
【文献】特開2014-10778号公報
【非特許文献】
【0006】
【文献】Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg, "SSD: Single Shot Multibox Detector," 14th European Conference on Computer Vision (ECCV2016), pp. 21-37, vol. 9905, 2016.
【発明の概要】
【発明が解決しようとする課題】
【0007】
画像認識の適用場面の中には、異なるクラスに属する物体の形状や模様が比較的近似しており、クラス数も少ない場合がある。例えば、医療画像の中から特定の細胞組織を検出し、陰性や陽性など各細胞組織の状態を判定する場合、状態による組織細胞の形状や模様の違いが小さく、区別したい状態の数も少ない。この場合には、学習した検出モデルにおいて、位置ずれによる誤分類が発生しやすいという問題がある。
【0008】
位置ずれによる誤分類は、対象画像から物体が写った領域を正確に切り出すことができれば物体を正しいクラスに分類できる一方、物体が写った領域を少しずれて切り出してしまうと物体を誤ったクラスに分類してしまうものである。よって、領域の検出位置の正確性が不十分である検出モデルが生成されてしまうと、機械学習に用いた訓練データ以外の画像に対してクラス分類の精度が低くなってしまう。
【0009】
1つの側面では、本発明は、画像に写った物体のクラス分類の精度を向上させる学習プログラム、検出プログラム、学習装置、検出装置、学習方法および検出方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
1つの態様では、コンピュータに以下の処理を実行させる学習プログラムが提供される。複数のクラスのうち何れか1つのクラスに属する物体がそれぞれ写った複数の第1の画像を用いて、入力された画像の特徴量を算出する特徴モデルを学習する。特徴モデルを用いて、複数の第1の画像それぞれに対する第1の特徴量を算出し、複数のクラスと第1の特徴量との間の関係を示す特徴分布情報を生成する。複数の第2の画像を用いて、入力された画像から物体が写った領域および当該物体が属するクラスを判定する検出モデルを学習する際に、特徴モデルを用いて、検出モデルにより複数の第2の画像の中から判定された領域に対する第2の特徴量を算出し、特徴分布情報および第2の特徴量を用いて、検出モデルのクラスの判定精度を示す評価値を修正し、修正した評価値に基づいて検出モデルを更新する。
【0011】
また、1つの態様では、コンピュータに以下の処理を実行させる検出プログラムが提供される。入力された画像から物体が写った領域および当該物体が属するクラスを判定する検出モデルと、入力された画像の特徴量を算出する特徴モデルと、複数のクラスと特徴モデルにより算出される特徴量との間の関係を示す特徴分布情報とを取得する。検出モデルを用いて、対象画像の中から異なる複数の領域を判定し、複数の領域それぞれにおけるクラスの判定結果の信頼度を算出する。複数の領域それぞれについて、特徴モデルを用いて当該領域に対する特徴量を算出し、特徴分布情報および算出した特徴量を用いて信頼度を修正する。修正した信頼度に基づいて、複数の領域のうち1以上の領域を選択する。
【0012】
また、1つの態様では、記憶部と処理部とを有する学習装置が提供される。また、1つの態様では、記憶部と処理部とを有する検出装置が提供される。また、1つの態様では、コンピュータが実行する学習方法が提供される。また、1つの態様では、コンピュータが実行する検出方法が提供される。
【発明の効果】
【0013】
1つの側面では、画像に写った物体のクラス分類の精度が向上する。
【図面の簡単な説明】
【0014】
【
図1】第1の実施の形態の学習装置の例を説明する図である。
【
図2】第2の実施の形態の検出装置の例を説明する図である。
【
図3】機械学習装置のハードウェア例を示すブロック図である。
【
図9】予測信頼度と特徴信頼度と誤差修正量の関係の第1の例を示す図である。
【
図10】予測信頼度と特徴信頼度と誤差修正量の関係の第2の例を示す図である。
【
図11】腎臓組織画像からの糸球体の検出例を示す図である。
【
図12】機械学習装置の機能例を示すブロック図である。
【
図14】訓練データテーブルと特徴空間テーブルの例を示す図である。
【
図15】他の訓練データテーブルと誤差評価テーブルの例を示す図である。
【
図16】テストデータテーブルと他の誤差評価テーブルの例を示す図である。
【
図17】特徴モデル学習の手順例を示すフローチャートである。
【
図18】検出モデル学習の手順例を示すフローチャートである。
【
図19】検出モデルテストの手順例を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0016】
図1は、第1の実施の形態の学習装置の例を説明する図である。
第1の実施の形態の学習装置10は、入力された画像から物体が写った領域および当該物体が属するクラスを判定するための検出モデル13を生成する。生成された検出モデル13を利用して領域およびクラスを判定する画像認識は、学習装置10が行ってもよいし他の装置が行ってもよい。学習装置10は、情報処理装置またはコンピュータと言うこともできる。学習装置10は、クライアント装置でもよいしサーバ装置でもよい。
【0017】
学習装置10は、記憶部11および処理部12を有する。
記憶部11は、RAM(Random Access Memory)などの揮発性の半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。プログラムには学習プログラムが含まれる。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0018】
記憶部11は、複数のクラスのうち何れか1つのクラスに属する物体がそれぞれ写った複数の第1の画像を記憶する。また、記憶部11は、複数の第2の画像を記憶する。複数の第1の画像は、後述する特徴モデル14を学習するための訓練データである。複数の第2の画像は、検出モデル13を学習するための訓練データである。
【0019】
複数の第1の画像と複数の第2の画像は、同一のオリジナル画像から切り出されたものであってもよい。例えば、複数の第1の画像は、オリジナル画像に付加された教師情報に含まれる位置情報に従って、オリジナル画像の中から物体が写った領域を正確に切り出したものである。複数の第1の画像は、検出したい物体が写った領域以外の背景領域が少ないことが好ましい。また、例えば、複数の第2の画像は、オリジナル画像の中から物体が写った領域を包含する領域を切り出したものである。複数の第2の画像は、検出したい物体が写った領域以外の背景領域を多く含んでいてよい。複数の第2の画像として切り出す領域は、オリジナル画像の中からランダムに決定してもよい。
【0020】
ただし、複数の第1の画像と複数の第2の画像は、異なるオリジナル画像から切り出されたものであってもよい。また、複数の第2の画像の生成に、複数の第1の画像と同じオリジナル画像を使用し、更に別のオリジナル画像を追加することも可能である。
【0021】
複数のクラスは、入力された画像の中から検出したい物体の種類を示す。医療画像から細胞組織の状態を判定する医療画像診断においては、複数のクラスは陰性や陽性など細胞組織の状態を示す。第1の実施の形態の学習装置10は、クラス間の物体の形状や模様が近似しており、クラス数が少ない画像認識に好適である。例えば、第1の実施の形態の学習装置10は、腎生検などの医療画像診断に好適である。
【0022】
処理部12は、複数の第2の画像から検出モデル13を学習する前に、複数の第1の画像から特徴モデル14を学習する。特徴モデル14は、入力された画像の特徴量を算出するためのモデルである。特徴モデル14の学習には、例えば、ディープラーニングが用いられる。特徴モデル14は、例えば、多層ニューラルネットワークの一種であるオートエンコーダである。オートエンコーダは、入力層と出力層と中間層とを含む。
【0023】
入力層は画像が入力される層であり、ニューロンに相当する複数のノードを含む。出力層は画像が出力される層であり、ニューロンに相当する複数のノードを含む。中間層は入力層と出力層の間に位置し、ニューロンに相当する複数のノードを含む。中間層のノード数は入力層や出力層よりも少ない。オートエンコーダは、複数の中間層を含み得る。ただし、第1の実施の形態では最もノード数が少ない中間層、すなわち、最も次元数が少ない中間層に着目する。オートエンコーダは、ある層のノードと次の層のノードとを、シナプスに相当するエッジで結合している。オートエンコーダの学習によって、シナプスの重みが決定される。オートエンコーダは、出力層から出力される画像が、入力層に入力される画像に近付くように学習される。画像の特徴を中間層に獲得したうえで、出力画像が入力画像と一致することが理想的である。
【0024】
処理部12は、学習した特徴モデル14を用いて、複数の第1の画像それぞれに対する第1の特徴量を算出し、複数のクラスと第1の特徴量との間の関係を示す特徴分布情報15を生成する。特徴モデル14がオートエンコーダである場合、ある第1の画像に対する第1の特徴量として、例えば、当該第1の画像をオートエンコーダに入力した際の中間層のノードの値を列挙したベクトルを用いることができる。最も次元数が少ない中間層に現れるベクトルは、入力された画像の特徴を凝縮して表現していると言える。
【0025】
同じクラスに属する第1の画像からは近似する第1の特徴量が算出され、異なるクラスに属する第1の画像からは近似しない第1の特徴量が算出されることが期待される。よって、特徴分布情報15は、ベクトル空間におけるクラス毎の第1の特徴量の分布を示している。特徴分布情報15は、各クラスの第1の特徴量の平均と分散を含んでもよい。
【0026】
ただし、特徴モデル14が算出する特徴量は、物体が写った領域の切り出し位置の正確性に鋭敏に反応する。複数の第1の画像のように物体が写った領域が正確に切り出されている場合、特徴分布情報15が示す分布に従った特徴量が算出される。一方、物体が写った領域が正確に切り出されていない場合、すなわち、理想的な切り出し位置からずれて切り出されている場合、特徴分布情報15が示す分布から外れた特徴量が算出される。
【0027】
特徴モデル14および特徴分布情報15が生成されると、処理部12は、複数の第2の画像を用いて検出モデル13を学習する。検出モデル13は、入力された画像から物体が写った領域および当該物体のクラスを判定するためのモデルである。例えば、検出モデル13の学習はディープラーニングであり、検出モデル13は多層ニューラルネットワークである。処理部12は、現在の検出モデル13を用いて複数の第2の画像から領域およびクラスを判定し、クラスの判定精度を示す評価値16を算出し、算出した評価値16に基づいて評価が高くなるように検出モデル13を更新することを繰り返す。評価値16の算出には、例えば、正解領域および正解クラスを示す教師情報が参照される。
【0028】
このとき、処理部12は、検出モデル13により判定された領域の部分画像を複数の第2の画像の中から抽出し、判定された領域に対する第2の特徴量を特徴モデル14を用いて算出する。処理部12は、算出した第2の特徴量と特徴分布情報15とを用いて評価値16を修正する。例えば、処理部12は、検出モデル13によって判定されたクラスに対応する特徴分布情報15の第1の特徴量(例えば、当該クラスの第1の特徴量の平均)と第2の特徴量との間の距離を算出する。処理部12は、距離が小さいほど評価が高くなり距離が大きいほど評価が低くなるように評価値16を修正する。
【0029】
このようにして、処理部12は、修正後の評価値16を用いて検出モデル13を更新する。例えば、処理部12は、修正後の評価値16による評価が高くなるように、多層ニューラルネットワークのシナプスの重みを更新する。
【0030】
評価値16を算出するにあたり、判定されたクラスが正解クラスであるか否かと、判定された領域が正解領域に近いか否かの2つの観点を総合的に評価した場合、領域検出の正確性が不十分な検出モデル13が生成されてしまうことがある。これは、訓練データである複数の第2の画像に過度に適合する過学習によって、領域検出の正確性が不十分であってもクラス判定が正確であり評価値16による評価が高くなることがあるためである。この場合、訓練データ以外の画像に対しては誤ったクラス判定が発生しやすくなる。これに対して、上記の特徴量に基づいて評価値16を修正することで、領域検出の位置ずれに対して評価値16が鋭敏に反応するようになり、領域検出の正確性が不十分であるまま検出モデル13の学習が収束してしまうことを抑制できる。
【0031】
このように第1の実施の形態の学習装置10によれば、画像に写った物体のクラス分類の精度が高い検出モデル13を生成することができる。特に、医療画像診断など、クラス間の物体の形状や模様が近似しておりクラス数が少ない画像認識においても、検出モデル13による誤ったクラス分類を抑制することができる。
【0032】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の検出装置の例を説明する図である。
【0033】
第2の実施の形態の検出装置20は、入力された画像から物体が写った領域および当該物体が属するクラスを判定する。検出装置20は、画像認識に検出モデル23を使用する。検出モデル23は、第1の実施の形態の学習装置10が生成する検出モデル13であってもよい。検出装置20は、第1の実施の形態の学習装置10と同一の装置であってもよい。検出装置20は、情報処理装置またはコンピュータと言うこともできる。検出装置20は、クライアント装置でもよいしサーバ装置でもよい。
【0034】
検出装置20は、記憶部21および処理部22を有する。記憶部21は、RAMなどの揮発性の半導体メモリでもよいし、HDDやフラッシュメモリなどの不揮発性ストレージでもよい。処理部22は、例えば、CPU、MPU、GPU、DSPなどのプロセッサである。ただし、処理部22は、ASICやFPGAなどの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部21でもよい)に記憶されたプログラムを実行する。プログラムには検出プログラムが含まれる。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0035】
記憶部21は、検出モデル23、特徴モデル24および特徴分布情報25を記憶する。
検出モデル23は、入力された画像から物体が写った領域および複数のクラスのうち当該物体が属するクラスを判定する。検出モデル23は、機械学習によって生成され得る。例えば、検出モデル23は、ディープラーニングによって生成される多層ニューラルネットワークである。複数のクラスは、入力された画像の中から検出したい物体の種類を示す。医療画像から細胞組織の状態を判定する医療画像診断においては、複数のクラスは陰性や陽性など細胞組織の状態を示す。第2の実施の形態の検出装置20は、クラス間の物体の形状や模様が近似しており、クラス数が少ない画像認識に好適である。例えば、第2の実施の形態の検出装置20は、腎生検などの医療画像診断に好適である。
【0036】
特徴モデル24は、入力された画像の特徴量を算出する。特徴モデル24は、機械学習によって生成され得る。例えば、特徴モデル24は、ディープラーニングによって生成される多層ニューラルネットワークであり、オートエンコーダであってもよい。特徴モデル24は、第1の実施の形態の学習装置10が生成する特徴モデル14であってもよい。特徴モデル24がオートエンコーダである場合、入力された画像に対する特徴量として、例えば、中間層のノードの値を列挙したベクトルを用いることができる。最も次元数が少ない中間層に現れるベクトルは、入力された画像の特徴を凝縮して表現していると言える。
【0037】
特徴分布情報25は、複数のクラスと特徴モデル24により算出される特徴量との間の関係を示す。特徴分布情報25は、第1の実施の形態の学習装置10が生成する特徴分布情報15であってもよい。同じクラスに属する画像からは近似する特徴量が算出され、異なるクラスに属する画像からは近似しない特徴量が算出されることが期待される。よって、特徴分布情報25は、ベクトル空間におけるクラス毎の特徴量の分布を示している。特徴分布情報25は、各クラスの特徴量の平均と分散を含んでもよい。
【0038】
ただし、特徴モデル24が算出する特徴量は、物体が写った領域の切り出し位置の正確性に鋭敏に反応する。物体が写った領域が正確に切り出されている場合、特徴分布情報25が示す分布に従った特徴量が算出される。一方、物体が写った領域が正確に切り出されていない場合、すなわち、理想的な切り出し位置からずれて切り出されている場合、特徴分布情報25が示す分布から外れた特徴量が算出される。
【0039】
処理部22は、画像認識の対象となる対象画像26から、検出モデル23を用いて物体が写った1以上の領域を検出し、検出した各領域の物体のクラスを判定する。このとき、処理部22は、対象画像26の中から異なる複数の領域(候補領域)を判定し、複数の領域それぞれにおけるクラスの判定結果の信頼度を算出する。複数の領域は同一でなければ重複していてもよい。信頼度は、ある領域に写った物体が特定のクラスに属する確率を示し、検出モデル23によって算出される。例えば、検出モデル23に従って、処理部22は、対象画像26から領域26a,26bを検出する。処理部22は、領域26aに写った物体がクラスC1である確率として信頼度27aを算出し、領域26bに写った物体がクラスC3である確率として信頼度27bを算出する。
【0040】
処理部22は、検出した複数の領域それぞれの部分画像を対象画像26から抽出し、特徴モデル24を用いて複数の領域それぞれに対する特徴量を算出する。処理部22は、複数の領域それぞれについて、特徴分布情報25および算出した特徴量を用いて信頼度を修正する。例えば、処理部22は、領域26aに対する特徴量を算出し、算出した特徴量を用いて信頼度27aを修正する。また、処理部22は、領域26bに対する特徴量を算出し、算出した特徴量を用いて信頼度27bを修正する。
【0041】
信頼度の修正は、例えば、次のように行う。処理部22は、特定のクラスに対応する特徴分布情報25の特徴量(例えば、当該クラスの特徴量の平均)と特徴モデル24から算出された特徴量との間の距離を算出する。処理部22は、距離が小さいほど信頼度が高くなり距離が大きいほど信頼度が低くなるように信頼度を修正する。元の信頼度と距離に反比例する特徴信頼度との加重平均を、修正後の信頼度としてもよい。
【0042】
そして、処理部22は、修正後の信頼度に基づいて、検出された複数の領域のうち1以上の領域を選択する。信頼度が高い領域ほど選択されやすくなる。例えば、処理部22は、修正後の信頼度が閾値を超える領域を選択し、修正後の信頼度が閾値以下である領域を選択しない。修正後の信頼度27aが閾値を超えており、修正後の信頼度27bが閾値以下である場合、領域26aが選択され領域26bは選択されない。選択された領域は、何れかのクラスに属する物体が写った領域を示す検出結果として出力される。
【0043】
検出モデル23によって判定された領域が、物体が写っている正しい領域と一致している場合、検出モデル23によって算出された信頼度の修正は少ないと期待される。一方、検出モデル23によって判定された領域が、物体が写っている正しい領域からずれている場合、検出モデル23によって算出された信頼度が下方に修正されると期待される。よって、検出モデル23による領域検出の精度が不十分である場合であっても、誤った領域が検出結果として出力されてしまうことを抑制できる。
【0044】
このように第2の実施の形態の検出装置20によれば、画像から領域およびクラスを判定する精度を向上させることができる。特に、医療画像診断など、クラス間の物体の形状や模様が近似しておりクラス数が少ない画像認識においても、検出モデル23による誤った領域検出やクラス分類を抑制することができる。
【0045】
[第3の実施の形態]
次に、第3の実施の形態を説明する。
図3は、機械学習装置のハードウェア例を示すブロック図である。
【0046】
機械学習装置100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。上記ユニットはバスに接続されている。
【0047】
機械学習装置100は、第1の実施の形態の学習装置10および第2の実施の形態の検出装置20に対応する。CPU101は、第1の実施の形態の処理部12および第2の実施の形態の処理部22に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11および第2の実施の形態の記憶部21に対応する。なお、機械学習装置100は、コンピュータまたは情報処理装置と言うこともできる。機械学習装置100は、クライアント装置でもよいしサーバ装置でもよい。
【0048】
CPU101は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、機械学習装置100は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または「プロセッサ」と言うことがある。
【0049】
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、機械学習装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【0050】
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、機械学習装置100は、フラッシュメモリやSSD(Solid State Drive)など他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【0051】
画像信号処理部104は、CPU101からの命令に従って、機械学習装置100に接続されたディスプレイ104aに画像を出力する。ディスプレイ104aとしては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
【0052】
入力信号処理部105は、機械学習装置100に接続された入力デバイス105aから入力信号を取得し、CPU101に出力する。入力デバイス105aとしては、マウス、タッチパネル、タッチパッド、キーボードなど、任意の種類の入力デバイスを用いることができる。また、機械学習装置100に、複数の入力デバイスが接続されていてもよい。
【0053】
媒体リーダ106は、記録媒体106aに記録されたプログラムやデータを読み取る読み取り装置である。記録媒体106aとして、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。媒体リーダ106は、例えば、記録媒体106aから読み取ったプログラムやデータをRAM102またはHDD103に格納する。
【0054】
通信インタフェース107は、ネットワーク107aに接続され、ネットワーク107aを介して他の情報処理装置と通信を行う。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0055】
第3の実施の形態の機械学習装置100は、ディープラーニングにより、訓練データを用いて多層ニューラルネットワークである検出モデルを学習し、訓練データと異なるテストデータを用いて検出モデルの検出能力をテストする。
【0056】
第3の実施の形態の機械学習装置100は、腎生検細胞検出システムに使用される。腎生検は、腎臓から組織を採取して評価する検査である。腎生検では、顕微鏡画像の中から糸球体と呼ばれる組織を検出し、各糸球体の状態を判定する。糸球体は、老廃物を含む液体である原尿を血液から分離する組織である。糸球体には陰性や陽性などの複数の状態があり、状態に応じて点の有無など模様が異なる。機械学習装置100は、顕微鏡画像から糸球体を検出して糸球体の状態を判定するための検出モデルを生成する。
【0057】
腎生検では、腎臓組織を拡大した顕微鏡画像が分析対象であるため、様々な種類の物体が画像に写っているわけではなく識別すべきクラスは少数である。また、模様の小さな差異によって糸球体の状態を区別するため、クラス間の物体の違いは小さい。機械学習装置100は、このようにクラス間の物体の差異が小さくクラス数が少ない場合に好適である。ただし、機械学習装置100は、腎生検以外の医療画像診断に応用することも可能であり、他の分野の画像認識に応用することも可能である。
【0058】
次に、検出モデルのクラス分類精度を低下させる要因について説明する。
図4は、学習および検出の第1の例を示す図である。
ここでは、クラスC1,C2,C3の何れかのクラスに属する物体が写った領域を画像から検出し、当該物体のクラスを判定することを考える。
【0059】
小画像31は、検出モデルを学習する際に使用する訓練データに含まれる1つの画像である。検出モデルは、領域の位置とクラスC1,C2,C3それぞれの予測信頼度を出力する。あるクラスの予測信頼度は、領域に写った物体が当該クラスの物体である確率を示す。検出モデルの学習では、位置誤差と信頼度誤差の合計が低下するように検出モデルが更新される。位置誤差は、検出モデルによって検出される領域と予め指定された正しい領域との間の誤差である。信頼度誤差は、検出モデルによって算出されるクラスC1,C2,C3の予測信頼度の分布と予め指定された正しいクラスとの間の誤差である。
【0060】
位置誤差と信頼度誤差がバランスよく低下するように検出モデルが学習された場合、例えば、小画像31から領域31aが検出され、クラスC1の予測信頼度が高くクラスC2,C3の予測信頼度が低く算出されるようになる。領域31aの位置は正解に十分近く、かつ、クラスC1は正解クラスである。この場合、訓練データと異なるテストデータに対しても、検出モデルは十分な判定精度をもつことが期待できる。
【0061】
小画像32は、検出モデルをテストする際に使用するテストデータに含まれる1つの画像である。上記の検出モデルを使用すると、例えば、小画像32から領域32aが検出され、クラスC3の予測信頼度が高くクラスC1,C2の予測信頼度が低く算出される。領域32aの位置は正解に十分近く、かつ、クラスC3は正解クラスである。
【0062】
図5は、学習および検出の第2の例を示す図である。
小画像33は、検出モデルを学習する際に使用する訓練データに含まれる1つの画像である。上記のように、検出モデルの学習では、位置誤差と信頼度誤差の合計が低下するように検出モデルが更新される。このとき、位置誤差は十分に低下していないものの信頼度誤差が大きく低下することで、合計の誤差が小さくなり検出モデルの学習が収束してしまうことがある。これは、訓練データに過度に依存する過学習によって、本来不要な背景の模様などの情報も検出モデルに取り込んでしまうことで発生し得る。
【0063】
例えば、小画像33から領域33aが検出され、クラスC1の予測信頼度が高くクラスC2,C3の予測信頼度が低く算出されるようになる。クラスC1は正解クラスであるものの、領域33aの位置は正解からずれている。この場合、訓練データと異なるテストデータに対して、検出モデルは十分な判定精度を維持できない可能性がある。
【0064】
小画像34は、検出モデルをテストする際に使用するテストデータに含まれる1つの画像である。上記の検出モデルを使用すると、例えば、小画像34から領域34aが検出され、クラスC1の予測信頼度が高くクラスC2,C3の予測信頼度が低く算出される。領域34aの位置は正解からずれている。このため、物体の形状の一部分が領域34aから外れることがあり、本来不要な背景の模様などが領域34aに多く含まれることがある。その影響から、正解クラスであるクラスC3の予測信頼度が低くなっており、検出モデルは小画像34に対して誤ったクラス分類を行っている。
【0065】
このように、信頼度誤差が大きく低下して位置誤差の低下が不十分なまま検出モデルの学習が終了すると、クラス間の物体の差異が小さくクラス数が少ない画像認識においては、領域検出の位置ずれに起因する誤ったクラス分類が発生しやすい。そこで、第3の実施の形態の機械学習装置100は、位置ずれに起因する誤ったクラス分類が抑制されるように検出モデルを学習する。更に、機械学習装置100は、位置ずれに起因する誤った領域検出が抑制されるように検出モデルのテストを工夫する。
【0066】
以下、検出モデルの学習の流れおよびテストの流れを説明する。
図6は、訓練データ生成の例を示す図である。
機械学習装置100は、検出モデルを学習する前に特徴モデルを学習する。特徴モデルは、入力される小画像の特徴量を算出するための多層ニューラルネットワークである。第3の実施の形態の特徴モデルが算出する特徴量は、物体が写った領域を切り出す際の位置ずれに対して鋭敏に反応する。異なるクラスに属する物体が写った小画像からは、大きく異なる特徴量が算出される。また、位置ずれによって背景の模様などを多く含む小画像からは、正しく切り出された小画像とは大きく異なる特徴量が算出される。この特徴量を用いることで、検出モデルの学習の中に位置ずれの評価を組み込むことができる。
【0067】
特徴モデルの学習用の訓練データと検出モデルの学習用の訓練データは、同一の学習用画像から生成することが可能である。正解領域および正解クラスを示す教師情報が付加された医療画像は多数用意できるとは限らないため、特徴モデルの学習と検出モデルの学習に共通の学習用画像を使用できることは有益である。
【0068】
例えば、機械学習装置100は、教師情報が付加された腎臓組織画像40を読み込む。腎臓組織画像40には異なるクラスに属する複数の糸球体が写っている。教師情報は、糸球体を囲む矩形領域の位置とクラスを示す。領域の位置は、左上の頂点のX座標とY座標、横の長さ(幅)および縦の長さ(高さ)によって特定される。
【0069】
機械学習装置100は、特徴モデルの学習用の訓練データとして、小画像41などの複数の小画像を腎臓組織画像40から切り出す。小画像41などは、教師情報が示す正解領域の外枠であるバウンディングボックス(矩形領域)に沿って、腎臓組織画像40の一部分を切り出したものである。機械学習装置100は、小画像41などをそれぞれサイズ変更し、特徴モデルの入力に対応するサイズをもつ小画像42などの複数の小画像を生成する。
【0070】
その後、機械学習装置100は、小画像42などに対してスライドやカラー変換やスケール変換などのデータ拡張を行い、小画像43,44などの複数の小画像を生成する。小画像43,44などが、特徴モデルの学習に使用する訓練データになる。データ拡張前の1つの小画像から、異なるパターンのデータ拡張を行うことで2以上の小画像を生成することが可能である。例えば、小画像42から小画像43,44が生成される。データ拡張によって訓練データに含まれる小画像のバリエーションを増やすことができ、特徴モデルの学習の精度を向上させることが可能となる。
【0071】
また、機械学習装置100は、検出モデルの学習用の訓練データとして、小画像45などの複数の小画像を腎臓組織画像40から切り出す。小画像45などは、バウンディングボックスを包含するようにバウンディングボックスより大きい領域を腎臓組織画像40から切り出したものである。小画像45などのサイズは、検出モデルの入力に対応するサイズとする。小画像45の切り出し位置はランダムでよい。
【0072】
その後、機械学習装置100は、小画像45などに対してスライドやカラー変換やスケール変換などのデータ拡張を行い、小画像46,47などの複数の小画像を生成する。小画像46,47などが、検出モデルの学習に使用する訓練データになる。データ拡張前の1つの小画像から、異なるパターンのデータ拡張を行うことで2以上の小画像を生成することが可能である。例えば、小画像45から小画像46,47が生成される。データ拡張によって訓練データに含まれる小画像のバリエーションを増やすことができ、検出モデルの学習の精度を向上させることが可能となる。
【0073】
上記の訓練データを用いて学習される特徴モデルは、オートエンコーダである。
図7は、オートエンコーダの例を示す図である。
オートエンコーダ50は、多層ニューラルネットワークである。オートエンコーダ50は、ニューロンに相当する複数のノードと、シナプスに相当するノード間のエッジとを含む。隣接する層のノードがシナプスで結合される。シナプスには重みが割り当てられ、前の層のノードの値に重みをかけて次の層のノードの値が算出される。オートエンコーダ50の学習を通じてシナプスの重みが決定される。
【0074】
オートエンコーダ50は、入力層51、中間層52~54および出力層55を含む。
図7は3つの中間層を示しているが、中間層の数を変更することもできる。
入力層51は、小画像が入力される層であり複数のノードを含む。中間層52は、入力層51の次の層であり入力層51より少ないノードを含む。すなわち、中間層52は入力層51より次元数が少ない。中間層53は、中間層52の次の層であり中間層52より少ないノードを含む。中間層53はオートエンコーダ50の中で最も次元数が少ない。中間層54は、中間層53の次の層であり中間層53より多いノードを含む。出力層55は、小画像を出力する層であり中間層54より多いノードを含む。入力層51の次元数と出力層55の次元数が同じであってもよい。
【0075】
オートエンコーダ50のシナプスの重みは、出力層55から出力される小画像が入力層51に入力される小画像にできる限り近くなるように学習される。入力層51に入力される小画像と出力層55から出力される小画像が同一になることが理想である。ある小画像が入力されたときに中間層53のノードの値を列挙したベクトルは、当該小画像から冗長な情報を削除して当該小画像を復元するために重要な情報を凝縮したものであり、当該小画像に対する特徴量とみなすことができる。オートエンコーダ50の中で入力層51から中間層53までの部分をエンコーダと言うことができ、中間層53から出力層55までの部分をデコーダと言うことができる。
【0076】
中間層53の次元数は入力層51の次元数より少ない。そのため、オートエンコーダ50に入力される小画像が何れかのクラスに属する物体が写ったものである場合、当該物体を復元するために重要である情報が優先的に中間層53のノードに出現することになる。中間層53から抽出される特徴量は、物体の形状や模様の違いに対して鋭敏に反応し、また、小画像を切り出す位置の位置ずれに対しても鋭敏に反応する。すなわち、異なるクラスの物体からは大きく異なる特徴量が算出される。また、切り出す位置が正しい位置からずれた小画像からは、本来の特徴量と大きく異なる特徴量が算出される。
【0077】
なお、第3の実施の形態では入力画像と出力画像が同じになるようにオートエンコーダ50を学習しているが、他の方法でオートエンコーダ50を学習してもよい。例えば、機械学習装置100は、入力画像の一部分をランダムにマスクする。例えば、機械学習装置100は、入力画像の一部分である矩形領域を白などの所定の色で塗りつぶす。機械学習装置100は、出力画像がマスク前の元の入力画像にできる限り近くなるように、オートエンコーダ50のシナプスの重みを学習する。すなわち、機械学習装置100は、マスクした領域が補完されるようにオートエンコーダ50を学習する。マスクした領域を補完するにはクラスに応じた物体らしさを表現することになるため、中間層53から抽出される特徴量は物体の形状や模様や位置に鋭敏に反応することになる。
【0078】
特徴モデルが学習されると、機械学習装置100は、特徴モデルの学習用の訓練データを用いて、クラスと特徴量との間の関係を算出する。
図8は、特徴空間の例を示す図である。
【0079】
特徴空間60は、オートエンコーダ50の中間層53の次元数など、特徴量の次元数をもつベクトル空間である。特徴モデルの学習用の訓練データに含まれる1つの小画像から1つの特徴量が算出され、1つの特徴量が特徴空間60の1点に対応する。機械学習装置100は、特徴空間60を生成するために、特徴モデルの学習用の訓練データに含まれる小画像を1つずつ特徴モデルに入力し、特徴モデルから各小画像に対応する特徴量を読み出す。機械学習装置100は、読み出した特徴量を小画像のクラスに応じて分類する。ただし、機械学習装置100は、特徴モデルの学習に用いた小画像とは異なる小画像を特徴モデルに入力して特徴空間60を生成してもよい。
【0080】
同じクラスに属する物体を正しく切り出した小画像からは近似する特徴量が算出されることが多い。よって、特徴空間60にはクラス毎に特徴量の分布が形成される。特徴空間60は、クラスC1の小画像から算出された特徴量によって形成される分布61と、クラスC2の小画像から算出された特徴量によって形成される分布62と、クラスC3の小画像から算出された特徴量によって形成される分布63とを含む。分布61~63は互いに離れている。機械学習装置100は、特徴空間60を示す情報として、クラスC1,C2,C3それぞれの特徴量の平均および分散を算出する。
【0081】
特徴モデルおよび特徴空間が生成されると、機械学習装置100は、検出モデルの学習用の訓練データを用いて検出モデルを学習する。検出モデルは、何れかのクラスに属する物体が写っている可能性が高い候補領域の位置と、当該候補領域が各クラスに該当する確率を示す予測信頼度とを出力する多層ニューラルネットワークである。検出モデルの学習には、非特許文献1に記載されたSSDを用いてもよい。
【0082】
機械学習装置100は、最初はランダムにシナプスの重みを選択して仮の検出モデルを生成する。機械学習装置100は、検出モデルに訓練データの小画像を1つずつ入力して、複数の候補領域とそれら複数の候補領域それぞれの予測信頼度を求める。機械学習装置100は、訓練データに付加された教師情報が示す正解領域および正解クラスと比較して、検出された複数の候補領域全体に対する誤差を算出する。機械学習装置100は、誤差が小さくなるように検出モデルのシナプスの重みを更新する。機械学習装置100は、これを繰り返すことで検出モデルを学習する。第3の実施の形態の機械学習装置100は、誤差の算出において前述の特徴モデルと特徴空間を使用する。
【0083】
以下では誤差の算出方法の数学的定義について説明する。
機械学習装置100は、検出モデルの1回の更新につき、数式(1)の誤差Lossを1回算出する。誤差Lossが小さくなるように、次回の検出モデルの更新が行われる。数式(1)において、Bは検出モデルに入力した小画像の数である。機械学習装置100は、入力した各小画像に対して位置誤差Lrecと信頼度誤差Lconfと誤差修正量Lmodを算出する。位置誤差Lrecと信頼度誤差Lconfと誤差修正量Lmodの合計が当該小画像に対する誤差であり、複数の小画像の誤差の平均が誤差Lossである。検出モデルは、1つの小画像から複数の候補領域を検出することがある。その場合には、機械学習装置100は、複数の候補領域それぞれの位置誤差と信頼度誤差と誤差修正量を算出し、その平均を当該小画像に対する位置誤差Lrecと信頼度誤差Lconfと誤差修正量Lmodとする。
【0084】
【0085】
ある候補領域の位置誤差は、当該候補領域の位置と正解領域の位置との間の距離であり、候補領域が正解領域から離れているほど位置誤差が大きくなる。位置誤差は、例えば、検出された候補領域の左上の座標と正解領域の左上の座標との間の距離または距離の2乗である。ある候補領域の信頼度誤差は、予測信頼度ベクトルConfと正解クラスベクトルLaの間の交差エントロピーである。予測信頼度ベクトルConfは、複数のクラスの予測信頼度を列挙したベクトルである。正解クラスベクトルLaは、正解クラスか否かを示すフラグを列挙したベクトルである。例えば、正解クラスに対しては「1」を割り当て、正解クラス以外のクラスに対しては「0」を割り当てる。交差エントロピーは、2つの確率分布が離れている程度を示す尺度である。交差エントロピーについては後述する。上記2つのベクトルが離れているほど信頼度誤差が大きくなる。
【0086】
ある候補領域の誤差修正量は、当該候補領域の位置ずれが大きいほど誤差Lossが大きくなるように加算する修正量である。誤差修正量は、予め生成しておいた特徴モデルと特徴空間を用いて算出される。誤差修正量を算出するにあたり、機械学習装置100は、訓練データから候補領域の小画像を切り出し、切り出した小画像を特徴モデルに入力して、候補領域に対する特徴量を算出する。機械学習装置100は、算出した特徴量を特徴空間にマッピングし、候補領域の特徴量と複数のクラスそれぞれの平均特徴量との間の距離を算出する。機械学習装置100は、複数のクラスについての距離の相対尺度として、数式(2)のようにして特徴信頼度ベクトルMを算出する。
【0087】
【0088】
数式(2)に定義されるMCnは、特徴信頼度ベクトルMのうちn番目のクラスCnに対応する特徴信頼度である。lCnは、候補領域の特徴量とクラスCnの平均特徴量との間の距離である。lCkは、候補領域の特徴量とk番目のクラスCkの平均特徴量との間の距離である。特徴信頼度は、L2ノルムの逆数をソフトマックス関数に入力したものである。特徴信頼度ベクトルMの次元数はクラス数である。
【0089】
特徴信頼度ベクトルMを用いて、数式(3)のように誤差修正量Lmodが算出される。ここでは説明を簡単にするため、1つの小画像から1つの候補領域が検出された場合を考えている。数式(3)のαは、誤差修正量Lmodの大きさを調整するための所定の係数である。数式(3)のαは学習の進行を調整する定数であるとも言え、例えば、実験的に値が求められる。D1は、特徴信頼度ベクトルMと正解クラスベクトルLaの間の交差エントロピーである。交差エントロピーD1は数式(4)のように定義される。D2は、予測信頼度ベクトルConfと特徴信頼度ベクトルMの間の交差エントロピーである。交差エントロピーD2は数式(5)のように定義される。
【0090】
【0091】
【0092】
【0093】
交差エントロピーD1は、特徴信頼度ベクトルMと正解クラスベクトルLaが離れているほど大きくなる。よって、検出された候補領域の特徴量が正解クラスの平均特徴量から離れている場合には交差エントロピーD1が大きくなる。数式(4)のLaCnは、正解クラスベクトルLaのうちクラスCnに対応するフラグである。交差エントロピーD2は、予測信頼度ベクトルConfと特徴信頼度ベクトルMが離れているほど大きくなる。よって、検出モデルから出力された予測信頼度の傾向と特徴量の観点から評価した特徴信頼度の傾向とが適合していない場合には交差エントロピーD2が大きくなる。数式(5)のConfCnは、クラスCnに対応する予測信頼度である。
【0094】
数式(3)のβは、交差エントロピーD1と交差エントロピーD2の重みを調整する係数である。βは0以上1以下の値をとる。βが交差エントロピーD1の重みであり、1-βが交差エントロピーD2の重みである。βは、数式(6)に従って動的に決定される。数式(6)においてlCtは、候補領域の特徴量と正解クラスの平均特徴量の間の距離である。νCtは、正解クラスの特徴量の分散である。検出モデルの学習がまだ十分に進んでおらず距離lCtが大きいときは、βが1に設定される。一方、検出モデルの学習が進んで距離lCtが小さくなると、βは小さな値になっていく。
【0095】
【0096】
よって、検出モデルの学習の前半は数式(3)の右辺第1項が優位になる。すなわち、誤差修正量Lmodは主に交差エントロピーD1に依存することになる。一方、検出モデルの学習の後半は数式(3)の右辺第2項が優位になる。すなわち、誤差修正量Lmodは主に交差エントロピーD2に依存することになる。このように、検出モデルの学習の進行度に応じて誤差修正量Lmodの算出方法が調整される。
【0097】
ここで、検出モデルの学習中における誤差のフィードバックの例を説明する。
図9は、予測信頼度と特徴信頼度と誤差修正量の関係の第1の例を示す図である。
小画像71にはクラスC3に属する1つの物体が写っている。検出モデルの学習中に、小画像71が検出モデルに入力され、正解領域から若干ずれた候補領域が検出されたとする。ただし、小画像71に対する過学習によって、クラスC1,C2の予測信頼度が非常に低くクラスC3の予測信頼度が非常に高い予測信頼度ベクトル72が算出されたとする。この場合、位置誤差L
recの低下が不十分であるものの信頼度誤差L
confが極端に低下している。もし誤差Lossを位置誤差L
recと信頼度誤差L
confのみから算出した場合、誤差Lossが許容可能な水準まで低下していることになる。よって、位置ずれによる誤ったクラス分類が発生しやすい検出モデルが生成されてしまうおそれがある。
【0098】
これに対して第3の実施の形態では、候補領域に対する特徴量が算出されて特徴空間73にマッピングされる。候補領域の特徴量はクラスC1,C2,C3のうちクラスC3の平均特徴量に最も近いものの、まだ距離が十分に小さいとは言えない。このため、特徴空間73からは、クラスC1,C2の特徴信頼度が極端に小さいとは言えずクラスC3の特徴信頼度が極端に大きいとは言えない特徴信頼度ベクトル74が生成される。
【0099】
誤差修正量Lmodの第1項は、クラスC1,C2が不正解でありクラスC3が正解であることを示す正解クラスベクトル75と特徴信頼度ベクトル74との間のずれを示している。よって、誤差修正量Lmodの第1項は中程度である。誤差修正量Lmodの第2項は、予測信頼度ベクトル72と特徴信頼度ベクトル74との間のずれを示している。よって、誤差修正量Lmodの第2項はまだ中程度である。結果として、誤差修正量Lmodが大きくなり、誤差Lossが小さな値に収束するのを阻害することになる。
【0100】
図10は、予測信頼度と特徴信頼度と誤差修正量の関係の第2の例を示す図である。
小画像81にはクラスC3に属する1つの物体が写っている。検出モデルの学習中に、小画像81が検出モデルに入力され、正解領域から若干ずれた候補領域が検出されたとする。また、クラスC3の予測信頼度が最も高いものの非常に高いとまでは言えず、クラスC1,C2の予測信頼度も非常に低いとは言えない予測信頼度ベクトル82が算出されたとする。すなわち、位置誤差L
recと信頼度誤差L
confの何れか一方が極端に低下するのではなく、両者がバランスよく低下するように検出モデルの学習が進行している。
【0101】
一方、
図9と同様に、候補領域に対する特徴量が算出されて特徴空間83にマッピングされる。候補領域の特徴量はクラスC1,C2,C3のうちクラスC3の平均特徴量に最も近いものの、まだ距離が十分に小さいとは言えない。このため、特徴空間83からは、クラスC1,C2の特徴信頼度が極端に小さいとは言えずクラスC3の特徴信頼度が極端に大きいとは言えない特徴信頼度ベクトル84が生成される。
【0102】
誤差修正量Lmodの第1項は、クラスC1,C2が不正解でありクラスC3が正解であることを示す正解クラスベクトル85と特徴信頼度ベクトル84との間のずれを示している。よって、誤差修正量Lmodの第1項は中程度である。誤差修正量Lmodの第2項は、予測信頼度ベクトル82と特徴信頼度ベクトル84との間のずれを示している。よって、誤差修正量Lmodの第2項は小さい。結果として、誤差修正量Lmodが小さくなり、誤差Lossが小さな値に収束するのを阻害しないことになる。このように、誤差修正量Lmodは、位置誤差Lrecと信頼度誤差Lconfがバランスよく低下していくことを要求し、位置誤差Lrecが大きいまま信頼度誤差Lconfが極端に低下することを阻害する。
【0103】
検出モデルが学習されると、機械学習装置100は、テストデータを用いて検出モデルをテストする。テストデータの中から検出された各候補領域を採用するか否かは、当該候補領域に対して算出された複数のクラスの予測信頼度のうち最大の予測信頼度に基づいて判断する。このとき、機械学習装置100は、検出モデルの学習時に生成した特徴モデルおよび特徴空間を利用して予測信頼度を修正する。
【0104】
図11は、腎臓組織画像からの糸球体の検出例を示す図である。
検出モデルのテストには、訓練データとは異なる画像を使用する。例えば、テスト用画像として腎臓組織画像91が用意される。腎臓組織画像91には、異なるクラスに分類される複数の糸球体が写っている。腎臓組織画像91には、正解領域および正解クラスを示す教師情報は付加されていなくてよい。機械学習装置100は、腎臓組織画像91をスキャンすることで、検出モデルの入力サイズに対応する複数の小画像を生成する。例えば、腎臓組織画像91から、小画像92a,92bなどの小画像が生成される。機械学習装置100は、小画像の間で領域が重複しないように腎臓組織画像91を分割してもよいし、小画像の間で部分的に領域が重複するように複数の小画像を生成してもよい。
【0105】
検出モデルに小画像が1つずつ入力され、検出モデルから候補領域の位置と当該候補領域に対する予測信頼度ベクトルが出力される。1つの小画像から複数の候補領域が検出されることもあるし、1つの候補領域も検出されないこともある。機械学習装置100は、候補領域毎に、複数のクラスの予測信頼度のうち最大の予測信頼度と所定の閾値とを比較し、最大の予測信頼度が所定の閾値を超える候補領域を採用する。一部重複する2以上の候補領域が存在する場合、機械学習装置100は、それら2以上の候補領域のうち予測信頼度が最も大きい候補領域のみを選択し、領域の重なりを避ける。機械学習装置100は、小画像毎の領域の検出結果を統合して、検出結果画像93を生成する。検出結果画像93は、腎臓組織画像91に対して、検出された領域を示す図形情報を付加したものである。例えば、検出された領域の外枠を示す矩形が腎臓組織画像91に付加される。
【0106】
候補領域の採否を決定するにあたり、機械学習装置100は、予測信頼度を修正する。機械学習装置100は、検出モデルの学習時と同様に、テストデータから候補領域の小画像を切り出して特徴モデルに入力し、候補領域に対する特徴量を算出する。機械学習装置100は、候補領域の特徴量を特徴空間にマッピングし、候補領域の特徴量と複数のクラスそれぞれの平均特徴量との間の距離を算出する。機械学習装置100は、前述の数式(2)に従って、特徴信頼度ベクトルMを算出する。
【0107】
機械学習装置100は、検出モデルが出力した予測信頼度ベクトルConfと上記の特徴信頼度ベクトルMを用いて、数式(7)のように予測信頼度ベクトルConfを修正する。数式(7)のγは、予測信頼度ベクトルConfと特徴信頼度ベクトルMの重みを決定するための所定の係数であり、0より大きく1より小さい値をとる。γの値は、例えば、最適な値が実験的に求められる。γが予測信頼度ベクトルConfの重みであり、1-γが特徴信頼度ベクトルMの重みである。ConfCnはクラスCnの予測信頼度であり、MCnはクラスCnの特徴信頼度であり、Conf’CnはクラスCnの修正後の予測信頼度である。機械学習装置100は、候補領域毎に、修正後の予測信頼度ベクトルConf’の中から最大の予測信頼度を選択し、最大の予測信頼度が閾値を超える候補領域を検出結果として採用する。
【0108】
【0109】
次に、機械学習装置100の機能について説明する。
図12は、機械学習装置の機能例を示すブロック図である。
機械学習装置100は、画像記憶部121、検出モデル記憶部122および特徴モデル記憶部123を有する。また、機械学習装置100は、訓練データ生成部131、特徴モデル学習部132、検出モデル学習部133、誤差算出部134、テストデータ生成部135、物体検出部136、信頼度修正部137および検出結果出力部138を有する。
【0110】
画像記憶部121、検出モデル記憶部122および特徴モデル記憶部123は、RAM102またはHDD103の記憶領域を用いて実装される。訓練データ生成部131、特徴モデル学習部132、検出モデル学習部133、誤差算出部134、テストデータ生成部135、物体検出部136、信頼度修正部137および検出結果出力部138は、CPU101が実行するプログラムを用いて実装される。
【0111】
画像記憶部121は、学習用画像およびテスト用画像を記憶する。学習用画像およびテスト用画像は、腎臓組織を顕微鏡で拡大した腎臓組織画像である。学習用画像には、糸球体の位置およびクラスを示す教師情報が付加されている。教師情報は、例えば、予め医師が腎臓組織画像を観察して作成したものである。
【0112】
検出モデル記憶部122は、訓練データから学習された検出モデルを記憶する。検出モデルは、多層ニューラルネットワークに含まれるシナプスの重みを含む。特徴モデル記憶部123は、訓練データから学習された特徴モデルを記憶する。特徴モデルは、オートエンコーダに含まれるシナプスの重みを含む。また、特徴モデル記憶部123は、訓練データおよび特徴モデルから生成された特徴空間を記憶する。特徴空間は、複数のクラスそれぞれの平均特徴量および特徴量の分散を含む。
【0113】
訓練データ生成部131は、画像記憶部121に記憶された学習用画像から、特徴モデルの学習用の訓練データを生成する。特徴モデルの学習用の訓練データは、学習用画像からバウンディングボックスに沿って糸球体を切り出し、リサイズおよびデータ拡張を行って生成された複数の小画像である。また、訓練データ生成部131は、画像記憶部121に記憶された学習用画像から、検出モデルの学習用の訓練データを生成する。検出モデルの学習用の訓練データは、学習用画像からバウンディングボックスを包含する領域をランダムに切り出し、データ拡張を行って生成された複数の小画像である。特徴モデルの学習用の訓練データと検出モデルの学習用の訓練データは、合わせて生成することもできるし、別個のタイミングで生成することもできる。
【0114】
特徴モデル学習部132は、訓練データ生成部131が生成した訓練データを用いて特徴モデルを学習する。また、特徴モデル学習部132は、同じ訓練データおよび学習した特徴モデルを用いて特徴空間を生成する。特徴モデル学習部132は、学習した特徴モデルおよび生成した特徴空間を特徴モデル記憶部123に格納する。
【0115】
検出モデル学習部133は、訓練データ生成部131が生成した訓練データを用いて検出モデルを学習する。このとき、検出モデル学習部133は、検出モデルに訓練データを入力し、候補領域の位置および予測信頼度ベクトルを誤差算出部134に出力する。検出モデル学習部133は、誤差算出部134から誤差を受け付け、誤差が低下するように検出モデルのシナプスの重みを変化させる。検出モデル学習部133は、検出モデルの更新を繰り返し、学習された検出モデルを検出モデル記憶部122に格納する。
【0116】
誤差算出部134は、検出モデル学習部133から候補領域の位置および予測信頼度ベクトルを受け付ける。また、誤差算出部134は、特徴モデル記憶部123から特徴モデルおよび特徴空間を読み出す。誤差算出部134は、候補領域の位置、予測信頼度ベクトル、特徴モデルおよび特徴空間に基づいて、小画像毎に位置誤差、信頼度誤差および誤差修正量を算出する。誤差算出部134は、小画像毎の位置誤差、信頼度誤差および誤差修正量から、全体の誤差を算出して検出モデル学習部133にフィードバックする。
【0117】
テストデータ生成部135は、画像記憶部121に記憶されたテスト用画像からテストデータを生成する。テストデータは、テスト用画像を分割して生成された複数の小画像である。テストデータは、訓練データ生成部131における訓練データと同じタイミングで生成することもできるし、別個のタイミングで生成することもできる。
【0118】
物体検出部136は、検出モデル記憶部122から検出モデルを読み出す。物体検出部136は、テストデータ生成部135が生成したテストデータを検出モデルに入力し、候補領域の位置および予測信頼度ベクトルを信頼度修正部137に出力する。
【0119】
信頼度修正部137は、物体検出部136から候補領域の位置および予測信頼度ベクトルを受け付ける。また、信頼度修正部137は、特徴モデル記憶部123から特徴モデルおよび特徴空間を読み出す。信頼度修正部137は、候補領域の位置、予測信頼度ベクトル、特徴モデルおよび特徴空間に基づいて、予測信頼度ベクトルを修正し、候補領域の位置および修正した予測信頼度ベクトルを検出結果出力部138に出力する。
【0120】
検出結果出力部138は、信頼度修正部137から、候補領域の位置および修正した予測信頼度ベクトルを受け付ける。検出結果出力部138は、予測信頼度ベクトルの中の最大の予測信頼度が閾値を超える候補領域を検出した領域として選択し、検出した領域の位置および判定したクラスの情報を出力する。例えば、検出結果出力部138は、小画像毎の検出結果を統合し、テスト用画像上に検出した領域の位置および判定したクラスに関する視覚的情報を付加し、ディスプレイ104aに表示させる。
【0121】
図13は、画像情報テーブルの例を示す図である。
画像情報テーブル141は、画像記憶部121に記憶される。画像情報テーブル141は、画像ID、物体ID、位置およびクラスの項目を含む。画像IDは、学習用画像を識別する識別子である。物体IDは、学習用画像に写った糸球体を識別する識別子である。位置は、糸球体が写った正解領域の位置であり、左上のX座標とY座標、幅および高さによって表現される。クラスは、糸球体の状態を示す正解クラスである。画像情報テーブル141の情報は、学習用画像に付加された教師情報である。
【0122】
図14は、訓練データテーブルと特徴空間テーブルの例を示す図である。
訓練データテーブル142は、訓練データ生成部131が生成し、特徴モデル学習部132が使用するものである。訓練データテーブル142は、特徴モデルの学習用の訓練データに関する情報を記録する。訓練データテーブル142は、小画像ID、物体ID、クラスおよび特徴量の項目を含む。小画像IDは、学習用画像から抽出された小画像を識別する識別子である。物体IDは、画像情報テーブル141の物体IDに相当する。クラスは、画像情報テーブル141のクラスに相当する。特徴量は、小画像から特徴モデルによって算出された特徴量である。小画像ID、物体IDおよびクラスは、訓練データ生成部131が記録する。特徴量は、特徴モデル学習部132が記録する。
【0123】
特徴空間テーブル143は、特徴モデル記憶部123に記憶される。特徴空間テーブル143は、特徴空間を示している。特徴空間テーブル143は、クラス、平均および分散の項目を含む。平均は、同じクラスに属する小画像から算出された特徴量の平均である。分散は、同じクラスに属する小画像から算出された特徴量の分散である。特徴空間テーブル143の平均および分散は、訓練データテーブル142に記録された特徴量をクラス毎に分類して集計することで算出することができる。
【0124】
図15は、他の訓練データテーブルと誤差評価テーブルの例を示す図である。
訓練データテーブル144は、訓練データ生成部131が生成し、誤差算出部134が使用するものである。訓練データテーブル144は、検出モデルの学習用の訓練データに関する情報を記録する。訓練データテーブル144は、小画像ID、物体ID、位置およびクラスの項目を含む。小画像IDは、学習用画像から抽出された小画像を識別する識別子である。物体IDは、画像情報テーブル141の物体IDに相当する。位置は、正解領域の位置であり、左上のX座標とY座標、幅および高さによって表現される。訓練データテーブル144の位置は、データ拡張に合わせて画像情報テーブル141の位置から修正されている。クラスは、画像情報テーブル141のクラスに相当する。
【0125】
誤差評価テーブル145は、誤差Lossを算出するために誤差算出部134が生成するものである。誤差評価テーブル145は、小画像ID、検出位置、予測信頼度、特徴量、特徴距離、特徴信頼度、位置誤差、信頼度誤差および誤差修正量の項目を含む。
【0126】
小画像IDは、検出モデルに入力された小画像を識別する識別子であり、訓練データテーブル144の小画像IDに相当する。検出位置は、検出モデルから出力された候補領域の位置であり、左上のX座標とY座標、幅および高さによって表現される。予測信頼度は、検出モデルから出力された予測信頼度ベクトルである。特徴量は、候補領域の小画像を特徴モデルに入力して算出される候補領域の特徴量である。
【0127】
特徴距離は、候補領域の特徴量と複数のクラスそれぞれの平均特徴量との間の距離である。特徴信頼度は、特徴距離から算出される特徴信頼度ベクトルである。位置誤差は、検出位置および訓練データテーブル144の位置から算出される位置誤差である。信頼度誤差は、予測信頼度ベクトルおよび訓練データテーブル144のクラスから算出される信頼度誤差である。誤差修正量は、予測信頼度ベクトル、特徴信頼度ベクトルおよび訓練データテーブル144のクラスから算出される誤差修正量である。1つの小画像から2以上の候補領域が検出された場合、検出位置、予測信頼度、特徴量、特徴距離および特徴信頼度は候補領域毎に記録される。位置誤差、信頼度誤差および誤差修正量は、候補領域毎の位置誤差、信頼度誤差および誤差修正量を平均化したものとなる。
【0128】
図16は、テストデータテーブルと他の誤差評価テーブルの例を示す図である。
テストデータテーブル146は、テストデータ生成部135が生成するものであ。テストデータテーブル146は、テストデータを管理する。テストデータテーブル146は、小画像IDおよび画像IDの項目を含む。小画像IDは、テスト用画像から抽出された小画像を識別する識別子である。画像IDは、テスト用画像を識別する識別子である。
【0129】
誤差評価テーブル147は、予測信頼度ベクトルを修正するために信頼度修正部137が生成するものである。誤差評価テーブル147は、小画像ID、検出位置、予測信頼度、特徴量、特徴距離、特徴信頼度、修正信頼度およびクラスの項目を含む。
【0130】
小画像IDは、検出モデルに入力された小画像を識別する識別子であり、テストデータテーブル146の小画像IDに相当する。検出位置は、検出モデルから出力された候補領域の位置であり、左上のX座標とY座標、幅および高さによって表現される。予測信頼度は、検出モデルから出力された予測信頼度ベクトルである。特徴量は、候補領域の小画像を特徴モデルに入力して算出される候補領域の特徴量である。
【0131】
特徴距離は、候補領域の特徴量と複数のクラスそれぞれの平均特徴量との間の距離である。特徴信頼度は、特徴距離から算出される特徴信頼度ベクトルである。修正信頼度は、予測信頼度ベクトルと特徴信頼度ベクトルの加重平均であり、修正後の予測信頼度ベクトルである。クラスは、候補領域に対して判定されたクラスを示す。修正後の予測信頼度ベクトルの中の最大の予測信頼度が閾値を超えている場合、判定されたクラスは、当該最大の予測信頼度に対応するクラスである。最大の予測信頼度が閾値以下である場合、当該候補領域は採用されないためクラスは判定されない。また、2以上の候補領域が重複している場合、それら2以上の候補領域のうち1つのみが採用されるため、当該1つの候補領域についてクラスが判定され、それ以外の候補領域に対してはクラスが判定されない。
【0132】
例えば、小画像TE1-1から一部重複する2つの候補領域が検出されたとする。一方の候補領域は、予測信頼度がC1=0.8,C2=0.1,C3=0.1であり、特徴信頼度がC1=0.8,C2=0.1,C3=0.1であるとする(なお、本例示ではγ=0.5とする)。この場合、例えば、修正後の予測信頼度がC1=0.8,C2=0.1,C3=0.1と算出される。他方の候補領域は、予測信頼度がC1=0.8,C2=0.1,C3=0.1であり、特徴信頼度がC1=0.6,C2=0.2,C3=0.2であるとする。この場合、例えば、修正後の予測信頼度がC1=0.7,C2=0.15,C3=0.15と算出される。
【0133】
この場合、修正後の最大の予測信頼度が大きい前者の候補領域が採用され、これと重複する後者の候補領域が採用されない。そして、前者の候補領域のクラスがクラスC1であると判定される。修正前の予測信頼度は2つの候補領域ともに同じであるものの、後者の候補領域は位置ずれが生じている可能性が高いため修正後の予測信頼度が低下している。その結果として、前者の候補領域が採用されている。このように、位置ずれが生じている誤った候補領域が採用されることを抑制することができる。
【0134】
また、例えば、小画像TE1-2から1つの候補領域が検出されたとする。この候補領域は、予測信頼度がC1=0.1,C2=0.5,C3=0.4であり、特徴信頼度がC1=0.1,C2=0.1,C3=0.8であるとする。この場合、例えば、修正後の予測信頼度がC1=0.1,C2=0.3,C3=0.6と算出される。すると、この候補領域のクラスはクラスC3であると判定される。修正前の予測信頼度に従えばこの候補領域のクラスはクラスC2であると判定されるところ、位置ずれの影響を考慮して、判定されるクラスがクラスC2からクラスC3に変わっている。
【0135】
次に、機械学習装置100の処理手順について説明する。
図17は、特徴モデル学習の手順例を示すフローチャートである。
(S10)特徴モデル学習部132は、特徴モデルのシナプスの重みを初期化する。シナプスの重みの初期値はランダムに決めてよい。
【0136】
(S11)訓練データ生成部131は、学習用画像からバウンディングボックスに沿って小画像を切り出し、訓練データとして特徴モデル学習部132に出力する。
(S12)特徴モデル学習部132は、訓練データに含まれる複数の小画像に対して特徴モデルがオートエンコーダとして機能するように、特徴モデルを学習する。これにより、特徴モデルのシナプスの重みが決定される。
【0137】
(S13)特徴モデル学習部132は、ステップS12で学習した特徴モデルに対して、訓練データに含まれる小画像を1つずつ入力し、特徴モデルから中間層のベクトルを抽出する。特徴モデル学習部132は、抽出したベクトルを特徴量とみなして特徴空間を生成する。このとき、特徴モデル学習部132は、複数の小画像の特徴量をクラスに分類し、クラス毎に平均特徴量および特徴量の分散を算出する。
【0138】
(S14)特徴モデル学習部132は、特徴モデルを示すシナプスの重みおよび特徴空間を示す特徴量の平均および分散を、特徴モデル記憶部123に書き出す。
図18は、検出モデル学習の手順例を示すフローチャートである。
【0139】
(S20)検出モデル学習部133は、検出モデルのシナプスの重みを初期化する。シナプスの重みの初期値はランダムに決めてよい。
(S21)誤差算出部134は、特徴モデルを示すシナプスの重みと、特徴空間を示す特徴量の平均および分散を、特徴モデル記憶部123から読み込む。
【0140】
(S22)訓練データ生成部131は、学習用画像からバウンディングボックスを包含する小画像を切り出し、訓練データとして検出モデル学習部133に出力する。
(S23)検出モデル学習部133は、訓練データに含まれる小画像を1つずつ検出モデルに入力して、候補領域の位置および予測信頼度ベクトルを算出する。
【0141】
(S24)誤差算出部134は、小画像毎に、候補領域の位置と正解領域の位置とを比較して位置誤差を算出する。また、誤差算出部134は、小画像毎に、予測信頼度ベクトルと正解クラスベクトルとを比較して信頼度誤差を算出する。
【0142】
(S25)誤差算出部134は、訓練データから候補領域の小画像を切り出す。
(S26)誤差算出部134は、ステップS25で切り出した小画像を特徴モデルに入力し、特徴モデルによって特徴量を算出する。
【0143】
(S27)誤差算出部134は、ステップS26で算出された特徴量を特徴空間にマッピングし、候補領域の特徴量と複数のクラスそれぞれの平均特徴量との間の距離を算出する。誤差算出部134は、算出した距離に基づいて特徴信頼度ベクトルを算出する。そして、誤差算出部134は、予測信頼度ベクトルと正解クラスベクトルと特徴信頼度ベクトルを用いて、誤差修正量を算出する。
【0144】
(S28)誤差算出部134は、小画像毎に位置誤差と信頼度誤差と誤差修正量を合計し、複数の小画像の間の当該合計の平均値を、訓練データ全体に対する誤差として算出する。誤差算出部134は、誤差を検出モデル学習部133にフィードバックする。
【0145】
(S29)検出モデル学習部133は、誤差算出部134からフィードバックされた誤差が小さくなるように検出モデルを更新する。このとき、検出モデル学習部133は、誤差が小さくなるように検出モデルのシナプスの重みを変える。
【0146】
(S30)検出モデル学習部133は、停止条件を満たすか判断する。停止条件は、例えば、検出モデルの更新を所定回数行ったことである。また、停止条件は、例えば、シナプスの重みの変化量が閾値未満に収束したことである。停止条件を満たす場合はステップS31に進み、停止条件を満たさない場合はステップS23に進む。
【0147】
(S31)検出モデル学習部133は、検出モデルを示すシナプスの重みを、検出モデル記憶部122に書き出す。
図19は、検出モデルテストの手順例を示すフローチャートである。
【0148】
(S40)物体検出部136は、検出モデルを示すシナプスの重みを、検出モデル記憶部122から読み込む。信頼度修正部137は、特徴モデルを示すシナプスの重みと、特徴空間を示す特徴量の平均および分散を、特徴モデル記憶部123から読み込む。
【0149】
(S41)テストデータ生成部135は、テスト用画像を分割して複数の小画像を生成し、テストデータとして物体検出部136に出力する。
(S42)物体検出部136は、テストデータに含まれる小画像を1つずつ検出モデルに入力して、候補領域の位置および予測信頼度ベクトルを算出する。
【0150】
(S43)信頼度修正部137は、テストデータから候補領域の小画像を切り出す。
(S44)信頼度修正部137は、ステップS43で切り出した小画像を特徴モデルに入力し、特徴モデルによって特徴量を算出する。
【0151】
(S45)信頼度修正部137は、ステップS44で算出された特徴量を特徴空間にマッピングし、候補領域の特徴量と複数のクラスそれぞれの平均特徴量との間の距離を算出する。信頼度修正部137は、算出した距離に基づいて特徴信頼度ベクトルを算出する。
【0152】
(S46)信頼度修正部137は、候補領域毎に予測信頼度ベクトルと特徴信頼度ベクトルの加重平均を算出し、修正後の予測信頼度ベクトルとする。
(S47)検出結果出力部138は、候補領域毎に、修正後の予測信頼度ベクトルの中の最大の予測信頼度と閾値とを比較する。検出結果出力部138は、最大の予測信頼度が閾値を超える候補領域を、検出された領域として選択する。ただし、2以上の候補領域が重なっている場合には、検出結果出力部138は、それら2以上の候補領域のうち予測信頼度が最も大きい候補領域のみを選択して領域間の重なりを解消する。また、検出結果出力部138は、候補領域毎に、最大の予測信頼度をもつクラスを判定する。これにより、検出された領域および当該領域のクラス分類が確定する。
【0153】
(S48)検出結果出力部138は、物体検出結果を1枚の画像に統合する。
(S49)検出結果出力部138は、領域の外枠である検出枠が記載された画像を、ディスプレイ104aに表示させる。
【0154】
第3の実施の形態の機械学習装置100によれば、検出モデルの学習中に算出される誤差に、候補領域の位置ずれが大きいほど値が大きくなる誤差修正量が追加される。よって、位置誤差の低下が不十分であるものの信頼度誤差が極端に低下することによって検出モデルの学習が収束してしまうのを抑制することができる。このため、検出モデルが検出する候補領域の位置の精度が向上し、クラス数が少なくクラス間の物体の形状や模様が近似しているような画像認識においてもクラスの誤判定を低減することができる。
【0155】
また、誤差修正量の算出に、オートエンコーダから抽出される特徴量を用いることで、候補領域の位置ずれに対して鋭敏に反応する誤差修正量を算出することができる。また、検出モデルを用いた画像認識の際には、候補領域から算出される特徴量を用いて予測信頼度が修正される。よって、誤った領域が選択される可能性を低減することができる。また、誤ったクラスが選択される可能性を低減することができる。
【符号の説明】
【0156】
10 学習装置
11,21 記憶部
12,22 処理部
13,23 検出モデル
14,24 特徴モデル
15,25 特徴分布情報
16 評価値
20 検出装置
26 対象画像
26a,26b 領域
27a,27b 信頼度