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

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

▶ キヤノン株式会社の特許一覧 ▶ 東芝メディカルシステムズ株式会社の特許一覧

特開2024-96350ニューラルネットワーク、ニューラルネットワークの学習方法、プログラム、画像処理装置
<>
  • 特開-ニューラルネットワーク、ニューラルネットワークの学習方法、プログラム、画像処理装置 図1
  • 特開-ニューラルネットワーク、ニューラルネットワークの学習方法、プログラム、画像処理装置 図2
  • 特開-ニューラルネットワーク、ニューラルネットワークの学習方法、プログラム、画像処理装置 図3
  • 特開-ニューラルネットワーク、ニューラルネットワークの学習方法、プログラム、画像処理装置 図4
  • 特開-ニューラルネットワーク、ニューラルネットワークの学習方法、プログラム、画像処理装置 図5
  • 特開-ニューラルネットワーク、ニューラルネットワークの学習方法、プログラム、画像処理装置 図6
  • 特開-ニューラルネットワーク、ニューラルネットワークの学習方法、プログラム、画像処理装置 図7
  • 特開-ニューラルネットワーク、ニューラルネットワークの学習方法、プログラム、画像処理装置 図8
  • 特開-ニューラルネットワーク、ニューラルネットワークの学習方法、プログラム、画像処理装置 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024096350
(43)【公開日】2024-07-12
(54)【発明の名称】ニューラルネットワーク、ニューラルネットワークの学習方法、プログラム、画像処理装置
(51)【国際特許分類】
   G06V 10/82 20220101AFI20240705BHJP
   G06T 7/00 20170101ALI20240705BHJP
   G06N 3/045 20230101ALI20240705BHJP
【FI】
G06V10/82
G06T7/00 350C
G06N3/045
【審査請求】有
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2024075268
(22)【出願日】2024-05-07
(62)【分割の表示】P 2020093607の分割
【原出願日】2020-05-28
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(71)【出願人】
【識別番号】594164542
【氏名又は名称】キヤノンメディカルシステムズ株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】山嵜 深
(57)【要約】
【課題】一部のクラスに対応する正解データが欠損している教示データであっても学習に利用する。
【解決手段】複数のクラスに共通し、入力画像から第一の特徴を抽出する共通ネットワークと、前記複数のクラスの夫々に対応し、前記第一の特徴に基づいて複数の第二の特徴の夫々を抽出する複数のシングルクラスネットワークと、を備え、前記複数のシングルクラスネットワークの夫々は、夫々に対応するクラスを個別に識別するためのシングルクラス出力層を有する、ことを特徴とするニューラルネットワーク。
【選択図】図4
【特許請求の範囲】
【請求項1】
複数のクラスに共通し、入力画像から第一の特徴を抽出する共通ネットワークと、
前記複数のクラスの夫々に対応し、前記第一の特徴に基づいて複数の第二の特徴の夫々を抽出する複数のシングルクラスネットワークと、
を備え、
前記複数のシングルクラスネットワークの夫々は、夫々に対応するクラスを個別に識別するためのシングルクラス出力層を有する、
ことを特徴とするニューラルネットワーク。
【請求項2】
前記共通ネットワークは、前記複数のクラスのうち、すべてのクラスに共通するネットワークである、ことを特徴とする請求項1に記載のニューラルネットワーク。
【請求項3】
前記共通ネットワークは、前記複数のクラスのうち一部かつ2つ以上のクラスに共通するネットワークである、
ことを特徴とする請求項1に記載のニューラルネットワーク。
【請求項4】
前記共通ネットワークは、第一のクラスと第二のクラスに共通する第一の共通ネットワークと、第一のクラスと第三のクラスに共通する第二の共通ネットワークとを含み、
前記第一のクラスに対応するシングルクラスネットワークに、前記第一の共通ネットワークおよび前記第二の共通ネットワークが接続されている、
ことを特徴とする請求項1乃至請求項3のいずれか1項に記載のニューラルネットワーク。
【請求項5】
前記ニューラルネットワークは、前記第一の特徴および/または前記第二の特徴に基づいて第三の特徴を抽出するマルチクラスネットワークをさらに備え、
前記マルチクラスネットワークは、前記複数のクラスのうち、2つ以上のクラスを識別するためのマルチクラス出力層を有する、
ことを特徴とする請求項1乃至請求項4のいずれか1項に記載のニューラルネットワーク。
【請求項6】
複数のクラスに共通する共通ネットワークと、前記共通ネットワークに接続され、前記複数のクラスの夫々を個別に識別するためのシングルクラス出力層を有する複数のシングルクラスネットワークとを備えるニューラルネットワークの学習方法であって、
前記複数のクラスのうち、1つ以上のクラスに対応する正解データを含む教示データを取得する取得ステップと、
前記教示データを用いて、前記ニューラルネットワークを学習する学習ステップと、
を備え、
前記学習ステップは、前記複数のクラスのうち、1つ以上のクラスに対応する正解データが欠損している教示データを用いて学習する際に、正解データが欠損していないクラスに対応するシングルクラスネットワークを学習し、正解データが欠損しているクラスに対応するシングルクラスネットワークを学習しない、
ことを特徴とするニューラルネットワークの学習方法。
【請求項7】
前記学習ステップは、前記教示データの正解データが欠損しているかいないかにかかわらず、前記共通ネットワークを学習する、
ことを特徴とする請求項6に記載のニューラルネットワークの学習方法。
【請求項8】
前記学習ステップは、前記シングルクラス出力層の夫々の出力に対して、異なる損失関数を用いて損失値を算出する、
ことを特徴とする請求項6又は請求項7に記載のニューラルネットワークの学習方法。
【請求項9】
前記ニューラルネットワークは、前記複数のクラスのうち、2つ以上のクラスを識別するためのマルチクラス出力層を有するマルチクラスネットワークをさらに備え、
前記学習ステップは、前記複数のクラスのうち、すべてのクラスに対応する正解データを含む教示データを用いて学習する際に、前記マルチクラスネットワークを学習し、1つ以上のクラスに対応する正解データが欠損している教示データを用いて学習する際に、前記マルチクラスネットワークを学習しない、
ことを特徴とする請求項6乃至請求項8のいずれか1項に記載のニューラルネットワークの学習方法。
【請求項10】
前記学習ステップは、前記シングルクラス出力層の出力と、前記マルチクラス出力層の出力に対して、異なる損失関数を用いて損失値を算出する、
ことを特徴とする請求項9に記載のニューラルネットワークの学習方法。
【請求項11】
前記学習ステップは、教示データがどのクラスの正解データを有しているかに応じて、該教示データを用いて学習する際のパラメータを更新する層を決定する、
ことを特徴とする請求項6乃至請求項10のいずれか1項に記載のニューラルネットワークの学習方法。
【請求項12】
前記学習ステップは、教示データがどのクラスの正解データを有しているかに応じて教示データをグループ分けし、1エポック内で、グループごとに教示データを選択して学習を行う、
ことを特徴とする請求項6乃至請求項11のいずれか1項に記載のニューラルネットワークの学習方法。
【請求項13】
前記学習ステップは、すべてのクラスの正解データを有している教示データのグループを、1エポック内の最後に選択して学習を行う、
ことを特徴とする請求項12に記載のニューラルネットワークの学習方法。
【請求項14】
画像を取得する取得ステップと、
請求項1乃至請求項5のいずれか1項に記載のニューラルネットワークを用いて、画像に対する推論を行い、識別結果を出力する推論ステップと、
を含むことを特徴とする画像処理方法。
【請求項15】
画像を取得する取得部と、
請求項1乃至請求項5のいずれか1項に記載のニューラルネットワークを含む識別部と、
を備える画像処理装置。
【請求項16】
画像を取得する取得部と、
識別部と、
を備え、
前記識別部は、
複数のクラスに共通し、入力画像から第一の特徴を抽出する共通ネットワークと、
前記複数のクラスの夫々に対応し、前記第一の特徴に基づいて前記複数のクラスの夫々に対応する第二の特徴を抽出する複数のシングルクラスネットワークと、
前記第一の特徴および/または前記第二の特徴に基づいて第三の特徴を抽出するマルチクラスネットワークと、
によって構成され前記複数のクラスを識別するニューラルネットワークを含み、
前記識別部は、前記ニューラルネットワークに前記画像を入力して、前記複数のシングルクラスネットワークの夫々から前記第二の特徴に基づく第一の識別結果を取得し、前記マルチクラスネットワークから前記第三の特徴に基づく第二の識別結果を取得し、前記複数のクラスの少なくとも1つについて、当該クラスに対応する前記第一の識別結果と前記第二の識別結果を統合して、第三の識別結果を生成する、
画像処理装置。
【請求項17】
前記識別部は、前記第一の識別結果と前記第二の識別結果とを、重み付き平均値統合、最大値統合、最小値統合、論理積統合、または論理和統合することで、前記第三の識別結果を生成する、
ことを特徴とする請求項16に記載の画像処理装置。
【請求項18】
複数のクラスに共通する共通ネットワークと、前記共通ネットワークに接続され前記複数のクラスの夫々を個別に識別するためのシングルクラス出力層を有する複数のシングルクラスネットワークとを備えるニューラルネットワークを学習する画像処理装置であって、
前記複数のクラスのうち、1つ以上のクラスに対応する正解データを含む教示データを取得する取得部と、
前記教示データを用いて前記ニューラルネットワークを学習する学習部と、
を備え、
前記学習部は、前記複数のクラスのうち、1つ以上のクラスに対応する正解データが欠損している教示データを用いて学習する際に、正解データが欠損していないクラスに対応するシングルクラスネットワークを学習し、正解データが欠損しているクラスに対応するシングルクラスネットワークを学習しない、
ことを特徴とする画像処理装置。
【請求項19】
請求項6乃至請求項13のいずれか1項に記載の方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書の開示は、ニューラルネットワーク、ニューラルネットワークの学習方法、プログラムおよび画像処理装置に関する。
【背景技術】
【0002】
近年、画像処理分野において、深層学習に基づく識別器が注目を浴びている。その中でも、教師あり学習と呼ばれる手法は、学習画像と正解データによって構成される教示データを利用することで識別器を学習する。ここで、学習画像は実空間中に存在する注目物体を撮像装置で撮影することで得られる画像であり、注目物体の像が描出されている。正解データとは、学習画像に対応して存在するデータである。セグメンテーションを例に挙げると、正解データは正解領域が描画された画像であり、対応する学習画像のどの位置に注目物体が描出されているかを示す。注目物体が複数ある場合、注目物体の夫々を表すクラスに対応する複数の正解データが必要となる。
【0003】
非特許文献1には、学習画像と、注目物体の夫々を表すクラスに対応する複数の正解データとで構成される教示データを用いることで、複数の注目物体の領域を同時にセグメンテーションする識別器を構築する技術が開示されている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Jonathan Long, et al. “Fully Convolutional Networks for Semantic Segmentation”, CVPR, 2015.
【発明の概要】
【発明が解決しようとする課題】
【0005】
非特許文献1に開示されている技術は、複数の注目物体の夫々を表すクラスに対応する正解データのうち、一部のクラスに対応する正解データが欠損している教示データを学習に利用することができない。これは、セグメンテーションを行う識別器に限定されるものではなく、教師あり学習に属する手法全般において生じる課題である。
【0006】
本発明は、複数の注目物体の夫々を表すクラスに対応する正解データのうち、一部のクラスに対応する正解データが欠損している教示データであっても学習に利用することができる技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の第一の態様は、
複数のクラスに共通し、入力画像から第一の特徴を抽出する共通ネットワークと、
前記複数のクラスの夫々に対応し、前記第一の特徴に基づいて複数の第二の特徴の夫々を抽出する複数のシングルクラスネットワークと、
を備え、
前記複数のシングルクラスネットワークの夫々は、夫々に対応するクラスを個別に識別するためのシングルクラス出力層を有する、
ことを特徴とするニューラルネットワークである。
【0008】
本発明の第二の態様は、
複数のクラスに共通する共通ネットワークと、前記共通ネットワークに接続され前記複数のクラスの夫々を個別に識別するためのシングルクラス出力層を有する複数のシングルクラスネットワークとを備えるニューラルネットワークの学習方法であって、
前記複数のクラスのうち、1つ以上のクラスに対応する正解データを含む教示データを取得する取得ステップと、
前記教示データを用いて、前記ニューラルネットワークを学習する学習ステップと、
を備え、
前記学習ステップは、前記複数のクラスのうち、1つ以上のクラスに対応する正解データが欠損している教示データを用いて学習する際に、正解データが欠損していないクラスに対応するシングルクラスネットワークを学習し、正解データが欠損しているクラスに対応するシングルクラスネットワークを学習しない、
ことを特徴とするニューラルネットワークの学習方法である。
【0009】
本発明の第三の態様は、
画像を取得する取得ステップと、
上記第二の態様の方法によって学習したニューラルネットワークを用いて、画像に対する推論を行い、識別結果を出力する推論ステップと、
を含むことを特徴とする画像処理方法である。
【0010】
本発明の第四の態様は、
画像を取得する取得部と、
上記第一の態様に係るニューラルネットワークを含む識別部と、
を備える画像処理装置である。
【0011】
本発明の第五の態様は、
画像を取得する取得部と、
識別部と、
を備え、
前記識別部は、
複数のクラスに共通し、入力画像から第一の特徴を抽出する共通ネットワークと、
前記複数のクラスの夫々に対応し、前記第一の特徴に基づいて前記複数のクラスの夫々に対応する第二の特徴を抽出する複数のシングルクラスネットワークと、
前記第一の特徴および/または前記第二の特徴に基づいて第三の特徴を抽出するマルチクラスネットワークと、
によって構成され前記複数のクラスを識別するニューラルネットワークを含み、
前記識別部は、前記ニューラルネットワークに前記画像を入力して、前記複数のシングルクラスネットワークの夫々から前記第二の特徴に基づく第一の識別結果を取得し、前記マルチクラスネットワークから前記第三の特徴に基づく第二の識別結果を取得し、前記複数のクラスの少なくとも1つについて、当該クラスに対応する前記第一の識別結果と前記第二の識別結果を統合して、第三の識別結果を生成する、
画像処理装置である。
【発明の効果】
【0012】
本明細書の開示によれば、複数の注目物体の夫々を表すクラスに対応する正解データのうち、一部のクラスに対応する正解データが欠損している教示データであっても学習に利用することができる。
【図面の簡単な説明】
【0013】
図1】第一の実施形態に係る画像処理装置100の機能構成の一例を示す図。
図2】第一の実施形態に係る画像処理装置のハードウェア構成の一例を示す図。
図3】第一の実施形態に係る画像処理装置100の処理手順の一例を示す図。
図4】第一の実施形態に係るCNNの構成を説明する図。
図5】第一の実施形態に係る画像処理装置500の機能構成の一例を示す図。
図6】第一の実施形態に係る画像処理装置500の処理手順の一例を示す図。
図7】第一の実施形態に係る教示データの一例を説明する図。
図8】第二の実施形態に係るCNNの構成を説明する図。
図9】第三の実施形態に係るCNNの構成を説明する図。
【発明を実施するための形態】
【0014】
以下、図面を参照して本明細書に開示の画像処理装置の好ましい実施形態について説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、各図面では適宜、構成要素、部材、処理の一部は省略して表示する。
【0015】
以下では、深層学習に基づく識別器として、ニューラルネットワークのひとつであるCNN(Convolutional Neural Network)を例に挙げて、本明細書に開示の技術を説明する。
【0016】
<第一の実施形態>(概要)
本実施形態では、X線コンピュータ断層撮像(X線CT)装置で撮影された腹部CT画像(三次元断層画像)から、臓器領域をセグメンテーションするCNNを例に挙げて説明する。セグメンテーションの対象となる臓器(注目物体)は、肝臓、腎臓、胆のうとする。
【0017】
本実施形態において、推論工程は画像処理装置100が用いられて実現され、学習工程は画像処理装置500を用いて実現される。
【0018】
画像処理装置100は、本明細書で開示される発明の一態様であるCNNを利用し、腹部CT画像から肝臓、腎臓、胆のう領域をセグメンテーションする。画像処理装置100は、先ず学習で得られたパラメータに基づき、CNNを構築する。本実施形態で用いるCNNは、二次元画像を入力とし、二次元画像に対する識別結果を出力する2D-CNNに属する。CNNは肝臓、腎臓、胆のうに共通するネットワーク(共通ネットワークの一例)に、肝臓に対応するネットワーク、腎臓に対応するネットワーク、胆のうに対応するネットワーク(シングルクラスネットワークの一例)の夫々を接続することで構築されている。より一般的には、CNNは、すべてのクラスに共通する共通ネットワークと、複数のクラスの夫々に対応する複数のシングルクラスネットワークとを含み、これらは共通ネットワークの出力がシングルクラスネットワークの夫々に入力されるように接続されている。画像処理装置100は、次に、セグメンテーション処理の対象となる腹部CT画像を取得し、CNNに腹部CT画像を構成する複数の二次元断層画像の夫々を順次入力する。CNNは二次元断層画像を入力として受け取った後、順伝播処理を実行し、該二次元断層画像に対する識別結果を画像処理装置100に出力する。そして、CNNによってすべての二次元断層画像に対して処理することで、画像処理装置100は腹部CT画像に対する識別結果を得る。CNNによる識別結果は、肝臓、腎臓、胆のうの領域を表すセグメンテーション結果である。
【0019】
画像処理装置500は、画像処理装置100で利用するCNNのパラメータを生成する。画像処理装置500は、まず、画像処理装置100で利用するCNNと同等のCNNを構築する。CNNを構成するネットワークのパラメータは所定の方法で初期化する。次に、画像処理装置500は、教示データを取得する。ここで、教示データは、学習画像である腹部CT画像と、学習画像と対応して存在する正解データで構成される。正解データは
、正解領域が描画された画像(正解画像)であり、対応する学習画像のどの位置に注目物体が描出されているかを示す。ここでは、肝臓の正解領域が描画されている画像(肝臓の正解画像)、腎臓の正解領域が描画されている画像(腎臓の正解画像)、胆のうの正解領域が描画されている画像(胆のうの正解画像)が正解データである。ここでの教示データには、夫々の教示データごとに、肝臓の正解画像、腎臓の正解画像、胆のうの正解画像のうち、少なくとも一つ以上の正解画像が存在するものを対象とする。そして、画像処理装置500は、取得した教示データを用いてCNNを学習する。本発明におけるCNNの学習では、肝臓の正解画像が存在する教示データの場合、共通ネットワークと肝臓に対応するネットワークのパラメータ更新を行う。同様に、腎臓の正解画像が存在する教示データと胆のうの正解画像が存在する教示データの場合も、CNNを構成する共通ネットワークと夫々の臓器に対応するネットワークのパラメータ更新を行う。このように画像処理装置500は、1つ以上のクラスに対応する正解データが欠損している教示データを用いて学習する際には、欠損していないクラスに対応するシングルクラスのネットワークの学習(パラメータ更新)を行う。一方、画像処理装置500は、正解データが欠損しているクラスに対応するシングルクラスネットワークを学習しない。また画像処理装置500は、教示データに正解データが欠損しているかいないかにかかわらず、共通ネットワークを学習してもよい。本発明におけるCNNは、上述した構成によって、複数の注目物体の夫々を表すクラスに対応する正解データのうち、一部のクラスに対応する正解データが欠損している教示データであっても学習に用いることができる。
【0020】
本明細書では、画像処理装置100により処理対象である腹部CT画像から臓器領域をセグメンテーションする工程を推論工程と呼び、画像処理装置500によりCNNを学習する工程を学習工程と呼ぶ。本実施形態では、推論工程と学習工程をそれぞれ画像処理装置100と画像処理装置500で実現しているが、推論工程と学習工程の両方を1つの画像処理装置で実現してもよい。
【0021】
以下では、複数の注目物体の夫々を表すクラスに対応する正解データがすべて揃っている教示データを、完全な教示データと呼ぶ。また、複数の注目物体の夫々を表すクラスに対応する正解データのうち一部のクラスに対応する正解データが欠損している教示データを、不完全な教示データと呼ぶ。また、ネットワークのパラメータを単にパラメータと呼ぶ。
【0022】
[推論工程]
まず、本実施形態に係る画像処理装置100の構成について説明する。
【0023】
(機能構成)
図1を参照して本実施形態に係る画像処理装置100の機能構成について説明する。同図に示すように、画像処理装置100は、第一のデータ取得部110、第一のネットワーク構築部120、識別部130を含んで構成される。また、本実施形態に係る画像処理装置100は外部の記憶装置70に通信可能に接続される。
【0024】
記憶装置70はコンピュータ読み取り記憶媒体の一例であり、ハードディスクドライブ(HDD)やソリッドステイトドライブ(SSD)に代表される大容量情報記憶装置である。記憶装置70は、処理対象である少なくとも1つ以上の腹部CT画像と、識別部130におけるCNNのパラメータを保持している。
【0025】
第一のデータ取得部110は、記憶装置70から、識別部130におけるCNNのパラメータを取得する。そして、第一のデータ取得部110は、取得したCNNのパラメータを第一のネットワーク構築部120に送信する。また、第一のデータ取得部110は、記憶装置70から、処理対象である腹部CT画像を入力画像として取得する。そして、第一
のデータ取得部110は、取得した入力画像を識別部130に送信する。
【0026】
第一のネットワーク構築部120は、第一のデータ取得部110からCNNのパラメータを受信する。次に、第一のネットワーク構築部120は、CNNのパラメータに基づいて、CNNを構築する。CNNの構成は後述する。そして、構築したCNNを識別部130へ送信する。
【0027】
識別部130は、第一のデータ取得部110から入力画像を受信し、第一のネットワーク構築部120からCNNを受信する。識別部130は、次に、入力画像をCNNに入力し、セグメンテーション結果を得る。
【0028】
なお、図1に示した画像処理装置100の各部の少なくとも一部は、独立した装置として実現してもよい。また、画像処理装置100の各部は、夫々の機能を実現するソフトウェアとして実現してもよいし、専用のハードウェアにより実現してもよい。本実施形態では、各部は夫々ソフトウェアにより実現されているものとする。
【0029】
(ハードウェア構成)
図2は画像処理装置100のハードウェア構成の一例を示す図である。画像処理装置100は、公知のコンピュータ(情報処理装置)の構成を有する。画像処理装置100は、そのハードウェア構成として、CPU201、主メモリ202、磁気ディスク203、表示メモリ204、モニタ205、マウス206、キーボード207を含む。
【0030】
CPU(Central Processing Unit)201は、主として各構成要素の動作を制御する。主メモリ202は、CPU201が実行する制御プログラムを格納したり、CPU201によるプログラム実行時の作業領域を提供したりする。磁気ディスク203は、OS(Operating System)、周辺機器のデバイスドライバ、後述する処理等を行うためのプログラムを含む各種アプリケーションソフトを実現するためのプログラムを格納する。CPU201が主メモリ202、磁気ディスク203等に格納されているプログラムを実行することにより、図1に示した画像処理装置100の機能(ソフトウェア)及び後述するフローチャートにおける処理が実現される。
【0031】
表示メモリ204は、表示用データを一時記憶する。モニタ205は、例えばCRTモニタや液晶モニタ等であり、表示メモリ204からのデータに基づいて画像やテキスト等の表示を行う。マウス206及びキーボード207は、ユーザによるポインティング入力及び文字等の入力を夫々行う。上記各構成要素は、共通バス208により互いに通信可能に接続されている。
【0032】
CPU201はプロセッサまたは制御部の一例に相当する。画像処理装置100は、CPU201に加えて、GPU(Graphics Processing Unit)やFPGA(Field-Programmable Gate Array)の少なくともいずれかを有していてもよい。また、CPU201に代えて、GPUやFPGAの少なくともいずれかを有していてもよい。主メモリ202および磁気ディスク203はメモリまたは記憶装置の一例に相当する。
【0033】
(処理フロー)
図3を用いて、本実施形態における画像処理装置100の処理手順について説明する。
【0034】
(ステップS3100)
本ステップにおいて、第一のデータ取得部110は、記憶装置70から、識別部130におけるCNNのパラメータを取得する。そして、第一のデータ取得部110は、取得し
たCNNのパラメータを第一のネットワーク構築部120に送信する。
【0035】
(ステップS3200)
本ステップにおいて、第一のネットワーク構築部120は、第一のデータ取得部110から受信したCNNのパラメータに基づいて、CNNを構築する。そして、構築したCNNを識別部130へ送信する。
【0036】
図4を参照して、本実施形態におけるCNNの構成を説明する。本実施形態に係るCNN4000は、共通ネットワーク4100に、複数のシングルクラスネットワーク4200が接続されて構成される。
【0037】
共通ネットワーク4100は、複数のクラスに共通するネットワークである。共通ネットワーク4100は、入力を受け取るInput層や複数のConvolution層で構成されており、入力画像から第一の特徴を抽出する役割を担う。本実施形態では、Pooling層やUpsampling層も利用して共通ネットワーク4100を構成しているが、さらに、Batch Normalization層など他の層が含まれていてもよい。Convolution層は、Convolution処理後の結果である特徴マップに対して、活性化関数を適用するように構成されている。本実施形態では、共通ネットワーク4100における活性化関数は、ReLU(Rectified Linear Unit)を採用している。
【0038】
複数のシングルクラスネットワーク4200は、複数のクラスの夫々に対応する複数のネットワークである。本実施形態では、肝臓に対応するネットワークである肝臓ネットワーク4210、腎臓に対応するネットワークである腎臓ネットワーク4220、胆のうに対応するネットワークである胆のうネットワーク4230の3つのシングルクラスネットワークが存在する。複数のシングルクラスネットワーク4200の夫々は、複数のConvolution層で構成されており、共通ネットワーク4100が抽出した第一の特徴に基づいて、第二の特徴の夫々を抽出する役割を担う。複数のシングルクラスネットワーク4200の夫々の末端には、夫々に対応するクラスを個別に識別するためのシングルクラス出力層が存在している。具体的に、肝臓ネットワーク4210の末端には、肝臓クラスを識別するためのシングルクラス出力層4211が存在する。同様に、腎臓ネットワーク4220と胆のうネットワーク4230の末端にも、夫々のクラスを識別するためのシングルクラス出力層4221,4231が存在する。これらのシングルクラス出力層は、Convolution層であり、活性化関数としてSigmoid関数が設定されている。Sigmoid関数は、入力された値を0~1に正規化する関数である。したがって、複数のシングルクラスネットワーク4200の夫々は、各画素の画素値が0~1の画像を出力する。
【0039】
本実施形態で利用するCNN4000は、例えば、2D-CNNである。2D-CNNは、二次元画像を入力として、二次元画像に対する識別結果を出力する。したがって、2D-CNNは、Input層によって腹部CT画像(三次元断層画像)を構成する二次元断層画像(二次元画像の一種)を受け取り、その他のCNNを構成する層によって二次元処理が実行されて、二次元断層画像に対する識別結果を出力する。
【0040】
このように構成されたCNN4000は、複数のパラメータを有する。例えば、Convolution層における重みなどがパラメータに該当する。本ステップS3200では、後述の学習工程で得られたパラメータをCNNに設定することで、肝臓、腎臓、胆のう領域をセグメンテーションするCNNを構築する。これにより、本実施形態に係るCNNは、複数のシングルクラスネットワーク4200の夫々の末端に存在するシングルクラス出力層から、夫々に対応するクラスの識別結果として、夫々の尤度マップを出力できる
ようになる。例えば、肝臓ネットワーク4210は、各画素の画素値が肝臓らしさを0~1で表した肝臓の尤度マップを出力する。また、腎臓ネットワーク4220、胆のうネットワーク4230も同様に、夫々のクラスに対応する尤度マップを出力する。
【0041】
本実施形態に係るCNN4000は、後述する学習方法により、肝臓の正解画像、腎臓の正解画像、胆のうの正解画像のうち、一つ以上の正解画像が存在しない教示データ(不完全な教示データ)であっても学習に利用することが可能である。すなわち、複数の注目物体の夫々を表すクラスに対応する正解データのうち、一部のクラスに対応する正解データが欠損している教示データであっても学習に利用することができる。
【0042】
ここで、本実施形態におけるCNN4000と、シングルクラスを識別するCNNを注目物体の夫々を表すクラスの数分だけ用意する方法との比較を述べる。2つのCNNを比べると、前者(本実施形態におけるCNN4000)は、共通ネットワーク4100によってネットワークが共通化されている部分があるため、後者に比べて推論時および学習時の計算コストが低い。また、共通ネットワーク4100は、肝臓の正解画像のみが存在する不完全な教示データ、腎臓の正解画像のみが存在する不完全な教示データ、胆のうの正解画像のみが存在する不完全な教示データなど、すべての不完全な教示データを用いて学習できる。これにより、共通ネットワーク4100がより多くの特徴を学習できるため、CNNによる識別精度の向上が期待できる。
【0043】
なお、本実施形態に係るCNN4000は、二次元画像を入力として受け取り、該二次元画像に対する識別結果を出力するが(2D-CNNの一種)、これに限らない。例えば、本実施形態に係るCNNは、三次元画像を入力として受け取り、該三次元画像に対する識別結果を出力する3D-CNNに属するCNNであってもよい。この場合、CNNは、三次元処理を実行する層などで構成される。その他、入力の次元数は如何なるものであっても構わないし、識別器を構成する層に関する制約はない。
【0044】
なお、本実施形態に係るCNN4000は、すべてのクラスに共通する共通ネットワークが1つだけ存在したが、すべてのクラスのうちの一部かつ複数のクラスに共通する共通ネットワークが1つまたは複数存在してもよい。例えば、共通ネットワークは、第一のクラスと第二のクラスに共通する第一の共通ネットワークと、第一のクラスと第三のクラスに共通する第二の共通ネットワークとを含んでもよい。この場合、前記第一のクラスに対応するシングルクラスネットワークに、前記第一の共通ネットワークおよび前記第二の共通ネットワークが接続される。例えば、CNN4000は、肝臓クラスと腎臓クラスに共通する共通ネットワークと、肝臓クラスと胆のうクラスに共通する共通ネットワークを夫々含んでもよい。この場合、肝臓クラスと腎臓クラスに共通する共通ネットワークには、肝臓ネットワークと腎臓ネットワークが接続され、同様に肝臓クラスと胆のうクラスに共通する共通ネットワークには、肝臓ネットワークと腎臓ネットワークが接続されることで構成される。このとき、肝臓ネットワークには2つの共通ネットワークの夫々で抽出した2つの特徴マップ(第一の特徴)が入力となる。そのため、例えば、2つの特徴マップを結合するConcatenation層により、2つの第一の特徴を結合したり、あるいは2つの特徴マップ同士を加算して統合したりして、肝臓ネットワークに入力する。人体において、肝臓と腎臓、肝臓と胆のうは隣接することがあるが、腎臓と胆のうは隣接することはほとんどない。そのため、上述のように、腎臓と胆のうを別の共通ネットワークに分け、不要な特徴の学習を回避することで、識別精度の向上が期待できる。
【0045】
なお、本実施形態に係るCNN4000における複数のシングルクラスネットワーク4200の夫々は、複数のConvolution層で構成したが、シングルクラス出力層のみで構成されてもよい。また、複数のシングルクラスネットワーク4200の夫々は、互いに同一の層構成を有してもよいし、異なる層構成を有してもよい。
【0046】
(ステップS3250)
本ステップにおいて、第一のデータ取得部110は、記憶装置70から入力画像を取得して、識別部130に送信する。
【0047】
(ステップS3300)
本ステップにおいて、識別部130は、第一のデータ取得部110から受信した入力画像を、第一のネットワーク構築部120により構築したCNNに入力して順伝播処理を実行することで、推論処理を実行する。本実施形態では、CNNによる識別処理の結果として入力画像に対する肝臓の尤度マップ、腎臓の尤度マップ、胆のうの尤度マップを得る。
【0048】
本ステップでは、先ず、入力画像をCNN4000に入力する。CNN4000は、共通ネットワーク4100内のInput層(入力層)で入力画像を受け取る。そして、各層の処理を適用しながら後続の層に順伝播する。後続の層では、Input層で受け取った腹部CT画像や前層の処理結果である特徴マップを入力とし、各々の処理を適用することで特徴マップを出力する。共通ネットワーク4100の処理が終わると、共通ネットワーク4100の出力である特徴マップは、複数のシングルクラスネットワーク4200の夫々に入力される。複数のシングルクラスネットワーク4200の夫々は、共通ネットワーク4100と同様に順伝播処理を実行する。このとき、肝臓ネットワーク4210、腎臓ネットワーク4220、胆のうネットワーク4230の順伝播処理が並列処理で実現されていてもよいし、逐次処理で実現されていてもよい。そして、各シングルクラスネットワークの順伝播処理が終わると、肝臓ネットワークからは肝臓の尤度マップ、腎臓ネットワークからは腎臓の尤度マップ、胆のうネットワークからは胆のうの尤度マップが出力される。
【0049】
なお、上記では、すべてのシングルクラスネットワークの順伝播処理を行ったが、一部のシングルクラスネットワークの処理のみを行う構成でもよい。例えば、肝臓の識別結果のみが必要な場合、共通ネットワーク4100と肝臓ネットワーク4210のみの順伝播処理を実行すればよい。あるいは、ステップS3200において、第一のネットワーク構築部120は、例えば共通ネットワーク4100と肝臓ネットワーク4210のみで構成されたネットワークを構築してもよい。この場合、腎臓ネットワーク4220および胆のうネットワーク4230は、学習工程でのみ用いる。このようにすることで、計算コストを低減しつつ、所望の識別結果のみを得ることができる。
【0050】
(ステップS3400)
本ステップにおいて、識別部130は、肝臓の尤度マップ、腎臓の尤度マップ、胆のうの尤度マップの夫々に対して後処理を行うことで、夫々のセグメンテーション結果を出力する。
【0051】
本実施形態では、後処理としてしきい値処理と最大連結成分の取得処理を適用する。識別部130は、先ず、夫々の尤度マップに対して、しきい値t=0.5を用いてしきい値処理を実行する。しきい値処理では、夫々の尤度マップにおける各画素の画素値(尤度)をしきい値tと比較し、画素値を0か1に置き換えることで二値画像に変換する。識別部130は、次に、しきい値処理を実行して得られた二値画像に対して、最大連結成分の取得処理を実行する。肝臓や胆のうは、一塊の臓器であるため、最大連結成分を取得することで、孤立したノイズ領域を排除できる。腎臓は、右腎と左腎の二対であるため、腎臓の二値画像を左右分割し、左右の画像の夫々に対して最大連結成分を取得することで、同様に孤立したノイズ領域を排除する。識別部130は、上記の後処理を適用した後の夫々の二値画像を、セグメンテーション結果として出力する。
【0052】
上記では、後処理としてしきい値処理と最大連結成分の取得処理を実施したが、これに限らない。例えば、グラフカット法によるセグメンテーションを適用してもよい。この場合、夫々の尤度マップに基づき、エネルギー関数のデータ項を設計すればよい。また、重複領域を排除するために、夫々の尤度マップ内の同一座標において、最大となる尤度を取得し、これに基づき、二値画像に変換する処理を実行してもよい。その他、如何なる後処理を適用しても構わない。
【0053】
なお、本ステップS3400は必須ではないため、省略してもよい。その場合、識別部130は肝臓、腎臓、胆のうのセグメンテーション結果として、肝臓の尤度マップ、腎臓の尤度マップ、胆のうの尤度マップを出力する。
【0054】
以上の手順にしたがい、本実施形態に係る画像処理装置100は、腹部CT画像から肝臓、腎臓、胆のうのセグメンテーション結果を得て、記憶装置70やモニタ205に出力する。
【0055】
なお、識別部130による処理対象である入力画像が複数存在する場合には、ステップS3250からステップS3400の処理を、夫々の入力画像に対して繰り返し実行すればよい。本実施形態では、識別部130は腹部CT画像を構成する二次元断層画像の夫々を処理対象として、ステップS3250からステップS3400の処理を繰り返し実行する。
【0056】
[学習工程]
次に、本実施形態に係る画像処理装置500の構成について説明する。
【0057】
(機能構成)
図5を参照して、本実施形態に係る画像処理装置500の機能構成について説明する。同図に示すように、画像処理装置500は、教示データを取得する第二のデータ取得部510、CNNを構築する第二のネットワーク構築部520、教示データを利用してCNNを学習する学習部530を含んで構成される。また、本実施形態に係る画像処理装置500は外部の記憶装置70に通信可能に接続される。
【0058】
記憶装置70はコンピュータ読み取り記憶媒体の一例である。記憶装置70は、複数の教示データを保持している。教示データの詳細は後述する。
【0059】
第二のデータ取得部510は、記憶装置70から、教示データを取得する。そして、第二のデータ取得部510は、取得した教示データを学習部530に送信する。
【0060】
第二のネットワーク構築部520は、CNNを構築し、パラメータを初期化する。そして、構築したCNNを学習部530へ送信する。
【0061】
学習部530は、第二のデータ取得部510から複数の教示データを受信し、第二のネットワーク構築部520からCNNを受信する。次に、学習部530は、後述の学習方法によりCNNを学習し、学習後のCNNのパラメータを記憶装置70に保存する。
【0062】
なお、図5に示した画像処理装置500の各部の少なくとも一部を、独立した装置として実現してもよい。また、画像処理装置500の各部を、夫々の機能を実現するソフトウェアとして実現してもよいし、専用のハードウェアにより実現してもよい。本実施形態では、各部は夫々ソフトウェアにより実現されているものとする。
【0063】
(ハードウェア構成)
画像処理装置500におけるハードウェア構成は、図2に示した画像処理装置100におけるハードウェア構成と同様であるため、説明を省略する。
【0064】
(処理手順)
図6を用いて、本実施形態における画像処理装置500の処理手順について説明する。
【0065】
(ステップS6100)
本ステップにおいて、第二のデータ取得部510は、記憶装置70から、複数の教示データを取得する。そして、第二のデータ取得部510は、取得した複数の教示データを学習部530に送信する。
【0066】
図7を参照して、教示データについて説明する。本実施形態において、教示データは学習画像710と、学習画像710に対応する正解データで構成される。学習画像710は、CNNによる処理の対象とする画像と同様の属性を持った画像であり、本実施形態では腹部CT画像である。また本実施形態において正解データは、肝臓の正解画像711、腎臓の正解画像712、胆のうの正解画像713である。正解画像711,712,713の夫々は、学習画像710における肝臓、腎臓、胆のうのそれぞれ位置あるいは領域を示すデータである。教示データは、学習データ、教師データ、訓練データなどと称されることもある。正解画像は正解ラベル画像と称されることもある。
【0067】
図7では、4種類の教示データを示している。図7の(a)は、学習画像710に対して、肝臓の正解画像711、腎臓の正解画像712、胆のうの正解画像713がすべて存在する教示データである。これを完全な教示データと称する。図7の(b)は、学習画像710に対して、肝臓の正解画像711のみが存在する教示データである。つまり、腎臓の正解画像と胆のうの正解画像が存在しない(欠損した)教示データである。これを不完全な教示データと称する。同様に、図7の(c)は学習画像に対して、腎臓の正解画像712のみが存在する不完全な教示データであり、図7の(d)は学習画像に対して、胆のうの正解画像713のみが存在する不完全な教示データを示している。
【0068】
本ステップS6100において、第二のデータ取得部510は、上記の4種類の教示データを任意に取得する。つまり、第二のデータ取得部510は、不完全な教示データだけを取得してもよいし、不完全な教示データと完全な教示データの双方を取得してもよい。もちろん、完全な教示データのみを取得してもよい。
【0069】
なお、ここでは説明を簡便にするために、同一の学習画像710を例に挙げて、4種類の教示データを説明したが、4種類の教示データ間には、同一の学習画像が含まれていなくてもよいし、含まれていてもよい。同一の学習画像が含まれていない場合は、4種類の教示データ間には重複する学習画像が存在しないことを意味する。また、図7では、不完全な教示データとして、複数のクラスのうち、いずれか1つクラスに対応する正解画像のみしか存在しない教示データを示したが、任意の数の正解画像が存在する教示データであっても構わない。例えば、肝臓の正解画像と腎臓の正解画像が存在し、胆のうの正解画像が存在しない不完全な教示データが含まれていてもよい。
【0070】
(ステップS6200)
本ステップにおいて、第二のネットワーク構築部520は、CNNを構築し、パラメータを初期化する。そして、構築したCNNを学習部530へ送信する。
【0071】
本実施形態において、第二のネットワーク構築部520は、画像処理装置100で用いるCNNと同一のCNNを利用する。CNNのパラメータは、Heらが提案した初期値の決定方法[Kaiming He, et al., “Delving Deep i
nto Rectifiers: Surpassing Human-Level Performance on ImageNet Classification,” ICCV, 2015]や、定数値や乱数値を初期値とする方法など、公知の方法で初期化する。また、記憶装置70からCNNのパラメータの初期値を取得し、パラメータを初期化してもよい。例えば、あらかじめ学習させて得られたパラメータを転移させる場合(転移学習)には、この方法によりパラメータを初期化する。
【0072】
なお、第二のネットワーク構築部520で構築するCNNは、画像処理装置100で用いるCNNと同一の構成でなくてもよい。例えば、学習による汎化性能を向上させるために、Dropout層を追加してもよい。また、例えば、識別工程で胆のうネットワーク4230(シングルクラスネットワークの一つ)を利用しない場合であっても、学習工程では胆のうネットワーク4230を共通ネットワーク4100に接続してCNNを構築してもよい。これにより、胆のうの正解画像のみが存在する教示データも学習に利用できるため、共通ネットワークがより多くの特徴を学習することができ、汎化性能の向上が期待できる。
【0073】
(ステップS6300)
本ステップにおいて、学習部530は、第二のデータ取得部510から受信した複数の教示データを用いて、第二のネットワーク構築部520から受信したCNNを、後述の学習方法によって学習する。そして、学習後のCNNのパラメータを記憶装置70に保存する。
【0074】
図6(b)を参照して、学習方法について詳説する。
【0075】
(ステップS6310)
本ステップにおいて、学習部530は、CNNにおける学習の進捗等が学習の終了条件を満たしているか否かを判定する。学習の終了条件としては、エポック数に関する条件や損失値の収束に関する条件など、公知の方法を用いる。CNNにおける学習の進捗等が学習の終了条件を満たしていない場合には、ステップS6320に処理を進める。学習の終了条件を満たしている場合には、ステップS6370に処理を進める。
【0076】
(ステップS6320)
本ステップにおいて、学習部530は、複数の教示データの中から、任意の教示データ(学習画像と正解データの組)を一組選択する。
【0077】
本実施形態では、学習部530は、教示データの属性を一つのグループとして、グループごとに順番に選択する。教示データの属性とは、教示データがどのクラスの正解データ(正解画像)を有しているかという情報である。すなわち、学習部530は、教示データがどのクラスの正解データを有しているかに応じて教示データをグループ分けし、1エポック内で、グループごとに教示データを選択して学習を行う。なお、本実施形態では、記憶装置70が、夫々の教示データの属性に関する情報(属性情報)を保持している。学習部530は、当該属性情報を参照することで夫々の教示データの属性を取得し、属性に応じた処理を実行する。学習部530は、例えば、複数の教示データの中から、先ずは完全な教示データを選択し、ステップS6300を順次実行する。未処理の完全な教示データが無くなったら、次は肝臓の不完全な教示データを選択し、同様にステップS6300を順次実行する。そして、腎臓の不完全な教示データ、胆のうの不完全な教示データに対してもステップS6300を順次実行する。これを1エポックとする。すべてのグループの教示データについてステップS6300を実行し終えたら、再び完全な教示データから順番に処理する。このように、教示データの属性を一つのグループとして、CNNに対して順番に学習させることで、リミットサイクルに陥りにくくなり、学習が安定する。
【0078】
なお、教示データを選択する順番はどのような順番でもよい。上述の方法では、学習を終了する直前に選択されていたグループの影響が、比較的に強くパラメータに残る。例えば、ステップS6310において、エポック数を終了条件に設定した場合、上述の方法では、胆のうの正解画像のみが存在する不完全な教示データが最後に学習される。この場合、胆のうの識別精度が高くなり、教示データに正解画像として含まれていない肝臓や腎臓の識別精度が低下する可能性がある。これを回避する場合には、例えば教示データをランダムに選択する方法や、上述の方法で完全な教示データを1エポック内の最後に学習するように選択する方法を採用すればよい。
【0079】
(ステップS6330)
本ステップにおいて、学習部530は、ステップS6320で選択した教示データの属性に基づいて、パラメータを更新する層を決定する。すなわち、本ステップでは、学習部530は、選択された教示データがどのクラスの正解データを有しているかに応じて、教示データを用いて学習する際のパラメータを更新する層を決定する。
【0080】
ステップS6320において図7(a)のような完全な教示データが選択された場合、本ステップでは、学習部530は、共通ネットワーク4100と複数のシングルクラスネットワーク4200の全てに含まれる層を、パラメータを更新する層として決定する。
【0081】
一方、図7(b)のような肝臓の正解画像のみが存在する不完全な教示データが選択された場合、本ステップでは、学習部530は、共通ネットワーク4100と肝臓ネットワーク4210に含まれる層を、パラメータを更新する層として決定する。図7(c)に示すような腎臓の正解画像のみが存在する不完全な教示データや、図7(d)に示すような胆のうの正解画像のみが存在する不完全な教示データにおいても、学習部530は同様にパラメータを更新する層を決定する。すなわち、ステップS6320において不完全な教示データが選択された場合は、学習部530は、共通ネットワーク4100と、正解画像が存在するクラスに対応するシングルクラスネットワークに含まれる層を、パラメータを更新する層として決定する。
【0082】
なお、パラメータを更新しない層については、任意に決定してよい。例えば、上記の説明では、すべてのケースにおいて、共通ネットワーク4100に含まれる層のパラメータを更新するように決定したが、あらかじめ定めた一部の層のパラメータを固定する構成であってもよい。これにより、例えば、ステップS6200において、あらかじめ学習させたパラメータを転移させた場合に、転移させたパラメータをそのまま利用することができる。
【0083】
(ステップS6340)
本ステップにおいて、学習部530は、ステップS6320で選択した教示データの学習画像をCNNに入力し、順伝播処理を実行する。これにより、現在のパラメータによる暫定の識別結果(尤度マップ)が得られる。
【0084】
ここで、順伝播処理を行うネットワークの範囲は、教示データの属性によらず常に全ネットワークに対して行ってもよいが、属性に応じて、ステップS6350の処理に必要な範囲に対してのみ処理を行うことで、無駄な演算を省いてもよい。すなわち、ステップS6320において図7(a)に示すような完全な教示データが選択された場合、本ステップでは、学習部530は、共通ネットワーク4100および複数のシングルクラスネットワーク4200の全てに対して順伝播処理を実行する。これにより、肝臓ネットワーク4210から肝臓の暫定の識別結果を取得する。同様に腎臓ネットワーク4220から腎臓の暫定の識別結果、胆のうネットワーク4230から胆のうの暫定の識別結果を取得する
【0085】
一方、ステップS6320において図7(b)に示すような肝臓の正解画像のみが存在する不完全な教示データが選択された場合、本ステップでは、学習部530は、共通ネットワーク4100および肝臓ネットワーク4210に対して順伝播処理を実行する。これにより、肝臓ネットワーク4210から肝臓の暫定の識別結果を取得する。このとき、腎臓の暫定の識別結果および胆のうの暫定の識別結果については、後段のステップで利用しないため、腎臓ネットワーク4220および胆のうネットワーク4230は順伝播処理をしない。図7(c)に示すような腎臓の正解画像のみが存在する不完全な教示データや、図7(d)に示すような胆のうの正解画像のみが存在する不完全な教示データにおいても、同様に順伝播処理を実行し、暫定の識別結果を取得する。すなわち、ステップS6320において不完全な教示データが選択された場合は、共通ネットワーク4100と、正解画像が存在するクラスに対応するシングルクラスネットワークに対して順伝播処理を実行し、暫定の識別結果を取得する。
【0086】
(ステップS6350)
本ステップにおいて、学習部530は、ステップS6320で選択した教示データの正解画像と、ステップS6340で得た暫定の識別結果に基づき、損失値を算出する。
【0087】
ステップS6320において図7(a)に示すような完全な教示データが選択された場合、ステップS6340において肝臓の暫定の識別結果、腎臓の暫定の識別結果、胆のうの暫定の識別結果の夫々が得られている。そのため、本ステップでは、学習部530は、教示データの正解画像の夫々と、複数のシングルクラスネットワーク4200が出力した暫定の識別結果の夫々に基づいて、夫々のクラスの損失値を算出する。より具体的には、肝臓の正解画像tliverと、肝臓ネットワーク4210が出力した肝臓の暫定の識別結果yliverとに基づく損失関数Lliver(yliver,tliver)により、肝臓の暫定の識別結果に対する損失値を算出する。同様に、損失関数Lkidney(ykidney,tkidney)により、腎臓の暫定の識別結果に対する損失値を算出し、損失関数Lgallbladder(ygallbladder,tgallbladder)により、胆のうの暫定の識別結果に対する損失値を算出する。
【0088】
一方、ステップS6320において図7(b)に示すような肝臓の正解画像のみが存在する不完全な教示データが選択された場合、ステップS6340において肝臓の暫定の識別結果が得られる。そのため、本ステップでは、学習部530は、教示データの肝臓の正解画像と肝臓ネットワーク4210が出力した肝臓の暫定の識別結果とに基づく損失関数Lliver(yliver,tliver)により、肝臓の暫定の識別結果に対する損失値を算出する。図7(c)に示すような腎臓の正解画像のみが存在する不完全な教示データや、図7(d)に示すような胆のうの正解画像のみが存在する不完全な教示データにおいても、同様に損失値を算出する。すなわち、ステップS6320において不完全な教示データが選択された場合は、正解画像の夫々と、正解画像が存在するクラスに対応する暫定の識別結果の夫々に基づいて、暫定の識別結果に対する損失値を夫々算出する。
【0089】
なお、損失関数は公知のものを用いればよい。例えば、MSE(Mean Squared Error)や、Cross Entropyを用いる。また、複数の暫定の識別結果であるシングルクラス出力層の夫々の出力に対して、同一の損失関数を用いて損失値を算出してもよいし、異なる損失関数を用いて損失値を算出してもよい。例えば、肝臓の暫定結果に対する損失値はMSEで算出し、腎臓の暫定結果および胆のうの暫定結果に対する損失値はCross Entropyで算出してもよい。また、各々の損失値に重みを付与してもよい。例えば、肝臓に比重をおいて学習させたい場合には、肝臓の暫定結果に対する損失値に大きい重みを付与し、腎臓の暫定結果および胆のうの暫定結果に対する
損失値に対する損失値に小さい重みを付与する構成としてもよい。
【0090】
(ステップS6360)
本ステップにおいて、学習部530は、ステップS6330で決定したパラメータを更新する層の情報と、ステップS6350で算出した暫定結果の夫々に対する損失値とに基づき、パラメータを更新する。
【0091】
ステップS6320において図7(a)に示すような完全な教示データが選択された場合、ステップS6350において肝臓の暫定の識別結果に対する損失値、腎臓の暫定の識別結果に対する損失値、胆のうの識別結果に対する損失値が得られている。そのため、本ステップでは、学習部530は、夫々の損失値に基づき、誤差逆伝播法などの公知の方法を用いて、パラメータを更新する。ここでは、誤差逆伝播法を例に説明する。肝臓の暫定の識別結果に対する損失値は、肝臓ネットワーク4210の出力に対する損失値である。そのため、学習部530は、肝臓の暫定の識別結果に対する損失値を、肝臓ネットワーク4210の末端に存在する肝臓クラスを識別するためのシングルクラス出力層4211から逆伝播処理を実行して勾配を算出する。同様に、腎臓の暫定の識別結果に対する損失値は、腎臓クラスを識別するためのシングルクラス出力層4221から逆伝播処理を実行して勾配を算出する。胆のうの暫定の識別結果に対する損失値は、胆のうクラスを識別するためのシングルクラス出力層4231から逆伝播処理を実行して勾配を算出する。共通ネットワーク4100は、複数のシングルクラスネットワーク4200の夫々から逆伝播されてきた値を考慮して、逆伝播処理を実行して勾配を算出する。そして、学習部530は、勾配に基づいてステップ6330で決定したパラメータを更新する層のパラメータを更新する。
【0092】
一方、ステップS6320において図7(b)に示すような肝臓の正解画像のみが存在する不完全な教示データが選択された場合、ステップS6350において肝臓の暫定の識別結果に対する損失値が得られている。そのため、本ステップでは、学習部530は、肝臓の暫定の識別結果に対する損失値を、肝臓ネットワーク4210の末端に存在する肝臓クラスを識別するためのシングルクラス出力層4211から逆伝播処理を実行して勾配を算出する。共通ネットワーク4100は、肝臓ネットワーク4210から逆伝播されてきた値を考慮して、逆伝播処理を実行して勾配を算出する。そして、学習部530は、勾配に基づいて、ステップ6330で決定したパラメータを更新する層のパラメータを更新する。図7(c)に示すような腎臓の正解画像のみが存在する不完全な教示データや、図7(d)に示すような胆のうの正解画像のみが存在する不完全な教示データにおいても、同様にパラメータを更新する。
【0093】
(ステップS6370)
本ステップにおいて、学習部530は、CNNのパラメータを記憶装置70に保存し、ステップS6300を終了する。
【0094】
以上の手順にしたがい、本実施形態に係る画像処理装置500は、画像処理装置100におけるCNNのパラメータを生成する。
【0095】
(本実施形態の効果)
以上に示したように、本実施形態に係る画像処理装置100および画像処理装置500におけるCNNは、肝臓の正解画像、腎臓の正解画像、胆のうの正解画像のうち、一部の正解画像が欠損している教示データであっても、学習することができる。すなわち、複数の注目物体の夫々を表すクラスに対応する正解データのうち、一部のクラスに対応する正解データが欠損している教示データであっても学習に利用することができる。
【0096】
<第二の実施形態>(概要)
第一の実施形態におけるCNNは、共通ネットワークに、複数のクラスの夫々に対応するシングルクラスネットワークを接続することで、不完全な教示データであっても学習できるような構成にした。しかしながら、第一の実施形態におけるCNNは、シングルクラスネットワークの夫々の末端で対応するクラスの識別結果のみを出力するため、夫々のクラスの配置関係を考慮した出力が得られにくい。例えば、肝臓ネットワークは、肝臓の暫定の識別結果に対する損失値のみによってパラメータを更新するため、肝臓と肝臓以外とのいずれかに分類するように学習される。すなわち、肝臓ネットワークでは、腎臓や胆のうは、肝臓以外に含まれる物体のうちの一つとして学習されるため、互いの配置関係は学習されにくい。腎臓ネットワークや胆のうネットワークについても同様である。
【0097】
例えば人体における臓器のように、臓器間の位置関係がある程度決まっている場合には、夫々の臓器(クラス)間の配置関係を学習した方が、識別精度の向上が期待できる。そのため、本実施形態では、互いの配置関係を考慮した出力が得られるように、マルチクラス出力層を有するマルチクラスネットワークを備えるCNNの構成およびその学習方法について説明する。
【0098】
本実施形態において、本明細書で開示される発明は、第一の実施形態と同様に、画像処理装置100と画像処理装置500を用いて実現される。画像処理装置100は本実施形態に係るCNNの推論工程を実行し、画像処理装置500は学習工程を実行する。
【0099】
[推論工程](機能構成・ハードウェア構成)
本実施形態に係る画像処理装置100の機能構成およびハードウェア構成は、第一の実施形態に係る画像処理装置100と同一であるため、説明を省略する。
【0100】
(処理フロー)
図3を参照して、本実施形態における画像処理装置100の処理手順について説明する。以下では、第一の実施形態に係る画像処理装置100の説明との重複部分を省略して説明する。
【0101】
(ステップS3100)
本ステップの処理は、第一の実施形態におけるステップS3100と同一であるため、説明を省略する。
【0102】
(ステップS3200)
本ステップにおいて、第一のネットワーク構築部120は、第一のデータ取得部110から受信したCNNのパラメータに基づいて、CNNを構築する。そして、構築したCNNを識別部130へ送信する。
【0103】
図8を参照して本実施形態におけるCNNの構成を説明する。本実施形態に係るCNN8000は、第一の実施形態に係るCNN4000に、さらにマルチクラスネットワーク8300が接続されて構成される。すなわち、本実施形態に係るCNN8000は、共通ネットワーク4100と、複数のシングルクラスネットワーク4200と、マルチクラスネットワーク8300を有する。共通ネットワーク4100と複数のシングルクラスネットワーク4200は、第一の実施形態に係るCNNと同一であるため、説明を省略する。
【0104】
マルチクラスネットワーク8300は、複数のシングルクラスネットワーク4200に接続されており、複数のシングルクラスネットワーク4200の夫々が抽出した複数の第二の特徴(夫々のシングルクラスに関する特徴)が入力される。マルチクラスネットワーク8300は、複数のクラスを識別するためのマルチクラス出力層を有しており、第二の
特徴に基づいて第三の特徴(マルチクラスに関する特徴)を抽出する。そして、マルチクラスネットワーク8300は、第三の特徴に基づいて、複数のクラスの識別結果を同時に出力する。複数のクラスの識別結果とは、具体的に、肝臓、腎臓、胆のう、その他の領域の各尤度マップである。ここで、その他の領域とは、腹部CT画像中に描出される肝臓、腎臓、胆のうを除くすべての領域のことを指す。マルチクラスネットワーク8300には、複数の第二の特徴を結合するためのConcatenation層が存在する。また、末端には、肝臓、腎臓、胆のう、その他の領域の尤度マップを同時に出力するためのマルチクラス出力層8301が存在する。マルチクラス出力層8301は、Convolution層であり、活性化関数としてSoftmax関数が設定されている。
【0105】
このように構成されたCNN8000は、複数のパラメータを有する。そのため、本ステップS3200では、後述の学習工程で得られたパラメータを、CNN8000に設定することで、肝臓、腎臓、胆のう領域をセグメンテーションするCNNを構築する。これにより、本実施形態に係るCNN8000は、第一の実施形態に係るCNNと同様に、複数のシングルクラスネットワーク4200の夫々の末端に存在するシングルクラス出力層から、夫々に対応するクラスの識別結果として、夫々の尤度マップを出力できる。さらに、マルチクラスネットワーク8300の末端に存在するマルチクラス出力層から、肝臓、腎臓、胆のうの識別結果として、夫々の尤度マップを出力できるようになる。以降では、複数のシングルクラスネットワーク4200の夫々の末端に存在するシングルクラス出力層から出力された識別結果を、肝臓の第一の尤度マップ、腎臓の第一の尤度マップ、胆のうの第一の尤度マップと呼ぶ。これら3つの尤度マップをまとめて第一の尤度マップと呼ぶ。また、マルチクラスネットワーク8300の末端に存在するマルチクラス出力層8301から出力された識別結果を、肝臓の第二の尤度マップ、腎臓の第二の尤度マップ、胆のうの第二の尤度マップと呼ぶ。これら3つの尤度マップをまとめて第二の尤度マップと呼ぶ。
【0106】
本実施形態に係るCNN8000は、後述する学習方法により、肝臓の正解画像、腎臓の正解画像、胆のうの正解画像のうち、一つ以上の正解画像が存在しない教示データ(不完全な教示データ)であっても学習することが可能である。すなわち、複数の注目物体の夫々を表すクラスに対応する正解データのうち、一部のクラスに対応する正解データが欠損している教示データであっても学習に利用することができる。
【0107】
本実施形態に係るCNNにおけるマルチクラスネットワーク8300は、複数のシングルクラスネットワーク4200の夫々が抽出した複数の第二の特徴を入力とするように構成したが、これに限らない。例えば、共通ネットワーク4100が抽出した第一の特徴をマルチクラスネットワーク8300の入力とするように構成してもよい。つまり、マルチクラスネットワーク8300は、共通ネットワーク4100に接続してもよい。この場合、複数のシングルクラスネットワーク4200とマルチクラスネットワーク8300は並列処理が可能となる。また、第一の特徴と、複数の第二の特徴とをマルチクラスネットワーク8300の入力とするように構成してもよい。つまり、マルチクラスネットワーク8300は、共通ネットワーク4100と複数のシングルクラスネットワーク4200とに接続してもよい。第一の特徴は、複数の第二の特徴よりも入力層に近い層で抽出した特徴であるため、入力である腹部CT画像のディティールを保持していると考えられる。一方で、複数の第二の特徴は、第一の特徴よりも入力層から遠い層で抽出した特徴であるため、高次の情報を保持していると考えられる。そのため、第一の特徴と複数の第二の特徴とを入力とすることで、双方の特性を考慮した出力が得られるため、識別精度の向上が期待できる。また、本実施形態に係るCNNにおいて、複数のシングルクラスネットワークの全てに接続する1つのマルチクラスネットワークを用いているが、一部のシングルクラスネットワークに接続する1つまたは複数のマルチクラスネットワークを用いてもよい。例えば、肝臓が最も注目すべき臓器である場合、肝臓ネットワーク4210と、その他2つ
のネットワークのうちの1つのネットワークとに接続するマルチクラスネットワークを2つ用いてCNN8000を構成してもよい。より具体的には、第一のマルチクラスネットワークは、肝臓ネットワーク4210と腎臓ネットワーク4220とに接続され、第二のマルチクラスネットワークは肝臓ネットワーク4210と胆のうネットワーク4230とに接続される。このようにすることで、第一のマルチクラスネットワークでは、肝臓と腎臓の関係をより確からしく学習させることができ、同様に第二のマルチクラスネットワークでは、肝臓と胆のうの関係をより確からしく学習させることができる。
【0108】
(ステップS3250)
本ステップの処理は、第一の実施形態におけるステップS3250と同一であるため、説明を省略する。
【0109】
(ステップS3300)
本ステップにおいて、識別部130は、第一のデータ取得部110から受信した入力画像を、第一のネットワーク構築部120から受信したCNNに入力して順伝播処理を実行することで、推論処理を実行する。本実施例では、複数のシングルクラスネットワーク4200から第一の尤度マップを取得し、マルチクラスネットワーク8300から第二の尤度マップを取得する。本ステップにおける処理の詳細は第一の実施形態と同様であるため、説明を省略する。
【0110】
なお、本実施形態において、識別部130は、第一の尤度マップと第二の尤度マップの双方を取得したが、いずれか一方でも構わない。例えば、第二の尤度マップのみを取得する場合、複数のシングルクラスネットワーク4200では、夫々の末端に存在するシングルクラス出力層には順伝播させずに、マルチクラスネットワーク8300に順伝播させる。あるいは、ステップS3200において、CNNを構築する際に、シングルクラス出力層をあらかじめ除いておいてもよい。この場合、シングルクラス出力層は学習工程にのみ用いることになる。
【0111】
(ステップS3400)
本ステップにおいて、識別部130は、第一の尤度マップと第二の尤度マップに対して後処理を行うことで、セグメンテーション結果を得て、記憶装置70やモニタ205に出力する。
【0112】
本ステップでは、識別部130は、第一の尤度マップと第二の尤度マップにおける、同じクラスに関する尤度マップを統合し、当該クラスの新たな尤度マップ(第三の尤度マップ)を生成する。具体的には、識別部130は、肝臓の第一の尤度マップに含まれる画素の画素値と、肝臓の第二の尤度マップに含まれる画素の画素値を平均値統合し、肝臓の第三の尤度マップを生成する。同様に、識別部130は、腎臓の第三の尤度マップと胆のうの第三の尤度マップを生成する。そして、識別部130は、セグメンテーション結果として、肝臓の第三の尤度マップ、腎臓の第三の尤度マップ、胆のうの第三の尤度マップを出力する。
【0113】
上述の方法では、第一の尤度マップと第二の尤度マップを平均値統合したが、統合方法はこれに限らない。例えば、平均値統合をする際に、第一の尤度マップと第二の尤度マップに重みを付与して平均値統合してもよい。その他にも、第一の尤度マップと第二の尤度マップに含まれる画素の画素値を、最大値統合や最小値統合で統合してもよいし、夫々の尤度マップを二値画像に変換した後に、論理和統合、論理積統合などの方法で統合してもよい。例えば、肝臓の第一の尤度マップおよび肝臓の第二の尤度マップの双方において、肝臓領域が抽出不足になりやすい場合は、最大値統合や論理和統合を行うことで、肝臓領域の抽出不足を抑制できる。また、肝臓の第一の尤度マップおよび肝臓の第二の尤度マッ
プの双方において、肝臓以外の領域を誤抽出しやすい場合は、最小値統合や論理積統合を行うことで、肝臓以外の領域の誤抽出を抑制できる。
【0114】
上記において、平均値統合は、第一の尤度マップと第二の尤度マップの対応する画素の平均値を、統合後の尤度マップとして画素値とする統合方法である。最大値統合、最小値統合、論理和統合、論理積統合も、同様であり、平均値の代わりに最大値、最小値、論理和、論理積を統合後の画素値とする統合方法である。
【0115】
上記では、後処理として第一の尤度マップと第二の尤度マップの統合処理を実施したが、第一の実施形態におけるステップS3400に記載した後処理を適用しても構わない。その他、第一の尤度マップおよび第二の尤度マップに対して、如何なる後処理を適用しても構わない。
【0116】
なお、本ステップは必須ではないため、省略してもよい。その場合、識別部130はセグメンテーション結果として、肝臓の第一の尤度マップ、腎臓の第一の尤度マップ、胆のうの第一の尤度マップと、肝臓の第二の尤度マップ、腎臓の第二の尤度マップ、胆のうの第二の尤度マップとを出力する。
【0117】
以上の手順にしたがい、本実施形態に係る画像処理装置100は、腹部CT画像から肝臓、腎臓、胆のうのセグメンテーション結果を出力する。
【0118】
[学習工程](機能構成・ハードウェア構成)
本実施形態に係る画像処理装置500の機能構成およびハードウェア構成は、第一の実施形態に係る画像処理装置500と同一であるため、説明を省略する。
【0119】
(処理フロー)
図6を参照して、本実施形態における画像処理装置500の処理手順について説明する。以下では、第一の実施形態に係る画像処理装置500の説明との重複部分を省略して説明する。
【0120】
(ステップS6100)
本ステップにおいて、第二のデータ取得部510は、記憶装置70から、複数の教示データを取得する。そして、第二のデータ取得部510は、取得した複数の教示データを学習部530に送信する。
【0121】
本実施形態に係るCNN8000は、マルチクラス出力層8301を有するマルチクラスネットワーク8300を備える。このマルチクラスネットワーク8300を学習させるためには、肝臓の正解画像、腎臓の正解画像、胆のうの正解画像がすべて揃った教示データ(完全な教示データ)が必要である。なぜならば、マルチクラス出力層8301が出力した複数の暫定の識別結果(肝臓の暫定の識別結果、腎臓の暫定の識別結果、胆のうの暫定の識別結果)に対して、正しい損失値を算出するためには、夫々の正解画像が必要になるためである。したがって、第二のデータ取得部510は、完全な教示データを少なくとも1つ以上含むように教示データを取得する。
【0122】
(ステップS6200)
本ステップの処理は、第一の実施形態におけるステップS6200と同一であるため、説明を省略する。
【0123】
(ステップS6300)
本ステップにおいて、学習部530は、第二のデータ取得部510から受信した複数の
教示データを用いて、第二のネットワーク構築部520から受信したCNNを、後述の学習方法によって学習する。そして、学習後のCNNのパラメータを記憶装置70に保存する。
【0124】
図6(b)を参照して、学習方法について詳説する。第一の実施形態と同様のステップについては説明を省略し、差分についてのみ説明する。
【0125】
(ステップS6310)
本ステップの処理は、第一の実施形態におけるステップS6310と同一であるため、説明を省略する。
【0126】
(ステップS6320)
本ステップの処理は、第一の実施形態におけるステップS6320と同一であるため、説明を省略する。
【0127】
(ステップS6330)
本ステップにおいて、学習部530は、ステップS6320で選択した教示データの属性に基づいて、パラメータを更新する層を決定する。
【0128】
ステップS6320において図7(a)に示すような完全な教示データが選択された場合、本ステップでは、学習部530は、すべてのネットワークに含まれる層を、パラメータを更新する層として決定する。すなわち、学習部530は、共通ネットワーク4100、複数のシングルクラスネットワーク4200、マルチクラスネットワーク8300に含まれる層を、パラメータを更新する層として決定する。
【0129】
一方、ステップS6320において図7(b)~図7(d)に示すような不完全な教示データが選択された場合は、第一の実施形態におけるステップS6330に記載の処理を実行する。すなわち、学習部530は、共通ネットワーク4100と、正解画像が存在するクラスに対応するシングルクラスネットワークに含まれる層を、パラメータを更新する層として決定する。
【0130】
このように本実施形態では、完全な教示データを用いて学習する際には、マルチクラスネットワーク8300を学習し、不完全な教示データを用いて学習する際には、マルチクラスネットワーク8300を学習しない。
【0131】
(ステップS6340)
本ステップにおいて、学習部530は、ステップS6320で選択した教示データの学習画像をCNNに入力し、順伝播処理を実行する。これにより、現在のパラメータによる暫定の識別結果(尤度マップ)が得られる。
【0132】
ステップS6320において図7(a)に示すような完全な教示データが選択された場合、本ステップでは、共通ネットワーク4100、複数のシングルクラスネットワーク4200、マルチクラスネットワーク8300に対して順伝播処理を実行する。これにより、複数のシングルクラスネットワーク4200の夫々から、肝臓の第一の暫定の識別結果、腎臓の第一の暫定の識別結果、胆のうの第一の暫定の識別結果を取得する。これらをまとめて第一の暫定の識別結果と称する。また、マルチクラスネットワーク8300から、肝臓の第二の暫定の識別結果、腎臓の第二の暫定の識別結果、胆のうの第二の暫定の識別結果、その他の領域の暫定の識別結果を取得する。これらをまとめて第二の暫定の識別結果と称する。
【0133】
一方、ステップS6320において図7(b)~図7(d)に示すような不完全な教示データが選択された場合は、第一の実施形態におけるステップS6340に記載の処理を実行する。すなわち、学習部530は、正解画像が存在するクラスまたは全てのクラスに対応する第一の暫定の識別結果を取得する。
【0134】
(ステップS6350)
本ステップにおいて、学習部530は、ステップS6320で選択した教示データの正解画像と、ステップS6340で得た暫定の識別結果に基づき、損失値を算出する。
【0135】
ステップS6320において図7(a)に示すような完全な教示データが選択された場合、ステップS6340において第一の暫定の識別結果と第二の暫定の識別結果の夫々が得られている。そのため、本ステップでは、学習部530は、教示データの正解画像の夫々と、第一の暫定の識別結果の夫々とに基づいて、第一の暫定の識別結果の夫々に対する複数の損失値を算出する。また、学習部530は、教示データの正解画像の夫々と、第二の暫定の識別結果の夫々とに基づいて、第二の暫定の識別結果に対する損失値を算出する。第二の暫定の識別結果に対する損失値は、夫々の正解画像tmulti-class=[tliver,tkidney,tgallbladder,tothers]と、第二の暫定の識別結果ymulti-class=[yliver,ykidney,ygallbladder,yothers]に基づく損失関数Lmulti-class(ymulti-class,tmulti-class)により算出する。ここで、tothersはその他の領域の正解画像であり、yothersはその他の領域の暫定の識別結果を表す。第一の暫定の識別結果の夫々に対する複数の損失値の算出については、第一の実施形態におけるステップS6350に記載の通りである。
【0136】
一方、ステップS6320において図7(b)~図7(d)に示すような不完全な教示データが選択された場合は、第一の実施形態におけるステップS6350に記載の処理を実行する。すなわち、学習部530は、ステップS6340で得られた第一の暫定の識別結果に対する損失値を算出する。
【0137】
なお、損失関数は公知のものを用いればよい。また、第一の暫定の識別結果と第二の暫定の識別結果の夫々に対して、同一の損失関数を用いて損失値を算出してもよいし、異なる損失関数を用いて損失値を算出してもよいし、各々の損失値に重みを付与してもよい。シングルクラス出力層のみを有するCNNと、マルチクラス出力層のみを有するCNNを学習する際に、良好な学習結果が得られる損失関数が異なる場合がある。例えば、シングルクラス出力層のみを有するCNNでは、MSEが最も良好な学習結果が得られるのに対し、マルチクラス出力層のみを有するCNNでは、Cross Entropyが最も良好な学習結果が得られるということがある。このような場合、本実施形態に係るCNNにおいても、同様の現象が生じる可能性がある。そのため、第一の暫定の識別結果に対しては、MSEにより損失値を算出し、第二の暫定の識別結果に対しては、Cross Entropyにより損失値を算出することで、双方の識別精度の向上が期待できる。
【0138】
(ステップS6360)
本ステップにおいて、学習部530は、ステップS6330で決定したパラメータを更新する層の情報と、ステップS6350で算出した暫定結果の夫々に対する損失値とに基づき、パラメータを更新する。
【0139】
ステップS6320において図7(a)に示すような完全な教示データが選択された場合、ステップS6350において第一の暫定の識別結果の夫々に対する複数の損失値および第二の暫定の識別結果に対する損失値が得られている。そのため、本ステップでは、学習部530は、夫々の損失値に基づき、誤差逆伝播法などの公知の方法を用いて、パラメ
ータを更新する。ここで、第二の暫定の識別結果に対する損失値は、マルチクラスネットワーク8300の出力に対する損失値である。そのため、第二の暫定の識別結果に対する損失値を、マルチクラスネットワーク8300の末端に存在するマルチクラス出力層8301から逆伝播させて勾配を算出する。同様に、学習部530は、第一の暫定の識別結果に対する複数の損失値を、複数のシングルクラスネットワーク4200の夫々の末端に存在するシングルクラス出力層から逆伝播させて勾配を算出する。このとき、複数のシングルクラスネットワーク4200の夫々には、マルチクラスネットワーク8300が接続されているため、マルチクラスネットワーク8300から逆伝播されてきた値を考慮して逆伝播処理を実行し、勾配を算出する。同様に、共通ネットワーク4100は、複数のシングルクラスネットワーク4200の夫々から逆伝播されてきた値を加味して、逆伝播処理を実行して勾配を算出する。そして、学習部530は、勾配に基づいて、ステップ6330で決定したパラメータを更新する層のパラメータを更新する。
【0140】
一方、ステップS6320において図7(b)~図7(d)に示すような不完全な教示データが選択された場合は、第一の実施形態におけるステップS6360に記載の処理を実行する。
【0141】
(ステップS6370)
本ステップの処理は、第一の実施形態におけるステップS6370と同一であるため、説明を省略する。
【0142】
以上の手順にしたがい、本実施形態に係る画像処理装置500は、画像処理装置100におけるCNNのパラメータを生成する。
【0143】
(本実施形態の効果)
以上に示したように、本実施形態に係る画像処理装置100および画像処理装置500におけるCNNは、肝臓の正解画像、腎臓の正解画像、胆のうの正解画像のうち、一部の正解画像が欠損している教示データであっても、学習することができる。すなわち、複数の注目物体の夫々を表すクラスに対応する正解データのうち、一部のクラスに対応する正解データが欠損している教示データであっても学習に利用することができる。
【0144】
<第三の実施形態>
本明細書で開示される発明は、セグメンテーションに限定されるものではない。例えば、物体認識や物体検出などにも適用できる。物体認識とは、画像に描出されている注目物体がどのクラス(カテゴリー)に属するかを識別するタスクである。物体検出とは、画像に描出されている注目物体の位置(または位置とクラス)を識別するタスクである。
【0145】
図9に物体認識を行うためのCNN9000を例示する。例示したCNN9000は、共通ネットワーク9100、複数のシングルクラスネットワーク9200、マルチクラスネットワーク9300を有する。このCNN9000には、層間のすべてのニューロンを結合するFull Connection層が含まれており、Full Connection層の出力結果に活性化関数を適用するように構成されている。複数のシングルクラスネットワーク9200の夫々の末端には、シングルクラス出力層が存在する。シングルクラス出力層は、Full Connection層であり、活性化関数にはSigmoid関数が設定されている。マルチクラスネットワーク9300の末端には、マルチクラス出力層9301が存在する。マルチクラス出力層は、Full Connection層であり、活性化関数にはSoftmax関数が設定されている。このCNNは、シングルクラスネットワーク9200の末端に存在するシングルクラス出力層により、不完全な教示データであっても学習に利用することが可能になり、本明細書に開示される発明の効果を得ることができる。
【0146】
また、本明細書で開示される発明は、処理対象のデータに対する制約はない。上記では、X線CT装置で撮影されたCT画像を例に説明したが、核磁気共鳴撮像(MRI)装置や超音波撮像装置などで撮像された他の医用画像も処理することが可能である。また、カメラで撮影した画像や、デプスセンサで取得した三次元データ、音声信号、テキストデータなども処理することが可能である。その他、如何なるデータに対しても、本明細書で開示される発明を適用することができる。
【0147】
(その他の実施例) 本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0148】
4000:ニューラルネットワーク(CNN)
4100:共通ネットワーク
4210,4220,4230:シングルクラスネットワーク
4211,4221,4231:シングルクラス出力層
図1
図2
図3
図4
図5
図6
図7
図8
図9
【手続補正書】
【提出日】2024-05-27
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
複数のクラスに共通する共通ネットワークと、前記共通ネットワークに接続され、前記複数のクラスの夫々を個別に識別するためのシングルクラス出力層を有する複数のシングルクラスネットワークとを備えるニューラルネットワークの学習方法であって、
前記複数のクラスのうち、1つ以上のクラスに対応する正解データを含む教示データを取得する取得ステップと、
前記教示データを用いて、前記ニューラルネットワークを学習する学習ステップと、
を備え、
前記学習ステップは、前記複数のクラスのうち、1つ以上のクラスに対応する正解データが欠損している教示データを用いて学習する際に、正解データが欠損していないクラスに対応するシングルクラスネットワークを学習し、正解データが欠損しているクラスに対応するシングルクラスネットワークを学習しない、
ことを特徴とするニューラルネットワークの学習方法。
【請求項2】
前記学習ステップは、前記教示データの正解データが欠損しているかいないかにかかわらず、前記共通ネットワークを学習する、
ことを特徴とする請求項に記載のニューラルネットワークの学習方法。
【請求項3】
前記学習ステップは、前記シングルクラス出力層の夫々の出力に対して、異なる損失関数を用いて損失値を算出する、
ことを特徴とする請求項又は請求項に記載のニューラルネットワークの学習方法。
【請求項4】
前記ニューラルネットワークは、前記複数のクラスのうち、2つ以上のクラスを識別するためのマルチクラス出力層を有するマルチクラスネットワークをさらに備え、
前記学習ステップは、前記複数のクラスのうち、すべてのクラスに対応する正解データを含む教示データを用いて学習する際に、前記マルチクラスネットワークを学習し、1つ以上のクラスに対応する正解データが欠損している教示データを用いて学習する際に、前記マルチクラスネットワークを学習しない、
ことを特徴とする請求項乃至請求項のいずれか1項に記載のニューラルネットワー
クの学習方法。
【請求項5】
前記学習ステップは、前記シングルクラス出力層の出力と、前記マルチクラス出力層の出力に対して、異なる損失関数を用いて損失値を算出する、
ことを特徴とする請求項に記載のニューラルネットワークの学習方法。
【請求項6】
前記学習ステップは、教示データがどのクラスの正解データを有しているかに応じて、該教示データを用いて学習する際のパラメータを更新する層を決定する、
ことを特徴とする請求項乃至請求項のいずれか1項に記載のニューラルネットワークの学習方法。
【請求項7】
前記学習ステップは、教示データがどのクラスの正解データを有しているかに応じて教示データをグループ分けし、1エポック内で、グループごとに教示データを選択して学習を行う、
ことを特徴とする請求項乃至請求項のいずれか1項に記載のニューラルネットワークの学習方法。
【請求項8】
前記学習ステップは、すべてのクラスの正解データを有している教示データのグループを、1エポック内の最後に選択して学習を行う、
ことを特徴とする請求項に記載のニューラルネットワークの学習方法。
【請求項9】
複数のクラスに共通する共通ネットワークと、前記共通ネットワークに接続され前記複数のクラスの夫々を個別に識別するためのシングルクラス出力層を有する複数のシングルクラスネットワークとを備えるニューラルネットワークを学習する画像処理装置であって、
前記複数のクラスのうち、1つ以上のクラスに対応する正解データを含む教示データを取得する取得部と、
前記教示データを用いて前記ニューラルネットワークを学習する学習部と、
を備え、
前記学習部は、前記複数のクラスのうち、1つ以上のクラスに対応する正解データが欠損している教示データを用いて学習する際に、正解データが欠損していないクラスに対応するシングルクラスネットワークを学習し、正解データが欠損しているクラスに対応するシングルクラスネットワークを学習しない、
ことを特徴とする画像処理装置。
【請求項10】
画像を取得する取得部と、
学習済みのニューラルネットワークを用いて、識別を行う識別部と、
を備えた画像処理装置であって、
前記学習済みのニューラルネットワークは、複数のクラスに共通する共通ネットワークと、前記共通ネットワークに接続され、前記複数のクラスの夫々を個別に識別するためのシングルクラス出力層を有する複数のシングルクラスネットワークとを備え、前記複数のクラスのうち、1つ以上のクラスに対応する正解データを含む教示データを用いて学習されたニューラルネットワークであり、
前記学習済みのニューラルネットワークは、前記複数のクラスのうち、1つ以上のクラスに対応する正解データが欠損している教示データを用いて学習される際に、正解データが欠損していないクラスに対応するシングルクラスネットワークが学習されたニューラルネットワークである、
ことを特徴とする画像処理装置。
【請求項11】
前記学習済みのニューラルワークは、前記複数のクラスのうち、1つ以上のクラスに対
応する正解データが欠損している教示データを用いて学習される際に、正解データが欠損しているクラスに対応するシングルクラスネットワークが学習されていないニューラルネットワークである、
ことを特徴とする請求項10に記載の画像処理装置。
【請求項12】
画像を取得する取得ステップと、
学習済みのニューラルネットワークを用いて、識別を行う識別ステップと、
を含む画像処理方法であって、
前記学習済みのニューラルネットワークは、複数のクラスに共通する共通ネットワークと、前記共通ネットワークに接続され、前記複数のクラスの夫々を個別に識別するためのシングルクラス出力層を有する複数のシングルクラスネットワークとを備え、前記複数のクラスのうち、1つ以上のクラスに対応する正解データを含む教示データを用いて学習されたニューラルネットワークであり、
前記学習済みのニューラルネットワークは、前記複数のクラスのうち、1つ以上のクラスに対応する正解データが欠損している教示データを用いて学習される際に、正解データが欠損していないクラスに対応するシングルクラスネットワークが学習されたニューラルネットワークである、
ことを特徴とする画像処理方法。
【請求項13】
前記学習済みのニューラルワークは、前記複数のクラスのうち、1つ以上のクラスに対応する正解データが欠損している教示データを用いて学習される際に、正解データが欠損しているクラスに対応するシングルクラスネットワークが学習されていないニューラルネットワークである、
ことを特徴とする請求項12に記載の画像処理方法。
【請求項14】
請求項1~7,12,13のいずれか1項に記載の方法の各ステップをコンピュータに実行させるためのプログラム。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0007
【補正方法】削除
【補正の内容】
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0008
【補正方法】変更
【補正の内容】
【0008】
本発明の第の態様は、
複数のクラスに共通する共通ネットワークと、前記共通ネットワークに接続され前記複数のクラスの夫々を個別に識別するためのシングルクラス出力層を有する複数のシングルクラスネットワークとを備えるニューラルネットワークの学習方法であって、
前記複数のクラスのうち、1つ以上のクラスに対応する正解データを含む教示データを取得する取得ステップと、
前記教示データを用いて、前記ニューラルネットワークを学習する学習ステップと、
を備え、
前記学習ステップは、前記複数のクラスのうち、1つ以上のクラスに対応する正解データが欠損している教示データを用いて学習する際に、正解データが欠損していないクラスに対応するシングルクラスネットワークを学習し、正解データが欠損しているクラスに対
応するシングルクラスネットワークを学習しない、
ことを特徴とするニューラルネットワークの学習方法である。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0009
【補正方法】変更
【補正の内容】
【0009】
本発明の第の態様は、
画像を取得する取得部と、
学習済みのニューラルネットワークを用いて、識別を行う識別部と、
を備えた画像処理装置であって、
前記学習済みのニューラルネットワークは、複数のクラスに共通する共通ネットワークと、前記共通ネットワークに接続され、前記複数のクラスの夫々を個別に識別するためのシングルクラス出力層を有する複数のシングルクラスネットワークとを備え、前記複数のクラスのうち、1つ以上のクラスに対応する正解データを含む教示データを用いて学習されたニューラルネットワークであり、
前記学習済みのニューラルネットワークは、前記複数のクラスのうち、1つ以上のクラスに対応する正解データが欠損している教示データを用いて学習される際に、正解データが欠損していないクラスに対応するシングルクラスネットワークが学習されたニューラルネットワークである、
ことを特徴とする画像処理装置である。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0010
【補正方法】変更
【補正の内容】
【0010】
本発明の第の態様は、
画像を取得する取得ステップと、
学習済みのニューラルネットワークを用いて、識別を行う識別ステップと、
を含む画像処理方法であって、
前記学習済みのニューラルネットワークは、複数のクラスに共通する共通ネットワークと、前記共通ネットワークに接続され、前記複数のクラスの夫々を個別に識別するためのシングルクラス出力層を有する複数のシングルクラスネットワークとを備え、前記複数のクラスのうち、1つ以上のクラスに対応する正解データを含む教示データを用いて学習されたニューラルネットワークであり、
前記学習済みのニューラルネットワークは、前記複数のクラスのうち、1つ以上のクラスに対応する正解データが欠損している教示データを用いて学習される際に、正解データが欠損していないクラスに対応するシングルクラスネットワークが学習されたニューラルネットワークである、
ことを特徴とする画像処理方法である。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0011
【補正方法】削除
【補正の内容】