Kmeans 기반 인덱싱 및 ANN 검색을위한 비대칭 거리 계산 (이진 지역의 특징) : ...

전송 : http://www.cvchina.info/2012/01/13/kmeans-based-indexing-and-asymmetric-distance-computation-for-ann-search-binary-local-feature-part1/#more-3232


에르베 바이 Jegou 해밍 임베딩 및 대형에 대한 약한 기하학적 일관성 -scale 이미지 검색 과 가장 가까운 이웃 검색을위한 제품 양자화 지역 기능을 검색하기 위해 가장 가까운 이웃은 Kmeans 클러스터링, 거꾸로 파일, 비대칭 거리 영감 계산이 바이너리 형식에 적용합니다.

주요 아이디어 :

Kmeans는 거친 인덱스 특징 않습니다.

통계적 데이터 압축 특징으로하는 방법.

조회 기능 인덱스 간의 거리를 비대칭 방식을 사용하여 계산되는 것을 특징으로 검색 할 때.

알고리즘 :

교육 :

  1. 기능 지수 Kmeans 클러스터링 K 센터를 얻을 사용합니다. 기능 바이너리 형식을 클러스터링 수행, 카테고리 센터는 방법을 업데이트 : 각 비트, 해당 비트 0 모든 기능의 범주 내에서 전도의 통계적 빈도, 중 들어 높다.
  2. 각 클러스터의 경우, 모든 비트 당 1.0, 1 또는 0의 통계적인 특성 주파수의 클래스에 속하는 것이 50 %의 제 M 비트에 가까운 주파수 걸린다. (가까울 50 % 큰 엔트로피)

교육 후, 우리는 두 종류의 데이터를 얻을 수 :

  • K 카테고리 센터를 갖추고 있습니다.
  • 각 카테고리의 중심 내용을 설정하고 "비트 위치 식별자를 제 M." 이 식별자는 원래의 압축 기능 기초를 형성한다. (이하에서 투영 벡터라고 함)

인덱스 :

  1. 반전 된 테이블을 만듭니다
  2. 상기 각 인덱스에 대해 그 종류를 중심 계산되어야하고 M 비트 서명을 얻기 위해, 카테고리의 특징 투영 벡터에 의해 투영된다. sig_templ로서 지칭 서명이 반전 테이블에 삽입된다.

ANN 검색 :

  1. 센터 조회 기능 분류 query_cluster 및 투영되는 종류의 특징 벡터를 계산하는 단계를 sig_query M 비트를 얻었다.
  2. 쿼리 중심 범주 투영 벡터의 제거에 대응하는 비트 위치에서 카테고리를 산출하고, dist_base이라.
  3. 계산 된 sig_query sig_templ에서 테이블 엔트리 반전 입력에 대응 query_cluster 이송, dist_sig이라. 이어서 질의 특징의 거리 및 인덱싱 기능 DIST = dist_base + dist_sig. 최소 거리가 이와 같은 임계 값 미만으로, 획득하는 ANN을 찾기 위해 고려 될 수있다.

시간의 복잡성의 작은 분석 :

우리는 가정이 K = 40, M이 64 = 상기 32Byte 를 ORB (인덱스에 대한 가정이 특징 1K)

그런 다음 각 ANN은 어떻게 검색

32Byte (40)는 약 + 25 8Byte 해밍 거리 계산의 해밍 거리를 계산합니다.

철저한 비교 검색 :

해밍 거리가 1000 32Byte를 계산

빠른 : 20 배

 

  1. 예 :
  1. 실험 구성 :
  • 특성 : 오브
  • 윈 / 앤 매치 임계 값 : 50
  • K = 40
  1. 다음 그림) :( RANSAC가 일치하지 않고 전체 검색 결과 화상을 도시

영상

RANSAC 후 :

영상

다음 그림은 ANN 검색 모드, 화상 대조 결과 :( 없음 RANSAC를 나타낸다)

영상

RANSAC 후 :

영상

알 수있는 바와 같이, 점의 수와 일치하는 것은 크게 감소 될 것입니다. 그 이유는 고유의 결함이 색인입니다. (두 자체 가까운 기능, 다른 클러스터로 분류됩니다). 아마도 멀티 할당의 사용은 개선 될 것입니다.

그리고 다른 코드는 재발의 파트 2를 대조.


HTTPS : //my.oschina.net/dake/blog/196639 재현

추천

출처blog.csdn.net/weixin_34306676/article/details/91508693