前文回顾:
【Python OpenCV】基于单应矩阵的视觉里程计算法步骤详解之ORB 特征提取
特征匹配解决SLAM中数据关联问题,确定当前看到的路标与之前看到的路标之间的对应关系。
1.ORB 特征提取
2.BFMatcher特征匹配输出结果
由于图像特征的局部特性,误匹配的情况广泛存在,成为制约视觉SLAM中制约性能提升的一个瓶颈
结果有问题,需要继续思考原因,我们如何才能避免错误匹配?
示例代码
我们使用的是暴力匹配算法,计算量很大;前一个图像的每一个特征点与下一个图片所有的特征点都要匹配一次计算距离,不满足SLAM实时性。
import numpy as np
import cv2
import matplotlib
from matplotlib import pyplot as plt
def main():
src_kpts: List[cv2.KeyPoint] = [] # key pts in source frame
src_desc: List[np.ndarray] = []
img_kpts = np.array([])