Có thể hack hiệu chỉnh máy ảnh mà không cần truy cập vào máy ảnh?


8

Nhiều lần chúng tôi có một luồng video để xử lý mà không cần truy cập vào camera. Có quyền truy cập vào ma trận camera sẽ có lợi cho các kỹ thuật xử lý khác nhau. Có thể hack hiệu chỉnh máy ảnh mà không cần truy cập vào máy ảnh?

Tôi có một luồng video từ một camera đơn gắn trên một chiếc ô tô đang di chuyển ghi lại con đường (Do đó có nhiều đường thẳng song song trên mặt phẳng mặt đất, các góc từ vạch kẻ đường nhưng không có vòng tròn). Tôi muốn tạo chế độ xem từ trên xuống về điều này nhưng tôi không có quyền truy cập vào máy ảnh. Có thể không? Nếu vậy thì thế nào?

Tôi hiểu từ Học OpenCV: Tầm nhìn máy tính với sách Thư viện OpenCV mà tôi cần các ma trận sau:

  1. Nội tại, và
  2. Méo mó

.. đến cv2.undistort()hình ảnh, tính toán homography cv2.getPerspectiveTransform()cv2.warpPerspective()cuối cùng để có được topview.

Câu hỏi

  1. Làm cách nào tôi có thể tính toán / tính gần đúng / đoán Intrinsics hoặc Ma trận biến dạng / tham số? Có phải tất cả các thông số quan trọng?
  2. Có thể sao chép các tham số từ các máy ảnh khác (như mẫu mã nguồn OpenCV) không?

Nghiên cứu trước:

  • Hướng dẫn hiệu chỉnh máy ảnh Python OpenCV - Yêu cầu quyền truy cập vào máy ảnh
  • Tự động hiệu chỉnh máy ảnh - Cung cấp hy vọng "hiệu chuẩn có thể đạt được nếu nhiều bộ đường thẳng hoặc đối tượng có hình dạng đã biết (ví dụ như hình tròn) được xác định"
  • Cố gắng hiểu các câu trả lời liên quan đến hiệu chuẩn máy ảnh [ 1 ] [ 2 ] [ 3 ] trên SO cố gắng tìm câu trả lời cho vấn đề của tôi.

Có ý kiến ​​gì không? Đánh giá cao sự giúp đỡ của bạn trước!


Cập nhật 1: Thử nghiệm chuyển đổi phối cảnh

Tôi đã cố gắng sử dụng getPerspectiveTransform(pts1,pts2)dst = cv2.warpPerspective(img,M,(x,y), flags=flags)để khớp bốn điểm của hình ảnh đầu vào để có được một kiểu xem từ trên xuống. Nhưng tôi không chắc chắn làm thế nào để xử lý các biến dạng:

Chọn điểm: Đầu tiên, tôi phóng to đầu vào và cố gắng chọn chính xác các điểm bên ngoài phù hợp trên các điểm đánh dấu làn đường để tạo Ma trận Homography và xem trước hình ảnh chuyển đổi phối cảnh với warpPerspective. Tôi thấy các làn đường bị biến dạng nhưng không biết làm thế nào xấu. Để có được một ý tưởng, tôi đã chọn các điểm xa hơn bằng delta (50px) ở mỗi đầu. Đây là những gì tôi nhận được:

Thí nghiệm hình ảnh

Tôi có thể sửa các biến dạng mà không cần truy cập vào máy ảnh không? Có cách nào khác để khắc phục điều này.

Vài hình ảnh đầu vào để chơi với: Imgur Imgur


Cập nhật 2: Luồng quang không song song (tán xạ) trong chế độ xem từ trên xuống

Đây có phải là do sự biến dạng hay cái gì khác?: Imgur


1
mobileye.com/t Technology / mobileye - research - Mọi thứ ở đây có thể phù hợp với bạn
Andrey Rubshtein

Đây là một trong những câu hỏi được giảng dạy cùng một lúc. Có vẻ như liên kết nghiên cứu di động không còn nữa. Có điều này mặc dù; mobileye.com/our-technology
uhoh

Câu trả lời:


5

Nếu tôi hiểu chính xác, bạn không cần nội tại hoặc bên ngoài để đạt được điều đó, nếu một góc nhìn từ trên xuống là tất cả những gì bạn muốn. Về cơ bản, bạn có thể xác định 4 điểm trên các đường song song của mình và sau đó biến toàn bộ hình ảnh thành chế độ xem chính tắc (giả sử{{0,0},{480,960}}).

Để làm điều đó trong OpenCV, tất cả những gì bạn cần làm là tính toán đồng nhất bằng cách sử dụng findHomographynhư được mô tả ở đây . Sau đó, sử dụng warpPerspective(nhìn vào đây ) để làm cong hình ảnh của bạn.

Điều duy nhất bạn cần quan tâm là lựa chọn kích thước của chế độ xem song song phía trước mà bạn đang theo dõi. Nó nên ít nhiều khớp với tỷ lệ khung hình của vùng ảnh gốc.


Về phần thứ hai của câu hỏi của bạn: Có. Trước hết, để tôi nhắc bạn rằng nhiều tác phẩm như thế này chọn bỏ qua ước lượng biến dạng. Nhưng, tôi có thể nghĩ ra hai cách để thực hiện điều đó:

  1. Sử dụng chính các làn đường để sửa méo: Trong chế độ xem song song phía trước, hãy tạo một góc nhìn khác để các làn đường sẽ thẳng đứng. Trong cài đặt này, hãy nghĩ về các làn đường là các đường biến mất trong hình ảnh (như trong chế độ xem phối cảnh, chúng luôn luôn làm như vậy). Từ đó, bạn thậm chí có thể hiệu chỉnh máy ảnh của mình. Nhìn vào đây , đâyđây chẳng hạn.

  2. Những chiếc xe nên đi theo một quỹ đạo thẳng / trơn tru. Nếu bạn tính toán chuyển động của tất cả các xe, chúng sẽ cho bạn chuyển động tương tự, song song với làn đường. Thông tin đó một lần nữa hữu ích trong việc hạn chế và tạo ra một phép biến đổi, điều này sẽ làm cong hình ảnh của bạn thành một sự biến dạng giảm.


Cảm ơn @tbirdal: (0) "bỏ qua ước tính biến dạng" - Tôi đã đạt được kết quả công bằng với điều này. Xem cập nhật 2 (1) Các giấy tờ có vẻ rất hữu ích. Tuy nhiên, có thể tôi sẽ mất một lúc trước khi tôi có thể hiểu đầy đủ về họ và phản hồi lại. (2) "[ô tô] sẽ cung cấp cho bạn các chuyển động tương tự, song song với làn đường" - Ý tưởng hay! Nhưng tôi đang nhận được một luồng quang phân tán (không song song) trên các làn đường, ngay cả trong chế độ xem từ trên xuống (xem bản cập nhật 2); Cần phải tìm ra cách khắc phục điều này.
Manav Kataria

Thật khó để tính toán dòng quang của các làn đường, vì chúng không di chuyển rất thường xuyên. Cách tiếp cận theo dõi cạnh sẽ tốt hơn tôi đoán. (Chẳng hạn như các cạnh di chuyển, v.v. hoặc thậm chí các đường viền hoạt động)
Tolga Birdal

Tôi có một luồng video trong đó camera được gắn ở phía trước của một phương tiện đang di chuyển. Do đó, các điểm đánh dấu làn đường di chuyển với mọi khung hình (ngoại trừ: điểm đánh dấu làn đường liên tục "---", không phải "- - -" nét đứt).
Manav Kataria
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.