Object orientation detection

Dear All,

I have a 3D object which is located in an arbitrary position and orientation in the space. My goal is to roughly find the orientation of the object.

To achieve that, I think I need a descriptor of the object to define it. For that descriptor I am thinking maybe a skeleton of the object will work, since my object’s shape is a specific shape with certain twists and corners.

After having the descriptor I need to be able to find the orientation of the descriptor. And for this I am thinking I might be able to use certain relationships of points located on the skeleton, with each other or with the origin of the space.

So my questions are:

  1. Is there a better method to do this? (Finding the orientation of an object)

  2. Is there a method in VTK/ITK to extract the skeleton of an object?

  3. Is there any other descriptor available in VTK/ITK which might be helpful?

Thanks.

1 Like

Hi @majid,

Welcome to ITK!

@hastings.greer may have some thoughts or suggestions on how to leverage the gradients of the object.

Yes, the many segmentation algorithms available in ITK can first be applied. Then, there are filters available to extract the skeleton.

ITK contains a number of image PCA tools, that could be used as a descriptor.

Examining the gradient distribution (representing the orientation) of the segmentation may be helpful (ITK has many methods to compute the gradients).

ITK has many registration tools to help find where you are in this orientation space. Depending on the object and the amount of data that you have, you may want to bridge ITK/VTK with one of the many machine learning libraries to improve how the orientation is estimated.

But, it may just be sufficient to just perform a rigid registration with ITK’s registration framework. It depends on the image content and how how fast the registration needs to be.

HTH,
Matt

1 Like