2011-04-06 6 views
0

SIFT 기능 일치는 유클리드 거리 기반의 가장 가까운 이웃 접근을 통해 수행됩니다. 좀 설명해 주시겠습니까? 계산이 있습니까? 그러면 누군가가 SIFT 특징 벡터에 대한 유클리드 거리를 계산하는 데 도움이 될 수 있습니까? 나는 둥근 정도와 이미지의 색상과 같은 몇 가지 기능을 사용하여 신경 네트워크에 대한 피드를 계산 유클리드 거리를 저장 싶습니다.유클리드 거리 - 거리 matlab 도움 pls를 통한 SIFT 기능 일치

+0

SIFT 알고리즘이나 결과의 특정 사용법을 이해하는 데 도움이 필요하면 저에게 명확하지 않습니다. –

+0

@ belisarius SIFT 알고리즘이 아닙니다. 결과의 사용이 필요합니다. 내 문제는이 피쳐 벡터가 인데 n은 피쳐 설명자가 없다는 것입니다. 이 벡터에서 하나의 값이 필요합니다. 유클리드 거리를 사용하여이 벡터의 거리를 구하고 최대 거리 값을 얻을 수 있습니까? 왜냐하면 신경망에 먹이를주고있는 다른 기능은 하나의 가치를 지니고 있기 때문입니다. –

+0

죄송합니다, 질문을 이해하지 못합니다. 아마도 이것은 당신을 도울 수 있습니다 http://www.vlfeat.org/api/sift_8h.html#sift-tech-descriptor –

답변

8

유클리드 거리를 통한 SIFT 특징 매칭은 어렵지 않습니다. 여기에 내가 설명 할 것이다 :

  1. 당신은 두 이미지에 대한 키포인트 설명자를 가지고있다.

  2. 키포인트 설명자 중 하나를 하나의 이미지에서 가져옵니다.

    2.1 이제 keploint 설명자 u와 다른 이미지의 키포인트 설명자 사이의 유클리드 거리를 찾습니다.

    2.2 이제 이미지 1의 한 키포인트와 이미지 2의 모든 키포인트 사이의 유클리드 거리가 있습니다. 이들을 오름차순으로 정렬하십시오 (이미지 2의 키포인트에서 이미지 1의 키포인트에 가장 가까운 거리를 의미합니다).

    2.3 이제 임계 값 T (주로 0.3 ~ 0.7 범위)를 설정하십시오.

    2.4 첫 번째 가장 가까운 거리와 두 번째 가까운 거리의 비율을 취하고이 임계 값보다 작 으면 일치 항목 만 저장됩니다. 그렇지 않으면 일치 항목이 없습니다.

  3. image1의 모든 키포인트 설명에 대해이를 반복합니다.

  4. 이제 일치하는 항목이 있습니다.
  5. 두 이미지를 추가 한 다음 키포인트 위치를 기준으로 일치를 플로팅 할 수 있습니다.
0

나는 의심의 여지가 유클리드 거리입니다. 유클리드 거리 (Euclidean distance)는 유클리드 (Euclidean) (또는 2 차원) 평면에서 볼 수있는 두 점 사이의 거리입니다. 이것은 매우 시각적 인 2 차원 평면입니다. 그러나 SIFT 서술자는 128 차원의 벡터이므로 까다로워집니다. 코드는 '난'의 모든 첫 번째 이미지에 지점으로부터의 거리를 찾을 수

for j = 1 : length(SIFT2) 

     euclideanDist(j) = sqrt(sum((SIFT1{i} - SIFT2{j}).^2)); 

    end 

: 당신은 그냥 공식에 충실해야 (https://en.wikipedia.org/wiki/Euclidean_distance)

이는 유클리드 거리를 계산하는 내 코드입니다 두 번째 이미지에서 발생한 점,이 경우 'j'. 이 거리를 vector euclideanDist에 저장합니다.

셀 어레이 SIFT1과 SIFT2는 각 이미지의 디스크립터를 포함합니다.