When I use human pose detection models, the detection result is very noisy, in the order of several dozen pixels. However, with another camera, this noise is much lower. So I was wondering where the problem might be coming from, given that the images from the left and right cameras look correct, as does the depth estimation.
Hi @adore
Welcome to the Stereolabs community.
Please add more information concerning the camera models, the ZED SDK version, the camera resolution, and the depth mode.
Hi,
Thanks for your response. All the cameras are ZED mini, the SDK version is 5.0, the resolution HD1080 and depth mode neural and neural ultra
I recommend you upgrade to the latest ZED SDK v5.1.
Please also add the configuration that you use for the Body Tracking module.
It would be great if you could copy and paste the formatted code.
I upgrade the SDK version but I still have the same problem with one of the cameras
the configuration used is :
# Create a Camera object
zed = sl.Camera()
\# Create a InitParameters object and set configuration parameters
init_params = sl.InitParameters()
init_params.camera_resolution = sl.RESOLUTION.HD1080
init_params.coordinate_units = sl.UNIT.METER
init_params.depth_mode = sl.DEPTH_MODE.NEURAL_PLUS #ULTRA
init_params.coordinate_system = sl.COORDINATE_SYSTEM.RIGHT_HANDED_Y_UP
err = zed.open(init_params)
print(Fore.RED , err, Fore.WHITE)
\# Enable Positional tracking (mandatory for object detection)
positional_tracking_parameters = sl.PositionalTrackingParameters()
\# If the camera is static, uncomment the following line to have better performances
\# positional_tracking_parameters.set_as_static = True
zed.enable_positional_tracking(positional_tracking_parameters)
body_param = sl.BodyTrackingParameters()
body_param.enable_tracking = True # Track people across images flow
body_param.enable_body_fitting = True # Smooth skeleton move
body_param.detection_model = sl.BODY_TRACKING_MODEL.HUMAN_BODY_ACCURATE
body_param.body_format = sl.BODY_FORMAT.BODY_34
\# Enable Object Detection module
zed.enable_body_tracking(body_param)
body_runtime_param = sl.BodyTrackingRuntimeParameters()
body_runtime_param.detection_confidence_threshold = 80
bodies = sl.Bodies()
image_mat = sl.Mat()
Please send a video showing the behavior because the code looks correct.
As a new user I cant’t upload file, how would you prefer me to send you the video?
You can share it using file sharing services, or YouTube, or whatever you prefer.
Here a link to the video : video_stereolab.mp4
I’m not allowed to download it
Sorry for the delay,
Here a link to the video : video_stereolab.mp4 - Google Drive
Hi @adore
You are really too close to the camera.
Have you set the minimum depth value to allow depth detection for such a range?
I also recommend to test different values here to reject outliers and keep only stable points.
But with other cameras (also zed mini), there is no such problem, so I think there is a problem with this one.
Have you manually recalibrated the camera?
I don’t think so, should I do it?
No, I needed this information.
Please record an SVO in the same conditions using ZED Explorer and share it with me.
Here a link to SVO file using the camera that work correctly and the other : HD2K_SN16458550_09-15-52_camera_pb.zip - Google Drive
The “faulty” camera has lost the IMU calibration.
I recommend you follow this guide to recover it:
https://support.stereolabs.com/hc/en-us/articles/30529411012247-How-can-I-remove-the-IMU-drift-of-my-camera
It seems to work, thanks a lot !