решение для оценки позы равноугольной камеры solvePnP

#python #opencv #robotics #pose-estimation #opencv-solvepnp

Вопрос:

У меня есть равноугольное изображение и несколько 2D-3D соответствий. введите описание изображения здесь мои 2D-точки являются точками изображения, т. е. координатами пикселей, а 3D-точки (точки объектов) являются сферическими (r, тета, phi)

моя равноугольная форма изображения (512, 1024).

Я получил следующую матрицу камеры, которая отображает сферическую точку в точку равноугольного изображения (x,y):

 f_x, f_y = 512/PI, 512/PI
c_x, c_y = 512, 0

camera_matrix = np.array([[f_x, 0, c_x], [0, f_y, c_y], [0, 0, 1]])
 

и отображение из точки (x, y) в сферические координаты является:

 phi = PI*(x/512 - 1)
theta = PI*y/512
 

суть в следующем —

 object_points = np.array([[ 7.00083208,  1.37260601,  0.33747577],
       [17.83397865,  1.94631482,  1.79874587],
       [16.80799294,  1.97638085,  1.88066045],
       [17.1035881 ,  1.964109  ,  1.93312259],
       [13.0116663 ,  2.10247407, -3.01273827],
       [ 3.19957471,  1.10569335, -2.28501778]])

image_points = np.array([[359., 391.],
       [399., 561.],
       [337., 297.],
       [513., 301.],
       [345., 465.],
       [453., 469.]])
 
 

Как я должен использовать функцию solvePnP ( cv2.solvePnP ) здесь?