OpenCV 4.11.0
开源计算机视觉库
加载中…
搜索中…
无匹配项
cv::xfeatures2d::TEBLID 类参考

实现 TEBLID(基于三元组的有效二进制局部图像描述符)的类,如 [257] 中所述。更多…

#include <opencv2/xfeatures2d.hpp>

cv::xfeatures2d::TEBLID 的协作图

公共类型

枚举  TeblidSize {
  SIZE_256_BITS = 102 ,
  SIZE_512_BITS = 103
}
 描述符的比特数,每个比特都是一个盒子的平均差值。用户可以选择 256 位或 512 位。更多…
 

公共成员函数

String getDefaultName () const CV_OVERRIDE
 
- 从 cv::Feature2D 继承的公共成员函数
virtual ~Feature2D ()
 
virtual void compute (InputArray image, std::vector< KeyPoint > &keypoints, OutputArray descriptors)
 计算在图像(第一种变体)或图像集(第二种变体)中检测到的关键点的描述符。
 
virtual void compute (InputArrayOfArrays images, std::vector< std::vector< KeyPoint > > &keypoints, OutputArrayOfArrays descriptors)
 
virtual int defaultNorm () const
 
virtual int descriptorSize () const
 
virtual int descriptorType () const
 
virtual void detect (InputArray image, std::vector< KeyPoint > &keypoints, InputArray mask=noArray())
 检测图像(第一种变体)或图像集(第二种变体)中的关键点。
 
virtual void detect (InputArrayOfArrays images, std::vector< std::vector< KeyPoint > > &keypoints, InputArrayOfArrays masks=noArray())
 
virtual void detectAndCompute (InputArray image, InputArray mask, std::vector< KeyPoint > &keypoints, OutputArray descriptors, bool useProvidedKeypoints=false)
 
virtual bool empty () const CV_OVERRIDE
 如果检测器对象为空,则返回 true。
 
virtual void read (const FileNode &) CV_OVERRIDE
 从文件存储中读取算法参数。
 
void read (const String &fileName)
 
void write (const Ptr< FileStorage > &fs, const String &name) const
 
void write (const String &fileName) const
 
virtual void write (FileStorage &) const CV_OVERRIDE
 将算法参数存储到文件存储中。
 
void write (FileStorage &fs, const String &name) const
 
- 从 cv::Algorithm 继承的公共成员函数
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 清除算法状态。
 
virtual void save (const String &filename) const
 
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
 
void write (FileStorage &fs, const String &name) const
 

静态公共成员函数

static Ptr< TEBLIDcreate (float scale_factor, int n_bits=TEBLID::SIZE_256_BITS)
 创建 TEBLID 描述符。
 
- 从 cv::Algorithm 继承的静态公共成员函数
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 从文件中加载算法。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 从字符串加载算法。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 从文件节点读取算法。
 

其他继承的成员

- 从 cv::Algorithm 继承的受保护成员函数
void writeFormat (FileStorage &fs) const
 

详细描述

实现TEBLID(基于三元组的有效二进制局部图像描述符)的类,如TEBLID [257]中所述。

TEBLID代表基于三元组的有效二进制局部图像描述符,尽管它最初被称为BAD [257]。它是对BEBLID [256]的改进,它使用三元组损失、困难负样本挖掘和锚点交换来改进图像匹配结果。它只需更改`scale_factor`参数即可描述任何检测器的关键点。TEBLID 的效率与ORBBEBLIDBRISK一样高,但基于三元组的训练目标选择了更具区分性的特征,这解释了精度提升的原因。在运行使用ORB检测到的10000个关键点的AKAZE示例时,BEBLID 使用512位获得561个内点(75%),而TEBLID 使用256位获得621个内点(75.2%)。ORB仅获得493个内点(63%)。

如果您发现此代码有用,请添加对以下论文的引用

Iago Suárez, José M. Buenaposada, and Luis Baumela. Revisiting Binary Local Image Description for Resource Limited Devices. IEEE Robotics and Automation Letters, vol. 6, no. 4, pp. 8317-8324, Oct. 2021.

该描述符是在UBC数据集的Liberty分割中训练的 [298]

成员枚举文档

◆ TeblidSize

描述符的位数,每一位都是一个盒子的平均差值。用户可以选择256位或512位。

枚举器
SIZE_256_BITS 
SIZE_512_BITS 

成员函数文档

◆ create()

静态 Ptr< TEBLID > cv::xfeatures2d::TEBLID::create ( 浮点数 scale_factor,
整数 n_bits = TEBLID::SIZE_256_BITS )
静态
Python
cv.xfeatures2d.TEBLID.create(scale_factor[, n_bits]) -> 返回值
cv.xfeatures2d.TEBLID_create(scale_factor[, n_bits]) -> 返回值

创建 TEBLID 描述符。

参数
scale_factor调整检测到的关键点周围的采样窗口
  • 对于ORB关键点,比例应为1.00f
  • 对于SIFT检测到的关键点,比例应为6.75f
  • 6.25f是默认值,适用于KAZESURF检测到的关键点
  • 5.00f适用于AKAZE、MSD、AGAST、FAST、BRISK关键点
n_bits确定描述符中的位数。应为TEBLID::SIZE_256_BITSTEBLID::SIZE_512_BITS

◆ getDefaultName()

String cv::xfeatures2d::TEBLID::getDefaultName ( ) 常量
虚函数
Python
cv.xfeatures2d.TEBLID.getDefaultName() -> 返回值

返回算法字符串标识符。将对象保存到文件或字符串时,此字符串用作顶级xml/yml节点标签。

cv::Feature2D重新实现。


此类的文档是从以下文件生成的