Reputation: 537
I am trying to implement the surface normal estimation proposed by Hinterstoisser et al (2011) but I'm not clear with some points:
Upvotes: 2
Views: 2031
Reputation: 10682
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)).
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