Nếu đối tượng của bạn có 6 điểm đã biết (tọa độ 3D đã biết, và Z ), bạn có thể tính toán vị trí của máy ảnh liên quan đến hệ tọa độ đối tượng.X,YZ
Đầu tiên một số điều cơ bản.
Tọa độ đồng nhất là trình bày vector của Euclide phối hợp trong đó chúng tôi đã gắn cái gọi là yếu tố quy mô ω như vậy mà các tọa độ đồng nhất là X = ω [ X Y Z 1 ] T . Trong tính toán của riêng bạn cố gắng giữ ω = 1 càng nhiều càng tốt (có nghĩa là bạn "bình thường hóa" các tọa độ đồng nhất bằng cách chia nó với yếu tố cuối cùng của nó: X ← X(X,Y,Z)ωX=ω[XYZ1]Tω=1 ). Chúng tôi cũng có thể sử dụng trình bày đồng nhất cho 2D chỉ như vậyx=ω[ X Y 1 ](hãy nhớ rằng nhữngω,X,YvàZlà khác nhau cho mỗi điểm, có thể là 2D hoặc 3D điểm). Trình bày phối hợp đồng nhất làm cho toán dễ dàng hơn.X←Xωx=ω[XY1]ω,X,YZ
Ma trận máy ảnh là ma trận chiếu từ thế giới 3D đến cảm biến hình ảnh:3×4
x=PX
Trong đó là điểm trên cảm biến hình ảnh (có đơn vị pixel) và X là điểm 3D được chiếu (giả sử rằng nó có milimet là đơn vị của nó).xX
Chúng ta nhớ rằng tích chéo giữa hai vectơ 3 có thể được định nghĩa là phép nhân vectơ ma trận sao cho:
v×u=(v)xu=⎡⎣⎢0v3−v2−v30v1v2−v10⎤⎦⎥u
v×v=0
Px
(x)xx=(x)xPX=0
Aha! Kết quả phải là vectơ không. Nếu bây giờ chúng ta mở phương trình, chúng ta sẽ nhận được:
⎡⎣⎢0w−y−w0xy−x0⎤⎦⎥⎡⎣⎢P1,1P2,1P3,1P1,2P2,2P3,2P1,3P2,3P3,3P1,4P2,4P3,4⎤⎦⎥X=⎡⎣⎢P3,4Wy−P2,1Xw−P2,2Yw−P2,4Ww+P3,1Xy−P2,3Zw+P3,2Yy+P3,3ZyP1,4Ww+P1,1Xw−P3,4Wx+P1,2Yw−P3,1Xx+P1,3Zw−P3,2Yx−P3,3ZxP2,4Wx+P2,1Xx−P1,4Wy−P1,1Xy+P2,2Yx−P1,2Yy+P2,3Zx−P1,3Zy⎤⎦⎥=0
P
⎡⎣⎢⎢⎢0Xw−Xy0Yw−Yy0Zw−Zy0Ww−Wy−Xw0Xx−Yw0Yx−Zw0Zx−Ww0WxXy−Xx0Yy−Yx0Zy−Zx0Wy−Wx0⎤⎦⎥⎥⎥⎡⎣⎢⎢P1P2P3⎤⎦⎥⎥=0
PnnP
Tạm dừng nhỏ để chúng tôi có thể thu thập khó khăn của chúng tôi. Lưu ý rằng phương trình ma trận trước phải được hình thành cho mỗi tương ứng 3D-> 2D đã biết (phải có ít nhất 6 trong số chúng).
2×12A
A⎡⎣⎢P1P2P3⎤⎦⎥=0
⎡⎣⎢P1P2P3⎤⎦⎥=0
May mắn thay, chúng ta có thể sử dụng phân rã giá trị số ít (SVD) để buộc
∥⎡⎣⎢P1P2P3⎤⎦⎥∥=1
AP[P1P2P3]TP
P
P=K[R−RC]
CPP
(Hartley, Zisserman - Hình học nhiều chế độ trong thị giác máy tính)
X
x1=P1Xx2=P2X
(x1)xP1X=0(x2)xP2X=0
Và như thế.