Intrinsics FocalLength

Hi guys,

Trying out the ARDK :slight_smile:
The Focal Length of the depth image and rgb image is very small.
How do you use this focal length?
So this focallength is not expressed in pixels ?
I have to multiply it with the depth.Width and depth.Height?
I am expecting bigger values so that i can use it as the camera matrix as in OpenCV OpenCV: Camera Calibration .

depth.Width = 144
depth.Height = 256
depth.Intrinsics.PrincipalPoint = “(72.0, 128.0)”
depth.Intrinsics.FocalLength = “(6.7, 5.7)”

For the RGB I get

    private void _FrameUpdated(FrameUpdatedArgs args)
    {

        var session = _session;
        if (session == null)
            return;

        IARFrame frame = args.Frame;
        if (frame == null)
            return;

        IARCamera camera = args.Frame.Camera;

        _stringBuilderRGB.Clear();
        _stringBuilderRGB.AppendLine($"   Resolution: {camera.CPUImageResolution.width} {camera.CPUImageResolution.height} {camera.CPUImageResolution.refreshRate}");
        _stringBuilderRGB.AppendLine($"   FocalLength: {camera.CPUIntrinsics.FocalLength.x}  {camera.CPUIntrinsics.FocalLength.y}");
        _stringBuilderRGB.AppendLine($"   PrincipalPoint: {camera.CPUIntrinsics.PrincipalPoint.x}  {camera.CPUIntrinsics.PrincipalPoint.y}");
        Debug.Log(_stringBuilderRGB.ToString());
 Resolution: 1080 2244 0
   FocalLength: 50  50
   PrincipalPoint: 540  1122

A focallength of 50 is way too small no?

Hello,

The values are surfaced directly from ARKit/ARCore. Focal length is given in units of pixels. The larger the focal length, you will have the smaller field of view for the camera.

50 focal length indicates about 170-degree FOV.

These links explain what the values surfaced directly from ARKit/ARCore
https://developer.apple.com/documentation/arkit/arcamera/2875730-intrinsics and https://developers.google.com/ar/reference/java/com/google/ar/core/CameraIntrinsics#getFocalLength()

Can you share which Unity version and device is being used? Unity documentation includes information about the camera matrix targeted to their version of Unity.

The below link explains the utility of the camera intrinsics.

https://docs.unity3d.com/ScriptReference/Camera-projectionMatrix.html

Hope this information helps to resolve your issues.

It seemed my Unity installation was corrupt.
I removed all android and unity installations from my device and reinstalled everything.
And now I am getting valid focallengths.