FIELD
[0001] This disclosure relates to image processing systems and methods to improve 3D segmentation
and anatomy classification. In particular the disclosure is directed at improved techniques
and method of identifying structures within computed tomography (CT) images and three-dimensional
(3D) models derived therefrom, to improve surgical or treatment planning.
BACKGROUND
[0002] In many domains there's a need for segmenting and/or classifying voxels in a volumetric
data. In terms of medical imaging, there are many open source and proprietary systems
that enable manual segmentation and/or classification of medical images such as CT
images. These systems typically require a clinician or a technician in support of
a clinician to manually review the CT images and to effectively paint in the blood
vessels or other structures manually, sometimes pixel by pixel. The user normally
must scroll through many 2D slices and mark many pixels in order to obtain an accurate
3D segmentation/classification. As can be appreciated, such manual efforts are tedious
and time-consuming rendering such methods very difficult to utilize for any type of
surgical planning.
SUMMARY
[0003] One aspect of the disclosure is directed to a method of image processing including:
acquiring a computed tomography (CT) image data set of the lungs; segmenting the CT
image data set to identify airways and/or blood vessels in the CT image data set;
skeletonizing the segmented CT image data by identifying the center points of the
airways and/or blood vessels and forming a skeleton; graphing the skeleton to identify
branches of the skeleton; assigning a branch identification (ID) to each branch of
the skeleton; associate each voxel of the segmented CT image data set with a branch
ID, where the branch ID of the voxel is the same as the branch ID of the closest center
point. The method of image processing also includes generating a three-dimensional
(3D) mesh model from the graph of the skeleton. The method of image processing also
includes associating each vertex of the 3D mesh model with a branch id, and displaying
in a user interface the 3D mesh model and a slice image from the image data set, where
portions of the 3D mesh model that appear in slice image are highlighted. Other embodiments
of this aspect include corresponding computer systems, apparatus, and computer programs
recorded on one or more computer storage devices, each configured to perform the actions
of the methods and systems described herein.
[0004] A further aspect of the disclosure is directed to a method of image processing including:
segmenting an image data set, skeletonizing the segmented image data set, graphing
the skeletonized image data set, assigning a branch identification (ID) for each branch
in the graph, associate each voxel of the segmented image data set with a branch id.
The method of image processing also includes generating a three-dimensional (3D) mesh
model from the graphed skeletonized image data set; and associating each vertex of
the 3D mesh model with a branch ID. Other embodiments of this aspect include corresponding
computer systems, apparatus, and computer programs recorded on one or more computer
storage devices, each configured to perform the actions of the methods and systems
described herein.
[0005] Implementations of this aspect of the disclosure may include one or more of the following
features. The method where a plurality of vertices with the same branch ID form an
object. The method where each pixel of the segmented image data set is associated
with an object in the 3D mesh model based on their branch ID. The method further including
presenting the 3D mesh model and the image data set on a user interface. The method
where the image data set is presented on the user interface as a slice image of the
image data set. The method where any portion of the slice image that corresponds to
a portion of an object of the 3D mesh model is colored the same as the corresponding
object. The method where the color of an object in the 3D mesh model may be changed
upon receipt of an appropriate command. The method where change of color of the object
results in a change in color of a corresponding portion of the image. The method where
the slice images of the image data set are scrollable. The method further including
receiving a selection of a pixel in the displayed image of the image data set. The
method may also include determining if a branch ID is associated with the selected
pixel. The method may also include highlighting all pixels in the displayed image
having the same branch ID in a common color when the selected pixel is associated
with a branch id. The method further including highlighting in the user interface
an object of the 3D mesh model having the same branch ID as the selected pixel in
the image data set. The method further including receiving a selection of an object
in a displayed 3D mesh model; determining the branch ID of the object. The method
may also include displaying all pixels in a displayed image of the image data set
having the same branch ID as the selected branch in a common color. The method further
including highlighting the object in the 3D mesh model in a contrasting color. The
method further including defining a cluster ID for each branch. The method further
including displaying all objects having a common cluster ID in a common color. The
method where the cluster ID is based on a commonality of the objects of the cluster.
The method where the commonality of the objects of the cluster is based on selecting
the by the smallest angle of intersection between connected branches or objects. Implementations
of the described techniques may include hardware, a method or process, or computer
software on a computer-accessible medium, including software, firmware, hardware,
or a combination of them installed on the system that in operation causes or cause
the system to perform the actions. One or more computer programs can be configured
to perform particular operations or actions by virtue of including instructions that,
when executed by data processing apparatus, cause the apparatus to perform the actions.
[0006] One aspect of the disclosure is directed to a system including: a processor in communication
with a display, and a computer readable recording medium storing thereon instructions
that when executed by the processor: read an image data set from the computer readable
recording medium, segment the image data set, skeletonize the segmented image data
set, graph the skeletonized image data set, assign a branch identification (ID) for
each branch in the graph, associate each voxel of the segmented image data set with
a branch ID, generate a three-dimensional (3D) mesh model from the graphed skeletonized
image data set. The system also causes the processor to associate each vertex of the
3D mesh model with a branch ID. The system also includes display in a user interface
the 3D mesh model and a slice image from the image data set, where portions of the
3D mesh model that appear in slice image are highlighted. Other embodiments of this
aspect include corresponding computer systems, apparatus, and computer programs recorded
on one or more computer storage devices, each configured to perform the actions of
the methods and systems described herein.
[0007] Implementations of this aspect of the disclosure may include one or more of the following
features. The system where the instructions that when executed by the processor: receive
a selection of a pixel in the displayed slice image, determine if a branch ID is associated
with the selected pixel, and highlight all pixels in the displayed image having the
same branch ID in a common color when the selected pixel is associated with a branch
ID, or receive a selection of an object in a displayed 3D mesh model, determine the
branch ID of the object, and display all pixels in the slice image having the same
branch ID as the selected branch in a common color. Implementations of the described
techniques may include hardware, a method or process, or computer software on a computer-accessible
medium, including software, firmware, hardware, or a combination of them installed
on the system that in operation causes or cause the system to perform the actions.
One or more computer programs can be configured to perform particular operations or
actions by virtue of including instructions that, when executed by data processing
apparatus, cause the apparatus to perform the actions.
BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Various exemplary embodiments are illustrated in the accompanying figures. It will
be appreciated that for simplicity and clarity of the illustration, elements shown
in the figures referenced below are not necessarily drawn to scale. Also, where considered
appropriate, reference numerals may be repeated among the figures to indicate like,
corresponding or analogous elements. The figures are listed below.
FIG. 1 is a flow chart describing an exemplary method of lining a segmentation graph
to volumetric data in accordance with the disclosure;
FIG. 2A depicts the result of segmentation of volumetric data in accordance with one
aspect of the disclosure;
FIG. 2B depicts the transition from segmented volumetric data to the skeleton of the
segmented volumetric data;
FIG. 2C depicts various methods of graphing a skeleton of FIG. 2B;
FIG. 3 is a user-interface implementing aspects of the result of the methods described
in FIG. 1;
FIG. 4 is a focused portion of a user interface in accordance with the disclosure;
FIG. 5 is a focused portion of a user interface in accordance with the disclosure;
FIG. 6 is a further user-interface implementing aspects of the result of the methods
described in FIG. 1;
FIG. 7 is a focused portion of a user interface in accordance with the disclosure;
and
FIG. 8 is a schematic diagram of a computer system capable of executing the methods
described herein.
DETAILED DESCRIPTION
[0009] The disclosure is directed at improved techniques and method of identifying structures
within CT images and 3D models derived therefrom. The improved identification of structures
allows for additional analysis of the images and 3D models and enables accurate surgical
or treatment planning.
[0010] One aspect of the disclosure is described with respect to the steps outlined in FIG.
1. These steps may be implemented in executable code such as software and firmware
or in hardware utilizing the components and systems of FIG. 8, below. As an initial
step, a CT image data set is read from a memory storing the image data set at step
102 and one or more volumetric segmentation algorithms are applied at step 104 to
the image data set. Segmentation can be employed to generate a 3D model of the anatomy
of the CT image data set. In the case of the lungs, the result of volumetric segmentation
can be a 3D model 202 as depicted in FIG 2A. However, 3D model generation is not necessarily
required for the method of the disclosure. What is required is the segmentation, which
separates the images into separate objects. In the case of the segmentation of the
lungs, the purpose of the segmentation is to separate the objects that make up the
airways and the vasculature (e.g., the luminal structures) from the surrounding lung
tissue.
[0011] Those of skill in the art will understand that while generally described in conjunction
with CT image data, that is a series of slice images that make up a 3D volume, the
instant disclosure is not so limited and may be implemented in a variety of imaging
techniques including magnetic resonance imaging (MRI), fluoroscopy, X-Ray, ultrasound,
positron emission tomography (PET), and other imaging techniques that generate 3D
image volumes without departing from the scope of the disclosure. Further, those of
skill in the art will recognize that a variety of different algorithms may be employed
to segment the CT image data set including connected component, region growing, thresholding,
clustering, watershed segmentation, edge detection, and others.
[0012] After the CT image data set is segmented (step 104), a skeleton is formed from the
volumetric segmentation at step 106. A skeleton is a shape that represents the general
form of an object. FIG. 2B depicts a skeleton 204 formed from a volumetric segmentation
206. The skeleton 204 is formed of a plurality of skeleton points 208 that identify
the centerlines of the objects that comprise the segmented volume 206. There are a
variety of techniques that can be employed for skeletonization of segmented volume
206 to define these skeleton points 208. For example, there are known a variety of
methods skeleton computation techniques including topological thinning, shortest path
determinations, and distance transformations from the object's boundaries. Any or
multiple of these methods may be employed herein without departing from the scope
of the disclosure.
[0013] Following skeletonization a graph 210 is created at step 108 as shown in FIG. 2C.
FIG. 2C is derived from
Babin, Danilo, et al. "Skeletonization method for vessel delineation of arteriovenous
malformation." Computers in biology and medicine 93 (2018): 93-105. A graph is a sequential object, where each successive component can be identified
based on its relationship to its neighbors. In slide (a) of FIG. 2C there is shown
a 2D graph of a skeleton. The numbers in each pixel of the graph represent the number
of neighbors of that pixel. In 2D a neighborhood is defined as 3x3 pixels, thus each
pixel has a neighborhood of 8 pixels. Those of skill in the art will recognize that
in 3D a voxel (3D representation of a pixel) has a neighborhood 26 voxels around each
individual voxel (e.g., a 3x3x3 matrix). Referring back to slide (a) of FIG. 2C the
numbers in each pixel in slide (a) represent the number of pixels in the surrounding
neighborhood which are also found in the skeleton derived at step 106. As shown in
slide (a) a pixel with 1 in the graph has just a single neighbor and may be described
as a leaf node 211 (e.g., end point of a branch). All of the pixels with 2 neighbors
are considered part of a branch 212. All the pixels with 3 or more neighbors are nodes
214 from which extend multiple branches. Slide (b) depicts the pixels of the nodes
214 and leaf nodes 211 in orange circles on the graph and the pixels of the branches
as green squares connected by dashed blue lines. Slide (c) removes the branches and
depicts the location of the pixels of the leaf nodes G
N1, G
N3, G
N4, and a node G
N2. Each branch 212 must have a node or leaf node at its terminal ends. In slide (d)
the node G
N2 is reduced to a single point 214, and the branches 212 are represented by a single
continuous line. As part of graphing of the skeleton, each branch 214 is assigned
an individual branch ID. Similarly, each node and leaf node is assigned an individual
node ID. Both the branch ID and the node IDs and the branches associated with each
node are stored in memory following the graphing step.
[0014] At step 110, each voxel of the volumetric segmentation is associated with a branch
ID. The branch ID associated with each voxel is the branch ID of the closest skeleton
point which is derived from the graphing process of step 210. In this way every voxel
of the volumetric segmentation is assigned a branch ID.
[0015] Next at step 112, a 3D mesh is generated from the graph. A 3D mesh is the structural
build of a 3D model consisting of polygons. 3D meshes use reference points, here the
voxels identified in the graph, to define shapes with height, width and depth. There
are a variety of different methods and algorithms for creating a 3D mesh, one such
algorithm is the marching cubes algorithm. The result of the 3D mesh generation is
again a 3D model, that is similar in outward appearance to a 3D model generated via
segmentation techniques, see FIG. 3.
[0016] At step 114 each vertex (point of connection of the polygons) in the 3D mesh is then
associated with a branch ID. The branch ID may be assigned by finding the closet skeleton
point to the vertex. In this way every vertex of the 3D mesh is associated with a
specific branch ID.
[0017] From the original volumetric segmentation at step 104, a variety of additional data
related to each branch has also been developed including branch size (diameter), branch
class, branch type (e.g., artery or vein), branch status and others. These data may
be used to limit the data in the 3D mesh model and to perform other analytical steps
as described herein. For example, the view of the 3D mesh model may be limited to
only those vessels larger than a pre-defined diameter, e.g., > 1mm.
[0018] With each voxel and each vertex of the mesh associated with a specific branch ID
a user interface (UI) 300 may be presented to a clinician such as seen in FIG. 3 where
the 3D mesh model 302 is shown in a first pane 304 on one side of the UI and the CT
images 306 from the CT image data set are shown in a second pane 308 on the second
side of the UI. Because the 3D mesh model is derived from the CT image data set, the
3D mesh model is necessarily registered with the CT image data set. Accordingly, a
number of options are available to the clinician in planning a surgical case or simply
seeking to understand the patient's anatomy.
[0019] The 3D mesh model can now be overlaid the original image data set (e.g. the CT image
data set). Because the 3D mesh model and the image data set are registered to one
another by overlaying them, as a user scrolls through the images of the original image
data set, portions of the 3D mesh model that align with that slice of the original
image data set are revealed. By using different colors such as blue for veins and
red for arteries the locations of these blood vessels can be seen in the image data
set. The nature of the portions of the 3D mesh model (e.g., vein, airway or artery)
may be determined using a variety of algorithms and techniques for determining their
nature based on the physiology of the patient, the size and shape of the structure
in question, and its connectedness to other components as well as other criteria known
to those of skill in the art. As will further be appreciated other colors may be used
for identifying aspects of the 3D mesh model and providing that information to a user
via a user interface.
[0020] As shown in FIG. 3, the second pane 308 displays colored portions which correlate
to the branches of the 3D mesh model 302 at their locations within the displayed CT
image 306. The CT image 306 is often provided in scrollable form, thus by scrolling
though successive CT images 306, the clinician can view branches as a continuum of
color as the branch is depicted in each successive CT image 306. This provides an
opportunity for a clinician to examine where branches (e.g., blood vessels) may be
located proximate a lesion or other areas of interest in the CT images 306.
[0021] In one embodiment, the clinician can click on a branch in the 3D mesh model 302.
The application driving the user interface 300 can then synchronize the second pane
308 such that the selected branch is visible in the displayed CT image 306. The CT
image 306 may be centered to display the CT image306 in which the closest skeleton
point to the branch selected in 3D mesh model 302. The portions of the branch which
are visible in that CT image 306 may be highlighted as depicted in FIG. 4. Further,
in the 3D mesh model 302, the entirety of that branch 310 may be highlighted as shown
in Fig. 5. The highlighting in the 3D mesh model 302 may be of a contrasting color
from the rest of the 3D mesh model, and the highlighting in the CT image 306, may
be of the same color as is chosen for the highlighting in the 3D mesh model 302.
[0022] Alternatively, the clinician, when scrolling through the CT images 306 in pane 308
may select a point in the CT image 306. If that point, a pixel, corresponds to a segmentation
(e.g., an airway, an artery, or a vein, etc.) all of the voxels that belong to the
same branch can be highlighted in both the CT image as shown in FIG. 4 and in the
3D mesh model 302, as shown in FIG. 5, for example using the same color or a common
color to show they correspond to one another. Again, providing information to the
clinician about the branch, the path it takes within the patient, and proximity to
other structures.
[0023] In an alternative option depicted in FIG. 6, starting at the 3D mesh model, a clinician
may select a branch in the 3D model. For example, the clinician may want to clearly
understand where a particular branch appears in the CT image data set. Once selected,
the clinician may change the branch's color for all voxels that have the same branch
ID as the selected branch. The clinician may choose to change the color of the branch.
As depicted on the right side of the UI in FIG. 6, the portions of the branch that
are viewable in the particular slice of the CT image data set have their color changed
as well. This allows the clinician to then scroll through the CT image data set and
make an assessment of the branch.
[0024] Another aspect of the disclosure is the use of clustering of branches. In accordance
with one aspect of the disclosure, the nature of the cluster may be selected or defined
by a user via a user interface either with respect to the CT image data set or the
3D mesh model. In one example of clustering, a clinician may be interested in the
blood vessels which feed or are in proximity to a tumor or lesion. While identifying
the blood vessels that are visible within a small window or margin around the tumor
may be useful, a better indication of blood flow and the related vasculature can be
viewed when considering all of the blood vessels within the lobe of the lung where
the tumor or lesion appears. By viewing all of the blood vessels (all branches) in
a single lobe of the lung where the lesion or tumor is found, determinations can be
made on how to proceed with the treatment, ordering of resection steps and determination
of approximate locations of critical structures (e.g., arteries for clamping, suturing,
or sealing) so that prior to the resection steps sufficient access is provided to
manipulate tools. Further, particular complications related to the resection may be
understood (e.g., proximity to the aorta, the heart, or other anatomical features)
long before the surgery is attempted.
[0025] In this example, all of the branches which are considered a portion of the cluster
(e.g., the lung lobe in question) are associated with a cluster ID. When clustering
is utilized, in the example described above with respect to FIG. 3, following selecting
a branch in the 3D mesh model 302, rather than centering the CT image 306 on the closest
skeleton point to the pixel of the selected branch and only showing those portions
of the segmentation with the same branch ID, all segments with the same cluster ID
may be displayed (e.g., by depicting all the branches of the cluster in a common color).
[0026] A further example of clustering can be useful in pathway generation as depicted in
FIG. 7. When a branch is selected in the 3D mesh model 302 a geometric clustering
constraint can be applied. These constraints may identify some commonality among the
branches. For example, to determine a pathway from a selected point back towards the
heart, the clustering constraint is to identify the connected branches to the selected
branch which have the smallest angle between connected branches. As depicted in FIG.
7 if branch 702 were selected, the connected branches 704 and 706 would be considered
part of the cluster, but branches 708 which intersects branch 702 at a greater angle
than branch 704 would not be part of the cluster. In this same way, branch 710 intersects
branch 704 at a greater angle than branch 706 and is thus excluded from the cluster.
The application performing the clustering can iterate the angle analysis process and
a cluster can be created from the selected branch 702 in the direction of the heart.
This may provide the clinician information regarding the significance of the selected
blood vessel or provide an alternative place for resection or some other clinical
determination when planning a procedure that impacts the blood vessel in question.
As will be appreciated, other criteria may be employed for the clustering either in
conjunction with the angle of intersection or as an alternative to develop the desired
cluster.
[0027] A further aspect of the disclosure relates to the use of neural networks or some
other appropriate learning software or algorithm in connection with the methods described
herein. Referring to the use of neural networks, a neural network must be trained.
This is done by allowing the neural network to analyze images (e.g., from CT image
data sets) in which the locations and identity of the vessels, airways, and structures
are known and have been analyzed and annotated to depict the location of these structures
in accordance with the methods described herein. Thus, the expedited and highly accurate
analysis and identification of the blood vessels and airways provide a high-quality
baseline to determine the efficacy and completeness of the neural network training.
[0028] During training of a neural network, a score is provided following each analysis
of each frame by the neural network. Over time and training, the neural network becomes
more adept at distinguishing the structures based on their size, changes in shape,
location in the CT image data set, the interconnections, etc. The result is a segmented
image data set where the distinctions between airways, blood vessels and other tissues
can be identified and displayed without the need for manual marking and identification
of the structures. There are a number of methods of training neural networks for use
in the methods of the instant disclosure. As will be appreciated, in at least one
embodiment, regardless of how robust the neural network becomes, a UI 300 may include
a requesting the clinician confirm the analyzes of the neural network.
Example 1 - Pulmonary Blood Vessel Classification
[0029] In order to help physicians plan the treatment, a pulmonary vasculature analysis
tool has been developed for the analysis of CT images in which the following steps
are performed. First segment the pulmonary vasculature from the patient CT. Next in
order to simplify the representation the segmentation is skeletonized, and a graph
is generated based on the skeleton. In the third step a deep learning classifier is
employed to separate arteries and veins. The resulted classified segmentation is visualized
to the user with the ability of editing.
[0030] Blood vessel classification relies on analyzing the local environment and by tracking
the vessel origin. To achieve this, a convolutional neural network classifies each
vessel independently based on its surrounding followed by a post processing algorithm
that incorporates global knowledge to refine the classification.
[0031] The input to the neural network is a 3D patch extracted around the main axis of the
vessel and the output is a probability of being artery or vein. The post processing
includes tracking of anatomical pathways along vasculature and performing majority
voting. The neural network has been trained and evaluated in a leave-one-out cross
validation scheme on 10 fully annotated CTs scans from the CARVE dataset found at
https://arteryvein.grand-challenge.org/.
[0032] The performance was measured using two methods. First an accuracy of individual vessel
classification was calculated and resulted in an average result of 86%. In addition,
the accuracy specifically on the segmental blood vessels was evaluated and the accuracy
in this case was 87%. The tool developed achieves significant performance of the classification
that can be even further improved by additional annotated training data or by a more
accurate input skeletonization.
Example 2 - Lung blood vessel segmentation using Deep Learning
[0033] Performing lung cancer therapy treatment such as nodule ablation or surgery requires
a physician to study the patient anatomy, specifically the blood vessels that are
in the vicinity of the lesion or the area of interest. For example, when performing
a lobectomy, a surgeon is interested in blood vessels that enter and leave the specific
lobe. Physicians usually look at a CT scan prior and use it to plan the therapeutic
procedure.
[0035] The network achieved an average validation dice accuracy score of 0.922. The network
was also compared to an existing rule-based algorithm. Visual inspection revealed
that the network was far better than the rule-based algorithm and was even able to
correct some mistakes in the ground truth. In terms of computational costs, the network
was able to fully segment a new CT in an average time of -15 seconds, while the classical
algorithm average time was -10 minutes. The neural network can be further trained
to be more robust to pathologies and as a basis for a blood vessel classification
network that distinguishes between arteries and veins.
[0036] Those of ordinary skill in the art will recognize that the methods and systems described
herein may be embodied on one or more applications operable on a computer system (FIG.8)
for a variety of diagnostic and therapeutic purposes. As an initial matter, these
systems and methods may be embodied on one or more educational or teaching applications.
Further the methods and systems may be incorporated into a procedure planning system
where structures, blood vessels, and other features found in the CT image data set
are identified and a surgical or interventional path is planned to enable biopsy or
therapy to be delivered at a desired location. Still further, these methods may be
employed to model blood flow paths following surgery to ensure that tissues that are
not to be resected or removed will still be sufficiently supplied with blood following
the procedure. Of course, those of skill in the art will recognize that a variety
of additional and complementary uses of the image processing methods described herein.
[0037] Reference is now made to FIG. 8, which is a schematic diagram of a system 1000 configured
for use with the methods of the disclosure including the methods of FIG. 1. System
1000 may include a workstation 1001. In some embodiments, workstation 1001 may be
coupled with an imaging device 1015 such as a CT scanner or an MRI, directly or indirectly,
e.g., by wireless communication. Workstation 1001 may include a memory 1002, a processor
1004, a display 1006 and an input device 1010. Processor or hardware processor 1004
may include one or more hardware processors. Workstation 1001 may optionally include
an output module 1012 and a network interface 1008. Memory 1002 may store an application
1018 and image data 1014. Application 1018 may include instructions executable by
processor 1004 for executing the methods of the disclosure including the method of
FIG. 1.
[0038] Application 1018 may further include a user interface 1016. Image data 1014 may include
image data sets such as CT image data sets and others useable herein. Processor 1004
may be coupled with memory 1002, display 1006, input device 1010, output module 1012,
network interface 1008 and fluoroscope 1015. Workstation 1001 may be a stationary
computing device, such as a personal computer, or a portable computing device such
as a tablet computer. Workstation 1001 may embed a plurality of computer devices.
[0039] Memory 1002 may include any non-transitory computer-readable storage media for storing
data and/or software including instructions that are executable by processor 1004
and which control the operation of workstation 1001 and, in some embodiments, may
also control the operation of imaging device 1015. In an embodiment, memory 1002 may
include one or more storage devices such as solid-state storage devices, e.g., flash
memory chips. Alternatively, or in addition to the one or more solid-state storage
devices, memory 1002 may include one or more mass storage devices connected to the
processor 1004 through a mass storage controller (not shown) and a communications
bus (not shown).
[0040] Although the description of computer-readable media contained herein refers to solid-state
storage, it should be appreciated by those skilled in the art that computer-readable
storage media can be any available media that can be accessed by the processor 1004.
That is, computer readable storage media may include non-transitory, volatile and
non-volatile, removable and non-removable media implemented in any method or technology
for storage of information such as computer-readable instructions, data structures,
program modules or other data. For example, computer-readable storage media may include
RAM, ROM, EPROM, EEPROM, flash memory or other solid-state memory technology, CD-ROM,
DVD, Blu-Ray or other optical storage, magnetic cassettes, magnetic tape, magnetic
disk storage or other magnetic storage devices, or any other medium which may be used
to store the desired information, and which may be accessed by workstation 1001.
[0041] Application 1018 may, when executed by processor 1004, cause display 1006 to present
user interface 1016. User interface 1016 may be configured to present to the user
a variety of images and models as described herein. User interface 1016 may be further
configured to display and mark aspects of the images and 3D models in different colors
depending on their purpose, function, importance, etc.
[0042] Network interface 1008 may be configured to connect to a network such as a local
area network (LAN) consisting of a wired network and/or a wireless network, a wide
area network (WAN), a wireless mobile network, a Bluetooth network, and/or the Internet.
Network interface 1008 may be used to connect between workstation 1001 and imaging
device 1015. Network interface 1008 may be also used to receive image data 1014. Input
device 1010 may be any device by which a user may interact with workstation 1001,
such as, for example, a mouse, keyboard, foot pedal, touch screen, and/or voice interface.
Output module 1012 may include any connectivity port or bus, such as, for example,
parallel ports, serial ports, universal serial busses (USB), or any other similar
connectivity port known to those skilled in the art.
[0043] While several aspects of the disclosure have been shown in the drawings, it is not
intended that the disclosure be limited thereto, as it is intended that the disclosure
be as broad in scope as the art will allow and that the specification be read likewise.
Therefore, the above description should not be construed as limiting, but merely as
exemplifications of particular aspects.
[0044] The invention is described by the following numbered paragraphs:-
- 1. A method of image processing comprising:
acquiring a computed tomography (CT) image data set of the lungs;
segmenting the CT image data set to identify airways or blood vessels in the CT image
data set;
skeletonizing the segmented CT image data by identifying the center points of the
airways or blood vessels and forming a skeleton;
graphing the skeleton to identify branches of the skeleton;
assigning a branch identification (ID) to each branch of the skeleton;
associate each voxel of the segmented CT image data set with a branch ID, wherein
the branch ID of the voxel is the same as the branch ID of the closest center point;
generating a three-dimensional (3D) mesh model from the graph of the skeleton;
associating each vertex of the 3D mesh model with a branch ID; and
displaying in a user interface the 3D mesh model and a slice image from the image
data set, wherein portions of the 3D mesh model that appear in slice image are highlighted.
- 2. A method of image processing comprising:
segmenting an image data set;
skeletonizing the segmented image data set;
graphing the skeletonized image data set;
assigning a branch identification (ID) for each branch in the graph;
associate each voxel of the segmented image data set with a branch ID;
generating a three-dimensional (3D) mesh model from the graphed skeletonized image
data set; and
associating each vertex of the 3D mesh model with a branch ID.
- 3. The method of paragraph 2, wherein a plurality of vertices with the same branch
ID form an object.
- 4. The method of paragraph 3, wherein each pixel of the segmented image data set is
associated with an object in the 3D mesh model based on their branch ID.
- 5. The method of paragraph 4, further comprising presenting the 3D mesh model and
the image data set on a user interface.
- 6. The method of paragraph 5, wherein the image data set is presented on the user
interface as a slice image of the image data set.
- 7. The method of paragraph 6, wherein any portion of the slice image that corresponds
to a portion of an object of the 3D mesh model is colored the same as the corresponding
object.
- 8. The method of paragraph 7, wherein the color of an object in the 3D mesh model
may be changed upon receipt of an appropriate command.
- 9. The method of claim paragraph 8, wherein change of color of the object results
in a change in color of a corresponding portion of the image.
- 10. The method of paragraph 9, wherein the slice images of the image data set are
scrollable.
- 11. The method of paragraph 4, further comprising:
receiving a selection of a pixel in a displayed image of the image data set;
determining if a branch ID is associated with the selected pixel; and
highlighting all pixels in the displayed image having the same branch ID in a common
color when the selected pixel is associated with a branch ID.
- 12. The method of paragraph 11, further comprising highlighting in a user interface
an object of the 3D mesh model having the same branch ID as the selected pixel in
the image data set.
- 13. The method of paragraph 4, further comprising:
receiving a selection of an object in a displayed 3D mesh model;
determining the branch ID of the object; and
displaying all pixels in a displayed image of the image data set having the same branch
ID as the selected branch in a common color.
- 14. The method of paragraph 13, further comprising highlighting the object in the
3D mesh model in a contrasting color.
- 15. The method of paragraph 3, further comprising defining a cluster ID for each branch.
- 16. The method of paragraph 15, further comprising displaying all objects having a
common cluster ID in a common color.
- 17. The method of paragraph 16, wherein the cluster ID is based on a commonality of
the objects of the cluster.
- 18. The method of paragraph 17, wherein the commonality of the objects of the cluster
is based on selecting the by the smallest angle of intersection between connected
branches or objects.
- 19. A system comprising:
a processor in communication with a display; and
a computer readable recording medium storing thereon instructions that when executed
by the processor:
read an image data set from the computer readable recording medium;
segment the image data set;
skeletonize the segmented image data set;
graph the skeletonized image data set;
assign a branch identification (ID) for each branch in the graph;
associate each voxel of the segmented image data set with a branch ID;
generate a three-dimensional (3D) mesh model from the graphed skeletonized image data
set;
associate each vertex of the 3D mesh model with a branch ID; and
display in a user interface the 3D mesh model and a slice image from the image data
set, wherein portions of the 3D mesh model that appear in slice image are highlighted.
- 20. The system of paragraph 19, wherein the instructions that when executed by the
processor: receive a selection of a pixel in the displayed slice image;
determine if a branch ID is associated with the selected pixel; and
highlight all pixels in the displayed slice image having the same branch ID in a common
color when the selected pixel is associated with a branch ID, or
receive a selection of an object in a displayed 3D mesh model;
determine the branch ID of the object; and
display all pixels in the slice image having the same branch ID as the selected branch
in a common color.
1. A method of image processing comprising:
acquiring a computed tomography (CT) image data set of the lungs;
segmenting the CT image data set to identify airways or blood vessels in the CT image
data set;
skeletonizing the segmented CT image data by identifying the center points of the
airways or blood vessels and forming a skeleton;
graphing the skeleton to identify branches of the skeleton;
assigning a branch identification (ID) to each branch of the skeleton;
associate each voxel of the segmented CT image data set with a branch ID, wherein
the branch ID of the voxel is the same as the branch ID of the closest center point;
generating a three-dimensional (3D) mesh model from the graph of the skeleton;
associating each vertex of the 3D mesh model with a branch ID; and
displaying in a user interface the 3D mesh model and a slice image from the image
data set, wherein portions of the 3D mesh model that appear in slice image are highlighted.
2. A method of image processing comprising:
segmenting an image data set;
skeletonizing the segmented image data set;
graphing the skeletonized image data set;
assigning a branch identification (ID) for each branch in the graph;
associate each voxel of the segmented image data set with a branch ID;
generating a three-dimensional (3D) mesh model from the graphed skeletonized image
data set; and
associating each vertex of the 3D mesh model with a branch ID.
3. The method of claim 2, wherein a plurality of vertices with the same branch ID form
an object; preferably wherein each pixel of the segmented image data set is associated
with an object in the 3D mesh model based on their branch ID.
4. The method of claim 3, further comprising presenting the 3D mesh model and the image
data set on a user interface; preferably wherein the image data set is presented on
the user interface as a slice image of the image data set.
5. The method of claim 4, wherein any portion of the slice image that corresponds to
a portion of an object of the 3D mesh model is colored the same as the corresponding
object; preferably wherein the color of an object in the 3D mesh model may be changed
upon receipt of an appropriate command.
6. The method of claim 5, wherein change of color of the object results in a change in
color of a corresponding portion of the image; preferably wherein the slice images
of the image data set are scrollable.
7. The method of any of claims 4 to 6, further comprising:
receiving a selection of a pixel in a displayed image of the image data set;
determining if a branch ID is associated with the selected pixel; and
highlighting all pixels in the displayed image having the same branch ID in a common
color when the selected pixel is associated with a branch ID; preferably further comprising
highlighting in a user interface an object of the 3D mesh model having the same branch
ID as the selected pixel in the image data set.
8. The method of any of claims 4 to 7, further comprising:
receiving a selection of an object in a displayed 3D mesh model;
determining the branch ID of the object; and
displaying all pixels in a displayed image of the image data set having the same branch
ID as the selected branch in a common color; preferably further comprising highlighting
the object in the 3D mesh model in a contrasting color.
9. The method of claim 3, further comprising defining a cluster ID for each branch.
10. The method of claim 9, further comprising displaying all objects having a common cluster
ID in a common color; preferably wherein the cluster ID is based on a commonality
of the objects of the cluster.
11. The method of claim 10, wherein the commonality of the objects of the cluster is based
on selecting the by the smallest angle of intersection between connected branches
or objects.
12. A system comprising:
a processor in communication with a display; and
a computer readable recording medium storing thereon instructions that when executed
by the processor:
read an image data set from the computer readable recording medium;
segment the image data set;
skeletonize the segmented image data set;
graph the skeletonized image data set;
assign a branch identification (ID) for each branch in the graph;
associate each voxel of the segmented image data set with a branch ID;
generate a three-dimensional (3D) mesh model from the graphed skeletonized image data
set;
associate each vertex of the 3D mesh model with a branch ID; and
display in a user interface the 3D mesh model and a slice image from the image data
set, wherein portions of the 3D mesh model that appear in slice image are highlighted.
13. The system of claim 12, wherein the instructions that when executed by the processor:
receive a selection of a pixel in the displayed slice image;
determine if a branch ID is associated with the selected pixel; and
highlight all pixels in the displayed slice image having the same branch ID in a common
color when the selected pixel is associated with a branch ID, or
receive a selection of an object in a displayed 3D mesh model;
determine the branch ID of the object; and
display all pixels in the slice image having the same branch ID as the selected branch
in a common color.
14. A computer readable recording medium storing thereon instructions that when executed
by a processor of a system causes the system to perform the method of any of claims
1 to 11.