I’ve been getting this error lately when trying to process somewhat bigger batches.
INFO: Shots and/or GCPs are well-conditioned. Using naive 3D-3D alignment.
block_sparse_matrix.cc:80 Check failed: num_nonzeros_ >= 0
/code/SuperBuild/install/bin/opensfm/bin/opensfm: line 12: 34264 Aborted (core dumped) “$PYTHON” “$DIR”/opensfm_main.py “[email protected]”
It’s the same as mentioned in this post from johnny.
For me its a batch of 4400 20MP images from a rectangular shaped recording. There really seems to be something going on when processing more images.
This batch will get me great results when I process the first 4000 images of the batch (img 0 to 4000) the last 4000 of the batch (400 - 4400) or any other subset flawlessly. It just wont do them in one go and I really hate to create splits as there are dissadvantages to that.
Any ideas as to what might trigger this error? Could it have something to do with slight warping due to long distance? I’m not using GCP for this batch.
Yes, it does. Commit size is physical ram + virtual memory, minus any commit charge that other things have set up. So there can be situations where you have free physical memory and/or virtual, but not enough commit space and things will crash while trying to allocate memory.
If you can expand the physical+swap, it should help.
This article + example from Mozilla has been the single most useful and helpful explanation of this whole aspect of Windows Memory Management I’ve ever seen:
No worries! Don’t take my post to mean I’ve had this understood for ages. I’ve been struggling with it alongside other folks here until yesterday when I had that article come across my RSS feed. Finally, after something like 25 years of using OS/2 and Windows, I understand this specific behavior (I think ).