用Ceres解决最小二乘问题

该代码源于《视觉SLAM十四讲》 ceres_curve_fitting/main.cpp

Ceres库用于通用的最小二乘问题求解;我们需要做的就是定义优化问题,设置选项,输入近Ceres求解即可。

该页代码用于日后查找方便 (添加了部分笔记)、
问题描述
该代码主要是求解曲线 y= exp(a*x*x + b*x +c) + w;(w是噪声) 假设有N个x和y的观测数据点,用来求解曲线的参数。则待估计变量实际上是a,b,c
解决思路
先用CV随机数产生器生成N个数据(包括噪声) 构造最小二乘问题 ; 配置求解器(配置项比较多), 对问题进行优化。
代码部分

#include <iostream>
#include <opencv2/core/core.hpp>
#include <ceres/ceres.h>
#include <chrono>

using namespace std;

// 代价函数的计算模型(不是很熟悉这种模型定义)
struct CURVE_FITTING_COST
{
    CURVE_FITTING_COST ( double x, double y ) : _x ( x ), _y ( y ) {}
    // 残差的计算
    template <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值