For others who come across this, when you run the calibration it saves the captured images to "<workingdir>/dataset" and you can rerun the process using the following but with the values for your board/setup:
python calibrate.py -s 2.5 -ms 1.8 -brd FFC-3P -db -m process
Today's Troubleshooting
To provide all the context, in the left and right cameras I'm using the lens from a Waveshare G pi camera. These have a diagonal field of view of 160 degrees, using an online calculator and specs of the AR0234 sensor and details of the sensor and lens I used it to calculate a hfov of 157.77
This is my setup for prototyping, each camera is spaced 4cm apart:
One thing that is worth noting, the writing for "Arducam" is upside down on all three cameras, the preview is shown the right way up on screen though so I assume the sensor is upside down with respect to the text? It's either an odd design choice or I've messed up my config...
Speaking of which, this is the config I put together using the example in a reply above and looking at the other examples in the repo:
{
"board_config":
{
"name": "FFC-3P",
"revision": "R1M0E1",
"cameras":{
"CAM_A": {
"name": "rgb",
"hfov": 90,
"type": "color"
},
"CAM_B": {
"name": "left",
"hfov": 157.77,
"type": "color",
"extrinsics": {
"to_cam": "CAM_C",
"specTranslation": {
"x": -8,
"y": 0,
"z": 0
},
"rotation":{
"r": 0,
"p": 0,
"y": 0
}
}
},
"CAM_C": {
"name": "right",
"hfov": 157.77,
"type": "color",
"extrinsics": {
"to_cam": "CAM_A",
"specTranslation": {
"x": 4,
"y": 0,
"z": 0
},
"rotation":{
"r": 0,
"p": 0,
"y": 0
}
}
}
},
"stereo_config":{
"left_cam": "CAM_B",
"right_cam": "CAM_C"
}
}
}
To capture the images I'm using the ar0234_x3 branch of DepthAI and the following command:
python calibrate.py -s 2.5 -ms 1.8 -brd FFC-3P -db
It runs through the calibration and saves all the images it needs, shows one set of images (the originals I think?) and then a second (rectified maybe?) and then on the third set a red window with errors relating to "high epipolar error" between the various cameras. Console output as follows:
Displaying Stereo Pair for visual inspection. Press the [ESC] key to exit.
1200
Reprojection error threshold -> 3
rgb Reprojection Error: 0.587818
1200
Reprojection error threshold -> 1.6666666666666667
left Reprojection Error: 12.285764
1200
Reprojection error threshold -> 1.6666666666666667
right Reprojection Error: 0.390285
['high Reprojection Error', 'high epipolar error between left and right', 'high epipolar error between right and rgb']
py: DONE.
DONE appears if I press any key in the red window, it closes and the script exits.
As I understand it I've done everything right but I also know that my understanding is very much lacking! I've uploaded the captured images, along with the conf file, to the following location:
We Transfer
They will be auto deleted after one week as per WeTransfer's policies.
If anyone from Luxonis could assist I would greatly appreciate it please. 🙂