cdcseacave / openMVS

open Multi-View Stereo reconstruction library
http://cdcseacave.github.io
GNU Affero General Public License v3.0
3.39k stars 911 forks source link

Assertion failed: (ISEQUAL(norm(normalMap0(nx)), 1.f)), function ProcessPixel, file DepthMap.cpp, line 682 #1152

Open rainboy93 opened 5 months ago

rainboy93 commented 5 months ago

As title, please someone help me. I am struggling running MvgMvsPipeline.py with DEFAULT preset

waqarsqureshi commented 3 months ago

I have similar error with the default script /DepthMap.cpp:665: void MVS::DepthEstimator::ProcessPixel(SEACAVE::IDX): Assertion `ISEQUAL(norm(normalMap0(nx)), 1.f)' failed.

Pipeline end

waqarsqureshi commented 3 months ago

tried to change default option from densifypointcloud openMVS/libs/MVS/DepthMap.cpp:648: void MVS::DepthEstimator::ProcessPixel(SEACAVE::IDX): Assertion `ISEQUAL(norm(normalMap0(nx)), 1.f)' failed.

waqarsqureshi commented 3 months ago

compiled the openMVG with release version and now I am getting 23:31:28 [App ] Preparing images for dense reconstruction completed: 11 images (157ms) 23:31:28 [App ] Selecting images for dense reconstruction completed: 11 images (7ms) buffer overflow detected : terminated

waqarsqureshi commented 3 months ago

@cdcseacave and clue? what would be the reason. I tried different image resolution, but could not resolve. Here is the full output

17. Densify point cloud

Cmd: /usr/local/bin/OpenMVS/DensifyPointCloud scene.mvs --resolution-level 1 -w "/home/waqar-shahid/openMVS/scripts/python/output/mvs" 00:18:51 [App ] OpenMVS x64 v2.3.0 00:18:51 [App ] Build date: Aug 12 2024, 23:48:51 00:18:51 [App ] CPU: 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz (16 cores) 00:18:51 [App ] RAM: 31.09GB Physical Memory 8.00GB Virtual Memory 00:18:51 [App ] OS: Linux 6.8.0-38-generic (x86_64) 00:18:51 [App ] Disk: 417.58GB (479.54GB) space 00:18:51 [App ] SSE & AVX compatible CPU & OS detected 00:18:51 [App ] Command line: DensifyPointCloud scene.mvs --resolution-level 1 -w "/home/waqar-shahid/openMVS/scripts/python/output/mvs" 00:18:51 [App ] Camera model loaded: platform 0; camera 0; f 1.055x1.055; poses 11 00:18:51 [App ] Scene loaded from interface format (5ms): 11 images (11 calibrated) with a total of 63.22 MPixels (5.75 MPixels/image) 6065 points, 0 vertices, 0 faces 00:18:51 [App ] The camera directions mean is unbalanced; the scene will be considered unbounded (no ROI) 00:18:51 [App ] Point-cloud composed of 6065 points with:

waqarsqureshi commented 3 months ago

The debug build give the following DensifyPointCloud: /home/waqar-shahid/openMVS/libs/MVS/DepthMap.cpp:648: void MVS::DepthEstimator::ProcessPixel(SEACAVE::IDX): Assertion `ISEQUAL(norm(normalMap0(nx)), 1.f)' failed. Aborted (core dumped)

waqarsqureshi commented 3 months ago

Ref to https://github.com/cdcseacave/openMVS/issues/928. My issue in release mode might be different as the Assert Errors are in supressed in the release mode.

waqarsqureshi commented 3 months ago

Tried to reinstall again and use standard libraries on Ubuntu 24.04. It is have the same error

17. Densify point cloud

Cmd: /home/waqar-shahid/openMVS/make/bin/DensifyPointCloud scene.mvs --resolution-level 1 -w "/home/waqar-shahid/openMVS/scripts/python/output/mvs" --max-thread 0 --process-priority -1 --archive-type 2 --min-resolution 640 --estimate-colors 1 --estimate-normals 1 17:43:14 [App ] OpenMVS x64 v2.3.0 17:43:14 [App ] Build date: Aug 13 2024, 16:55:44 17:43:14 [App ] CPU: 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz (16 cores) 17:43:14 [App ] RAM: 31.09GB Physical Memory 8.00GB Virtual Memory 17:43:14 [App ] OS: Linux 6.8.0-40-generic (x86_64) 17:43:14 [App ] Disk: 402.99GB (479.54GB) space 17:43:14 [App ] SSE & AVX compatible CPU & OS detected 17:43:14 [App ] Command line: DensifyPointCloud scene.mvs --resolution-level 1 -w "/home/waqar-shahid/openMVS/scripts/python/output/mvs" --max-thread 0 --process-priority -1 --archive-type 2 --min-resolution 640 --estimate-colors 1 --estimate-normals 1 17:43:14 [App ] CUDA device 0 initialized: NVIDIA T1200 Laptop GPU (compute capability 7.5; memory 3.81GB) 17:43:14 [App ] Camera model loaded: platform 0; camera 0; f 1.054x1.054; poses 11 17:43:14 [App ] Scene loaded from interface format (4ms): 11 images (11 calibrated) with a total of 63.22 MPixels (5.75 MPixels/image) 6029 points, 0 vertices, 0 faces 17:43:14 [App ] The camera directions mean is unbalanced; the scene will be considered unbounded (no ROI) 17:43:14 [App ] Point-cloud composed of 6029 points with:

waqarsqureshi commented 3 months ago

image

waqarsqureshi commented 3 months ago

openMVS/libs/Common/Types.h Relax the equal tolerance on lib\MVS\Common\Types.h and recompile

define ZERO_TOLERANCE (1e-6) // (1e-7)

define FZERO_TOLERANCE 0.001f // 0.0001f

This does not solve the buffer overflow detected error occurred during runtime in release mode. Then I changed to debug and compiled again. I did not get the buffer overflow detected error and it went pass through to create scene_dense.ply.

for the Reconstruction Mesh same error in release mode

Cmd: /home/waqar-shahid/openMVS/make/bin/ReconstructMesh scene_dense.mvs -p scene_dense.ply -w "/home/waqar-shahid/openMVS/scripts/python/output/mvs" 18:32:56 [App ] OpenMVS x64 v2.3.0 18:32:56 [App ] Build date: Aug 13 2024, 18:25:34 18:32:56 [App ] CPU: 11th Gen Intel(R) Core(TM) i7-11800H @ 2.30GHz (16 cores) 18:32:56 [App ] RAM: 31.09GB Physical Memory 8.00GB Virtual Memory 18:32:56 [App ] OS: Linux 6.8.0-40-generic (x86_64) 18:32:56 [App ] Disk: 401.99GB (479.54GB) space 18:32:56 [App ] SSE & AVX compatible CPU & OS detected 18:32:56 [App ] Command line: ReconstructMesh scene_dense.mvs -p scene_dense.ply -w "/home/waqar-shahid/openMVS/scripts/python/output/mvs" 18:32:56 [App ] CUDA device 0 initialized: NVIDIA T1200 Laptop GPU (compute capability 7.5; memory 3.81GB) buffer overflow detected : terminated

In the debug mode it says,

ReconstructMesh: /home/waqar-shahid/openMVS/libs/Common/List.h:400: TYPE& SEACAVE::cList<TYPE, ARG_TYPE, useConstruct, grow, IDX_TYPE>::operator [with TYPE = SEACAVE::cList<unsigned int, const unsigned int, 0, 4, unsigned int>; ARG_TYPE = const SEACAVE::cList<unsigned int, const unsigned int, 0, 4, unsigned int>&; int useConstruct = 1; int grow = 16; IDX_TYPE = long unsigned int; IDX = long unsigned int]: Assertion `index < _size' failed.

waqarsqureshi commented 3 months ago

When you switch to Ubuntu 2.04 and follow the installation step with Eigen 3.4.1 (as mentioned in dockerfile too) then compiled without cuda. The algo run with a breeze.

themightyoarfish commented 1 month ago

I get this error too on a fresh build on macos (m1). What could one do to fix this?

cdcseacave commented 1 month ago

build in release mode