second-order connected attribute filters using max-treesmichael/ouzounisismm05.pdf · let ψbe an...
TRANSCRIPT
Second-Order Connected Attribute Filters UsingMax-Trees
Georgios K. Ouzounis and Michael H. F. Wilkinson
Institute for Mathematics and Computing ScienceUniversity of Groningen
The Netherlands
ISMM, April 20, 2005, Ecole des Mines de Paris, France
Presentation Outline
Connectivity and Connected Operators
Connectivity ClassesConnected Openings
Attribute Filters
Second-Order Connectivity
Clustering Based ConnectivityPartitioning Based Connectivity
Computing Second-Order Attribute Filters
The Max-Tree AlgorithmThe Dual Input Max-TreeFiltering
Experiments
Conclusions
ISMM, April 20, 2005, Ecole des Mines de Paris, France
Connectivity and Connected Filters
A connectivity class C is the set of all connected subsets of some universalset E.
Some limitations apply:
∅ ∈ C and {x} ∈ Cif Cn ∈ C with n = 1, ...N and
⋂Nn=1Cn 6= ∅ then
⋃Nn=1Cn ∈ C
A binary image represented by a set X ⊆ E can be partitioned into itsconnected components or grains Ci. Connected components can beextracted by means of a connected opening Γx:
Γx(X) =⋃i
{Cn ∈ C|x ∈ Cn and Cn ⊆ X} (1)
Because all Cn are connected, their union is also connected. Furthermore∀x /∈ X, Γx(X) = ∅.
ISMM, April 20, 2005, Ecole des Mines de Paris, France
Attribute filters
The simplest filtering schemes for binary images work by preserving orremoving connected components
Given that connected filters work on image structures, filter selection criteriacan be defined in terms of the properties or attributes of these structures.
Criterion T :T (C) = (Attr(C) ≥ λ) (2)
with Attr(C) some real-valued attribute of C, and λ the attribute threshold
ΓT (X) =⋃x∈X
ΓT (Γx(X)) (3)
1. compute attribute for each connected component2. keep components of which attribute value exceeds some threshold λ
ISMM, April 20, 2005, Ecole des Mines de Paris, France
Second-Order Connectivity
Many generalizations of the standard (4- or 8- way) connectivity have beenproposed aiming to improve the robustness and increase the versatility ofthese filters.
Connectivity generalizations yield an approximation as to when image objectscan be considered connected or when connected regions can be treated asseparate objects.
An example is Second-Order Connectivity which relies on an underlyingconnectivity.
Second-Order connected sets are given by a connected opening extractingthe connected components found at the intersection between the originalimage X and the connectivity map ψ(X).
ψ refered to as the generalizing operator is usually a structural opening,closing or dilation. Cψ denotes the connectivity class and Γψx thecorresponding connected opening.
ISMM, April 20, 2005, Ecole des Mines de Paris, France
Clustering-based Connectivity
Let ψ be an increasing and extensive operator, i.e. X ⊆ ψ(X)
If x ∈ X, the connected opening Γψx looks at connected components of ψ(X),and intersects the one returned with X. i.e.
Γψx (X) ={
Γx(ψ(X))⋂X ,x ∈ X
∅ , x /∈ X (4)
This clusters nearby connected components according to C into new, largerones.
X ψ(X) Γψp (X) Γψq (X)
Note that p = (65, 85) and q = (200, 225).ISMM, April 20, 2005, Ecole des Mines de Paris, France
Partitioning-based Connectivity
Let ψ be an increasing, idempotent and anti-extensive operator: ψ(X) ⊆ X
If x ∈ ψ(X), the connected opening Γψx looks at connected components ofψ(X). If x ∈ X \ ψ(X) a singleton set {x} is returned. i.e.
Γψx (X) =
Γx(ψ(X)) if x ∈ ψp(X){x} if x ∈ X \ ψp(X)∅ x /∈ X
(5)
This partitions connected components into smaller ones. p = (65, 85) andq = (200, 225).
X ψ(X) Γψp (X) Γψq (X)ISMM, April 20, 2005, Ecole des Mines de Paris, France
Computing Second-Order Attribute Filters
Algorithm based on Max-Tree - hierarchical image representation for attributefiltering
Tree nodes correspond to Peak Components and leaves to Regional Maxima
Each node points to its parent and root node corresponds to background
Node attributes stored in the tree structure. Filtering involves comparing nodeattributes against a threshold and removing them if not satisfying the criterion(different filtering rules).
Flooding done by recursion. Data stored in a set of FIFO hierarchical queues
pseudo code
ISMM, April 20, 2005, Ecole des Mines de Paris, France
Max-Tree representation
0 1 2 3 2 1 2 1 0
P 03
P 02 P 1
2
P 01
P 00
input signal peak components
C00 C
01 C
02 C
03 C
02 C
01 C
12 C
01 C
00
C03
?
C02@
@@R
C12
���
C01
?
C00
labelling Max-Tree
ISMM, April 20, 2005, Ecole des Mines de Paris, France
The Dual Input Max-Tree
Two input images - X and ψ(X)
The hierarchical queue is shaped from the connectivity map and the numberof pixels for each level in the Max-Tree by the histogram of the original image.
The flooding function proceeds with pixels retrieved from ψ(X). If the intensityof a pixel p is the same in both X and ψ(X), the algorithm proceeds as thenormal Max-Tree. If not then we have two cases:
pseudo code
ISMM, April 20, 2005, Ecole des Mines de Paris, France
Clustering
P 03
P 02 P 1
2
P 01
P 00
P 03
P 02
P 01
P 00
C03
?
C02@
@@R
C12
���
C01
?
C00
C03
?
C02
?
C01
?
C00
X ψ(X): closing Max-Tree of X Dual Input Max-Tree
The attributes of C02 and C1
2 are merged to C02 since all pixels at level h = 2 are
clustered to a single connected component.
Assume we are flooding at level h and encounter a pixel p which corresponds toh′ in X such that h′[p] < h[p].
Then p is connected to the current active node at h′[p] through the connectedcomponent at level h[p];
i.e. it defines a peak component at level h′[p] to which p in ψ(X) is connected.
ISMM, April 20, 2005, Ecole des Mines de Paris, France
Partitioning
P 03
P 02 P 1
2
P 01
P 00
P 02 P 1
2
P 01
P 00
C03
?
C02@
@@R
C12
���
C01
?
C00
C03
@@@R
C13
���
C02@
@@R
C12
���
C01
?
C00
X ψ(X): opening Max-Tree of X Dual Input Max-Tree
Assuming the node C03 of the original Max-Tree vanishes in the connectivity map
ψ(X), then in the Dual Input representation is split to a number of singletonnodes.
Assume we are flooding at level h and encounter a pixel p which corresponds toh′ in X such that h[p] < h′[p].
Then p is a discarded component in ψ(X) and hence defines a singleton node atlevel h′[p]. Singletons upon detection finalize their node status and return and anattribute value of 1.
ISMM, April 20, 2005, Ecole des Mines de Paris, France
Filtering
C03
�3?
� C02@
@R
2 C12
��
- 2
C01
?
�1
C00
�0
C03
�2?
� C02@
@R
1 C12
��
- 1
C01
?
�1
C00
�0
208 6
5070
P 03
P 02 P 1
2
P 01
P 00
P 02
P 01
P 00
0 1 2 3 2 1 2 1 0 0 1 1 2 1 1 1 1 0
attribute values original filtered (λ = 10)
ISMM, April 20, 2005, Ecole des Mines de Paris, France
Vessel-Enhancement Filtering
Isosurface projection of the original MRA at level 50 and of the filtered at level 3.
Shape filtering using I/V 5/3 > λ as 3D shape criterion where I the moments ofinertia and V the volume. The result can be computed in 8 s on a Pentium 4 at2.8 GHz for a 2563 volume.
ISMM, April 20, 2005, Ecole des Mines de Paris, France
Conclusion and Prospects
Linear time complexity - fast algorithm. Minimal difference with conventionalMax-Tree timing
Supports gray-scale images
Ideal for the wider class of attribute filters
Supports both types of second-order connectivity generalization (clusteringand partitioning) in the same implementation
It handles connectivity maps generated by flat operators that do not strictlyneed to be extensive or anti-extensive
Drawbacks:
Limited to flat structural operators
Partitioning Connectivity generates an oversegmentation problem
ISMM, April 20, 2005, Ecole des Mines de Paris, France
Max-Tree Pseudo Code
/* flood(h, thisAttribute) : Flooding function at level h */attribute = thisAttribute /* accounts for child attributes */while (not HQueue-empty(h)) /* First step: propagation */{ p = HQueue-first(h) /* retrieve priority pixel */
STATUS[p] = NumberOfNodes[h] /* STATUS = the node index */for (every neighbor q of p) /* process the neighbors */{ if (STATUS[q] == "NotAnalyzed")
{ HQueue-add(ORI[q],q) /* add in the queue */STATUS[q] = "InTheQueue"NodeAtLevel[ORI[q]] = TRUE /* confirm node existance */if (ORI[q] > ORI[p]) /* check for child nodes */{ m = ORI[q]
child_attribute = 0do{ /* recursive child flood */
m = flood(m,child_attribute)} while (m != h)attribute += child_attribute }}}}
NumberOfNodes = NumberOfNodes[h] + 1 /* update the node index */m = h-1 /* 2nd step: defines father*/while ((m >= 0) and (NodeAtLevel[m] = FALSE))
m = m-1if (m >= 0){
i = NumberOfNodes[h] - 1; j = NumberOfNodes[m];} else
The node C_i at level h has no father, i.e. its the root nodeNodeAtLevel[h] = FALSE; node->Attribute = attribute;node->Status = Finalized; thisAttribute = attribute;return (m)
Back
ISMM, April 20, 2005, Ecole des Mines de Paris, France
Dual Input Max-Tree Pseudo Code
/* flood(h, thisAttribute) : Flooding function at level h */attribute = thisAttribute + node->Attribute /* node->Attribute is */
/* added to account for pixels found during other calls to flood */while (not HQueue-empty(h)) /* First step: propagation */{
p = HQueue-first(h) /* retrieve priority pixel */STATUS[p] = NumberOfNodes[h] /* STATUS = the node index */if(ORI[p]!=h){ /* Detect intensity mismatch */
NodeAtLevel[ORI[p]]=TRUE /* Same for both cases */node = Tree + NodeOffsetAtLevel[ORI[p]] + NumberOfNodes[ORI[p]]node->Attribute ++if(ORI[p]>h){ /* Anti-extensive case */
node->Parent = NodeOffsetAtLevel[h] + NumberOfNodes[h]node->Status = Finalized; node->Level = ORI[p]NumberOfNodes[ORI[p]] += 1; NodeAtLevel[ORI[p]] = FALSEattribute++ } /* Finalizing the singleton node */
} elseattribute++ /* If pixel intensity is the same in both images*/
/* The rest as in Figure 2 ... */return (m)
Back
ISMM, April 20, 2005, Ecole des Mines de Paris, France