2014-04-04 6 views
0

내 프로젝트는 Android 기반 허브 테스트입니다. 나는 ORB를 사용하여 키포인트, 기능 및 기능 일치를 얻습니다.임계 값과 일치하는 ORB 기능

I 알고리즘이 사용하고자 : I는, 1-2, 1-3, 1-4, 2-3, 3,4 image1을 위해 image1에 4 참조 화상을 사용하고, 그 기능과 일치

  1. 을 .
  2. 그런 다음 데이터베이스에 대한 최소 및 최대 거리를 임계 값으로 저장합니다. (최소 임계 값 = 전체 최소값/6)
  3. 새 이미지를 인식 할 때 데이터베이스에서 새로운 최소값과 최대 거리를 비교합니다. 하지만 어떻게해야할지 모르겠다.

    //-- Draw only "good" matches (i.e. whose distance is less than 3*min_dist) 
    std::vector<DMatch> good_matches; 
    
    for(int i = 0; i < descriptors_object.rows; i++) 
    { if(matches[i].distance < 3*min_dist) 
    { good_matches.push_back(matches[i]); } 
    } 
    

    어떻게하는 것이 매직 넘버 3를 얻을 수 :

{this site에서

for (j=MinID; j<=MaxID; j++){ 
         MatOfDMatch matches = DetectUtility.match(features, matFromJson(DB.GetORBFitur(j))); 
         List<DMatch> matchesList = matches.toList(); 
         Double max_dist = 0.0; 
         Double min_dist = 100.0; 
         for (int i = 0; i < matchesList.size(); i++){ 
          Double dist = (double) matchesList.get(i).distance; 
          if (dist < min_dist && dist != 0){ 
           min_dist = dist; 
          } 
          if (dist > max_dist){ 
           max_dist = dist; 
          } 
         } 

,이 코드를 얻을? 최대 거리까지 무엇을해야합니까?

내가 사용하고자하는 알고리즘 인 불변량 순간을 사용하여 사용하고 도시 거리를 사용하여 이미지를 가장 작은 거리와 일치시킵니다.

답변

5

모르겠다. 거리는 특징점 유사성의 척도이며, 덜 우수합니다. original ORB paper (아래 그림 5)은 좋거나 나쁜 매치의 거리 분포를 보여줍니다.

double dist_th = 64; 
for(int i = 0; i < descriptors_object.rows; i++) 
{ if(matches[i].distance < dist_th) 
{ good_matches.push_back(matches[i]); } 
} 

그리고 당신은 여전히 ​​일관 경기를 필터링 할 RANSAC을 사용해야합니다 : 하나는 반드시 주변에 64 Distance distribution for ORB

그래서 더 정확 "좋은"거리 임계 값이 될 것이라고 말했다 수 있습니다. 따라서 가장 간단한 해결책은 이미지를 4 개의 데이터베이스 이미지 모두와 대조하는 것입니다.

하지만 일치하는 게 아니라 일부 분류자를 사용하는 것이 좋습니다. 이 녀석 접근법을 참조하십시오 (작동, 나는 그를 안다) - http://cmp.felk.cvut.cz/~sulcmila/

+0

답변을 주셔서 감사합니다 :)하지만 여전히 좋은 이미지를 가진 후 데이터베이스에있는 이미지와 내 이미지를 매치시키는 방법을 모르겠습니다. 새 이미지가 데이터베이스에서 마녀와 어떻게 일치 할까? –

+0

"경기"란 무엇을 의미합니까? "이 허브는 DB에서 나온 것"이라고 생각하십니까? 제 생각에 RANSAC의 기하학적으로 검증 된 일치를 사용할 수는 있지만 매우 드문 경우입니다. 모양 및 질감 분류를 고려하십시오. –