Closed kgabor closed 4 months ago
Thanks so much @kgabor! The issue was that we had duplicate IDs and IDs in a random order if they are detected in blocks inside an image in parallel.
https://github.com/JaneliaSciComp/BigStitcher-Spark/commit/8cdd7bb03d1f9a62a33770e3fcdc8abb3feda47f
If I use
IP_N5_XML.zip
and do detection, matching, and solving; the solver fails to converge, and the solution is unusable. The solver gives residuals in the order of the dimensions of the dataset. However, if I use the IPs fromIP_N5_XML_IPs.zip
then do matching and solving, it succeeds.In terms of number of IPs, RANSAC matches, there are minimal differences, also in bdv the interest points are visually the same in both cases.
Reproduction
As of 2024-04-16 main branch version installation of BigStitcher-Spark, using the IP_N5_XML.zip dataset, the problem can be reproduced with 2 tiles.
Failing scenario
The solver log looks like this:
Succeeding scenario
The solver log looks like this:
Full logs and interestpoint.n5 are available here.
So, the solver succeeds if I use such a large blocksize in the detection step so that all IPs are detected in one spark task. My hypothesis is that in merging of IPs from different blocks pathological values enter the catalog, perhaps NaN?