2013-06-18 5 views
2

iPhone 용 응용 프로그램을 만들려고하는데 OpenCV 및 iOS 용 새 개발자입니다. 나는 50 개 이상의 물체 이미지를 가지고 있는데, 나는 카메라로부터 하나의 장면 이미지를 가지고있다. 매번 나는이 장면들 중 하나를 가지고 있습니다. 나는 sift 알고리즘을 통해 하나의 객체를 찾을 수 있었지만 어떤 객체가 매우 유사하기 때문에 객체들과 비교할 자신감을 계산할 수있는 방법을 찾지 못했습니다. findHomography 함수를 사용했지만 여전히 자신감을 얻는 방법을 모릅니다. 오픈 CV 라이브러리에서 이걸 찾았습니다.opencv sift 알고리즘, findHomography에서 자신감을 얻는 방법

struct CV_EXPORTS MatchesInfo 
{ 
    MatchesInfo(); 
    MatchesInfo(const MatchesInfo &other); 
    const MatchesInfo& operator =(const MatchesInfo &other); 

    int src_img_idx, dst_img_idx;  // Images indices (optional) 
    std::vector<DMatch> matches; 
    std::vector<uchar> inliers_mask; // Geometrically consistent matches mask 
    int num_inliers;     // Number of geometrically consistent matches 
    Mat H;        // Estimated homography 
    double confidence;     // Confidence two images are from the same panorama 
}; 

그러나 나는 그것을 사용하는 방법을 모릅니다.

감사합니다.

답변

0

함께 작업하는 이미지의 몇 가지 예를 제공해야합니다. SIFT는 자신이하려는 일에 적합 할 수도 있고 그렇지 않을 수도 있습니다. 이 작업에는 여러 가지 접근 방식이 있습니다.

호모 그라피는 기본적으로 평평한 물체 (또는 먼 곳의 물체)와 물체가 평면이 아니기 때문에 정확하다는 것을 의미하는 P2에서 P2의 가역적 인 매핑입니다.

이 신뢰도를 측정하는 데는 여러 가지 방법이있을 수 있습니다. 근본적으로 중요한 것은 동질화 (homography)를 지원한다는 것입니다 (즉, SIFT 성냥 전체에서 RANSAC이 선택한 호모 그래피 중 몇 점을 선택했는지). 그리고이 'inlier'점이 호모 그래피에 얼마나 잘 매핑되어 있는지. 점수를 찾으려면 호모 그래피를 사용하여 점을 두 번째 이미지에 투영하고 원래 점에서 재 투영 한 누적 거리를 찾으십시오. 점수가 낮을수록 점수가 더 높아집니다. 점수가 더 많으면 더 좋은 점수를 얻습니다. 원하지 않는 점수가 더 많으므로

호프가 도움이 되었으면합니다. 알렉스

0

개체 간의 신뢰를 찾고 싶다면. 나는이 다음 단계가 도움이 될 생각 :

을 (당신은 호모 그래피 행렬을 언급하기 때문에, 그래서 그것을 평면 객체 생각)

  • 장면 이미지를 비교

    각 평면 객체 이미지에서

    1. 추상적 인 SIFT의 키포인트 일치하는 키포인트에 의해 오브젝트 이미지와 함께.

    2. 일부 개체 이미지의 경우에는 그 사이에 호모 그래피 행렬을 찾을 수 없습니다. 다른 것들은 그들 사이의 호모 그래피 매트릭스를 찾을 수 있고, 함수 워 퍼스펙트 **와 아마도 관련있는 호모 가피 매트릭스를 사용하여 오브젝트 이미지를 장면 이미지로 변환 할 수 있습니다.

    3. 템플릿 일치를 사용하여 장면 내부의 개체를 찾을 수 있으며 신뢰도 값을 얻을 수 있습니다.

    귀하의 문제를 해결하기 바랍니다.

  • 관련 문제