Saulo sib04


Published on

Topologically adaptable snakes, or simply T-snakes, are
a standard tool for automatically identifying multiple segments
in an image. This work introduces a novel approach
for controlling the topology of a T-snake. It focuses on the
loops formed by the so-called projected curve which is obtained
at every stage of the snake evolution. The idea is to
make that curve the image of a piecewise linear mapping
of an adequate class. Then, with the help of an additional
structure—the Loop-Tree—it is possible to decide in O(1)
time whether the region enclosed by each loop has already
been explored by the snake. This makes it possible to construct
an enhanced algorithm for evolving T-snakes whose
performance is assessed by means of statistics and examples.

Published in: Technology, Lifestyle
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Saulo sib04

  1. 1. Loop Snakes: Snakes with Enhanced Topology Control Antonio Oliveira, Saulo Ribeiro, Ricardo Farias, Cl´ udio Esperanca a ¸ Dept. of Systems Engineering and Computer Sciences - COPPE/UFRJ Rio de Janeiro - R.J. , Brazil oliveira, saulo, rfarias, Gilson Giraldi National Lab. of Scientific Computing Petr´ polis - R.J. , Brazil o Abstract for topologically adaptable snakes. These snakes have the ability of changing their topology either by subdivision or Topologically adaptable snakes, or simply T-snakes, are by aggregation allowing every segment contour to be ap-a standard tool for automatically identifying multiple seg- proached by exactly one snake or one snake from inside andments in an image. This work introduces a novel approach another from outside. In ideal circumstances, T-snakes arefor controlling the topology of a T-snake. It focuses on the used according to one of the following schemes:loops formed by the so-called projected curve which is ob- (A) Initially, the whole image is encircled by a closedtained at every stage of the snake evolution. The idea is to snake. During its evolution, that snake is continuously con-make that curve the image of a piecewise linear mapping tracted and eventually broken into smaller ones which areof an adequate class. Then, with the help of an additional subjected to the same contraction process. When all snakesstructure—the Loop-Tree—it is possible to decide in O(1) have either been adjusted to a target contour or become tootime whether the region enclosed by each loop has already small, the process stops. (B) In a dual way, a series of verybeen explored by the snake. This makes it possible to con- small snakes, the seed snakes, are randomly spread over thestruct an enhanced algorithm for evolving T-snakes whose image. They are continuously expanded and when two ofperformance is assessed by means of statistics and exam- them collide they are merged into a single one. A contourples. having seeds in its interior will have a snake approaching it from the inside, whereas seeds in the background gener- ate snakes approaching the contours from outside.1. Introduction The framework of a T-snake, is that of a common snake plus a 2D-structure—the Auxiliary Structure, in short: AS— The use of Active Contour Models or Snakes has be- containing information that makes it possible to directly as-come a standard technique for segmenting an image. Hun- sociate vertices of a polygonal curve which are close in 2Ddreds of works about the plain snakes model have been pro- but far apart along the curve. This additional structure con-duced since it was introduced in [2]. One of its most ob- sists of a matrix whose elements are associated to the ver-vious limitations, however, is the fact that for each contour tices [3], edges [1] or, as done here, cells of a square meshthat must be identified, a different snake has to be initial- covering the image domain.ized by the user. Further, in some applications, all segments The original motivation of our approach was to addresshaving certain properties must be found or simply counted some well-known difficulties of the original strategy pro-and the number of them is large enough as to render this ap- posed in [3], which is described in detail in Section 2. Sim-proach totally inappropriate, for instance: identifying cel- ilarly to that strategy, the approach proposed in this worklular structures of a given type in microscope images, all also generates at a stage k, two curves: (I) The physicallyblood vessels in an angiogram or electronic components on transformed curve—TCk —which is defined by the newa board. locations of the snaxels, after they have been moved by the That limitation has been overcome with the introduction forces of the chosen physical model from their positions inby McInerney and Terzopoulos in [3], of the T-snakes, short S k , the initial snake of the stage. (II) The so-called pro-
  2. 2. jected curve—PCk —, which is defined by the sequence of iteration of the method. For the sake of visibility S k -snaxelsintersections between TCk and mesh edges. and PCk -vertices on diagonal edges have been excluded. Assume that the snake moves continuously from S k to Procedure Evolving an original T-SnakePCk . Then, it sweeps (or burns or visits, which in this con- • Step 1. Apply to each snaxel si , the movement deter-text are used as synonyms), a whole strip of points. Call mined by the physical model employed. The obtainedvisited set the set of points swept in all stages up to the cur- points (ti , i = 0, . . . , I) define the Transformed Curve,rent one. While McInerney’s approach uses the Auxiliary TCk .Sructure to explicitly control that visited set, this is accom- • Step 2. Build the Projected Curve, PCk = [s j , j = 0, ..., J]plished implicitly in our approach. We focus on the loops by concatenating the edges [s j , s j+1 ], defined by twoformed by PCk , some of which will give rise to the new successive intersections of TCk with edges of τ.snakes in stage k + 1. For this reason, we choose to callthem loop snakes. PCk is considered as the image of a di- • Step 3. For i = 0, ..., I, let Qi be the quadrilateral de-lated version of the snake S k by a piecewise linear map- fined by si−1 , si , ti and ti−1 . These will be termed theping Γk . Defining Γk on a dilated version of S k makes it sweeping quadrilaterals of S k . Check whether Qi con-easier to satisfy a few local conditions which are necessary tains vertices of the mesh which are still unvisited andfor making the strategy computationally attractive. Section change the AS corresponding element to “visited”.3 describes those conditions while Section 4 is dedicated toshow how they can be enforced in straightforward way. Some loops of PCk , labeled open or unexplored, de-limit regions yet to be visited by the snake while others,the closed or explored loops, enclose regions that have al-ready been explored. Results shown in Section 5 demon-strate that it is possible to infer the label of a loop, simplyby examining the label of adjacent loops found earlier. Evenloops that have no earlier adjacent ones can be correctly la-beled in O(1) time. The process is quite simple except for the case when PCkreturns to a cell already visited. Section 6 shows how to han-dle that case. Two possibilities must then be explored: ei-ther C becomes a double cell, that is, one with a PCk vertexon each edge, or a topological change involving the edges Figure 1. One iteration of the original T-snake.of PCk contained in C must be realized. The implementa-tion of such a change depends on whether PCk has a self-crossing or knot in C, or revisits an edge of C. Revisiting a • Step 4. Consider that all transition edges are initiallycell triggers a more elaborated process but this occurs very unmarked and traverse PCk . Every time an unmarkedinfrequently if compared to the enormous number of snax- transition edge e0 is reached execute:els generated, as is shown by statistics presented in Section – a) Let e = e0 and let t be one of the triangles ad-7. jacent to e0 . Then, do: Section 8 is devoted to conclusions and future works. Forconcision sake, here we discuss the case where snakes only ∗ i. Mark e and choose a point xe on it consid-contract. Nevertheless, the method can be easily extended ering the positions of the vertices of PCk orin order to handle expanding snakes. S k on e. ∗ ii. Replace e by e’, the other transition edge adjacent to t , and t by t’, the other triangle2. Other T-snakes Models adjacent to e’. ∗ iii. Repeat i − iii until e = e0 . Essentially, in the original approach [3], the T-snake ofstep k—S k = [si , i = 0,...,I]— is evolved as indicated be- – b) Take the closed polygonal line defined bylow. The elements of the AS Matrix, which are related to points xe as a snake of stage k + 1.the mesh vertices, are all initialized with “unvisited”. In the Thus, a curve representing each connected component offollowing, τ will be the K1 triangulation of the mesh ver- the visited set boundary is constructed from its intersectionstices, that is, the one obtained by cutting each cell along its with the transition edges and becomes a new snake in step 4.main diagonal. A transition edge will be an edge of τ link- Some observations regarding the procedure above are perti-ing a visited and an unvisited vertex. Figure 1 represents an nent:
  3. 3. • 1. Checking whether unburned vertices are covered by A regular µ-curve is one which is simple and has a sin- the sweeping quadrilaterals Qi (Step 3) is time con- gle vertex on a mesh edge. Since T-snakes must be regular suming, since this must be done for every new snaxel. µ-curves, so are the loops obtained by the approach given [3] lists 16 different cases that must be treated. here. Two µ-curves crossing the same sequence of mesh edges are said to be equivalent . • 2. PCk may be traversed up to three times. Once in step To represent a µ-curve S = [si ; i = 0, . . . , I − 1] we use 3, where it is constructed and twice in step 4, while the Cell—Edge of the cell—Point of the edge (CEP) system searching for initial transition edges and during the de- where each si is represented by: (a) The cell coordinate— termination of a new snake contour. Ci —indicating the µ-cell containing [si , si+1 ]. (b) The edge • 3. Moving snaxels on diagonal edges has already been coordinate E(si ) indicating which of the four edges of Ci proved not to be a good option. The possible gain in contains si (the left, top, right and bottom edges of Ci are precision to be obtained by considering is largely off- represented by 0, 1, 2 and 3, respectively). (c) p(si ), the dis- set by the effort necessary to make them evolve. tance between si and its out-vertex expressed in pixels. The out-vertex of si , termed vi is the vertex of the µ-edge con- • 4. The use of a K1 triangulation allows curves with taining si which is outside the region delimited by S (the 4 snaxels in a square cell to be generated only if that in-vertex of si is defined analogously). Also, define E(si )−1 , curve does not cross the main diagonal of the cell. This similarly to E(si ), as the code of the edge where si is on as makes the process orientation biased since there are an edge of the adjacent cell C(si−1 ). See Figure 2 below. curves which can be approximated by it but would lose that property if rotated. From these observations a set of goals which must bepursued by a new T-snake schema can be established: (A)No vertex burning because this can be costly. (B) No tri-angulations or, more generally, no orientation bias. (C) Allcurves of a stage must be traversed only once (one turnproperty). We will add that no history must be necessary— a stage should only process information obtained withinthe stage itself. This property makes it easier to refine themesh during the process. A first approach with those properties was introduced byBischoff and Kobbeit in [1]. That schema reduces the timestep thus allowing the Transformed Curve to inherit the sim-plicity of snake S k . The price of such a simplification is paid Figure 2. Elements used in the CEP system.mainly by slowing the snake evolution and thus requiring alarge number of iterations. The reason for adopting the CEP-system is that it makes3. Theoretical background loop-processing more straightforward than using plain line- column coordinates. In fact Ci and E(si ) have to be com- We propose a method which repeats steps 1 and 2 of the puted anyway, no matter the system used.algorithm presented earlier except that a vertex of PCk is The µ-Dilation of S—µD(S)—is the curve obtained bycomputed as soon as the segment of TCk containing it be- replacing every si by wi = vi + (si − vi ), where is a smallcomes available. Also, our method does not use a triangu- positive number. µD(S) is a curve, µ-equivalent to S , whichlated mesh. passes very close to the out-vertices of si , i = 0, . . . , I − 1. As the focus of this work is the control of a snake topol- Given two µ-curves, S and R , let C1 , . . . , Ck be a max-ogy, we consider that the physical displacement of a snaxel imal sequence of mesh cells intersected by consecutiveis computed by a “black-box”. We only assume, as is usual edges of both curves. We say that S µ-intersects R withinin the context of T-snakes, that physical displacements have C1 , . . . , Ck if any µ-curve equivalent to S crosses R withinamplitudes which are smaller than the edge length—d—of one of those cells. This concept is illustrated in Figure 3cells in the AS. Also, hereafter, µ will refer to the mesh con- The existence or not of a µ-intersection within the se-taining these cells. quence C1 , . . . , Ck can be determined by computing the We call a µ-curve any polygonal line such that: (a) Its product of three functions taking values in {-1,1}whichvertices are the points where it intersects the edges of µ. can be tabulated: Xini : {0, 1, 2, 3}3 → {−1, 1} depend-(b) No vertex of the curve coincides with any vertex of µ. ing on the three edges of C1 crossed by the µ-curves,
  4. 4. Figure 3. (a) Two µ-curves which do not µ-inter- sect and (b) A µ-intersection and the three func- tions used to detect it. Figure 4. Non-Adequate ((a)-(b))and AdequateXcom : {0, 1, 2, 3}2 → {−1, 1}, which depends on the first Mappings ((c)-(d)).and last µ-edges crossed by both curves within the se-quence of cells, and Xend : {0, 1, 2, 3}3 → {−1, 1}, which islike Xini for Cn . 4. Making the Mapping Γk Adequate We call an elementary mapping (or e-map) a transfor-mation between curves obtained at the same stage k of the Making Pk adequate can be too restrictive since the rayT-snake evolution. In this work, three e-maps will be used: of Pk at a given snaxel must be constrained to the cone de-Two e-maps take the initial snake of the stage S k onto TCk termined by the internal angle of S k at that snaxel. This canand onto PCk . These will be termed T k and Pk , respectively. be too strong a restriction if that angle is small.E-map Γk takes the µ-dilation of S k onto PCk . Making Γk adequate avoids the case where a snake re- T k can be easily defined due to the correspondence be- visits a cell it has already totally swept and, as the inter-tween the vertices of S k and TCk . On the other hand, there nal angles of µD(S k ) have at least 90◦ , the rays will not beis no natural definition for Pk and Γk . The first objective is too constrained. Moreover, this new objective requires con-to make them continuous order-preserving piecewise linear siderably less computation. It can be achieved by acting inmappings which associate points close to each other. To es- two moments. First, when physical displacements are com- puted, we avoid moving a snaxel S i across the line orthogo-tablish this last requirement in a more formal way the con- nal to its edge which passes by its out-vertex If ∆i is the co-cept of a µ-bounded e-map is introduced below. ordinate of the displacement applied to a snaxel si in the di- Let f be a facet of µ (i.e, a vertex, edge or cell). Call rection (horizontal or vertical) of its edge, prevent that pos-N(f) the union of all cells which are adjacent to the ver- sibility by doing:tices of f . An e-map M is said to be µ-bounded if for every if E(si ) > 1 then ∆i = min ∆i , p(si )s ∈ f , M(s) is in the interior of N(f). Of course, if the phys-ical displacement of all snaxels is less than d, then T k will else ∆i = max ∆i − p(si ) .be µ-bounded, and in that case, we may enforce this prop- There are no additional restrictions to be imposed on theerty on Pk and Γk , too. movement in the other direction. The ray of a mapping M at point s is defined as the open The second intervention is performed when a vertex ofsegment delimited by s and M(s). If ei = [si , si+1 ] is an edge PCk is generated. It aims at avoiding two undesirable con-of the domain of M, the points si , si+1 , M(si )andM(si+1 de- figurations composed of S k snaxels and PCk vertices. Infine the sweeping quadrilateral of M generated by ei (Qi ). the first configuration, depicted in Figure 5(A), PCk crosses A contracting µ-bounded e-map is said to be adequate if µD(S k ) which makes Γk not contracting. That configurationevery one of its rays ri is interior to the union of the sweep- is characterized by: (1) Snaxels si−1 and si , contained in aing quadrilaterals Qi−1 and Qi , adjacent to it. Figure 4 illus- cell C1 and having the same out-vertex vi ; (2) the intersec-trates this concept. tion of [T k (si−1 ), T k (si )] with cell C2, diagonally opposed to If Pk is adequate, then it generates no reverse sweeping C1 in relation to vi , is the segment delimited by the PCk ver-quadrilaterals and thus all of its rays will be interior to the tices, s j−1 and s j , both lying on edges adjacent to vi , and (3)strip swept by the snake of stage k. This means that the bor- si and s j must belong to the same cell C. If such a configu-der of the visited set is completely contained in PCk . If Γk ration is detected, the intersection between PCk and µD(S k )is adequate, each connected component of that border is µ- is eliminated by replacing s j−1 and s j by si−1 and si , respec-equivalent to a loop of PCk , which is sufficient for our pur- tively.poses. Also, a series of results, given in Section 5 can be ex- The second configuration to be avoided concerns the ex-plored to label these loops. istence of reverse sweeping quadrilaterals. It is shown in
  5. 5. create an oriented edge from the node of L1 to the node of L2 (See Figure 6). Loop-Trees of different topologies or with the same topology, but with different loop-node associations can be obtained for the same curve depending on the initial point taken and the circulation used in traversing the curve. For- tunately, any problems originated from this fact are avoided if Γk is adequate, as can be derived from Lemma 5.1 be- low. Lemma 5.1. If Γk is an adequate mapping then (A) ev- ery open loop of PCk is disjoint from other loops found Figure 5. Undesirable configurations. in the process, and (B) any loop in a sub-tree rooted at an open loop L will be disjoint from those in the otherFigure 5(B), where snaxels si and si+1 lay on edges which sub-trees rooted at L and also from the ancestors of Lare external to a cell C, but are adjacent to the same ver- in the tree.tex of C, which is cut into two parts by T k (si−1 ), T k (si ) . So, if Γk is adequate, item (A) leads us to conclude thatThe two vertices of PCk in C, s j and s j+1 , lay on the same the regions enclosed by the open loops of PCk will be to-mesh lines as si and si+1 , respectively, which is only possi- tally unexplored. In view of that, these loops can be madeble if the quadrilateral Qi is reverse. The correction, in this the T-snakes of stage k+1. Also, (A) and (B) together implycase, consists merely of replacing T k (si ) by s j . that these loops are represented in any Loop-Tree of PCk . Both cases are simultaneously handled by the procedure This means that these new T-snakes are independent of bothgiven below. The following notation is used: s’ cur and the initial point from which PCk is traversed and the circu-s’ prev refer to the two most recently obtained PCk ver- lation used for that.tices; i cur and i prev denote the indices of the two con- With respect to the labeling process, if Γk is an adequatesecutive snaxels such that s’ cur ∈ [T k (si prev ), T k (si cur )]. mapping, then the following results regarding the nodes ofAlso, si cur and si prev are denoted by s cur and s prev, re- a PCk Loop-Tree can be applied:spectively and t-cur is the current vertex of TCk . Lemma 5.2. The parent of an open node is a closedProcedure Making Γk Adequate node. A closed node, however, can have both open andif i cur = i prev then closed parents. −1 if E(s cur) = E(s cur) then t cur ← s cur; else if E(s cur) = E(s prev) and C(s cur) = C(s cur) then s prev ← s prev; s cur ← s cur It should be noted that this procedure embodies all thatmust be done when computing a new vertex of PCk in or-der to ensure that Γk is adequate. We consider remarkablethat, in spite of the many complicate cases determined bysequences of consecutive reverse sweeping quadrilateralsor clusters of TCk vertices in the same cell, the problemof making Γk adequate admits such a simple solution.5. Loop-Trees and the Labeling Process A Loop-Tree of a closed curve C with no multiple self-intersection points is a graph that can be obtained by the Figure 6. A curve and its Loop-Tree.following process: choose a point s in C and a circulation D(either clockwise or counter-clockwise). Traverse C in thatdirection starting at s. Every time a point x is revisited cre-ate a node to represent the loop formed by the part of C be- Lemma 5.3. If both parent and child are closed theytween the two visits to x. Then, collapse that loop into x and must intersect each other.continue the tour. After having completed it, for every loop These results allow us to label a loop by examining theL1 which has been collapsed to a point of another loop L2 , label of its children in the Loop-Tree. Lemma 5.2 can be
  6. 6. used to label as closed every node having an open child. with a loop found before and must not be added to the loopA loop having only closed children, will be open , if it is tree. The algorithm distinguishes between valid and non-disjoint from its children (Lemma 5.1), or closed, if it inter- valid loops in the following way: When PCk revisits a cellsects those children (Lemma 5.3). To start the process, how- C, all elements of the Open and Closed stacks greater thanever, we must devise a method for labeling the leaves. Even the index of Last vertex(C) are popped out. If a new loop isif Γk is adequate, it is not possible to get the label of a PCk formed when PCk returns to C and the number of remain-Loop-Tree leaf if we focus only on the curve itself. It is nec- ing elements in each stack is even, then that loop will beessary to analyze the neighborhood of a snaxel in the loop. valid. Otherwise, it will be non-valid. For simplicity, hence-The information necessary for that analysis is provided by forth we will assume that all loops formed are valid.the Auxiliary Structure and the following result can be ap- As loops must be regular µ-curves, if the LiC returnsplied if the leaf is a proper loop of PCk . to an edge e, it is considered that a new loop has been Lemma 5.4. Let s be any snaxel of a leaf L which is a formed. Other loops are determined by the knots of PCk . proper loop of PCk . Then, L is a closed loop if all cells These loops are identified by a configuration where a cell adjacent to the out-vertex of s are crossed by it. has two consecutive vertices of PCk on its horizontal edges It remains to consider the case where the whole PCk is a and other two consecutive ones on its vertical edges.simple loop. The simplest alternative in this case is to check The fact that the characterization of one type of loop iswhether the in-vertex of s0 has been swept by the snake. related to an edge and the other to a cell determines that they are treated in different ways. Let us start with the case where PCk revisits an edge.6. Revisiting a cell A typical configuration in this case is depicted in Fig- If a cell is revisited, either it will become a double one or ure 7 A. s j−m , . . . , s j , si , . . . , si+m with j < i are LiC ver-a loop has been formed. To describe the actions taken by the tices which form what is called a bottleneck. That configu-algorithm to identify a double cell or a loop and to make op- ration is characterized by: (A) si+n and s j−n are on the sameerational the results of Section 5 with respect to labeling a edge, for n = 0,. . . , m. (B) If the LiC enters a cell Cn atloop, some previous considerations are necessary. si+n then, at the moment that vertex is generated, Last ver-(A) The Loop in Construction—LiC—is the polygonal line tex (Cn ) = s j−n .defined by the PCk vertices already determined which nei- When si is generated, the loop L0 , delimited by s j+1 andther belong to the loops already found nor have been elim- si−1 , is identified. Also, any vertex of the bottleneck is dis-inated for laying on the same edge as a neighbor one. The carded for laying on the same edge of another LiC vertex.LiC can be considered as the root of the Loop-Tree of the However, the treatment of a bottleneck is not restricted topart of PCk already determined. that because for labeling the loop, yet to be formed, con-(B) To use the results of Section 5 it is not necessary to taining si+m+1 , it is necessary to check whether PCk has a µ-build the whole Loop Tree of PCk . It suffices to know the self-intersection within the cells containing vertices of thechildren of the LiC and their labels. For that reason, at the bottleneck. If that intersection does not exist the label ofcreation of a loop, the indexes of its initial and final ver- that loop must be that of L0 and both must be associated totices are pushed onto a stack relative to the loops with its a same Loop-Tree node. They are, in fact, parts of a largerlabel—either the Open or the Closed stack. When the par- loop which is subdivided into components which are reg-ent of the loop is determined, and it is a child of the LiC ular µ-curves. On the other hand, if the µ-self-intersectionno more, if those indexes are still there, they can be popped exists L0 becomes a child of the LiC and its extremi-out. ties must be pushed onto the stack of its label. The exis-(C) To make it possible to obtain the so-called, “one turn” tence of a µ-self-intersection is checked by using the tabu-property, it is necessary to have a direct link between the lated functions Xini , Xcom and Xend introduced in Section 3.initial and final vertices of a loop. For that, the element Thus, the complete treatment of a bottleneck can be de-of AS associated to a cell C stores a code identifying scribed as follows: (A) At the beginning of the bottleneck:Last vertex(C), also noted S c , the most recently found ver- Let Eini = E(si ), evaluate Xini and find the label of L0 . (B) Attex of a projected curve which is in C. That code consists of: the end of the bottleneck: Evaluate Xend and Xcom which de-(1) the stage at which sc was created and (2) a record con- pends on Eini , and E(s j−n ). If the product Xini .Xcom .Xend in-taining both the CEP-coordinates of sc and links (.prv and dicates that a µ-self-intersection exists, then s j−n and si+m.nxt ) to the records of its antecessor and successor in the last must be pushed onto the stack of the label of L0 . In any case,loop containing it or in the current LiC . If (1) is not the cur- s j−n−1 and si+m+1 must be linked to maintain the LiC con-rent stage then (2) is of no use. nected. (C) For concision sake, the unusual case where there(D) A loop just found is valid if it is totally contained in is a loop between two consecutive elements of s j−m , . . . , s jthe LiC , while a non-valid one shares part of its contour will not be considered here. In view of that, no action is re-
  7. 7. quired at the non-extreme vertices of the bottleneck other (B) or case (C) must be treated. At the creation of the first ofthan updating the Link vertex . That vertex must be linked these vertices (like si ), however, the only action that may beto the next vertex to be generated, if the bottleneck finishes necessary is to apply the End of Bottleneck treatment. Allat the current one, in order to maintain the LiC connected. these steps are summarized in the following procedure. Procedure Non Repeated Edge if Cur vertex.prev is also in a non repeated edge then: if E(Cur vertex) = E(Cur vertex.prv) then: Loop(Last vertex(C(Curr vertex prev)), Cur vertex.prv) else the cell has become a double one else if Cur vertex.prev is in a bottleneck then: Apply the End of a Bottleneck treatment Finally, a loop can be labeled and processed by the pro- cedure Loop below. Procedure Loop(Ini vertex,End vertex ) if Ini vertex > Last loop end then Leaf Label(End vertex) else if Ini vertex < Last intersection or Ini vertex < T op(Open S tack) then Label ← CLOS ED else Label ← OPEN Last loop end ← End vertex Figure 7. A bottleneck(7A) and a knot loop(7B). Remove the elements > Ini vertex from the two stacks Push Ini vertex and End vertex onto (Label)-Stack Link End vertex.nxt to Ini vertex.prv In the case of a bottleneck, the repeated edge of a vis- A leaf L of the Loop-Tree can be identified by the factited cell C is always that where Last vertex(C) is on. It re- that its initial vertex has been created after any vertex inmains to consider the case where PCk returns to the edge of a loop already found. Its label must be determined by oneLast vertex(C).prev . In that second case, bottlenecks can- of the schemes exposed in Section 5. Now, let us considernot occur and there is always a µ-intersection between the the way a non-leaf loop L is labeled. If a new loop inter-loop formed and the LiC . Thus, that loop must be repre-sented in one of the stacks. Eventually, if that second case sects another already found then, by Lemma 5.3, it mustdetermines the end of a bottleneck, the specific treatment for be closed. That intersection exists if the loop initiates be-that situation, given above, must be applied. In Procedure fore the last intersection of the LiC with one of its chil-Repeated Edge below, all steps described above for treat- dren. If this is not the case, one may try to label L by us-ing the two cases are put together. ing Lemma 5.2 which establishes that any loop having an open child is closed. An open child exists iff the initial ver-Procedure Repeated Edge tex of L, Ini vertex , has been generated before the one onif E(Cur vertex) = E(Last vertex(C))−1 then: if Cur vertex.prv is not in a bottleneck then: the top of the Open-Stack. If L has not been labeled up to Loop(Last vertex(C).nxt,Cur vertex.prv) this point, then it must be open , since a non-leaf closed loop Apply the Begining of a Bottleneck treatment either has an open child or intersects its children. Besides la- else Link vertex ← Last vertex(C).prv beling the new loop, it is necessary to update the stacks andelse if E(Cur vertex) = E(Last vertex(C).prv) then: extend the LiC . if Cur vertex.prv is in a bottleneck then: Apply the End of a Bottleneck treatment Loop(Last vertex(C).prv, Cur vertex.prv) 7. Statistics and Examples of Segmentation Now, assume that the LiC reenters an already visited cell A program for evolving Loop-Snakes has been imple-C by crossing a non repeated edge - ei - at vertex si (See Fig- mented and applied to a series of test examples. The statis-ure 7B). When the next vertex - si+1 - is determined, there tics obtained from these validation tests are the best argu-are three possibilities: (A) If si+1 is on a repeated edge, a ment in favor of the approach introduced here. For evalu-loop will be created by the routine Repeated edge above. ating the overall computational effort required by that ap-(B) If si+1 is also on a non-repeated edge with the same ori- proach, the snaxels have been classified according to theentation of ei , C∩ LiC will consist of two crossing seg-ments with extremities on µ-edges of the same direction. In number of operations, with regard to the topology control,that case a knot loop must be generated. (C) If si and si+1 that must be performed when they are processed. Here,are on non-repeated edges of different directions, C will be- for simplicity, they will be grouped in the three followingcome a double cell. Thus, at the creation of a second con- classes: (A) snaxels si such that [T k (si−1 ), T k (si )] cuts a cellsecutive vertex in a non-repeated edge (like si+1 ) either case into two parts. (B) snaxels at which the procedure to make
  8. 8. Γk adequate takes a corrective action . (C) Snaxels si such is adequate, the work of burning the mesh vertices sweptthat [T k (si−1 ), T k (si )] intersects an already visited cell. The by the T-snake can be reduced to label as visited the out-number of snaxels in each of these classes was computed vertex of every PCk vertex generated. This property can befor images of four different types - Synthetized images (I), extended to T-Surfaces and give origin to a faster method.Noisy images (II), Images with many segments (III) and There are also 2D variants of the method yet to be explored.Images with cells on a textured background (IV). The re- The most promising one does not even require that the pro-sults obtained are presented in Table 1. It can be observed jected curve be determined. Images I Images II Images III Images IV References Group A 142.605 937.837 360.687 425.618 [1] Bischoff and L. Kobbeit. Snakes with topology control. The Group B 1.806 95.357 22.453 44.866 Visual Computer. Group C 6.359 8.540 12.541 3.808 [2] A. W. M. Kass and D. Terzopoulos. Snakes:active contour Overall 557.282 2.847.313 1.183.100 1.212.631 models. The Visual Computer. [3] T. McInerney and D.Terzopoulos. Topologically adaptable Table 1. The number of snaxels computed. snakes. Proc. of Int. Conf on Computer Vision, pages 840– 845, 1995. [4] A. Oliveira and S. Ribeiro. The loop snakes page:that the number of most costly snaxels, that is, those deter- 2004.mining that PCk revisits a cell (Group C), is considerablysmall compared with the total number of snaxels, not reach-ing 1.2%. Also, the snaxels in group A are no more than36%, of the total which means that for the other, at least64% of them, the only action specific of this approach istesting whether i cur = i prev, since limiting the displace-ment of the snaxels and checking and updating the AS arecommon to all approaches. Moreover, for the snaxels not inB, at least 96% of the overall number , that action is lim-ited to 4 tests. This means that: (1) the number of snaxelsrequiring additional work is a negligible fraction of the to-tal and (2) for those 96% of the snaxels, the performanceof Loop-Snakes is clearly hard to beat. In fact, the num-bers above attest the adequacy of the strategy employed inthis work: spend minimum effort when processing a plainsnaxel and delay all the complication to the moment a loop Figure 8. An image with two cells.may be found. Two examples where the method has been applied are il-lustrated in figures 8 and 9. The first one shows the ability ofignoring small artifacts present in the background. The sec-ond is an example where the T-snake splits multiple times.The solutions indicated in both cases, have been obtainedwithout refining the mesh or applying any post-processing.8. Conclusions and Future Work A series of theoretical results (Sections 3 - 5) had to bedeveloped to support the Loop-Snakes approach. Based onthose results it was possible to create a methodology satis-fying the four desired properties indicated in Section 2 andhaving a clear computational gain when compared to the ex-isting methods, as seen in Section 7. Figure 9. Evolution with multiple splits. With respect to future works , the possibility of expand-ing the results obtained here for T-surfaces evolving in 3D-images can be considered in the following context: If Γk