I'm using two cams, OAK-D and OAK-D Pro Wide.

OAK-D's output is good , but OAK-D Pro Wide's spatial output especially the depth z is much different from the real worlds's distance, approximately a 20cm differnece.

So how can I improve the performance of that, many thanks

    Hi YuanliYin
    The wide FOV camera introduces more distortion and might not be calibrated properly, which would result in depth inaccuracies. Could you check this example which only uses the spatial location calculator. Also please provide left right and disparity outputs so we can check.

    Thanks,
    Jaka

      jakaskerl

      I've already tested it, and my cam is not calibrated before.

      The comparison between actual distance and test data is as follows:

      Real distance Spatial location calculator

      2800mm 3150mm

      2200mm 2500mm

      1000mm 1100mm

      600mm 650mm

      I'll show you left right and disparity outputs later.

      Thanks,

      Yuanli

      jakaskerl

      Outputs update here:

      CamRGB frame 1080p:


      Disparity frame:


      Spatial location calculator frame:

      The real distance is 620mm, but the output here is 665mm, this situation will become more apparent as the actual distance increases.


      Left frame 720P:


      Right frame 720P:

        Hi YuanliYin
        Devices should come with factory calibration. But it seems that calibration might be off; could you try recalibrating it to see if you can improve the depth accuracy.

        Right now the error is 8%+

        Thanks,
        Jaka

          5 days later

          jakaskerl

          When the camera calculates spatial information, does it use internally stored calibration data or need to manually set the calibration file path in the code?

          If I calibrate the camera, can the new calibration data be stored in the internal storage of the camera?

            Hi YuanliYin
            If no external calibration is specified (eg. load_calibration) the device will use calibration data stored on internal device memory. If you recalibrate using calibrate.py, your new calibration should get automatically flashed to the device. It will override previous user calibrations but not the factory one.

            Thanks,
            Jaka

              8 days later

              jakaskerl
              Hello dear, Can I recalibrate X,Y,Z measurement references using a python code?
              Because they are not very accurate.
              Thanks,

              • erik replied to this.

                Hi MhmdBarazi ,
                How inaccurate are these coordiantes? We have seen that recalibrating the device will help - if previously the calibration wasn't that great.

                  Hello dear erik, it is not a serious error(around 10 cm in each direction) but I am doing a very accurate robotic application that needs much more accuracy.

                  How can I recalibrate?

                  thanks,

                  • erik replied to this.

                    erik I will give you feedback for sure. Thank you so much for your help.