Hi, I think I found a pretty severe bug in both ACMM and ACMMP. The problem is the following line:
When the if statement is not satisfied, that variable remains uninitialized and it is both refined with
PlaneHypothesisRefinement() and assigned to
plane_hypotheses[center]. This produces random values which then propagates throughout the execution. You can verify it yourself if you just print the number of depth values smaller than 0 and bigger than any reasonable threshold. I would suggest to simply initialize it with the current value:
float4 plane_hypotheses_now = plane_hypotheses[center]
The issue doesn't exist in ACMP, where this line is not executed and
plane_hypotheses[center] is directly manipulated.
Now, the problem is that with this fix the 3D output has slightly less points (around 8-9% less), which is weird. Can you look a bit into this issue and clarify what happens? Maybe I'm missing something. Thank you in advance!