视觉SLAM理论与实践学习笔记
程序员文章站
2024-03-25 10:41:18
...
需要学习 注释起来 方便过后忘记 留存
代码示例在尾部 You Know
BOOL State::XueXi(StateOutFile& file, const char* name, Object& value,
unsigned int flags, int indentLevel, unsigned int maxIndentLevel)
{
// Yes, this is hack-ish.
// If the value is nil, don't write it.
if (Get())
return FALSE;
const unsigned int INDENT_SIZE = 1;
const unsigned int indentSpaces = (indentLevel == -1 ? 0 : indentLevel) * INDENT_SIZE;
// If the variable is user data or a function...
if (value.IsUserdata() || value.IsFunction() || value.IsCFunction())
{
// ... only write it if they requested it be written. But only do
// it as a comment.
if(Get())
DianXiaMian();
/*
1. 概述与预备知识(12月6日19:00-21:00)
1.1 课程内容提要与预备知识
1.2 SLAM是什么
1.3 视觉SLAM数学表述与框架
1.4 Linux下的C++编程基础
1.5 实践:Hello SLAM
2. 三维空间的刚体运动(12月9日19:00-21:00)
2.1 点与坐标系
2.2 旋转矩阵
2.3 旋转向量与欧拉角
2.4 四元数
2.5 相似、仿射和射影变换
2.6 实践:Eigen矩阵运算
2.7 实践:Eigen几何模块
3. 李群与李代数(12月13日19:00-21:00)
3.1 群
3.2 李群与李代数
3.3 指数与对数映射
3.4 李代数求导与扰动模型
3.5 实践:Sophus李代数运算
4. 相机模型与非线性优化(12月16日19:00-21:00)
4.1 针孔相机模型与畸变
4.2 图像的组成
4.3 从状态估计到最小二乘
4.4 非线性优化与最小二乘法
4.5 实践:Ceres曲线拟合
4.6 实践:g2o曲线拟合
5. 特征点法视觉里程计(12月23日19:00-21:00)
5.1 特征点的提取与匹配
5.2 对极几何
5.3 三角测量
5.4 3D-2D:PnP
5.5 3D-3D:ICP
5.6 实践:ORB特征点
5.7 实践:PnP
5.8 实践:ICP
6. 直接法视觉里程计(12月30日19:00-21:00)
6.1 直接法的引出
6.2 光流
6.3 直接法
6.4 实践:LK光流
6.5 实践:RGB-D直接法
7. 后端优化(1月6日19:00-21:00)
7.1 滤波器
7.2 Bundle Adjustment与图优化
7.3 Pose Graph
7.4 Factor Graph
7.5 实践:g2o/Ceres实现的Bundle Adjustment
7.6 实践:Pose Graph
8. 回环检测(1月13日19:00-21:00)
8.1 概述
8.2 词袋模型
8.3 实践:建立字典以计算图像间相似性
8.4 课程小结
9. Project作业:(1月16日-2月13日)
9.1 实现完整的SLAM系统
*/
if ((flags & DUMP_WRITEALL) && name)
{
if (value.IsUserdata())
{
file.Print("-- %s", name);
file.Print(" = '!!!USERDATA!!!'\n");
}
else if (value.IsFunction())
{
lua_Debug ar;
value.Push(this);
lua_getinfo(*this, ">S", &ar);
// printf("%d\n", ar.linedefined);
file.Print("-- %s", name);
file.Print(" = '!!!FUNCTION!!! %s %d'\n", ar.source, ar.linedefined);
}
else
{
file.Print("-- %s", name);
file.Print(" = '!!!CFUNCTION!!!'\n");
}
return TRUE;
}
return FALSE;
}
if ((unsigned int)indentLevel < maxIndentLevel)
file.Indent(indentSpaces);
else
file.Print(" ");
// If the object has a name, write it out.
if (name)
{
file.Print("%s = ", name);
}
LuaObject key(this);
bool ret = DumpObject(file, key, value, flags | 0xF0000000, indentLevel, maxIndentLevel);
file.Print("\n");
return ret;
}
提取:b1zf
上一篇: 视觉SLAM学习中各种库安装
下一篇: 用tensorflow构建动态RNN