Skip to content

6D rotation representation ("On the Continuity of Rotation Representations in Neural Networks") for tensorflow

Notifications You must be signed in to change notification settings

Janus-Shiau/6d_rot_tensorflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

6d_rot_tensorflow

6D rotation representation ("On the Continuity of Rotation Representations in Neural Networks") for tensorflow.

Environment

This code is implemmented and tested with tensorflow 1.11.0.
I didn't use any spetial operator, so it should also work for other version of tensorflow.

Usage

Just add the tf_rotation6d_to_matrix after your output, whose last dimension of tensor should be 6.

"""
Any model output whose last dimension is 6.
e.g. output = tf.layers.dense(hidden, 6)
"""
rot = tf_rotation6d_to_matrix(output)

I very simple example of transformation between 6D continuous representation and SO(3) can be found in example.py

Details

Here I crop some parts of the context from the paper, FYI.

According to the Section 3 and 4 of the paper, the target transformation between continuous representation and SO(n) can be formulate as follows. It's derived based on a Gram-Schmidt process.

Continuous representation of SO(n)

If you found it looks a little bit complicated, you can directly go to Appendix B. There is a very simple formulation of the 6D and SO(3).

Continuous representation of SO(3)

Besides, according to the features of rotation matrix, the formulation can be quite concise. You can found the concise transformation between 6D and SO(3) in the source code.

Contact & Copy Right

Code work by Jia-Yau Shiau [email protected].

About

6D rotation representation ("On the Continuity of Rotation Representations in Neural Networks") for tensorflow

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages