目标

在本章中,将看到

  • BRIEF算法的基础知识

理论

基于之前的知识可以知道, SIFT使用128维矢量作为描述符。由于它使用浮点数,因此基本上需要512个字节。同样,SURF最少也需要256个字节(用于64像素)。如果为数千个特征创建这样的向量会占用大量内存,这对于资源受限的应用程序尤其是嵌入式系统而言是不可行的。内存越大,匹配所需的时间越长。

但是实际匹配可能不需要所有这些尺寸可以使用PCA,LDA等几种方法对其进行压缩。甚至使用LSH(局部敏感哈希)进行哈希的其他方法也可以将这些SIFT描述符中的浮点数转换为二进制字符串。这些二进制字符串用于使用汉明距离匹配要素,这提供了更快的速度,因为查找汉明距离仅是应用XOR和位数,这在具有SSE指令的CPU中运算是非常快的。但是在这里,需要先找到描述符,然后才可以应用散列,这不能解决最初的内存问题。

现在介绍BRIEF。它提供了一种直接查找二进制字符串而无需查找描述符的快捷方式。它需要平滑的图像块,并以独特的方式选择一组nd(x,y)n_d(x,y)nd​(x,y)位置对。然后,在这些位置对上进行一些像素强度比较。例如,令第一位置对为ppp和qqq。如果Ip<IqI_p < I_qIp​<Iq​,则结果为1,否则为0。将其应用于所有ndn_dnd​ 个位置对以获得ndn_dnd​维位串。
该ndn_dnd​可以是128、256或512。OpenCV支持所有这些,但默认情况下将是256(OpenCV以字节为单位表示,因此值将为16、32和64)。因此,一旦获得此信息,就可以使用汉明距离来匹配这些描述符。

重要的一点是,BRIEF是特征描述符,它不提供任何查找特征的方法。因此,将不得不使用任何其他特征检测器,例如SIFT,SURF等。本文建议使用CenSurE,它是一种快速检测器,并且CenSurE比SURF点的工作要好一些。

简而言之,BRIEF是一种更快的方法特征描述符计算和匹配。除了平面内旋转较大的情况,它将提供很高的识别率。

算法步骤

  • 为减少噪声干扰,先对图像进行高斯滤波(方差为2,高斯窗口为9x9)
  • ·以特征点为中心,取SxS的邻域大窗口。在大窗口中随机选取一对(两个)5x5的子窗口,比较子窗口内的像素和(可用积分图像完成),进行二进制赋值.(一般S=31)

τ(p;x,y):={1,ifp(x)<p(y)0,otherwise\tau(p;x,y):=\begin{cases}1,\quad if p(x) < p(y)\\ 0,\quad otherwise \end{cases} τ(p;x,y):={1,ifp(x)<p(y)0,otherwise​

其中p(x),p(y)分别随机点x=(u1,v1),y=(u2,v2)所在5x5子窗口的像素和.

  • 在大窗口中随机选取N对子窗口,重复步骤2的二进制赋值,形成一个二进制编码,这个编码就是对特征点的描述,即特征描述子.(一般N=256)

FAST算法提取特征点+BRIEF计算描述子 就构成了 ORB特征点提取部分

OpenCV中的BRIEF

下面的代码显示了借助CenSurE检测器对Brief描述符的计算。(在OpenCV中,CenSurE检测器称为STAR检测器)注意,您需要使用opencv contrib)才能使用它。

import cv2
import numpy as np
from matplotlib import pyplot as pltimg = cv2.imread('fly.png')
# 初始化FAST检测器
star = cv2.xfeatures2d.StarDetector_create()
# 初始化BRIEF提取器
brief = cv2.xfeatures2d.BriefDescriptorExtractor_create()
# 找到STAR的关键点
kp = star.detect(img, None)
# 计算BRIEF的描述符
kp, des = brief.compute(img, kp)
print(brief.descriptorSize())
print(des.shape)cv2.drawKeypoints(img, kp, img, color=(255, 0, 0))
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

函数brief.getDescriptorSize()给出以字节为单位的ndn_dnd​大小。默认情况下为32。

附加资源

  • https://docs.opencv.org/4.1.2/dc/d7d/tutorial_py_brief.html
  • Michael Calonder, Vincent Lepetit, Christoph Strecha, and Pascal Fua, “BRIEF: Binary Robust Independent Elementary Features”, 11th European Conference on Computer Vision (ECCV), Heraklion, Crete. LNCS Springer, September 2010.
  • LSH (Locality Sensitive Hashing) at wikipedia.
  • https://segmentfault.com/a/1190000015731950

OpenCV36: BRIEF 二进制稳健独立的基本特征相关推荐

  1. (四)OpenCV中的特征检测之BRIEF(二进制强大的独立基本特征)

    注释:本文翻译自OpenCV3.0.0 document->OpenCV-Python Tutorials,包括对原文档种错误代码的纠正 1.概述 SIFT使用具有128个浮点数的特征描述符. ...

  2. ZippyPoint: 一种基于学习的特征点提取+二进制描述子,速度提升5倍+,为移动平台提供一种ORB的替代方案...

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨Realcat 来源丨 计算机视觉SLAM 作者来自ETHZ Computer Vision实验 ...

  3. 单片机C51(STC89C52RC)独立按键控制LED亮灭、状态、显示二进制、位移

    目录 1.独立按键控制LED灯亮灭 2.独立按键控制LED灯状态 3.独立按键控制LED灯显示二进制 4.独立按键控制LED灯位移 5.附录 1.独立按键控制LED灯亮灭 独立按键控制LED灯状态,在 ...

  4. akaze特征匹配怎么去掉不合适的点_一种无人机滑坡遥感影像的快速匹配算法

    作 者 信 息 郝豪杰1,2,3,刘贤赵3,李朝奎1,2,方 军1,2 (1. 湖南科技大学 地理空间信息技术国家地方联合工程实验室,湖南 湘潭 411201:2. 湖南科技大学 测绘遥感信息工程湖南 ...

  5. 风控特征—关系网络特征工程入门实践

    " 本文业务角度分享了风控业务中构建关系特征的一些实践经验,包括数据源分析,关系网络和特征的构建,特征性能的评估以及线上方案的落实." 作者:求是汪在路上 来源:知乎专栏 风控模型 ...

  6. 图像局部显著性—点特征(FREAK)

    参考文章:Freak特征提取算法  圆形区域分割 一.Brisk特征的计算过程(参考对比): 1.建立尺度空间:产生8层Octive层. 2.特征点检测:对这8张图进行FAST9-16角点检测,得到具 ...

  7. WSDM 2022 | 点击率模型特征交叉方向的发展及CAN模型介绍

    丨目录: · 摘要 · 背景 · 问题和方法 ·  Co-Action Network方案 · 方案扩展 · 总结 · References · 关于我们 ▐ 一.摘要 排序模块在广告.推荐和搜索等系 ...

  8. 华为云企业级Redis:助力VMALL打造先进特征平台

    摘要:当电商平台对AI算法模型的需求越来越多,特征数据平台的统一建设是不少开发团队头疼的事情.因为只有通过统一的特征数据存储,才能改变原有的"数据孤岛",解决生产重复造轮子的窘境. ...

  9. 特征金字塔 Feature Pyramid Networks for Object Detection

    特征金字塔是用于检测不同尺度的对象的识别系统中的基本组件.但是最近的深度学习对象检测器已经避免了金字塔表示,部分原因是它们是计算密集型和内存密集型的.在本文中,我们利用深层卷积网络固有的多尺度金字塔层 ...

最新文章

  1. mysql正斜杠_MySQL中的正斜杠和反斜杠 | | 数据库系统概论(字符匹配)
  2. bootstrap-内联文本元素-插入文本
  3. stl里面stack的注意事项
  4. 常说SCI论文有多少篇,那你知道SCI是什么吗?
  5. 单片机定时报警C语言程序,51单片机 定时器 中断程序 (C语言)
  6. Linq to sql(一):预备知识(二)
  7. Java中的参数传递 --Java
  8. Centos MySql基础
  9. 数据结构 之 并查集(Disjoint Set)
  10. AIX下内存泄漏的监控
  11. APP、软件版本号的命名规范与原则
  12. DVWA教程详细的DVWA-CSRF全等级通关教程
  13. plsql 导出分区_plsql批量导出数据库数据
  14. 用计算机画频率分布直方图,频率分布直方图
  15. Execl同时冻结行和列
  16. 什么是1/f噪声_1/f噪声对电路有何影响_如何消除或降低1/f噪声
  17. ROC和 区别p值和q值
  18. 《鹰眼》(Eagle Eye):对电子媒介的反恐
  19. latex如何设置行间距和段间距
  20. word中使页眉不同的同时,页码相同 的问题解决

热门文章

  1. 别等待-想到什么就去做
  2. 游戏联运系统丨游戏联运系统防沉迷丨手游联运系统防沉迷丨游戏联运系统防沉迷的流程
  3. Deformable ConvNets v2阅读笔记
  4. 2021FRM一级二级原版书教材课本book
  5. IDEA的web项目的创建极其服务器的配置
  6. Formal Languages and Compilers 笔记教程 第一章 有限自动机与正则语言 (Finite Automata and Regular Languages)
  7. adam和adgrad_Adam Demo可执行文件和资产已发布
  8. 正斜杆(/) 和 反斜杆(\)
  9. Linux 常用SIG信号及其键值
  10. 中国地图tooltip轮播以及点击tooltip进行页面跳转