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) ->

此類文件由以下檔案生成