(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-09
(45)【発行日】2024-02-20
(54)【発明の名称】組織セグメンテーションのための機械学習モデルの双方向トレーニング
(51)【国際特許分類】
G06N 20/00 20190101AFI20240213BHJP
G06T 7/00 20170101ALI20240213BHJP
G06V 10/82 20220101ALI20240213BHJP
G06T 7/11 20170101ALI20240213BHJP
【FI】
G06N20/00
G06T7/00 350C
G06V10/82
G06T7/11
(21)【出願番号】P 2022518822
(86)(22)【出願日】2020-09-22
(86)【国際出願番号】 US2020051944
(87)【国際公開番号】W WO2021061613
(87)【国際公開日】2021-04-01
【審査請求日】2022-05-19
(32)【優先日】2019-09-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390040660
【氏名又は名称】アプライド マテリアルズ インコーポレイテッド
【氏名又は名称原語表記】APPLIED MATERIALS,INCORPORATED
【住所又は居所原語表記】3050 Bowers Avenue Santa Clara CA 95054 U.S.A.
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】ジャ, スミット クマール
(72)【発明者】
【氏名】シスタ, アディティア
(72)【発明者】
【氏名】ラグナタン, ガネシュ クマール モハヌル
(72)【発明者】
【氏名】クマール, ウバイ
(72)【発明者】
【氏名】サプレ, ケダル
【審査官】円子 英紀
(56)【参考文献】
【文献】特開2018-200386(JP,A)
【文献】米国特許出願公開第2010/0322489(US,A1)
【文献】特開2015-166975(JP,A)
【文献】特表2019-506208(JP,A)
【文献】特表2019-530502(JP,A)
【文献】LUTNICK, Brendon et al.,An integrated iterative annotation technique for easing neural network training in medical image analysis,Nature Machine Intelligence,2019年02月11日,[検索日 2023.05.30], インターネット:<URL: https://www.nature.com/articles/s42256-019-0018-3>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 18/00-18/40
G06T 7/00- 7/90
G06V 10/00-20/90
G06V 30/418
G06V 40/16
G06V 40/20
(57)【特許請求の範囲】
【請求項1】
組織サンプルの拡大画像をセグメント化するために機械学習モデルをトレーニングするための1つまたは複数のデータ処理装置によって実行される方法であって、
組織サンプルの拡大画像を取得することと、
複数の組織クラスへの前記画像の自動セグメンテーションを生成するために、機械学習モデルのモデルパラメータの現行値に従って、前記画像、前記画像から導出された特徴、またはその両方を含む入力を処理することであって、前記自動セグメンテーションが、前記画像の各ピクセルに対応するそれぞれの組織クラスを指定する、入力を処理することと、
ユーザインターフェースを通じてユーザに(i)前記画像、および(ii)前記画像の前記自動セグメンテーションを示すことと、
前記画像の前記自動セグメンテーションに対する1つまたは複数の修正を指定する入力を、前記ユーザインターフェースを通じて前記ユーザから取得することと、
前記ユーザによって指定された前記修正を前記画像の前記自動セグメンテーションに適用することを含む、前記画像の編集されたセグメンテーションを決定することと、
前記画像の前記編集されたセグメンテーションに基づいて、前記機械学習モデルの前記モデルパラメータの更新された値を決定すること
であって、
(i)前記画像の前記自動セグメンテーションと、(ii)前記画像の前記編集されたセグメンテーションとの間の、類似性を特徴付ける目的関数の勾配を決定することと、
前記勾配を使用して前記モデルパラメータの値を調整することと
を含む、前記機械学習モデルの前記モデルパラメータの更新された値を決定することと、
を含む動作を繰り返し実行することを含む、方法。
【請求項2】
組織サンプルの拡大画像をセグメント化するために機械学習モデルをトレーニングするための1つまたは複数のデータ処理装置によって実行される方法であって、
組織サンプルの拡大画像を取得することと、
複数の組織クラスへの前記画像の自動セグメンテーションを生成するために、機械学習モデルのモデルパラメータの現行値に従って、前記画像、前記画像から導出された特徴、またはその両方を含む入力を処理することであって、前記自動セグメンテーションが、前記画像の各ピクセルに対応するそれぞれの組織クラスを指定する、入力を処理することと、
ユーザインターフェースを通じてユーザに(i)前記画像、および(ii)前記画像の前記自動セグメンテーションを示すことと、
前記画像の前記自動セグメンテーションに対する1つまたは複数の修正を指定する入力を、前記ユーザインターフェースを通じて前記ユーザから取得することと、
前記ユーザによって指定された前記修正を前記画像の前記自動セグメンテーションに適用することを含む、前記画像の編集されたセグメンテーションを決定することと、
組織のセグメンテーションをレビューおよび編集する際の前記ユーザの予測されたスキルを特徴付ける専門知識スコアを決定することと、
前記ユーザの前記専門知識スコアが閾値を満たした場合にのみ、前記ユーザによる前記画像の前記編集されたセグメンテーションに基づいて、前記機械学習モデルの前記モデルパラメータの更新された値を決定することと、
を含む動作を繰り返し実行することを含
み、
前記専門知識スコアは、所定の画像について前記ユーザによって生成されたセグメンテーションと、同一の前記所定の画像の対応するスタンダードセグメンテーションとの間の類似尺度の関数として決定される、方法。
【請求項3】
前記複数の組織クラスが、がん性組織および非がん性組織を含む、請求項1
または2に記載の方法。
【請求項4】
前記画像が、顕微鏡を使用して取り込まれたホールスライドイメージ(WSI)である、請求項1
から3のいずれか一項に記載の方法。
【請求項5】
前記機械学習モデルが、ニューラルネットワークモデルを含む、請求項1
から4のいずれか一項に記載の方法。
【請求項6】
前記ニューラルネットワークモデルが、1つまたは複数の畳み込みニューラルネットワーク層を備える畳み込みニューラルネットワークモデルである、請求項
5に記載の方法。
【請求項7】
前記モデルパラメータが、前記ニューラルネットワークモデルの各層の重み値を指定し得る、請求項
5に記載の方法。
【請求項8】
前記機械学習モデルが、ランダムフォレストモデルを含む、請求項1
から4のいずれか一項に記載の方法。
【請求項9】
前記モデルパラメータが、前記ランダムフォレストモデルの決定木のノードで使用される分岐関数を指定する、請求項
8に記載の方法。
【請求項10】
前記ユーザインターフェースを通じて前記ユーザに(i)前記画像、および(ii)前記画像の前記自動セグメンテーションを示すことは、
前記ユーザインターフェースを通じて前記ユーザに、前記画像上にオーバーレイされた前記自動セグメンテーションを描写する視覚化したものを提供することを含む、請求項1
から9のいずれか一項に記載の方法。
【請求項11】
前記画像上にオーバーレイされた前記自動セグメンテーションを描写する前記視覚化したものは、前記画像の各ピクセルに対応する前記それぞれの組織クラスを示す、請求項
10に記載の方法。
【請求項12】
前記画像の前記自動セグメンテーションに対する各修正が、前記画像の1つまたは複数のピクセルについて、前記自動セグメンテーションによって前記ピクセルに対して指定された前記それぞれの組織クラスへの変更を示し、
前記ユーザによって指定された前記修正を前記画像の前記自動セグメンテーションに適用することが、前記ユーザによって指定された前記修正に従って前記画像の1つまたは複数のピクセルに対応する前記組織クラスを変更することを含む、請求項1
から11のいずれか一項に記載の方法。
【請求項13】
1つまたは複数のコンピュータと、
前記1つまたは複数のコンピュータに通信可能に接続された1つまたは複数のストレージデバイスと、を備え、前記1つまたは複数のストレージデバイスが、前記1つまたは複数のコンピュータによって実行されたとき、前記1つまたは複数のコンピュータに、請求項1から
12のいずれか一項に記載
の方法の
それぞれの前記動作を実行させる命令を記憶する、システム。
【請求項14】
1つまたは複数のコンピュータによって実行されたとき、前記1つまたは複数のコンピュータに、請求項1から
12のいずれか一項に記載
の方法の
それぞれの前記動作を実行させる命令を記憶する、1つまたは複数の非一時的コンピュータストレージ媒体。
【発明の詳細な説明】
【背景技術】
【0001】
本明細書は、機械学習モデルを使用した組織サンプルの拡大画像の処理に関する。
【0002】
機械学習モデルは入力を受け取り、受け取った入力に基づいて、出力、例えば予測された出力を生成する。機械学習モデルの中にはパラメトリックモデルがあり、受け取った入力およびモデルのパラメータの値に基づいて出力を生成する。
【0003】
機械学習モデルの中には、受け取った入力に対する出力を生成するために複数層のモデルを活用する深層モデルがある。例えば、深層ニューラルネットワークは、出力層、および各々が出力を生成するために受け取った入力に非線形変換を適用する1つまたは複数の隠れ層を含む深層機械学習モデルである。
【発明の概要】
【0004】
本明細書は、組織サンプルの拡大画像をそれぞれの組織クラスにセグメント化するための、1つまたは複数の場所にある1つまたは複数のコンピュータ上のコンピュータプログラムとして実施されるシステムを説明する。
【0005】
第1の態様によれば、組織サンプルの拡大画像をセグメント化するために機械学習モデルをトレーニングするための、1つまたは複数のデータ処理装置によって実行される方法が提供されている。この方法は、組織サンプルの拡大画像を取得することを含む動作を繰り返し実行することを含む。画像、画像から導出された特徴、またはその両方を含む入力は、機械学習モデルのモデルパラメータの現行値に従って処理されて、一セットの組織クラスの中に画像の自動セグメンテーションを生成し、ここで自動セグメンテーションが、画像の各ピクセルに対応するそれぞれの組織クラスを指定する。ユーザインターフェースを通じてユーザに(i)画像、および(ii)画像の自動セグメンテーションを示す。画像の自動セグメンテーションに対する1つまたは複数の修正を指定する入力を、ユーザインターフェースを通じてユーザから取得する。画像が編集されたセグメンテーションは、ユーザによって指定された修正を画像の自動セグメンテーションに適用することを含めて決定される。機械学習モデルのモデルパラメータが更新される値は、画像が編集されたセグメンテーションに基づいて決定される。
【0006】
いくつかの実施態様では、組織クラスのセットは、がん性組織および非がん性組織を含む。
【0007】
いくつかの実施態様では、画像は、顕微鏡を使用して取り込まれたホールスライドイメージ(WSI:whole slide image)である。
【0008】
いくつかの実施態様では、機械学習モデルは、ニューラルネットワークモデルを含む。
【0009】
いくつかの実施態様では、ニューラルネットワークモデルは、1つまたは複数の畳み込みニューラルネットワーク層を含む畳み込みニューラルネットワークモデルである。
【0010】
いくつかの実施態様では、ユーザインターフェースを通じてユーザに(i)画像、および(ii)画像の自動セグメンテーションを示すことは、ユーザインターフェースを通じてユーザに、画像上にオーバーレイされた自動セグメンテーションを描写する視覚化したものを提供することを含む。
【0011】
いくつかの実施態様では、画像上にオーバーレイされた自動セグメンテーションを描写する視覚化したものによって、画像の各ピクセルに対応するそれぞれの組織クラスが示される。
【0012】
いくつかの実施態様では、画像の自動セグメンテーションに対する各修正は、画像の1つまたは複数のピクセルについて、自動セグメンテーションによってピクセルに対して指定されたそれぞれの組織クラスへの変更を示す。ユーザによって指定された修正を画像の自動セグメンテーションに適用することは、ユーザによって指定された修正に従って、画像の1つまたは複数のピクセルに対応する組織クラスを変更することを含む。
【0013】
いくつかの実施態様では、画像の編集されたセグメンテーションに基づいてモデルパラメータの更新された値を決定することは、(i)画像の自動セグメンテーションと、(ii)画像の編集されたセグメンテーションとの間の類似性を特徴付ける目的関数の勾配を決定することと、勾配を使用してモデルパラメータの値を調整することとを含む。
【0014】
いくつかの実施態様では、本方法が組織のセグメンテーションをレビューおよび編集する際のユーザの予測されたスキルを特徴付ける専門知識スコアを決定することを更に含む。
【0015】
別の態様によれば、1つまたは複数のコンピュータ、および1つまたは複数のコンピュータに通信可能に接続された1つまたは複数のストレージデバイスを含むシステムが提供され、ここで1つまたは複数のストレージデバイスが、1つまたは複数のコンピュータによって実行されたとき、1つまたは複数のコンピュータに第1の態様の方法の動作を実行させる命令を記憶する。
【0016】
第3の態様によれば、1つまたは複数のコンピュータによって実行されたとき、1つまたは複数のコンピュータに第1の態様の方法の動作を実行させる命令を記憶する1つまたは複数の非一時的なコンピュータストレージ媒体が提供されている。
【0017】
本明細書に記載される主題の特定の実施形態は、以下の利点のうち1つまたは複数を実現するように実施することができる。本明細書に記載されるセグメンテーションシステムは、ユーザ(例えば、病理学者)が機械学習モデルと連携して、組織サンプルの拡大画像を(ターゲット)組織クラスに、時間効率が良く、かつ高精度な方法でセグメント化することを可能にする。本明細書は、セグメンテーション(すなわち、ターゲット組織クラスのセグメンテーション)を手動でレビューして編集する際の、ユーザの予測されたスキルを特徴付けるユーザの「専門知識」スコアを計算するための技法を記載する。専門知識スコアは、セグメンテーションシステムのパフォーマンスを向上するために使用することができる。例えば、専門知識スコアを使用して、例えば、ユーザの専門知識スコアに基づいて、ユーザによって生成されたセグメンテーションをトレーニングデータに含めるかどうかを決定することによって、セグメンテーションシステムをトレーニングするために使用されるトレーニングデータの品質を向上させることができる。
【0018】
本明細書の主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に記載される。主題の他の特徴、態様、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0019】
【
図1】例示的なセグメンテーションシステムの図である。
【
図2】組織サンプルの拡大画像の例示的なセグメンテーションの図である。
【
図3】組織サンプルの拡大画像をセグメント化するために機械学習モデルを繰り返しトレーニングするための例示的なプロセスのフロー図である。
【
図4】組織サンプルの拡大画像におけるターゲット組織クラスのセグメンテーションをレビューして編集する際の、ユーザの予測されたスキルを特徴付ける専門知識スコアを決定するための例示的なプロセスのフロー図である。
【発明を実施するための形態】
【0020】
様々な図面の同様の参照番号および記号表示は、同様の要素を示す。
【0021】
本明細書では、組織サンプル(例えば、顕微鏡、例えば、光学顕微鏡を使用して生成される)の拡大画像をそれぞれの組織クラスにセグメント化するためのセグメンテーションシステムが記載される。より具体的には、セグメンテーションシステムは、組織サンプルの拡大画像を処理して、画像の各ピクセルに対応するそれぞれの(ターゲット)組織クラスを識別することができる。画像内のピクセルの(ターゲット)組織クラスは、ピクセルに対応する組織サンプルの一部分における組織のタイプを特徴付ける。
【0022】
本明細書の全体を通じて使用されるように、「顕微鏡」は、例えば、光検出器の1-Dアレイを使用して、または電荷結合素子(CCD:charge-coupled device)の2-Dアレイを使用して、サンプルの拡大画像を生成することができる任意のシステムを指すことができる。
【0023】
セグメンテーションシステムは、画像を組織クラスの任意の適切なセットにセグメント化するように構成することができる。一例では、セグメンテーションシステムは、画像をがん性組織と非がん性組織とにセグメント化し得る。別の例では、セグメンテーションシステムは、画像を、健康な組織、がん性組織、および壊死性組織にセグメント化し得る。別の例では、セグメンテーションシステムは、画像を、筋組織、神経組織、結合組織、上皮組織、および「他の」組織にセグメント化し得る。セグメンテーションシステムは、例えば、生検法を通じて患者から取得される組織サンプルの拡大画像をセグメント化するために、様々な設定のいずれにおいても使用することができる。組織サンプルは、任意の適切な部類の組織、例えば、前立腺組織、乳房組織、肝臓組織、または腎臓組織のサンプルとすることができる。セグメンテーションシステムによって生成されるセグメンテーションは、例えば、疾患(例えば、がん)の存在または範囲を特徴付けるために、様々な目的のいずれかに使用することができる。
【0024】
組織サンプルの単一の拡大画像を手動でセグメント化することは、例えば、1010ピクセルのオーダーで有することができる広大な寸法の画像のために、数時間費やす挑戦的なタスクとなり得る。一方では、機械学習モデルは、相当短い時間(例えば、秒または分、例えば、10~30分)で組織サンプルの拡大画像を自動的にセグメント化するようにトレーニングできる。しかしながら、機械学習モデルをトレーニングして、例えば生検サンプルのがん性組織を同定するなど、特定の実用的な用途に受け入れられると考えられるレベルの精度を達成することは困難であり得る。特に、組織の顕微鏡による外観は、組織に固有の因子(例えば、組織に存在する疾患のタイプおよび段階)および組織外からの因子(例えば、顕微鏡がどのように較正されるのか、および組織を染色するために使用される手順)の両方に起因して、非常に複雑かつ可変的であることができる。これは、組織の顕微鏡による外観における可能な変動の全範囲を取り込むのに十分な大きさである一セットのラベル付けされたトレーニングデータ(すなわち、機械学習モデルをトレーニングするためのトレーニングデータ)を集約することを困難にする。
【0025】
本明細書に記載されるセグメンテーションシステムは、ユーザ(例えば、病理学者)が機械学習モデルと連携して、組織サンプルを、時間効率が良く、かつ高精度な方法でセグメント化することを可能にする。画像をセグメント化するために、機械学習モデルは最初に、画像の自動セグメンテーションを生成し、画像はその後、ユーザが必要に応じて自動セグメンテーションをレビューし手動で編集することを可能にするユーザインターフェースを通じてユーザに提供される。「編集された」セグメンテーションは、セグメンテーションシステムによって出力として提供され、機械学習モデルのパラメータ値を更新して(例えば、直ちに、またはその後の時点で)、セグメンテーションシステムに、ユーザのセグメンテーションにほぼ完全に一致するセグメンテーションを生成させるためにも使用される。
【0026】
このようにして、機械学習モデルは、(いくつかの従来のシステムにあるような)静的で限定されたトレーニングデータセット上で一度トレーニングされるのではなく、編集されたセグメンテーションを通じてユーザによって提供されるフィードバックに基づいて、機械学習モデルのパラメータ値を継続的に学習し、適応させる。更に、ユーザは、画像を一からセグメント化することを要求されるのではなく、機械学習モデルによって生成された自動セグメンテーションから開始することができ、機械学習モデルが継続的に向上するにつれて、やがて自動セグメンテーションに対して補正を行う必要性が少なくなり得る。
【0027】
「組織」という用語は、本明細書では、個々の細胞とは対照的に、類似の構造および機能をもつ細胞群を指す。組織の色、テクスチャリング、および類似の画像特性は、個々の細胞のものとは著しく異なるので、細胞分類に適用できる画像処理技術は多くの場合、組織サンプルの画像をセグメント化し、そのセグメントを分類するのに適用できない。
【0028】
これらの特徴および他の特徴は、以下により詳細に記載される。
【0029】
図1は、例示的なセグメンテーションシステム100を示す。セグメンテーションシステム100は、以下に説明するシステム、構成要素、および技術が実施される1つまたは複数の場所にある1つまたは複数のコンピュータ上で、コンピュータプログラムとして実施されるシステムの一例である。
【0030】
セグメンテーションシステム100は、組織サンプルの拡大画像102を処理して、画像102のセグメンテーション104を、それぞれの組織クラス、例えば、がん性および非がん性組織クラスに生成するように構成される。
【0031】
画像102は、例えば、顕微鏡スライドに取り付けられた組織サンプルのホールスライドイメージ(WSI)であり得、ここでWSIは、光学顕微鏡を使用して生成され、デジタルカメラを使用して取り込まれる。画像102は、様々な方法のいずれかで表すことができ、例えば、ピクセルの二次元(2-D)アレイとして表すことができ、ここで各ピクセルは、ピクセルの外観を特徴付ける数値のベクトル、例えば、ピクセルの赤-緑-青(RGB)色を定める3-Dベクトルと関連付けられる。画像102を表すピクセルのアレイは、例えば、105×105ピクセルのオーダーの寸法を有することができ、数ギガバイト(GB)のメモリを占有し得る。システム100は、様々な方法のいずれかで、例えば、システム100によって利用可能となるユーザインターフェースを使用したシステムのユーザからのアップロードとして、画像102を受け取り得る。
【0032】
機械学習モデル106は、一セットのモデルパラメータ108の現行値に従って、画像102、画像102から導出される特徴、またはその両方を処理して、画像102の各ピクセルに対応するそれぞれの組織クラスを指定する画像102の自動セグメンテーション110を生成するように構成される。機械学習モデル106は、例えば、ニューラルネットワークモデル、ランダムフォレストモデル、サポートベクターマシンモデル、または線形モデルであり得る。一例では、機械学習モデルは、画像102を受け取る入力層、漸進的により高い抽象化レベルで画像の代替表現を生成するように画像を処理する一セットの畳み込み層、およびソフトマックス出力層を有する畳み込みニューラルネットワークであり得る。別の例では、機械学習モデルは、ピクセルの組織クラスを指定する出力を生成するために、画像102の各ピクセルのそれぞれの特徴表現を処理するように構成されたランダムフォレストモデルであり得る。この例では、ピクセルの特徴表現は、ピクセルの外観を特徴付ける数値(例えば、数値のベクトル)の順序付けられた集合を指す。特徴表現は、例えば、配向勾配ヒストグラム(HOG:histogram of oriented gradient)特徴、高速化ロバスト特徴(SURF:speeded up robust features)、またはスケール不変特徴変換(SIFT:scale-invariant feature transform)特徴を使用して生成され得る。
【0033】
モデルパラメータ108は、機械学習モデル106のトレーニング中に学習され、画像102の自動セグメンテーション110を生成するために機械学習モデル106によって実行される動作を指定する数値の集合である。例えば、機械学習モデル106は、ニューラルネットワークである場合、モデルパラメータ108がニューラルネットワークの各層の重み値、例えば、ニューラルネットワークの各畳み込み層の畳み込みフィルタの重み値を指定し得る。(ニューラルネットワークの所与の層に対する重み値は、所与の層のニューロンとニューラルネットワークの前の層のニューロンとの間の接続に関連する値を指し得る)。別の例として、機械学習モデル106がランダムフォレストモデルである場合、モデルパラメータ108は、ランダムフォレストの各決定木の各ノードで使用されるそれぞれの分岐関数のパラメータ値を指定し得る。別の例として、機械学習モデル106が線形モデルである場合、モデルパラメータ108は、線形モデルの係数を指定し得る。
【0034】
システム100は、ユーザインターフェース112のディスプレイデバイス上に画像102および画像の自動セグメンテーション110を表示する。例えば、システム100は、
図2を参照して図示したように、画像102上へオーバーレイされた自動セグメンテーション110を描写する視覚化したものを表示し得る。ユーザインターフェース112は、任意の適切な種類のディスプレイデバイス、例えば、液晶ディスプレイ(LCD)を有し得る。
【0035】
ユーザインターフェース112は、システムのユーザ(例えば病理学者)が画像102および自動セグメンテーション110を視認することを可能にし、かつ、自動セグメンテーション110に1つまたは複数の修正を指定することによって、必要に応じて自動セグメンテーション110を編集することを可能にする。自動セグメンテーション110を修正することは、自動セグメンテーション110によって指定された組織クラスを、画像102の1つまたは複数のピクセルに対して別の組織クラスに変更することを指す。概して、ユーザは、自動セグメンテーション110を編集して、自動セグメンテーション110におけるいかなるエラーも補正することができる。例えば、ユーザインターフェース112は、デフォルトの組織クラス(例えば、非がん性組織)を有するものとして領域を再ラベル付けすることによって、自動セグメンテーションにより特定の組織クラス(例えば、がん性組織)を有するものとして指定される画像の領域を、ユーザが「選択解除」することを可能にし得る。別の例として、ユーザインターフェース112は、ユーザが画像の領域を「選択」し、特定の組織クラス(例えば、がん性組織)を有するものとしてその領域をラベル付けすることを可能にし得る。別の例として、ユーザインターフェース112は、ユーザが特定の組織クラスを有するものとしてラベル付けされた画像の領域を変更することを可能にし得る。領域の変更は、例えば、領域を取り囲む多角形のコーナーをドラッグすることによって実行することができる。
【0036】
ユーザは、例えば、コンピュータマウス、タッチスクリーン、またはその両方を使用して様々な方法のいずれかで、自動セグメンテーション110を編集するために、ユーザインターフェース112とインタラクションし得る。例えば、画像の領域を選択し、その領域を、組織クラスを有するものとしてラベル付けするために、ユーザはカーソルを使用して、画像の領域の周辺に閉ループを描き、次いで、ドロップダウンメニューから所望の組織クラスを選択し得る。ユーザは、ユーザインターフェースに適切な入力を提供する(例えば、「完了」ボタンをクリックする)ことによって、自動セグメンテーションの編集が完了し、その時点で、編集されたセグメンテーション114(すなわち、ユーザによってレビューされ、場合によっては修正されたもの)が出力として提供されることを示し得る。例えば、出力セグメンテーション104は、患者識別子に関連して医療記録データストアに記憶され得る。
【0037】
編集されたセグメンテーション114を出力として提供することに加えて、システム100は編集されたセグメンテーション114を使用して、(i)画像、および(ii)編集されたセグメンテーション114を指定するトレーニング標本を生成し、トレーニング標本を一セットのトレーニングデータ116に記憶もし得る。概して、トレーニングデータ116は、複数のトレーニング標本(すなわち、各々がそれぞれの画像および編集されたセグメンテーションを指定するもの)を記憶し、ユーザが新しい画像の編集されたセグメンテーションを生成するにつれて、やがて継続的に増大され得る。システム100は、トレーニングエンジン118を使用して、モデルパラメータ108を更新することによってトレーニングデータ116上で機械学習モデル106を繰り返しトレーニングするが、これは機械学習モデル106がトレーニングデータ116によって指定される編集されたセグメンテーションに一致する自動セグメンテーションを生成することを促すためである。
【0038】
トレーニングエンジン118は、トレーニング基準が満たされるときはいつでも、トレーニングデータ116上で機械学習モデル106をトレーニングし得る。例えば、トレーニングエンジン118は、予め定義された数の新しいトレーニング標本がトレーニングデータ116に追加されるたびに、機械学習モデル106をトレーニングし得る。別の例として、トレーニングエンジン118は、機械学習モデル106がユーザによって指定された対応する編集されたセグメンテーション114とは実質的に異なる自動セグメンテーション110を生成するたびに、機械学習モデル106をトレーニングし得る。この例では、トレーニングエンジン118は、自動セグメンテーション110と編集されたセグメンテーション114との間の実質的な差を、機械学習モデル106が画像を正しくセグメント化することができず、エラーの繰り返しを回避するようにトレーニングされるべきであるというキューとして使用し得る。トレーニングエンジン118は、セグメンテーション間の類似尺度(例えば、Jaccard係数の類似尺度)が予め定義された閾値を満たさない場合、2つのセグメンテーションが実質的に異なると決定し得る。
【0039】
トレーニングエンジン118がトレーニングデータ116上で機械学習モデル106をトレーニングする方法は、機械学習モデル106の形態に依存する。ある場合には、トレーニングエンジン118がモデルパラメータ108の現行値に対する調整を決定することによって、機械学習モデル106をトレーニングし得る。他の場合には、トレーニングエンジン118は、機械学習モデル106がトレーニングされるたびに、モデルパラメータ108をデフォルト値、例えば、予め定義された確率分布、例えば、標準正規分布からサンプリングされる値に初期化することによって開始し得る。
【0040】
一例として、機械学習モデル106がニューラルネットワークモデルであり、トレーニングエンジン118が確率的勾配降下法の1つまたは複数を繰り返し使用してニューラルネットワークモデルをトレーニングする場合を考える。この例では、各反復において、トレーニングエンジン118は、例えば、予め定義された数のトレーニング標本をランダムに選択することによって、トレーニングデータ116からトレーニング標本の「バッチ」(セット)を選択する。トレーニングエンジン118は、各選択されたトレーニング標本から、モデルパラメータ108の現行値に従って機械学習モデル106を使用して画像102を処理して、対応する自動セグメンテーションを生成する。トレーニングエンジン118は、モデルパラメータ108に対する目的関数の勾配を決定し、ここで目的関数は、(i)機械学習モデル106によって生成された自動セグメンテーション、と(ii)トレーニング標本によって指定された、編集されたセグメンテーションとの間の類似性を測定する。次に、トレーニングエンジン118は、目的関数の勾配を使用して、機械学習モデル106のモデルパラメータ108の現行値を調整する。目的関数は、例えば、ピクセルワイズな交差エントロピーの目的関数であり得、トレーニングエンジン118はバックプロパゲーション法を使用して勾配を決定し得、トレーニングエンジン118は、例えば、AdamまたはRMSpropのような任意の適切な勾配降下法を使用して、モデルパラメータ108の現行値を調整し得る。
【0041】
任意選択で、トレーニングエンジン118は、ごく最近生成されたトレーニング標本上で、すなわち、各トレーニング標本を等しく扱うのではなく、機械学習モデル106を優先的にトレーニングし得る。例えば、トレーニングエンジン118は、トレーニングデータ116からサンプリングされたトレーニング標本上で機械学習モデル106をトレーニングし得、ここで、ごく最近生成されたトレーニング標本は、古くなったトレーニング標本よりもサンプリングされる可能性が高い。ごく最近生成されたトレーニング標本上で機械学習モデル106を優先的にトレーニングすることにより、機械学習モデル106が古くなったトレーニング標本から取得される洞察を維持しながら、より新しいトレーニング標本からの学習に集中することを可能にできる。
【0042】
概して、システム100は、機械学習モデル106をトレーニングして、システム100のユーザ、例えば、病理学者によって指定される編集されたセグメンテーション114に一致する自動セグメンテーション110を生成する。しかしながら、特定のユーザは、精度に関して、機械学習モデル106によって生成された自動セグメンテーションをレビューし編集する際に、他のユーザよりも熟練している場合がある。例えば、経験豊富な病理学者は、若い病理学者よりも、複雑で不明瞭な組織サンプルのセグメンテーションをレビューし編集する際に、より高い精度を達成し得る。いくつかの実施態様では、システム100の各ユーザは、セグメンテーションをレビューし編集する際に、ユーザの予測されたスキルを特徴付ける「専門知識」スコアに関連付けられ得る。これらの実施態様では、機械学習モデル106は、十分に高い専門知識スコア、例えば、所定の閾値を満たす専門知識スコアを有するユーザによって生成される編集されたセグメンテーションのみを使用してトレーニングされ得る。ユーザの専門知識スコアを決定するための例示的なプロセスは、
図4を参照してより詳細に記載される。
【0043】
セグメンテーションを生成したユーザの専門知識スコアに基づいて、編集されたセグメンテーション上で機械学習モデル106をトレーニングするかどうかを決定することは、トレーニングデータの品質を向上することによって、機械学習モデル106のパフォーマンスを向上することができる。任意選択で、システム100のユーザは、機械学習モデル106をトレーニングするために使用されるセグメンテーションを提供するために補償され得る(例えば、財政的にまたは他の方法で)。一例では、ユーザに提供される報酬の量が、ユーザの専門知識スコア次第であり得、高い専門知識スコアをもつユーザは、低い専門知識スコアをもつユーザよりも多くの報酬を受け取り得る。
【0044】
任意選択で、システム100は、システムの様々な構成要素が互いから遠く離れて実施され、データ通信ネットワーク、例えば、インターネット上で通信する分散システムであり得る。例えば、ユーザインターフェース112(ディスプレイデバイスを含む)は、臨床環境(例えば、病院)で実施され得、一方、機械学習モデル106およびトレーニングエンジン118は、リモートデータセンタで実施され得る。
【0045】
任意選択で、システム100のユーザに、機械学習モデル106を無効にするオプションを提供し得る。このオプションが選択された場合、ユーザは画像102をロードし、機械学習モデル106を使用せずに手動でセグメント化することができる。
【0046】
図2は、組織サンプルの拡大画像200の図であり、ここで領域202-A~E(および領域202-A~Eの外側の画像の部分)は、それぞれの組織クラスに対応する。
【0047】
図3は、組織サンプルの拡大画像をセグメント化するために機械学習モデルを繰り返しトレーニングするための例示的なプロセス300のフロー図である。便宜上、プロセス300は、1つまたは複数の場所に位置付けられた1つまたは複数のコンピュータのシステムによって実行されるものとして記載される。例えば、本明細書に従って適切にプログラムされたセグメンテーションシステム、例えば、
図1のセグメンテーションシステム100は、プロセス300を実行することができる。
【0048】
システムは、組織サンプルの拡大画像を取得する(302)。例えば、画像は、顕微鏡を使用して生成される患者からの生検サンプルの拡大したホールスライドイメージであり得る。
【0049】
システムは、機械学習モデルのモデルパラメータの現行値に従って、(i)画像、(ii)画像から導出された特徴、または(iii)その両方を含む入力を処理して、一セットの(ターゲット)組織クラスの画像の自動セグメンテーションを生成する(304)。自動セグメンテーションは、画像の各ピクセルに対応するそれぞれの組織クラスを指定する。組織クラスは、がん性組織および非がん性組織を含み得る。機械学習モデルは、ニューラルネットワークモデル、例えば、1つまたは複数の畳み込み層を有する畳み込みニューラルネットワークモデルであり得る。
【0050】
システムは、ユーザインターフェースを通じてユーザに(i)画像、および(ii)画像の自動セグメンテーションを示す(306)。例えば、システムは、ユーザインターフェースのディスプレイデバイスを通じて画像上にオーバーレイされた自動セグメンテーションを描写する視覚化したものを提供し得る。画像上にオーバーレイされた自動セグメンテーションの視覚化したものは、自動セグメンテーションによって線引きされた各領域の予測された組織タイプを示し得る。例えば、視覚化したものは、組織タイプに基づいて領域をカラー化することによって領域の予測された組織タイプを示し得、例えば、がん性組織は赤色にカラー化され、非がん性組織は緑色にカラー化される。
【0051】
システムは、ユーザインターフェースを通じてユーザから画像の自動セグメンテーションに対する1つまたは複数の修正を指定する入力を取得する(308)。自動セグメンテーションに対する各修正は、画像の1つまたは複数のピクセルについて、自動セグメンテーションによってピクセルに対して指定されたそれぞれの組織クラスに変更を示し得る。
【0052】
システムは、画像の編集されたセグメンテーションを決定する(310)。例えば、システムは、ユーザインターフェースを通じてユーザによって指定される修正を画像の自動セグメンテーションに適用することによって、画像の編集されたセグメンテーションを決定することができる。
【0053】
システムは、画像の編集されたセグメンテーションに基づいて、機械学習モデルのモデルパラメータの更新された値を決定する(312)。例えば、システムは、(i)画像の自動セグメンテーションと、(ii)画像の編集されたセグメンテーションとの間の類似性を特徴付ける目的関数の勾配を決定し、次いで、勾配を使用してモデルパラメータの値を調整し得る。場合によっては、システムは、トレーニング基準が満たされたと、例えば、モデルパラメータが最後に更新されてから予め定義された数の新しい編集されたセグメンテーションが生成されたと決定する応答にのみ、機械学習モデルのモデルパラメータの更新された値を決定し得る。モデルパラメータの更新された値を決定した後、システムはステップ302に戻り得る。トレーニング基準が満たされない場合、システムは、機械学習モデルをトレーニングすることなく、ステップ302に戻り得る。
【0054】
図4は、組織サンプルの拡大画像のセグメンテーションをレビューし編集する際のユーザの予測されたスキルを特徴付ける専門知識スコアを決定するための例示的なプロセス400のフロー図である。便宜上、プロセス400は、1つまたは複数の場所に位置付けられた1つまたは複数のコンピュータのシステムによって実行されるものとして記載される。例えば、本明細書に従って適切にプログラムされたセグメンテーションシステム、例えば、
図1のセグメンテーションシステム100は、プロセス400を実行することができる。
【0055】
システムは、ユーザによって生成された1つまたは複数の組織のセグメンテーションを取得する(402)。各組織のセグメンテーションは、組織サンプルの拡大画像に対応し、画像の各ピクセルについてそれぞれの組織クラスを指定する。いくつかの実施態様では、ユーザは、例えば、機械学習モデルによって生成された自動セグメンテーションから開始する利点なしに、一からセグメンテーションを実行し得る。
【0056】
システムは、例えば、病理学の分野において、ユーザの医学的経験を特徴付ける1つまたは複数の特徴を取得する(404)。例えば、システムは、病理学の分野におけるユーザの経験年数、病理学の分野におけるユーザの学術出版物の数、病理学の分野におけるユーザの学術出版物の引用数、ユーザの学業成績(例えば、医学部での)、およびユーザによって現在保持されている地位(例えば、主治医)のうち1つまたは複数を特徴付ける特徴を取得し得る。
【0057】
システムは、(i)ユーザによって生成された組織のセグメンテーション、および(ii)ユーザの医学的経験を特徴付ける特徴に基づいて、ユーザの専門知識スコアを決定する(406)。例えば、システムは、(i)ユーザによって生成されたセグメンテーションと、同一画像の対応する「ゴールドスタンダード」のセグメンテーションとの間の類似尺度、および(ii)ユーザの医学的経験を特徴付ける特徴の関数(例えば、一次関数)として専門知識スコアを決定し得る。画像のゴールドスタンダードセグメンテーションは、組織のセグメンテーションを実行する際に高水準の専門知識を有するとして認められるユーザ(例えば、病理学者)によって生成されるセグメンテーションであり得る。画像の2つのセグメンテーション間の類似尺度は、例えば、Jaccard係数を使用して評価することができる。ユーザの専門知識スコアは、例えば[0,1]の範囲の数値として表し得る。
【0058】
システムは、ユーザに専門知識スコアを提供する(408)。例えば、システムは、ユーザによって生成されたセグメンテーションが、自動的に組織サンプルのセグメンテーションを実行するように、機械学習モデルをトレーニングするために使用されるトレーニングデータに含まれるべきかどうかを決定する際に使用するために、ユーザに専門知識スコアを提供し得る。この例では、ユーザによって生成されたセグメンテーションは、例えば、ユーザの専門知識スコアが閾値を満たした場合にのみ、トレーニングデータに含まれ得る。別の例では、システムは、組織サンプルのセグメンテーションを提供するために、ユーザがどのように補償されるべきか(例えば、財政的に、または他の方法で)を決定する際に、例えば、ここでは高い専門知識スコアを有することで高い報酬がもたらされる際に使用するために、ユーザに専門知識スコアを提供し得る。
【0059】
本明細書では、システムおよびコンピュータプログラムの構成要素に関連して「構成される」という用語を使用する。特定の動作またはアクションを実行するように構成される1つまたは複数のコンピュータのシステムについては、システムは、作動中にシステムに動作またはアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せにインストールされることを意味する。特定の動作またはアクションを実行するように構成される1つまたは複数のコンピュータプログラムについては、1つまたは複数のプログラムは、データ処理装置によって実行されたとき、装置に動作またはアクションを実行させる命令を含むことを意味する。
【0060】
本明細書に記載される主題および機能的動作の実施形態は、デジタル電子回路、有形に具現化されたコンピュータソフトウェアもしくはファームウェア、本明細書に開示された構造およびそれらの構造的均等物を含むコンピュータハードウェア、またはそれらの1つまたは複数の組合せで実施することができる。本明細書で記載される主題の実施形態は、1つまたは複数のコンピュータプログラムとして、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、有形の非一時的なストレージ媒体上にコード化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実施することができる。コンピュータストレージ媒体は、機械可読ストレージデバイス、機械可読ストレージ基板、ランダムアクセスメモリデバイスもしくは逐次アクセスメモリデバイス、またはそれらの1つまたは複数の組合せとすることができる。あるいは、またはこれに加えて、プログラム命令は、人工的に生成された伝搬信号、例えば、機械で生成された電気的、光学的、または電磁気的信号上にコード化され、伝搬信号は、データ処理装置による実行のために、好適な受信装置に伝達するための情報をコード化するように生成することができる。
【0061】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラマブルプロセッサ(例えば、中央処理装置(CPU:central processing unit)、グラフィックスプロセシングユニット(GPU:graphics processing unit))、コンピュータ、または複数のプロセッサまたはコンピュータを含む、データを処理するためのあらゆる装置、デバイス、および機械を包含する。装置はまた、専用論理回路、例えばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)とすることができるか、または更に含むことができる。装置は、ハードウェアに加えて、コンピュータプログラムの実行環境を構築するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの1つまたは複数の組合せを構成するコードを任意選択で含むことができる。
【0062】
コンピュータプログラムは、プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、またはコードと称されまたは記載され得、コンパイル型言語もしくはインタープリタ型言語、または宣言型言語もしくは手続き型言語を含む、任意の形式のプログラミング言語で書くことができ、かつ、スタンドアロンプログラムとして、または、コンピューティング環境での使用に適したモジュール、構成要素、サブルーチン、または他のユニットとして含む、任意の形式で展開することができる。プログラムは、ファイルシステム内のファイルに対応し得るが、その必要はない。プログラムは、他のプログラムまたはデータを保持するファイルの一部に記憶されることができ、例えば、マークアップ言語のドキュメント、問題のプログラム専用の単一ファイル、または複数の調整されたファイル、例えば、1つもしくは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイルに1つまたは複数のスクリプトを記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置付けられるか、もしくは複数のサイトに渡って分散され、データ通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開することができる。
【0063】
本明細書では、「エンジン」という用語は、1つまたは複数の特定の機能を実行するようにプログラムされたソフトウェアベースのシステム、サブシステム、またはプロセスを指すために広く使用される。概して、エンジンは、1つまたは複数の場所にある1つまたは複数のコンピュータにインストールされた1つもしくは複数のソフトウェアモジュールまたは構成要素として実施される。場合によっては、1つまたは複数のコンピュータが特定のエンジン専用になることがあり、他の場合では、複数のエンジンを、同一のコンピュータまたは複数のコンピュータにインストールし、動かすことができる。
【0064】
本明細書に記載のプロセスおよび論理フローは、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラマブルコンピュータによって実行されて、入力データに対して動作し、出力を生成することによって機能を実行することができる。プロセスおよび論理フローは、専用論理回路、例えばFPGAもしくはASICによって、または専用論理回路と1つまたは複数のプログラムされたコンピュータとの組合せによっても実行することができる。
【0065】
コンピュータプログラムの実行に好適なコンピュータは、汎用もしくは専用マイクロプロセッサもしくはその両方、または任意の他の種類の中央処理装置をベースとすることができる。概して、中央処理装置は、読み出し専用メモリもしくはランダムアクセスメモリ、またはその両方から命令およびデータを受け取る。コンピュータの必須要素は、命令を実行または実行するための中央処理装置、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。中央処理装置およびメモリは、専用論理回路によって補われ得るか、または専用論理回路に組み込まれ得る。概して、コンピュータはまた、データを記憶するための1つもしくは複数の大容量ストレージデバイス、例えば、磁気、光磁気ディスク、もしくは光ディスクを含むか、もしくはそれらからデータを受け取るかもしくはそれらにデータを転送するように動作可能に接続されるか、またはその両方である。しかしながら、コンピュータはそのようなデバイスを有する必要はない。更に、コンピュータは、ほんの数例を挙げると、別のデバイス、例えば、携帯電話、携帯情報端末(PDA:personal digital assistant)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、グローバルポジショニングシステム(GPS:Global Positioning System)受信機、または携帯ストレージデバイス、例えば、ユニバーサルシリアルバス(USB:universal serial bus)フラッシュドライブに埋め込むことができる。
【0066】
コンピュータプログラム命令およびデータを記憶するのに好適なコンピュータ可読媒体には、例としては、半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、例えば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体およびメモリデバイスが含まれる。
【0067】
ユーザとのインタラクションを提供するために、本明細書に記載される主題の実施形態は、ユーザに情報を表示するためのディスプレイデバイス、例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス、例えば、マウスまたはトラックボールを有するコンピュータ上で実施することができる。他の種類のデバイスを使用して、ユーザとのインタラクションを提供することもでき、例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなどの任意の形態の感覚フィードバックとすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形態で受け取ることができる。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送り、かつデバイスからドキュメントを受け取ることによって、ユーザとインタラクションすることができ、例えば、ウェブブラウザから受け取った要求に応じて、ユーザのデバイス上のウェブブラウザにウェブページを送ることによって、ユーザとインタラクションすることができる。また、コンピュータは、テキストメッセージまたは他の形式のメッセージをパーソナルデバイス、例えば、メッセージングアプリケーションを動かしているスマートフォンに送り、その代わりにユーザから応答メッセージを受け取ることによって、ユーザとインタラクションすることができる。
【0068】
機械学習モデルを実施するためのデータ処理装置はまた、例えば、機械学習トレーニングまたはプロダクション、すなわち推論、ワークロードの共通部分および計算集約的な部分を処理するための専用ハードウェアアクセラレータユニットを含むことができる。
【0069】
機械学習モデルは、機械学習フレームワーク、例えば、TensorFlowフレームワーク、Microsoft Cognitive Toolkitフレームワーク、Apache Singaフレームワーク、またはApache MXNetフレームワークを使用して実施および展開することができる。
【0070】
本明細書に記載される主題の実施形態は、バックエンド構成要素、例えば、データサーバとして含むコンピュータシステム、または、ミドルウェア構成要素、例えば、アプリケーションサーバを含むコンピュータシステム、または、フロントエンド構成要素、例えば、ユーザが本明細書に記載される主題の実施態様とインタラクションすることができるグラフィカルユーザインターフェース、ウェブブラウザ、もしくはアプリを有するクライアントコンピュータ、もしくは1つまたは複数のこのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組合せを含むコンピュータシステムで実施することができる。システムの構成要素は、デジタルデータ通信の任意の形式または媒体、例えば、通信ネットワークによって相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)、例えばインターネットが含まれる。
【0071】
コンピュータシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、概して、互いに離れており、典型的には通信ネットワークを通じてインタラクションする。クライアントとサーバの関係は、それぞれのコンピュータ上で動き、かつ、クライアント-サーバ関係を互いに有するコンピュータプログラムに基づいて生じる。いくつかの実施形態では、サーバは、例えば、クライアントとして機能する、デバイスとインタラクションするユーザにデータを表示したり、ユーザの入力を受け取ったりする目的で、データ、例えばHTMLページをユーザのデバイスに送る。ユーザのデバイスで生成されたデータ、例えば、ユーザインタラクションの結果は、デバイスからサーバで受け取ることができる。
【0072】
本明細書は多くの特定の実施態様の詳細を含むが、これらは任意の発明の範囲または特許請求され得るものの範囲に対する限定として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。別々の実施形態の文脈で本明細書に記載されるある特徴は、単一の実施形態において組み合わせて実施されることもできる。逆に、単一の実施形態の文脈で記載される様々な特徴は、複数の実施形態で別々に、または任意の好適なサブコンビネーションで実施することもできる。更に、特徴はある組合せで機能するものとして上記で記載され得、そのようなものとして最初に特許請求されてもよいが、特許請求される組合せからの1つまたは複数の特徴は、場合によってはその組合せから削除できて、特許請求される組合せは、サブコンビネーションまたはサブコンビネーションの変形例を目的し得る。
【0073】
同様に、動作は図面に示され、特定の順序で特許請求の範囲に列挙されているが、これは望ましい結果を達成するために、そのような動作が示された特定の順序で、もしくは連続した順序で実行されること、または図示されたすべての動作が実行されることを必要とするものとして理解されるべきではない。ある状況では、マルチタスキングおよび並列処理は、有利であり得る。更に、上記の実施形態における様々なシステムモジュールおよび構成要素の区別は、すべての実施形態においてそのような区別を必要とするものとして理解されるべきではなく、記載されたプログラム構成要素およびシステムは、概して、単一のソフトウェア製品に共に統合されるか、または複数のソフトウェア製品にパッケージ化されることができることを理解されたい。
【0074】
主題の特定の実施形態を記載してきた。他の実施形態は、以下の特許請求の範囲内にある。例えば、特許請求の範囲に列挙したアクションは、異なる順序で実行することができ、依然として望ましい結果を達成することができる。一例として、添付の図面に描かれるプロセスは、所望の結果を達成するために、示される特定の順序、または連続した順序を必ずしも必要としない。場合によっては、マルチタスキングおよび並列処理は、有利であり得る。