ORB特征检测

ORB概述

  • ORBOriented FAST and Rotated BRIEF是一种快速特征点提取和描述的算法。
  • 这个算法是由Ethan Rublee, Vincent Rabaud, Kurt Konolige以及Gary R.Bradski2011年一篇名为“ORBAn Efficient  Alternative to SIFT or SURF”的文章中提出。
  • ORB算法分为两部分,分别是特征点提取和特征点描述。特征提取是由FASTFeatures from  Accelerated Segment Test)算法发展来的,特征点描述是根据BRIEFBinary Robust Independent Elementary Features)特征描述算法改进的。
  • ORB = oFast + rBRIEF。据称ORB算法的速度是sift100倍,是surf10
  • ORB算子在SLAM及无人机视觉等领域得到广泛应用。

oFAST特征提取

  ORB算法的特征提取是由FAST算法改进的,这里称为oFASTFAST keypoint Orientation),在使用FAST提取出特征点之后, 给其定义一个特征点方向,以此来实现特征点的旋转不变性。

oFAST实现步骤:

  1. 粗提取
  2. 筛选最优特征点
  3. 使用非极大值抑制算法去除临近位置多个特征点
  4. 建立金字塔以实现特征点多尺度不变性

 rBRIEF特征描述

ORB算法的特征描述是由BRIEF算法改进的,这里称为rBRIEFRotation-Aware Brief)。也就是说,BRIEF特征描述的基础上加入旋转因子从而改进BRIEF算法。

算法描述:

BRIEF算法计算出来的是一个二进制串的特征描述符。它是在一个特征点的邻域内,选择n对像素点piqii=1,2,…,n)

比较每个点对的灰度值的大小,如果I(pi)> I(qi),则生成二进制串中的1,否则为0

所有的点对都进行比较,则生成长度为n的二进制串。一般n128256512opencv默认为256

rBRIEF实现步骤:

  1.  以关键点P为圆心,以d为半径做圆O。
  2.  在圆O内某一模式选取N个点对。这里为方便说明,N=4,实际应用中N可以取512。
  3.  定义操作T。
  4.  分别对已选取的点对进行T操作,将得到的结果进行组合。

Python实现:

import cv2 as cv
import numpy as np

# 读入左右反向图片
imgL = cv.imread("left03.jpg")
imgR = cv.imread("right03.jpg")
# 灰度图转换
grayL = cv.cvtColor(imgL, cv.COLOR_BGR2GRAY)
grayR = cv.cvtColor(imgR, cv.COLOR_BGR2GRAY)
# 创建orb算子以及提取描述子
orb = cv.ORB_create()
kpL, dstL = orb.detectAndCompute(grayL, None)
kpR, dstR = orb.detectAndCompute(grayR, None)
# 创建FBMatcher类对象,并且进行匹配
BF = cv.BFMatcher(cv.NORM_L2)
matches = BF.match(dstL, dstR)
# 显示orb匹配结果
img1 = cv.drawMatches(imgL, kpL, imgR, kpR, matches, None, flags=2)
cv.imshow("ORB", img1)
#--------------------------------------#
# 初始化Bruteforce匹配器
bf = cv.BFMatcher()
# 通过KNN匹配两张图片的描述子
matches = bf.knnMatch(dstL, dstR, k=2)
# 筛选比较好的匹配点
good = []
for i, (m, n) in enumerate(matches):
    if m.distance < 0.85 * n.distance:
        good.append(m)
# 画出匹配点
img2 = cv.drawMatches(imgL, kpL, imgR, kpR, good, None, flags=2)
cv.imshow("ORB-BF", img2)

cv.waitKey(0)
cv.destroyAllWindows()

效果显示:


 

 

发布了45 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/sinat_32857543/article/details/103100492
今日推荐