2021-06-03

ORB-SLAM2非主流旋转方向特征点筛选

对于一个静态的场景,当前帧所有特征与上一帧的旋转方向应该是相同的,通过这个特性,可以对通过计算BRIEEF描述子之间距离得到的匹配的特征点进行筛选,筛出旋转方向非主流的误匹配。
首先,计算匹配得到的两个特征点的旋转角度的差值,该差值的取值范围是[0,360°],将该取值范围划分为12个等份,每个等份代表着特征点的旋转方向的取值范围,将计算得到的两张图之间的特征点方向的差值放到对应的区间内得到关于特征点旋转方向的直方图。

取出排名前三的直方图,如果次优小于了最优的十分之一,就放弃次优,只取最优

// 如果差距太大了,说明次优的非常不好,这里就索性放弃了,都置为-1
    if(max2<0.1f*(float)max1)
    {
        ind2=-1;
        ind3=-1;
    }
    else if(max3<0.1f*(float)max1)
    {
        ind3=-1;
    }

对不符合主流旋转方向的特征点进行剔除,及将其指针置为空

for(int i=0; i<HISTO_LENGTH; i++)
        {
            // 对于数量不是前3个的点对,剔除
            if(i!=ind1 && i!=ind2 && i!=ind3)
            {
                for(size_t j=0, jend=rotHist[i].size(); j<jend; j++)
                {
                    CurrentFrame.mvpMapPoints[rotHist[i][j]]=static_cast<MapPoint*>(NULL);
                    nmatches--;
                }
            }
        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值