簡體   English   中英

OpenCV ORB功能檢測器如何工作?

[英]How Does OpenCV ORB Feature Detector Work?

我想使用ORB特征檢測器和提取器實現基於特征的對齊算法。
到目前為止,我使用OpenCV ORB orb; ORB類提取了這些特性ORB orb;
orb(gray_image,Mat(),features.keypoints,features.descriptors);
並使用openCV matcher.knnMatch(features1.descriptors, features2.descriptors, pair_matches,2);的knnMatch函數匹配它們matcher.knnMatch(features1.descriptors, features2.descriptors, pair_matches,2); 之后我試圖使用findHomography函數找到單應性,但是這個函數在圖像特征之間需要至少4個匹配,而在我測試的大多數圖像上我得到的不到4個。

有人用過這個功能嗎? 是否有任何關於它的文檔,或關於OpenCV的ORB類(ORB構造函數參數的含義)?

PS這是我的第一個問題。 我不能發布超過2個鏈接。 對於opencv文檔,請使用此方法

更新:現在 OpenCV的文檔中,在這里: http://opencv.itseez.com/modules/features2d/doc/feature_detection_and_description.html#orb

有關該算法的詳細說明,請訪問: http//www.willowgarage.com/sites/default/files/orb_final.pdf


在OpenCV文檔中沒有提到它,但實際上OpenCV具有:

兩種類型的描述符:

  • 浮點描述符:
    • 沖浪
  • uchar描述符:
    • ORB
    • 簡要

和相應的匹配器:

  • 浮點描述符:
    • FlannBased
    • BruteForce<L2<float> >
    • BruteForce<SL2<float> >自2.3.1起
    • BruteForce<L1<float> >
  • 對於uchar描述符:
    • BruteForce<Hamming>
    • BruteForce<HammingLUT>
    • FlannBased與LSH指數//自2.4.0以來

因此,您需要修改代碼以用於例如用於ORB描述符的BruteForce<Hamming>匹配器。 可以使用L2或L1距離來匹配uchar描述符,但結果將不正確並且findHomography返回不令人滿意的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM