```Facoltà di Ingegneria
Presenter: Ilya Afanasyev
Trento, 2010
14/12/2010
1/20
Superquadrics are a family of parametric shapes, which
are used as primitives for shape representation and play
the role of prototypical parts and can be further deformed
and glued together into realistic looking models.
A superquadric surface can be defined by the 3D vector:
 a cos ( )  1 cos ( )  2 
1


1
2
r (  )    a 2 cos ( ) sin ( ) 


1


a
sin
(

)
3


 1   2
2
  

2
    
- are parameters of shape squareness;
a1  a2  a3
14/12/2010


2/20
Creation of SQ surface
z
a3
r(η,ω)
Vector r(η,ω) sweeps out
a closed surface in space
when η,ω change in the
given intervals:
    
η
a1
ω
x
a2
y


2
 

2
 a cos ( )  1 cos ( )  2 
1


1
2
r (  )    a 2 cos ( ) sin ( ) 


1


a 3 sin ( )


η,ω – independent parameters (latitude and longitude angles)
of vector r(η,ω) expressed in spherical coordinates.
14/12/2010
3/20
Parametric equation of SQ
Superquadrics can model a large set of standard building
blocks, like spheres, cylinders, parallelepipeds and
shapes in between. Modeling capabilities of SQ can be
enhanced by tapering, bending and making cavities.
The parametric equation of a superquadric surface:
2
2
2



2
2
 x 
y 

f ( x y z)   
  
 a 1 
 a2  
1
z

 
 a3 
2
1
 1   2 - are parameters of shape squareness;
a1  a2  a3
14/12/2010
4/20
2nd way for creation of SQ surface
z
Use the parametric equation in
Cartesian coordinates, considering
f(x,y,z) = 1
z’
y=a2
x’
y
y’
x=a1
x
-a1 ≤ x ≤ a1
-a2 ≤ y ≤ a2
2
z=NaN


 x 
f ( x y z)   
 a 1 
2
2

2 1

2
y 

  
 a2  
z

 
 a3 
2
1
x,y – independent parameters (Cartesian coordinates of
SQ), which are used to obtain z coordinate.
14/12/2010
5/20
Warning: complex numbers in SQ equation
1. If ε1 or ε2 < 1 and cos or sin of angles ω or η < 0, then vector r(η,ω)
has complex values. To escape them, it should be used absolute
values of the vector components, taking into account the sign of sin or
cos for further SQ surface reconstruction.


2
  

2
    
2. Analogically if x or y < 1 and ε1 > 1, the function f(x,y,z) willl have
the complex values of z. To overcome it, use the f(x,y,z) in power of
exponent ε1.

2


 x 
f ( x y z)   
 a 1 
14/12/2010
2
2

2 1

2
 y 
  
 a2  
 z
 
 a3 
2
1
f(x,y,z)ε1 = 1
6/20
Samples of SQ, depending on ε1 or ε2
ε2 = 0.1
ε2 = 1
ε2 = 2

14/12/2010
ε1 = 0.1
ε1 = 1
ε1 = 2
7/20
Applications with SQ
Reconstruction of complex object 
14/12/2010
Reconstruction of complex object 
Reconstruction of
complex object 
8
Applications with SQ
Reconstruction of multiple objects 
14/12/2010
Reconstruction of multiple objects 
9
What are we trying to achieve?
To build the robust algorithm of recovery of pallets
surface by Superquadrics with the real 3D data from a
rangefinder (possibly, without segmentation).
1. Develop a robust algorithm
of recovery of simulated SQ
objects (excluding noise).
2. Test it with 3D real data.
of the europallet.
4. Take 3D data of pallet from
rangefinder.
of the europallet to real 3D
data by the algorithm.
14/12/2010
10
Idea of work with SQ simulation
1. Create SQ with known parameters a1, a2, a3, ε1, ε2.
2. Get representation of SQ in points (like “Cloud of points”).
3. Rotate and translate SQ according to “viewpoint of interest”.
4. Get the silhouette of SQ (visible part of SQ from viewpoint).
5. Add the noise to SQ silhouette to obtain more realistic model.
6. Detect the orientation and location of SQ, using the known model of SQ and
detection algorithm (based on solving a system of nonlinear equation).
1.
2.
3.
4.
5.
6.
Azimuth, Elevation,
Distance ???
14/12/2010
11/20
Rotation and translation of SQ
z
zW
xW
yW
Elevation
y
Azimuth
T – transformation matrix.
x
n – amounts of points in SQ surface.
SQ – coordinates of points of SQ surface.
Pw – coordinates of points of rotated SQ surface.
xW, yW, zW – world system of coordinates (with center in viewpoint).
Warning: Standard MATLAB function: viewmtx is useless for
rotation and translation purposes.
14/12/2010
12/20
Rotation and translation of SQ
z
zW
xW
px
yW
Elevation
y
Azimuth
T
x
14/12/2010
SQ
Pw
az,el,px,py,pz,x,y,z – are given; xW,yW,zW – should be found.
13
Getting the silhouette of SQ
1) Calculate x’,y’,z’ (R’,Az’,El’) coordinates of every point of line laid
between center of world coordinate system and point of interest
from rotated SQ.
yw
(x’; y’)
p1
El’
p’
xw
Az’
zw
p”
p2
p’ – lays outside SQ;
p’’ – lays inside SQ.
14/12/2010
14/20
Getting the silhouette of SQ
2) To recover the real x,y,z
coordinates of every point
of rotated SQ (rotate and
translate it back):
z
zW
P(x;y;z)
xW
yW
Elevation
T – transformation matrix;
SQ – non-rotated point of
SQ silhouette;
P’w – rotated point of
x
SQ silhouette.
y
Azimuth
Silhouette
(visible part of SQ from viewpoint)
14/12/2010
15
Getting the silhouette of SQ
z
3) Calculation of inside-outside
function f(x,y,z)ε1.
4) If all points of a line from the
“SQ point of interest” to the
world coordinate center lay
outside – this point of SQ is
visible, otherwise – invisible.
zW
p1
xW
yW
y
x
p2
Silhouette
p1 – is the point of SQ
silhouette; p2 – is not.
- the point is on the surface of SQ.
- the point is outside SQ.
- the point is inside SQ.
14/12/2010
16/20
Adding the noise to SQ silhouette
To build the robust algorithm of recovery of SQ surface it is
necessary to take into account the noise, which can exist in the
real data (from a rangefinder).
1) The algorithm should be robust to outlets. To simulate the outlets,
we can add to SQ silhouette some points obtained by uniform
distribution.
outliers
silhouette
2) Also the algorithm should process
the SQ surface points, which
cab be slightly deviated from
real positions of SQ surface. We
can create the deviation of mean
values of z-coordinate for points
of SQ surface according to law
of normal distribution for small
Noised
standard deviation (for example,
silhouette
σ=0.5).
14/12/2010
17/20
Algorithm of Recovery of SQ surface
from silhouette
z
To detect az,el from silhouette
of rotated SQ, the given points
should rotated and translated
back to SQ coordinate system.
T – transformation matrix.
SQ – non-rotated points of
SQ silhouette.
P’w – rotated points of
SQ silhouette.
T
14/12/2010
P(x’;y’;z’)
zW
xW
yW
Elevation
y
Azimuth
x
Silhouette
SQ
P’w
ε1, ε2,a1-a3, px,py,pz,xW,yW,zW – are given; Az,El,ω,η – should be found.18
Algorithm of Recovery of SQ surface
from silhouette
z
To solve this system of nonlinear
equations, when silhouette consists
n ≥10 points, use MATLAB fsolve
function (from Optimization toolbox)
with Levenverg-Marquardt method.
px
yW
dist
x
T
y
Silhouette
Future improvement of the algorithm deal
with adding the new variable: px, using the
parameter dist for initial estimates x0.
Variables
zW
xW
SQ
P’w
py=0;
pz=0.
14/12/2010
ε1, ε2,a1-a3,py,pz,xW,yW,zW – are given; Az,El,ω,η, px – should be found.19
1.
2.
3.
4.
5.
Solina F. and Bajcsy R. Recovery of parametric models from
range images: The case for superquadrics with global
deformations. // IEEE Transactions on Pattern Analysis and
Machine Intelligence PAMI-12(2):131--147, 1990.
Chella A. and Pirrone R. A Neural Architecture for Segmentation
and Modeling of Range Data. // 10 pages.
Leonardis A., Jaklic A., and Solina F. Superquadrics for
Segmenting and Modeling Range Data. // IEEE Transactions On
Pattern Analysis And Machine Intelligence, vol. 19, no. 11, 1997.
Bhabhrawala T., Krovi V., Mendel F. and Govindaraju V. Extended
Superquadrics. // Technical Report. New York. 93 pages.
Jaklic Ales, Leonardis Ales, Solina Franc. Segmentation and
Recovery of Superquadrics. // Computational imaging and vision
20, Kluwer, Dordrecht, 2000.
Grazie per attenzione!!
14/12/2010
20/20
```