NeoGeographyToolkit / StereoPipeline

The NASA Ames Stereo Pipeline is a suite of automated geodesy & stereogrammetry tools designed for processing planetary imagery captured from orbiting and landed robotic explorers on other planets.
Apache License 2.0
479 stars 169 forks source link

bundle_adjust with 2+ cameras #245

Closed jchollingsworth closed 1 year ago

jchollingsworth commented 5 years ago

I don't think I submitted this as an official request...(?), so here it is :)

If we have two cameras, but multiple images acquired with each camera, it would be great if we could float AND share intrinsics for each camera.

e.g. img1-5 acquired with camera1 (tsai1-5) img6-10 acquired with camera2 (tsai6-10) ... so the intrinsics are the same between tsai1-5, and the same between tsai6-10. Image overlaps: 1-6, 2-7, 3-8, 4-9, 5-10... also there is some small overlap between 1-2, 2-3, 3-4, 4-5, and 6-7, 7-8, 8-9, 9-10. I want to bundle adjust all images, and float distortion parameters BUT share the distortion parameters for each camera (i.e. float distortion, but share between tsai1-5, and tsai6-10).

Currently, in the situation above, one can only float distortion independently for each tsai file, OR share across all tsai files.

Oleg, I think we already discussed this...(?)... I think it would be a GREAT addition to bundle_adjust :)

Cheers,

J

oleg-alexandrov commented 1 year ago

If we have two cameras, but multiple images acquired with each camera, it would be great if we could float AND share intrinsics for each camera.

The new rig_calibrator program does that. It supports the radtan distortion (from OpenCV) and fisheye distortion. It was used a lot on a robot system with 3 cameras and it should do well. https://stereopipeline.readthedocs.io/en/latest/tools/rig_calibrator.html

This tool is shipped with ASP, but does not know yet about ASP's own camera models, such as Brown-Conrady, linescan, etc. That is to be done at some point.