chameleon-vision
chameleon-vision copied to clipboard
Camera calibration
- Per snapshot re projection errors along with extrinsic and intrinsic std deviation
- Auto scaling of camera matrix, no need to re calibrate after resolution change
- Remade method to generate pnp models to work with non rectangular targets
- Method to remove snapshots
TODOS:
- Still need to add the per snapshot re projection errors to front end and bind button to select/deselect snapshots.
- Project points and calibrate for fisheye in order to un-distort it for driver mode
Can also switch to SolvePNPRansac to limit the allowed re projection error, and output the "confidence" of the model
@XzibitGG Are you sure that scaling the camera matrix will work? Because some cameras have different fields of view at different resolutions. Ex. pi cam v2 https://picamera.readthedocs.io/en/release-1.12/_images/sensor_area_1.png
@XzibitGG Are you sure that scaling the camera matrix will work? Because some cameras have different fields of view at different resolutions. Ex. pi cam v2 https://picamera.readthedocs.io/en/release-1.12/_images/sensor_area_1.png
From my knowledge, changing the resolution, or zooming in, changes the FOV because the horizontal focal length(fx) and the vertical focal length(fy) change (proportionally) which are taken care of in the scaling method. We can find the FOV at a given resolution by using the new fx and fy values. That being said, we can scrap the "auto scaling" idea if it doesnt work out while testing it.
The code changes here are in the _2
package, which we're just keeping around for now to reference old code. It will be removed after we copy all our old code over. I think creating the Calibrate3d pipeline in the pipes.impl
package would be a good idea.
Have you looked into polka dot calibration?