Tôi có một bộ hình ảnh của một thân cứng nhắc với một số điểm đánh dấu đính kèm. Tôi đã xác định một hệ tọa độ có nguồn gốc ở một trong các điểm đánh dấu này và tôi muốn xoay và dịch giữa hệ tọa độ này và hệ tọa độ được xác định tại nguồn gốc của máy ảnh.Hiệu chuẩn máy ảnh (OpenCV 2.3) - cách sử dụng thông số méo?
Tôi đã thử một thời gian POSIT (sau this) mà không bao giờ nhận được kết quả chấp nhận được, cho đến khi tôi nhận ra rằng tôi đã phải hiệu chỉnh máy ảnh ở vị trí đầu tiên. Dựa trên this và sử dụng một số hình ảnh có được với một cơ quan hiệu chuẩn, tôi nhận được ma trận nội tại máy ảnh và các thông số méo. Tôi cũng có lỗi chiếu lại xấu (?) Là 1,276.
- Lỗi tái chiếu có quá cao không? Làm thế nào tôi có thể cải thiện nó? (Tôi đã sử dụng nhiều hình ảnh hơn và chỉ đạt được một chút giảm giá trị).
- Tôi có thể sử dụng các thông số biến dạng trong POSIT không? Làm sao?
Cảm ơn.
Có vẻ như rằng cách duy nhất để có được một giảm lỗi chiếu lại (nó thay đổi từ ~ 1,3 đến ~ 0,7) là bằng cách thiết lập để '0' các thông số sau trong file cấu hình XML:
<Calibrate_FixAspectRatio> 0 </Calibrate_FixAspectRatio>
<Calibrate_AssumeZeroTangentialDistortion> 0 </Calibrate_AssumeZeroTangentialDistortion>
<Calibrate_FixPrincipalPointAtTheCenter> 0 </Calibrate_FixPrincipalPointAtTheCenter>
Sử dụng nhiều hình ảnh hơn không thay đổi lỗi và tôi vẫn không chắc liệu lỗi mới này có chấp nhận được hay không.
Tôi đã sử dụng các giá trị hiệu chuẩn cho đầu ra (cụ thể là độ dài tiêu cự và trung tâm quang) trong POSIT nhưng kết quả rất giống với kết quả tôi nhận được khi sử dụng giá trị hiệu chuẩn trước. Tôi đã không sử dụng các thông số biến dạng vì tôi không biết cách xử lý chúng trong POSIT (chúng có thể tạo sự khác biệt trong kết quả không?).
Ma trận máy ảnh tôi sau khi hiệu chuẩn:
<Camera_Matrix type_id="opencv-matrix">
<rows>3</rows>
<cols>3</cols>
<dt>d</dt>
<data>
2.0613885351075501e+003 0. 2.2865517805186334e+002 0.
2.2546461307897816e+003 2.5261706201677623e+002 0. 0. 1.
</data>
</Camera_Matrix>
và cách tôi đã sử dụng nó trong thừa nhận:
#define FOCAL_LENGTH 2158.0175
#define FOCAL_LENGTH_X 2061.389
#define FOCAL_LENGTH_Y 2254.646
#define cX 203.655
#define cY 205.117
tôi tính toán chênh lệch giữa trung tâm mới phối và một cho hiệu chỉnh hình ảnh và sau đó áp dụng sự khác biệt trên các tọa độ trung tâm của hình ảnh mà tôi đang làm việc với POSIT.
Tôi đang sử dụng POSIT trên hai hình ảnh khác nhau về mặt lý thuyết tôi sẽ nhận được vòng quay 0 (cho lần đầu tiên) và 10 (đối với giây) giữa mô hình và hệ tọa độ camera. Sau khi tôi lấy ma trận xoay cho mỗi hình ảnh, tôi đã xác định một vector đơn vị trên hệ tọa độ camera và tính toán nó trên hệ tọa độ mô hình bằng cách lấy mẫu nó bằng nghịch đảo của hai ma trận quay do POSIT đưa ra, nhận hai vectơ mới trong mô hình hệ tọa độ. Khi tôi tính toán góc giữa hai vectơ này trong hệ tọa độ mô hình, đầu ra không giống như nó phải là - 10 độ.
Có ai có ý tưởng tôi đang đi sai không?
Quên đề cập đến rằng cơ quan hiệu chuẩn của tôi là một mẫu lưới vòng tròn, không phải là bàn cờ tiêu biểu. –