rennu / dpg

OpenMVG + OpenMVS Pipeline
82 stars 28 forks source link

Error while executing OpenMVS. #5

Closed kota03016991 closed 4 years ago

kota03016991 commented 5 years ago

Environment : Mac OS 10.14 / Installed by Docker

When I try to run the pipeline, it always fails at the same time while executing mesh reconstruction like ...

  • UNDISTORT IMAGES - 0% 10 20 30 40 50 60 70 80 90 100% |----|----|----|----|----|----|----|----|----|----|

    Scene saved to OpenMVS interface format:

    platforms: 1

    platform ( 0 ) #cameras: 1 11 images (11 calibrated) 6068 Landmarks Reconstruct mesh

    /opt/openmvs/bin/OpenMVS/ReconstructMesh scene.mvs -w /datasets/output_castle/densified/omvs -v 0

Could not find executable: /opt/openmvs/bin/OpenMVS/ReconstructMesh - Have you installed all the requirements? Failed while executing: /opt/openmvs/bin/OpenMVS/ReconstructMesh scene.mvs -w /datasets/output_castle/densified/omvs -v 0

When I run the pipeline without using OpenMVS (only using OpenMVG), it creates files without error. Does some other things should be installed to run OpenMVS ?

rennu commented 5 years ago

Hi,

The installation script should install all required software, however, you seem to be missing OpenMVS for some reason. My guess is that there was an error while running OpenMVS installation but because the installation script didn't care about errors, the docker build succeeded.

I have now updated the build script so that it will exit with error if any of the commands fail.

As to how to resolve your problem: Do git pull (so you'll have the latest version of the script) and then rerun docker build. After the build has completed, do docker run --rm dpg ls /opt to see if OpenMVS installed correctly this time (it should list OpenMVS).

kota03016991 commented 5 years ago

Thanks to your advice, the pipeline works (executed mesh reconstruction) and create file without error!

Now, I have another problem when I try to create dense mesh reconstruction (just add the option --densify). While creating densified point cloud, the process stops like...

  • UNDISTORT IMAGES - 0% 10 20 30 40 50 60 70 80 90 100% |----|----|----|----|----|----|----|----|----|----|

    Scene saved to OpenMVS interface format:

    platforms: 1

    platform ( 0 ) #cameras: 1 11 images (11 calibrated) 6023 Landmarks Densify point cloud

    /opt/openmvs/bin/OpenMVS/DensifyPointCloud scene.mvs -w /datasets/output_castle/densified/omvs -v 0

04:11:16 [App ] Build date: Jun 13 2019, 08:38:49 04:11:16 [App ] CPU: Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz (3 cores) 04:11:16 [App ] RAM: 5.82GB Physical Memory 2.00GB Virtual Memory 04:11:16 [App ] OS: Linux 4.9.125-linuxkit (x86_64) 04:11:16 [App ] SSE & AVX compatible CPU & OS detected 04:11:16 [App ] Command line: scene.mvs -w /datasets/output_castle/densified/omvs -v 0 terminate called after throwing an instance of 'std::length_error' what(): basic_string::_M_create Failed while executing: /opt/openmvs/bin/OpenMVS/DensifyPointCloud scene.mvs -w /datasets/output_castle/densified/omvs -v 0

I couldn't find out what the meaning is.

terminate called after throwing an instance of 'std::length_error' what(): basic_string::_M_create

Could you show me the way to resolve this problem? Sorry for my lack of knowledge of C++

rennu commented 5 years ago

That's great news!

That's an error caused by something going wrong with OpenMVS. I searched OpenMVS issues and it looks like someone had a similar kind of error 23 days ago.

I was able to reproduce the problem so it's not just you having it so I went on and created a new issue.

kota03016991 commented 5 years ago

Thank you! I just saw the issue you created and tried to do what you did. It worked fine!

rennu commented 5 years ago

I added a workaround and the latest version should work again.

rennu commented 4 years ago

It's fixed now.