(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-02-25
(45)【発行日】2025-03-05
(54)【発明の名称】部分ボリュームからの心腔の再構成
(51)【国際特許分類】
G06T 15/08 20110101AFI20250226BHJP
A61B 6/03 20060101ALI20250226BHJP
【FI】
G06T15/08
A61B6/03 560G
A61B6/03 577
【外国語出願】
(21)【出願番号】P 2020072133
(22)【出願日】2020-04-14
【審査請求日】2023-02-16
(32)【優先日】2019-04-15
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】511099630
【氏名又は名称】バイオセンス・ウエブスター・(イスラエル)・リミテッド
【氏名又は名称原語表記】Biosense Webster (Israel), Ltd.
(74)【代理人】
【識別番号】100130384
【氏名又は名称】大島 孝文
(72)【発明者】
【氏名】リオール・ザール
(72)【発明者】
【氏名】ベンジャミン・コーエン
(72)【発明者】
【氏名】ナタン・シャロン・カッツ
【審査官】橘 高志
(56)【参考文献】
【文献】特開2018-102922(JP,A)
【文献】特開2018-079323(JP,A)
【文献】特表2008-546464(JP,A)
【文献】特開2004-097535(JP,A)
【文献】米国特許出願公開第2014/0225887(US,A1)
【文献】米国特許出願公開第2015/0024337(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/08
A61B 6/03
(57)【特許請求の範囲】
【請求項1】
システムであって、
モニタと、
プロセッサであって、
複数の第1のボクセルのそれぞれに、解剖学的空洞内の複数の位置の各座標をマッピングすることと、
前記複数の第1のボクセルのそれぞれに、第1の値f(0)を割り当てることであって、
f(n)は、0からMまでの、0およびMを含めた各整数nに対して定義された単調関数であり、Mは所定の正の整数である、ことと、
前記複数の第1のボクセルのうちの最も近いボクセルからの距離がそれぞれ1≦d(v
i)≦Mボクセルである複数の第2のボクセル{v
i}に、それぞれの第2の値{f(d(v
i))}を割り当てることによって、前記複数の第2のボクセルに値を付与することと、
前記複数の第2のボクセルに値を付与した後に、前記複数の第2のボクセルのうちの少なくとも一部の各ボクセルに、前記ボクセルのうち複数の隣接ボクセルのそれぞれの値の加重平均を反復的に割り当てることによって、前記複数の第2のボクセルに反復的に値を再付与することであって、
前記加重平均において、値を付与された前記複数の第2のボクセルの値のうちでf(M)との差が第1の所定のしきい値Δ以下である任意の値に、値を付与された前記複数の第2のボクセルの値のうちの任意の他の値よりも高い重みが与えられる、ことと、
前記複数の第2のボクセルに反復的に値を再付与することに続いて、前記複数の第2のボクセルのうちで、それぞれの値のf(M)との差が第2の所定のしきい値よりも大きいサブセットを特定することと、
メッシュ生成アルゴリズムを、前記複数の第1のボクセルと、前記複数の第2のボクセルの前記サブセットとを含むボリュームに適用することによって、前記ボリュームの表面を表すメッシュを生成することと、
前記モニタ上に前記メッシュを表示することと、
を行うように構成されたプロセッサと、
を備えるシステム。
【請求項2】
前記ボリュームが、前記複数の第1のボクセルと前記複数の第2のボクセルの前記サブセットとからなる、請求項1に記載のシステム。
【請求項3】
前記メッシュ生成アルゴリズムがマーチングキューブアルゴリズムである、請求項1に記載のシステム。
【請求項4】
f(n)がドメイン[0,M]にわたって単調減少している、請求項1に記載のシステム。
【請求項5】
f(M)=0であり、f(M-1)=Δである、請求項4に記載のシステム。
【請求項6】
ドメイン[0,M-3]の任意の整数n
0について、f(n
0+1)は、f(n
0)の所定の割合である、請求項1に記載のシステム。
【請求項7】
前記プロセッサは、各j番目の反復において、前記複数の第2のボクセルのうちでd(v
i)=jであるボクセルに値を付与することにより、M回の反復にわたって前記複数の第2のボクセルに値を付与するように構成されている、請求項1に記載のシステム。
【請求項8】
前記プロセッサは、複数の並列な実行スレッドを使用して前記複数の第2のボクセルに値を付与するように構成されている、請求項7に記載のシステム。
【請求項9】
前記プロセッサは、複数の並列な実行スレッドを使用して前記複数の第2のボクセルに値を再付与するように構成されている、請求項1に記載のシステム。
【請求項10】
方法であって、
複数の第1のボクセルのそれぞれに、解剖学的空洞内の複数の位置の各座標をマッピングすることと、
前記複数の第1のボクセルのそれぞれに、第1の値f(0)を割り当てることであって、
f(n)は、0からMまでの、0およびMを含めた各整数nに対して定義された単調関数であり、Mは所定の正の整数である、ことと、
前記複数の第1のボクセルのうちの最も近いボクセルからの距離がそれぞれ1≦d(v
i)≦Mボクセルである複数の第2のボクセル{v
i}に、それぞれの第2の値{f(d(v
i))}を割り当てることによって、前記複数の第2のボクセルに値を付与することと、
前記複数の第2のボクセルに値を付与した後に、前記複数の第2のボクセルのうちの少なくとも一部の各ボクセルに、前記ボクセルのうち複数の隣接ボクセルのそれぞれの値の加重平均を反復的に割り当てることによって、前記複数の第2のボクセルに反復的に値を再付与することであって、
前記加重平均において、値を付与された前記複数の第2のボクセルの値のうちでf(M)との差が第1の所定のしきい値Δ以下である任意の値に、値を付与された前記複数の第2のボクセルの値のうちの任意の他の値よりも高い重みが与えられる、ことと、
前記複数の第2のボクセルに反復的に値を再付与することに続いて、前記複数の第2のボクセルのうちで、それぞれの値のf(M)との差が第2の所定のしきい値よりも大きいサブセットを特定することと、
メッシュ生成アルゴリズムを、前記複数の第1のボクセルと、前記複数の第2のボクセルの前記サブセットとを含むボリュームに適用することによって、前記ボリュームの表面を表すメッシュを生成することと、
を含む方法。
【請求項11】
前記ボリュームが、前記複数の第1のボクセルと前記複数の第2のボクセルの前記サブセットとからなる、請求項10に記載の方法。
【請求項12】
前記解剖学的空洞が心腔を含む、請求項10に記載の方法。
【請求項13】
前記メッシュ生成アルゴリズムがマーチングキューブアルゴリズムである、請求項10に記載の方法。
【請求項14】
f(n)がドメイン[0,M]にわたって単調減少している、請求項10に記載の方法。
【請求項15】
f(M)=0であり、f(M-1)=Δである、請求項14に記載の方法。
【請求項16】
ドメイン[0,M-3]の任意の整数n
0について、f(n
0+1)は、f(n
0)の所定の割合である、請求項10に記載の方法。
【請求項17】
前記複数の第2のボクセルに値を付与することが、各j番目の反復において、前記複数の第2のボクセルのうちでd(v
i)=jであるボクセルに値を付与することにより、M回の反復にわたって前記複数の第2のボクセルに値を付与することを含む、請求項10に記載の方法。
【請求項18】
前記複数の第2のボクセルに値を付与することが、複数の並列な実行スレッドを使用して前記複数の第2のボクセルに値を付与することを含む、請求項17に記載の方法。
【請求項19】
前記複数の第2のボクセルに値を再付与することが、複数の並列な実行スレッドを使用して前記複数の第2のボクセルに値を再付与することを含む、請求項10に記載の方法。
【請求項20】
コンピュータ
プログラムであって、前記
プログラムがプロセッサによって読み取られると、前記プロセッサに、
複数の第1のボクセルのそれぞれに、解剖学的空洞内の複数の位置の各座標をマッピングすることと、
前記複数の第1のボクセルのそれぞれに、第1の値f(0)を割り当てることであって、
f(n)は、0からMまでの、0およびMを含めた各整数nに対して定義された単調関数であり、Mは所定の正の整数である、ことと、
前記複数の第1のボクセルのうちの最も近いボクセルからの距離がそれぞれ1≦d(v
i)≦Mボクセルである複数の第2のボクセル{v
i}に、それぞれの第2の値{f(d(v
i))}を割り当てることによって、前記複数の第2のボクセルに値を付与することと、
前記複数の第2のボクセルに値を付与した後に、前記複数の第2のボクセルのうちの少なくとも一部の各ボクセルに、前記ボクセルのうち複数の隣接ボクセルのそれぞれの値の加重平均を反復的に割り当てることによって、前記複数の第2のボクセルに反復的に値を再付与することであって、
前記加重平均において、値を付与された前記複数の第2のボクセルの値のうちでf(M)との差が第1の所定のしきい値Δ以下である任意の値に、値を付与された前記複数の第2のボクセルの値のうちの任意の他の値よりも高い重みが与えられる、ことと、
前記複数の第2のボクセルに反復的に値を再付与することに続いて、前記複数の第2のボクセルのうちで、それぞれの値のf(M)との差が第2の所定のしきい値よりも大きいサブセットを特定することと、
メッシュ生成アルゴリズムを、前記複数の第1のボクセルと前記複数の第2のボクセルの前記サブセットとを含むボリュームに適用することによって、前記ボリュームの表面を表すメッシュを生成することと、
を行わせる、
コンピュータ
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータモデリングの分野に関する。
【背景技術】
【0002】
一部の医療用途においては、心臓の心腔などの解剖学的構造のメッシュモデルを構築する必要がある。
【0003】
参照により本明細書に組み込まれるLorensen,William E.,and Cline,Harvey E.,「Marching cubes:a high resolution 3D surface construction algorithm,」ACM SIGGRAPH computer graphics,Vol.21,No.4,ACM,1987は、3D医療データから均一な表面密度の三角形モデルを作成する「マーチングキューブ」と呼ばれるアルゴリズムを提供する。
【発明の概要】
【課題を解決するための手段】
【0004】
本発明の幾つかの実施形態によれば、モニタおよびプロセッサを含むシステムが提供される。プロセッサは、複数の第1のボクセルのそれぞれに、解剖学的空洞内の複数の位置の各座標をマッピングすることと、複数の第1のボクセルのそれぞれに第1の値f(0)を割り当てるように構成されており、f(n)は、0からMまでの、0およびMを含めた各整数nに対して定義された単調関数であり、Mは所定の正の整数である。プロセッサは、複数の第1のボクセルのうちの最も近いボクセルからの距離がそれぞれ1≦d(vi)≦Mボクセルである複数の第2のボクセル{vi}に、それぞれの第2の値{f(d(vi))}を割り当てることによって、複数の第2のボクセルに値を付与するように更に構成されている。プロセッサは、複数の第2のボクセルに値を付与した後に、複数の第2のボクセルのうちの少なくとも一部の各ボクセルに、このボクセルのうち複数の隣接ボクセルのそれぞれの値の加重平均を反復的に割り当てることによって、複数の第2のボクセルに反復的に値を再付与し、この加重平均において、これらの値のうちでf(M)との差が第1の所定のしきい値Δ以下である任意の値に、これらの値のうちの任意の他の値よりも高い重みが与えられるように更に構成されている。プロセッサは、複数の第2のボクセルに反復的に値を再付与することに続いて、複数の第2のボクセルのうちで、それぞれの値のf(M)との差が第2の所定のしきい値よりも大きいサブセットを特定するように更に構成されている。プロセッサは、メッシュ生成アルゴリズムを、複数の第1のボクセルと複数の第2のボクセルのサブセットとを含むボリュームに適用することによって、ボリュームの表面を表すメッシュを生成し、このメッシュをモニタ上に表示するように更に構成されている。
【0005】
幾つかの実施形態では、ボリュームは、複数の第1のボクセルと、複数の第2のボクセルのサブセットとからなる。
【0006】
幾つかの実施形態では、メッシュ生成アルゴリズムは、マーチングキューブアルゴリズムである。
【0007】
幾つかの実施形態では、f(n)は、ドメイン[0,M]にわたって単調減少している。
【0008】
幾つかの実施形態では、f(M)=0であり、f(M-1)=Δである。
【0009】
幾つかの実施形態では、ドメイン[0,M-3]の任意の整数n0について、f(n0+1)は、f(n0)の所定の割合である。
【0010】
幾つかの実施形態では、プロセッサは、各j番目の反復において、複数の第2のボクセルのうちでd(vi)=jであるボクセルに値を付与することにより、M回の反復にわたって複数の第2のボクセルに値を付与するように構成されている。
【0011】
幾つかの実施形態では、プロセッサは、複数の並列な実行スレッドを使用して複数の第2のボクセルに値を付与するように構成されている。
【0012】
幾つかの実施形態では、プロセッサは、複数の並列な実行スレッドを使用して複数の第2のボクセルに値を再付与するように構成されている。
【0013】
本発明の幾つかの実施形態によれば、複数の第1のボクセルのそれぞれに、解剖学的空洞内の複数の位置の各座標をマッピングすることと、複数の第1のボクセルのそれぞれに、第1の値f(0)を割り当てることであって、f(n)は、0からMまでの、0およびMを含めた各整数nに対して定義された単調関数であり、Mは所定の正の整数であることと、を含む方法が更に提供される。本方法は、複数の第1のボクセルのうちの最も近いボクセルからの距離がそれぞれ1≦d(vi)≦Mボクセルである複数の第2のボクセル{vi}に、それぞれの第2の値{f(d(vi))}を割り当てることによって、複数の第2のボクセルに値を付与することを更に含む。本方法は、複数の第2のボクセルに値を付与した後に、複数の第2のボクセルのうちの少なくとも一部の各ボクセルに、このボクセルのうち複数の隣接ボクセルのそれぞれの値の加重平均を反復的に割り当てることによって、複数の第2のボクセルに反復的に値を再付与することを更に含み、この加重平均において、これらの値のうちでf(M)との差が第1の所定のしきい値Δ以下である任意の値に、これらの値のうちの任意の他の値よりも高い重みが与えられる。本方法は、複数の第2のボクセルに反復的に値を再付与することに続いて、複数の第2のボクセルのうちで、それぞれの値のf(M)との差が第2の所定のしきい値よりも大きいサブセットを特定することを更に含む。本方法は、メッシュ生成アルゴリズムを、複数の第1のボクセルと、複数の第2のボクセルのサブセットとを含むボリュームに適用することによって、ボリュームの表面を表すメッシュを生成することを更に含む。
【0014】
幾つかの実施形態では、解剖学的空洞は心腔を含む。
【0015】
本発明の一部の実施形態によれば、プログラム命令が記憶されている有形の非一時的コンピュータ可読媒体を含む、コンピュータソフトウェア製品が更に提供される。命令は、プロセッサによって読み取られると、プロセッサに、複数の第1のボクセルのそれぞれに解剖学的空洞内の複数の位置の各座標をマッピングすることと、複数の第1のボクセルのそれぞれに第1の値f(0)を割り当てさせ、f(n)は、0からMまでの、0およびMを含めた各整数nに対して定義された単調関数であり、Mは所定の正の整数である。命令は更に、プロセッサに、複数の第1のボクセルのうちの最も近いボクセルからの距離がそれぞれ1≦d(vi)≦Mボクセルである複数の第2のボクセル{vi}に、それぞれの第2の値{f(d(vi))}を割り当てることによって、複数の第2のボクセルに値を付与させる。命令は更に、プロセッサに、複数の第2のボクセルに値を付与した後に、複数の第2のボクセルのうちの少なくとも一部の各ボクセルに、このボクセルのうち複数の隣接ボクセルのそれぞれの値の加重平均を反復的に割り当てることによって、複数の第2のボクセルに反復的に値を再付与させ、この加重平均において、これらの値のうちでf(M)との差が第1の所定のしきい値Δ以下である任意の値に、これらの値のうちの任意の他の値よりも高い重みが与えられる。命令は更に、プロセッサに、複数の第2のボクセルに反復的に値を再付与することに続いて、複数の第2のボクセルのうちで、それぞれの値のf(M)との差が第2の所定のしきい値よりも大きいサブセットを特定させる。命令は更に、プロセッサに、メッシュ生成アルゴリズムを、複数の第1のボクセルと、複数の第2のボクセルのサブセットとを含むボリュームに適用することによって、ボリュームの表面を表すメッシュを生成させる。
【0016】
本発明は、その実施形態の以下の詳細な説明を図面と併せ読むことによって一層十分な理解がなされるであろう。
【図面の簡単な説明】
【0017】
【
図1】本発明の幾つかの実施形態による、被検者の1つ以上の心腔のメッシュモデルを生成するためのシステムの概略図である。
【
図2】本発明の幾つかの実施形態による、メッシュモデルを生成するための方法のフロー図である。
【
図3】本発明の幾つかの実施形態による、
図2の方法の様々な局面の概略図である。
【
図3-1】本発明の幾つかの実施形態による、
図2の方法の様々な局面の概略図である。
【
図4】本発明の幾つかの実施形態による、ボクセルに反復的に値を付与するための技法の概略図である。
【
図5A】本発明の幾つかの実施形態による、ボクセルに反復的に値を再付与するための技法の概略図である。
【
図5B】本発明の幾つかの実施形態による、ボクセルに反復的に値を再付与するための技法の概略図である。
【発明を実施するための形態】
【0018】
概論
本発明の実施形態は、心腔のメッシュモデル(本明細書では、単に「メッシュ」とも呼ばれる)を構築するための技術を提供する。この技術によれば、カテーテルが心腔内(および任意選択的に、隣接する血管内)で動かされている間、カテーテルの位置は、追跡システムによって継続的に記録される。記録された位置又は「点」のそれぞれは、心腔を表す「ポイントクラウド」に追加される。続いて、複数のボクセルからなるボリュームがポイントクラウドから構築され、次いでメッシュがボリュームから構築される。
【0019】
本発明の実施形態は特に、ボクセルボリューム内の間隙がメッシュの構造を混乱させる場合があるという課題に対処するものある。例えば、上述の背景技術で引用されているマーチングキューブアルゴリズムは、間隙をボリュームの外側に存在するものとして考慮することにより、ボリュームの内側をテッセレーションすることができる。メッシュを構築している間に他のアルゴリズムを使用して間隙を埋めることも可能であるが、これらのアルゴリズムは遅い場合があり、全ての間隙を常に効果的に処理できる訳ではない。
【0020】
この課題に対処するために、本発明の実施形態は、ボリューム内の間隙の大部分又は全てを埋めるための充填アルゴリズムを実行するように構成されたプロセッサを提供する。この充填により、マーチングキューブなどの高速かつ効率的なメッシュ構築アルゴリズムを使用してメッシュを構築することが可能となる。
【0021】
充填アルゴリズムは、(i)本明細書で{vc}と称されるポイントクラウドに含まれる元のボクセル集合と、(ii){vc}に属する最も近いボクセルからの距離がそれぞれMボクセル以下であるその他のボクセル集合{vo}と、を含むボリュームの近傍を演算対象とする。Mは、心腔のサブボリュームを表す各ボクセルと、{vc}に属する最も近いボクセルとの距離がMボクセル未満となるように、十分に大きく選択される。
【0022】
充填アルゴリズムを実行する際に、プロセッサは最初に、{vc}の各ボクセルに値1を、{vo}のボクセルの一部に非ゼロ値を割り当てる。具体的には、プロセッサは、値f(d(vi))を{vo}内の各ボクセルviに割り当て、d(vi)は、viと{vc}内の最も近いボクセルとの距離(ボクセル単位)であり、f(n)は、f(0)=1かつf(M)=0となるようなドメイン[0,M]にわたるnの単調減少関数である。有利には、この値の割り当てを、{vo}に属するボクセルに相互に並列に値を付与することが可能であるように、(例えば、グラフィック処理ユニット(GPU)を使用して)複数の並列な実行スレッド上で実行してもよい。
【0023】
次に、プロセッサは、M未満の距離にある{vo}内のボクセルに反復的に値を再付与する。具体的には、各反復において、これらのボクセルのそれぞれに、その複数の隣接ボクセルの値の加重平均を割り当てる。この加重平均の計算において、全ての非ゼロ値には同じ重みが与えられ、一方、各ゼロ値には、非ゼロ値よりも大幅に大きい重みが与えられる。従って、反復回数が十分に大きい場合には、プロセッサは、心腔の外側に位置するサブボリュームを表すボクセルの全て、又は少なくとも大部分をヌル化する。(上述のように、一般にはMは心腔内のボクセルがゼロ値とならないように十分に大きく、従って心腔内のボクセルはヌル化されない。)有利には、この値再付与は、複数の並列な実行スレッド上で実行されてもよい。
【0024】
続いて、プロセッサは、ボリュームに、ゼロと1との間の所定のしきい値を超える値を有する{vo}内のボクセルのボリュームを結合させる。プロセッサは、このようにしてボリューム内の間隙を充填する。
【0025】
最後に、プロセッサは、充填されたボリューム上で、マーチングキューブなどの高速メッシュ生成アルゴリズムを実行する。メッシュを次にコンピュータスクリーン上に表示してもよい。必要に応じて、電気解剖学的マップを生成するために、メッシュに局所興奮到達時間(LAT)値などの電気生理学的情報を重ねてもよい。
【0026】
本明細書は、主に心臓の心腔に関するものであるが、本明細書に記載される技術を、任意の他の解剖学的構造又は非解剖学的構造をモデル化するために使用してもよいことに留意されたい。例えば、本明細書に記載される技術を、奥行き感知用途で使用してもよい。
【0027】
システムの説明
はじめに
図1を参照するが、
図1は、本発明の幾つかの実施形態による、被検者22の心臓24の1つ以上の心腔のメッシュモデルを生成するためのシステム20の概略図である。
【0028】
図1は、カテーテル26を操作する医師30を示し、カテーテル26の遠位端28は心臓24内に配置されている。医師30が心臓の心腔内でカテーテル26の遠位端28を動かすと、カテーテルの遠位端の位置が、システム20に付随するプロセッサ32によって確認される。
【0029】
例えば、カテーテルの遠位端は、1つ以上の電磁センサを備えることができ、このセンサは、生成された磁場の存在下で、センサのそれぞれの位置を示す信号を出力する。これらの信号は、電気インターフェース34(ポート又はソケットなど)を介してプロセッサ32に受信されてもよい。プロセッサ32が、信号に基づいてカテーテルの遠位端の位置を確認してもよい。
【0030】
代替的に又は追加的に、カテーテルの遠位端は、カテーテル電極を含んでもよく、複数の電極パッチが被検者22の身体に結合されてもよい。カテーテル電極と電極パッチとの間に電圧が印加された時に、カテーテル電極と電極パッチとの間の電流のそれぞれの大きさを測定してもよい。プロセッサが、これらの電流の大きさに基づいてカテーテルの遠位端の位置を確認してもよい。代替的に又は追加的に、任意の他の好適な技術を使用して、カテーテルの遠位端を追跡してもよい。
【0031】
幾つかの実施形態では、システム20はモニタ36を更に含む。医師がカテーテル26を操作する際に、プロセッサ32は、モニタ36の遠位端を表すアイコンを被検者の心臓の画像上に重ねて、医師が遠位端の位置を視覚的に追跡することができるようにしてもよい。代替的に又は追加的に、プロセッサは、(以下に詳細に記載されるように)メッシュモデルの生成に続いて、メッシュモデルをモニタ36上に表示してもよい。
【0032】
一般に、プロセッサ32は、単一のプロセッサとして具現化されてもよいが、連携してネットワーク化された、又はクラスタ化された複数のプロセッサの集合として具現化されてもよい。幾つかの実施形態では、本明細書で説明されるプロセッサ32の機能は、例えば1つ以上の特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)を使用して、ハードウェア内にのみ実装される。他の実施形態では、プロセッサ32の機能は、少なくとも部分的にソフトウェア内に実装される。例えば、幾つかの実施形態では、プロセッサ32は、中央演算処理装置(CPU)、ランダムアクセスメモリ(RAM)、ハードドライブ若しくはCD-ROMドライブなどの不揮発性二次記憶装置、ネットワークインターフェース、および/又は周辺装置を備える、プログラムされたデジタルコンピューティング装置である。任意選択的に、プロセッサ32はGPUを更に備えてもよい。ソフトウェアプログラムを含めたプログラムコード、および/又はデータは、当該技術分野において公知のとおり、CPUおよび/又はGPUによる実行および処理のためにRAMにロードされ、表示、出力、送信又は格納のために結果が生成される。プログラムコードおよび/又はデータは、例えば、ネットワークを通じて電子形式でコンピュータにダウンロードされてもよく、又は代替的に若しくは追加的に、磁気、光学又は電子メモリなどの非一過性有形媒体上に提供および/若しくは格納されてもよい。このようなプログラムコードおよび/又はデータが、プロセッサに提供されると、本明細書に記載されているタスクを行うように構成されている、機械又は専用コンピュータが実現する。
【0033】
図1には特定の用途が示されているが、本明細書に記載されるメッシュ生成技術を使用して、任意の構造の表面をモデル化できることに留意されたい。構造体は、任意の解剖学的又は非解剖学的空洞を含み得る。
【0034】
メッシュ生成
ここで
図2を参照すると、この図は、本発明の幾つかの実施形態による、プロセッサ32によって実行されるメッシュモデル生成方法38のフロー図である。更に
図3を参照すると、この図は、本発明の幾つかの実施形態による、方法38の様々な局面の概略図である。(説明を容易にするために、本図面は、ボクセルを二次元の正方形として描写している。)
【0035】
方法38は受信ステップ40から始まり、ここでプロセッサは心臓24の心腔内の複数の位置のそれぞれの座標60を受信する。例えば、
図1を参照して上述したように、座標60は、遠位端が心腔内で動かされる際にカテーテル26の遠位端の位置を確認する位置確認ルーチンから受信されてもよい。各座標60はまた、「点」と称されてもよく、
図3のセクションAに示す座標60の集合は、「ポイントクラウド」58と称され得る。ポイントクラウド58は、典型的には、数百、数千、又は数万個の点と、点が存在しない間隙64とを含む。
【0036】
次に、マッピングステップ42において、プロセッサは座標60をそれぞれの第1のボクセル62にマッピングし、各第1のボクセル62が、座標60のうちの少なくとも1つがその中に存在する心腔の異なるそれぞれのサブボリュームを表すようにする。プロセッサはまた、複数の第2のボクセル68を画定し、これらのボクセルのそれぞれは、間隙64のそれぞれ異なるサブボリューム又は心腔の外側を表す。第1のボクセル62および第2のボクセル68は、
図3のセクションBに示される連続的な「ボクセルクラウド」59を集合的に画定する。(
図3には特定の例が示されているが、ボクセルクラウド59は、例えば立方体形状といった三次元グリッド形状などの任意の好適な形状を有し得ることに留意されたい。)プロセッサは更に、割り当てステップ46において、第1のボクセル62のそれぞれに第1の値f(0)を割り当てる。f(n)は、以下に記載される特性を有する関数である。
【0037】
例えば、プロセッサは、ポイントクラウド58から構築されているボリュームを、それぞれが0.8mm×0.8mm×0.8mmなどの任意の好適なサイズを有し得る複数のサブボリュームに分割することができる。この場合、サブボリュームのそれぞれを、各ボクセルによって表してもよい。座標60のうちの少なくとも1つがその中に存在するサブボリュームを表す各ボクセルを、第1のボクセル62として指定し、値f(0)を割り当ててもよい。
【0038】
図3のセクションBでは、それぞれがポイントクラウド58の境界66の内側に存在する複数の第1のボクセル62は、これらのボクセルに値が割り当てられていることを示す第1のパターンによって表される。対照的に、この段階で負の無限遠(「-inf」)などのデフォルトの「プレースホルダ」値のみを有する複数の第2のボクセル68は、第2のパターンによって表される。この図のこのセクションで示されるように、一部の第2のボクセルは境界66の内側に存在するが、その他のボクセルは境界66とボクセルクラウドの周辺部72との間に存在する。
【0039】
一般に、f(n)は、0からMまでの、0およびMを含めた各整数nに対して定義された単調関数であり、Mは所定の正の整数である。(一般的に、Mは用途により大きく異なり得る。)例えば、f(n)は、ドメイン[0、M]にわたって単調減少してもよい。典型的には、このような実施形態では、f(0)は1であり、f(M)はゼロである。
【0040】
幾つかの実施形態では、ドメイン[0,M-3]の任意の整数n0について、f(n0+1)は、f(n0)の所定の割合である。例えば、f(n)が[0,M]にわたって単調減少する実施形態では、f(n0+1)は、p*f(n0)に等しくてもよく、ここで、pはドメイン[0,M-3]にわたって0.8~0.95である。幾つかのこのような実施形態では、f(M-1)は、p*f(M-2)に等しい。従って、例えば、M=10、f(M)=0であり、p=0.9である場合、ドメイン[0,M]でf(n)によって得られる値は、1、0.9、0.81、0.73、0.66、0.59、0.53、0.48、0.43、0.39および0であり得る。他のそのような実施形態では、f(M)=0である一方で、f(M-1)は、0.0001以下の任意の数などの小さな数Δに等しい。
【0041】
マッピングステップ42および割り当てステップ46に続いて、プロセッサは、値付与ステップ48において、複数の第2のボクセル68に値を付与する(即ち、それぞれの値を割り当てる)。具体的には、プロセッサは、各第2のボクセル68に値f(d)を割り当て、ここでdは、最も近い第1のボクセルからこの第2のボクセルまでの距離(ボクセル単位)である。
【0042】
幾つかの実施形態では、複数の第2のボクセル68は、各j番目の反復において、d=jである第2のボクセルに値を付与することによって、M回の反復にわたって値を付与される。この点に関して、ここで更に
図4を参照すると、
図4は、本発明の幾つかの実施形態による、複数の第2のボクセル68に反復的に値を付与するための技法の概略図である。
【0043】
図4に示すように、M回の反復のうちの最初の反復で、それぞれが第1のボクセル62のすぐ隣にある(即ちこれに隣接する)第2のボクセル68の第1のサブセットに、値f(1)が割り当てられる。同様に、2番目の反復で、それぞれが第1のサブセットのメンバーのすぐ隣にある第2のボクセルの第2のサブセットに、値f(2)が割り当てられる。次いで、それぞれの後続の反復で、第2のボクセルの別のサブセットに値が付与される。(実際には、典型的には、M回の反復のうちの各j番目の反復で、まだ値が付与されていない第2のボクセルの全てが処理される。すぐ隣のボクセルが値f(j-1)を有する処理済みのボクセルには値f(j)が割り当てられており、他のボクセルには値が付与されていない。)
【0044】
幾つかの実施形態では、2つのボクセルが少なくとも1つの頂点を共有する場合、一方のボクセルが他方のボクセルのすぐ隣である(又はこれに「隣接している」)と言われる。従って、1つのボクセルは、最大で26個の隣接ボクセルを有することができる。(
図4はこの基準を想定しているが、ボクセルを二次元で表現しているために、
図4は26個ではなく8個の隣接ボクセルを図示している。)他の複数の実施形態では、2つのボクセルは、これらのボクセルが少なくとも1つの面を共有する場合にのみ、互いに隣接していると言われ、従って、1つのボクセルは、最大で6個の隣接ボクセルしか有することができない。更に他の複数の実施形態では、更に他の基準を使用して、1つのボクセルの隣接ボクセルを決定してもよい。
【0045】
幾つかの実施形態では、第2のボクセル68は、(例えばGPU上でランする)複数の並列な実行スレッドを使用して値を付与される。例えば、M回の反復の各反復において、まだ値が付与されていない全ての第2のボクセルが並行して処理されてもよい。
【0046】
値付与ステップ48の効果は、
図3のセクションCに示されており、周辺部72付近のボクセルは、これらのボクセルに値f(M)(多くの実施形態では、上述のようにゼロである)が割り当てられていることを示す白色空間によって表されている一方で、間隙64を埋めるボクセルを含む残りの第2のボクセルは、これらのボクセルに他の値が割り当てられていることを示す第1のパターンによって表されている。(セクションCには、値が付与されていない第2のボクセルは示されていないが、実際には、ボクセルクラウド59内の少なくとも一部のボクセルは、これらのボクセルに値を付与しないままとすることができるように(即ち、デフォルトの初期値のままとすることができるように)、最も近い第1のボクセルからの距離がMよりも大きくてもよいことに留意されたい。しかしながら、これらのボクセルは、方法38では使用されない。
【0047】
値付与ステップ48に続いて、値再付与ステップ50において、プロセッサは、第2のボクセルを通る所定回数の反復(例えば100回~200回の反復)を実行する。これらの各反復において、プロセッサは、複数の第2のボクセルのうちの少なくとも一部の各ボクセル(典型的には、値f(M)を有さない各第2のボクセル)に、これらのボクセルのうち複数の隣接ボクセルのそれぞれの値の加重平均を割り当てることによって、複数の第2のボクセルに値を再付与する。典型的には、加重平均は、f(M)との差が所定のしきい値Δ以下である任意の値に、より大きな重みを与える。(上述のように、幾つかの実施形態では、f(M-1)=Δであり、f(M)=0である。)例えば、加重平均は、f(M)との差がΔよりも大きい全ての値に同じ重み1を与える一方で、f(M)との差がΔ以下である値には40以上などの重みを与えてもよい。
【0048】
この点に関して、ここで更に
図5Aおよび
図5Bを参照すると、これらの図は、本発明の幾つかの実施形態による、複数の第2のボクセル68に反復的に値を再付与するための技法の概略図である。例示の目的で、これらの図のそれぞれは、第2のボクセル68の代表的な小集合への2回の値再付与の反復を図示したものであり、集合の外側に存在する可能性のあるボクセルは無視している。
図5Aおよび
図5Bは、f(M)=0であり、かつΔを超える全てのボクセル値に同じ重みが与えられることを想定している。便宜上、
図5Bでは、Δ以下の値は0として図示されている。
【0049】
初期ボクセル値は、
図5Bで1つのボクセル68aに値ゼロが付与されている以外は、
図5Aと
図5Bとの間で同じである。しかしながら、この1つの例外により、
図5Bでは値再付与の効果が著しく異なる。特に、
図5Aでは、ボクセル値は、ボクセルの集合にわたって「平滑化」されているが、
図5Bでは、ボクセル68aに与えられたより大きい重みにより、集合全体の値がゼロとなっている。
【0050】
一般に、Mが十分に大きく、かつ間隙64が著しく大きくなければ、心腔内部を表すボクセルクラウド59の境界66内の部分は、
図5Aに示すように平滑化されるが、これは、この部分が一般にf(M)値のボクセルを含まないためである。一方、心腔外部を表すボクセルクラウド59の境界66外の部分は、この部分内にf(M)値のボクセルが存在することにより、
図5Bに示すように、一般にf(M)が大勢を占める。
【0051】
幾つかの実施形態では、第2のボクセルは、値付与ステップ48について上述したように、複数の並列な実行スレッドを使用して値を再付与される。
【0052】
値再付与ステップ50に続いて、サブセット特定ステップ52において、プロセッサは、複数の第2のボクセルのうちで、それぞれの値のf(M)との差が別の所定のしきい値αよりも大きいサブセットを特定する。例えば、f(M)=0である実施形態では、プロセッサは、αより大きい値を有する第2のボクセルを特定してもよく、ここでαは、例えば0.5~0.8である。続いて、ボリューム画定ステップ54において、
図3のセクションDに示すように、プロセッサは、複数の第1のボクセル62と複数の第2のボクセルの特定されたサブセットとを含む(典型的にはこれらからなる)ボリューム74を画定する。一般に、ボリューム74は、境界66内のボクセルの大部分又は全てを含むが、境界66外のボクセルの大部分又は全ては除外する。
【0053】
典型的には、プロセッサは、ボクセルクラウド59の値のテーブルを定義する。割り当てステップ46、値付与ステップ48および値再付与ステップ50の実行に伴って、プロセッサはテーブル内の値を更新する。続いて、ボリューム画定ステップ54において、プロセッサは、f(M)との差がαを超える第2のボクセルをf(0)に設定し、残りの第2のボクセルをf(M)に設定することによって、ボリューム74を画定する。従って、テーブル内において、例えばボリューム74に属するボクセルについては値1がリストされている一方で、ボリューム74に属さないボクセルについては値ゼロがリストされていてもよい。
【0054】
続いて、メッシュ生成ステップ56において、プロセッサは、メッシュ生成アルゴリズムをボリューム74に適用することによって、ボリューム74の表面を表す三角形メッシュなどのメッシュ76を生成する。
図3のセクションEは、メッシュ内の三角形の一部をシェーディングすることによって、メッシュの三次元的性質を示すメッシュ76を示す。
【0055】
幾つかの実施形態では、プロセッサは、マーチングキューブアルゴリズムを使用してメッシュ76を生成する。このアルゴリズムは一般に、その表面がテッセレーションされるボリュームを画定する関数を入力として必要とする。この要件を満たすために、プロセッサは、ボリューム74に属するボクセルを示す前述の値のテーブルを提供してもよい。
【0056】
本発明が、本明細書上に具体的に示されて記載されたものに限定されない点が、当業者により理解されよう。むしろ、本発明の実施形態の範囲は、本明細書上に記載されている様々な特徴の組み合わせおよび部分的組み合わせの両方、並びに、上記の説明を一読すると当業者には想起されると思われる、従来技術には存在しない特徴の変更例および改変例を含む。参照により本特許出願に援用される文献は、これらの援用文献においていずれかの用語が本明細書において明示的又は暗示的になされた定義と矛盾して定義されている場合には、本明細書における定義のみを考慮するものとする点を除き、本出願の一部とみなすものとする。
【0057】
〔実施の態様〕
(1) システムであって、
モニタと、
プロセッサであって、
複数の第1のボクセルのそれぞれに、解剖学的空洞内の複数の位置の各座標をマッピングすることと、
前記複数の第1のボクセルのそれぞれに、第1の値f(0)を割り当てることであって、
f(n)は、0からMまでの、0およびMを含めた各整数nに対して定義された単調関数であり、Mは所定の正の整数である、ことと、
前記複数の第1のボクセルのうちの最も近いボクセルからの距離がそれぞれ1≦d(vi)≦Mボクセルである複数の第2のボクセル{vi}に、それぞれの第2の値{f(d(vi))}を割り当てることによって、前記複数の第2のボクセルに値を付与することと、
前記複数の第2のボクセルに値を付与した後に、前記複数の第2のボクセルのうちの少なくとも一部の各ボクセルに、前記ボクセルのうち複数の隣接ボクセルのそれぞれの値の加重平均を反復的に割り当てることによって、前記複数の第2のボクセルに反復的に値を再付与することであって、
前記加重平均において、前記複数の値のうちでf(M)との差が第1の所定のしきい値Δ以下である任意の値に、前記複数の値のうちの任意の他の値よりも高い重みが与えられる、ことと、
前記複数の第2のボクセルに反復的に値を再付与することに続いて、前記複数の第2のボクセルのうちで、それぞれの値のf(M)との差が第2の所定のしきい値よりも大きいサブセットを特定することと、
メッシュ生成アルゴリズムを、前記複数の第1のボクセルと、前記複数の第2のボクセルの前記サブセットとを含むボリュームに適用することによって、前記ボリュームの表面を表すメッシュを生成することと、
前記モニタ上に前記メッシュを表示することと、
を行うように構成されたプロセッサと、
を備えるシステム。
(2) 前記ボリュームが、前記複数の第1のボクセルと前記複数の第2のボクセルの前記サブセットとからなる、実施態様1に記載のシステム。
(3) 前記メッシュ生成アルゴリズムがマーチングキューブアルゴリズムである、実施態様1に記載のシステム。
(4) f(n)がドメイン[0,M]にわたって単調減少している、実施態様1に記載のシステム。
(5) f(M)=0であり、f(M-1)=Δである、実施態様4に記載のシステム。
【0058】
(6) ドメイン[0,M-3]の任意の整数n0について、f(n0+1)は、f(n0)の所定の割合である、実施態様1に記載のシステム。
(7) 前記プロセッサは、各j番目の反復において、前記複数の第2のボクセルのうちでd(vi)=jであるボクセルに値を付与することにより、M回の反復にわたって前記複数の第2のボクセルに値を付与するように構成されている、実施態様1に記載のシステム。
(8) 前記プロセッサは、複数の並列な実行スレッドを使用して前記複数の第2のボクセルに値を付与するように構成されている、実施態様7に記載のシステム。
(9) 前記プロセッサは、複数の並列な実行スレッドを使用して前記複数の第2のボクセルに値を再付与するように構成されている、実施態様1に記載のシステム。
(10) 方法であって、
複数の第1のボクセルのそれぞれに、解剖学的空洞内の複数の位置の各座標をマッピングすることと、
前記複数の第1のボクセルのそれぞれに、第1の値f(0)を割り当てることであって、
f(n)は、0からMまでの、0およびMを含めた各整数nに対して定義された単調関数であり、Mは所定の正の整数である、ことと、
前記複数の第1のボクセルのうちの最も近いボクセルからの距離がそれぞれ1≦d(vi)≦Mボクセルである複数の第2のボクセル{vi}に、それぞれの第2の値{f(d(vi))}を割り当てることによって、前記複数の第2のボクセルに値を付与することと、
前記複数の第2のボクセルに値を付与した後に、前記複数の第2のボクセルのうちの少なくとも一部の各ボクセルに、前記ボクセルのうち複数の隣接ボクセルのそれぞれの値の加重平均を反復的に割り当てることによって、前記複数の第2のボクセルに反復的に値を再付与することであって、
前記加重平均において、前記複数の値のうちでf(M)との差が第1の所定のしきい値Δ以下である任意の値に、前記複数の値のうちの任意の他の値よりも高い重みが与えられる、ことと、
前記複数の第2のボクセルに反復的に値を再付与することに続いて、前記複数の第2のボクセルのうちで、それぞれの値のf(M)との差が第2の所定のしきい値よりも大きいサブセットを特定することと、
メッシュ生成アルゴリズムを、前記複数の第1のボクセルと、前記複数の第2のボクセルの前記サブセットとを含むボリュームに適用することによって、前記ボリュームの表面を表すメッシュを生成することと、
を含む方法。
【0059】
(11) 前記ボリュームが、前記複数の第1のボクセルと前記複数の第2のボクセルの前記サブセットとからなる、実施態様10に記載の方法。
(12) 前記解剖学的空洞が心腔を含む、実施態様10に記載の方法。
(13) 前記メッシュ生成アルゴリズムがマーチングキューブアルゴリズムである、実施態様10に記載の方法。
(14) f(n)がドメイン[0,M]にわたって単調減少している、実施態様10に記載の方法。
(15) f(M)=0であり、f(M-1)=Δである、実施態様14に記載の方法。
【0060】
(16) ドメイン[0,M-3]の任意の整数n0について、f(n0+1)は、f(n0)の所定の割合である、実施態様10に記載の方法。
(17) 前記複数の第2のボクセルに値を付与することが、各j番目の反復において、前記複数の第2のボクセルのうちでd(vi)=jであるボクセルに値を付与することにより、M回の反復にわたって前記複数の第2のボクセルに値を付与することを含む、実施態様10に記載の方法。
(18) 前記複数の第2のボクセルに値を付与することが、複数の並列な実行スレッドを使用して前記複数の第2のボクセルに値を付与することを含む、実施態様17に記載の方法。
(19) 前記複数の第2のボクセルに値を再付与することが、複数の並列な実行スレッドを使用して前記複数の第2のボクセルに値を再付与することを含む、実施態様10に記載の方法。
(20) プログラム命令が格納される有形の非一時的なコンピュータ可読媒体を含むコンピュータソフトウェア製品であって、前記命令がプロセッサによって読み取られると、前記プロセッサに、
複数の第1のボクセルのそれぞれに、解剖学的空洞内の複数の位置の各座標をマッピングすることと、
前記複数の第1のボクセルのそれぞれに、第1の値f(0)を割り当てることであって、
f(n)は、0からMまでの、0およびMを含めた各整数nに対して定義された単調関数であり、Mは所定の正の整数である、ことと、
前記複数の第1のボクセルのうちの最も近いボクセルからの距離がそれぞれ1≦d(vi)≦Mボクセルである複数の第2のボクセル{vi}に、それぞれの第2の値{f(d(vi))}を割り当てることによって、前記複数の第2のボクセルに値を付与することと、
前記複数の第2のボクセルに値を付与した後に、前記複数の第2のボクセルのうちの少なくとも一部の各ボクセルに、前記ボクセルのうち複数の隣接ボクセルのそれぞれの値の加重平均を反復的に割り当てることによって、前記複数の第2のボクセルに反復的に値を再付与することであって、
前記加重平均において、前記複数の値のうちでf(M)との差が第1の所定のしきい値Δ以下である任意の値に、前記複数の値のうちの任意の他の値よりも高い重みが与えられる、ことと、
前記複数の第2のボクセルに反復的に値を再付与することに続いて、前記複数の第2のボクセルのうちで、それぞれの値のf(M)との差が第2の所定のしきい値よりも大きいサブセットを特定することと、
メッシュ生成アルゴリズムを、前記複数の第1のボクセルと前記複数の第2のボクセルの前記サブセットとを含むボリュームに適用することによって、前記ボリュームの表面を表すメッシュを生成することと、
を行わせる、
コンピュータソフトウェア製品。