JP2020086479A - 計算機、ニューラルネットワークの構築方法、および計算機システム - Google Patents

計算機、ニューラルネットワークの構築方法、および計算機システム Download PDF

Info

Publication number
JP2020086479A
JP2020086479A JP2018214275A JP2018214275A JP2020086479A JP 2020086479 A JP2020086479 A JP 2020086479A JP 2018214275 A JP2018214275 A JP 2018214275A JP 2018214275 A JP2018214275 A JP 2018214275A JP 2020086479 A JP2020086479 A JP 2020086479A
Authority
JP
Japan
Prior art keywords
detection layer
setting
neural network
boundary
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018214275A
Other languages
English (en)
Inventor
影山 昌広
Masahiro Kageyama
昌広 影山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018214275A priority Critical patent/JP2020086479A/ja
Priority to US16/669,726 priority patent/US11157775B2/en
Publication of JP2020086479A publication Critical patent/JP2020086479A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

【課題】CNNを構築するためのハイパーパラメータを容易に設定するための技術を提供する。【解決手段】少なくとも一つのノードを含む複数の層から構成され、画像処理を実行するためのニューラルネットワークを構築する計算機であって、ニューラルネットワークは、画像からオブジェクトを検出するための処理を実現する検出層を含み、計算機は、検出層のハイパーパラメータを算出するため値であって、オブジェクトの境界および形状の特性に関する設定値を含む、ニューラルネットワークを構築するための設定情報を取得する第1の処理と、設定情報に基づいて、ニューラルネットワークを構築する第2の処理と、を実行し、第2の処理は、設定値に基づいて検出層のハイパーパラメータを算出する処理を含む。【選択図】 図1

Description

本発明は、学習対象のニューラルネットワークのハイパーパラメータの設定に関する。
近年、ディープラーニングの中核技術の一つである畳み込みニューラルネットワーク(以下、CNNと記載する)が様々な分野で用いられている。CNNは、一つ以上のノードから構成される層を含み、各層のノードの接続がネットワークを形成する構造である。なお、CNNに含まれる層には、畳み込み演算が実行される層を少なくとも一つ含む。
例えば、医用分野では、CT(Computer Tomography)画像、MRI(Magnetic Resonance Imaging)画像、X線画像、超音波画像等を処理するCNNを利用して、精度の高い病変の検出、病変の自動計測、病変のレポート生成等を実現してきている。また、監視カメラ、家庭用ビデオカメラ、および携帯電話端末等の画像を処理するCNNを利用して、画像の中から人物等の被写体を検出し、画像から文書、文字、グラフ、図形等を認識することが行われている。
CNN等のニューラルネットワークの処理性能を大きく左右する要因のひとつに、ハイパーパラメータがある。ハイパーパラメータは、ニューラルネットワークを構築するためのパラメータであり、学習処理の開始前に設計者が設定する必要がある。ハイパーパラメータは多数の種類がある。例えば、CNNを構成する層数、各層のノード数、畳み込みの重み係数等のパラメータの初期値、オプティマイザ(パラメータの更新アルゴリズム)の選択、学習率(1回の学習におけるパラメータ更新率)等である。
ハイパーパラメータが学習されたCNNの処理性能にどのように関与しているかは明確に体系化されていないため、CNNの処理性能は、設計者のノウハウ等に大きく依存する。
従来技術のCNNの構築時では、学習器が、ハイパーパラメータを設計者のノウハウ等に基づいた試行錯誤または乱数で設定し、全体最適解を得るための学習処理を実行する。しかし、ハイパーパラメータの設定が不適切である場合、学習処理において局所最適解に陥って、学習がそれ以上進まない事態となり、高い処理性能のCNNを得ることができない。
そのため、現状のCNNの開発では、高い処理性能を実現するためにハイパーパラメータの調整に多くの時間が充てられている。したがって、設計初心者が、処理性能が高いCNNを構築することは難しく、また習熟者にとってもハイパーパラメータの調整に多大な試行錯誤を必要としている。
ハイパーパラメータの設計法として、特許文献1および非特許文献1のような手法が知られている。
特許文献1では、フィッシャー重みマップが一般化固有値問題として解析的に解けることを利用し、中間層として取り出したいニューロンと同数の上位固有ベクトルを用いてフィッシャー重みマップを求めることで、簡便に畳み込み層を構築できることが示されている。
また、非特許文献1では、多層ネットワーク構造における部分的な層ごとに教師なし学習を実行し、これを層の数だけ繰り返す「プレトレーニング」を行えば、多層であってもうまく学習できることが示されている。
特開2015−52832号公報
G. E. Hinton et al. "A fast learning algorithm for deep belief nets, Neural Computation," Vol. 18, pp. 1527-1544 (2006).
特許文献1および非特許文献1に記載された手法では、本来開発したいCNNのハイパーパラメータの他に、フィッシャー重みマップ、プレトレーニング、等の技術を同時に開発する必要があり、工数が余計にかかり、また、設計初心者には難度が高い。したがって、簡易にハイパーパラメータを設定する技術の開発が望まれている。
本発明は、前述の課題に鑑みてなされたものである。すなわち、本発明は、画像を処理するCNN、特に、画像からオブジェクトを検出する処理を含むCNNのハイパーパラメータを容易に設定する技術を提供する。また、CNNのハイパーパラメータの値を簡易に設定するための技術(装置、方法)を提供するとともに、その技術を用いて構成したシステムを提供するものである。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。すなわち、少なくとも一つのノードを含む複数の層から構成され、画像処理を実行するためのニューラルネットワークを構築する計算機であって、前記ニューラルネットワークは、画像からオブジェクトを検出するための処理を実現する検出層を含み、前記計算機は、演算装置および前記演算装置に接続される記憶装置を備え、前記演算装置は、前記検出層のハイパーパラメータを算出するため値であって、前記オブジェクトの境界および前記オブジェクトの形状の特性に関する設定値を含む、前記ニューラルネットワークを構築するための設定情報を取得する第1の処理と、前記設定情報に基づいて、前記ニューラルネットワークを構築する第2の処理と、前記構築されたニューラルネットワークの構造を管理するモデル情報を生成する第3の処理と、を実行し、前記第2の処理は、前記設定値に基づいて、前記検出層のハイパーパラメータを算出する処理を含む。
本発明によれば、ニューラルネットワーク(CNN)のハイパーパラメータを容易に設定できる。上記した以外の課題、構成および効果は、以下の実施例の説明により明らかにされる。
実施例1の計算機の構成例を示す図である。 実施例1におけるCNNの構造の一例を示す図である。 実施例1におけるCNNの構造の一例を示す図である。 実施例1の入力画像に含まれる結節と出力画像に含まれるROIの一例を示す図である。 実施例1の入力画像に含まれる結節の輪郭を検出する線分の一例を示す図である。 実施例1の移動層において実行される処理の概念を示す図である。 実施例1の計算機が実行する処理を説明するフローチャートである。 実施例1の計算機が提示する設定画面の一例を示す図である。 実施例1の境界検出層のハイパーパラメータの設定例を示す図である。 実施例1の移動層のハイパーパラメータの設定例を示す図である。 実施例1の移動層のハイパーパラメータの設定例を示す図である。 実施例1の学習処理の流れを示す図である。 実施例1のロス値の一例を示す図である。 実施例2におけるCNNの構造の一例を示す図である。 実施例2におけるCNNの構造の一例を示す図である。 実施例2のCNNが検出する結節のモデルの一例を示す図である。 実施例2の結節の境界面を検出するために設定される重み係数の一例を示す図である。 実施例2のCNNが検出する血管のモデルの一例を示す図である。 実施例2の血管の境界面を検出するために設定される重み係数の一例を示す図である。 実施例2の計算機が実行する処理を説明するフローチャートである。 実施例2の計算機が提示する設定画面の一例を示す図である。 実施例2の計算機が提示する性能評価画面の一例を示す図である。 実施例3のシステムの構成例を示す図である。
本発明は、画像からオブジェクトを検出する処理を含む画像処理を実行するためのCNNのハイパーパラメータを容易に設定する技術を提供する。特に、CNNを構成する層のノード数およびノードの重み係数を容易に設定するための技術を提供する。
ここで、CNNは、後述のように、複数のノードから構成される複数の層をネットワーク状に接続する。ノードとは、人工ニューロン単体のことであり、ユニットとも呼ばれる。
本発明では、乱数によってハイパーパラメータを設定するのではなく、実用的な局所最適解(実用解)を想定し、実用解に基づく初期値を設定することによって構築されたCNNの学習を行うことによって、所望の実用解に収束させるという新たな原理に基づいてハイパーパラメータを設定するものである。
以下、添付図面を参照して本発明の実施例について説明する。なお、添付図面は本発明の原理に則った具体的な実装例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
本実施例では、当業者が本発明を実施するのに十分詳細にその説明がなされているが、他の実装および形態も可能で、本発明の技術的思想の範囲と精神を逸脱することなく構成および構造の変更および多様な要素の置き換えが可能であることを理解する必要がある。したがって、以降の記述をこれに限定して解釈してはならない。
実施例を説明するための図において、同一の構成には原則として同一の符号を付し、その繰り返しの説明は省略する。
<CNNのハイパーパラメータを設定する計算機の構成例>
図1は、実施例1の計算機の構成例を示す図である。
計算機100は、演算装置101、メモリ102、ストレージ装置103、通信インタフェース104、出力インタフェース105、および入力インタフェース106を備える。前述の各ハードウェアはバス107を介して互いに接続される。
演算装置101は、計算機100全体を制御する装置であって、例えば、CPU(Central Processing Unit)である。演算装置101は、メモリ102に格納されるプログラムを実行する。演算装置101がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部として動作する。以下の説明では、機能部を主語に処理を説明する場合、演算装置101が当該機能部を実現するプログラムを実行していることを示す。
メモリ102は、演算装置101が実行するプログラムおよびプログラムが使用する情報を格納する。また、メモリ102はプログラムが一時的に使用するワークエリアを含む。メモリ102は、設定部110、学習部111、および画像処理部112を実現するプログラムを格納する。
設定部110は、CNN200(図2参照)を構築する。学習部111は、CNN200の学習処理を実行する。学習部111は、学習結果をモデル情報121として生成する。画像処理部112は、モデル情報121を用いて、入力された画像に対して任意の画像処理を実行する。
ストレージ装置103は、データを永続的に格納する記憶装置であり、例えば、HDD(Hard Disk Drive)およびSSD(Solid State Drive)である。ストレージ装置103は、学習データ管理情報120およびモデル情報121を格納する。
学習データ管理情報120は、入力画像および正解を示す出力結果を対応づけた学習データを管理するための情報である。モデル情報121は、CNN200の構造を管理するための情報である。モデル情報121は、ハイパーパラメータ、ネットワーク構造、およびその他パラメータ等が格納される。
なお、メモリ102に格納されるプログラムおよび情報は、ストレージ装置103に格納されてもよい。この場合、演算装置101がストレージ装置103からプログラムおよび情報を読み出し、メモリ102にロードし、さらに、メモリ102にロードされたプログラムを実行する。
通信インタフェース104は、ネットワーク150を介して、画像取得装置等の外部装置と通信するためのインタフェースである。計算機100は、通信インタフェース104を介して、各種画像、CNN200の構造に関する情報、外部装置を制御するためのコマンド等を送受信する。
ネットワーク150は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、イントラネットワーク、インターネット、携帯電話網、固定電話網等である。接続方式は有線および無線のいずれでもよい。なお、計算機100は、通信インタフェース104を介して、外部装置と直接接続してもよい。
出力インタフェース105は、ディスプレイ160等の出力装置と接続するためのインタフェースである。ディスプレイ160には、各種画像、CNN200の構造に関する情報、学習処理および画像処理の進捗状況等が表示される。
入力インタフェース106は、キーボード170およびマウス180等の入力装置に接続するためのインタフェースである。CNN200の設計者(以下、ユーザと記載する。)は、入力装置を用いて各種値を設定し、また、各種コマンドを入力する。
<CNNの構造例>
図2Aおよび図2Bは、実施例1におけるCNN200の構造の一例を示す図である。
実施例1では、CNN200による画像処理を利用した肺がんCAD(Computer Aided Detection/Diagnosis)システムを一例として説明する。
CADシステムは、画像処理を実行することによって、病変の検出、病変の正常/異常の識別、サイズ計測、病変種類の区別等を、自動または半自動で行うシステムである。当該システムは、複数の医師がボリュームデータを読影するのと並行して、CADがボリュームデータを解析し、解析結果を医師に提示する。これによって、病変見落としを防止できる。
画像処理部112には、CT装置等によって撮影された胸部断層画像(ボリュームデータ)を構成する複数のスライス画像が入力画像250として入力される。画像処理部112は、スライス画像に映っている病変部位である結節を検出するための画像処理を実行し、処理結果として出力画像260を出力する。
結節が映っている入力画像250が画像処理部112に入力された場合、結節に対応する位置にROI(Region Of Interest)280を含む出力画像260が出力される。図2Aでは、画像処理部112は、入力画像250−mに対して画像処理を実行した結果、矩形領域270にROI280を含む出力画像260−mを出力する。なお、矩形領域270は説明のために追加したものであり、実際の画像には表示されない。
実施例1の出力画像260は二値化された画像として出力されるものとする。具体的には、ROI280は白(輝度値=1)、その他の部分は黒(輝度値=0)となる画像とする。なお、出力画像260は二値化された画像でなくてもよい。例えば、結節である確率に応じて輝度値を連続的に変化させた画像でもよい。この場合、結節である確率が高い場合、輝度を大きくし、結節である確率が低い場合、輝度値を小さくする表示方法が考えられる。
前述のような画像処理を実現するCNN200の構造について説明する。
実施例1のCNN200は、三つの層から構成される。第1層は境界検出層210であり、第2層は移動層211であり、また、第3層は結合層212である。各層210、211、212は少なくとも一つのノード220から構成される。ここで、図2Bを用いてノード220の構造について説明する。
ノード220は、畳み込み演算221、加算演算222、および活性化関数223から構成される。
畳み込み演算221では、水平方向がi画素、垂直方向がj画素であるn個の2次元ブロックから構成される入力画素群x_aに対して2次元畳み込み演算が実行される。なお、nは整数であり、添字aは0から(n−1)までの整数である。2次元畳み込み演算は、2次元ブロックと同じサイズであるn個の重み係数群を用意し、ブロック中の各画素に対して対応する係数を乗算し、その値の総和を算出する演算である。
加算演算222では、畳み込み演算221の結果にバイアスを加算する。
活性化関数223は、加算演算222から入力された値に基づいて、1画素の出力yを算出する。活性化関数223は、例えば、ReLU(Rectified Linear Unit)、Clipped ReLU、Leaky ReLU、シグモイド関数、ステップ関数、ハイパボリックタンジェント(tanh)関数等を用いる。
入力された画像の全ての画素に対して、前述の2次元ブロック処理を実行することによって2次元の画像を得ることができる。
なお、水平方向、垂直方向のそれぞれの端でパディングを行って、出力される画像のサイズを入力された画像と一致させる処理が行われてもよい。
なお、人物、動物、自動車、二輪車、放置物、危険物等を検出するCNN200も同様の構造で実現できる。また、入力される画像は静止画でもよし、動画でもよい。
次に、CNN200に含まれる境界検出層210、移動層211、および結合層212の構造について説明する。
<境界検出層の構造例>
境界検出層210は、オブジェクトの輪郭に対応する境界を検出する。図3は、実施例1の入力画像250に含まれる結節と出力画像260に含まれるROI280の一例を示す図である。図4は、実施例1の入力画像250に含まれる結節の輪郭を検出する線分の一例を示す図である。
入力画像250に図3の(a)に示す結節が含まれている場合、図3の(b)に示すROI280が含まれる出力画像260が出力される。なお、入力画像250に含まれる結節は、本来連続的な輝度値で表される画像であるが、説明のために二値画像として表示している。
図4に示すような45度刻みで回転させた8種類の線分を用いて結節を検出する場合、図3の(a)に示す結節の輪郭は、図3の(b)に示すような線分の組合せとして検出される。図4の(a)は、輪郭の右側に結節が存在する場合の線分を表す。(b)、(c)、(d)、(e)、(f)、(g)、(h)は、図4の(a)の線分を反時計回りに45度回転させることによって得られる線分である。以下の説明では、オブジェクト(結節)の輪郭に対応する線分を境界線分とも記載する。
以上で説明から分かるように、境界検出層210は、入力画像250に含まれるオブジェクトの境界を、任意の種類の境界線分の組合せとして検出する。すなわち、境界検出層210は、境界線分の種類と同数のノード220から構成される。
<移動層の構造例>
移動層211は、境界検出層210によって検出されたオブジェクトの境界に基づいて、任意の形状のオブジェクトを検出する。
図5は、実施例1の移動層211において実行される処理の概念を示す図である。
移動層211のノード220では、基準点501を設定し、境界線分502を基準点501に移動させ、境界線分502に対応する境界検出層210の値を加算する畳み込み演算が行われる。なお、基準点501は任意に設定された点であり、ここでは「おおむね結節の中心あたりの点」とする。
図5の(a)は、図4の(a)に対応する境界線分502−1を移動方向503−1に沿って基準点501に移動させ、図4の(a)に対応する境界線分502−2を移動方向503−2に沿って基準点501に移動させた状態を示す。図5の(b)、(c)、(d)、(e)、(f)、(g)、(h)も同様の操作を示している。
実施例1では、境界線分の移動方向が指定される。例えば、45度刻みで移動方向を設定する場合、移動層211は8個のノード220から構成される。
以上で説明から分かるように、移動層211は、境界線分の移動方向の数と同数のノード220から構成される。
<結合層の構造例>
結合層212は、基準点に移動させた境界線分の値の合計値を算出し、ROI280の検出結果を出力する。具体的には、結合層212のノード220では、移動層211の出力に重み係数を乗算した値の総和を算出する演算が行われる。すなわち、移動層211の各ノードの出力を受け付け、1(=1×1)画素の畳み込み演算を行う一つのノード220から構成される。
<CNNの特性>
実施例1のCNN200は以下のような特性を有する。境界検出層210において、結節の境界上からは正値が出力され、境界以外の部分ではゼロが出力される。そのため、境界線分502を基準点501に移動させ、境界の値を加算した結果、基準点501では極めて大きな正値が出力され、基準点501以外の点では、ゼロまたは小さい値が出力される。
したがって、境界検出層210がM種類の境界線分を検出し、移動層211がN個の方向に境界線分を移動する畳み込み演算を実行する場合、CNN200は(M×N)個の境界の組合せによって定まる形状の結節を検出できる。すなわち、CNN200は任意の形状のオブジェクトを検出する検出器として機能する。
<学習処理>
次に、実施例1のCNN200を構築するための学習処理について説明する。
図6は、実施例1の計算機100が実行する処理を説明するフローチャートである。図7は、実施例1の計算機100が提示する設定画面の一例を示す図である。図8は、実施例1の境界検出層210のハイパーパラメータの設定例を示す図である。図9および図10は、実施例1の移動層211のハイパーパラメータの設定例を示す図である。図11は、実施例1の学習処理の流れを示す図である。図12は、実施例1のロス値の一例を示す図である。
計算機100は、ユーザからCNN200の学習を実行するための操作を受け付けた場合、設定部110を呼び出す。設定部110は、図7に示す設定画面700をユーザに提示し、情報の入力を受け付ける(ステップS601)。ここで、設定画面700について説明する。
設定画面700は、設定部110によってディスプレイ160に表示される画面であり、境界検出層設定欄710、移動層設定欄720、結合層設定欄730、CNN構造表示欄740、設定ボタン701、データ読み込みボタン702、および学習開始ボタン703を含む。
境界検出層設定欄710は、境界検出層210のハイパーパラメータの生成に必要な情報を設定するための欄である。境界検出層設定欄710は、ベースフィルタ設定欄711および回転角設定欄712を含む。
ベースフィルタ設定欄711は、図4に示すような境界線分を検出するための重み係数を算出するためのデータを設定するための欄である。図7では、一例として水平方向に3画素、垂直方向に3画素である重み係数を示す。図7のベースフィルタ設定欄711に設定される重み係数を図4の(a)の画像に畳み込むことによって、境界線分上でのみ正値が出力され、境界線分以外はゼロが出力される。
このように、境界検出層210の重み係数は、一種のフィルタとして作用することから、以下の説明では、ベースフィルタ設定欄711に設定される重み係数を境界検出用ベースフィルタと記載する。
回転角設定欄712は、複数種類の境界線分を検出する重み係数を算出するために、境界検出用ベースフィルタを回転させる角度の刻み幅を設定するための欄である。
ユーザが刻み幅をΔθ(Δθは360の約数)と設定した場合、境界検出層210は、(360/Δθ)種類の境界線分を検出するように構成される。すなわち、刻み幅は境界線分の種類を規定する値であり、境界検出層210には(360/Δθ)個のノード220が設定される。また、ユーザが設定した境界検出用ベースフィルタをΔθ回転させる操作を(360/Δθ)回実行することによって、各ノード220に含まれる畳み込み演算221の重み係数が算出される。
図7の設定値からは、最近傍補間法(ニアレストネイバ補間法)によって回転後の小数画素位置の重み係数から画素格子上(整数画素位置)の重み係数を補間して算出すれば、図8の(b)、(c)、(d)、(e)、(f)、(g)、(h)の重み係数が算出される。このとき、図8の(a)から(h)の各重み係数は、図4の(a)から(h)の各境界線分を検出できる。なお、最近傍補間法(ニアレストネイバー法)の代わりに、双一次補間法(リニア補間法)や双三次補間法(キュービック補間法)等の補間法を用いて回転後の小数画素位置の重み係数から画素格子上(整数画素位置)の重み係数を補間して算出してもよい。また、刻み幅を60度または90度に設定した場合、ノード220の数は8個より少なくなり、刻み幅を30度に設定した場合、ノード220の数は8個より多くなる。
このように、ノード220の数は境界の分解能に対応し、画像処理部112の性能を調整する指標の一つになる。実施例1では、CNN200の性能に関連する境界の幾何学的な特性に基づく値を入力することによって、CNN200に含まれる一部の層のハイパーパラメータが自動的に算出される。
なお、図8(a)から(h)に示した重み係数の縦横のタップ数は、水平方向に3画素、垂直方向に3画素であるが、これに限定されない。
なお、バイアスの値は初期値として「0」が設定されているものとする。ただし、境界検出層設定欄710にバイアスを設定する欄を設けてもよい。
移動層設定欄720は、移動層211のハイパーパラメータの生成に必要な情報を設定するための欄である。移動層設定欄720は、ベースフィルタ設定欄721および回転角設定欄722を含む。
ベースフィルタ設定欄721は、図5に示すような、境界線分を基準点に移動させるための重み係数を算出するためのデータを設定するための欄である。図7では、一例として水平方向に7画素、垂直方向に7画素である重み係数を示す。重み係数は、重み係数の中心を移動の原点として、ゼロ以外の値が設定された方向に、値の大きさだけ境界線分を移動させる演算に対応する。例えば、図7の重み係数は、境界線分の画像を右方向に3画素、上方向に1画素の方向に1だけ移動させる演算に対応する。
このように、移動層211の重み係数は、一種のフィルタとして作用することから、以下の説明では、ベースフィルタ設定欄721に設定される重み係数を移動用ベースフィルタと記載する。
回転角設定欄722は、複数種類の方向の移動を実現する重み係数を算出するために、移動用ベースフィルタを回転させる角度の刻み幅を設定するための欄である。
ユーザが回転角の刻み幅をΔθ’(Δθ’は360の約数)と設定した場合、移動層211は、(360/Δθ’)種類の移動方向への境界線分の移動を行うように構成される。すなわち、刻み幅は移動方向の種類を規定する値であり、移動層211には(360/Δθ’)個のノード220が設定される。また、ユーザが設定した移動用ベースフィルタをΔθ’回転させる操作を(360/Δθ’)回実行することによって、各ノード220に含まれる畳み込み演算221の重み係数が算出される。
図7の設定値からは、図9の(b)、(c)、(d)、(e)、(f)、(g)、(h)の重み係数は、移動用ベースフィルタを刻み角度だけ回転させることによって生成することができる。なお、刻み幅を60度または90度に設定した場合、ノード220の数は8個より少なくなり、刻み幅を30度に設定した場合、ノード220の数は8個より多くなる。
このように、ノード220の数は、画像処理部112の性能を調整する指標の一つになる。実施例1では、CNN200の性能に関連するオブジェクトの形状の幾何学的な特性に基づく値を入力することによって、CNN200に含まれる一部の層のハイパーパラメータが自動的に算出される。
なお、図9(a)から(h)に示した重み係数の縦横のタップ数は、水平方向に7画素、垂直方向に7画素であるが、これに限定されない。
なお、バイアスの値は初期値として「0」が設定されているものとする。ただし、移動層設定欄720にバイアスを設定する欄を設けてもよい。
なお、図10に示すような重み係数を設定してもよい。図10の(a)は、右方向に2画素、下方向に3画素の方向に1だけ移動させる演算に対応する。図10の(b)は、右方向に3画素、上方向に1画素の方向に、右方向の距離が0.3、上方向の距離が0.7だけ移動させる演算に対応する。図10の(c)は、移動しない演算に対応する。図10の(d)は、「1」および「−1」の間に境界線分が存在する場合に出力が得られる検出器として機能する。この重み係数を用いることによって、太い境界線分を除去することができる。すなわち、オブジェクトの大きさを制限する検出器として機能する。これによって、胸壁(肋骨および横隔膜等を含む、肺の外側の構造全体)等のような、大きく、不要な陰影の検出を防ぐことができる。
結合層設定欄730は、結合層212のハイパーパラメータの生成に必要な情報を設定するための欄である。結合層設定欄730は、ノード数設定欄731およびベースフィルタ設定欄732を含む。
ノード数設定欄731は、結合層212のノード220の数を設定する欄である。ベースフィルタ設定欄732は、結合層212の重み係数を算出するためのデータを設定するための欄である。本実施例では、ベースフィルタ設定欄732に設定された値を、移動層211の出力数(ノード220の数)で除算した値が重み係数として算出される。
なお、バイアスの値は初期値として「0」が設定されているものとする。ただし、結合層設定欄730にバイアスを設定する欄を設けてもよい。
なお、畳み込み演算のタップ数または結合層212のノード220の数は、任意に設定できる。例えば、結合層212のノード220を「2」に設定してもよい。一つのノード220は、明暗(輝度値)が反転していない画像を出力し、もう一つのノード220は、明暗(輝度値)が反転させた画像を出力する。この場合、結合層212からは、二つの画像の差が最終的な出力画像260として出力される。このように結合層212を構成することによって、後述するTP−ROI281だけを検出できる。
設定ボタン701は、境界検出層設定欄710、移動層設定欄720、および結合層設定欄730に設定した値に基づくハイパーパラメータの生成を指示するための操作ボタンである。
CNN構造表示欄740は、CNN200におけるハイパーパラメータに関する情報を表示する欄である。CNN構造表示欄740には、ノード数表示欄741およびタップ数表示欄742が含まれる。
ノード数表示欄741は、各階層に含まれるノード220の数を表示する欄である。図7は、境界検出層210のノード220の数が「8」、移動層211のノード220の数が「8」、結合層212のノード220の数が「1」であることを表す。
タップ数表示欄742は、各階層の重み係数の数、すなわち、2次元空間の水平方向および垂直方向のタップ数の組合せを表示する欄である。図7は、境界検出層210の重み係数は水平方向に「3」、垂直方向に「3」であり、移動層211の重み係数は水平方向に「7」、垂直方向に「7」であり、結合層212の重み係数は水平方向に「1」、垂直方向に「1」であることを表す。
データ読み込みボタン702は、学習データ管理情報120からの学習データの読出を指示するための操作ボタンである。
学習開始ボタン703は、学習処理の実行を指示するための操作ボタンである。
以上が設定画面700の説明である。図6の説明に戻る。
設定部110は、設定ボタン701の操作を受け付けた場合、境界検出層設定欄710に設定された情報に基づいて境界検出層210を設定する(ステップS602)。
具体的には、設定部110は、360度を回転角設定欄712の値で除算することによってノード220の数を決定する。ここで、ノード220の数をnとする。また、設定部110は、ベースフィルタ設定欄711に設定された境界検出用ベースフィルタをΔθ回転させる操作を(n−1)回実行する。これによって、境界検出用ベースフィルタを含む重み係数がn個生成される。また、設定部110はバイアスを「0」に設定する。
次に、設定部110は、移動層設定欄720に設定された情報に基づいて、移動層211を設定する(ステップS603)。
具体的には、設定部110は、360度を回転角設定欄722の値で除算することによってノード220の数を決定する。ここで、ノード220の数をn’とする。また、設定部110は、ベースフィルタ設定欄721に設定された移動用ベースフィルタをΔθ’回転させる操作を(n’−1)回実行する。これによって、移動用ベースフィルタを含む重み係数がn’個生成される。また、設定部110はバイアスを「0」に設定する。
次に、設定部110は、結合層設定欄730に設定された情報に基づいて、結合層212を設定する(ステップS604)。
具体的には、設定部110は、ノード数設定欄731の値に基づいてノード220の数を決定する。また、設定部110は、ベースフィルタ設定欄732に設定された値を、移動層211の出力数で除算することによって重み係数を算出する。また、設定部110はバイアスを「0」に設定する。
次に、設定部110は、ステップS602からステップS604の処理結果に基づいて、学習対象のCNN200の構造を定義するモデル情報121を生成する(ステップS605)。
次に、設定部110は、データ読み込みボタン702の操作を受け付けた場合、学習部111を呼び出す。学習部111は、学習データ管理情報120から学習データを読み出す(ステップS606)。なお、読み出される学習データの数および種類は任意に設定できる。
次に、学習部111は、学習開始ボタン703の操作を受け付けた場合、順伝播処理を実行する(ステップS607)。順伝播処理とは、入力されたデータがCNN等のネットワークを伝播し、出力結果を得る処理をいう。具体的には、以下のような処理が実行される。
まず、実施例1の学習データについて説明する。学習データは、学習用画像1100および正解画像1110の組から構成される。少なくとも一つの正解画像1110には、結節に対応するマスク1111が含まれる。なお、マスク1111は、医師等の専門家の所見および経験等に基づいて設定される。
図11では、正解画像1110は二値画像であり、マスク1111は白く(輝度値が1)、その他の部分は黒い(輝度値が0)ものとする。なお、マスク1111は、結節の悪性度を百分率で表し、連続的な輝度値の変化で表してもよい。例えば、悪性度が高いほど輝度値を大きくし、悪性度が低いほど輝度値を小さくする表示する方法が考えられる。
順伝播処理では、前述の学習データを用いて以下のような処理が実行される。
(処理1)学習部111は、読み出された学習データの中から一つの学習データを選択し、選択された学習データに含まれる学習用画像1100を画像処理部112に入力する。
(処理2)画像処理部112は、モデル情報121に基づいて定義されたCNN200に基づいて、学習用画像1100から出力画像260を生成する。結節が映っている学習用画像1100が入力された場合、ROI280を含む出力画像260が生成されることが期待される。
なお、(処理1)および(処理2)を所定回数実行してもよい。以上が順伝播処理の説明である。
次に、学習部111は逆伝播処理を実行する(ステップS608)。逆伝播処理とは、出力側から入力側に向けて、各層のパラメータの更新結果が伝播し、全ての層のパラメータを更新する処理をいう。具体的には、以下のような処理が実行される。
学習部111は、出力画像260および選択された学習データに含まれる正解画像1110の誤差の程度を評価するロス値を算出する。学習部111は、ロス値に基づいて、CNN200の出力側から入力側に向けて、各層の重み係数およびバイアス等のパラメータを更新する。
パラメータの総数を次元数とする多次元空間において、パラメータを更新するアルゴリズム(オプティマイザ)としては、最急降下法、SGD(Stochastic Gradient Descent:確率的勾配降下法)、Momentum SDG、Adam、AdaGrad、AdaDelta、RMSProp、SMORMS3等がある。実施例1では、オプティマイザに限定されない。最急降下法を採用した場合、学習部111は、1回学習する度に、誤差が小さくなる方向および度合いを示す勾配を算出し、当該勾配に基づいてパラメータを更新する。
図12は、差分値に基づいて算出されるロス値を表す。実施例1では、各画素の関数値の総和が逆伝播処理に使用するロス値となる。横軸が出力画像260を正解画像1110で減算して得られる画像の各画素の値(差分値)を表し、縦軸は各画素のロス値を表す。図12に示す関数では、差分値の正負に応じてロス値の変化率が異なる。
各画素の差分値が正値の場合、出力画像260の画素値が正解画像1110の画素値より大きく、出力画像260に含まれるROI280は、正解画像1110に含まれるマスク1111よりも多い状態、すなわち、過検出状態(FP:False positive)であることを示す。各画素の差分値が負値の場合、出力画像260の画素値が正解画像1110の画素値より小さく、出力画像260に含まれるROI280は、正解画像1110に含まれるマスク1111よりも少ない状態、すなわち、検出漏れ状態(FN:False negative)であることを示す。
結節の検出を目的とした画像処理では、検出漏れの発生を抑制することが望ましい。したがって、図12に示すように、各画素の差分値が正値の領域の直線の傾きは、負値の領域の直線の傾きより大きく設定している。すなわち、FNの発生によるペナルティがFPの発生によるペナルティより大きく設定されている。これによって、FNが抑制される方向に学習を誘導することができる。
なお、図12に示す特性は式(1)に示すLeaky Relu関数を用いて実現できる。但し、係数aは式(2)を満たす。
以上が逆伝播処理の説明である。
次に、学習部111は、逆伝播処理の結果に基づいて、モデル情報121を更新する(ステップS609)。
次に、学習部111は、終了条件を満たすか否かを判定する(ステップS610)。
例えば、学習部111は、モデル情報121の更新回数(世代数)が所定の閾値より大きい場合、終了条件を満たすと判定する。また、学習部111は、ロス値が所定の閾値以下である場合、終了条件を満たすと判定する。
ステップS607からステップS610までの処理が学習処理となる。学習処理の途中では、出力画像260には、マスク1111と一致する箇所に出現するROI280であるTP−ROI(True positive resion of interest)281およびマスク1111と一致しない箇所に出現するFP−ROI282が含まれる。順伝播処理および逆伝播処理が繰り返し実行されることによって、TP−ROI281の検出精度が向上し、また、FP−ROI282の検出頻度が減少する。
終了条件を満たさないと判定された場合、学習部111はステップS607に戻り、同様の処理を実行する。終了条件を満たすと判定された場合、学習部111は、処理を終了する。
なお、図7に示す設定画面の代わりに、OS(Operation System)等が有するコマンドウィンドウを提示してもよい。この場合、設定部110は、コマンド引数から各層の情報を取得する。
画像処理部112は、図6の処理によって学習されたモデル情報121を用いることによって、新たな入力画像250が入力された場合、学習した結節の大きさおよび形状に一致または類似するROI280を高い精度で検出できる。
<実施例1の応用例>
図1から図11では、オブジェクト(結節)を検出するCNN200について説明したが、本発明は、他の画像処理を行うCNN200を構築する場合にも適用することができる。例えば、画像に含まれるノイズを低減する画像処理、および低解像度の画像を高解像度の画像に変換する画像処理を実行するCNN200を構築する場合に、本発明を適用できる。
前者の画像処理では、ノイズをオブジェクトとして検出する層を含むCNN200を構築すればよい。また、後者の画像処理では、輪郭をオブジェクトとして検出する層を含むCNN200を構築すればよい。
このような層のハイパーパラメータを決定する方法は、境界検出層210および移動層211等と同様である。すなわち、ベースフィルタおよび回転角の刻み幅を設定すればよい。
<実施例1のまとめ>
実施例1のROI280を抽出するための層を含むCNNを構築する場合、検出精度およびROI280の特徴等に基づく情報を入力することによって、当該層のハイパーパラメータを自動的に算出できる。したがって、経験および知識がないユーザでもCNNの構築を容易に行うことができる。
実施例2では、CNN200が3次元画像から3次元のROIを検出する点が異なる。以下、実施例1との差異を中心に実施例2について説明する。
実施例2の計算機100の構成は、実施例1の計算機100の構成と同一である。実施例2ではCNN200の構造が異なる。
<CNNの構造例>
図13Aおよび図13Bは、実施例2におけるCNN200の構造の一例を示す図である。
実施例2のCNN200は、四つの層から構成される。第1層は、境界検出層であり、第2層は移動層1312であり、第3層は結合層1313、第4層は誤検出削減層1314である。実施例2の境界検出層は、第1境界検出層1310および第2境界検出層1311から構成される。
各層1310、1311、1312、1313、1314は少なくとも一つのノード1320を含む。ここで、図13Bを用いてノード1320の構造について説明する。
ノード1320は、畳み込み演算1321、加算演算1322、および活性化関数1323から構成される。
畳み込み演算1321では、水平方向がi画素、垂直方向がj画素であるk枚のスライス画像から構成されるn個の3次元ブロックから構成される入力画素群x_aに対して3次元畳み込み演算が実行される。なお、nは整数であり、添字aは0から(n−1)までの整数である。3次元畳み込み演算は、3次元ブロックと同じサイズであるn個の重み係数群を用意し、ブロック中の各画素に対して対応する係数を乗算し、その値の総和を算出する演算である。
加算演算1322では、畳み込み演算1321の結果にバイアスを加算する。
活性化関数1323は、加算演算1322から入力された値に基づいて、1画素の出力yを算出する。活性化関数1323は、例えば、ReLU(Rectified Linear Unit)、Clipped ReLU、Leaky ReLU、シグモイド関数、ステップ関数、ハイパボリックタンジェント(tanh)関数等を用いる。
入力画像250の全ての画素に対して、前述の3次元ブロック処理を実行することによって3次元の画像を得ることができる。
なお、水平方向、垂直方向、スライス方向のそれぞれの端でパディングを行って、出力画像のサイズを入力画像250と一致させる処理が行われてもよい。
次に、CNN200に含まれる境界検出層(第1境界検出層1310および第2境界検出層1311)、移動層1312、結合層1313、および誤検出削減層1314の構造について説明する。
<境界検出層(第1境界検出層および第2境界検出層)の構造>
第1境界検出層1310は、真のオブジェクトの輪郭に対応する境界を検出する。第2境界検出層1311は、ノイズとなるオブジェクトの輪郭に対応する境界を検出する。
胸部断層画像から結節を検出する場合、当該画像には結節、胸壁、気管支、食道、および血管等が映っている。この中で、血管の断面の陰影は結節の陰影と類似しており、結節として誤検出されやすいことが知られている。そこで、実施例2のCNN200は、誤検出されやすい血管の輪郭を検出する第2境界検出層1311を含む。
まず、第1境界検出層1310について説明する。図14は、実施例2のCNN200が検出する結節のモデルの一例を示す図である。図15は、実施例2の結節の境界面を検出するために設定される重み係数の一例を示す図である。
入力画像250に結節が含まれている場合、図14に示す立体(26面体)のROI1400が含まれる出力画像260が出力される。ROI1400は、z軸を中心として45度の整数倍の回転に対して対称な立体である。出力画像260では、ROI1400の内部の画素(ボクセル)は輝度値が高く(明るく)、外側は輝度値が低い(暗い)ものとする。
ROI1400の斜線をした境界面1401を検出する方法を例に、ROI1400の境界を検出する方法について説明する。
境界面1401のx方向およびy方向の輝度値の変化は小さいため、低周波成分が多く、境界面1401のz方向(スライス方向)は輝度値の変化が大きいため、高周波成分が多い。前述の特性から、x方向のローパスフィルタ、y方向のローパスフィルタ、およびz方向のハイパスフィルタを乗算した(畳み込み演算を実行した)3次元フィルタを用いることによって、境界面1401を検出できる。
例えば、x方向およびy方向のローパスフィルタは式(3)の重み係数を持った3タップフィルタを用い、z方向のハイパスフィルタは式(4)の重み係数を持った3タップフィルタを用いることが考えられる。なお、タップ数および重み係数の値は任意に設定できる。
この場合、図15に示すような重み係数が算出される。なお、各重み係数には1/32が乗算されるが省略している。
一つの境界面を検出するための重み係数が定まった場合、実施例1と同様の原理にしたがって各方向の境界面を検出するための重み係数を求めることができる。
以上の説明から分かるように、第1境界検出層1310は、入力画像250に含まれるオブジェクトの境界を、任意の種類の境界面の組合せとして検出する。すなわち、第1境界検出層1310は、境界面の種類と同数のノード1320から構成される。
次に、第2境界検出層1311について説明する。図16は、実施例2のCNN200が検出する血管のモデルの一例を示す図である。図17は、実施例2の血管の境界面を検出するために設定される重み係数の一例を示す図である。
入力画像250に血管が含まれている場合、図16に示す円筒1600が含まれる出力画像260が出力される。出力画像260では、円筒1600の内部の画素(ボクセル)は輝度値が高く(明るく)、外側は輝度値が低い(暗い)ものとする。
円筒1600のxy平面と平行な断面は円となり、円の内側の輝度値と外側の輝度値の変化が大きいため、円筒1600のxy平面は高周波成分が多い。円筒1600はz方向に一様に広がっているため、円筒1600のz軸方向は低周波成分が多い。前述の特性から、x方向のローパスフィルタおよびy方向のローパスフィルタの積(畳み込み演算の結果)を全帯域通過フィルタから減じた2次元フィルタ(2次元ハイパスフィルタ)と、z方向のローパスフィルタを乗算した(畳み込み演算した)3次元フィルタを用いることによって、円筒1600の境界面を検出できる。
xy平面の全帯域通過フィルタは、中心の値が1、他の位置の値が0であるフィルタである。x方向、y方向、z方向のローパスフィルタは、例えば、式(3)の重み係数を持った3タップフィルタを用いる。なお、なお、タップ数および重み係数の値は任意に設定できる。
この場合、図17に示すような重み係数が算出される。なお、各重み係数には1/64が乗算されるが省略している。
一つの境界面を検出するための重み係数が定まった場合、実施例1と同様の原理にしたがって各方向の境界面を検出するための重み係数を求めることができる。
以上で説明から分かるように、第2境界検出層1311は、入力画像250に含まれるオブジェクトの境界を、任意の種類の境界面の組合せとして検出する。すなわち、第2境界検出層1311は、境界面の種類と同数のノード1320から構成される。
なお、第1層は3種類以上の境界を検出するように構成されてもよい。
<移動層の構造例>
移動層1312は、境界検出層210によって検出されたオブジェクトの境界に基づいて、任意の形状のオブジェクト(結節および血管)を検出する。
移動層1312の構造は、実施例1の移動層211を3次元に拡張したものである。したがって、例えば、移動方向を、y軸中心の回転およびz軸中心の回転を45度刻みで設定した場合、移動層1312は26個のノード220から構成される。なお、y軸中心の回転の角度は0度より大きく、かつ、180度以下の範囲であり、z軸中心の回転の角度は0度以上、かつ、360度以下の範囲である。
<結合層の構造例>
結合層1313は、実施例1の結合層212を3次元に拡張したものである。
<誤検出削減層の構造例>
CNN200が境界検出層、移動層1312、および結合層1313の3層構造である場合、孤立点状の誤検出陰影(FP−ROI)が検出される場合がある。誤検出削減層1314は、FP−ROIを削減する。
具体的には、誤検出削減層1314は、FP−ROIを削減する3次元ローパスフィルタを含むノード220から構成される。
設定するローパスフィルタの特性が不明である場合、適当なタップ数(例えば、x方向に5、y方向に5、z方向に5)の3次元全帯域通過フィルタを初期値として設定すればよい。
<学習処理>
次に、実施例2のCNN200を構築するための学習処理について説明する。
図18は、実施例1の計算機100が実行する処理を説明するフローチャートである。図19は、実施例1の計算機100が提示する設定画面の一例を示す図である。
計算機100は、ユーザからCNN200の学習を実行するための操作を受け付けた場合、設定部110を呼び出す。設定部110は、図19に示す設定画面1900をユーザに対して提示し、情報の入力を受け付ける(ステップS1801)。ここで、設定画面1900について説明する。
設定画面1900は、設定部110によってディスプレイ160に表示される画面であり、層数設定欄1910、境界検出層設定欄1920、移動層設定欄1930、結合層設定欄1940、誤検出削減層設定欄1950、CNN構造表示欄1960、設定ボタン1901、データ読み込みボタン1902、および学習開始ボタン1903を含む。
設定ボタン1901、データ読み込みボタン1902、および学習開始ボタン1903は、設定ボタン701、データ読み込みボタン702、および学習開始ボタン703と同一の操作ボタンである。
層数設定欄1910は、CNN200の層の数を設定する欄である。層数設定欄1910は、誤検出削減層1314を含まない3層構造のCNN200および誤検出削減層1314を含む4層構造のCNNのいずれかを選択するラジオボタンを含む。設定部110は、4層構造のCNN200が選択された場合、誤検出削減層設定欄1950への入力を受け付けるように制御する。
境界検出層設定欄1920は、境界検出層210のハイパーパラメータの生成に必要な情報を設定する欄である。境界検出層設定欄1920は、境界種類設定欄1921および境界設定欄1922を含む。
境界種類設定欄1921は、境界を検出するオブジェクトの数(種類)を設定する欄である。
境界設定欄1922は、各オブジェクトの境界を検出する層のハイパーパラメータの生成に必要な情報を設定する欄である。境界設定欄1922は、オブジェクトの数(種類)だけタブが表示される。タブはベースフィルタ設定欄1923、y軸回転角設定欄1924、z軸回転角設定欄1925を含む。
ベースフィルタ設定欄1923は、図14または図16に示すような境界面を検出するための重み係数を算出するためのデータを設定するための欄である。
y軸回転角設定欄1924は、複数種類の境界面を検出する重み係数を算出するために、y軸を中心に境界検出用ベースフィルタを回転させる角度の刻み幅を設定するための欄である。z軸回転角設定欄1925は、複数種類の境界面を検出する重み係数を算出するために、z軸を中心に境界検出用ベースフィルタを回転させる角度の刻み幅を設定するための欄である。
ユーザがy軸の回転角をφ、刻み幅をΔφ(Δφは180の約数)、z軸の回転角をθ、刻み幅をΔθ(Δθは360の約数)と設定した場合、第1境界検出層1310には式(5)から算出されるm個のノード220が設定される。式(5)の第1項は回転角の組合せであり、第2項は上側の境界面(φ=0、θ=0)および下側の境界面(φ=180、θ=0)を表す。
例えば、図14に示すROI1400の境界面を検出する場合、φは45度、90度、135度となり、θは0度、45度、90度、135度、180度、225度、270度、315度となる。この場合、組合せは式(5)の第1項に示すように24通りである。これに、境界面1401と、境界面1401のz軸座標を反転させると下側の境界面とを合わせると、26個の境界面を検出することができる。すなわち、刻み幅Δφおよび刻み幅Δθは境界面の種類を規定する値である。
また、ユーザが設定した境界検出用ベースフィルタに、m通りの3次元回転を行うことによって重み係数が算出される。
具体的には、設定部110は、重み係数の3次元座標(x,y,z)を、y軸を中心にφ回転させ、z軸を中心にθ回転させる式(6)に示す3次元空間の回転操作を行う。さらに、設定部110は、境界検出用ベースフィルタを回転後の3次元座標(x’,y’,z’)に移動する。このとき、回転後の重み係数の位置が一般的に小数画素位置になるため、3次元の最近傍補間法(ニアレストネイバー法)、双一次補間法(リニア補間法)、および双三次補間法(キュービック補間法)等の補間法を用いて画素格子上(整数画素位置)の値を求め、回転後の重み係数を算出する。
また、ユーザがy軸の回転角をφ’、刻み幅をΔφ’(Δφ’は180の約数)、z軸の回転角をθ’、刻み幅をΔθ’(Δθ’は180の約数)と設定した場合、第2境界検出層1311には式(7)から算出されるm’個のノード220が設定される。
円筒1600の境界面を検出する場合、上側の境界面および下側の境界面を区別する必要がない。したがって、式(7)の第2項は「1」となっている。
また、ユーザが設定した境界検出用ベースフィルタに、m’通りの3次元回転を行うことによって重み係数が算出される。重み係数の算出方法は、第1境界検出層1310の重み係数の算出方法と同様である。
このように、ノード220の数は境界の分解能に対応し、画像処理部112の性能を調整する指標の一つになる。実施例2では、CNN200の性能に関連する境界の幾何学的な特性に基づく値を入力することによって、CNN200に含まれる一部の層のハイパーパラメータが自動的に算出される。
なお、バイアスの値は初期値として「0」が設定されているものとする。ただし、境界設定欄1922にバイアスを設定する欄を設けてもよい。
移動層設定欄1930は、移動層1312のハイパーパラメータの生成に必要な情報を設定するための欄である。移動層設定欄1930は、ベースフィルタ設定欄1931、y軸回転角設定欄1932、およびz軸回転角設定欄1933を含む。
ベースフィルタ設定欄1931は、境界面を基準点に移動させるための重み係数を生成するために使用するデータを設定するための欄である。
y軸回転角設定欄1924は、複数種類の移動を実現する重み係数を算出するために、y軸を中心に移動用ベースフィルタを回転させる角度の刻み幅を設定するための欄である。z軸回転角設定欄1925は、複数種類の移動を実現する重み係数を算出するために、z軸を中心に移動用ベースフィルタを回転させる角度の刻み幅を設定するための欄である。
ユーザがy軸の回転角をφ、刻み幅Δφ(Δφは180の約数)、z軸の回転角をθ、刻み幅をΔθ(Δθは360の約数)と設定した場合、ノード220の数は式(5)より算出される。すなわち、刻み幅Δφおよび刻み幅Δθは移動方向の種類を規定する値である。
また、ユーザが設定した移動用ベースフィルタに、m通りの3次元回転を行うことによって重み係数が算出される。重み係数の算出方法は、第1境界検出層1310の重み係数の算出方法と同様である。
このように、ノード220の数は、画像処理部112の性能を調整する指標の一つになる。実施例2では、CNN200の性能に関連するオブジェクトの形状の幾何学的な特性に基づく値を入力することによって、CNN200に含まれる一部の層のハイパーパラメータが自動的に算出される。
なお、バイアスの値は初期値として「0」が設定されているものとする。ただし、移動層設定欄1930にバイアスを設定する欄を設けてもよい。
結合層設定欄1940は、結合層1313のハイパーパラメータの生成に必要な情報を設定するための欄である。結合層設定欄1940は、ノード数設定欄1941およびベースフィルタ設定欄1942を含む。
ノード数設定欄1941は、結合層1313のノード220の数を設定する欄である。ベースフィルタ設定欄1942は、結合層1313の重み係数を生成するために使用するデータを設定するための欄である。本実施例では、ベースフィルタ設定欄1942に設定された値を、移動層1312の出力数(ノード220の数)で除算した値が重み係数として算出される。
なお、バイアスの値は初期値として「0」が設定されているものとする。ただし、結合層設定欄1940にバイアスを設定する欄を設けてもよい。
誤検出削減層設定欄1950は、誤検出削減層1314のハイパーパラメータの生成に必要な情報を設定するための欄である。誤検出削減層設定欄1950は、ベースフィルタ設定欄1951を含む。誤検出削減層1314のノード220の数は1であるため、ノード220の数を設定する欄は含まれない。
ベースフィルタ設定欄1951は、誤検出削減層1314の重み係数を生成するために使用するデータを設定するための欄である。本実施例では、ベースフィルタ設定欄1951には、任意の3次元全帯域通過フィルタの重み係数が設定される。
CNN構造表示欄1960は、CNN200におけるハイパーパラメータ等に関する情報を表示する欄である。CNN構造表示欄1960には、ノード数表示欄1961およびタップ数表示欄1962が含まれる。
なお、バイアスの値は初期値として「0」が設定されているものとする。ただし、誤検出削減層設定欄1950にバイアスを設定する欄を設けてもよい。
以上が設定画面1900の説明である。図18の説明に戻る。
設定部110は、設定ボタン1901の操作を受け付けた場合、境界検出層設定欄1920に設定された情報に基づいて第1境界検出層1310および第2境界検出層1311を設定する(ステップS1802)。具体的には、以下のような処理が実行される。
第1境界検出層1310を設定する場合、設定部110は、y軸回転角設定欄1924およびz軸回転角設定欄1925の値を式(5)に代入することによってノード220の数を決定する。また、設定部110は、ベースフィルタ設定欄1923に設定されたベースフィルタをm通り回転させる操作を実行する。これによって各ノード220の重み係数が算出される。設定部110はバイアスを「0」に設定する。
第2境界検出層1311を設定する場合、設定部110は、y軸回転角設定欄1924およびz軸回転角設定欄1925の値を式(7)に代入することによってノード220の数を決定する。また、設定部110は、ベースフィルタ設定欄1923に設定されたベースフィルタをm’通り回転させる操作を実行する。これによって各ノード220の重み係数が算出される。設定部110はバイアスを「0」に設定する。以上がステップS1802の処理の説明である。
次に、設定部110は、移動層設定欄1930に設定された情報に基づいて、移動層1312を設定する(ステップS1803)。
具体的には、設定部110は、y軸回転角設定欄1932およびz軸回転角設定欄1933の値を式(5)に代入することによってノード220の数を決定する。また、設定部110は、ベースフィルタ設定欄1931に設定されたベースフィルタをm通り回転させる操作を実行する。これによって各ノード220の重み係数が算出される。設定部110はバイアスを「0」に設定する。
次に、設定部110は、結合層設定欄1940に設定された情報に基づいて、結合層1313を設定する(ステップS1804)。
具体的には、設定部110は、ノード数設定欄1941の値に基づいてノード220の数を決定する。また、設定部110は、ベースフィルタ設定欄1931に設定された値を、移動層1312の出力数で除算することによって重み係数を算出する。設定部110はバイアスを「0」に設定する。
次に、設定部110は、誤検出削減層設定欄1950に設定された情報に基づいて、誤検出削減層1314を設定する(ステップS1805)。
具体的には、設定部110は、ベースフィルタ設定欄1951に設定された重み係数を設定する。なお、層数設定欄1910において3層構造のCNN200が選択されている場合、設定部110は、ステップS1805の処理を実行せずに、ステップS1806に進む。
次に、設定部110は、ステップS1802からステップS1805の処理結果に基づいて、学習対象のCNN200の構造を定義するモデル情報121を生成する(ステップS1806)。
次に、設定部110は、データ読み込みボタン1902の操作を受け付けた場合、学習部111を呼び出す。学習部111は、学習データ管理情報120から学習データを読み出す(ステップS1807)。
次に、学習部111は、学習開始ボタン1903の操作を受け付けた場合、順伝播処理および逆伝播処理を実行し(ステップS1808、ステップS1809)、更新結果に基づいて、モデル情報121を更新する(ステップS1810)。
順伝播処理、逆伝播処理、およびモデル情報121の更新処理は実施例1と同様の処理であるため詳細な説明は省略する。
なお、実施例2では、xy平面の2次元のスライス画像がz方向に連続した画像が3次元の入力画像250として入力される。そこで、画像処理部112は、スライス画像の画素間隔とスライス画像間の画素間隔を一致させるスライス補間等の処理を実行し、CNN200に処理された入力画像250を入力してもよい。
次に、学習部111は、終了条件を満たすか否かを判定する(ステップS1811)。
終了条件を満たさないと判定された場合、学習部111はステップS1808に戻り、同様の処理を実行する。終了条件を満たすと判定された場合、学習部111は、処理を終了する。
画像処理部112は、図18の処理によって学習されたモデル情報121を用いることによって、新たな入力画像250が入力された場合、学習した結節の大きさおよび形状に類似するROI1400を高い精度で検出できる。
ユーザは、図18の処理が終了した後、評価用の入力画像250を用いて画像処理部112の性能を確認してもよい。図20は、実施例2の計算機100が提示する性能評価画面の一例を示す図である。
性能評価画面2000は、検出されたROI280が重畳された入力画像250を表示する画面であり、例えば、学習部111によってディスプレイ160に表示される。図19の性能評価画面2000では、白点線の円で表されたROI280を含む六つの入力画像250が提示されている。
ROI280の表示方法としては、図3または図14に示すような境界を提示してもよい。また、ROI280の重心を中心とし、かつ、ROI280を包含する円または矩形を提示してもよい。
ユーザは、性能評価画面2000を参照することによって、画像処理部112(CNN200)が所望の処理性能を有しているか否かを確認できる。所望の処理性能を有していない場合、ユーザは、再度、設定画面1900に情報を入力し、計算機100に学習処理を実行させる。
(ケース1)血管が結節として検出されている画像が多く表示されている場合、血管がうまく検出されていない可能性がある。この場合、第2境界検出層1311のベースフィルタを調整すればよい。
(ケース2)小さい結節が検出され、大きい結節が検出されていない画像が表示されている場合、移動層1312の設定が不適切である可能性が高い。この場合、ユーザは、前回よりタップ数を増やしたベースフィルタ等を設定する。
(ケース3)TP−ROI281の検出率が低い場合、または、FP−ROI282の検出率が高い場合、各層のノード220の数が不足している可能性が高い。この場合、ユーザは、回転角の刻み幅を前回より小さく設定する。例えば、前回の刻み幅が45度の場合、30度または22.5度に設定することが考えられる。
(ケース4)学習処理に用いた入力画像250の結節のみを高い精度で検出する場合、すなわち、過学習(オーバーフィッテイング)が発生している場合、各層のノード220の数が多い可能性が高い。この場合、ユーザは、回転角の刻み幅を前回より大きく設定する。例えば、前回の刻み幅が45度の場合、60度または90度に設定することが考えられる。
このように、ユーザは、CNN200の性能に関連する境界の幾何学的な特性およびオブジェクトの形状の幾何学的な特性に基づいて入力した値が、画像処理部112の処理性能にどのように寄与しているかを把握できる。したがって、設計初心者であってもCNN200の調整を容易に行うことができる。また、熟練者は、CNN200の調整に要する時間を削減できる。
<実施例2のまとめ>
実施例2のROI1400を抽出するための層を含むCNNを構築する場合、検出精度およびROI1400の特徴等に基づく情報を入力することによって、CNNのハイパーパラメータを自動的に算出できる。したがって、CNNの構築を容易に行うことができる。また、ハイパーパラメータを容易に調整することができる。
実施例3では、実施例1および実施例2で説明したCNN200の構築および学習を実現するシステムを説明する。以下、実施例1との差異を中心に、実施例3について説明する。
<CNNのハイパーパラメータを設定するシステムの構成例>
図21は、実施例3のシステムの構成例を示す図である。
システムは、画像取得装置2100、設定装置2110、学習装置2120、画像処理装置2130、およびデータ管理装置2140から構成される。各装置はネットワーク2150を介して接続される。
画像取得装置2100は画像を取得する装置である。画像取得装置2100が取得した画像は、入力画像250として扱われる。画像取得装置2100は、例えば、CT装置、X線透視撮像装置、MRI装置、および超音波プローブ(探触子)等の医療用装置、監視カメラ、ビデオカメラ、デジタルカメラ、並びに、スマートフォン等である。
設定装置2110は、設定部110に対応する機能を有し、学習対象のCNN200のハイパーパラメータを算出することによってCNN200を構築する。学習装置2120は、学習部111に対応する機能を有し、CNN200の学習処理を実行する。画像処理装置2130は、画像処理部112に対応する機能を有し、入力された画像を用いて画像処理を実行する。
設定装置2110、学習装置2120、および画像処理装置2130は、汎用計算機を用いて実現できる。
データ管理装置2140は、画像取得装置2100が取得した入力画像250、画像処理装置2130が出力した出力画像260、学習データ、およびモデル情報121等を管理する。データ管理装置2140は、例えば、複数の記憶媒体を有するストレージシステムを用いて実現できる。データ管理装置2140は、外部から入力された指示にしたがって、データの読み出し、およびデータの格納等を行う。
設定装置2110、学習装置2120、および画像処理装置2130には、特定のユーザのみが操作できるように制御するためのログイン機能を設けてもよい。例えば、設定装置2110および学習装置2120は、CNN200の設計者からの操作のみを受け付け、画像処理装置2130は、CNN200の設計者および医師等からの操作を受け付けるように設定する。このようなログイン機能を設けることによって、クラウドサービス等を実現できる。
なお、学習装置2120および画像処理装置2130は、一つの装置にまとめてもよい。
なお、各装置が実行する処理は実施例1および実施例2で説明した処理と同一であるため説明を省略する。
<実施例3のまとめ>
様々なシステム形態またはサービス形態で、実施例1および実施例2で説明したCNNの構築方法を利用できる。
<全体のまとめ>
(i)本発明によれは、ユーザが検出精度およびROIの特徴等に基づく情報を入力することによって、自動的にCNNのハイパーパラメータが算出される。したがって、CNNの構築を容易に行うことができる。また、ハイパーパラメータを容易に調整することができる。
(ii)なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、およびそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラムまたはスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段またはCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
100 計算機
101 演算装置
102 メモリ
103 ストレージ装置
104 通信インタフェース
105 出力インタフェース
106 入力インタフェース
107 バス
110 設定部
111 学習部
112 画像処理部
120 学習データ管理情報
121 モデル情報
150 ネットワーク
160 ディスプレイ
170 キーボード
180 マウス
200 CNN
250 入力画像
260 出力画像
700 設定画面
2000 性能評価画面
2100 画像取得装置
2110 設定装置
2120 学習装置
2130 画像処理装置
2140 データ管理装置
2150 ネットワーク

Claims (12)

  1. 少なくとも一つのノードを含む複数の層から構成され、画像処理を実行するためのニューラルネットワークを構築する計算機であって、
    前記ニューラルネットワークは、画像からオブジェクトを検出するための処理を実現する検出層を含み、
    前記計算機は、演算装置および前記演算装置に接続される記憶装置を備え、
    前記演算装置は、
    前記検出層のハイパーパラメータを算出するため値であって、前記オブジェクトの境界および前記オブジェクトの形状の特性に関する設定値を含む、前記ニューラルネットワークを構築するための設定情報を取得する第1の処理と、
    前記設定情報に基づいて、前記ニューラルネットワークを構築する第2の処理と、
    前記構築されたニューラルネットワークの構造を管理するモデル情報を生成する第3の処理と、を実行し、
    前記第2の処理は、前記設定値に基づいて、前記検出層のハイパーパラメータを算出する処理を含むことを特徴とする計算機。
  2. 請求項1に記載の計算機であって、
    前記ニューラルネットワークは、前記オブジェクトの境界を検出する第1の検出層および任意の形状の前記オブジェクトを検出する第2の検出層を含み、
    前記設定値は、前記第1の検出層の設定値および前記第2の検出層の設定値を含み、
    前記第2の処理は、
    前記演算装置が、前記第1の検出層の設定値に基づいて、前記第1の検出層の前記ノードの数および前記ノードに設定する重み係数を算出する第4の処理と、
    前記演算装置が、前記第2の検出層の設定値に基づいて、前記第2の検出層の前記ノードの数および前記ノードに設定する重み係数を算出する第5の処理と、を含むことを特徴とする計算機。
  3. 請求項2に記載の計算機であって、
    前記第2の検出層は、前記第1の検出層によって検出された前記オブジェクトの境界を任意の移動に移動させることによって前記任意の形状のオブジェクトを検出し、
    前記第1の検出層の設定値は、前記画像の周波数特性に基づいて設定された第1のフィルタおよび前記オブジェクトの境界の種類を規定する第1の角度を含み、
    前記第1の検出層の設定値は、前記オブジェクトの境界の任意の移動方向を規定する第2のフィルタおよび前記移動方向を規定する第2の角度を含み、
    前記第4の処理では、
    前記演算装置が、前記第1の角度に基づいて前記第1の検出層の前記ノードの数を算出し、
    前記演算装置が、前記第1の角度および前記第1のフィルタを用いて、前記第1のフィルタの次元に対応する回転操作を実行することによって、前記第1の検出層のノードに設定する重み係数を算出し、
    前記第5の処理では、
    前記演算装置が、前記第2の角度に基づいて前記第2の検出層の前記ノードの数を算出し、
    前記演算装置が、前記第2の角度および前記第2のフィルタを用いて、前記第2のフィルタの次元に対応する回転操作を実行することによって、前記第2の検出層のノードに設定する重み係数を算出することを特徴とする計算機。
  4. 請求項2に記載の計算機であって、
    前記構築されたニューラルネットワークおよび学習データを用いた学習処理を実行し、前記学習処理の結果に基づいてモデル情報を更新する第6の処理を実行することを特徴とする計算機。
  5. 請求項2に記載の計算機であって、
    前記演算装置は、前記モデル情報に基づいて、入力された画像から前記オブジェクトを検出するための処理を実行することを特徴とする計算機。
  6. 演算装置および前記演算装置に接続される記憶装置を有する計算機が実行するニューラルネットワークの構築方法であって、
    前記ニューラルネットワークは、
    少なくとも一つのノードを含む複数の層から構成され、画像処理を実行するためのニューラルネットワークであり、
    画像からオブジェクトを検出するための処理を実現する検出層を含み、
    前記ニューラルネットワークの構築方法は、
    前記演算装置が、前記検出層のハイパーパラメータを算出するため値であって、前記オブジェクトの境界および前記オブジェクトの形状の特性に関する設定値を含む、前記ニューラルネットワークを構築するための設定情報を取得する第1のステップと、
    前記演算装置が、前記設定情報に基づいて、前記ニューラルネットワークを構築する第2のステップと、
    前記演算装置が、前記構築されたニューラルネットワークの構造を管理するモデル情報を生成する第3のステップと、を含み、
    前記第2のステップは、前記演算装置が、前記設定値に基づいて、前記検出層のハイパーパラメータを算出するステップを含むことを特徴とするニューラルネットワークの構築方法。
  7. 請求項6に記載のニューラルネットワークの構築方法であって、
    前記ニューラルネットワークは、前記オブジェクトの境界を検出する第1の検出層および任意の形状の前記オブジェクトを検出する第2の検出層を含み、
    前記設定値は、前記第1の検出層の設定値および前記第2の検出層の設定値を含み、
    前記第2のステップは、
    前記演算装置が、前記第1の検出層の設定値に基づいて、前記第1の検出層の前記ノードの数および前記ノードに設定する重み係数を算出する第4のステップと、
    前記演算装置が、前記第2の検出層の設定値に基づいて、前記第2の検出層の前記ノードの数および前記ノードに設定する重み係数を算出する第5のステップと、を含むことを特徴とするニューラルネットワークの構築方法。
  8. 請求項7に記載のニューラルネットワークの構築方法であって、
    前記第2の検出層は、前記第1の検出層によって検出された前記オブジェクトの境界を任意の移動に移動させることによって前記任意の形状のオブジェクトを検出し、
    前記第1の検出層の設定値は、前記画像の周波数特性に基づいて設定された第1のフィルタおよび前記オブジェクトの境界の種類を規定する第1の角度を含み、
    前記第1の検出層の設定値は、前記オブジェクトの境界の任意の移動方向を規定する第2のフィルタおよび前記移動方向を規定する第2の角度を含み、
    前記第4のステップは、
    前記演算装置が、前記第1の角度に基づいて前記第1の検出層の前記ノードの数を算出するステップと、
    前記演算装置が、前記第1の角度および前記第1のフィルタを用いて、前記第1のフィルタの次元に対応する回転操作を実行することによって、前記第1の検出層のノードに設定する重み係数を算出するステップと、を含み、
    前記第5のステップは、
    前記演算装置が、前記第2の角度に基づいて前記第2の検出層の前記ノードの数を算出するステップと、
    前記演算装置が、前記第2の角度および前記第2のフィルタを用いて、前記第2のフィルタの次元に対応する回転操作を実行することによって、前記第2の検出層のノードに設定する重み係数を算出するステップと、を含むことを特徴とするニューラルネットワークの構築方法。
  9. 請求項7に記載のニューラルネットワークの構築方法であって、
    前記演算装置が、前記構築されたニューラルネットワークおよび学習データを用いた学習処理を実行するステップと、
    前記演算装置が、前記学習処理の結果に基づいてモデル情報を更新するステップを、を含むことを特徴とするニューラルネットワークの構築方法。
  10. 複数の計算機を備える計算機システムであって、
    画像処理を実行するためのニューラルネットワークを構築する設定部と、前記ニューラルネットワークの学習処理を実行する学習部と、前記ニューラルネットワークを用いて前記画像処理を実行する画像処理部と、を備え、
    前記ニューラルネットワークは、
    少なくとも一つのノードを含む複数の層から構成され、
    画像からオブジェクトを検出するための処理を実現する検出層を含み、
    前記設定部は、
    前記検出層のハイパーパラメータを算出するため値であって、前記オブジェクトの境界および前記オブジェクトの形状の特性に関する設定値を含む、前記ニューラルネットワークを構築するための設定情報を取得する第1の処理と、
    前記設定情報に基づいて、前記ニューラルネットワークを構築する第2の処理と、
    前記構築されたニューラルネットワークの構造を管理するモデル情報を生成する第3の処理と、を実行し、
    前記第2の処理は、前記設定値に基づいて、前記検出層のハイパーパラメータを算出する処理を含むことを特徴とする計算機システム。
  11. 請求項10に記載の計算機システムであって、
    前記複数の層は、前記オブジェクトの境界を検出する第1の検出層および任意の形状の前記オブジェクトを検出する第2の検出層を含み、
    前記設定値は、前記第1の検出層の設定値および前記第2の検出層の設定値を含み、
    前記第2の処理は、
    前記設定部が、前記第1の検出層の設定値に基づいて、前記第1の検出層の前記ノードの数および前記ノードに設定する重み係数を算出する第4の処理と、
    前記設定部が、前記第2の検出層の設定値に基づいて、前記第2の検出層の前記ノードの数および前記ノードに設定する重み係数を算出する第5の処理と、を含むことを特徴とする計算機システム。
  12. 請求項11に記載の計算機システムであって、
    前記第2の検出層は、前記第1の検出層によって検出された前記オブジェクトの境界を任意の移動に移動させることによって前記任意の形状のオブジェクトを検出し、
    前記第1の検出層の設定値は、前記画像の周波数特性に基づいて設定された第1のフィルタおよび前記オブジェクトの境界の種類を規定する第1の角度を含み、
    前記第1の検出層の設定値は、前記オブジェクトの境界の任意の移動方向を規定する第2のフィルタおよび前記移動方向を規定する第2の角度を含み、
    前記第4の処理では、
    前記設定部が、前記第1の角度に基づいて前記第1の検出層の前記ノードの数を算出し、
    前記設定部が、前記第1の角度および前記第1のフィルタを用いて、前記第1のフィルタの次元に対応する回転操作を実行することによって、前記第1の検出層のノードに設定する重み係数を算出し、
    前記第5の処理では、
    前記設定部が、前記第2の角度に基づいて前記第2の検出層の前記ノードの数を算出し、
    前記設定部が、前記第2の角度および前記第2のフィルタを用いて、前記第2のフィルタの次元に対応する回転操作を実行することによって、前記第2の検出層のノードに設定する重み係数を算出することを特徴とする計算機システム。
JP2018214275A 2018-11-15 2018-11-15 計算機、ニューラルネットワークの構築方法、および計算機システム Pending JP2020086479A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018214275A JP2020086479A (ja) 2018-11-15 2018-11-15 計算機、ニューラルネットワークの構築方法、および計算機システム
US16/669,726 US11157775B2 (en) 2018-11-15 2019-10-31 Computer, neural network construction method, and computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018214275A JP2020086479A (ja) 2018-11-15 2018-11-15 計算機、ニューラルネットワークの構築方法、および計算機システム

Publications (1)

Publication Number Publication Date
JP2020086479A true JP2020086479A (ja) 2020-06-04

Family

ID=70727938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018214275A Pending JP2020086479A (ja) 2018-11-15 2018-11-15 計算機、ニューラルネットワークの構築方法、および計算機システム

Country Status (2)

Country Link
US (1) US11157775B2 (ja)
JP (1) JP2020086479A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019215907A1 (ja) * 2018-05-11 2019-11-14 オリンパス株式会社 演算処理装置
US11637710B2 (en) * 2019-12-10 2023-04-25 Jpmorgan Chase Bank, N.A. Systems and methods for federated privacy management
US11410083B2 (en) * 2020-01-07 2022-08-09 International Business Machines Corporation Determining operating range of hyperparameters

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018014060A (ja) * 2016-07-22 2018-01-25 ファナック株式会社 機械学習モデル構築装置、数値制御装置、機械学習モデル構築方法、機械学習モデル構築プログラム、及び記録媒体

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6192010B2 (ja) 2013-09-05 2017-09-06 国立大学法人 東京大学 重み設定装置および方法
EP3607503B1 (en) * 2017-04-17 2022-03-09 Cerebras Systems Inc. Task activating for accelerated deep learning
US10679129B2 (en) * 2017-09-28 2020-06-09 D5Ai Llc Stochastic categorical autoencoder network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018014060A (ja) * 2016-07-22 2018-01-25 ファナック株式会社 機械学習モデル構築装置、数値制御装置、機械学習モデル構築方法、機械学習モデル構築プログラム、及び記録媒体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LIANDONG LI, ET AL.: "Edge Convolutional Network for Facial Action Intensity Estimation", 2018 13TH IEEE INTERNATIONAL CONFERENCE ON AUTOMATIC FACE & GESTURE RECOGNITION (FG 2018), JPN6022023869, 15 May 2018 (2018-05-15), US, ISSN: 0004942228 *

Also Published As

Publication number Publication date
US11157775B2 (en) 2021-10-26
US20200160118A1 (en) 2020-05-21

Similar Documents

Publication Publication Date Title
JP6932182B2 (ja) 畳み込みニューラルネットワークを用いた画像セグメンテーションのためのシステムおよび方法
US20210272030A1 (en) Systems and methods for using geometry sensitivity information for guiding workflow
JP6884853B2 (ja) ニューラルネットワーク法を用いた画像セグメンテーション
US8073227B2 (en) System and method for geometric modeling of tubular structures
EP3295374B1 (en) Method and system for landmark detection in medical images using deep neural networks
US7990379B2 (en) System and method for coronary segmentation and visualization
WO2018000564A1 (zh) 血管中心线提取方法及系统
US10210612B2 (en) Method and system for machine learning based estimation of anisotropic vessel orientation tensor
US11013495B2 (en) Method and apparatus for registering medical images
JP2020520005A (ja) 画像解析における解剖学的構造のセグメンテーションのためのシステム及び方法
US20110262015A1 (en) Image processing apparatus, image processing method, and storage medium
US11157775B2 (en) Computer, neural network construction method, and computer system
US10395380B2 (en) Image processing apparatus, image processing method, and storage medium
CN109949349B (zh) 一种多模态三维图像的配准及融合显示方法
JP2018139693A (ja) 画像分類装置、方法およびプログラム
CN109635630B (zh) 手部关节点检测方法、装置及存储介质
US20190362548A1 (en) Apparatus and method for creating biological model
US7689018B2 (en) Anomaly detection in volume data structure information
Zhou et al. Interactive medical image segmentation using snake and multiscale curve editing
CN114387317B (zh) Ct图像和mri三维图像的配准方法、装置
Lim et al. Automatic 4D reconstruction of patient-specific cardiac mesh with 1-to-1 vertex correspondence from segmented contours lines
US10354349B2 (en) Systems and methods for using geometry sensitivity information for guiding workflow
US20170169569A1 (en) Information processing apparatus, information processing method, and storage medium
US20220277457A1 (en) Segmentating a tubular feature
US20200218942A1 (en) Computer and image processing method

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20210219

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20210226

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210617

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20211027

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220509

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220614

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20221213