public BundleAdjustmentCalibratedDense(double convergenceTol, int maxIterations ) { this.convergenceTol = convergenceTol; minimizer = FactoryOptimization.leastSquaresTrustRegion(1, RegionStepType.DOG_LEG_F,false); codec = new CalibPoseAndPointRodriguesCodec(); this.maxIterations = maxIterations; }
public TriangulateRefineMetricLS(double convergenceTol, int maxIterations) { this.convergenceTol = convergenceTol; this.maxIterations = maxIterations; minimizer = FactoryOptimization.levenbergMarquardt(null,false); }
public LeastSquaresTriangulateCalibrated( double convergenceTol, int maxIterations) { this.convergenceTol = convergenceTol; this.maxIterations = maxIterations; minimizer = FactoryOptimization.leastSquareLevenberg(1e-3); }
public void optimize() { new FactoryOptimization(); UnconstrainedLeastSquares optimizer = FactoryOptimization.leastSquaresLM(1e-3, true); optimizer.setFunction(residual, null); double[] prm = new double[residual.getNumOfInputsN()]; residual.getCurrentLinkCom().set(prm); optimizer.initialize(prm, 0, 0); boolean converged; int maxIter = 10; for (int i = 0; i < maxIter; i++) { converged = optimizer.iterate(); prm = optimizer.getParameters(); System.out.println("iter " + i + " obj: " + optimizer.getFunctionValue() + "converged " + converged); if (optimizer.isConverged()) break; } System.out.println("Optimiztion finished."); } }
/** * Creates a trifocal tensor estimation algorithm. * * @param type Which algorithm. * @param iterations If the algorithm is iterative, then this is the number of iterations. Try 200 * @return Trifocal tensor estimator */ public static Estimate1ofTrifocalTensor estimateTrifocal_1(EnumTrifocal type, int iterations) { switch( type ) { case LINEAR_7: return new WrapTrifocalLinearPoint7(); case ALGEBRAIC_7: UnconstrainedLeastSquares optimizer = FactoryOptimization.leastSquaresLM(1e-3, false); TrifocalAlgebraicPoint7 alg = new TrifocalAlgebraicPoint7(optimizer,iterations,1e-12,1e-12); return new WrapTrifocalAlgebraicPoint7(alg); } throw new IllegalArgumentException("Unknown type "+type); }
@Override public UnconstrainedMinimization createAlgorithm() { return FactoryOptimization.quasiNewtonBfgs(null); } }
optimizer = FactoryOptimization.leastSquaresLM(1e-3,true);
@Override protected UnconstrainedMinimization createSearch() { return FactoryOptimization.quasiNewtonBfgs(null); }
public TriangulateRefineEpipolarLS(double convergenceTol, int maxIterations) { this.maxIterations = maxIterations; this.convergenceTol = convergenceTol; minimizer = FactoryOptimization.levenbergMarquardt( null,false); }
UnconstrainedLeastSquares optimizer = FactoryOptimization.leastSquaresTrustRegion(0.1, RegionStepType.DOG_LEG_F, false);
public LeastSquaresTriangulateEpipolar(double convergenceTol, int maxIterations) { this.maxIterations = maxIterations; this.convergenceTol = convergenceTol; minimizer = FactoryOptimization.leastSquareLevenberg( 1e-3); }
public static void main(String[] args) { UnconstrainedMinimization optimizer = FactoryOptimization.quasiNewtonBfgs(null); // Send to standard out progress information optimizer.setVerbose(System.out,0); // Provide an analytical gradient to the Rosenbrock function. optimizer.setFunction(new Rosenbrock(),new Gradient(),0); // [-1.2, 1] is the recommended starting point for testing optimizer.initialize(new double[]{-1.2,1},1e-12,1e-12); // iterate 500 times or until it converges. // Manually iteration is possible too if more control over is required UtilOptimize.process(optimizer,500); double found[] = optimizer.getParameters(); // see how accurately it found the solution System.out.println("Final Error = "+optimizer.getFunctionValue()); // Compare the actual parameters to the found parameters System.out.printf("x[0]: expected=1.00 found=%5.2f\n",found[0]); System.out.printf("x[1]: expected=1.00 found=%5.2f\n",found[1]); }
public TriangulateRefineProjectiveLS(double convergenceTol, int maxIterations) { this.convergenceTol = convergenceTol; this.maxIterations = maxIterations; minimizer = FactoryOptimization.levenbergMarquardt(null,false); }
UnconstrainedLeastSquares optimizer = FactoryOptimization.leastSquaresTrustRegion(0.1, RegionStepType.DOG_LEG_F, false);
public LeastSquaresHomography(double convergenceTol, int maxIterations, ModelObservationResidualN residuals ) { this.maxIterations = maxIterations; this.convergenceTol = convergenceTol; this.func = new ResidualsEpipolarMatrixN(null,residuals); minimizer = FactoryOptimization.leastSquareLevenberg( 1e-3); }
public LeastSquaresHomography(double convergenceTol, int maxIterations, ModelObservationResidualN residuals ) { this.maxIterations = maxIterations; this.convergenceTol = convergenceTol; this.func = new ResidualsEpipolarMatrixN(null,residuals); minimizer = FactoryOptimization.levenbergMarquardt(null,false); }
public LeastSquaresFundamental(ModelCodec<DenseMatrix64F> paramModel, double convergenceTol, int maxIterations, boolean useSampson) { this.paramModel = paramModel; this.maxIterations = maxIterations; this.convergenceTol = convergenceTol; param = new double[paramModel.getParamLength()]; ModelObservationResidual<DenseMatrix64F,AssociatedPair> residual; if( useSampson ) residual = new FundamentalResidualSampson(); else residual = new FundamentalResidualSimple(); func = new ResidualsEpipolarMatrix(paramModel,residual); minimizer = FactoryOptimization.leastSquareLevenberg(1e-3); }
/** * Creates a trifocal tensor estimation algorithm. * * @param config configuration for the estimator * @return Trifocal tensor estimator */ public static Estimate1ofTrifocalTensor trifocal_1( @Nullable ConfigTrifocal config ) { if( config == null ) { config = new ConfigTrifocal(); } switch( config.which ) { case LINEAR_7: return new WrapTrifocalLinearPoint7(); case ALGEBRAIC_7: ConfigConverge cc = config.converge; UnconstrainedLeastSquares optimizer = FactoryOptimization.levenbergMarquardt(null, false); TrifocalAlgebraicPoint7 alg = new TrifocalAlgebraicPoint7(optimizer, cc.maxIterations,cc.ftol,cc.gtol); return new WrapTrifocalAlgebraicPoint7(alg); } throw new IllegalArgumentException("Unknown type "+config.which); }
public PnPRefineRodrigues(double convergenceTol, int maxIterations ) { this.maxIterations = maxIterations; this.convergenceTol = convergenceTol; this.minimizer = FactoryOptimization.leastSquareLevenberg(1e-3); func = new ResidualsCodecToMatrix<>(paramModel, new PnPResidualReprojection(), new Se3_F64()); param = new double[paramModel.getParamLength()]; }
public LeastSquaresFundamental(ModelCodec<DMatrixRMaj> paramModel, double convergenceTol, int maxIterations, boolean useSampson) { this.paramModel = paramModel; this.maxIterations = maxIterations; this.convergenceTol = convergenceTol; param = new double[paramModel.getParamLength()]; ModelObservationResidual<DMatrixRMaj,AssociatedPair> residual; if( useSampson ) residual = new FundamentalResidualSampson(); else residual = new FundamentalResidualSimple(); func = new ResidualsEpipolarMatrix(paramModel,residual); minimizer = FactoryOptimization.levenbergMarquardt(null,false); }