0
$\begingroup$

Assuming that we have 10 same objects, they are lined up and equidistant. If any of them is rotated a very small angle(5 - 10deg), what is best method to detect them? I am using a camera to capture the image. I want to divide the image into 10 parts and then feed each part into CNN model to classify the defect. Is that a possible way? What is the recommendation for this problem?

$\endgroup$
0
$\begingroup$

It is a possible way, but this class of problems falls under outlier detection in machine learning.

The defining feature is that one can only train for usual events not rare events, there are few or even no data at all, so a different approach needs to be taken.

Since usual neural network training requires adequate samples from each class, a workaround is needed. For example autoencoder networks are an option for outlier detection

$\endgroup$
1
  • $\begingroup$ Thanks for your suggestion, let me try with this approach. Btw, how about the computing time compared with other methods, say 2-classes detection. My project does not require fast response (~8 second/images). Is it viable solution? $\endgroup$ – Sea Stormy Jan 13 at 9:16
0
$\begingroup$

It seems that the way you described the problem does not need any machine learning. You can calculate the rotation between any image and the 'correct' one based on the rotation operator: https://en.wikipedia.org/wiki/Rotation_matrix https://math.stackexchange.com/questions/15101/find-the-rotation-of-one-image-with-respect-to-other-in-matlab

If the problem is less well-defined, e.g. there is also noise and other effects such as scaling, you could also use CNNs in a supervised learning fashion but you would need an appropriate dataset that contains 'correct' and 'rotated' examples.

As for splitting the image into 10 parts and perform some kind of algorithm on each one, that makes sense yeah.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.