VAIRSEGVisionX V4 NAME

vairseg − a framework for airway segmentation

SYNOPSIS

vairseg if=<ifile> [sp=<x,y,z>] [of=<ofile>] [-v] [-w] [-db] [-c]

DESCRIPTION

vairseg 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.

CUSTOMIZATION

The 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)

LEAK DETECTION

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).

CONSTRAINT

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

AUTHOR

J. Lee