Unrealistic cx and cy results using ocam model

My goal is to use ocam model for calibrating cameras.

I’m following steps from “Static Camera Calibration” tutorial.

I have successfully calibrated cameras and generated rig file by the instructions of the tutorial.

Problem

My concern is that the final results of cx and cy parameters in rig file are not realistic.

"properties": {
                    "Model": "ocam",
                    "c": "1.003787",
                    "cx": "960.000000",
                    "cy": "604.000000",
                    "d": "0.000000",
                    "e": "0.000000",
                    "height": "1208",
                    "poly": "9.54150878906250e+2 2.63580754399300e-2 -5.32286183442920e-4 2.00366585545453e-7 -1.63801444630352e-10 ",
                    "width": "1920"
                },

cx and cy are the exact pixel-precise center point of the image.

In comparison, sample rig files that comes with driveworks and using ocam model, have more realistic cx and cy:

"properties": {
                    "Model": "ocam",
                    "c": "0.999868",
                    "cx": "9.3894551242999637e+02",
                    "cy": "6.1227837473589864e+02",
                    "d": "-0.000634415",
                    "e": "-3.20875e-05",
                    "height": "1208",
                    "invpoly": "1.2938984328362285e+03 6.3794147150616311e+02 -3.3118556799278730e+02 -6.6959117678383893e+02 -1.1003133588740461e+03 -1.0379805030739574e+03 -5.5162309555961508e+02 -1.5398421380041259e+02 -1.7388245182581354e+01",
                    "params": "",
                    "poly": "9.25797913e+2 0.000000000 -4.83652577e-4 1.35392966e-7 -1.40637127e-10 ",
                    "width": "1920"
                }

Also, d and e parameters are non-zero value.

  • I would like to know whether these results are expected?
  • Why is our produced calibration so different from ones in samples?
  • Another question (maybe not related): after calibration, files named *-refined-intrinsics.json are generated. The tutorial does not cover the purpose of these files nor I find anyting about these from documentation. Could you explain the purpose of named files?

Dear martin.appo,
Could you share the DRIVE SW version and camera details

DRIVE SW 10
camera-type=ar0231-rccb-bae-sf3324

Dear martin.appo,
It seems you have opened topic on calibration already at https://devtalk.nvidia.com/default/topic/1070966/extrinsic-calibration-hangs-when-using-ocam-model/. Please continue the discussion in the same thread to avoid duplicate threads.

These two topics are not relevant in my opinion. My previous topic is about performance of the calibration and this one is about the result. Further more, the problem in referenced topic is already resolved.

Hi Martin.appo,

Can you share more information about your setup? How many cameras are you calibrating and their rough orientation? Are the apriltag targets visible by multiple cameras? This will help to understand if the output makes logical sense. Can you also share the full rig file output?

If you’d prefer, feel free to open a bug and we can follow up through that.

I am asking about single camera specific intrinsic calibration results, more specifically - actual center point correction parameter (cx, cy). I can’t see variables like number of cameras or their position can affect this result. Could you please elaborate?

Nevertheless, I am using 4 cameras roughly pointing to left, front, right, back. Front camera has view of 3 targets, left and right cameras have view of at least 2 full targets and back camera is pointed at single april target.

I will send you the calibration setup in private.

Hi Martin.appo,

Apologize, I didn’t realize you were only having issues with intrinsics. It would be good to see the output of your intrinsic validation images. If you file a bug I will follow up there.