Hi, we are using the Oak-D pro cameras for our usecase, in which we have to detect long, thin objects. However, the depth maps seem quite jiffy and I was wondering if you have any experience by any chance with measuring these kind of objects.
I have included two images of the objects that I mean, and the resulting depth maps.In the first image our current pipeline seems to fill in the blanks where there are none, and in the second picture, one of the yellow tubes is completely missed. As well as the images are quite noisy and different over time.
I am aware of the different (post-processing) filters, but this is the best I seem to be able to find. I was wondering if you perhaps had some experience with finding a good set of parameters for this use case, or maybe something we overlooked completely.
stereo = pipeline.create(dai.node.StereoDepth) stereo.setDefaultProfilePreset(dai.node.StereoDepth.PresetMode.HIGH_DENSITY) stereo.initialConfig.setMedianFilter(median)
stereo.setConfidenceThreshold(200)
stereo.setRectifyEdgeFillColor(0)
stereo.setLeftRightCheck(True)
stereo.setExtendedDisparity(True)
stereo.setSubpixel(False)
stereo.setDepthAlign(dai.CameraBoardSocket.CAM_A)
conf = stereo.initialConfig.get()
conf.postProcessing.speckleFilter.enable = True
conf.postProcessing.speckleFilter.speckleRange = 50
conf.postProcessing.temporalFilter.enable = False
conf.postProcessing.spatialFilter.enable = True
conf.postProcessing.spatialFilter.holeFillingRadius = 5
conf.postProcessing.spatialFilter.numIterations = 1
conf.postProcessing.thresholdFilter.minRange = 250
conf.postProcessing.thresholdFilter.maxRange = 1500
conf.postProcessing.decimationFilter.decimationFactor = 1
conf.postProcessing.brightnessFilter.minBrightness = 0
stereo.initialConfig.set(conf)