Reconstructing Heart Cavities from Partial Volumes

JP7640036B2Active Publication Date: 2025-03-05BIOSENSE WEBSTER (ISRAEL) LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2020072133
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-04-15
Filing Date
2020-04-14
Publication Date
2025-03-05
Estimated Expiration
2040-04-14

AI Technical Summary

Benefits of technology

【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のボクセルのサブセットとを含むボリュームに適用することによって、ボリュームの表面を表すメッシュを生成させる。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007640036000001
    Figure 0007640036000001
  • Figure 0007640036000002
    Figure 0007640036000002
  • Figure 0007640036000003
    Figure 0007640036000003
Patent Text Reader

Abstract

To perform computer modeling.SOLUTION: A plurality of coordinates are mapped to a plurality of first voxels, respectively. Each of the first voxels is assigned a value f(0), where f(n) is a monotonic function defined between 0 and M inclusive. A plurality of second voxels {vi}, each of which is at a distance d(vi) of from 1 to M voxels inclusive from the nearest first voxel, are assigned respective second values {f(d(vi))}. Each of at least some of the second voxels is then iteratively assigned a weighted average of respective values of just immediate neighbor voxels, any value differing from f(M) by a first prescribed threshold or less being given a higher weight than any other value. A subset of the second voxels each having a value differing from f(M) by more than a second prescribed threshold is identified. Subsequently, a mesh representing a surface of a volume including the first voxels and the subset of the second voxels is generated.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to the field of computer modeling. [Background technology]

[0002] In some medical applications, it is necessary to construct mesh models of anatomical structures, such as the chambers of the heart.

[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, which is incorporated herein by reference, provides an algorithm called "marching cubes" that creates uniform surface density triangular models from 3D medical data. Summary of the Invention [Means for solving the problem]

[0004] According to some embodiments of the present invention, there is provided a system including a monitor and a processor. The processor is configured to map respective coordinates of a plurality of locations within the anatomical cavity to each of a plurality of first voxels, and to assign a first value f(0) to each of the plurality of first voxels, where f(n) is a monotonic function defined for each integer n between 0 and M, inclusive, where M is a predetermined positive integer. The processor is further configured to determine whether each of the plurality of first voxels has a distance from a nearest voxel within 1≦d(v i ) ≦M voxels. i}, each second value {f(d(v i))} to the plurality of second voxels. After assigning values ​​to the plurality of second voxels, the processor is further configured to iteratively re-value the plurality of second voxels by iteratively assigning to each voxel of at least a portion of the plurality of second voxels a weighted average of the values ​​of each of a plurality of neighboring voxels of the voxel, such that in the weighted average, any of the values ​​that differ from f(M) by less than or equal to a first predetermined threshold Δ are weighted higher than any other of the values. Following the iterative re-assignment of values ​​to the plurality of second voxels, the processor is further configured to identify a subset of the plurality of second voxels whose respective values ​​differ from f(M) by more than a second predetermined threshold. The processor is further configured to apply a mesh generation algorithm to a volume including the plurality of first voxels and the subset of the plurality of second voxels to generate a mesh representing a surface of the volume and display the mesh on the monitor.

[0005] In some embodiments, the volume consists of a plurality of first voxels and a subset of a plurality of second voxels.

[0006] In some embodiments, the mesh generation algorithm is a marching cubes algorithm.

[0007] In some embodiments, f(n) is monotonically decreasing over the domain [0,M].

[0008] In some embodiments, f(M)=0 and f(M-1)=Δ.

[0009] In some embodiments, for any integer n0 in the domain [0,M-3], f(n0+1) is a predetermined fraction of f(n0).

[0010] In some embodiments, the processor may, at each j-th iteration, select d(vi )=j, thereby assigning values ​​to a plurality of second voxels over the M iterations.

[0011] In some embodiments, the processor is configured to assign values ​​to a plurality of second voxels using a plurality of parallel threads of execution.

[0012] In some embodiments, the processor is configured to reassign values ​​to the second voxels using multiple parallel threads of execution.

[0013] According to some embodiments of the present invention, there is further provided a method including mapping each of a plurality of first voxels with respective coordinates of a plurality of locations in the anatomical cavity, and assigning each of the plurality of first voxels a first value f(0), where f(n) is a monotonic function defined for each integer n from 0 to M, inclusive, where M is a predetermined positive integer. The method further includes mapping each of the plurality of first voxels with a distance from a nearest voxel of the plurality of first voxels that is 1≦d(v i ) ≦M voxels. i}, each second value {f(d(v i))}. After assigning values ​​to the plurality of second voxels, the method further includes iteratively re-assigning values ​​to the plurality of second voxels by iteratively assigning to each voxel of at least a portion of the plurality of second voxels a weighted average of the values ​​of a respective one of a plurality of neighboring voxels of the voxel, where any of the values ​​that differ from f(M) by less than or equal to a first predetermined threshold Δ are weighted higher in the weighted average than any other of the values. Following the iterative re-assignment of values ​​to the plurality of second voxels, the method further includes identifying a subset of the plurality of second voxels whose respective values ​​differ from f(M) by more than a second predetermined threshold. The method further includes generating a mesh representing a surface of the volume by applying a mesh generation algorithm to a volume including the plurality of first voxels and the subset of the plurality of second voxels.

[0014] In some embodiments, the anatomical cavity includes a chamber of the heart.

[0015] According to some embodiments of the present invention, there is further provided a computer software product including a tangible, non-transitory computer readable medium having program instructions stored thereon, the instructions, when read by a processor, causing the processor to map respective coordinates of a plurality of locations within the anatomical cavity to each of a plurality of first voxels and to assign a first value f(0) to each of the plurality of first voxels, where f(n) is a monotonic function defined for each integer n from 0 to M, inclusive, where M is a predetermined positive integer. The instructions further cause the processor to determine whether each of the plurality of first voxels has a distance from a nearest voxel within 1≦d(v i ) ≦M voxels. i}, each second value {f(d(v i))}. The instructions further cause the processor to iteratively re-value the plurality of second voxels after assigning values ​​to the plurality of second voxels by iteratively assigning to each voxel of at least a portion of the plurality of second voxels a weighted average of the values ​​of a respective one of a plurality of neighboring voxels of the voxel, where any of the values ​​that differ from f(M) by less than or equal to a first predetermined threshold Δ are weighted higher than any other of the values. The instructions further cause the processor to identify a subset of the plurality of second voxels subsequent to iteratively re-value the plurality of second voxels, the subset of the plurality of second voxels having a respective value that differs from f(M) by more than a second predetermined threshold. The instructions further cause the processor to generate a mesh representing a surface of the volume by applying a mesh generation algorithm to a volume including the plurality of first voxels and the subset of the plurality of second voxels.

[0016] The present invention will be more fully understood from the following detailed description of the embodiments thereof, taken in conjunction with the drawings, in which: [Brief description of the drawings]

[0017] [Figure 1] 1 is a schematic diagram of a system for generating a mesh model of one or more heart chambers of a subject, according to some embodiments of the present invention. [Diagram 2] FIG. 2 is a flow diagram of a method for generating a mesh model according to some embodiments of the present invention. [Diagram 3] 3 is a schematic diagram of various aspects of the method of FIG. 2 according to some embodiments of the present invention. [Figure 3-1] 3 is a schematic diagram of various aspects of the method of FIG. 2 according to some embodiments of the present invention. [Figure 4] 1 is a schematic diagram of a technique for iteratively assigning values ​​to voxels according to some embodiments of the present invention; [Figure 5A]FIG. 2 is a schematic diagram of a technique for iteratively re-assigning voxels, according to some embodiments of the present invention. [Figure 5B] FIG. 2 is a schematic diagram of a technique for iteratively re-assigning voxels, according to some embodiments of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0018] Overview Embodiments of the invention provide a technique for constructing a mesh model (also referred to herein simply as a "mesh") of a heart chamber. According to this technique, the position of a catheter is continuously recorded by a tracking system while the catheter is moved within the heart chamber (and optionally within adjacent blood vessels). Each recorded position or "point" is added to a "point cloud" representing the heart chamber. A volume of voxels is then constructed from the point cloud, and then a mesh is constructed from the volume.

[0019] In particular, embodiments of the present invention address the problem that gaps in a voxel volume can disrupt the structure of a mesh. For example, the marching cubes algorithm cited in the background art above can tessellate the interior of the volume by considering the gaps as existing outside the volume. Other algorithms can be used to fill the gaps while building the mesh, but these algorithms can be slow and do not always handle all gaps effectively.

[0020] To address this challenge, embodiments of the present invention provide a processor configured to execute a filling algorithm to fill most or all of the gaps in the volume, which allows the mesh to be constructed using fast and efficient mesh construction algorithms such as marching cubes.

[0021] The filling algorithm is as follows: (i) c}, and (ii) a set of original voxels contained in the point cloud, called {v c}, each of which is less than or equal to M voxels away from the nearest voxel in o}, and the neighborhood of the volume containing voxels {v c} is chosen to be large enough so that the distance to the nearest voxel belonging to the

[0022] When executing the filling algorithm, the processor first calculates the c}, the value 1 is assigned to each voxel in {v o}. Specifically, the processor assigns a non-zero value to a portion of the voxels in i )) to {v o For each voxel in i , and d(v i ) is v i and {v c}, where f(n) is a monotonically decreasing function of n over the domain [0,M] such that f(0) = 1 and f(M) = 0. Advantageously, this value assignment can be expressed as o} may be executed on multiple parallel threads of execution (eg, using a Graphics Processing Unit (GPU)) such that voxels belonging to each of the 3D models can be assigned values ​​in parallel with each other.

[0023] Next, the processor finds {v o} in a iterative manner. Specifically, in each iteration, each of these voxels is assigned a weighted average of the values ​​of its neighboring voxels. In computing this weighted average, all non-zero values ​​are given the same weight, while each zero value is given a significantly larger weight than the non-zero values. Thus, if the number of iterations is large enough, the processor will null all, or at least most, of the voxels representing the sub-volume located outside the heart chamber. (As mentioned above, typically M will be large enough so that voxels within the heart chamber are not zero-valued, and therefore will not be nulled.) Advantageously, this re-valuing may be performed on multiple parallel execution threads.

[0024] The processor then divides the volumes by 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 29, o}. The processor thus fills any gaps in the volume.

[0025] Finally, the processor runs a fast mesh generation algorithm, such as marching cubes, on the filled volume. The mesh may then be displayed on a computer screen. Optionally, the mesh may be overlaid with electrophysiological information, such as local activation time (LAT) values, to generate an electroanatomical map.

[0026] It should be noted that although this specification is primarily directed to the chambers of the heart, the techniques described herein may be used to model any other anatomical or non-anatomical structures, for example, the techniques described herein may be used in depth sensing applications.

[0027] System Description Reference is first made to FIG. 1, which is a schematic diagram of a system 20 for generating a mesh model of one or more chambers of a heart 24 of a subject 22, according to some embodiments of the present invention.

[0028] 1 shows a physician 30 manipulating a catheter 26, whose distal end 28 is positioned within a heart 24. As the physician 30 moves the distal end 28 of the catheter 26 within a chamber of the heart, the position of the distal end of the catheter is confirmed by a processor 32 associated with the system 20.

[0029] For example, the distal end of the catheter may include one or more electromagnetic sensors that, in the presence of a generated magnetic field, output a signal indicative of the sensor's respective position. These signals may be received by the processor 32 via an electrical interface 34 (such as a port or socket). The processor 32 may ascertain the position of the distal end of the catheter based on the signals.

[0030] Alternatively or additionally, the distal end of the catheter may include a catheter electrode and a number of electrode patches may be coupled to the body of the subject 22. When a voltage is applied between the catheter electrode and the electrode patch, the magnitude of each of the currents between the catheter electrode and the electrode patch may be measured. A processor may ascertain the location of the distal end of the catheter based on the magnitude of these currents. Alternatively or additionally, any other suitable technique may be used to track the distal end of the catheter.

[0031] In some embodiments, system 20 further includes a monitor 36. As the physician manipulates catheter 26, processor 32 may overlay an icon representing the distal end of monitor 36 onto an image of the subject's heart to allow the physician to visually track the location of the distal end. Alternatively or additionally, the processor may display the mesh model on monitor 36 following generation of the mesh model (as described in more detail below).

[0032] In general, the processor 32 may be embodied as a single processor, but may also be embodied as a collection of multiple processors networked or clustered together. In some embodiments, the functions of the processor 32 described herein are implemented solely in hardware, for example using one or more application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In other embodiments, the functions of the processor 32 are implemented at least partially in software. For example, in some embodiments, the processor 32 is a programmed digital computing device that includes a central processing unit (CPU), a random access memory (RAM), a non-volatile secondary storage device such as a hard drive or CD-ROM drive, a network interface, and / or peripheral devices. Optionally, the processor 32 may further include a GPU. Program code, including software programs, and / or data are loaded into the RAM for execution and processing by the CPU and / or GPU, and results are generated for display, output, transmission, or storage, as is known in the art. The program code and / or data may be downloaded to the computer in electronic form, for example over a network, or alternatively or additionally may be provided and / or stored on a non-transitory tangible medium, such as magnetic, optical or electronic memory. When such program code and / or data is provided to a processor, it results in a machine or special purpose computer configured to perform the tasks described herein.

[0033] It should be noted that although a particular application is shown in Figure 1, the meshing techniques described herein can be used to model the surface of any structure. The structure may include any anatomical or non-anatomical cavity.

[0034] Mesh Generation Reference is now made to Figure 2, which is a flow diagram of a mesh model generation method 38 performed by processor 32, according to some embodiments of the present invention. Reference is further made to Figure 3, which is a schematic diagram of various aspects of method 38, according to some embodiments of the present invention. (For ease of illustration, the drawing depicts voxels as two-dimensional squares.)

[0035] Method 38 begins with a receiving step 40, in which a processor receives coordinates 60 for each of a plurality of locations within a chamber of heart 24. For example, as described above with reference to FIGURE 1, coordinates 60 may be received from a location identification routine that identifies the location of the distal end of catheter 26 as the distal end is moved within the chamber. Each coordinate 60 may also be referred to as a "point," and the collection of coordinates 60 shown in section A of FIGURE 3 may be referred to as a "point cloud" 58. Point cloud 58 typically includes hundreds, thousands, or tens of thousands of points, as well as gaps 64 where no points exist.

[0036] Next, in a mapping step 42, the processor maps the coordinates 60 to respective first voxels 62 such that each first voxel 62 represents a different respective subvolume of the heart chamber within which at least one of the coordinates 60 resides. The processor also defines a plurality of second voxels 68, each of which represents a different respective subvolume of the gap 64 or the exterior of the heart chamber. The first voxels 62 and the second voxels 68 collectively define a continuous "voxel cloud" 59 shown in section B of FIG. 3. (Note that although a particular example is shown in FIG. 3, the voxel cloud 59 may have any suitable shape, such as a three-dimensional grid shape, e.g., a cubic shape.) The processor further assigns a first value f(0) to each of the first voxels 62 in an assignment step 46. f(n) is a function having the properties described below.

[0037] For example, the processor may divide the volume being constructed from the point cloud 58 into a number of sub-volumes, each of which may have any suitable size, such as 0.8 mm×0.8 mm×0.8 mm. In this case, each of the sub-volumes may be represented by a respective voxel. Each voxel representing a sub-volume within which at least one of the coordinates 60 resides may be designated as a first voxel 62 and assigned a value f(0).

[0038] In section B of Figure 3, a number of first voxels 62, each of which is inside a boundary 66 of the point cloud 58, are represented by a first pattern indicating that these voxels have been assigned a value. In contrast, a number of second voxels 68, which at this stage have only a default "placeholder" value such as negative infinity ("-inf"), are represented by a second pattern. As shown in this section of the figure, some second voxels are inside the boundary 66, while others are between the boundary 66 and the periphery 72 of the voxel cloud.

[0039] In general, f(n) is a monotonic function defined for each integer n from 0 to M, inclusive, where M is a predefined positive integer. (In general, M may vary widely depending on the application.) For example, f(n) may be monotonically decreasing over the domain [0, M]. Typically, in such an embodiment, f(0) is 1 and f(M) is zero.

[0040] In some embodiments, for any integer n0 in the domain [0,M-3], f(n0+1) is a predetermined fraction of f(n0). For example, in an embodiment where f(n) is monotonically decreasing over [0,M], f(n0+1) is a fraction of p * f(n0), where p is between 0.8 and 0.95 over the domain [0,M-3]. In some such embodiments, f(M-1) is equal to p *Thus, for example, if M=10, f(M)=0, and p=0.9, then the values ​​obtained by f(n) in the domain [0,M] can be 1, 0.9, 0.81, 0.73, 0.66, 0.59, 0.53, 0.48, 0.43, 0.39, and 0. In other such embodiments, f(M)=0, while f(M-1) is equal to a small number Δ, such as any number less than or equal to 0.0001.

[0041] Following the mapping step 42 and the assignment step 46, the processor, in a value assignment step 48, values ​​(i.e., assigns respective values) to the second voxels 68. Specifically, the processor assigns a value f(d) to each second voxel 68, where d is the distance (in voxel units) of this second voxel from the nearest first voxel.

[0042] In some embodiments, the plurality of second voxels 68 are assigned values ​​over M iterations by assigning values ​​to second voxels with d=j at each jth iteration. In this regard, reference is now further made to Figure 4, which is a schematic illustration of a technique for iteratively assigning values ​​to the plurality of second voxels 68, according to some embodiments of the present invention.

[0043] As shown in FIG. 4, in a first iteration of M iterations, a first subset of second voxels 68, each of which is an immediate neighbor (i.e., adjacent) to the first voxel 62, is assigned a value f(1). Similarly, in a second iteration, a second subset of second voxels, each of which is an immediate neighbor of a member of the first subset, is assigned a value f(2). Then, in each subsequent iteration, another subset of second voxels is assigned a value. (In practice, typically, in each jth iteration of M iterations, all of the second voxels that have not yet been assigned a value are processed. Processed voxels whose immediate neighbors have a value f(j-1) are assigned a value f(j), and the other voxels are not assigned a value.)

[0044] In some embodiments, a voxel is said to be immediately next to (or "adjacent") another voxel if they share at least one vertex. Thus, a voxel can have at most 26 neighbors. (FIG. 4 assumes this criterion, but because the voxels are represented in two dimensions, FIG. 4 illustrates 8 neighbors instead of 26.) In other embodiments, two voxels are said to be adjacent to each other only if they share at least one face, thus a voxel can only have at most 6 neighbors. In still other embodiments, still other criteria may be used to determine the neighbors of a voxel.

[0045] In some embodiments, second voxels 68 are valued using multiple parallel execution threads (e.g., running on a GPU), for example, in each of the M iterations, all second voxels that have not yet been valued may be processed in parallel.

[0046] The effect of the value assignment step 48 is shown in section C of Figure 3, where voxels near the periphery 72 are represented by white space indicating that they are assigned a value f(M) (which in many embodiments is zero, as discussed above), while the remaining second voxels, including those filling the gaps 64, are represented by a first pattern indicating that they are assigned other values. (Note that while the unassigned second voxels are not shown in section C, in practice at least some voxels in the voxel cloud 59 may be at a distance greater than M from the nearest first voxel, such that these voxels may be left unassigned (i.e., at a default initial value). However, these voxels are not used in the method 38.

[0047] Following the value assignment step 48, in a value reassignment step 50, the processor performs a predetermined number of iterations (e.g., 100-200 iterations) through the second voxels. In each of these iterations, the processor reassigns values ​​to at least some of the second voxels (typically, each second voxel that does not have a value f(M)) by assigning a weighted average of the values ​​of a number of adjacent voxels of the second voxels. Typically, the weighted average gives a greater weight to any value that differs from f(M) by a predetermined threshold Δ or less. (As noted above, in some embodiments, f(M-1)=Δ and f(M)=0.) For example, the weighted average may give the same weight of 1 to all values ​​that differ from f(M) by more than Δ, while giving a weight of 40 or more to values ​​that differ from f(M) by Δ or less.

[0048] In this regard, reference is now made further to Figures 5A and 5B, which are schematic diagrams of a technique for iteratively re-assigning a plurality of second voxels 68, according to some embodiments of the present invention. For illustrative purposes, each of these figures illustrates two iterations of re-assignment to a representative subset of second voxels 68, ignoring voxels that may lie outside the set. Figures 5A and 5B assume that f(M)=0 and that all voxel values ​​above Δ are given the same weight. For convenience, values ​​below Δ are illustrated as 0 in Figure 5B.

[0049] The initial voxel values ​​are the same between Figures 5A and 5B, except that one voxel 68a is assigned a value of zero in Figure 5B. However, this one exception causes the effect of re-assignment to be significantly different in Figure 5B. In particular, in Figure 5A, the voxel values ​​are "smoothed" across the set of voxels, whereas in Figure 5B, the higher weight given to voxel 68a results in the entire set having a value of zero.

[0050] Generally, if M is large enough and the gaps 64 are not too large, the portion of the voxel cloud 59 representing the interior of the heart chamber within boundary 66 will be smoothed as shown in Figure 5A because this portion will generally not contain voxels with f(M) values, whereas the portion of the voxel cloud 59 representing the exterior of the heart chamber outside boundary 66 will generally be dominated by f(M), as shown in Figure 5B, due to the presence of voxels with f(M) values ​​within this portion.

[0051] In some embodiments, the second voxels are re-assigned values ​​using multiple parallel threads of execution, as described above for the assigning values ​​step 48.

[0052] Following the re-value step 50, in a subset identification step 52, the processor identifies a subset of the plurality of second voxels whose respective values ​​differ from f(M) by more than another predefined threshold value α. For example, in an embodiment where f(M)=0, the processor may identify the second voxels having values ​​greater than α, where α is, for example, between 0.5 and 0.8. Then, in a volume definition step 54, as shown in section D of FIG. 3, the processor defines a volume 74 that includes (and typically consists of) the plurality of first voxels 62 and the identified subset of the plurality of second voxels. Typically, the volume 74 includes most or all of the voxels within the boundary 66, but excludes most or all of the voxels outside the boundary 66.

[0053] Typically, the processor defines a table of values ​​for the voxel cloud 59. As the assigning, valuing and revaluing steps 46, 48 and 50 are performed, the processor updates the values ​​in the table. Then, in a volume definition step 54, the processor defines the volume 74 by setting to f(0) any second voxel that differs from f(M) by more than α, and setting the remaining second voxels to f(M). Thus, for example, in the table, a value of 1 may be listed for voxels that belong to the volume 74, while a value of zero may be listed for voxels that do not belong to the volume 74.

[0054] Subsequently, in a mesh generation step 56, the processor generates a mesh 76, such as a triangular mesh, that represents the surface of the volume 74 by applying a mesh generation algorithm to the volume 74. Section E of Figure 3 shows mesh 76, which indicates the three-dimensional nature of the mesh by shading some of the triangles in the mesh.

[0055] In some embodiments, the processor uses a marching cubes algorithm to generate the mesh 76. This algorithm generally requires as input a function that defines the volume whose surface is to be tessellated. To meet this requirement, the processor may provide a table of the aforementioned values ​​that indicate the voxels that belong to the volume 74.

[0056] It will be understood by those skilled in the art that the present invention is not limited to what has been specifically shown and described herein. Rather, the scope of the embodiments of the present invention includes both combinations and subcombinations of the various features described herein, as well as variations and modifications of features not present in the prior art that would occur to one skilled in the art upon reading the above description. Documents incorporated by reference into this patent application shall be considered as part of this application, except that if any term is defined in these incorporated documents in a manner that is inconsistent with the definition expressly or impliedly made herein, then only the definition in this specification shall be considered.

[0057] [Embodiment] (1) A system comprising: A monitor and 1. A processor comprising: Mapping respective coordinates of a plurality of locations within the anatomical cavity to each of a plurality of first voxels; assigning a first value f(0) to each of the plurality of first voxels; f(n) is a monotonic function defined for each integer n between 0 and M, inclusive, where M is a predetermined positive integer; and The distances from the nearest voxels among the plurality of first voxels are 1≦d(v i ) ≦M voxels. i}, each second value {f(d(v i assigning values ​​to the plurality of second voxels by after assigning values ​​to the second voxels, iteratively re-assigning values ​​to the second voxels by iteratively assigning to each voxel of at least a portion of the second voxels a weighted average of respective values ​​of a plurality of adjacent voxels of the voxels; in the weighted average, any value of the plurality of values ​​that differs from f(M) by a first predetermined threshold Δ or less is weighted higher than any other value of the plurality of values; subsequent to iteratively reassigning the second voxels, identifying a subset of the second voxels whose respective values ​​differ from f(M) by more than a second predetermined threshold; generating a mesh representing a surface of a volume including the first plurality of voxels and the subset of the second plurality of voxels by applying a mesh generation algorithm to the volume; displaying the mesh on the monitor; A processor configured to: A system comprising: (2) The system of embodiment 1, wherein the volume consists of the first plurality of voxels and the subset of the second plurality of voxels. (3) The system of claim 1, wherein the mesh generation algorithm is a marching cubes algorithm. (4) The system of embodiment 1, wherein f(n) is monotonically decreasing over the domain [0,M]. (5) The system described in embodiment 4, wherein f(M) = 0 and f(M-1) = Δ.

[0058] (6) The system of embodiment 1, wherein for any integer n0 in the domain [0, M-3], f(n0+1) is a predetermined fraction of f(n0). (7) The processor, at each j-th iteration, calculates d(v i 2. The system of claim 1, wherein the system is configured to assign values ​​to the plurality of second voxels over M iterations by assigning values ​​to voxels where j=j. (8) The system of embodiment 7, wherein the processor is configured to assign values ​​to the second voxels using multiple parallel execution threads. (9) The system of embodiment 1, wherein the processor is configured to reassign values ​​to the second voxels using multiple parallel execution threads. (10) A method comprising the steps of: Mapping respective coordinates of a plurality of locations within the anatomical cavity to each of a plurality of first voxels; assigning a first value f(0) to each of the plurality of first voxels; f(n) is a monotonic function defined for each integer n between 0 and M, inclusive, where M is a predetermined positive integer; and The distances from the nearest voxels among the plurality of first voxels are 1≦d(v i ) ≦M voxels. i}, each second value {f(d(v i assigning values ​​to the plurality of second voxels by after assigning values ​​to the second voxels, iteratively re-assigning values ​​to the second voxels by iteratively assigning to each voxel of at least a portion of the second voxels a weighted average of respective values ​​of a plurality of adjacent voxels of the voxels; in the weighted average, any value of the plurality of values ​​that differs from f(M) by a first predetermined threshold Δ or less is weighted higher than any other value of the plurality of values; subsequent to iteratively reassigning values ​​to the plurality of second voxels, identifying a subset of the plurality of second voxels whose respective values ​​differ from f(M) by more than a second predetermined threshold; generating a mesh representing a surface of a volume including the first plurality of voxels and the subset of the second plurality of voxels by applying a mesh generation algorithm to the volume; The method includes:

[0059] (11) The method of embodiment 10, wherein the volume consists of the first plurality of voxels and the subset of the second plurality of voxels. (12) The method of embodiment 10, wherein the anatomical cavity comprises a cardiac chamber. (13) The method of claim 10, wherein the mesh generation algorithm is a marching cubes algorithm. (14) The method of embodiment 10, wherein f(n) is monotonically decreasing over the domain [0,M]. (15) The method of embodiment 14, wherein f(M) = 0 and f(M-1) = Δ.

[0060] (16) The method of embodiment 10, wherein for any integer n0 in the domain [0, M-3], f(n0+1) is a predetermined fraction of f(n0). (17) assigning values ​​to the plurality of second voxels includes, at each j-th iteration, assigning values ​​to d(v i 11. The method of claim 10, further comprising assigning values ​​to the plurality of second voxels over M iterations by assigning values ​​to voxels where j=j. (18) The method of embodiment 17, wherein assigning values ​​to the plurality of second voxels includes assigning values ​​to the plurality of second voxels using multiple parallel threads of execution. (19) The method of embodiment 10, wherein reassigning values ​​to the plurality of second voxels includes reassigning values ​​to the plurality of second voxels using multiple parallel threads of execution. (20) A computer software product including a tangible, non-transitory computer-readable medium having stored thereon program instructions, the instructions, when read by a processor, causing the processor to: Mapping respective coordinates of a plurality of locations within the anatomical cavity to each of a plurality of first voxels; assigning a first value f(0) to each of the plurality of first voxels; f(n) is a monotonic function defined for each integer n between 0 and M, inclusive, where M is a predetermined positive integer; and The distances from the nearest voxels among the plurality of first voxels are 1≦d(v i ) ≦M voxels. i}, each second value {f(d(v i assigning values ​​to the plurality of second voxels by after assigning values ​​to the second voxels, iteratively re-assigning values ​​to the second voxels by iteratively assigning to each voxel of at least a portion of the second voxels a weighted average of respective values ​​of a plurality of adjacent voxels of the voxels; in the weighted average, any value of the plurality of values ​​that differs from f(M) by a first predetermined threshold Δ or less is weighted higher than any other value of the plurality of values; subsequent to iteratively reassigning values ​​to the plurality of second voxels, identifying a subset of the plurality of second voxels whose respective values ​​differ from f(M) by more than a second predetermined threshold; generating a mesh representing a surface of a volume including the first plurality of voxels and the subset of the second plurality of voxels by applying a mesh generation algorithm to the volume; To carry out Computer software products.

Claims

1. 1. A system comprising: A monitor and 1. A processor comprising: Mapping respective coordinates of a plurality of locations within the anatomical cavity to each of a plurality of first voxels; assigning a first value f(0) to each of the plurality of first voxels; f(n) is a monotonic function defined for each integer n between 0 and M, inclusive, where M is a predetermined positive integer; and The distances from the nearest voxels among the plurality of first voxels are 1≦d(v i ) ≦M voxels. i }, each second value {f(d(v i assigning values ​​to the plurality of second voxels by after assigning values ​​to the second voxels, iteratively re-assigning values ​​to the second voxels by iteratively assigning to each voxel of at least a portion of the second voxels a weighted average of respective values ​​of a plurality of adjacent voxels of the voxels, In the weighted average, any value of the second voxels assigned a value that differs from f(M) by a first predetermined threshold value Δ or less is weighted higher than any other value of the second voxels assigned a value; subsequent to iteratively reassigning values ​​to the plurality of second voxels, identifying a subset of the plurality of second voxels whose respective values ​​differ from f(M) by more than a second predetermined threshold; generating a mesh representing a surface of a volume including the first plurality of voxels and the subset of the second plurality of voxels by applying a mesh generation algorithm to the volume; displaying the mesh on the monitor; A processor configured to: A system comprising:

2. The system of claim 1 , wherein the volume consists of the first plurality of voxels and the subset of the second plurality of voxels.

3. The system of claim 1 , wherein the mesh generation algorithm is a marching cubes algorithm.

4. 2. The system of claim 1, wherein f(n) is monotonically decreasing over the domain [0, M].

5. 5. The system of claim 4, wherein f(M)=0 and f(M-1)=Δ.

6. Any integer n in the domain [0,M-3] 0 For f(n 0 +1) is f(n 0 2. The system of claim 1, wherein the predetermined ratio of the number of inputs to the number of outputs is a predetermined ratio of the number of inputs to the number of outputs.

7. The processor, at each j-th iteration, determines d(v i 2. The system of claim 1, further comprising: a step of: assigning values ​​to the plurality of second voxels over M iterations by assigning values ​​to voxels where .times. ...

8. The system of claim 7 , wherein the processor is configured to assign values ​​to the second voxels using multiple parallel threads of execution.

9. The system of claim 1 , wherein the processor is configured to re-assign values ​​to the second voxels using multiple parallel threads of execution.

10. 1. A method comprising: Mapping respective coordinates of a plurality of locations within the anatomical cavity to each of a plurality of first voxels; assigning a first value f(0) to each of the plurality of first voxels; f(n) is a monotonic function defined for each integer n between 0 and M, inclusive, where M is a predetermined positive integer; and The distances from the nearest voxels among the plurality of first voxels are 1≦d(v i ) ≦M voxels. i }, each second value {f(d(v i assigning values ​​to the plurality of second voxels by after assigning values ​​to the second voxels, iteratively re-assigning values ​​to the second voxels by iteratively assigning to each voxel of at least a portion of the second voxels a weighted average of respective values ​​of a plurality of adjacent voxels of the voxels, In the weighted average, any value of the second voxels assigned a value that differs from f(M) by a first predetermined threshold value Δ or less is weighted higher than any other value of the second voxels assigned a value; subsequent to iteratively reassigning values ​​to the plurality of second voxels, identifying a subset of the plurality of second voxels whose respective values ​​differ from f(M) by more than a second predetermined threshold; generating a mesh representing a surface of a volume including the first plurality of voxels and the subset of the second plurality of voxels by applying a mesh generation algorithm to the volume; The method includes:

11. The method of claim 10 , wherein the volume consists of the first plurality of voxels and the subset of the second plurality of voxels.

12. The method of claim 10 , wherein the anatomical cavity comprises a heart chamber.

13. The method of claim 10 , wherein the mesh generation algorithm is a marching cubes algorithm.

14. 11. The method of claim 10, wherein f(n) is monotonically decreasing over the domain [0, M].

15. 15. The method of claim 14, wherein f(M)=0 and f(M-1)=Δ.

16. Any integer n in the domain [0,M-3] 0 For f(n 0 +1) is f(n 0 11. The method of claim 10, wherein the predetermined ratio of

17. Assigning values ​​to the plurality of second voxels includes, at each j-th iteration, assigning values ​​to d(v i 11. The method of claim 10, further comprising assigning values ​​to the plurality of second voxels over M iterations by assigning values ​​to voxels where j=j.

18. The method of claim 17 , wherein assigning values ​​to the second voxels comprises assigning values ​​to the second voxels using multiple parallel threads of execution.

19. The method of claim 10 , wherein reassigning values ​​to the plurality of second voxels comprises reassigning values ​​to the plurality of second voxels using multiple parallel threads of execution.

20. A computer program product, the computer program product being capable of, when read by a processor, causing the processor to: Mapping respective coordinates of a plurality of locations within the anatomical cavity to each of a plurality of first voxels; assigning a first value f(0) to each of the plurality of first voxels; f(n) is a monotonic function defined for each integer n between 0 and M, inclusive, where M is a predetermined positive integer; and The distances from the nearest voxels among the plurality of first voxels are 1≦d(v i ) ≦M voxels. i }, each second value {f(d(v i assigning values ​​to the plurality of second voxels by after assigning values ​​to the second voxels, iteratively re-assigning values ​​to the second voxels by iteratively assigning to each voxel of at least a portion of the second voxels a weighted average of respective values ​​of a plurality of adjacent voxels of the voxels, In the weighted average, any value of the second voxels assigned a value that differs from f(M) by a first predetermined threshold value Δ or less is weighted higher than any other value of the second voxels assigned a value; subsequent to iteratively reassigning values ​​to the plurality of second voxels, identifying a subset of the plurality of second voxels whose respective values ​​differ from f(M) by more than a second predetermined threshold; generating a mesh representing a surface of a volume including the first plurality of voxels and the subset of the second plurality of voxels by applying a mesh generation algorithm to the volume; To carry out Computer program.

Citation Information

Patent Citations

  • Method for region segmentation of three-dimensional medical image data

    JP2004097535A

  • Suppression of band artifacts in cardiac CT scans

    JP2008546464A

  • Marking sparse areas on maps

    JP2018079323A

  • Interactive anatomical mapping and estimation of anatomical mapping quality

    JP2018102922A

  • Graphical system with enhanced stereopsis

    US20140225887A1