[Bf-blender-cvs] [9f7a726] testbuild: Merge remote-tracking branch 'origin/master' into testbuild

Martin Felke noreply at git.blender.org
Sun Oct 5 22:10:22 CEST 2014


Commit: 9f7a726eab21c9c26b786dcc4bf88e35acbda2a8
Author: Martin Felke
Date:   Sun Oct 5 22:05:16 2014 +0200
Branches: testbuild
https://developer.blender.org/rB9f7a726eab21c9c26b786dcc4bf88e35acbda2a8

Merge remote-tracking branch 'origin/master' into testbuild

Conflicts:
	extern/libmv/intern/reconstruction.h
	extern/libmv/intern/track_region.h
	extern/libmv/third_party/ceres/internal/ceres/callbacks.cc
	extern/libmv/third_party/ceres/internal/ceres/trust_region_preprocessor.cc

===================================================================



===================================================================

diff --cc build_files/build_environment/install_deps.sh
index c1b2fd9,a5acbe9..96935ed
--- a/build_files/build_environment/install_deps.sh
+++ b/build_files/build_environment/install_deps.sh
@@@ -25,10 -25,12 +25,11 @@@
  ARGS=$( \
  getopt \
  -o s:i:t:h \
 ---long source:,install:,tmp:,info:,threads:,help,no-sudo,with-all,with-opencollada,\
 -ver-ocio:,ver-oiio:,ver-llvm:,ver-osl:,\
 +--long source:,install:,tmp:,threads:,help,no-sudo,with-all,with-opencollada,ver-ocio:,ver-oiio:,ver-llvm:,ver-osl:,\
  force-all,force-python,force-numpy,force-boost,force-ocio,force-oiio,force-llvm,force-osl,force-opencollada,\
- force-ffmpeg,skip-python,skip-numpy,skip-boost,skip-ocio,skip-oiio,skip-llvm,skip-osl,skip-ffmpeg,\
- skip-opencollada,required-numpy: \
+ force-ffmpeg,\
+ skip-python,skip-numpy,skip-boost,skip-ocio,skip-openexr,skip-oiio,skip-llvm,skip-osl,skip-ffmpeg,skip-opencollada,\
+ required-numpy: \
  -- "$@" \
  )
  
diff --cc extern/libmv/third_party/ceres/ChangeLog
index c9f5b34,6f92154..508adc0
--- a/extern/libmv/third_party/ceres/ChangeLog
+++ b/extern/libmv/third_party/ceres/ChangeLog
@@@ -1,646 -1,671 +1,663 @@@
- commit 8c62487e437b91d3d354cd1ae8957e43fe540732
+ commit 9e11cd16d09403b9270e621e839d5948b6a74b8d
+ Author: Sameer Agarwal <sameeragarwal at google.com>
+ Date:   Mon Sep 29 14:27:58 2014 -0700
+ 
+     Faster  BlockRandomAccessSparseMatrix::SymmetricRightMultiply.
+     
+     Trade a small amount of memory to improve the cache coherency of
+     the SymmetricRightMultiply operation.
+     
+     The resulting code leads to a 10-20% speedup in the linear solver
+     end to end.
+     
+     Change-Id: I8ab2fe152099e849b211b5b19e4ef9f03d8e7f1c
+ 
+ commit 46b8461fd010c1e7ffce6bb2bdf8a84b659d5e09
+ Author: Sameer Agarwal <sameeragarwal at google.com>
+ Date:   Mon Sep 29 15:10:58 2014 -0700
+ 
+     Various minor fixes from William Rucklidge.
+     
+     Change-Id: Ibe731d5db374ad8ee148d62a9fdd8d726b607a3f
+ 
+ commit b44cfdef25f6bf0917a23b3fd65cce38aa6a3362
+ Author: Sameer Agarwal <sameeragarwal at google.com>
+ Date:   Mon Sep 29 07:53:54 2014 -0700
+ 
+     Let ITERATIVE_SCHUR use an explicit Schur Complement matrix.
+     
+     Up till now ITERATIVE_SCHUR evaluates matrix-vector products
+     between the Schur complement and a vector implicitly by exploiting
+     the algebraic expression for the Schur complement.
+     
+     This cost of this evaluation scales with the number of non-zeros
+     in the Jacobian.
+     
+     For small to medium sized problems there is a sweet spot where
+     computing the Schur complement is cheap enough that it is much
+     more efficient to explicitly compute it and use it for evaluating
+     the matrix-vector products.
+     
+     This changes implements support for an explicit Schur complement
+     in ITERATIVE_SCHUR in combination with the SCHUR_JACOBI preconditioner.
+     
+     API wise a new bool Solver::Options::use_explicit_schur_complement
+     has been added.
+     
+     The implementation extends the SparseSchurComplementSolver to use
+     Conjugate Gradients.
+     
+     Example speedup:
+     
+     use_explicit_schur_complement = false
+     
+     Time (in seconds):
+     Preprocessor                            0.585
+     
+       Residual evaluation                   0.319
+       Jacobian evaluation                   1.590
+       Linear solver                        25.685
+     Minimizer                              27.990
+     
+     Postprocessor                           0.010
+     Total                                  28.585
+     
+     use_explicit_schur_complement = true
+     
+     Time (in seconds):
+     Preprocessor                            0.638
+     
+       Residual evaluation                   0.318
+       Jacobian evaluation                   1.507
+       Linear solver                         5.930
+     Minimizer                               8.144
+     
+     Postprocessor                           0.010
+     Total                                   8.791
+     
+     Which indicates an end-to-end speedup of more than 3x, with the linear
+     solver being sped up by > 4x.
+     
+     The idea to explore this optimization was inspired by the recent paper:
+     
+     Mining structure fragments for smart bundle adjustment
+     L. Carlone, P. Alcantarilla, H. Chiu, K. Zsolt, F. Dellaert
+     British Machine Vision Conference, 2014
+     
+     which uses a more complicated algorithm to compute parts of the
+     Schur complement to speed up the matrix-vector product.
+     
+     Change-Id: I95324af0ab351faa1600f5204039a1d2a64ae61d
+ 
+ commit 4ad91490827f2ebebcc70d17e63ef653bf06fd0d
+ Author: Sameer Agarwal <sameeragarwal at google.com>
+ Date:   Wed Sep 24 23:54:18 2014 -0700
+ 
+     Simplify the Block Jacobi and Schur Jacobi preconditioners.
+     
+     1. Extend the implementation of BlockRandomAccessDiagonalMatrix
+     by adding Invert and RightMultiply methods.
+     
+     2. Simplify the implementation of the Schur Jacobi preconditioner
+     using these new methods.
+     
+     3. Replace the custom storage used inside Block Jacobi preconditioner
+     with BlockRandomAccessDiagonalMatrix and simplify its implementation
+     too.
+     
+     Change-Id: I9d4888b35f0f228c08244abbdda5298b3ce9c466
+ 
+ commit 8f7be1036b853addc33224d97b92412b5a1281b6
+ Author: Sameer Agarwal <sameeragarwal at google.com>
+ Date:   Mon Sep 29 08:13:35 2014 -0700
+ 
+     Fix a formatting error TrustRegionMinimizer logging.
+     
+     Change-Id: Iad1873c51eece46c3fdee1356d154367cfd7925e
+ 
+ commit c99872d48e322662ea19efb9010a62b7432687ae
+ Author: Sameer Agarwal <sameeragarwal at google.com>
+ Date:   Wed Sep 24 21:30:02 2014 -0700
+ 
+     Add BlockRandomAccessSparseMatrix::SymmetricRightMultiply.
+     
+     Change-Id: Ib06a22a209b4c985ba218162dfb6bf46bd93169e
+ 
+ commit d3ecd18625ba260e0d00912a305a448b566acc59
  Author: Sameer Agarwal <sameeragarwal at google.com>
 -Date:   Tue Sep 23 10:12:42 2014 -0700
 +Date:   Fri May 16 09:44:18 2014 -0700
  
 -    Add an explicit include for local_parameterization.h
 +    Preparations for 1.9.0 release.
      
 -    Thanks to cooordz for reporting this.
 +    Version bump.
 +    minor docs update.
      
 -    Change-Id: I7d345404e362a94ff1eb433ad6b9dcc4960ba76d
 +    Change-Id: I2fbe20ba4af6b2e186fe244c96ce6d6464fe0469
  
 -commit 5dd76869cf45122c79579423f09e0de08cf04092
 -Author: Alex Stewart <alexs.mac at gmail.com>
 -Date:   Fri Sep 19 16:08:25 2014 +0100
 +commit 0831275a78ab65e4c95979598cb35c54d03d3185
 +Author: Sameer Agarwal <sameeragarwal at google.com>
 +Date:   Fri May 16 08:17:54 2014 -0700
  
 -    Fix unused-function warning with Eigen < 3.2.2.
 +    Documentation update.
      
 -    - CreateBlockJacobian() is only ever used when Eigen >= 3.2.2 is
 -      detected, but was previously defined whenever CERES_USE_EIGEN_SPARSE
 -      was defined with no check on the Eigen version.
 -    - This resulted in an unused-function compile warning that became an
 -      error due to -Werror, preventing compilation when using Eigen < 3.2.2.
 +    1. Update iOS build instructions.
 +    2. Update version history.
      
 -    Change-Id: I24628ff329f14b087ece66bf2626bdc0de4ba224
 +    Change-Id: I49d62e86ecff39190b50c050cb12eef4e2773357
  
 -commit 820cb7b14831aa03eca1e8186000cebfdf0a42f3
 -Author: Sameer Agarwal <sameeragarwal at google.com>
 -Date:   Wed Sep 17 09:46:08 2014 -0700
 +commit c7c7458625996a20203f1366d11bd701e5fb621b
 +Author: Jack Feng <jackfengji at gmail.com>
 +Date:   Mon May 12 10:23:56 2014 +0800
  
 -    Add solver_utils.cc to Android.mk
 +    add support for building for ios
      
 -    Change-Id: I358522971711280f4362a1fa39b1568160e21e63
 +    use ios-cmake to build for ios
 +    
 +    Change-Id: I6b17c33339f3121322a4004d79629b22a62f7a94
  
 -commit 092b94970a073f8b47179d96160226fc19095898
 -Author: Sameer Agarwal <sameeragarwal at google.com>
 -Date:   Fri Sep 5 11:56:29 2014 -0700
 +commit 36c2ce87d13b9b7123bd0473b8b45fb3b6ae4271
 +Author: Sergey Sharybin <sergey.vfx at gmail.com>
 +Date:   Mon Jan 13 21:18:08 2014 +0600
  
 -    Add GradientProblem and GradientProblemSolver.
 +    Libmv 2D homography estimation example application
      
 -    The line search minimizer in Ceres does not require that the
 -    problems that is solving is a sum of squares. Over the past
 -    year there have been multiple requests to expose this algorithm
 -    on its own so that it can be used to solve unconstrained
 -    non-linear minimization problems on its own.
 +    Add an example application of homography matrix estimation
 +    from a 2D euclidean correspondences which is done in two
 +    steps:
      
 -    With this change, a new optimization problem called
 -    GradientProblem is introduced which is basically a thin
 -    wrapper around a user defined functor that evaluates cost
 -    and gradients (FirstOrderFunction) and an optional LocalParameterization.
 +    - Coarse algebraic estimation
 +    - Fine refinement using Ceres minimizer
      
 -    Corresponding to it, a GradientProblemSolver and its associated
 -    options and summary structs are introduced too.
 +    Nothing terribly exciting apart from an example of how to
 +    use user callbacks.
      
 -    An example that uses the new API to find the minimum of Rosenbrock's
 -    function is also added.
 +    User callback is used here to stop minimizer when average
 +    of symmetric geometric distance becomes good enough.
 +    This might be arguable whether it's the best way to go
 +    (in some cases you would want to stop minimizer when
 +    maximal symmetric distance is lower than a threshold) but
 +    for a callback usage example it's good enough to stick
 +    to current logic.
      
 -    Change-Id: I42bf687540da25de991e9bdb00e321239244e8b4
 +    Change-Id: I60c8559cb10b001a0eb64ab71920c08bd68455b8
  
 -commit 6c45d6b891aac01489b478a021f99081c61792cb
 -Author: Sameer Agarwal <sameeragarwal at google.com>
 -Date:   Thu Sep 11 07:48:30 2014 -0700
 +commit d99a3a961e4a6ff7218d0ab749da57cf1a1677bd
 +Author: Björn Piltz <bjornpiltz at gmail.com>
 +Date:   Wed May 7 14:59:12 2014 +0200
  
 -    Add more inspection methods to Problem.
 -

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list