amy-tabb / calico

code for: Calibration of Asynchronous Camera Networks: CALICO
MIT License
78 stars 11 forks source link

On entry to DLASCL parameter number 4 had an illegal value #2

Closed oliver-batchelor closed 3 years ago

oliver-batchelor commented 3 years ago

I tried to use calico to calibrate our cameras, I took 1300 images from 6 cameras

aruco_dict 2 number_boards 1 squaresX 20 squaresY 14 squareLength 400 markerLength 300

./calico --network --input pattern/ --output report/ --verbose .... Image 1251 Points found per image 80 Image 1252 Points found per image 74 Image 1253 Points found per image 69 Image 1254 Points found per image 65 Image 1255 Points found per image 60 Image 1256 Points found per image 55 Image 1257 Points found per image 47 Points found per image 37 Image 1259 Points found per image 27 Image 1260 Points found per image 19 Image 1261 Image 1262

Running calibration ** On entry to DLASCL parameter number 4 had an illegal value

amy-tabb commented 3 years ago

Hi,

I looked into the error and it is from lapack.

I suspect the issue is that you are using so many images. Calico does not need so many. I have datasets with ~40 images. If you acquired these with a high frame-rate camera, you can choose 1 out of 10 or 1 out of 20 images. I have datasets with ~40 images.

What OS are you using? How many images had chaurco corners found?

Another question is: are you using the Docker image, or you own install? If you want to try the Docker image, this will have the same version of the libraries that I used in development and might eliminate some problems.

If you are able to create a small, minimal dataset and send a share link, I can try to diagnose here.

oliver-batchelor commented 3 years ago

Thanks - I can confirm it works with less images. I tried again with 248 and it had the same error, then again with 17 and it worked - except the calibration is quite poor. We will try again once we organise a larger calibration pattern which gives more overlap between cameras!

We have a set of 6 cameras in a line and have not found anything which calibrates the extrinsic parameters well, Kalibr seems to give quite inaccurate results so we have some hope for calico!

amy-tabb commented 3 years ago

OK, thanks for the information. I may try this case in simulation.

I would think that if you had a pattern that was viewable by 2 cameras at a time, then that would work well. Kalibr seems to need to see the whole pattern at a time -- calico's detector (which is just OpenCV) can use partial patterns.

You could also link two patterns together rigidly, if the distance is too great between cameras to be covered by one pattern, and move down the line. You're welcome to write privately if you want to talk about when this method works and what it needs to work.