Closed xubury closed 4 years ago
Also, I noticed that in the usage description:Within a scene folder a .cam file has to be given for each image. A .cam file is structured as follows: tx ty tz R00 R01 R02 R10 R11 R12 R20 R21 R22
I use mve
to generate camera parameters and get a meta.ini
instead of .cam
, could this be the problem?
I tried to debug the program. The segmentation fault happens inside of a function line 118: solver.optimize(solution, ctr);
in view_selection_cpp
. I dig into a little bit, looks like the segfault was caused by mapmap.
mapmap tries to run a parallel_do and crash the whole program. I really don't know how can I fix this issue. BTW, I running this code on Windows 10.
tbb::parallel_do(queue.begin(), queue.end(),
[&](const luint_t n, tbb::parallel_do_feeder<luint_t>& feeder)
eh. Just tested the program on Ubuntu 18.04 and didn't encounter this issue. I thinks it has something to do with libtbb which used by mapmap. The version of libtbb on my Windows 10 is newer than the one on Ubuntu. So maybe switch to older version might help?
On Windows 10, it shows compiler warning that some header files of tbb are deprecated and the program always crashed in _mm256_setzero_ps
I thinks it has something to do with libtbb which used by mapmap. The version of libtbb on my Windows 10 is newer than the one on Ubuntu. So maybe switch to older version might help?
Tested with latested libtbb on Ubutnu 20.04, the texturing process works despite the compile warning
So, apparently this is caused by a bug from mingw-gcc, see: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49001 I have made a little tuning to the code for anybody encounter the same issue using mingw-gcc. https://github.com/xubury/mvs-texturing
I follow the instruction at https://www.gcc.tu-darmstadt.de/home/proj/texrecon and use the dataset provided by https://www.gcc.tu-darmstadt.de/home/proj/mve/. But when I tried to compile the program using mingw-w64-gcc, it failed with serveral errors
error: cast from 'mapmap::_s_t<double, 4>*' {aka 'double*'} to 'long unsigned int' loses precision [-fpermissive]
. So I change every(unsigned long) ptr
to(uintptr_t) ptr
invector_math.impl.h
. Then the compile passed. Unfortunately when I try to generate texture it prompt a Segmentation Fault. Did my change to themapmap
lead to this SegFault? If so, how can I properly compile this project?