2017-04-25 21 views
0

ORB의 OpenCV 구현을 BFMatcher와 함께 사용하고 있습니다. OpenCV는 NORM_HAMMING should be used with ORB이라고 말합니다.ORB/BFMatcher - 왜 norm_hamming 거리입니까?

왜 이런가요? norm_hamming은 유클리드 거리, norm_l1 등과 같은 다른 방법을 제공합니다.

답변

1

ORB (ORB: an efficient alternative to SIFT or SURF)은 이진 설명 자입니다.

그것은 (연산 기간에서)보다 효율적이어야 해밍 거리가 약간 카운트 뒤에 XOR을 사용하여 구현 될 수있는 ( BRIEF: Binary Robust Independent Elementary Features 참조) L1/L2 거리보다는 해밍 거리를 사용

:

또한 문자열을 비교하는 작업은 Hamming 거리를 계산하여 수행 할 수 있습니다. 최신 CPU에서는 대개 이 XOR 또는 비트 카운트 연산을 수행하는 특정 명령을 제공하므로 최신 CPU에서 매우 빠르게 수행 할 수 있습니다 SSE [10] 명령 세트.

물론 SIFT과 같은 고전적인 설명자를 사용하면 해밍 거리를 사용할 수 없습니다.

당신은 자신을 테스트 할 수 있습니다

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