ORBSLAM2遗留问题

1, BoW3

1, 深度为l,分支为k的树,究竟表达多少word
2, 树的层数从上到下是0到l还是l到0,亦或是0到l-1还是l-1到0
3, node的id是否是饱和的,即是否会出现叶节点不都在一层中这种现象
4, transform的图片上的所有描述子是否都被分到FeatureVector了
5, mpORBvocabulary->transform(vCurrentDesc,mBowVec,mFeatVec,4);中的最后一个参数4,是指向上移动4层还是移动到第四层

2, SearchByBoW()

if(mbCheckOrientation)//初始化为ture
{
   //相匹配的两个特征点的角度差,大部分应该是大小相近的,取值(-360,360)
   float rot = kp.angle-F.mvKeys[bestIdxF].angle;//angle[0,360)
   if(rot<0.0)//将角度转化为正值,(0,720)
       rot+=360.0f;
   int bin = round(rot*factor);//const float factor = 1.0f/HISTO_LENGTH=1/30;bin取值(0,24)
   if(bin==HISTO_LENGTH) 
       bin=0;
   assert(bin>=0 && bin<HISTO_LENGTH);
   //rotHist,0号元素为null,1号元素储存角度差为(0,30]的,2号为(30,60]...,23号为[690,720)索引是当前帧特征点的索引
   rotHist[bin].push_back(bestIdxF);
   
}

角度一致性检查,角度差分成30份后,bin取值应该在(0,24),为什么还要判断bin==HISTO_LENGTH

3, G2O优化

为什么信息矩阵要乘上 特征提取层尺度因子平方的倒数

//单目特征点
const float invSigma2 = pFrame->mvInvLevelSigma2[kpUn.octave];
 e->setInformation(Eigen::Matrix2d::Identity()*invSigma2);//信息矩阵与缩放系数有关/1.2^2
//双目特征点
const float invSigma2 = pFrame->mvInvLevelSigma2[kpUn.octave];
Eigen::Matrix3d Info = Eigen::Matrix3d::Identity()*invSigma2;

4, Frame类型中检查地图点是否能够投影到本帧的isInFrustum()函数

pMP->GetNormal()返回的mNormalVector保存的是各个观测单位向量的平均值,而不是单位向量,因此此处计算的角度是有问题的.应该在此处加上一步将Pn归一化为单位向量,或者在计算mNormalVector的函数void MapPoint::UpdateNormalAndDepth()中将mNormalVector归一化为单位向量.

const cv::Mat PO = P-mOw;//光心指向地图点的向量,mow(==mtwc)光心位置
const float dist = cv::norm(PO);//mappoint与当前帧光心的距离
// Check viewing angle
//返回mNormalVector,mappoint的各个观测方向的平均值,并不是单位向量,是个单位向量的和的平均值
cv::Mat Pn = pMP->GetNormal();

//mappoint的当前帧观测方向与(mappoint的平均观测方向)夹角的cos值,有点问题,因为Pn不是单位向量
const float viewCos = PO.dot(Pn)/dist;

if(viewCos<viewingCosLimit)
       return false;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值