OpenCV 4.12.0
开源计算机视觉
加载中...
搜索中...
无匹配项
cv::xfeatures2d::BEBLID 类参考抽象类

实现 BEBLID (Boosted Efficient Binary Local Image Descriptor) 的类,如 [259] 中所述。 更多...

#include <opencv2/xfeatures2d.hpp>

cv::xfeatures2d::BEBLID 的协作图

公共类型

枚举  BeblidSize {
  SIZE_512_BITS = 100 ,
  SIZE_256_BITS = 101
}
 描述符的位数,每一位都是一个 boosting 弱学习器。 用户可以选择 512 位或 256 位。 更多...
 

公共成员函数

String getDefaultName () const CV_OVERRIDE
 
virtual float getScaleFactor () const =0
 
virtual void setScaleFactor (float scale_factor)=0
 
- 从 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< BEBLIDcreate (float scale_factor, int n_bits=BEBLID::SIZE_512_BITS)
 创建 BEBLID 描述符。
 
- 从 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
 

详细描述

实现 BEBLID (Boosted Efficient Binary Local Image Descriptor) 的类,如 [259] 中所述。

BEBLID [259] 是使用 boosting 学习的有效二进制描述符。 通过更改 scale_factor 参数,它可以描述来自任何检测器的关键点。 在多个基准测试中,它已被证明可以大大改进其他二进制描述符,如 ORBBRISK,并具有相同的效率。 BEBLID 使用 KeyPoint 周围图像不同区域的平均灰度值的差异进行描述,该描述符专门针对图像匹配和patch检索进行了优化,解决了这些问题的不对称性。

如果您发现此代码有用,请参考以下论文

Iago Suárez, Ghesn Sfeir, José M. Buenaposada 和 Luis Baumela。 BEBLID:Boosted efficient binary local image descriptor。 Pattern Recognition Letters, 133:366–372, 2020。

该描述符使用了来自 UBC 数据集 Liberty split 的 100 万个随机采样的patch对(20% 正样本和 80% 负样本)进行训练 [300],如论文 [259] 中所述。 您可以在 AKAZE 示例 中查看 BEBLID 的效果。 使用 ORB 检测 10000 个关键点,并使用 BEBLID 描述获得 561 个内点(75%),而使用 ORB 描述仅获得 493 个内点(63%)。

成员枚举文档

◆ BeblidSize

描述符的位数,每一位都是一个 boosting 弱学习器。 用户可以选择 512 位或 256 位。

枚举器
SIZE_512_BITS 
SIZE_256_BITS 

成员函数文档

◆ create()

static Ptr< BEBLID > cv::xfeatures2d::BEBLID::create ( float scale_factor,
int n_bits = BEBLID::SIZE_512_BITS )
static
Python
cv.xfeatures2d.BEBLID.create(scale_factor[, n_bits]) -> retval
cv.xfeatures2d.BEBLID_create(scale_factor[, n_bits]) -> retval

创建 BEBLID 描述符。

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

◆ getDefaultName()

String cv::xfeatures2d::BEBLID::getDefaultName ( ) const
virtual
Python
cv.xfeatures2d.BEBLID.getDefaultName() -> retval

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

cv::Feature2D 重新实现。

◆ getScaleFactor()

virtual float cv::xfeatures2d::BEBLID::getScaleFactor ( ) const
纯虚函数
Python
cv.xfeatures2d.BEBLID.getScaleFactor() -> retval

◆ setScaleFactor()

virtual void cv::xfeatures2d::BEBLID::setScaleFactor ( float scale_factor)
纯虚函数
Python
cv.xfeatures2d.BEBLID.setScaleFactor(scale_factor) ->

此类文档由以下文件生成