askingtoomuch
askingtoomuch

Reputation: 537

Estimation of Surface Normal in a Dense Range Image

I am trying to implement the surface normal estimation proposed by Hinterstoisser et al (2011) but I'm not clear with some points:

  1. In equation (9), is D(x) corresponding to the depth value (Z-axis) at pixel location x?
  2. How to estimate the value of the gradient ▽D using 8 neighboring points around the point of interest? enter image description here

Upvotes: 2

Views: 2031

Answers (1)

dhanushka
dhanushka

Reputation: 10682

  1. As mentioned, D is a dense range image meaning that for any pixel location x in D where x = [x y]T, D(x) is the depth at pixel location x (or simply D(x, y)).

  2. Estimating the optimal Gradient in a least-square sense

Suppose we have the following neighborhood around the depth value 5 in D(x) for some x:

8   1   6
3   5   7
4   9   2

Then, using the Taylor expansion

dxT.grad(x) + error = D(x + dx) - D(x)

we get eight equations for the neighborhood points

[1   0]g + e = 7 - 5
[-1  0]g + e = 3 - 5
[0   1]g + e = 9 - 5
[0  -1]g + e = 1 - 5
[1   1]g + e = 2 - 5
[1  -1]g + e = 6 - 5
[-1  1]g + e = 4 - 5
[-1 -1]g + e = 8 - 5

that we can represent in matrix form Ag + e = b as

[1  0;-1  0;0  1;0 -1;1 1;1 -1;-1 1;-1 -1]g + e= [2;-2;4;-4;-3;1;-1;3]

Then minimize the squared error ||Ag - b||22. The analytical solution for g^ that minimizes this error is of the form

g^ = (ATA)-1ATb

Upvotes: 6

Related Questions