PPT

advertisement
Research done in partnership with ICMCB laboratory (UPR 9048)
Specialised in pourous material
study, and high resolution 3dimensional pictures production.
Members participating to the project :
Dominique Bernard
How can geometrical information and physical properties of a material be linked ?
Motivation : Fluid flow simulation
1. How calculations are usually done
. An algorithm, based on the Navier-Stokes differential equations, is
used to process 2d and 3d materials images.
. The algorithm stops when result stability is reached.
Main Problem :
Computation time can be very long (several days)
Motivation : Fluid flow simulation
1. How calculations are usually done
. Calculations are not performed on the
whole object, but on a sample of the
object.
. The material can be seen as a
tesselation of the sample, and the
global flow can be seen as a
tesselation of the local flow.
. This representation is equivalent to
considering the opposite borders of the
sample joined : the sample is
embedded in a toric space.
Motivation : Fluid flow simulation
2. Chosen method
Skeletonise the porous space of the sample in order to draw the main paths
followed by the fluid flow through the material (curvilinear skeleton).
The different steps to complete :
.Threshold
.Remove the object’s grain
(parts of the object which don’t touch the borders)
.Skeletonisation process [1].
in a toric space…
[1] G. Bertrand et M. Couprie, Transformations topologiques discrètes.
D. Coeurjolly, A. Montanvert et J.M. Chassery, Géométrie discrète et images numériques,
Hermès, 2007.
Motivation : Fluid flow simulation
2. Chosen method
The skeleton of the porous space draws the main paths followed by the flow
through the material.
Main hypothesis:
The material (tesselation of the sample) has no grains
(connected component which does not touch « the borders » of the
image)
> We hardly imagine « floating pieces » in the full material.
> The grains are sources of 2d cycles in the skeleton of the porous space.
Motivation : Fluid flow simulation
3. Question
How can we identify, in the sample, the components of the object
which will create grains in the tesselation ?
The material, which is a
tesselation of the sample,
still contains grains.
Motivation : Fluid flow simulation
3. Question
How can we identify, in the sample, the components of the object
which will create grains in the tesselation ?
It is not sufficient to filter the grains of the
sample in order to get rid of the grains in the
tesselation.
Contents
. Basic notions
Toric spaces, neighbourhoods, loops, homotopy
. Characterizing a « grain » in a toric space
. Fundamental group of the torus
Homotopy classes, wrapping vector
. Algorithm for detecting « toric loops »
Example, elements of proof
Basic notions: Toric Space
1. Toric space: definition
Given d positive integer, we set
Ζd = {0,…, d-1}.
The 1-dimensional toric space of size d is the group
for all a,b  Ζd ,
(Ζd , )
a  b = (a + b) mod d
Let s = (s1, …, sn)  Zn.
The n-dimensional toric space of size s is the group
(Tn, )
=
(Ζs1, ) x … x (Ζsn , )
[2]
[2] J. Stillwell, Classical topology and combinatorial group theory, Springer.
with
Basic notions: Neighbourhood
Definition
Let (Tn, ) be an n-dimensional toric space.
. An m-step (0 < m ≤ n) is a vector v of {-1; 0; 1}n which has at most m non-null
coordinates.
. Two points a, b  Tn are m-adjacent if there exists an m-step v such that
av=b
In 2D, the 1- and 2-adjacency resp. correspond to the 4- and 8-neighbourhood.
In 3D, the 1- and 3-adjacency resp. correspond to the 6- and 26-neighbourhood.
Basic notions: Loops in toric space
Definition
Let (Tn, ) be an n-dimensional toric space, and p  Tn.
We call m-loop of base point p a pair b = ( p, V ), such that V = (v1, …, vk) is a
Example
Let us consider the 2-loop B.
sequence of m-steps and (v1  …  vk) = 0.
We set p = (0,0)
v1 = (1,0)
v2 = (1,1)
v3 = (1,-1)
B = ( p , (v2 , v1 , v3) ).
Basic notions: Loop homotopy
We started from the loop homotopy definition given in [3],
and small modifications were done in order to adapt it to toric spaces…
Basic notions: Loop homotopy
Two m-loops b1 = ( p, V ) and b2 = ( p, W ), with V = ( v1,…,vj ) and W = ( w1,…,wk ),
are directly homotopic if :
. V and W differ in one null vector,
(Insertion / Deletion)
or
. We have j=k, and there exists h  [1 ; k-1],
(Translation)
. for all i  [1; h-1] U [ h+2; k], vi = wi and
such that
. vh + vh+1 = wh + wh+1 and
. (vh – wh) is an n-step.
Basic notions: Loop homotopy
Basic notions: Loop homotopy
Two loops β1 and β2 in Tn are homotopic if there exists a sequence (L1, … , Lk )
of loops of Tn such that
. L1= β1, Lk= β2 and,
. for all i  [1; k-1], Li and Li+1 are directly homotopic.
Characterizing grains in toric spaces
Characterizing grains in toric spaces
Thanks to the previous definitions, we can reformulate the problematic:
How can we identify, in a sample, the components of the object
which
which
contains
will create
a loopgrains
non homotopic
in the tesselation
to a point
? ?
We call toric loop a loop non homotopic to a point.
Characterizing grains in toric spaces
Wrapping vector of a loop
In (Tn, ), let β = (p, V) be a loop, with V = (v1, …, vk).
The wrapping vector of β is the vector
k
w = ∑ vi
i=1
Characterizing grains in toric spaces
Theorem
Two loops are homotopic if and only if their wrapping vectors are equals.
This theorem proves that there exists a value, easily computable for all loops, that
allows to know to which homotopy class a loop belongs to.
This value corresponds to the way the loop « wraps around » the toric space : it
completely describes the fundamental group of the torus (Zn) [4].
[4] A. Hatcher, Algebraic Topology, Cambridge University Press, 2002.
Characterizing grains in toric spaces
How can we identify, in the sample, the components of the object
which
which contain
contain aa loop
loop that
withis
a non null
homotopic
wrapping
to avector
point ??
Algorithm for detecting toric loops in an object
1. Main idea
. A connected component that contains a toric loop must be « broken », in
order to be embedded inside the « classical » space Zn.
. A connected component that does not contain any toric loop can be
embedded inside Zn without any distortion.
>> If an object of Tn can be embedded in Zn without distortion, then it does
not contain any toric loop.
How is it possible to know if an object of Tn
can be wrapped inside Zn without any distortion?
2. Algorithm for detecting toric loops
Data: image I (n-dimensional toric space), an m-connected object X of I, and a point p of X.
For all x X, do Coordinates [ x ] = false;
S = {p}; Coordinates [ p ] = 0n;
(null n-dimensional vector)
While there exists x  S do
S = S \ { x };
For all n-dimensional m-steps v, do
y=xv;
(y is a neighbour of x in the toric space)
If y  X and Coordinates [ y ] == false, then
Coordinates [ y ] = Coordinates [ x ] + v ;
S = S U { y };
Else if y  X
If Coordinates [ y ]  Coordinates [ x ] + v then return true; (there is a toric
loop in X)
return false;
(no toric loop in X)
Algorithm for detecting toric loops in an object
3. Example
. In (Z5 x Z5, ), we consider the 2-adjacency (8-neighbourhood) relation,
and a connected object.
The 2-dimensional 2-steps
Algorithm for detecting toric loops in an object
3. Example
}(0;0) }
(1;0)
(1;0),(-1;0),(-1;1),(0;1)
(-1;0),(-1;1),(0;1)
(-1;0),(-1;1),(0;1),(2;-1)
(-1;1),(0;1),(2;-1),(-2;-1),(-2;0),(-2;1)
} } }}
}
S = { (-2;-1),(-2;0),(-2;1)
(2;1) + (-1;0)
≠=(1;0)
(-2;-1)
(1;0)
(0;0)
(1;0) =
(0;0)
S = {p}; Coordinates [ p ] = (0;0);
(1;0)
While there exists x  S do
S = S \ { x };
(-1;0)
(1;0)
For all 2-steps v, do
y=xv;
(1;-1)
If y  X and Coordinates [ y ] == false, then
Coordinates [ y ] = Coordinates [ x ] + v ;
S = S U { y };
Else if y  X
If Coordinates [ y ]  Coordinates [ x ] + v then
return true;
return false;
Algorithm for detecting toric loops in an object
4. Some results (1)
No toric loop in
this component
This component contains
toric loop
Algorithm for detecting toric loops in an object
4. Some results (2)
Conclusion
Thanks to the definitions and theorems previously given (m-step, wrapping
vector,…), the algorithm is proved.
Nowadays, the algorithm is used in order to detect and remove grains from
object embedded in toric spaces.
For a given dimension, the algorithm is linear ( O(n.m) ).
A new version of the algorithm allows to compute the wrapping vector of all
loops contained in the object.
Download