Is this Gradient Descent method or something else?

155 Views Asked by At

I'm reading a paper entitled "Sdf-2-sdf: Highly accurate 3d object reconstruction" http://campar.in.tum.de/pub/slavcheva2016eccv/slavcheva2016eccv.pdf

To get the rigid transformation (translation and rotation) $\xi$ between 2 camera frames, in Eqn. (11)~(17), an error function $E_{geom}$ is created and optimized: enter image description here

I can see the derivative is:

  • $dE_{geom}/d\xi=\Sigma(\phi_{ref}-\phi_{cur}(\xi^k))▽_\xi\phi_{cur}(\xi^k)$

and if Gradient Descent (GD) method applied, seems the update part should be:

  • $\xi^{k+1}=\xi^k+\alpha*dE_{geom}/d\xi$

but in Eqn. (13)~(16), a var $\xi^*$ is computed and used to update $\xi^{k+1}$. That seems not GD method to me.

What's the physical meaning of $\xi^*$? is there any tutorial (or keywords to google) on this optimization method?

1

There are 1 best solutions below

8
On

The gradient descent that you're looking for seems to be on equations (19) and (20), where they get the same equation that you did. As to your question, what they appear to be doing is described in the paper:

We determine the relative transformation between two RGB-D frames by setting the pose of the first one to identity and incrementally updating the other one.

In that regard, $\xi^*$ is the identity pose that they are attempting to iterate the current estimated pose $\xi^k$ towards. Going off of the definition given by (16), it certainly seems that way- $\xi^*$ is defined specifically as the pose where the derivative of the error is zero, which is verifiable by plugging (16) into (15):

$$\frac{\mathrm{d}E_{geom}}{\mathrm{d}\xi^*}=\mathbf{A}\xi^*-\mathbf{b} = \mathbf{A*A^{-1}b}-\mathbf{b}=\mathbf{b}-\mathbf{b}=0$$

In that way, they can determine through (17) the relative transformation of each frame- presume that the first is identity, and iterate the second to get back to the first. This is referred to in the paper as frame-to-frame camera tracking. They then take a selection of these frames, and apply a frame-to-model optimization (equations (19) and (20)) to get better approximation to the global weighted average.

So, to more accurately answer your question, $\xi^*$ is the first SDF, representative of identity. The second SDF is what they iterate from, to calculate the incremental difference. It becomes more evident what's going on if we do a bit of work on (17):

$$\xi^{k+1}=\xi^k+\beta(\xi^*-\xi^k)=\xi^k+\beta \xi^* - \beta \xi^k = (1-\beta)\xi^k+\xi^*$$

Since, naturally, $\beta$ is some step value in $[0,1)$, it's obvious that $(1-\beta)\lt1$. With that, we can determine that for any given $n\in\mathbb{N}$, $\xi^{k+n}=(1-\beta)^n \xi^k+(1-(1-\beta)^n)\xi^*$. You can see, then, that repeated iterations will converge to $\xi^*$.

I hope that helps!