2016-06-01 4 views
0
opencv_3.1.0LATCH_match.cpp에서

호모 그래피 행렬을 정의하고 사용했을Opencv의 동 위상 매트릭스?

Mat homography; 
FileStorage fs("../data/H1to3p.xml", FileStorage::READ); 
... 
fs.getFirstTopLevelNode() >> homography; 
... 
Mat col = Mat::ones(3, 1, CV_64F); 
col.at<double>(0) = matched1[i].pt.x; 
col.at<double>(1) = matched1[i].pt.y; 
col = homography * col; 
... 

H1to3p.xml 이유는 다음과

<opencv_storage><H13 type_id="opencv-matrix"><rows>3</rows><cols>3</cols><dt>d</dt><data> 
    7.6285898e-01 -2.9922929e-01 2.2567123e+02 
    3.3443473e-01 1.0143901e+00 -7.6999973e+01 
    3.4663091e-04 -1.4364524e-05 1.0000000e+00 </data></H13></opencv_storage> 

하는 기준이 번호가 선택 되었는가? 그들은 키 포인트를 필터링하기위한 다른 동질 테스트에 사용할 수 있습니다 (LATCH_match.cpp에서와 같이)?

답변

4

당신은, 당신은 "opencv_3.1.0에서 LATCH_match.cpp는"해당 파일에서 https://github.com/Itseez/opencv/blob/3.1.0/samples/cpp/tutorial_code/xfeatures2D/LATCH_match.cpp

것을 find 가정

// If you find this code useful, please add a reference to the following paper in your work: 
// Gil Levi and Tal Hassner, "LATCH: Learned Arrangements of Three Patch Codes", arXiv preprint arXiv:1501.03719, 15 Jan. 2015 

그래서, http://arxiv.org/pdf/1501.03719v1.pdf보고 당신이

를 찾을 수 각각의 세트에서 남은 각각에 대해 첫 번째 이미지를 비교합니다. 5 그리고 대응을 확인하십시오. 성능은 [16,17] 의 코드를 사용하여 측정되며 사이의 알려진 진실 동격 유사성을 사용하여 을 사용하여 회수 및 1 정밀도 을 계산합니다.

나는 이미지 ../data/graf1.png 내가 여기 보여 그 https://github.com/Itseez/opencv/blob/3.1.0/samples/data/graf1.png이라고 생각 :

enter image description here

는 말한다 원본 데이터 셋이 http://www.robots.ox.ac.uk/~vgg/research/affine/det_eval_files/graf.tar.gz에있다 Catree에 의해 코멘트 Homography matrix in Opencv?에 따르면

이미지 쌍 사이의 동질성이 포함됩니다.

그래서 나는 파일 ../data/H1to3p.xml에 저장되어있는 호모 그래피 그래서 당신이 임시 행렬 말을하는지 이미지 1 및 이미지 3.

+0

사이의 호모 그래피이라고 생각합니다. 그렇다면 일반 이미지 용 매트릭스를 어떻게 얻을 수 있습니까? – justHelloWorld

+1

이 이미지는 잘 알려진 컴퓨터 비전 [데이터 세트] (http://www.robots.ox.ac.uk/~vgg/data/data-aff.html)에서 가져온 것입니다. 방법론을 먼저 설명하고 데이터 세트를 소개하는 논문은 저의 지식에서 얻은 것입니다 : [로컬 디스크립터의 성능 평가] (https://www.robots.ox.ac.uk/~vgg/research/affine/det_eval_files/mikolajczyk_pami2004. pdf). 호모 그래피는 평면과 투시 투영에 대한 두 뷰 간의 기하학적 변환과 관련이 있습니다. 따라서 다른 이미지에 대해서는이 동질성을 사용할 수 없지만 강력한 스키마 (RANSAC)로 동질성을 추정 할 수 있습니다. – Catree

+0

RANSAC에 [cv :: findHomography] (http://docs.opencv.org/3.1.0/d9/d0c/group__calib3d.html#ga4abc2ece9fab9398f2e560d53c8c9780)를 사용할 수 있습니다. 평면 가정은 매우 중요합니다. 포인트는 3D 세계의 평면에 있어야합니다 (예 : 벽, 책 등). RANSAC는 특이 치를 제거하는 데 사용됩니다. 기본적으로 4 점을 무작위로 선택 (동심을 추정하기위한 최소한의 점 수)하고 충분한 점의 nb가 모델과 일치하는지 확인합니다. 그렇지 않으면 다른 4 점을 선택합니다. 결국, 당신은 동질화와 inliers/outliers를 얻습니다. 또한 inliers는 반드시 다수이어야합니다. – Catree