Bad Image Quality Jetson Nano 2GB + Arducam 12MP IMX477 Motorized Autofocus

  1. Where did you get the camera module(s)?
    https://www.uctronics.com/
  2. Model number of the product(s)?
    SKU: B0273
  3. What hardware/platform were you working on?
    Jetson Nano 2GB
  4. Instructions you have followed. (link/manual/etc.)
    arducam/docs/camera-for-jetson-nano/native-jetson-cameras-imx219-imx477/imx477-how-to-install-the-driver/
  5. Problems you were having?
    Bad Image Quality
  6. The dmesg log from your hardware?
    dmesg.txt - Google Drive
  7. Troubleshooting attempts you’ve made?
    Reinstall Driver / try multiple example/
  8. What help do you need?

I am trying to take screenshot using IMX477 arducam with jetson nano 2GB (using FocuserExample.py)
however the result is low quality with dots
Please advise the configuration required to improve it. Thank you.

image1

Maybe you can try overriding the ISP parameters:

Apply ISP override:

wget https://raw.githubusercontent.com/RidgeRun/NVIDIA-Jetson-IMX477-RPIV3/master/li-camera-calibration-files/camera_overrides.isp
sudo cp camera_overrides.isp /var/nvidia/nvcam/settings/
sudo chmod 664 /var/nvidia/nvcam/settings/camera_overrides.isp
sudo chown root:root /var/nvidia/nvcam/settings/camera_overrides.isp

Restore ISP override:

sudo rm /var/nvidia/nvcam/settings/camera_overrides.isp

Thank you wong for your fast reply. However, even after ISP override, (with torch light appliance), the image remains grainy and pixilized. I have tried to change image size (1280 x 720 for instance) and the imx477_stereo driver, but the quality did not improve.
Your help is extremely appreciated.

image0

If it’s a noise problem, maybe you can try turning off the ISP’s digital gain:

gst-launch-1.0 nvarguscamerasrc ispdigitalgainrange='1 1' ! capsfilter caps='video/x-raw(memory:NVMM),width=(int)1920,height=(int)1080,format=(string)NV12,framerate=(fraction)30/1' ! nvvidconv flip-method=2 ! nvoverlaysink -e

Reference link:

The result improved using following setting:

def gstreamer_pipeline(
capture_width=3840,
capture_height=2160,
display_width=1280,
display_height=720,
framerate=30,
flip_method=0,
):
return (
"nvarguscamerasrc ! "
"video/x-raw(memory:NVMM), "
"exposuretimerange=“583709000 583709000”, aeLock=true, "
"width=(int)%d, height=(int)%d, "
"format=(string)NV12, framerate=(fraction)%d/1 ! "
"nvvidconv flip-method=%d ! "
"video/x-raw, width=(int)%d, height=(int)%d, format=(string)BGRx ! "
"videoconvert ! "
“video/x-raw, format=(string)BGR ! appsink”
% (
capture_width,
capture_height,
framerate,
flip_method,
display_width,
display_height,
)
)

However, the noise did not disappear, another hint will be appreciated. thank you.

It looks like you only set the exposure range, could you try adding ispdigitalgainrange?

gst-launch-1.0 nvarguscamerasrc ispdigitalgainrange='1 1'  ...

image1

Sorry for the late reply, this is the result with following setting:
"nvarguscamerasrc ! "
"video/x-raw(memory:NVMM), "
"ispdigitalgainrange=“1 1”, exposuretimerange=“603709000 603709000”, aeLock=true, " #wbmode=0, awblock=true, gainrange=“8 8”, ispdigitalgainrange=“2000 2000”,
"width=(int)%d, height=(int)%d, "
"format=(string)NV12, framerate=(fraction)%d/1 ! "
"nvvidconv flip-method=%d ! "
"video/x-raw, width=(int)%d, height=(int)%d, format=(string)BGRx ! "
"videoconvert ! "
“video/x-raw, format=(string)BGR ! appsink drop=1”

I thought it was all I could offer so tried it. .