- •Preface
- •Biological Vision Systems
- •Visual Representations from Paintings to Photographs
- •Computer Vision
- •The Limitations of Standard 2D Images
- •3D Imaging, Analysis and Applications
- •Book Objective and Content
- •Acknowledgements
- •Contents
- •Contributors
- •2.1 Introduction
- •Chapter Outline
- •2.2 An Overview of Passive 3D Imaging Systems
- •2.2.1 Multiple View Approaches
- •2.2.2 Single View Approaches
- •2.3 Camera Modeling
- •2.3.1 Homogeneous Coordinates
- •2.3.2 Perspective Projection Camera Model
- •2.3.2.1 Camera Modeling: The Coordinate Transformation
- •2.3.2.2 Camera Modeling: Perspective Projection
- •2.3.2.3 Camera Modeling: Image Sampling
- •2.3.2.4 Camera Modeling: Concatenating the Projective Mappings
- •2.3.3 Radial Distortion
- •2.4 Camera Calibration
- •2.4.1 Estimation of a Scene-to-Image Planar Homography
- •2.4.2 Basic Calibration
- •2.4.3 Refined Calibration
- •2.4.4 Calibration of a Stereo Rig
- •2.5 Two-View Geometry
- •2.5.1 Epipolar Geometry
- •2.5.2 Essential and Fundamental Matrices
- •2.5.3 The Fundamental Matrix for Pure Translation
- •2.5.4 Computation of the Fundamental Matrix
- •2.5.5 Two Views Separated by a Pure Rotation
- •2.5.6 Two Views of a Planar Scene
- •2.6 Rectification
- •2.6.1 Rectification with Calibration Information
- •2.6.2 Rectification Without Calibration Information
- •2.7 Finding Correspondences
- •2.7.1 Correlation-Based Methods
- •2.7.2 Feature-Based Methods
- •2.8 3D Reconstruction
- •2.8.1 Stereo
- •2.8.1.1 Dense Stereo Matching
- •2.8.1.2 Triangulation
- •2.8.2 Structure from Motion
- •2.9 Passive Multiple-View 3D Imaging Systems
- •2.9.1 Stereo Cameras
- •2.9.2 3D Modeling
- •2.9.3 Mobile Robot Localization and Mapping
- •2.10 Passive Versus Active 3D Imaging Systems
- •2.11 Concluding Remarks
- •2.12 Further Reading
- •2.13 Questions
- •2.14 Exercises
- •References
- •3.1 Introduction
- •3.1.1 Historical Context
- •3.1.2 Basic Measurement Principles
- •3.1.3 Active Triangulation-Based Methods
- •3.1.4 Chapter Outline
- •3.2 Spot Scanners
- •3.2.1 Spot Position Detection
- •3.3 Stripe Scanners
- •3.3.1 Camera Model
- •3.3.2 Sheet-of-Light Projector Model
- •3.3.3 Triangulation for Stripe Scanners
- •3.4 Area-Based Structured Light Systems
- •3.4.1 Gray Code Methods
- •3.4.1.1 Decoding of Binary Fringe-Based Codes
- •3.4.1.2 Advantage of the Gray Code
- •3.4.2 Phase Shift Methods
- •3.4.2.1 Removing the Phase Ambiguity
- •3.4.3 Triangulation for a Structured Light System
- •3.5 System Calibration
- •3.6 Measurement Uncertainty
- •3.6.1 Uncertainty Related to the Phase Shift Algorithm
- •3.6.2 Uncertainty Related to Intrinsic Parameters
- •3.6.3 Uncertainty Related to Extrinsic Parameters
- •3.6.4 Uncertainty as a Design Tool
- •3.7 Experimental Characterization of 3D Imaging Systems
- •3.7.1 Low-Level Characterization
- •3.7.2 System-Level Characterization
- •3.7.3 Characterization of Errors Caused by Surface Properties
- •3.7.4 Application-Based Characterization
- •3.8 Selected Advanced Topics
- •3.8.1 Thin Lens Equation
- •3.8.2 Depth of Field
- •3.8.3 Scheimpflug Condition
- •3.8.4 Speckle and Uncertainty
- •3.8.5 Laser Depth of Field
- •3.8.6 Lateral Resolution
- •3.9 Research Challenges
- •3.10 Concluding Remarks
- •3.11 Further Reading
- •3.12 Questions
- •3.13 Exercises
- •References
- •4.1 Introduction
- •Chapter Outline
- •4.2 Representation of 3D Data
- •4.2.1 Raw Data
- •4.2.1.1 Point Cloud
- •4.2.1.2 Structured Point Cloud
- •4.2.1.3 Depth Maps and Range Images
- •4.2.1.4 Needle map
- •4.2.1.5 Polygon Soup
- •4.2.2 Surface Representations
- •4.2.2.1 Triangular Mesh
- •4.2.2.2 Quadrilateral Mesh
- •4.2.2.3 Subdivision Surfaces
- •4.2.2.4 Morphable Model
- •4.2.2.5 Implicit Surface
- •4.2.2.6 Parametric Surface
- •4.2.2.7 Comparison of Surface Representations
- •4.2.3 Solid-Based Representations
- •4.2.3.1 Voxels
- •4.2.3.3 Binary Space Partitioning
- •4.2.3.4 Constructive Solid Geometry
- •4.2.3.5 Boundary Representations
- •4.2.4 Summary of Solid-Based Representations
- •4.3 Polygon Meshes
- •4.3.1 Mesh Storage
- •4.3.2 Mesh Data Structures
- •4.3.2.1 Halfedge Structure
- •4.4 Subdivision Surfaces
- •4.4.1 Doo-Sabin Scheme
- •4.4.2 Catmull-Clark Scheme
- •4.4.3 Loop Scheme
- •4.5 Local Differential Properties
- •4.5.1 Surface Normals
- •4.5.2 Differential Coordinates and the Mesh Laplacian
- •4.6 Compression and Levels of Detail
- •4.6.1 Mesh Simplification
- •4.6.1.1 Edge Collapse
- •4.6.1.2 Quadric Error Metric
- •4.6.2 QEM Simplification Summary
- •4.6.3 Surface Simplification Results
- •4.7 Visualization
- •4.8 Research Challenges
- •4.9 Concluding Remarks
- •4.10 Further Reading
- •4.11 Questions
- •4.12 Exercises
- •References
- •1.1 Introduction
- •Chapter Outline
- •1.2 A Historical Perspective on 3D Imaging
- •1.2.1 Image Formation and Image Capture
- •1.2.2 Binocular Perception of Depth
- •1.2.3 Stereoscopic Displays
- •1.3 The Development of Computer Vision
- •1.3.1 Further Reading in Computer Vision
- •1.4 Acquisition Techniques for 3D Imaging
- •1.4.1 Passive 3D Imaging
- •1.4.2 Active 3D Imaging
- •1.4.3 Passive Stereo Versus Active Stereo Imaging
- •1.5 Twelve Milestones in 3D Imaging and Shape Analysis
- •1.5.1 Active 3D Imaging: An Early Optical Triangulation System
- •1.5.2 Passive 3D Imaging: An Early Stereo System
- •1.5.3 Passive 3D Imaging: The Essential Matrix
- •1.5.4 Model Fitting: The RANSAC Approach to Feature Correspondence Analysis
- •1.5.5 Active 3D Imaging: Advances in Scanning Geometries
- •1.5.6 3D Registration: Rigid Transformation Estimation from 3D Correspondences
- •1.5.7 3D Registration: Iterative Closest Points
- •1.5.9 3D Local Shape Descriptors: Spin Images
- •1.5.10 Passive 3D Imaging: Flexible Camera Calibration
- •1.5.11 3D Shape Matching: Heat Kernel Signatures
- •1.6 Applications of 3D Imaging
- •1.7 Book Outline
- •1.7.1 Part I: 3D Imaging and Shape Representation
- •1.7.2 Part II: 3D Shape Analysis and Processing
- •1.7.3 Part III: 3D Imaging Applications
- •References
- •5.1 Introduction
- •5.1.1 Applications
- •5.1.2 Chapter Outline
- •5.2 Mathematical Background
- •5.2.1 Differential Geometry
- •5.2.2 Curvature of Two-Dimensional Surfaces
- •5.2.3 Discrete Differential Geometry
- •5.2.4 Diffusion Geometry
- •5.2.5 Discrete Diffusion Geometry
- •5.3 Feature Detectors
- •5.3.1 A Taxonomy
- •5.3.2 Harris 3D
- •5.3.3 Mesh DOG
- •5.3.4 Salient Features
- •5.3.5 Heat Kernel Features
- •5.3.6 Topological Features
- •5.3.7 Maximally Stable Components
- •5.3.8 Benchmarks
- •5.4 Feature Descriptors
- •5.4.1 A Taxonomy
- •5.4.2 Curvature-Based Descriptors (HK and SC)
- •5.4.3 Spin Images
- •5.4.4 Shape Context
- •5.4.5 Integral Volume Descriptor
- •5.4.6 Mesh Histogram of Gradients (HOG)
- •5.4.7 Heat Kernel Signature (HKS)
- •5.4.8 Scale-Invariant Heat Kernel Signature (SI-HKS)
- •5.4.9 Color Heat Kernel Signature (CHKS)
- •5.4.10 Volumetric Heat Kernel Signature (VHKS)
- •5.5 Research Challenges
- •5.6 Conclusions
- •5.7 Further Reading
- •5.8 Questions
- •5.9 Exercises
- •References
- •6.1 Introduction
- •Chapter Outline
- •6.2 Registration of Two Views
- •6.2.1 Problem Statement
- •6.2.2 The Iterative Closest Points (ICP) Algorithm
- •6.2.3 ICP Extensions
- •6.2.3.1 Techniques for Pre-alignment
- •Global Approaches
- •Local Approaches
- •6.2.3.2 Techniques for Improving Speed
- •Subsampling
- •Closest Point Computation
- •Distance Formulation
- •6.2.3.3 Techniques for Improving Accuracy
- •Outlier Rejection
- •Additional Information
- •Probabilistic Methods
- •6.3 Advanced Techniques
- •6.3.1 Registration of More than Two Views
- •Reducing Error Accumulation
- •Automating Registration
- •6.3.2 Registration in Cluttered Scenes
- •Point Signatures
- •Matching Methods
- •6.3.3 Deformable Registration
- •Methods Based on General Optimization Techniques
- •Probabilistic Methods
- •6.3.4 Machine Learning Techniques
- •Improving the Matching
- •Object Detection
- •6.4 Quantitative Performance Evaluation
- •6.5 Case Study 1: Pairwise Alignment with Outlier Rejection
- •6.6 Case Study 2: ICP with Levenberg-Marquardt
- •6.6.1 The LM-ICP Method
- •6.6.2 Computing the Derivatives
- •6.6.3 The Case of Quaternions
- •6.6.4 Summary of the LM-ICP Algorithm
- •6.6.5 Results and Discussion
- •6.7 Case Study 3: Deformable ICP with Levenberg-Marquardt
- •6.7.1 Surface Representation
- •6.7.2 Cost Function
- •Data Term: Global Surface Attraction
- •Data Term: Boundary Attraction
- •Penalty Term: Spatial Smoothness
- •Penalty Term: Temporal Smoothness
- •6.7.3 Minimization Procedure
- •6.7.4 Summary of the Algorithm
- •6.7.5 Experiments
- •6.8 Research Challenges
- •6.9 Concluding Remarks
- •6.10 Further Reading
- •6.11 Questions
- •6.12 Exercises
- •References
- •7.1 Introduction
- •7.1.1 Retrieval and Recognition Evaluation
- •7.1.2 Chapter Outline
- •7.2 Literature Review
- •7.3 3D Shape Retrieval Techniques
- •7.3.1 Depth-Buffer Descriptor
- •7.3.1.1 Computing the 2D Projections
- •7.3.1.2 Obtaining the Feature Vector
- •7.3.1.3 Evaluation
- •7.3.1.4 Complexity Analysis
- •7.3.2 Spin Images for Object Recognition
- •7.3.2.1 Matching
- •7.3.2.2 Evaluation
- •7.3.2.3 Complexity Analysis
- •7.3.3 Salient Spectral Geometric Features
- •7.3.3.1 Feature Points Detection
- •7.3.3.2 Local Descriptors
- •7.3.3.3 Shape Matching
- •7.3.3.4 Evaluation
- •7.3.3.5 Complexity Analysis
- •7.3.4 Heat Kernel Signatures
- •7.3.4.1 Evaluation
- •7.3.4.2 Complexity Analysis
- •7.4 Research Challenges
- •7.5 Concluding Remarks
- •7.6 Further Reading
- •7.7 Questions
- •7.8 Exercises
- •References
- •8.1 Introduction
- •Chapter Outline
- •8.2 3D Face Scan Representation and Visualization
- •8.3 3D Face Datasets
- •8.3.1 FRGC v2 3D Face Dataset
- •8.3.2 The Bosphorus Dataset
- •8.4 3D Face Recognition Evaluation
- •8.4.1 Face Verification
- •8.4.2 Face Identification
- •8.5 Processing Stages in 3D Face Recognition
- •8.5.1 Face Detection and Segmentation
- •8.5.2 Removal of Spikes
- •8.5.3 Filling of Holes and Missing Data
- •8.5.4 Removal of Noise
- •8.5.5 Fiducial Point Localization and Pose Correction
- •8.5.6 Spatial Resampling
- •8.5.7 Feature Extraction on Facial Surfaces
- •8.5.8 Classifiers for 3D Face Matching
- •8.6 ICP-Based 3D Face Recognition
- •8.6.1 ICP Outline
- •8.6.2 A Critical Discussion of ICP
- •8.6.3 A Typical ICP-Based 3D Face Recognition Implementation
- •8.6.4 ICP Variants and Other Surface Registration Approaches
- •8.7 PCA-Based 3D Face Recognition
- •8.7.1 PCA System Training
- •8.7.2 PCA Training Using Singular Value Decomposition
- •8.7.3 PCA Testing
- •8.7.4 PCA Performance
- •8.8 LDA-Based 3D Face Recognition
- •8.8.1 Two-Class LDA
- •8.8.2 LDA with More than Two Classes
- •8.8.3 LDA in High Dimensional 3D Face Spaces
- •8.8.4 LDA Performance
- •8.9 Normals and Curvature in 3D Face Recognition
- •8.9.1 Computing Curvature on a 3D Face Scan
- •8.10 Recent Techniques in 3D Face Recognition
- •8.10.1 3D Face Recognition Using Annotated Face Models (AFM)
- •8.10.2 Local Feature-Based 3D Face Recognition
- •8.10.2.1 Keypoint Detection and Local Feature Matching
- •8.10.2.2 Other Local Feature-Based Methods
- •8.10.3 Expression Modeling for Invariant 3D Face Recognition
- •8.10.3.1 Other Expression Modeling Approaches
- •8.11 Research Challenges
- •8.12 Concluding Remarks
- •8.13 Further Reading
- •8.14 Questions
- •8.15 Exercises
- •References
- •9.1 Introduction
- •Chapter Outline
- •9.2 DEM Generation from Stereoscopic Imagery
- •9.2.1 Stereoscopic DEM Generation: Literature Review
- •9.2.2 Accuracy Evaluation of DEMs
- •9.2.3 An Example of DEM Generation from SPOT-5 Imagery
- •9.3 DEM Generation from InSAR
- •9.3.1 Techniques for DEM Generation from InSAR
- •9.3.1.1 Basic Principle of InSAR in Elevation Measurement
- •9.3.1.2 Processing Stages of DEM Generation from InSAR
- •The Branch-Cut Method of Phase Unwrapping
- •The Least Squares (LS) Method of Phase Unwrapping
- •9.3.2 Accuracy Analysis of DEMs Generated from InSAR
- •9.3.3 Examples of DEM Generation from InSAR
- •9.4 DEM Generation from LIDAR
- •9.4.1 LIDAR Data Acquisition
- •9.4.2 Accuracy, Error Types and Countermeasures
- •9.4.3 LIDAR Interpolation
- •9.4.4 LIDAR Filtering
- •9.4.5 DTM from Statistical Properties of the Point Cloud
- •9.5 Research Challenges
- •9.6 Concluding Remarks
- •9.7 Further Reading
- •9.8 Questions
- •9.9 Exercises
- •References
- •10.1 Introduction
- •10.1.1 Allometric Modeling of Biomass
- •10.1.2 Chapter Outline
- •10.2 Aerial Photo Mensuration
- •10.2.1 Principles of Aerial Photogrammetry
- •10.2.1.1 Geometric Basis of Photogrammetric Measurement
- •10.2.1.2 Ground Control and Direct Georeferencing
- •10.2.2 Tree Height Measurement Using Forest Photogrammetry
- •10.2.2.2 Automated Methods in Forest Photogrammetry
- •10.3 Airborne Laser Scanning
- •10.3.1 Principles of Airborne Laser Scanning
- •10.3.1.1 Lidar-Based Measurement of Terrain and Canopy Surfaces
- •10.3.2 Individual Tree-Level Measurement Using Lidar
- •10.3.2.1 Automated Individual Tree Measurement Using Lidar
- •10.3.3 Area-Based Approach to Estimating Biomass with Lidar
- •10.4 Future Developments
- •10.5 Concluding Remarks
- •10.6 Further Reading
- •10.7 Questions
- •References
- •11.1 Introduction
- •Chapter Outline
- •11.2 Volumetric Data Acquisition
- •11.2.1 Computed Tomography
- •11.2.1.1 Characteristics of 3D CT Data
- •11.2.2 Positron Emission Tomography (PET)
- •11.2.2.1 Characteristics of 3D PET Data
- •Relaxation
- •11.2.3.1 Characteristics of the 3D MRI Data
- •Image Quality and Artifacts
- •11.2.4 Summary
- •11.3 Surface Extraction and Volumetric Visualization
- •11.3.1 Surface Extraction
- •Example: Curvatures and Geometric Tools
- •11.3.2 Volume Rendering
- •11.3.3 Summary
- •11.4 Volumetric Image Registration
- •11.4.1 A Hierarchy of Transformations
- •11.4.1.1 Rigid Body Transformation
- •11.4.1.2 Similarity Transformations and Anisotropic Scaling
- •11.4.1.3 Affine Transformations
- •11.4.1.4 Perspective Transformations
- •11.4.1.5 Non-rigid Transformations
- •11.4.2 Points and Features Used for the Registration
- •11.4.2.1 Landmark Features
- •11.4.2.2 Surface-Based Registration
- •11.4.2.3 Intensity-Based Registration
- •11.4.3 Registration Optimization
- •11.4.3.1 Estimation of Registration Errors
- •11.4.4 Summary
- •11.5 Segmentation
- •11.5.1 Semi-automatic Methods
- •11.5.1.1 Thresholding
- •11.5.1.2 Region Growing
- •11.5.1.3 Deformable Models
- •Snakes
- •Balloons
- •11.5.2 Fully Automatic Methods
- •11.5.2.1 Atlas-Based Segmentation
- •11.5.2.2 Statistical Shape Modeling and Analysis
- •11.5.3 Summary
- •11.6 Diffusion Imaging: An Illustration of a Full Pipeline
- •11.6.1 From Scalar Images to Tensors
- •11.6.2 From Tensor Image to Information
- •11.6.3 Summary
- •11.7 Applications
- •11.7.1 Diagnosis and Morphometry
- •11.7.2 Simulation and Training
- •11.7.3 Surgical Planning and Guidance
- •11.7.4 Summary
- •11.8 Concluding Remarks
- •11.9 Research Challenges
- •11.10 Further Reading
- •Data Acquisition
- •Surface Extraction
- •Volume Registration
- •Segmentation
- •Diffusion Imaging
- •Software
- •11.11 Questions
- •11.12 Exercises
- •References
- •Index
244 |
|
|
|
U. Castellani and A. Bartoli |
|
Table 6.2 X-84 performance evaluations. Rotation and translation errors are reported |
|
||||
|
|
|
|
|
|
Method |
Rot. error |
Trans. error |
Number of |
Number of |
Time |
|
(rad.) |
(mm) |
overlap. points |
iterations |
(sec) |
|
|
|
|
|
|
Besl |
0.22345 |
1.2636 |
10000 |
20 |
370 |
Picky |
0.10918 |
0.9985 |
9534 |
28 |
76 |
X84-ICP |
0.06351 |
0.4177 |
4582 |
21 |
383 |
Ground Truth |
– |
– |
4000 |
– |
– |
|
|
|
|
|
|
The second peak of the distribution corresponds to residuals generated by the nonoverlapping points.4 In Fig. 6.15 (right), points of the data-view are colored differently between inliers and outliers. Note that non-overlapping parts are correctly registered.
Table 6.2 summarizes the performance of X84-ICP in comparison with Besl and Picky. The ground truth transformation is shown as well. Note that the basic ICP is strongly affected by outliers and is not able to correctly align the two views. The Picky ICP improves the accuracy, but it is not able to correctly estimate the overlapping parts and it does not reach convergence. Conversely, by employing the X84 rule wrong correspondences are well detected and a correct registration is obtained. We highlight that although X84-ICP performs well in this experiment, in more general cases where the number of outliers is greater than 50 % of the residual distribution, the X84 rule is likely to fail.
6.6 Case Study 2: ICP with Levenberg-Marquardt
In this section, we describe a registration method called Levenberg-Marquardt ICP (LM-ICP), which addresses several of the issues of ICP by modeling the registration as a general optimization problem. LM-ICP [32] was proposed in order to minimize the alignment error by employing a nonlinear optimization procedure. The advantage of the LM-ICP is the versatility in the definition of the optimization function in order to take into account of several aspects of the registration, such as outlier rejection and speed.
6.6.1 The LM-ICP Method
The general problem formulation is defined as for the ICP algorithm. The error function E(a) = EICP(a, D, M) is Nonlinear Least Squares and can thus be written
4In order to visualize the peak the second part of the histogram has been quantized with wider intervals.
6 3D Shape Registration |
245 |
as the sum of Nd squared residual vectors:
|
Nd |
2 |
|
|
|
E(a) = |
|
, |
ei (a) = Rdi + t − mj . |
(6.12) |
|
ei (a) |
|
||||
|
i=1 |
|
|
|
|
Defining the residual vector as: |
|
|
|
|
|
e(a) = e1(a) |
|
e2(a) . . . eNd (a) T, |
(6.13) |
we rewrite the error function as E(a) = e(a) 2.
The Levenberg-Marquardt algorithm combines the methods of gradient-descent and Gauss-Newton. The goal at each iteration is to choose an update to the current estimate ak , say x, so that setting ak+1 = ak + x reduces the registration error.
We first derive the Gauss-Newton update. Expanding E(a + x) to second order
yields: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E(a |
+ |
x) |
= |
E(a) |
E(a) |
· |
x |
+ |
1 |
|
|
2E(a) |
· |
x |
· |
x |
+ |
h.o.t. |
(6.14) |
||
|
|||||||||||||||||||||
|
|
|
+ |
|
2 |
! |
|
|
|
|
|
|
|
||||||||
This is rewritten in terms of e as: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
E(a) = eTe |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
E(a) = 2( e)Te |
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
2E(a) = 2 2e e + 2( e)T e. |
|
|
|
|
|
|
||||||||||
We now define the Nd × p Jacobian matrix J = e, with block (i, j ) as Ji,j = |
∂Ei |
||||||||||||||||||||
∂aj |
(p is the number of elements in a). Introducing the Gauss-Newton approximation (i.e., neglecting ( 2e)e) we get:
E(a + x) ≈ eTe + xTJTe + xTJTJx. |
(6.15) |
Differentiating with respect to x and nullifying yields: |
|
xE(a + x) = JTe + JTJx = 0, |
(6.16) |
and gives the Gauss-Newton update: |
|
xGN = − JTJ −1JTe. |
(6.17) |
Gauss-Newton is usually fast for mildly nonlinear problems (it has superlinear convergence speed), but there is no guarantee of convergence in the general case (an update may increase the error).
We now derive the gradient descent update. Since we deal with a Least Squares problem, the gradient descent update is simply given by:
xGD = −λ−1JTe, |
(6.18) |
246 |
U. Castellani and A. Bartoli |
where λ is the inverse step length. Gradient descent has the nice property that, unless a local minimum has been reached, one can always decrease the error by making the step length small enough. On the other hand, gradient descent is known to be slow and rather inefficient.
The Levenberg-Marquardt algorithm combines both Gauss-Newton and gradient descent updates in a relatively simple way:
xLM = − JTJ + λI −1JTe. |
(6.19) |
A large value of λ yields a small, safe, gradient-descent step while a small value of λ favor large and more accurate steps of Gauss-Newton that make convergence to a local minimum faster. The art of a Levenberg-Marquardt algorithm implementation is in tuning λ after each iteration to ensure rapid progress even where Gauss-Newton fails. The now standard implementation is to multiply λ by 10 if the error increases and to divide it by 10 if the error decreases (with an upper bound at 108 and a lower bound at 10−4 for instance). In order to make the method robust to outliers, one may attenuate the influence of points with a large error by replacing the square error function by an M-estimator ε and an Iterative Reweighted Least Squared (IRLS)- like reweighting procedure. For instance, the following robust functions can be used:
Lorenzian: ε(r) = log 1 + |
r2 |
||
|
or |
||
σ |
|||
Huber: ε(r) = |
r2 |
|
r < σ |
2σ |r| − σ 2 |
|
otherwise. |
6.6.2 Computing the Derivatives
An important issue in how Levenberg-Marquardt is applied to ICP is the one of computing the derivatives of the error function. The simplest approach is based on using finite differencing, assuming that the error function is smooth. However, this leads to a cost of p extra function evaluations per inner loop. In [32] a more effective solution was proposed based on the distance transform which also drastically improves the computational efficiency. The distance transform is defined as:
|
= |
j |
|
|
− |
|
|
|
|
Dε (x) |
|
min ε2 |
|
mj |
|
x |
|
, |
(6.20) |
where x X and X is a discrete grid representing the volume which encloses the model-view M. Indeed, each data-point di can be easily associated to grid-points by obtaining the residual error ei = X(di ) in one shot.5 In other words, LM-ICP merges
5Note that the volume is discretized into integer values, therefore the data-point di should be rounded to recover X(di ).
6 3D Shape Registration |
247 |
the two main steps of ICP, namely closest point computation and transformation estimation, in a single step. Note further that when the mapping x → ε2( x ) is monotonic, we obtain that Dε (x) = ε2( D(x) ), so existing algorithms to compute D may be used to compute Dε , without requiring knowledge of the form of ε.
By combining Eq. (6.12) with Eq. (6.20) the new formulation of the registration problem becomes:
Nd |
|
|
|
E(a) = Dε T (a, di ) . |
(6.21) |
i=1
This formulation makes it much easier to compute the derivatives of E. In fact, since the distance transform is computed in a discrete form, it is possible to compute finite differences derivatives. More specifically,
|
|
|
|
|
|
∂Dε |
|
∂Dε |
|
∂Dε |
|||
|
|
xDε = |
|
, |
|
, |
|
|
|
||||
∂x |
∂y |
∂z |
|||||||||||
is computed by defining |
|
|
|
|
|
|
|
|
|
|
|||
|
∂Dε (x, y, z) |
|
= |
Dε (x + 1, y, z) − Dε (x − 1, y, z) , |
|||||||||
|
|
∂x |
|
|
|
|
|
|
2 |
|
|
|
|
|
∂Dε (x, y, z) |
|
= |
Dε (x, y + 1, z) − Dε (x, y − 1, z) , |
|||||||||
|
|
∂y |
|
|
|
|
|
|
2 |
|
|
|
|
and |
|
|
|
|
|
|
|
|
|
|
|||
|
|
∂Dε (x, y, z) |
= |
|
Dε (x, y, z + 1) − Dε (x, y, z − 1) |
. |
|||||||
|
|
|
|
|
|||||||||
|
|
∂z |
|
|
|
|
|
2 |
|
|
|
In practice, xDε remains constant through the minimization, and we get:
Nd
aE(a) = xDε T (a, di ) aTT (a, di ). (6.22)
i=1
Note that the computation of aTT (a, di ) depends on the rigid transformation parametrization being used. In [32], the author proposed to model rotations by unitary quaternions for which the derivatives can be easily computed analytically. Finally, in order to compute the derivatives using matrix operators the Jacobian matrix is defined as Ji,j = ( xDε (T (a, di )) · aTj T (a, di )), where aj T (a, di ) =
[ |
∂Tx (a,di ) |
, |
∂Ty (a,di ) |
, |
∂Tz (a,di ) |
]. |
∂aj |
∂aj |
∂aj |
6.6.3 The Case of Quaternions
Let the quaternion be defined by q = [s, v] where s and v are the scalar and vectorial components respectively [97]. Let d be the point on which the rotation must be
248 |
U. Castellani and A. Bartoli |
applied. To this aim such a point must be represented in quaternion space, leading to r = [0, d]. Therefore, the rotated point is obtained by:
r = qrq−1.
By multiplying in quaternion space6 we obtain:
r = 0, s2d + (d · v) · v + 2s(v × d) + v × (v × d) .
We represent this rotated point as:
r = [0, Tx , Ty , Tz],
where:
Tx = s2dx + (dx vx + dy vy + dzvz)vx + 2s(vy dz − vzdy ) + vy (vx dy − vy dx )
−vz(vzdx − vx dz)
=s2dx + vx2dx + vx vy dy + vx vzdz + 2svy dz − 2svzdy + vx vy dy − vy2dx
−vz2dx + vx vzdz
=s2 + vx2 − vy2 − vz2 dx + 2(vx vy − svz)dy + 2(vx vz + svy )dz
Ty = s2dy + (dx vx + dy vy + dzvz)vy + 2s(vzdx − vx dz) + vz(vy dz − vzdy )
−vx (vx dy − vy dx )
=s2dy + vx vy dx + vy2dy + vy vzdz + 2svzdx − 2svx dz + vy vzdz − vz2dy
−vx2dy + vx vy dx
=2(vx vy + svz)dx + s2 − vx2 + vy2 − vz2 dy + 2(vy vz − svx )dz
Tz = s2dz + (dx vx + dy vy + dzvz)vz + 2s(vx dy − vy dx ) + vx (vzdx − vx dz)
−vy (vy dz − vzdy )
=s2dz + vx vzdx + vy vzdy + vz2dz + 2svx dy − 2svy dx + vx vzdx − vx2dz
−vy2dz + vy vzdy
=2(vx vz − svy )dx + 2(vy vz + svx )dy + s2 − vx2 − vy2 + vz2 dz.
Now we introduce the translation component [tx , ty , tz] and normalize the quaternion by obtaining:
6A multiplication between two quaternions q and q is defined as [ss − v · v , v × v + sv + s v].