美文网首页
DSO初始化过程2020-05-08

DSO初始化过程2020-05-08

作者: OTTFFIVE | 来源:发表于2020-05-08 11:28 被阅读0次

    为各层金字塔图像计算梯度makeImages(image->image, &Hcalib):梯度为当前像素上下光强度差方与左右光强差方之和。先计算第0层的梯度,其他层的像素光强通过上一层均值采样得到。

    初始化操作大致可分为两个阶段,第一个阶段是第一帧的处理,第二阶段是后续帧的跟踪,跟踪的帧数为5帧,5帧后初始化完毕,流程如下:

    在第一帧数据中取点:setFirst(&Hcalib, fh):每层采集密度不一样,取点策略:先将图像划分成32x32的块,计算每块的梯度均值作为选点的阈值makeHists(fh),选点时,第一次选择先把图像分成d*d的块,然后选择梯度最大且大于阈值的点,如果第一次选择结束后选择的点数目未达要求,则分成2dX2d的块,以此类推。

    对于除第一帧外的后帧,trackFrame(fh, outputWrapper),直接法(two frame direct image alignment)只利用第一帧与当前帧的数据,用高斯牛顿方法基于最小化光测误差,求解或优化参数,优化之前,变换矩阵初始化为单位阵、点的逆深度初始化为1,在这个过程中,优化的初值都是没有实际意义的,优化的结果也是很不准确的

    跟踪了5帧后,调用initializeFromInitializer(fh),把第一帧设置为关键帧,并把该关键帧相关的信息存储起来,其中关键帧存储的点下采样为2000个活动点

    调用deliverTrackedFrame(fh, needToMakeKF),将第五帧传入后端,存为关键帧。

    相关文章

      网友评论

          本文标题:DSO初始化过程2020-05-08

          本文链接:https://www.haomeiwen.com/subject/dtaxnhtx.html