BA优化
parent
23394ee656
commit
c584237503
|
@ -303,9 +303,17 @@ bool ORBmatcher::CheckDistEpipolarLine2(const cv::KeyPoint &kp1, const cv::KeyPo
|
|||
return dsqr<3.84*pKF2->mvLevelSigma2[kp2.octave]*unc;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 通过词袋,对关键帧的特征点进行跟踪
|
||||
*
|
||||
* @param[in] pKF 关键帧
|
||||
* @param[in] F 当前普通帧
|
||||
* @param[in] vpMapPointMatches F中地图点对应的匹配,NULL表示未匹配
|
||||
* @return int 成功匹配的数量
|
||||
*/
|
||||
int ORBmatcher::SearchByBoW(KeyFrame* pKF,Frame &F, vector<MapPoint*> &vpMapPointMatches)
|
||||
{
|
||||
// 获取该关键帧的mappoint
|
||||
// 获取该关键帧的地图点
|
||||
const vector<MapPoint*> vpMapPointsKF = pKF->GetMapPointMatches();
|
||||
|
||||
// 和普通帧F特征点的索引一致
|
||||
|
@ -348,7 +356,7 @@ int ORBmatcher::SearchByBoW(KeyFrame* pKF,Frame &F, vector<MapPoint*> &vpMapPoin
|
|||
// 关键帧该节点中特征点的索引
|
||||
const unsigned int realIdxKF = vIndicesKF[iKF];
|
||||
|
||||
// 取出KF中该特征对应的MapPoint
|
||||
// 取出KF中该特征对应的地图点
|
||||
MapPoint* pMP = vpMapPointsKF[realIdxKF];
|
||||
|
||||
if(!pMP)
|
||||
|
@ -356,8 +364,8 @@ int ORBmatcher::SearchByBoW(KeyFrame* pKF,Frame &F, vector<MapPoint*> &vpMapPoin
|
|||
|
||||
if(pMP->isBad())
|
||||
continue;
|
||||
|
||||
const cv::Mat &dKF= pKF->mDescriptors.row(realIdxKF); // 取出KF中该特征对应的描述子
|
||||
// 取出关键帧KF中该特征对应的描述子
|
||||
const cv::Mat &dKF= pKF->mDescriptors.row(realIdxKF);
|
||||
|
||||
int bestDist1=256; // 最好的距离(最小距离)
|
||||
int bestIdxF =-1 ;
|
||||
|
@ -370,13 +378,14 @@ int ORBmatcher::SearchByBoW(KeyFrame* pKF,Frame &F, vector<MapPoint*> &vpMapPoin
|
|||
for(size_t iF=0; iF<vIndicesF.size(); iF++)
|
||||
{
|
||||
if(F.Nleft == -1){
|
||||
// 这里的realIdxF是指普通帧该节点中特征点的索引
|
||||
const unsigned int realIdxF = vIndicesF[iF];
|
||||
|
||||
// 如果地图点存在,说明这个点已经被匹配过了,不再匹配,加快速度
|
||||
if(vpMapPointMatches[realIdxF])
|
||||
continue;
|
||||
|
||||
const cv::Mat &dF = F.mDescriptors.row(realIdxF); // 取出F中该特征对应的描述子
|
||||
// 取出普通帧F中该特征对应的描述子
|
||||
const cv::Mat &dF = F.mDescriptors.row(realIdxF);
|
||||
// 计算描述子的距离
|
||||
const int dist = DescriptorDistance(dKF,dF);
|
||||
|
||||
|
|
Loading…
Reference in New Issue