(58)【調査した分野】(Int.Cl.,DB名)
前記学習除外対象領域判別部は、前記分割部の作成した分割学習データでラベリングされた領域の体積と前記学習データでラベリングされた領域の体積とを比較し、前記体積が閾値以下となるか否かに応じて学習除外対象領域を判別する請求項1に記載の機械学習装置。
前記検出精度算出部は、各領域の予測ラベルと正解ラベルとの間のIoU(Intersection over Union)の平均に基づいて検出精度を算出する請求項3に記載の機械学習装置。
非一時的かつコンピュータ読取可能な記録媒体であって、前記記録媒体に格納された指令がコンピュータによって読み取られた場合に請求項9に記載の機械学習プログラムをコンピュータに実行させる記録媒体。
【発明の概要】
【発明が解決しようとする課題】
【0005】
近年、機械学習などによって、ボリュームデータから複数の臓器を同時に抽出する判別器の開発が行われ始めている。すなわち、判別器にボリュームデータを入力すると、そのボリュームデータを構成するボクセルのそれぞれに、「胃」、「肺」、「気管支」、「肝臓」、「肝臓門脈」などのラベルが付いたデータが出力される。このような同時ラベリングの機能は、多種多様なアプリケーションの前処理として有用である。
【0006】
このような同時に2以上の臓器のラベル付けをする判別器は、元のボリュームデータとそのボリュームデータに含まれる各臓器のボクセルを医師などが手動でラベリングしたもののセットを正解データとして多数準備し、それらを機械学習させることで学習済みモデルが完成する。
【0007】
ここで、学習用のボリュームデータは容量が非常に大きく、機械学習で使うメモリサイズの都合上、分割されて機械学習処理に入力される場合がある。
【0008】
3次元CT画像データの場合は、アキシャル方向について、メモリサイズの制限内のある枚数でデータが分割される。この分割されたデータが学習用のデータである。ここで、分割されたデータが、ラベルを付けた臓器の一部しか含んでいないような場合、機械学習に悪影響を及ぼす可能性がある。
【0009】
本発明はこのような問題点に鑑みてなされたもので、学習用のボリュームデータから機械学習に適した分割データを用意することの可能な機械学習装置および方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の第1態様に係る機械学習装置は、断層画像のボリュームデータとボリュームデータにおける領域のラベリングとを含む学習データの入力を受け付ける学習データ入力部と、学習データ入力部が入力を受け付けた学習データを分割することで、分割学習データを作成する分割部と、分割部の作成した分割学習データと学習データとから、学習対象から除外する領域である学習除外対象領域を判別する学習除外対象領域判別部と、分割部の作成した分割学習データに基づいて、学習除外対象領域判別部が判別した学習除外対象領域以外の領域のラベリングを機械学習する機械学習部と、を備える。
【0011】
本発明の第2態様に係る機械学習装置において、学習除外対象領域判別部は、分割部の作成した分割学習データでラベリングされた領域の体積と学習データでラベリングされた領域の体積とを比較し、体積が閾値以下となるか否かに応じて学習除外対象領域を判別する。
【0012】
本発明の第3態様に係る機械学習装置は、学習除外対象領域判別部が判別した学習除外対象領域以外の検出精度を算出する検出精度算出部を備え、機械学習部は、分割部の作成した分割学習データと検出精度算出部が算出した検出精度とに基づいて、学習除外対象領域以外の領域のラベリングを機械学習する。
【0013】
本発明の第4態様に係る機械学習装置において、検出精度算出部は、各領域の予測ラベルと正解ラベルとの間のIoU(Intersection over Union)の平均に基づいて検出精度を算出する。
【0014】
本発明の第5態様に係る機械学習装置において、分割部は、学習除外対象領域の全体が含まれるよう学習データを再分割する。
【0015】
本発明の第6態様に係る機械学習装置において、分割部は、互いに重なりを有する分割学習データを作成する。
【0016】
本発明の第7態様に係る機械学習装置において、断層画像は3次元医用断層画像であり、領域は臓器を含む。
【0017】
本発明の第8態様に係る機械学習方法では、コンピュータが、断層画像のボリュームデータとボリュームデータにおける領域のラベリングとを含む学習データの入力を受け付けるステップと、学習データを分割することで、分割学習データを作成するステップと、分割学習データと学習データとから、学習対象から除外する領域である学習除外対象領域を判別するステップと、分割学習データに基づいて、学習除外対象領域以外の領域のラベリングを機械学習するステップと、を実行する。
【0018】
上記の機械学習方法をコンピュータに実行させるための機械学習プログラムおよび上記の機械学習プログラムによって機械学習された機械学習済みモデルも本発明に含まれる。
【発明の効果】
【0019】
この発明によると、分割学習データから学習除外対象領域を判別し、学習除外対象領域以外の領域のラベリングを機械学習するため、臓器の一部しか含まないような分割データからも、精度の高い機械学習を行うことができる。
【発明を実施するための形態】
【0021】
図1は本発明の好ましい実施形態に係る機械学習装置1の概略構成図である。機械学習装置1は、元学習データ入力部11、元学習データ分割部12、学習除外対象判別部13、分割学習データ出力部14、機械学習部15を備える。機械学習装置1は、GPU(Graphics Processing Unit)などのプロセッサを備えるコンピュータで構成され、上記の各部は、プロセッサで実行されるプログラムにより実現される。機械学習装置1はニューラルネットワーク16を含んでいてもよいし、含んでいなくてもよい。
【0022】
元学習データ入力部11は、多数のアキシャル断層画像(マルチスライス画像)からなるボリュームデータVと、そのボリュームデータに含まれる各ボクセルに対し、医師などが手動で、「肺」、「気管支」、「血管」、「空気充填パターン」「その他(バックグラウンド)」などの正解のラベルを付すこと(ラベリング)で、画像内の各画素が解剖学的構造の種類(クラス)に分類された正解(Ground Truth)マスクGとの組(元学習データ)の入力を受け付ける。
【0023】
元学習データ分割部12は、元学習データ入力部11が入力を受け付けた元学習データを、予め決められた単位でアキシャル方向に分割(クロップ)することで、分割ボリュームデータV1、V2、V3・・、VNと分割正解マスクG1、G2、G3・・、GNとの組からなるN個の分割学習データD1、D2、D3・・、DNを作成する(
図2参照)。この分割学習データD1、D2、D3・・の分割単位は、ニューラルネットワーク16のメモリや演算装置などのハードウェア上の制限に依存する。すなわち、ニューラルネットワーク16が一度に受け入れ可能なデータ量に依存する。
【0024】
異なる2つの分割学習データは、互いに重複する部分を含んでもよい。また、アキシャル方向だけでなくサジタル方向やコロナル方向に元学習データを分割してもよい。
【0025】
学習除外対象判別部13は、ボリュームデータVから、各臓器Oi(iは1以上の整数)の全体の体積Viを算出するとともに、分割正解マスクGjに含まれるn(j)個の臓器O(j, i)(i=1〜n(j))ごとの体積V(j, i)を算出する。O(j, i)はOiと同一の臓器のラベルが付与されている。ただし、分割の位置によっては、O(j, i)とOiとが完全に一致するとは限らない。
【0026】
例えば
図3に示すように、分割正解マスクG1で「肝臓」のラベルの付された
臓器O(1,1)は、正解マスクGで「肝臓」のラベルの付された
臓器O1の一部が切り取られたような形となっている。
【0027】
学習除外対象判別部13は、分割正解マスクGjにおける臓器O(j, i)と正解マスクGにおける臓器Oiとの間の体積比A(j, i)=V(j, i)/Vi(<1)を算出する。
【0028】
学習除外対象判別部13は、分割正解マスクGjにおける臓器Oiの体積比A(j, i)=V(j, i)/Viに基づいて、分割学習データDjに、臓器Oiの全体が含まれているか、または臓器Oiの一部のみが含まれているかを判別する。
【0029】
具体的には、学習除外対象判別部13は、A(j, i)が所定の閾値Th(例えばTh=0.9等、実質的に1かその近傍の値)を下回るか否かを判別する。学習除外対象判別部13は、A(k,i)<Thとなる添え字kを有する分割学習データDkを、臓器Oiの学習除外対象と判別する。以下、分割学習データDkにおいてA(k,i)<Thとなる臓器Oiを、O(k,i)で表す。
【0030】
なお、体積比の代わりに、サジタル方向またはコロナル方向の
分割学習データDjから、Djに含まれる臓器Oiの面積比を算出し、この面積比に基づいて、分割学習データに臓器Oiの一部のみが含まれているか否かを判別してもよい。
【0031】
分割学習データ出力部14は、学習除外対象判別部13による判別を経た分割学習データDjを、機械学習部15に出力する。
【0032】
機械学習部15は、分割学習データ出力部14から出力された分割学習データDjに基づいて、ニューラルネットワーク16に機械学習を行わせる。
【0033】
ニューラルネットワーク16は畳み込みニューラルネットワーク(CNN: Convolutional Neural Network)などによって構成される多層の分類器である。
【0034】
機械学習部15によるニューラルネットワーク16の機械学習はバックプロパゲーション(誤差伝播法)を用いる。バックプロパゲーションは、入力データに対しての教師データを、ニューラルネットワーク16から得られる実際の出力データと照らし合わせ、その誤差を基に各結合荷重を出力層側から入力層側へ変化させていく手法である。
【0035】
具体的には、
図4に示すように、まずニューラルネットワーク16は、何らかの機械学習により得られた学習済みモデルに従って、分割学習データDjに含まれる分割ボリュームデータVjの各ボクセル(2次元データの場合はピクセル)に、「肺」、「気管支」、「血管」、「空気充填パターン」、「その他(バックグラウンド)」などのラベルを付すことで、分割ボリュームデータVj内の構造物を分類する。これにより、分割学習データDjごとに、各臓器のラベリングを付したボクセルの集合である予測マスクPjが得られる。
【0036】
機械学習部15は、分割正解マスクGjを教師データとして予測マスクPjと照らし合わせ、それらの誤差を基に、ニューラルネットワーク16のバックプロパゲーションを行う。つまり、ニューラルネットワーク16のバックプロパゲーションは、分割学習データDjごとに行われる。
【0037】
ただし、機械学習部15は、分割学習データDkに対応する予測マスクPkに学習除外対象の臓器O(k,i)が含まれる場合、臓器O(k,i)のラベリングのバックプロパゲーションは行わない。以下ではこの詳細を説明する。
【0038】
図5は分割学習データDjを用いた機械学習処理のフローチャートである。この機械学習処理を機械学習装置1のプロセッサに実行させるためのプログラムは、機械学習装置1のRAM(Random Access Memory)などのコンピュータ読取可能な有形記憶媒体に記憶されている。このプログラムが格納される媒体は、ハードディスク、CD(Compact Disk)、DVD(Digital Versatile Disk)、各種半導体メモリ等の、非一時的かつコンピュータ読取可能な記録媒体であってもよい。
【0039】
まず、S1(分割学習データ作成ステップ)において、元学習データ分割部12は、元学習データ入力部11が受け付けた元学習データから、N個の分割学習データD1、D2・・、DNを作成する。Nは2以上の整数である。なお
図2はN=4の場合を示している。学習データの分割の単位はメモリ容量やGPUの処理能力に依存し、分割学習データが処理できる最大の量未満の任意量を分割の単位とする。
【0040】
S2(体積算出ステップ)において、学習除外対象判別部13は、分割正解マスクGjと正解マスクGとから、各臓器O(j, i)の体積比A(j, i)=V(j, i)/Viを算出する。
【0041】
S3(除外対象特定ステップ)において、学習除外対象判別部13は、A(j, i)が所定の閾値Th未満であるか否かを判断する。学習除外対象判別部13は、j=kの場合、A
(k,i)<Thとなるのであれば、分割学習データDkにおける学習除外対象は臓器O(k,i)であると判別する。
【0042】
S4(予測マスク作成ステップ)において、ニューラルネットワーク16は、分割学習データDjの分割ボリュームデータVjを入力し、n(j)個の各臓器O(j, i)の予測マスクPjを作成する。ここで、j=1,2,…,Nである。
【0043】
S5(損失算出ステップ)では、機械学習部15は、予測マスクPjにおける各臓器O(j, i)の検出精度を、損失関数Lossを用いて算出する。ただし、j=kの場合、臓器O
(k,i)の検出精度は算出しないものとする。すなわち、予測マスクPkにおいて、体積比が一定程度小さい臓器O
(k,i)の検出精度は無視する。
【0044】
具体的には、予測マスクPjにおいて、学習除外対象である臓器O(k,i)を除く、n(j)種類の臓器O(j, i)ごとの検出精度acc(j, i)を算出し、その平均値を分割学習データDjに対応する損失関数Loss(j)とする。
【0045】
Loss(j)=Avg(acc(j, i)) (i=1,2,..,n(j)、ただしi≠n(k)。またacc(k,i)=0とする) acc(j,i)は、予測マスクPjにおける各臓器O(j, i)のIoU(Intersection over Union)である。すなわちIoUは、予測マスクPjにおける臓器O(j, i)の集合Pr(i)と、分割正解マスクGjにおける臓器O(j, i)の集合Htとの和集合(union)のボクセル数で、Pr(i)とHtとの積集合(intersection)のボクセル数を割った値である。分割ボリュームデータVjで各臓器O(j, i)の検出精度が上がるほどacc(j,i)は1に近づく。ただし、検出精度が低い臓器が多ければ、他の臓器の検出精度が高くても損失関数Lossは1に近づかない。もっとも、体積比が閾値未満の臓器の検出精度については、そもそも損失関数Lossの値に反映されない。
【0046】
なお検出精度の算出式は上記に限られない。一般的には、
【0052】
をパラメータとする関数である。例えば、このIoUを定数倍(100倍など)した値や、Dice係数をacc(i)としてもよい。
【0053】
S6(バックプロパゲーションステップ)では、機械学習部15は、損失関数Lossに応じて、ニューラルネットワーク16の各結合荷重を出力層側から入力層側へ変化させていく。
【0054】
S7(分割学習データ作成ステップ)では、元学習データ分割部12は、分割学習データDkを再作成する。この際、元学習データ分割部12は、臓器O(k,i)の全体が分割学習データDkに含まれるように、元学習データを分割しなおす。ただしこの再分割の単位もハードウェア資源上の制約を受ける。そして、処理はS2に戻り、分割学習データDkについて、臓器O(k,i)を含む各臓器の予測マスクPkが作成される。
【0055】
図6は分割学習データDkの再作成の一例である。ここでは、一旦作成された分割学習データD2が、アキシャル(体軸)方向に沿った頭部に向けてシフトされる。こうすれば、学習除外対象の臓器O(k,i)についても、シフト後の分割学習データD2に基づいて、精度の高い機械学習が可能となる。なお上記のS2〜S7は任意の回数繰り返すことができる。したがって、どの臓器Oiもいずれかの分割学習データに含まれるように分割をやり直し、さらに、分割の都度損失関数に基づいたバックプロパゲーションをすればよい。
【0056】
従って、どの臓器もその体積に関係なく検出精度を高めるバックプロパゲーションを行うことができる。ただし、分割学習データに、臓器の体積が閾値よりも小さいものが含まれていれば、その臓器の検出精度は損失関数に反映されない。このため、元学習データが分割されることで切り取られた臓器の一部の検出精度が損失関数に反映され、バックプロパゲーションに悪影響を与えることを防ぐことができる。
【0057】
また、学習データの分割で切り取られた臓器については、学習データの再分割により、検出精度の算出およびバックプロパゲーションの対象とすることができる。