Cable angle measurement (rotation)

I need to detect the rotation of a cable (degree) in the x-axis with high precision [0.2 (or more) degree detection] from its original state.

Detailed description:

  1. I have a cable that is set in its original state.
  2. The system has rotated the cable in the x-axis.
  3. I want to know the degree the cable has been rotated from its original state.

Example:

There're following images for a specific cable in different rotation (angle) [0, 0.4, 0.6, 0.8]:

1) 2) 3) 4)

[First image shows the initial state of the cable; the following three images show 0.4, 0.6, 0.8 rotation from its initial state respectively)].

Important facts:

  • It is not possible to make pictures in better resolution.
  • It is not possible to make pictures in better contrast.
  • The cables may vary (different positions of the light strips on the cable).

Can this problem be solved using computer vision, neural networks, or other methods/techniques?

Topic image-preprocessing opencv computer-vision neural-network

Category Data Science


Answer:

Since the difference can't be seen by the human eye, you may need to try teaching an algorithm the difference.

You might try two approaches:

  • Train 1 model per cable defining the initial state implicitly

  • Train a model with a triplet loss to define an anchor in the initial state.

Observation:

I strongly recommend to keep the images as raw files or use compression without loss for this kind of image treatment as that will avoid adding artifacts that will reduce your precision. If your data acquisition system cannot sustain the load of transferring raw image files, I would recommend using PNG or jpeg2000(used by NASA to compress images, way more efficient and the transformation used as base is used as inspiration for multiple object detection algorithms)

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.