2013-01-20 34 views
5

Tôi hiện đang hoàn thành công cụ đánh giá của mình cho thiết bị dò điểm quan tâm. Trong các bước cuối cùng tôi đã tìm thấy một lỗi khó hiểu.Lỗi xác nhận địa điểm tìm kiếm OpenCV CV - counter => 4

Mat findHomography(InputArray srcPoints, InputArray dstPoints, int method=0, double ransacReprojThreshold=3, OutputArray mask=noArray()) 

Các srcPointsdstPointsvector<Points2f> mà các cửa hàng các điểm tương ứng của keypoint phù hợp. Cho đến nay không có gì đặc biệt - Nó giống như trong các hướng dẫn.

Nhưng khi tôi sử dụng RANSAC và có vector<Points2f> trong phạm vi [0, ..., 4], tôi nhận được lỗi xác nhận so với bộ đếm phải lớn hơn hoặc bằng bốn.

Câu hỏi 1: Thuật toán có cần ít nhất bốn điểm để mô tả những gì thuộc về mô hình hiện tại hay không và để tạo ra sự đồng thuận?

Câu hỏi 2: Có tài liệu nào về vấn đề này không? (Tôi đã xem số doc và số tutorials.)

Please note that I already have seen this question. Nhưng không có câu trả lời thỏa mãn cho hành vi của RANSAC. Hoặc tôi có nên chấp nhận rằng phương pháp này cần ít nhất bốn điểm để tìm được homography?

Cảm ơn sự giúp đỡ của bạn.

Trả lời

8

Không thể tính toán một phép tính đồng hồ với ít hơn 4 cặp điểm. Đó là bởi vì với chỉ có 3 điểm có một sự mơ hồ của quan điểm. Hình ảnh một tam giác

a 


b  c 

trong hình 1. Trong hình 2 điểm đã được chuyển thành giống như thế này

a 


b c 

Khoảng cách giữa b và c đã được giảm đi một nửa. Thật không may bạn không biết nếu đó là vì điểm c đã gần gũi hơn với bạn hoặc xa hơn từ bạn. Với điểm thứ 4, sự khác biệt trở nên rõ ràng.

a  d 


b  c 

Dưới đây là một hình vuông trong hình ảnh 1

 d 


a   


b c  

đây d và c quay về phía bạn

a  

    d 
b c 

và ở đây họ xoay ra khỏi bạn.

Tôi không thấy yêu cầu này trong tài liệu openCV nhưng nếu bạn tìm thấy bất kỳ tài nguyên nào về tính toán homography, bạn sẽ không phải đọc rất xa trước khi bạn tìm thấy yêu cầu này và bằng chứng nghiêm ngặt hơn là đủ 4 điểm.

4

RANSAC được sử dụng để chọn 4 cặp điểm phù hợp trong tập hợp lớn hơn hoặc thư từ (ví dụ: khi srcPoints.size() >= 4). Đó là lý do bạn gặp lỗi nếu srcPoints.size() <=4.

Bạn cần ít nhất 4 thư từ đơn giản vì ma trận Homography H có 8 bậc tự do, do đó cần có 8 phương trình tuyến tính để tìm giải pháp. Vì mỗi cặp điểm tạo ra hai phương trình tuyến tính (sử dụng tọa độ x và y), bạn sẽ cần tổng cộng ít nhất 4 thư.

+0

Bạn có thể cho tôi gợi ý nơi tôi có thể đọc phương trình này không? Tôi chỉ tìm thấy một số cụm từ trong văn bản mà nói với tôi "bạn cần ít nhất bốn điểm" nhưng không có bất kỳ lời giải thích nào. –

+0

Kiểm tra điều này: http://cseweb.ucsd.edu/classes/wi07/cse252a/homography_estimation/homography_estimation.pdf – memecs

Các vấn đề liên quan