2019.10.10
一、初始化:
1.1 设置第一帧
1.2 跟踪新帧
1.3 完成初始化
setFirst()
trackFrame()
initializeFromInitializer()
PixelSelector::makeMaps()
makeNN()
makePixelStatus()
• 提取第0层的特征,取网格内随机方向梯度最大
点
• 提取1-5层的特征,取网格内具有dx/dy最大梯
度点
• new用于初始化的点,得到每个点同层最近的10
个点(neighbours),和上一层最近的点(parent)
propagateDown()
propagateUp()
循环迭代求解
calcResAndGS()
applyStep()
doStep()
calcEC()
optReg()
• 当检测到位移足够大时,开始从金字塔顶层向底
层使用LM优化位姿,光度参数,逆深度。
• 然后将逆深度由底层向顶层传播逆深度,用于下
次优化做初值。
• 优化到满足位移的后5帧,位移小或中间的帧删
除fh。
• 将第一帧插入关键帧,插入能量方程中(后面也
会把这个最新帧插入关键帧)
• 使用第0层点的均值作为归一尺度
• 把第0层点创建为PointHessian,并插入能量方
程insertPoint()(有先验)
• 设置第一帧和最新帧的FrameShell信息,作为
待估计量
【问题】:初始化一直跟踪第一帧好?还是根据优劣旋转跟踪参考帧好?
评论0