VAIRSEGVisionX V4
NAME
vairseg − a framework for airway segmentation
SYNOPSISvairseg if=<ifile> [sp=<x,y,z>] [of=<ofile>] [-v] [-w] [-db] [-c]
DESCRIPTIONvairseg performs the iterative segmentation of an airway tree; it also provides a framework for the implemention of alternative strategies. The output of the program is either a binary image (default) or a short image with an unique label for individual airway segment. In the latter case, each segment is labeled starting with 1, and the background voxels are labeled with 0.
Internally, a node is allocated for each individual segment and any subsequent segments are represented as children nodes. A summary of the airway tree can be saved in a text file specified by the os= option. The format of the file is as follows: each field is comma-separated, the first line lists the number of segments found for each respective generation (starting with 1, the trachea, and 2, the bronchi), the following lines, one for each generation, list the length of the segments that the program was able to locate.
Details of the airway segmentation are available upon request by using the -db flag and the following information is reported for each segment node:
1. grown: 0 if
not grown, 1 if grown
2. id: unique segment ID
3. generation: branch generation starting at 1
4. starting point: starting point of the segment
5. direction: vector specifying the expected direction of
the segment
6. length: length of the segment’s centerline (mm)
7. diameter: expected diameter (mm)
8. number of children: number of nodes derived from this
segment
The segmentation begins with the trachea with a seed point determined by the program and a direction vector set to <0,0,1>. Optionally the user can specify a seed point by using the sp= option.
If the trachea seed point is specified, the algorithm tracks in both directions starting from the seed point (up and down) for segmentation using the same procedure.
If the -c
option is specified, vairseg will also output the carina
location (x,y,z) based on the following rules.
1. If there are two segments connected to the main segment
(trachea) and their starting center locations are c1 and c2
and if both c1 and c2 are at a reasonable location (at least
70mm from the scan top or at least 50mm from the specified
trachea seed point), obtain the middle point c3 of c1 and
c2. Project c3 directly upwards until it reaches the
segmented airway region to determine carina.
2. If there is no segment connected to trachea or the above conditions are not met, report carina cannot be found.
CUSTOMIZATIONThe framework can be customized. The programmer needs to re-implement the algorithm for growing individual branch and the algorithm for detecting the bifurcation (or the termination of the current branch).
A procedure for
computing a cylindrical ROI is provided. The following set
of parameters define a cylinder:
1. starting point: center of the top-most surface (in img
coordinate)
2. direction: direction of the axis (in real coordinate)
3. voxel size: voxel resolution in each dimension(mm)
4. distance: height of the cylinder (in real coordinate)
the default initial cylinder height was changed from 10 to
15;
the overlapping distance was changed to 6 after 3rd
generation
(consistent with the original overlapping after 3rd
generation).
5. diameter: diameter of the cylinder (in real
coordinate)
A method to
prevent leaks is implemented based on the following rules.
1. Assume there is no leak in the first 2 tree generations
(trachea and main bronchi). (This used to be first 3
generations)
2. Starting from the 3rd generation, report a leak if one of
the following two conditions is met: a) if the crossing
region between the current cylinder and the previous
cylinder has a surface area greater than alpha times
(default 0.5) the current cylinder’s surface area
(before growing); b) if the current grown volume is more
than beta times (default 3) the previous volume (after
growing).
3. Starting from the 4th generation, report a leak if the
compactness of the current grown segment is less than 0.05.
The compactness is defined as
volume/pow(surfacearea,1.5).
if= must be a short image.
if= |
input whole lung CT scan | ||
of= |
output image (optionally with labeled segments) | ||
os= |
output text file with airway tree summary in csv format. The fields are generation, id, start coordinates (x,y,z), length, direction vectors (x,y,z), number of children. | ||
g= |
number of generations to grow (default=6) | ||
th= |
initial threshold in HU (default=-950) | ||
a= |
alpha leak-detector parameter (default=0.5) | ||
b= |
beta leak-detector parameter (default=3.0) | ||
-l |
output labeled short image (default: binary byte) | ||
-c |
output carina (x,y,z) location | ||
-v |
verbose mode |
J. Lee