5

tôi sử dụng hai ma trận chiếu P1 và P2 (ví dụ: Tôi đang sử dụng dinosaur dataset) và tôi cần phải tính toán ma trận cơ bản F. Vì vậy, tôi sử dụng hai hàm Matlab:ma trận cơ bản khác nhau từ các ma trận chiếu cùng

  • Chức năng của Peter Kovesi: www.csse.uwa.edu.au/~pk/Research/MatlabFns/Projective/fundfromcameras.m
  • Zisserman: www.robots.ox.ac.uk/~vgg/hzbook/code/ vgg_multiview/vgg_F_from_P.m

Các chức năng này cần thực hiện e điều, nhưng Tôi có một giá trị F khác nhau! Làm thế nào nó có thể? Đó là các chức năng đúng?

Nếu hai điểm X1 và X2 là "giống nhau" trong hai hình ảnh khác nhau, X2^T * F * X1 = 0 ... Vì vậy, tôi tìm thấy hai điểm tương ứng từ hai hình ảnh xoay (5 độ) bằng SURF , nhưng X2^T * F * X1 không bao giờ bằng 0 với hai funtcion này. Bất kỳ ý tưởng nào?

Thay vào đó nếu tôi sử dụng chức năng này mà tính F từ trận điểm:

tôi có mà X2^T * F * X1 = 0 .... Rõ ràng F là khác nhau từ hai FI đã có hai chức năng khác ...

+0

Tôi chắc rằng chức năng của Peter Kovesi là đúng, nó hoạt động chính xác! –

Trả lời

2

Vâng cho một điều, nó có khả năng áp đảo rằng các điểm không hoàn toàn xoay phiên bản của nhau. SURF sử dụng rất nhiều phép tính xấp xỉ, nội suy tuyến tính hai chiều và một loạt các thứ phá vỡ sự bất biến quay thật sự. Vì vậy, có thể không tồn tại một ma trận cơ bản như vậy (nếu không có mối quan hệ tuyến tính giữa hai tập hợp các điểm.) Có, điều này đúng ngay cả sau khi bạn kết hợp điểm.

Điều đó nói rằng, X2^T*F*X1 của bạn có lẽ phải nhỏ nếu kết hợp thực sự tốt, nhưng tôi sẽ ngạc nhiên nếu nó chính xác là không đối với bất kỳ hình ảnh thực nào.

2

Ma trận cơ bản là duy nhất chỉ lên đến thang tỷ lệ.

Vì vậy, ngay cả khi bạn có ma trận cơ bản khác nhau, cả hai đều có thể chính xác cho hình ảnh của bạn.

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