Hiệu chỉnh máy ảnh / pin lỗ mô hình máy ảnh và làm việc ở vị trí 3d


10

Tôi có một máy ảnh được hiệu chỉnh và có các thông số nội tại. Tôi cũng có các tham số bên ngoài liên quan đến một điểm (nguồn gốc thế giới) trên bề mặt phẳng trong thế giới thực. Điểm này tôi đã đặt làm gốc trong tọa độ thế giới thực [0,0,0] với mức bình thường là [0,0,1].

Từ các tham số bên ngoài này, tôi có thể tìm ra vị trí camera và xoay trong tọa độ 3d của mặt phẳng thế giới bằng cách sử dụng ở đây: http://en.wikipedia.org/wiki/Camera_resectioning

Bây giờ tôi có một điểm thứ hai mà tôi đã trích xuất tọa độ hình ảnh cho [x, y]. Làm thế nào để bây giờ tôi có được vị trí 3d của điểm này trong hệ thống tọa độ thế giới?

Tôi nghĩ rằng trực giác ở đây là tôi phải theo dõi một tia đi từ trung tâm quang học của máy ảnh (mà bây giờ tôi có vị trí 3D như được mô tả ở trên), thông qua mặt phẳng hình ảnh [x, y] của máy ảnh và sau đó thông qua mặt phẳng thế giới thực của tôi mà tôi xác định ở trên cùng.

Bây giờ tôi có thể giao một tia 3d phối hợp thế giới với một mặt phẳng như tôi biết bình thường và chỉ trên mặt phẳng đó. Những gì tôi không nhận được là làm thế nào tôi tìm ra vị trí và hướng 3d khi nó rời khỏi mặt phẳng hình ảnh qua một pixel. Đó là sự biến đổi thông qua các hệ tọa độ khác nhau làm tôi bối rối.


Kiểm tra câu trả lời này, nó có thể giúp đỡ. Nếu bạn nghĩ rằng bất cứ điều gì có thể / có thể được hoàn thành chỉ cần cho tôi biết. dsp.stackexchange.com/a/2737/1473
Jav_Rock

Câu trả lời:


5

Nếu bạn có những thứ bên ngoài thì nó rất dễ dàng. Có ngoại cảnh cũng giống như có "tư thế máy ảnh" và giống như có hình ảnh tương đồng. Kiểm tra bài này trong stackoverflow.

Bạn có ngoại cảnh, còn được gọi là tư thế máy ảnh, được mô tả là bản dịch và xoay:

Pose=[R|t]=[R11R12R13txR21R22R23tyR31R32R33tz]

Bạn có thể lấy Homography từ Pose theo cách này:

H=1tz[R1xR2xtxR1yR2ytyR1zR2ztz]

Sau đó, bạn có thể chiếu các điểm 2D của mình thành các điểm 3D tương ứng bằng cách nhân Homography với các điểm:

p2D=[xy1] thêm vào z=1 để làm cho chúng đồng nhất

p3D=Hp2D

p=p/p(z) Bình thường hóa các điểm


2

Bạn không thể biết vị trí 3d của điểm thứ hai. Nó có thể là bất kỳ điểm nào trên tia từ tâm camera của bạn cho đến vô cực.

Bạn có thể làm như sau:

  • Tạo một không gian 3d được xác định trước giống với cảnh thực
  • Nhận được nhiều điểm hơn của hình ảnh từ một góc khác nhau, bằng cách sử dụng giao điểm của các tia từ các góc khác nhau, bạn có thể có được xấp xỉ điểm 3d.

Treo lên. Tôi có thể tìm thấy điểm thế giới 3d mà tia 3d giao với bề mặt phẳng, chắc chắn? Như tôi biết một tọa độ thế giới 3d và thế giới 3d bình thường của mặt phẳng đó ..... điểm 3d tôi đang cố gắng tìm là điểm nó giao với bề mặt phẳng đó !! (Xin lỗi tôi cảm thấy lời giải thích của tôi không đủ tốt)
Cheetah

Bạn có ý nghĩa gì với bề mặt phẳng? Mặt phẳng hình ảnh, hay mặt phẳng của tọa độ thế giới bằng không? Trong trường hợp sau, bạn có thể tính toán giao điểm, nhưng điều đó có nghĩa là cảnh 3d của bạn không phải là 3d, mà là 2d :) (vì đó là mặt phẳng).
Geerten

Vâng xin lỗi, điều đó đã không xảy ra với tôi. Tôi hiểu những gì bạn đang nói, nó thực sự không có ý nghĩa với tôi về mặt trực quan. Vì vậy, vâng, cảnh của tôi thực sự là "2d" bởi vì tôi có mặt phẳng hình ảnh và tôi có mặt phẳng thế giới thực, mà nguồn gốc thế giới thực [0,0,0] nằm trên và có một thế giới thực bình thường [0,0, 1], do đó, mọi điểm nằm trên mặt phẳng thế giới thực này đều ở dạng [x, y, 0]. Tôi biết tôi có thể tính toán giao điểm mặc dù ax + by + cz + d = 0, nhưng đây là điều tôi đang gặp khó khăn. (Sẽ được tiếp tục trong bình luận tiếp theo)
Cheetah

Tôi có một tia bắt đầu tại trung tâm / nguồn gốc máy ảnh của mình, nơi tôi có thế giới thực [x, y, z] và một thế giới thực bình thường [nx, ny, nz]. Tôi cần bắn một tia từ điểm này cắt mặt phẳng hình ảnh tại [u, v] và sau đó cắt mặt phẳng thế giới thực tại [x, y, 0] (đây là x, y mà tôi muốn lấy). Điều tôi gặp khó khăn là bit đầu tiên, giao điểm với mặt phẳng hình ảnh. Tôi không thể thấy cách tôi làm điều đó?
Cheetah

Bạn có thể muốn xem tại: en.wikipedia.org/wiki/Line-plane_intersection
Geerten

2

Bạn có hai tùy chọn, sử dụng phép chiếu ngược hoặc phép chiếu giữa hai mặt phẳng (homography).

P

P=K[RRC]Xreprojected=P+x

CXV=ω[XYZ1]Tω=1

u=XreprojectedCv=uuL(t)=C+tv

Π=[π1π2π3π4]T,π1X+π2Y+π3Z+π4=0L(t)=Πt

3×3H

Xplane=[XY01]Tx=PXplane=H[XY1]T

x

Xplane=H1x

H

H=R+1dTNT

dT=RC

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.