ceres使用心得

ceres使用心得

  • 首篇CSDN博客
    • ceres介绍
    • 示例代码
    • 自我扩展,满足需求
    • 总结

首篇CSDN博客

转战CSDN的首篇博客,主要原因是有道云笔记在ubuntu系统下,太难受了!

ceres介绍

一、用途:

曲线拟合、计算机视觉中的三维模型构建,优化转换参数。

二、构成模块:

文件数据读取与存储
构建残差方程计算模型
main{
	构建problem问题;
	构建solver计算拟合参数;
	}		

示例代码

以官网示例代码simple_bundle_adjuster为例;
测试数据:problem-16-22106-pre.txt;

代码实现目的:
相机传感器在16个位置对空间中的22106个路标点成像,由于存在重复观测,共观测到路标点83718个像素坐标。

数据记录下83718个像素坐标所对应的相机位姿序号、路标点序号。

一、文件数据读取与存储

读取文件第一行数据:
int num_cameras_=16;
int num_points_=22106;
int num_observations_=83718;

读取文件数据并开辟存储空间:
开辟的三块空间的起始地址:point_index_、camera_index_、observations_

开辟需要优化的量的存储空间:parameters_
空间大小为9x16+3x22106,即位参数个数num_parameters_

template 
  void FscanfOrDie(FILE* fptr, const char* format, T* value) {
    int num_scanned = fscanf(fptr, format, value);

你可能感兴趣的:(计算机视觉,slam)