Constrained 3D Rotation Smoothing Toolbox for MATLAB

Chao Jia and Brian L. Evans
The University of Texas at Austin, Austin, TX 78712 USA


Download the toolbox here that was released on January 23, 2014. Initial release was on April 8, 2013. This toolbox has been tested in Matlab R2011b in Windows and Mac OS.

This toolbox is used for smoothing 3D rotation matrices sequences using manifold optimization. The smoothing is formulated as a constrained regression problem and is solved by the generalization of 2-metric projection algorithm. An important application of 3D rotation smoothing is to stabilize videos as shown in the demo "stabilization_demo.m". Video stabilization generally include three steps: (1) camera motion estimation, (2) motion smoothing and (3) image warping. This toolbox can be used for step (2) under a 3D rotation camera motion model.

In the demo we also provide simple codes to get the camera motion and do image warping, so that you can see the final video stabilization result to better understand 3D rotation smoothing. We assume the camera has been calibrated (with known intrinsic parameters). The 3D rotation matrix corresponding to each frame is obtained by integrating the gyro readings captured at the same time with the video on a smartphone. Image warping is done in MATLAB. Note that in practice the camera rotation estimation and image warping can be done by many other methods.

In the toolbox, there is a example video file, together with its corresponding gyroscope readings and framestamps. The video (with gyroscope readings) is captured by Google Nexus S smartphone. Please start to use the toolbox with this example.

This toolbox was programmed by Chao Jia. For questions on the toolbox please write to Chao Jia at


C. Jia and B. L. Evans, "3D Rotational Video Stabilization using Manifold Optimization", Proc. IEEE Int. Conf. on Acoustics, Speech, and Signal Proc., May. 26-31, 2013, Vancouver, Canada.

C. Jia and B. L. Evans, "Constrained 3D Rotation Smoothing via Global Manifold Regression for Video Stabilization", IEEE Trans. on Signal Processing, accepted for publication with mandatory minor revisions.