Drivenet Sample using Live Camera

Hi

I would like know if drivenet supports live camera. In previous DW SDK 2.0, there was a drivenet_ncamerasample or similar but with DW SDK 3.0 can’t find it.

I am trying to test the perception output using a USB Camera.

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
other

Target Operating System
Linux
QNX
other

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

SDK Manager Version
1.5.0.7774
other

Host Machine Version
native Ubuntu 18.04
other

Dear @jpvans,
Could you confirm the DRIVE SW release, As DW 3.0 is not releases via devzone. If it is the latest release( DRIVE OS 5.2.0+ DW 3.5), please DriveWorks SDK Reference: Obstacle Detection Sample (DriveNet) for your usecase.

@SivaRamaKrishnaNV

Thanks for the reply. It seems the DriveNet or Path Perception only can use live camera on the Pegasus hardware. So on the Host x86, can’t right?

From Path Perception Sample code:

int main(int argc, const char** argv)
{
    // -------------------
    // define all arguments used by the application
    ProgramArguments args(argc, argv,
                          {
#ifdef VIBRANTE
                              ProgramArguments::Option_t("camera-type", "ar0231-rccb-bae-sf3324", "camera gmsl type (see sample_sensors_info for all available camera types on this platform)"),
                              ProgramArguments::Option_t("camera-group", "a", "input port"),
                              ProgramArguments::Option_t("camera-index", "0", "camera index within the camera-group 0-3"),
                              ProgramArguments::Option_t("slave", "0", "activate slave mode for Tegra B"),
                              ProgramArguments::Option_t("input-type", "video", "input type either video or camera"),
#endif
                              ProgramArguments::Option_t("video", (dw_samples::DataPath::get() + "/samples/pathDetection/video_paths.h264").c_str(), "path to video"),
                              ProgramArguments::Option_t("rig", (dw_samples::DataPath::get() + "/samples/pathDetection/rig.json").c_str(), "path to rig file"),
                              ProgramArguments::Option_t("fps", "30", "Frames per second that the video is played at."),
                              ProgramArguments::Option_t("detectionThreshold", "0.5", "PathNet detection threshold"),
                              ProgramArguments::Option_t("temporalSmoothingFactor", "0.1", "PathNet temporal smoothing factor"),
                              ProgramArguments::Option_t("roi.x", "0", "PathDetection roi top left x coordinate."),
                              ProgramArguments::Option_t("roi.y", "400", "PathDetection roi top left y coordinate."),
                              ProgramArguments::Option_t("roi.width", "1920", "PathDetection roi width."),
                              ProgramArguments::Option_t("roi.height", "800", "PathDetection roi height."),
                              ProgramArguments::Option_t("horizonHeight", "600", "y coordinate of the flat world horizon."),
                              ProgramArguments::Option_t("windowWidth", "1600", "output window width."),
                              ProgramArguments::Option_t("debugView", "true", "Debug view showing path fishbones."),
                              ProgramArguments::Option_t("showForks", "true", "Show the forking paths."),
                              ProgramArguments::Option_t("enableFovea", "false", "Enable fovea mode."),
                              ProgramArguments::Option_t("enableFoveaInTopView", "false", "In fovea mode, render fovea paths in top view instead of full resolution paths."),
                              ProgramArguments::Option_t("precision", "int8", "network precision, from {int8, fp16, fp32}."),
                              ProgramArguments::Option_t("customModelPath", "", "Custom model path. Folder should contain pathnet.dnn, pathnet_metadata.json and tensorrt_metadata.json"),
                              ProgramArguments::Option_t("useCudaGraph", "0", "switch to use Cuda Graph for infer")},
                          "PathDetection sample which detects paths.");

    PathDetectorApp app(args);

    int32_t width = std::stoi(args.get("windowWidth"));
    app.initializeWindow("Path Detector Sample", width, width / 2, false);
    return app.run();
}

Yes.

@SivaRamaKrishnaNV

Is changing the IF Define will allow to use camera frames on the x86 side? I am trying to evaluate DriveNet with a USB camera. Probably instead of passing a Video Frame, I can pass the USB camera Frame?

Can you advise if this is doable?