ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python+OpenCV笔记(三十三):特征检测——基于FSAT特征和BRIEF描述符的ORB

2022-02-03 19:00:11  阅读:224  来源: 互联网

标签:python cv2 BRIEF FAST 像素 OpenCV 描述符 ORB


目录

一、FAST

二、BRIEF

三、ORB

代码编写


ORB发布于2011年,作为SIFT和SURF的一个快速替代品。ORB融合了FAST关键点检测器BRIEF关键点描述符,所以我们先要了解 FAST 和 BRIEF。

一、FAST

        加速分割测试特征(FAST)算法是通过分析16个像素的圆形领域来实现的,FAST算法把邻域内每个像素标记为比特定阈值更亮或更暗,该阈值是相对于圆心定义的。如果邻域包含若干标记为更亮或更暗的一系列连续像素,那么这个邻域就被视为角点。

        FAST还使用了一种高速测试,有时可以通过只检查2个或者4个像素(而不是16个像素)来确定邻域不是角点。要了解这个测试如何工作,请看下图:

在两个不同的放大倍数下,我们可以看到一个16像素的邻域。位于1、5、9和13处的像素对应于圆形邻域边缘的4个方位基点。如果邻域是一个角点,那么预计在这4个像素中,刚好有3个像素或者1个像素比阈值亮。(另一种说法是刚好有1个或者3个像素比阈值暗。)如果其中刚好有2个比阈值亮,那么该领域是一条边,而不是一个角点,如果其中刚好有4个或者0个比阈值亮,那么该领域相对一致,既不是角点也不是边。

二、BRIEF

        二值鲁棒基本独立特征(BRIEF)并非特征检测算法,而是一个描述符。

        我们先来了解什么是描述符:

        在前面用SIFT和SURF分析图像时,整个过程的核心是调用detectAndCompute函数。此函数执行两个不同的步骤—检测和计算,它们返回2个不同的结果(耦合到一个元组中)。

        检测结果是一组关键点,计算结果是这些关键点的一组描述符。这意味着OpenCV的cv2.SIFT和cv2.SURF类都实现了检测和描述算法。请记住,原始的SIFT和SURF不是特征检测算法。OpenCV的cv2.SIFT实现了DoG特征检测和SIFT描述,而OpenCV的cv2.SURF实现了快速Hessian 特征检测和SURF 描述。

        关键点描述符是图像的一种表示,充当特征匹配的通道,因为你可以比较两幅图像的关键点描述符并发现它们的共性。

        BRIEF是目前最快的描述符之一。BRIEF背后的理论相当复杂,但是可以这样说,BRIEF采用一系列优化,使其成为特征匹配的一个非常好的选择。

三、ORB

        ORB选择FAST和BRIEF算法作为ORB的基础的目的是:优化和加速操作,包括非常重要的以旋转感知的方式利用BRIEF的步骤,这样匹配就得以改善,即使在训练图像与查询图像有非常不同的旋转状态的情况下也是如此。

代码编写

import cv2
import numpy as np

img = cv2.imread('E:/test2.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

orb = cv2.ORB_create()
kp, des = orb.detectAndCompute(gray, None)  # 找到关键点

img = cv2.drawKeypoints(gray, kp, img)  # 绘制关键点

cv2.imshow('ORB', img)
cv2.waitKey(0)

原图:

 ORB检测结果:


【参考】:OpenCV 4计算机视觉 Python语言实现(原书第三版) 作者:Joseph Howse

标签:python,cv2,BRIEF,FAST,像素,OpenCV,描述符,ORB
来源: https://blog.csdn.net/qq_45832961/article/details/122769532

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有