Open xiaoxiae opened 9 months ago
The depthmaps in question are actually all missing, not malformed.
pls check the log for the first step to see why some depth-maps were not estimated; I'd appreciate if you can help debugging this
This is the log of the first command:
DensifyPointCloud-2402011542308B498E.log
The issues seem to persist, I don't see why they weren't generated.
I tried re-running the pipeline overnight (with --resolution-level 2
) and encountered the same issue. I will do so now again with -v 3
and see if it reveals anything.
Rerunning the pipeline with
DensifyPointCloud scene.mvs --resolution-level 2 --iters 4 -v 3 --cuda-device -1 --fusion-mode 1
DensifyPointCloud scene.mvs --resolution-level 2 --iters 4 -v 3 --cuda-device -1 --sub-scene-area 20000000
DensifyPointCloud scene_0000.mvs --resolution-level 2 --iters 4 -v 3 --cuda-device -1 --dense-config-file Densify.ini
segfaults on the 3rd command (this time with CUDA error: invalid argument (code 1)
) and yields the following log files:
The last line before the crash is
13:48:21 [App ] Reference image 22 paired with 4 views: 873(1.74scl) 875(1.90scl) 879(1.00scl) 874(1.93scl) (609 shared points)
which likely crashes because depth maps 873 and 875 are missing.
Looking over the logs, I don't see anything overtly suspicious for why the depth maps are not created.
I'm now going to run badblocks
on the disk storing the depthmaps to ensure this is not a hardware issue. Besides that, I'm out of ideas and am happy to try out whatever you suggest!
Digging further, it seems that the InterfaceCOLMAP
(run before 1, 2 and 3) only exports a subset of images (946
out of the 972
total ones):
10:07:07 [App ] OpenMVS x64 v2.3.0
10:07:08 [App ] Build date: Feb 2 2024, 00:09:03
10:07:08 [App ] CPU: AMD Ryzen 7 1700 Eight-Core Processor (16 cores)
10:07:08 [App ] RAM: 62.74GB Physical Memory 32.00GB Virtual Memory
10:07:08 [App ] OS: Linux 5.15.146-1-MANJARO (x86_64), which is likely because some images weren't matched. Weirdly enough,
10:07:08 [App ] Disk: 199.47GB (960.17GB) space
10:07:09 [App ] SSE & AVX compatible CPU & OS detected
10:07:09 [App ] Command line: InterfaceCOLMAP -i /app/dst/new-wall-pipeline-smichoff/03-LargeDenseCheckpoint/project/mvs -o /app/dst/new-wall-pipeline-smichoff/03-LargeDenseCheckpoint/project/mvs/scene.mvs --image-folder /app/dst/new-wall-pipeline-smichoff/03-LargeDenseCheckpoint/project/mvs/images
10:07:09 [App ] Reading cameras: /app/dst/new-wall-pipeline-smichoff/03-LargeDenseCheckpoint/project/mvs/sparse/cameras.bin
10:07:09 [App ] Reading images: /app/dst/new-wall-pipeline-smichoff/03-LargeDenseCheckpoint/project/mvs/sparse/images.bin
10:07:09 [App ] Reading points: /app/dst/new-wall-pipeline-smichoff/03-LargeDenseCheckpoint/project/mvs/sparse/points3D.bin
10:07:11 [App ] Reading patch-match configuration: /app/dst/new-wall-pipeline-smichoff/03-LargeDenseCheckpoint/project/mvs/stereo/patch-match.cfg
10:07:11 [App ] Reading depth-maps/normal-maps: /app/dst/new-wall-pipeline-smichoff/03-LargeDenseCheckpoint/project/mvs/stereo/depth_maps/ and /app/dst/new-wall-pipeline-smichoff/03-LargeDenseCheckpoint/project/mvs/stereo/normal_maps/
10:07:11 [App ] Exported data: 946 images, 311337 points (2s467ms)
10:07:11 [App ] MEMORYINFO: {
10:07:11 [App ] VmPeak: 377528 kB
10:07:11 [App ] VmSize: 345276 kB
10:07:11 [App ] } ENDINFO
Weirdly enough, the difference is 972 - 946 = 26
but the reading error happens for 27
depthmaps:
13:45:01 [App ] error: opening file 'depth0966.dmap' for reading depth-data
13:45:02 [App ] error: opening file 'depth0896.dmap' for reading depth-data
13:45:02 [App ] error: opening file 'depth0875.dmap' for reading depth-data
13:45:02 [App ] error: opening file 'depth0873.dmap' for reading depth-data
13:45:03 [App ] error: opening file 'depth0843.dmap' for reading depth-data
13:45:03 [App ] error: opening file 'depth0842.dmap' for reading depth-data
13:45:03 [App ] error: opening file 'depth0834.dmap' for reading depth-data
13:45:03 [App ] error: opening file 'depth0833.dmap' for reading depth-data
13:45:05 [App ] error: opening file 'depth0712.dmap' for reading depth-data
13:45:05 [App ] error: opening file 'depth0711.dmap' for reading depth-data
13:45:05 [App ] error: opening file 'depth0706.dmap' for reading depth-data
13:45:08 [App ] error: opening file 'depth0221.dmap' for reading depth-data
13:45:08 [App ] error: opening file 'depth0216.dmap' for reading depth-data
13:45:08 [App ] error: opening file 'depth0193.dmap' for reading depth-data
13:45:08 [App ] error: opening file 'depth0192.dmap' for reading depth-data
13:45:08 [App ] error: opening file 'depth0180.dmap' for reading depth-data
13:45:09 [App ] error: opening file 'depth0046.dmap' for reading depth-data
13:45:10 [App ] error: opening file 'depth0035.dmap' for reading depth-data
13:45:10 [App ] error: opening file 'depth0034.dmap' for reading depth-data
13:45:12 [App ] error: opening file 'depth0113.dmap' for reading depth-data
13:45:14 [App ] error: opening file 'depth0365.dmap' for reading depth-data
13:45:14 [App ] error: opening file 'depth0369.dmap' for reading depth-data
13:45:14 [App ] error: opening file 'depth0370.dmap' for reading depth-data
13:45:15 [App ] error: opening file 'depth0398.dmap' for reading depth-data
13:45:15 [App ] error: opening file 'depth0399.dmap' for reading depth-data
13:45:15 [App ] error: opening file 'depth0400.dmap' for reading depth-data
13:45:15 [App ] error: opening file 'depth0402.dmap' for reading depth-data
badblocks
on the disk in question produced no errors so the problem likely isn't in the disk.
Ran MemTest86 to check for RAM issues (possibly corrupting the DMAPs on export), no fails there.
Rerunning the code on the machine the issue was present on and also on a different one to see if the problem is with the data.
The errors occur for the same depth maps when run multiple times.
I'm at a loss for what to try at this point, let me know what I should do if you have any ideas.
Found a minimal reproducible example.
Taking this COLMAP project: 1-colmap-input.zip
I ran COLMAP's image_undistorter
, producing the following: 2-after-undistortion.zip
Using OpenMVS, I ran
InterfaceCOLMAP -i . -o scene.mvs --image-folder images
DensifyPointCloud scene.mvs --resolution-level 2 --iters 4 --cuda-device -1 --fusion-mode 1
DensifyPointCloud scene.mvs --resolution-level 2 --iters 4 --cuda-device -1 --sub-scene-area 20000000
Densify.ini
with Optimize = 0
DensifyPointCloud scene_0000.mvs --resolution-level 2 --iters 4 --cuda-device -1 --dense-config-file Densify.ini
The last step crashes with
malloc(): unsorted double linked list corrupted
Aborted (core dumped)
Simply running DensifyPointCloud scene.mvs --resolution-level 2 --iters 4 --cuda-device -1
works perfectly fine and produces the correct model.
Here are all produced logs and files: 3-after-crash.zip
Describe the bug Running the steps outlined in the
MvsScalablePipeline.py
yields a segmentation fault.To Reproduce Running the following commands (after
InterfaceCOLMAP
):DensifyPointCloud scene.mvs --resolution-level 1 --iters 4 --cuda-device -1 --fusion-mode 1
DensifyPointCloud scene.mvs --resolution-level 1 --iters 4 --cuda-device -1 --sub-scene-area 20000000
DensifyPointCloud scene_0000.mvs --resolution-level 1 --iters 4 --cuda-device -1 --dense-config-file Densify.ini -v 3
Densify.ini
contents areOptimize = 0
Step (3) crashes with the following output:
Trying to run the command for other scenes:
scene_0001.mvs
worksscene_0002.mvs
worksscene_0003.mvs
crashes with0 images (0 calibrated) with a total of 0.00 MPixels (-nan MPixels/image)
(probably a different issue, looks like the scene is empty)scene_0004.mvs
worksLooking at what command (2) produces:
suggests that certain depth maps are malformed, which could perhaps be a reason for the issue?