Birdeye view with dwRectifier on pinhole model

Please provide the following info (check/uncheck the boxes after clicking “+ Create Topic”):
Software Version
DRIVE OS Linux 5.2.0
DRIVE OS Linux 5.2.0 and DriveWorks 3.5
NVIDIA DRIVE™ Software 10.0 (Linux)
NVIDIA DRIVE™ Software 9.0 (Linux)
other DRIVE OS version

Target Operating System

Hardware Platform
NVIDIA DRIVE™ AGX Xavier DevKit (E3550)
NVIDIA DRIVE™ AGX Pegasus DevKit (E3550)

SDK Manager Version

Host Machine Version
native Ubuntu 18.04


We try to obtain a birdeye view using dwRectifier_setHomographyFromRotation on a pinhole camera.
It works fine for OCAM.

Is it supported?

Is there a better way of doing it?

Hi @sacha ,

Have you tried sample_video_rectifier? Do you see any problem of this on the application?
The applicaiton uses pinhole. Thanks.

Hi @VickNV,

Actually, yes, we tried. But sample_video_rectifier uses only OCAM models, not pinhole.

Per below snippet from /usr/local/driveworks-3.5/samples/src/imageprocessing/geometry/rectifier/main.cpp, it can use pinhole model. Can’t it?

bool RectifierApp::initCameras()                                                                                                                                                                                                     
    if (RAD2DEG(m_fovX) >= 180)
        CHECK_DW_ERROR(dwCameraModel_initializePinhole(&m_cameraModelOut, &cameraConf, m_context));

Agree. However, that’s the output camera model, not the input one.

Did you see any problem with pinhole camera model as input camera ? Thanks.

Yes, that’s the whole point. The homography does not seem to work to create the bird’s eye view for pinhole input camera.

Could you elucidate the problem more? Have you seen any error/abnormal messages with pinhole input camera? Thanks.

There is no error/abnormal message.
The resulting image after the homography is black when the input camera is pinhole.
It works well when the input cam is OCAM.

Please help to provide more details of the problem so we can help you. Thanks.

  1. Does the pinhole model you use produce an image when not applying homography?
  2. The homography is multiplied by the camera rays in world space, so it doesn’t matter the camera model, are you sure the calibration parameters you have are correct?
  1. Yes, it does, when you put the homography to the identity matrix, it displays an image.
  2. Yes, verified in Matlab. BTW, why is not available the tangential distortion for pinhole models?

Could you share the video (or a piece of it) and the rig? We need to run locally to understand what’s wrong. Thanks.

No, we currently don’t support tangential distortion in DriveWorks pinhole cameras, only radial distortion. Until now, we didn’t see this is required to improve accuracies significantly. In general, you should consider using FTheta camera model and not pinhole cameras (note that with our industry camera partners, we don’t use tangential distortions, only FTheta-based radial distortion).

Could you share a place where we could drop the files or provide an email adress that we can share on our OneDrive?

Can you send with a personal message of the forum? Thanks.

I have got your rig.json and video_NvidiaS0_conv.h264 via person message.
Please provide your command and its output messages so I can make sure reproduce your issue.

The command is
./sample_video_rectifier --camera-name=TEST_S0 --rig=rig.json --video=video_NvidiaS0_conv.h264 --fovX=60 --fovY=34

The goal is to display a bird’s eye view. Thank you,

Is the command to reproduce the issue? The rectified video on the right side looks normal.

After pressing a couple of times “J” to look down, you cannot get a correct image.

Is this what you see? I’m running on host system.