• Ei tuloksia

We developed the CSD algorithm to be applied as the instance segmentation of myelinated axons, incorporating the tubularity of myelinated axons in the segmentation process. The main idea of the CSD algorithm was to guide the decomposition using the object curve skeleton and to cut the object by restricted translational sweeps, as shown in Figure 8. We designed the CSD algorithm for the genus zeros objects.

5.4.1 Skeleton partitioning

We used the object curve skeleton to drive the decomposition. We partitioned the object curve skeleton graph into several distinct sub-skeletons, the union of which was equal to the curve skeleton. Each sub-skeleton corresponded to exactly one semantic object component. The remainder of this section describes the details of skeleton partitioning. Curve skeleton

To determine the curve skeleton of an object with sub-voxel precision, we applied the method in (Hassouna and Farag, 2005) and (Van Uitert and Bitter, 2007). This skeletonization method was a distance transform-based approach initiated by determining the point with the greatest distance from the object surface, denoted as π‘₯βˆ—, and finding the furthest geodesic point from that point, denoted as π‘₯𝑠. The path between π‘₯𝑠 and π‘₯βˆ— forms a skeleton branch, denoted as 𝛾(𝑑): [0,1] β†’ ℝ3, enforced to run from the middle of the object using a cost function 𝐹 that could increase if the path moved away from the center. We determined the distance field 𝐷(π‘₯) from the object surface and assigned 𝐹 = 1 βˆ’ (𝐷(π‘₯)

𝐷(π‘₯βˆ—))2. Starting at π‘₯𝑠, the skeleton branch 𝛾 was traced by a back-tracking procedure on 𝐹 to reach π‘₯βˆ—, written as:

𝛾 = argmin

𝑃 ∫ 𝐹(𝑃(𝑑))

π‘₯βˆ— π‘₯𝑠

d𝑑, (22)

where 𝑑 traces the path 𝑃, and the Euler scheme was used for the back-tracking procedure. This process was repeated to determine other skeleton branches, forming the object curve skeleton, but rather than using the π‘₯βˆ— as the starting point, all points of the previously calculated branches were used (Figure 8c).

Figure 8. Outline of the CSD algorithm. (a) An object is a union of several tubular components. (b) A voxel-based representation of the object. (c) The object curve skeleton is the union of skeleton branches, denoted as 𝛾. A junction-point 𝑗 is defined as such a point that skeleton branches connect. (d) The curve skeleton of the object is partitioned into maximal-length sub-skeletons πœ“ over a local

orientation cost. (e) On a sub-skeleton πœ“ and in the proximity of every 𝑗 ∈ πœ“, we define two decomposition intervals, shown with red filled-circles. The object is swept along πœ“ and towards the 𝑗 in the search of a critical point in each interval. At a critical point, the geometry of the object changes substantially. (f) We cut the object at critical points to obtain object parts. (g) The object parts along the same sub-skeleton are assigned the same label, constructing a semantic component. We use generalized cylinders to further reconstruct the acquired

semantic-component. Skeleton graph decomposition

Extracting skeleton branches of the object was not sufficient for a semantic decomposition, and we were often required to represent a semantic component with several skeleton branches (Figure 8d). We considered connectivity, length, and local orientation, to merge skeleton branches. We devised an algorithm that traversed the object's skeleton graph and decomposed it into distinct paths iteratively, where each path corresponded to a semantic component. At each iteration, the algorithm started at the longest edge of the graph and traversed edges that could locally minimize an orientation cost function until visiting a leaf node. This algorithm partitioned the graph into several distinct paths, the union of which covers the set of graph edges. In the skeleton domain, we call each path a sub-skeleton.

5.4.2 Cylindrical decomposition

Following the graph decomposition, we proposed to sweep the object along object sub-skeletons, restricted in decomposition intervals, to find locations where the object geometry changes substantially. We called such locations critical points; at these points, the object was cut into parts and intersections. Decomposition interval

We denoted a parametrized sub-skeleton πœ“(𝑑): [0, 1] β†’ ℝ3. We defined two

decomposition intervals [𝑑𝑠+, 𝑑𝑒+] and [π‘‘π‘’βˆ’, π‘‘π‘ βˆ’] in the proximity of a junction-point 𝑑𝑗 to restrict the sweep of the object along its corresponding sub-skeleton. To

determine the boundaries of the decomposition intervals, we defined an upper threshold π‘Ÿπ‘  and a lower threshold π‘Ÿπ‘’ based on π‘Ÿ, the radius of the maximal inscribed ball at 𝑑𝑗, and two factors 𝛼𝑠β‰₯ 1 and 𝛼𝑒β‰₯ 0, where 𝛼𝑠β‰₯ 𝛼𝑠, as π‘Ÿπ‘ = 𝛼𝑠× π‘Ÿ and π‘Ÿπ‘’= 𝛼𝑒× π‘Ÿ (Figure 8e). Critical point

A critical point on a sub-skeleton is where the object cross-section changes substantially at that point. We used the Hausdorff distance to measure cross-sectional changes in a decomposition interval. In this case, we swept the object surface in decomposition intervals by a cross-sectional plane and compared the Hausdorff distance between a cross-sectional contour at one point with the

(Chazal, Lieutier and Rossignac, 2005) to find the average curve between two nearly similar curves. We normalized the Hausdorff distance between zero and one and defined a similarity threshold as πœƒπ». While sweeping the object surface in a decomposition interval, the inquiry would continue to the next point when the normalized Hausdorff distance was smaller than πœƒπ», otherwise, the inquiry would stop and the point could be called a critical point (Figure 8e).

5.4.3 Object reconstruction

Given the critical points, we cut the object at all such locations and decomposed the object into semantic parts and intersections. The final decomposition step was to discard intersections and assign the same label to object parts along the same sub-skeleton. We reconstructed the semantic components at intersections using generalized cylinders (Figure 8f, g). A generalized cylinder represents an elongated surface on an arbitrary axis and smoothly varying cross-sections (Shani and

Ballard, 1984). We constructed a generalized cylinder Ξ¦: ℝ2β†’ ℝ3 as a linear homotopy between two simple closed curves 𝐢𝑐1and 𝐢𝑐2 elongated on a simple curve 𝜁 βŠ‚ ℝ3, where the curves were obtained by cross-sectioning the object surface at critical points 𝑐1 and 𝑐2. We defined 𝜁 to be the spline interpolation of the sub-skeleton between the critical points. The acquired generalized cylinder was used for reconstructing the object at an intersection.