How long does it take? Wouldn’t there be a large range of offsets? Or does limiting the minimum distance help mitigate such?
I suppose there could be corner cases in which an object with regular pattern could be misinterpreted as being far away ?
throwaway219450 [3 hidden]5 mins ago
SAD runs in better than real time on a typical desktop CPU, even on a Pi. The author glossed over basically all of the calibration involved with stereo. It’s not quite as simple as taking two cameras and running a matcher.
Because stereo disparity (parallax) scales inversely with distance, conveniently you don’t need to search huge ranges. A point at infinity should have zero disparity in a calibrated stereo system. So normally you pick a depth range and search the corresponding pixels. Also if the cameras are calibrated, you only need to search horizontally so it works out to say 64 operations per pixel, which can be vectorized if the CPU supports it. Other approaches use more stable comparisons like census (is each pixel in the match window brighter than the central one) and hamming distance which is also very efficient.
And yes, stereo is sensitive to repeating texture but absence of texture like a blank wall is usually worse.
hex4def6 [3 hidden]5 mins ago
I'm not convinced he's done the calibration, at least in his demo video. It's pretty bad, imo.
I think he's just running it on the raw unrectified images.
For anyone wanting to play with this, OpenCV has a number of tutorials on this using stuff like stereoBM (which also uses SAD if I'm remembering my algos).
The first step is calibration -- intrinsics (basically figuring out the equations that can cancel out the lens distortion) and extrinsics (how far apart are the two cameras in XYZ, tilt, etc).
globalnode [3 hidden]5 mins ago
can this be done manually by setting constants till the images look rectified? last time i played with opencv for this it didnt do a very good job at automatically calculating the k's. im hoping an algo comes out that lets me do disparity without calibration one day :)
throwaway219450 [3 hidden]5 mins ago
You can use structure from motion for this. Walk around and capture some video. It’s the same way that drone photogrammetry works, ie bundle adjustment. It’ll give you the intrinsics at least.
But with a high res sensor, even flex in the PCB will invalidate the calibration. Only takes a few microns for a pixel to be in the wrong place.
choppaface [3 hidden]5 mins ago
lots of “world models” are pretty good at “stereo with zero calibration”
How long does it take? Wouldn’t there be a large range of offsets? Or does limiting the minimum distance help mitigate such?
I suppose there could be corner cases in which an object with regular pattern could be misinterpreted as being far away ?
Because stereo disparity (parallax) scales inversely with distance, conveniently you don’t need to search huge ranges. A point at infinity should have zero disparity in a calibrated stereo system. So normally you pick a depth range and search the corresponding pixels. Also if the cameras are calibrated, you only need to search horizontally so it works out to say 64 operations per pixel, which can be vectorized if the CPU supports it. Other approaches use more stable comparisons like census (is each pixel in the match window brighter than the central one) and hamming distance which is also very efficient.
And yes, stereo is sensitive to repeating texture but absence of texture like a blank wall is usually worse.
I think he's just running it on the raw unrectified images.
For anyone wanting to play with this, OpenCV has a number of tutorials on this using stuff like stereoBM (which also uses SAD if I'm remembering my algos).
The first step is calibration -- intrinsics (basically figuring out the equations that can cancel out the lens distortion) and extrinsics (how far apart are the two cameras in XYZ, tilt, etc).
But with a high res sensor, even flex in the PCB will invalidate the calibration. Only takes a few microns for a pixel to be in the wrong place.
but if you want to calibrate, try printing out a board https://calib.io/pages/camera-calibration-pattern-generator
Also can't you just buy the PS5 camera? IIRC they switched to regular USB plugs for PS5 with adapters available for PS4 cameras.