GStreamer Pipeline causing outdoor image to look very pixelated and not clear

I have a d3 camera (link) which I am trying to create a gstreamer pipeline to stream to ros and record rosbags outside. Today, I went outside and the camera stream looked extremely fuzzy and pixelated. I believe the pipeline is the culprit for why this may have been.

Here is my pipeline:

nvarguscamerasrc sensor-id=0 ! video/x-raw(memory:NVMM), width=(int)1820, height=(int)1080,format=(string)NV12, framerate=(fraction)30/1 ! nvvidconv ! video/x-raw, format=(string)BGRx ! videoconvert !  appsink

It’s possible I need to adjust my exposure, which I’m unsure how to do, but I believe there may be other issues involved.

Hi Max,

I’m sorry to hear that you’re having some difficulty.

What version of the D3 BSP are you working with? Can you provide some screen captures?

The nvarguscamerasrc GStreamer element should perform auto-exposure by default. So, based on the pipeline you are showing here, I would expect it to adjust automatically.

Regards,
Greg

Hey Greg,

I have updated my original post with an example of the outcome of my pipeline. We are using BSP v2.0.0 based on the documents provided by your team on D3’s website.

The first thing I’d like to do is get you updated to v3.0.1. When did you buy the camera(s)? If it was recent I’ll work internally to ensure that the latest BSP is being provided to everyone.

You can download the complete BSP package here.

I recommend you use argus_camera, a sample application with full source code, from NVIDIA. Using this tool you can modify different parameters in real time. In particular I’d like you to try disable noise reduction and/or adjusting the denoising strength.

Regards,
Greg

Correction: We are using 3.0.1, I had looked quickly in my previous downloads and saw 2.0 but on the device we are using the latest version.

Second, once we flashed the Jetson Xavier with the BSP, argus_camera& doesn’t seem to work. It pops up with a shadow of a frame, then disappears, then nothing happens. It states we are using Argus Version: 0.97.3.

That’s very strange, what error is argus_camera reporting?

Be sure that you are running JetPack v 4.3.

Ah - that may be the problem. We are running JetPack 4.4 - which is what Chris White has told us to use.

argus_camera reports a segmentation fault error.

Max,

I may have made a mistake. If you are using Xavier NX you need to use JetPack 4.4 and an early version of D3 BSP v4.0.0. If you are using Xavier AGX please use JetPack 4.3 and D3 BSP v3.0.1 as that is the most stable and widely tested release for that platform.

Thanks,
Greg

Sure, for clarification we are using Xavier AGX with ROS Melodic (since it’s 18.04). I will downgrade our system today to see what difference that makes with argus camera.

Edit: Thanks for your help, Greg.

Hi Greg,

We are trying to use our other cameras now, we have four 56-degree cameras we are trying to interface with the Xavier AGX interface board. (https://store.d3engineering.com/product/designcore-d3cm-imx390-camera-module/)

But the SKU is not listed in the BSP 3.0.1, does this mean that it is not supported by this interface board?

Meaning, the SKU on the website for the 56-degree camera is 1001020-23 and the SKU for IMX390 is 1000406. When I set /boot/extlinux/linux.conf to have active_overlay=imx390_0,… etc it does not detect the cameras.

I will file an issue internally for a defect against the documentation.

Please set the active_overlays parameter to use imx390 in the active_overlays. (e.g. active_overlays=imx390_0,imx390_1, …). This is for the D3 imx390 D3CM camera module you linked to. For the D3RCM (rugged) imx390 camera module use imx390rcm.

Regards,
Greg

We are using the one in the linked original post.

When I set the active_overlays parameter to imx390, it does not detect the cameras which are plugged in to the board. See below:


Can you clarify what camera modules you are using? In the first post you linked to a D3 ov10640 rugged camera module. In your more recent post you linked to a D imx390 camera module. For ov10640 use ov10640_$n in active overlays. For imx390 use imx390_$n. For imx390 rugged use imx390rcm_$n.

Regards,
Greg

Sorry - that was poorly worded on my part. We changed from the ov10640 to IMX 390 linked here: https://store.d3engineering.com/product/designcore-d3cm-imx390-camera-module/

The 56-degree version. See my last post, I have imx390_$n in the activate overlays parameter and the Xavier is failing to detect the cameras.