Overview: Deepen Calibrate is a software tool that makes the critical task of sensor data calibration simple and quick.
This page contains the list of calibrations. Users can launch an existing dataset, delete and even manage user’s access to these datasets.
Users can click on ‘New Calibration’ to go to the launch page.
Users can calibrate multiple cameras to LiDAR within the same dataset. But calibration needs to be performed individually for each camera/LiDAR combination.
Users have a choice to choose auto-calibration (checkerboard flow) which involves datasets with a checkerboard in their frame. Both intrinsic and extrinsic calibration can be done.
Manual-calibration (no-checkerboard flow) doesn’t require a checkerboard in their frame. Only extrinsic calibration can be done, intrinsic should be manually added.
The accuracy of calibration is better in checkerboard flow when compared to non-checkerboard flow. So checkerboard flow is the preferred way of calibration.
Pinhole and Fish-eye models are supported.
If the uploaded images are undistorted, then the camera model doesn’t have any importance. So the user can leave the default selected Pinhole model.
Users always have the option to change the camera name and the camera model at any stage.
If the user has known intrinsic parameters and they can directly enter the values or else he can choose to calculate them using the tool.
Users can update the camera matrix and distortion coefficients manually.
Next step is to add images that contain a checkerboard in its view(Please refer to Checkerboard Configuration Description).
Uploading more images with a checkerboard spreading across the entire view of the camera gives better results for the intrinsic calibration.
User has to provide the checkerBoard configuration to get the intrinsic parameters.
In this case, we require the number of corners in horizontal directions and number of corners in the vertical direction. (To know more details about configuration refer to the end of the doc.)
Users can now click ‘Run Intrinsic Calibration’ to get intrinsic parameters.
Users can add more images and retry intrinsic calibration or can also edit the intrinsic parameters directly in the box to the right and proceed to the extrinsic calibration.
Users can also check the reprojection error to know the accuracy of the results.
Intrinsic parameters for the camera are to be added here. Users have three options.
Users can use the intrinsic calibration tool and calibrate the results. Save them to profile and then load them here.
Or users can also load the JSON file.
If the user has known extrinsic parameters and they can directly enter the values or else he can choose to calculate them using the tool.
Users can update the extrinsic values manually.
They can choose to verify the values by going to ‘Visualization Mode’.
They can also further fine-tune these values.
Users need to upload images and LiDAR pairs in case of extrinsic Calibration.
Each pair must have a checkerboard in their view. Please make sure that the checkerboard is in a different position in each pair.
Users can click on the image/LiDAR on the left side panel to get the image viewer or the LiDAR viewer.
Users can also delete/add image/LiDAR from the left side panel as well.
Users need to fill up the config of the checkerboard (Please refer to the Checkerboard Configuration Description section for more details).
Users can click on ‘Start Mapping’ to go to the mapping mode. Here the user will have an image viewer on the left side and a LiDAR viewer on the right side.
Users have an option to add points in the image. And he has to map each point from the image to the corresponding area in the LiDAR viewer.
Users have the option to paint an area in the LiDAR for each selected point in the image.
The centroid of the painted area is taken into consideration.
The calibration results will depend on this step, if the selected area is small then the result would be better.
So the user has all the options to zoom in, zoom out, pan and rotate.
Users even have the option to erase a particular painted area and improve the correspondence relation.
In most cases, four points are preselected in the image. (All preselected four points are checkerboard borders). Just have to select and map each image point to LiDAR points.
Mapping can be done on any pair.
Users can navigate from one pair to another using the buttons ‘Map previous file’ and ‘Map next file’.
Once mapping is done, the user can move out of mapping mode by clicking on ‘Finish Mapping’.
It's sufficient if the user's map a single pair. There is no requirement to map all the image/LiDAR pairs.
User can click on ‘Run extrinsic Calibration’, to get the extrinsic parameters
'Run extrinsic calibration' button is visible on selecting the image/LiDAR for which the mapping is done.
Users can toggle ‘Enable Visualization Mode’ to go to visualization mode.
In this mode, the user can verify the extrinsic parameters by either checking frustum or lidar points on the image.
Users can project the generated checkerboard on the LiDAR viewer from the image.
Also, users can add a bounding box and look at its projection in the image.
Users can manually modify extrinsic parameters to improve those values by simultaneously looking at frustum and lidar points.
Once the users confirm the extrinsic parameters. They can fine tune the extrinsic parameters and improve them.
But the users must make sure that the extrinsic parameters are decent enough by using options provided in the visualization mode.
For this step, users have to identify the checkerboard corners in all images.
Auto-detect corners will work for most cases.
If auto-detect fails, users have to fallback to Manual corner detection. (Please refer to Manual Corner Detection Section)
Finally, users can click on ‘Improve extrinsic calibration’. Once the user runs this the algorithm will try to improve the extrinsic parameters.
Users can verify the extrinsic parameters in visualization mode as mentioned earlier.
But after improvising the extrinsic parameters, the user has an option to check and verify the algorithm behaviour as well. (Please refer to Analysing the improved results in Visualization Mode for more details.)
Users can use these error values to estimate the accuracy of the calibration results alongside visual confirmation. The three extrinsic error metrics along with their description are as follows.
Translation Error: Mean of difference between the centroid of points of checkerboard in the lidar and the projected corners in 3-D from an image. Values shown in meters.
Rotation Error: Mean of difference between the normals of checkerboard in the point cloud and the projected corners in 3-D from an image. Values are shown both in radians and degree.
Reprojection Error: Mean of difference between the centroid of image corners and projected lidar checkerboard points on the image in 3-D. Values shown in meters.
We are now showing the individual error stats for each image/Lidar pair. Average shows the mean of the errors of all the eligible image/Lidar pairs.
Once the entire calibration is done, users can download all intrinsic and extrinsic parameters.
We have a save option on the top left corner. A user can click on the Save button to save the calibration dataset at any time during the calibration process.
Horizontal Corner Count: These are the count of corners in the top row from first to the last. (left to right).
Vertical Corner Count: These are the count of corners in the left column from the first to the last. (top to bottom).
Square Size: It is the dimension of the square size in meters.
Distance from left Corner: The distance from the leftmost side of the board to the left most corner point in meters.
Distance from right Corner: The distance from the rightmost side of the board to the rightmost corner point in meters.
Distance from top corner : The distance from the topmost side of the board to the topmost corner point in meters.
Distance from bottom corner: The distance from the bottom-most side of the board to the bottom-most corner point in meters.
Is checkerboard on the ground: Enable this if the checkerboard is on the ground.
Image ‘Checkerboard Identification’:
This can be used to verify whether the checkerboard area is being properly identified or not.
Users can change the configuration of the checkerboard or can also retry detecting corners in order to fix the checkerboard identification.
This step displays the undistorted images. So users can verify if the un distortion is correct or not.
2. Image ‘Raw File’:
The raw image files are displayed.
3. LiDAR ‘Raw File’ :
The raw LiDAR files are displayed.
4. LiDAR ‘Extracted checkerboard’:
This shows the extracted checkerboard from the original lidar file. Used for the error stats calculation. We compare extracted checkerboard with the projected checkerboard.
5. Fused Point Cloud: When a user enables the ‘Fused point cloud’, he can select a fused file among the following.
Input Cloud: This contains the fuse of all input clouds filtering the checkerboard area. If the checkerboard is not in the LiDAR file, then the user has to fix the extrinsic parameters by going back to the mapping step or manually updating the extrinsic parameters.
Generated Checkerboard: This contains the fuse of all generated checkerboards. If the checkerboard is not accurate, then the user has to fix the checkerboard configuration or the inner corner detection.
Input and Generated Checkerboard: This contains the fused output of above two files. This helps us to analyze the difference between the input and the generated output before optimization.
Checkerboard begin vs after optimization: This helps to know the difference between the generated checkerboard, using the extrinsic values before and after the optimization step.
Input and Generated Checkerboard after optimization: This contains the fused lidar data of input cloud and generated checkerboard after optimization. If they are overlapped. Then the user can make sure that the extrinsic values are accurate. Or else he can choose to retry improving the calibration results.
Manual Controls to move the generated checkerboard on the actual checkerboard:
Rotation and axis movement controls are added for the projected checkerboard in the visualization stage. The users can drag the projected checkerboard to align the actual checkerboard in the lidar viewer, extrinsic params are recalculated according to the change that was made. This is an additional way to get the initial estimates of the extrinsic params.
This value is used as an input to the algorithm. Users can tweak the value by analyzing the fused point cloud LiDAR files. If the difference between the input and the generated cloud is more, then the user can try to increase the value of the max correspondence and retry improving the calibration results.
Users have an option to disable the tool tips.
Users have an option to reset the view of the image/LiDAR to default.
Users have an option to clear the points/corners added in the image/LiDAR.
If the checkerboard corners are not auto-detected. Users can select four boundary points in the order (top-left, top-right , bottom-left, bottom-right). And then click on retry corner detection, to get the remaining inner corners of the checkerboard.
roll, pitch, yaw, px, py, pz are the extrinsic parameters downloaded from the calibration tool.
lidarPoint3D is the 3d coordinates of a point in the lidar coordinate system.
imagePoint3D is the 3d coordinates of a point in the camera coordinate system.
How do I get the controls to rotate and move the projected checkerboard?
Users can enable the checkbox ‘checkerboard in LiDAR’, the checkerboard will be projected in red color. Select the ‘Bounding Box Select’ option from the tool options of the LiDAR viewer. On hovering over the checkerboard the color of it changes to blue, now select the checkerboard to see the controls. All three rotations and movements are enabled.