Affine Transformation for 3D Motion Estimation with Octree Structure.

Home
Octree Affine Compression
ICP for non-rigid
3D Animations
Affine Transform
Octree

 

Motivations: For any rigid object, the motion of it could always be interpreted by translation and rotation. So, we are able to find an affine transformation to describe it. However, articulated objects are most common for 3D animation. Therefore, Octree method is introduced as an efficient way to subdivide the objects.

General Steps:

Chicken Sequence, Frame 100-120, ErrorThreshold = 0.1

Dance Sequence, Frame 1-25, ErrorThreshold = 0.1

 

 

 

1. In each frame, a bounding box is set. The size of the bounding box is set to be able to enclose all the vertexes  in the previous frame. (In the beginning, the previous frame and current frame are chosen as the 1st and 2nd frames)

2. All the positions of vertexes in the current frame () and previous frame () are normalized by the size of the bounding box of the previous frame. (Some of the vertex in the current frame may reside out of the bounding box for previous frame, but this does not make any difference, since the bounding box is just used to normalize the vertex to make sure the value of transformation H remain in the certain range, and the difference between two successive frames is far smaller than the ill-value generated by the singular condition of. This will be discussed in the following sections)

3. Apply equation (2) for the vertexes in previous frame and the corresponding vertexes in the current frame to get the homogeneous transformation matrix H.

4. Apply quantization for homogeneous matrix H, save the quantization result, and dequantize the result to find the dequantized homogeneous matrix H’

5. If the error produced by  is larger than a certain threshold T. The cube will be divided into 8 smaller cube.

6. Calculate the vertexes enclosed by each child cube to get a subset of vertexes.

7. For each of the sub cube, go to step 3 on these new vertexes, until the error is no larger than T.

8. If the error from  is smaller than T, save as the rebuilt frame and return.

        9. Use the rebuilt frame as the previous frame, loop for all the frames. If the number of vertexes in the new sub cude is less than or equal to 4, then save the position of these 4 vertexes instead of calculating the transformation matrix H. (Since the size of a homogeneous transformation matrix is 3 by 4, so it is no more efficient than to just save the positions of 4 vertexes, which is also 3 by 4)

 

 

 

 

 

 

 

 

 

 

 

Current Results:

Threshold = 0.10
Threshold = 0.05
Threshold = 0.15
Threshold = 0.25

 

 

Threshold = 0.01
Original Frame
Threshold = 0.05
Original Frame

Threshold = 0.01
Threshold = 0.05
Original Frame

 

Threshold = 0.03