OpenSfM icon indicating copy to clipboard operation
OpenSfM copied to clipboard

Inquiry: Vexcel UltraCam Eagle Mark 3

Open Saijin-Naib opened this issue 4 years ago • 4 comments
trafficstars

I would like to add support for the Vexcel UltraCam Eagle Mark 3 sensor to the OpenSFM sensors database, but it seems to be a bit of an interesting case as it can be in one of four focal lengths:

  • 210mm
  • 120mm
  • 100mm
  • 80mm

It looks like the Camera Model EXIF tag is used to differentiate the different platform versions:
image

It also seems that the Title and Subject fields hold mirror-copies of extensive metadata:
image

Otherwise, the sensor's specs are the same:
26,460x17,004px resolution 4.0um pixels RGBN

image

Specs Sheet:
https://www.vexcel-imaging.com/brochures/UC_Eagle_M3_en.pdf

How would one go about getting this added? I'm really not sure I understand what needs to be done for such a sensor.

Saijin-Naib avatar Oct 22 '21 15:10 Saijin-Naib

Looks like this sensor might require some other work:
https://community.opendronemap.org/t/dsm-are-always-not-realistic-very-high-values-output-projection-always-utm/9192/27?u=saijin_naib

https://community.opendronemap.org/t/dsm-are-always-not-realistic-very-high-values-output-projection-always-utm/9192/29?u=saijin_naib

Saijin-Naib avatar Nov 04 '21 19:11 Saijin-Naib

Hi @Saijin-Naib,

There's no focal length in the EXIF data of the produced files. Here's the method for computing the focal length given sensor physical size : https://community.opendronemap.org/t/dsm-are-always-not-realistic-very-high-values-output-projection-always-utm/9192/27?u=saijin_naib

Since there's nothing in the EXIF, stuff has to end-up in the hardcoded calibration file (kudos if you manage to put it out in some json file instead of the python code) : https://github.com/mapillary/OpenSfM/blob/main/opensfm/exif.py#L522 Something like :

elif "vexcel imaging gmbh" == make:
        if "ultracam eagle mark 3 f210" == model:
            return {"focal": 2.0, "k1": 0.0, "k2": 0.0}

Yann

YanNoun avatar Nov 12 '21 10:11 YanNoun

@YanNoun ,

Thanks as always!

Do you have an example of the json? I'm not familiar with it, though I have (with your help) added some overrides into the exif.py in the past, so I at least am familiar with this flow.

Saijin-Naib avatar Nov 17 '21 17:11 Saijin-Naib

Hi @Saijin-Naib ,

I've refactored a bit the hardcoded camera calibration into a proper JSON file that can be used as a calibration database for OpenSfM. Once you obtain decent results with a given sensor, you just have to look for the camera section in the reconstruction.json you obtained and you think it's worth being re-used by others, and add it to the camera_calibration.json : https://github.com/mapillary/OpenSfM/commit/9268047c9763a58a4985b51a01b516c8823591db#diff-34d9ae480ee274b0f04757a8f293c760d7cc696d3da333608a92e7ce8cc976b6

Let me know if that helps,

Yann

YanNoun avatar Mar 11 '22 17:03 YanNoun