# Patent

## Title
Method of centerline generation in virtual objects

## Abstract

Methods for generating a centerline or skeleton structure within a 3D virtual object are provided. A first method defines a centerline based on distance from boundary values along points of the defined centerline. A second method uses a distance from boundary field to assign costs to voxels in the virtual object and defines a minimum cost spanning tree based on assigned costs. The centerline is defined along the minimum cost spanning tree. Branches along the centerline are identified and added to the centerline to define a skeleton.

## Background
RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Application Ser. No. 60/322,046, entitled “Advanced Navigation and Detection for Virtual Examination,” which was filed on Sep. 14, 2001, the disclosure of which is hereby incorporated by reference in its entirety. This application may also be considered related to application Ser. No. 10/246,016, filed on Sep. 16, 2002 and entitled “System and Method for Navigating in Virtual Environments Using a Fluid Model” and to application Ser. No. 10/246,070 filed on Sep. 16, 2002, entitled “Computer Assisted Detection of Lesions Volumetric Medical Images.”
Other co-pending applications which may be considered “related” to the present application include: Ser. No. 10/182,217, with a filing date of Feb. 19, 2003 and entitled “Computer Aided Treatment Planning;” Ser. No. 10/380,211, with a filing date of Feb. 2, 2004 and entitled “Centerline and Tree Branch Skeleton Determinator for Virtual Objects;” Ser. No. 10/297,349 with a filing date of Dec. 5, 2002 entitled “System and Method for Computer Aided Treatment Planning and Visualization With Image Registration and Fusion;” Ser. No. 10/380,210 with a filing date of Mar. 12, 2003 and entitled “Enhanced Virtual Navigation and Examination;” Ser. No. 09/974,548 filed on Oct. 10, 2001 and entitled “System and Method for Performing a Three Dimensional Virtual Segmentation and Examination with Optical Texture Mapping;” Ser. No. 09/777,120 filed on Feb. 5, 2001 and entitled “System and Method for Performing a Three Dimensional Virtual Examination of Objects, Such as Internal Organs.”


FIELD OF THE INVENTION
The present invention relates generally to 3D virtual environments and more particularly relates to methods for generating centerlines and skeletons in virtual objects presented in 3D virtual environments.
BACKGROUND OF THE INVENTION
With the rapid increases in both scale and complexity of virtual environments, an efficient navigation capability becomes critical in virtual reality systems. This is particularly true in medical applications, which require navigation through complex structures such as the colon, aorta, lungs and the like. This implies the presence of efficient flight-path planning. Many known navigation techniques focus primarily on a planned navigation mode, where a movie is computed by automatically moving a virtual camera along a precomputed flight path from a start point of a virtual object to an end point of the object and generating a sequence of navigation frames. Centerline algorithms are often used as the flight path to give wide views at the object center. Such algorithms are useful when the virtual environment depicts a luminar structure, such as a colon or artery.
The following properties are considered desirable for a flight-path planning:

    
    
        (1) To obtain a wide view of the virtual environment, the path should stay away from the surface.
        (2) The path should be a one-voxel-wide simple path without any 2D manifolds or self-intersection.
        (3) Any two adjacent voxels on the path should be directly connected, i.e., at most one, two, or three of their 3D coordinates differ by one, forming a 6-, 18-, or 26-connected path.
        (4) The path planning procedure should be fast and automatic, which frees the user from having to engage in the data processing.
    
    


There has been a great deal of research on flight-path planning techniques based on an object centerline or a set of connected centerlines, generally referred to as a skeleton. Most of the centerline extraction algorithms can be divided into three categories: manual extraction, distance mapping, and topological thinning.
Manual extraction, which requires the user to manually mark the center of each object region slice by slice, neither satisfies property 4 nor guarantees property 3. It may violate property 1, because a center point in a 2D slice may not lie along the medial axis in the 3D space.
Distance mapping often employed Dijkstra's shortest path algorithm to extract the centerline or flight path rapidly with full automation. This technique generally satisfies properties 2 through 4. Unfortunately, it does not satisfy property 1, because the shortest path tends to hug corners at high-curvature regions. Efforts have been made to push the shortest path towards the object center by post-remedy. However, such efforts have not completely solved the problem, or involve distance function adjustment based on other measurements, and are computationally complex and expensive.
Topological thinning generates center paths by peeling off a volumetric object layer by layer until there is only one central layer left. This technique satisfies properties 1 through 3 very well, but it does not satisfy property 4, due to the expensive processing iteration. Paik et al. have accelerated this technique by incorporating the above shortest path method in parallel with a thinning procedure. However, the manual detection of the tip for each branches in this technique needs to be improved. This is described Automatic Flight Planning for Virtual Endoscopy”, Medical Phys., 1998, 25(5), 629-637.
SUMMARY OF THE INVENTION
In accordance with the present invention methods to compute centerlines and skeletons of virtual objects are provided. A first method is based on a distance from boundary field in which each voxel has as its value the distance of its position from the object boundary. Starting from the largest DFB value voxel or from an extreme point of the object (i.e. lowest point) points along the centerline are found in jumps that can be as large as the DFB value of the previously found point. All points considered as jump targets are examined to find the one among them that is a local DFB field maximum and is furthest from the start location. Connecting the jump points results in the centerline and also considering secondary jump targets (not only the furthest one) results in computation of the complete skeleton.
A second method is also based on a distance from boundary field. It converts the DFB values into costs that are highest for low DFB values and lowest for high DFB values. Then a minimum cost spanning tree (MCST) rooted at a seed point is computed for all cost voxels in the object. The point of the MCST furthest from the seed point is the other end of the centerline and the connection path along tree edges is the centerline. Finding points that are furthest from any skeleton voxel and connecting them along the edges of then MCST add branches of the skeleton.
A third method is a general method to improve the speed of the second method or any other method for centerline or skeleton computation that is based on having to examine all voxels in the object. The increased processing speed comes from obviating the need to evaluate all voxels in the object. Starting with an initial approximate centerline or skeleton, the centerline or skeleton computation method can be applied to a fake object that consists of just the centerline voxels and those very close to it, but still use the DFB values computed ones beforehand for the complete object. The resulting centerline/skeleton is an improvement over the initial one. The process can be iterated by using the result of the previous iteration as input to the next. Eventually this results in a centerline/skeleton that does not change any more which can then be used as final higher quality centerline/skeleton.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a flow chart illustrating a first method of centerline generation in accordance with the present invention;
FIG. 2 is a pictorial representation of the distance from boundary (DFB) force gradient in a cross section of a colon mapped to gray scale colors: black outside the region, white on the boundary, white to dark gray gradient for increasing distance from boundary;
FIG. 3 is a flow chart illustrating a first method of centerline generation in accordance with the present invention;
FIG. 4 is a pictorial representation of a Colon as an example of a segmented region with the centerline shown inside; and
FIG. 5 is a schematic representation of the cross section of a colon lumen illustrating a branch being connected to the centerline.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
The present invention will be described in the context of systems and methods for performing examination and navigation of virtual objects, such as in virtual colonoscopy procedures, but is not limited to such procedures. A system and method for performing such virtual examination and visualization of 3D virtual objects is described in U.S. Pat. No. 6,343,936, entitled “System and Method for Performing a Three-Dimensional Virtual Examination, Navigation and Visualization,” the disclosure of which is hereby incorporated by reference in its entirety. The present invention assumes that such systems and methods are used to acquire image data, create a three dimensional model of a virtual object and display the virtual object using a graphical user interface or other suitable user interface.
Referring to FIG. 1, a first method in accordance with the present invention determines the centerline through a virtual object based on a distance from boundary (DFB) field in which each voxel has as its value the distance of its position from the object boundary. In step 100, each voxel of the virtual object is assigned a value based on its distance from the boundary of the virtual object.
FIG. 2 is a pictorial representation of the DFB field within a portion of the cross section of a colon lumen. In FIG. 2, the magnitude of the DFB field for each voxel is represented by gray scale values ranging from white at the object boundary to black at the maximum distance from the boundary.
A first voxel in the virtual object is selected, such as the voxel having the largest DFB value voxel or from an extreme point of the object (i.e. the lowest point) selected by the user (step 105). Points along the centerline are found in jumps that can be as large as the DFB value of the previously found point. In one embodiment of the invention, a sphere is defined around the selected voxel which has a radius equal to the DFB value of the selected value (step 110). The jump target is a voxel on the surface of the sphere centered at the current point having a radius equal to the DFB value (step 115). In another embodiment the jump target can be the surface of a box which is inscribed in the aforementioned sphere.
Points considered as jump targets are examined to find the one among them that is a local DFB field maximum and is furthest from the start location. The algorithm jumps from the current voxel to the appropriate target voxel (step 120). This process is continued until the object endpoint is reached (step 125). Connecting the jump points results in the centerline (step 130). In one embodiment of the invention the connection is achieved through a straight line. In another embodiment, ridge tracking in the DFB field can be used to connect the jump points. Alternatively, a smooth curve can be used to connect the jump points (step 135).
The centerline can be considered complete when the region boundary is reached or when the current point has a DFB value below a given threshold. If the computation was started from a seed point in the center of the object (i.e. a maximum DFB location), then a second path of the same procedure has to be applied to find the other half of the centerline. Also, by considering secondary jump targets (not only the furthest one) a complete skeleton (as opposed to a single centerline) can be defined.
Referring to FIG. 2, a second method in accordance with the present invention is also based on a distance from boundary field. In step 300 a distance from boundary (DFB) field is determined for each voxel of the virtual object. This embodiment converts the DFB values into costs that are highest for low DFB values and lowest for high DFB values (step 305). A seed voxel is selected as a starting point (step 305) and a minimum cost spanning tree (MCST) rooted at a seed point is then computed for all cost voxels in the object (step 315). The point of the MCST furthest from the seed point is the endpoint of the centerline (step 320) and the connection path along tree edges is the centerline (step 325). Finding points that are furthest from any skeleton voxel and connecting them along the edges of the MCST adds branches of the skeleton (step 330).
The algorithm of FIG. 2 consists of building a minimum-cost spanning tree in the DFB field and extracting the colon centerline and its branches from the tree. Preferably, the DFB values used in the present algorithms are the exact real Euclidian distances, computed by a fast four-path algorithm, such as proposed by Saito et al. “New Algorithm for Euclidean Distance Transformation of an N-Dimensional Digitized Picture with Applications,” Pattern Recognition, 1994, 27(11): 1551-1565, which is hereby incorporated by reference in its entirety. Employing this algorithm, a complete connected colon region in a 512×512×361 CT volume, which is depicted in FIG. 4, was calculated in about 20 seconds.
Returning to FIG. 3, step 305 can be separated into two stages. In the first stage the volumetric DFB field is converted into a 3D directed weighted graph. Second, a minimum-cost spanning (MCS) tree is built from the weighted graph.
During the mapping from a volumetric data set to a 3D directed weighted graph, each voxel forms a node in the graph, while edges represent the 26-neighbor relations between voxels. Each edge has two directions pointing towards its two end nodes, respectively. Each direction has its own weight the inverse of the DFB value of the end node it points to, in order to build a minimum-cost spanning tree. To distinguish the regular DFB value from its inverse, we call the latter value DFB cost. The present mapping is different from those in the traditional distance mapping algorithms, where the length of each edge is used as its weight to form an undirected graph.
A minimum-cost spanning tree for the present directed graph is defined as a tree that connects all the voxels in the navigable region at the minimum DFB cost. In order to build such a MCS tree one can use the standard Dijkstra algorithm for computing the minimum cost of each node to reach a chosen source node S, where the source S is predefined by the user. Specifically, the present algorithm computes the cost of a node at a voxel to be entered into a heap of discovered nodes as the inverse of the distance from boundary at that voxel. The distance from source (DFS) is also accumulated as part of the Dijkstra algorithm progression according to: dfs(B)=dfs(C)+distance(B,C).
Referring to FIG. 3, step 315 can be implemented using a fast heap-sorting technique to detect the node with the minimum DFB cost in the current heap in O(log N) time. Thereby, the algorithm processing is completed in O(N log N) time. The heap data structure tends to be simpler and faster than other sorting data structures that have the same computational complexity, such as the balanced binary tree.
As a result, the ordering of the voxels leaving the heap represents the connectivity of the MCS. Further, each inside voxel of the object contains a DFS value recording the length of this minimum DFB cost path. The DFS values are used to find the centerline and its branches in the subsequent step, and can also contribute to interactive measurements during navigation when desired.
The centerlines extracted from the MCS tree provide a concise global picture of the topological features of the object, and serve as a guide during navigation.
Referring to FIG. 5, the method of FIG. 3 can be viewed as containing two stages: first, to extract a main centerline of the object ending at the source point S; second, to detect all the branches B attached to the main centerline. If the other end, E, of the main centerline is given, then the sequence of voxels, on the centerline can be determined by tracing back from E to S according to the MCS connectivity. Alternatively, the algorithm can automatically select the voxel with the maximum DFS value as the other end E of the centerline so that the centerline spans the entire object. From the perspective of the MCS tree, the centerline is the longest branch in the tree that starts from root S.
An efficient branch extraction algorithm for use in connection with step 330 (FIG. 3) can be implemented as follows to automatically detect all the branches attached to the main centerline in O(N) time.
Step 1. Scan centerline voxels by tracing back from the end E to the source S according to MCS connectivity (see FIG. 2).
Step 2. For each centerline voxel C, check its 24 neighbors (excluding the two neighbors on the centerline) and find out each neighbor B that is MCS connected to C.
Step 3. For each B, find the MCS sub-tree rooted at B and identify voxel T with the largest DFS value among them. Then compute the length len(B) between B and T as dfs(T)−dfs(B). If len(B) is larger than a user-specified threshold of the branch length, we store T as the tip of a branch growing from centerline voxel C through its neighbor B.
The above branch detection procedure is capable of detecting all branches directly connected to the centerline, including those associated with the same centerline voxel. To further detect higher-level branches when desired, the above algorithm can be extended by recursively scanning each branch to find all the higher-level branches, but it will be appreciated that the computational expenses increases in this case.
From current experience, the main centerline gives the most compact shape description of the object, while the first-level skeleton consisting of the centerline and its directly attached branches provides sufficient shape information for navigation needs. A centerline with multiple level branches is generally only needed for complex objects where a detailed navigation map is required. By adjusting the threshold of branch length in our last recursive solution, the level of detail during the branch extraction can be controlled.
A third method in accordance with the invention is a general method to improve the speed of the second method or any other method for centerline or skeleton computation that is based on having to examine all voxels in the object. The improvement in speed comes from avoiding looking at all voxels in the object. Starting with an initial approximate centerline or skeleton, the centerline or skeleton computation method is applied to a fake object that consists of just the centerline voxels and those voxels close to it. The resulting centerline/skeleton is an improvement over the initial one. The process can be iterated using the result of the previous iteration as input to the next. Eventually this results in a centerline/skeleton that doe not change any more which can then be used as final higher quality centerline/skeleton. To further improve speed, the method can be extended to include neighboring voxels only where the centerline/skeleton voxels did change in the previous iteration.
The present centerline extraction algorithms based on such an accurate DFB value is more accurate than the accurate thinning algorithms that used the approximation conformation metrics for boundary distance measurements. Meanwhile, it also achieves a much higher speed than the fastest distance mapping algorithms because of its low computational complexity and high optimization.
The present invention provides simple solutions for centerline and flight path generation, which satisfies all four desired flight path properties. The centerline algorithms are derived from a concise but precise centerline definition based on the DFB field. The centerlines are defined based on DFB fields, such as the minimum-cost paths spanning the DFB field inside a volume data set. This definition has the following advantages. It precisely defines the centerline for distance mapping techniques by focusing on a centered path rather than a shortest path. In addition, it suggests a provably fast and accurate solution.

## Claims

1. A computer-readable medium which includes thereon a set of instructions for generating a centerline in a virtual object represented as a plurality of voxels, wherein the set of instructions are configured to program a processing arrangement to perform the steps of:
computing the distance from boundary (DFB) for each voxel in the virtual object;
selecting a seed point in the virtual object as the current voxel;
selecting a next point from a set of points having a distance from the current voxel determined by the distance from boundary value of the current voxel;
connecting the current voxel to the next point and assigning the next point as the new current voxel; and
repeating the steps of selecting a next point and connecting until the centerline for the object is complete, thereby generating a centerline for at least one of display and navigation within the virtual object;
wherein the set of points is the set of voxels on the surface of at least a portion of a sphere centered at the current voxel and having a radius equal to the DFB value of the current voxel, and wherein the next point has a DFB value that is higher than the DFB value of its neighbors.

2. The computer readable medium containing instructions for generating a centerline as set forth in claim 1, wherein the next point is the voxel on the surface of the sphere having the maximum DFB value.

3. A computer-readable medium which includes thereon a set of instructions for generating a centerline in a virtual object represented as a plurality of voxels, wherein the set of instructions are configured to program a processing arrangement to perform the steps of:
computing the distance from boundary (DFB) for each voxel in the virtual object;
selecting a seed point in the virtual object as the current voxel;
selecting a next point from a set of points having a distance from the current voxel determined by the distance from boundary value of the current voxel;
connecting the current voxel to the next point and assigning the next point as the new current voxel; and
repeating the steps of selecting a next point and connecting until the centerline for the object is complete, thereby generating a centerline for at least one of display and navigation within the virtual object,
wherein the set of points is defined by the surface of a cube inscribed within the sphere.

4. The computer readable medium containing instructions for generating a centerline as set forth in claim 1, wherein the connection of current voxels and next points is defined by straight line segments.

5. The computer readable medium containing instructions for generating a centerline as set forth in claim 1, wherein the connection of current voxels and next points is defined by a ridge in the DFB field between each two connected voxels.

6. The computer readable medium containing instructions for generating a centerline as set forth in claim 1, wherein the connection of current voxels and next points is defined by a smooth curve.

7. A system for generating a centerline of a virtual object represented as a plurality of voxels, comprising:
a computer-readable medium which includes thereon a set of instructions, wherein the set of instructions are configured to program a processing arrangement to:
compute the distance from boundary (DFB) for each voxel in the region;
select a seed point in the region;
compute a minimum cost spanning tree (MCST) rooted at the seed point for all voxels in the region;
determine the furthest voxel with the longest piecewise accumulated distance along the edges of the MCST; and
define the centerline as the path within the MCST between the seed voxel and the furthest voxel, thereby generating a centerline for at least one of display and navigation within the virtual object;

wherein computing a minimum cost spanning tree includes assigning a cost value to voxels which is inversely proportional to the voxel's DFB value; and
wherein the centerline is determined from back-trace in an accumulated cost field using the local gradient descent.

8. Computer readable media programmed with instructions to direct a computer to generate a centerline of a virtual object comprising the steps:
computing the distance from boundary (DFB) for each voxel in the region;
selecting a seed point in the region;
computing a minimum cost spanning tree (MCST) rooted at the seed point for all voxels in the region;
determining the furthest voxel with the longest piecewise accumulated distance along the edges of the MCST; and
defining the centerline as the path within the MCST between the seed voxel and the furthest voxel, thereby generating a centerline for at least one of display and navigation within the virtual object;
wherein the step of computing a minimum cost spanning tree includes assigning a cost value to voxels which is inversely proportional to the voxel's DFB value; and wherein the centerline path is determined from back-trace in an accumulated cost field using the local gradient descent.