Facoltà di Ingegneria Object Detection with Superquadrics Presenter: Ilya Afanasyev Trento, 2010 14/12/2010 1/20 Superquadrics (SQ) 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 - define the superquadric sizes. 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 - define the superquadric sizes. 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 [1] 14/12/2010 ε1 = 0.1 ε1 = 1 ε1 = 2 7/20 Applications with SQ Reconstruction of complex object [2] 14/12/2010 Reconstruction of complex object [3] Reconstruction of complex object [4] 8 Applications with SQ Reconstruction of multiple objects [5] 14/12/2010 Reconstruction of multiple objects [5] 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. 3. Build a superquadric model of the europallet. 4. Take 3D data of pallet from rangefinder. 5. Fit the superquadric model 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 Links 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