How can I check if ODM uses forced focal length and CCD width?


#1

I am using ODM to process historical photogrammetric photos, which lack EXIF information. As far as I know, OpenSfM creates undistorted versions of the images using radial distortion parameters obtained from EXIF data. In the absence of those parameters, as I undertstand, OpenSfM generates the undistorted versions using focal length and CCD width forced by the user.

In my case, I passed ~153 mm (nominal value) to the --force-focal flag. Also, each image ideally has a width of 10 inches, which is ~254 mm, so I passed it to the --force-ccd flag. This should result in a focal ratio of 0.6 (153/254), but after running the ODM toolchain, I couldn’t find a similar value in camera_models.json and in the files of the exif folder.

An example of a exif file:

{
“width”: 5972,
“camera”: “v2 unknown unknown 5976 5972 perspective 0”,
“projection_type”: “perspective”,
“orientation”: 1,
“focal_ratio”: 0,
“make”: “unknown”,
“gps”: {},
“model”: “unknown”,
“capture_time”: 0.0,
“height”: 5976
}

This is the content of the generated camera_models.json file:

{
“v2 unknown unknown 5976 5972 perspective 0”: {
“focal_prior”: 0.85,
“width”: 5972,
“k1”: 0.0,
“k2”: 0.0,
“k1_prior”: 0.0,
“k2_prior”: 0.0,
“projection_type”: “perspective”,
“focal”: 0.85,
“height”: 5976
}
}

How can I check if ODM actually uses the customized focal length and CCD width? How can I tell if the undistorted image versions are those expected according to the radial distortion of the lens?