nmoehrle / mvs-texturing

Algorithm to texture 3D reconstructions from multi-view stereo images
Other
929 stars 328 forks source link

Worse color balance quality and outliers compared to openmvs #59

Open saedrna opened 7 years ago

saedrna commented 7 years ago

Hi,

OpenMVS also implement the texrecon method,except for the hole filling part. I have tried both openmvs and texrecon and find out that except for the holes are filled gracefully, the color balancing and outlier detection are worse than openmvs.

Here is the result, in which images are processed with visual sfm and mesh are generated with openmvs. I have tried both gause_danglin and clamping, which produce similar results.

openmvs

openmvs

texrecon texrecon

Also I attach the images, nvm and mesh file in the following. The bundle_dense_mesh_refine_texture.ply is produced with openmvs, castle.zip

I would like to know if I have done something wrong.

saedrna commented 7 years ago

Hi,

I have figured out a solution for this problem. In photometric_outlier_detection, the outlier threshold gauss_rejection_threshold is hard coded to 6e-3, which I think is related to the 3-sigma rule.

However, when the number of observations is not too much and data variance is high, 3-sigma rule is too restricted. For example, in this case only 10 cameras is used and the color is varying a lot.

When set to 2-sigma, I have obtained a more reasonable result.

screenshot from 2016-11-17 14-49-04

Again, thanks for this wonderful library!

Han

oleg-alexandrov commented 4 years ago

This parameter should be exposed to the user, with documentation, of course, not hard-coded.

More generally, the three sigma rule can fail miserably quite easily. A percentile-based logic can do much better. (Sort the values, throw out a percentage at the end points. Expand the obtained interval of inliers by a factor and keep all values in the given expanded interval.) Even better, if a model can be fit, RANSAC can be used, though here maybe it is overkill.