cdcseacave / openMVS

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

The 3d mesh result is too bad,how to improve it? #186

Open wguo68 opened 7 years ago

wguo68 commented 7 years ago

I used 23 images. Everything seems run okay. But there is no resulted mesh (empty mesh). 14:16:13 [App ] Scene loaded (0ms): 23 images (17 calibrated) with a total of 52.61 MPixels (3.09 MPixels/image) 0 points, 0 vertices, 0 faces

Then, I re-run the whole process,and choose another pair for "x enter y enter" .It seems there are points and can result in a mesh now. I have a question, how to choose the pair?

When I run DensifyPointCloud. The result is :

744 points, 0 vertices, 0 faces

14:29:24 [App ] Preparing images for dense reconstruction completed: 23 images (532ms) 14:29:24 [App ] error: reference image 6 has no good images in view 14:29:24 [App ] error: reference image 2 has no good images in view 14:29:24 [App ] error: reference image 7 has no good images in view 14:29:24 [App ] error: reference image 7 has no good images in view 14:29:24 [App ] error: reference image 3 has no good images in view 14:29:24 [App ] error: reference image 3 has no good images in view 14:29:24 [App ] error: reference image 3 has no good images in view 14:29:24 [App ] error: reference image 22 has no good images in view 14:29:24 [App ] error: reference image 0 has no good images in view 14:29:24 [App ] error: reference image 12 has no good images in view 14:29:24 [App ] error: reference image 5 has no good images in view 14:29:24 [App ] error: reference image 17 has no good images in view 14:29:24 [App ] error: reference image 15 has no good images in view 14:29:24 [App ] error: reference image 16 has no good images in view 14:29:24 [App ] error: reference image 10 has no good images in view 14:29:24 [App ] error: reference image 11 has no good images in view 14:29:24 [App ] error: reference image 4 has no good images in view 14:29:24 [App ] error: reference image 1 has no good images in view 14:29:24 [App ] Selecting images for dense reconstruction completed: 5 images (200ms)

What's the meaning "reference image 6 has no good images in view"?

The resulted mesh is as following: yang

It seems too noisy,how to do with it ?

pmoulon commented 7 years ago

Incremental SfM is a sequential process that start from a pair to create a initial 3D reconstruction that is then expanded by adding new view sequentially.

The Chain have an algorithm to try to estimate a valid initial pair to start with automatically, but sometimes it prefer to reject the found potential pair, since the triangulation angle is unstable or too few 3d points are shared. That's why we let the user be able to choose a pair manually (in case of failure of the automatic method).

What's the meaning "reference image 6 has no good images in view"? To perform MVS you don't need all the images, since often there is good coverage between the image. This sentence means that the automatic criteria does not succeed to find a valid image to create a pair for the densification step. You see in your case that 5 cameras have been kept from the 23 you have.

cdcseacave commented 7 years ago

such noise most of the time is due to either

wguo68 commented 7 years ago

Thank you. Is it mean the MVS not suitable for 3d face reconstruction?

cdcseacave commented 7 years ago

Not at all!!! I mean exactly what I said, there must be most probably one of the problems I just mentioned. OpenMVS was used to reconstruct faces very successfully. Keep in mind OpenMVS does not include the SFM part.

wguo68 commented 7 years ago

The guy didn't move and try to keep himself static. I used OpenMVG/OpenMCVS pipeline to do this test. Is it mean the automatic method of OpenMVG for SFM is not good for my task? If I have detected landmarks (at least 10 landmarks on each image) on faces using dlib lib. How to do with the problem?

pmoulon commented 7 years ago

You can try to add more images and add a textured background (news paper) behind the head in order to help the camera registration. As we have already discussed before, skin does not have a lot of texture and so it does not help for the SFM task.