yifita / DSS

Differentiable Surface Splatting
442 stars 31 forks source link

Confused about learn_color #13

Closed chx125ck closed 2 years ago

chx125ck commented 3 years ago

When I set learn color to be true in the config file, the resulting pointcloud has color that seems like random noise. When printing out the "color" in get_point_cloud in point_modeling.py, the value seems to be initialized to 1 at the first loop, but quickly goes to random numbers later (including negative values). img_pred generated by calling self.model(...) in trainer.py also seems to have very weird results.

lxxue commented 3 years ago

Is the lighting set to default according to this comment?

chx125ck commented 3 years ago

It seems to be working now, thank you. I'm still confused by the comment though. When it says use ground truth lighting, does that mean using the light matrices provided in the dicts, in that case why should learn_color be false? With default the comment says it is using the white ambient light, does it mean comparing the model shaded with only white ambient light with reference images rendered with different light sources to compute loss?

lxxue commented 3 years ago

Hi, sorry for the previous reply. I checked the code and I am not sure about changing this lighting from from_data to default would change anything (didn't find relevant code in the repo).

I did three experiments:

  1. with learn_normal=true; learn_color=false (the dss.yml);
  2. with learn_normal=false; learn_color=true
  3. with learn_normal=true; learn_color=true

It seems that all experiments have visually similar results, though they have different loss values. exp1 has a loss ~0.6, exp2 ~0.8 and exp3 ~1.0 after 10 minutes.

My feeling is, the learn_color and the learn_normal cannot be set to true at the same time. It will be a ill-posed problem as a point can have a correct pixel color by either changing normal or changing its point color.

What do you mean by "the resulting pointcloud has color that seems like random noise"? Could you show some visualizations?