2017-04-25 11 views
0

私はORBのOpenCV実装をBFMatcherと共に使用していますが、OpenCVはそのNORM_HAMMING should be used with ORBを示しています。ORB/BFMatcher - なぜノーマルハミング距離ですか?

これはなぜですか? norm_hammingは、ユークリッド距離、norm_l1などの他のメソッドをどのように提供していますか?

答えて

1

ORBORB: an efficient alternative to SIFT or SURF)はバイナリ・ディスクリプタです。

それは(BRIEF: Binary Robust Independent Elementary Features参照)ハミング距離がビット・カウントが続くXORを使用して実施することができるように、むしろL1/L2距離よりハミング距離を使用する(計算の用語で)より効率的であるべきである。

さらに、比較する文字列はケースが最新であるとしてしばしば は、XORまたはビットカウント 操作を実行するための具体的な指示を提供し、現代のCPU上で非常に高速に行うことができハミング 距離を計算することによって行うことができます

SSE [10]命令セット。

もちろん、SIFTのような古典的な記述子では、ハミング距離を使用することはできません。

あなたは自分自身をテストすることができます。

  • D1=01010110
  • D2=10011010
  • L2_dist(D1,D2)=sqrt(4)=2
  • XOR(D1,D2)=11001100bit_count(11001100)=4