Hello I'm trying to recognize characters on the circular metal surface.

Without any preprocessing I could match cropped features with original image. I've actually cropped 2 characters together to increase interested points on a template.

enter image description here

however on different locations of the conveyor belt and with different illumination angle and perspective SURF matching fails.

enter image description here enter image description here enter image description here enter image description here

I will definately crop the ROI from conveyor belt but still I am not sure whether I have to create a database of images to increase accuracy or some kind of preprocessing (I've read that for feature detection there is no require preprocessing on images)

I am open to new suggestions for this problem. Maybe a different algorithm or method that can help me out.

thanks in advance.

  • $\begingroup$ do you have control about illumination, viewing angle etc? $\endgroup$
    – Micka
    Jan 2 '15 at 9:54
  • $\begingroup$ @Micka no I dont I am just testing out states that can happen. $\endgroup$ Jan 2 '15 at 9:55
  • $\begingroup$ My intuition is that metal surface texture differs too much for different illumination and viewing angles (without controling illumination), to use SURF. And seems to be a hard problem in general. But that's just my intuition. $\endgroup$
    – Micka
    Jan 2 '15 at 10:01
  • $\begingroup$ @Micka hello what can you suggest me instead ? for these kind of images. $\endgroup$ Jan 2 '15 at 13:00

Do not struggle forming a database of images to match via descriptors. This would be too computationally cumbersome and would require immerse amount of training. Such a scalable solution doesn't exist out of the box yet. I would rather rely on Neural Networks or SVMs to train the possible appearances of characters.

Of course using a classifier relies on the assumption that the images appear more or less in a controlled fashion and you can segment the characters. To meet these criteria, you need to stabilize your illumination conditions. You can do this with the appropriate choice of LED lighting. After the illumination is more or less uniform and robust, the character segmentation is straightforward. You can simply threshold the image through local techniques (which posses certain illumination treatment) and apply blob analysis. You can also put all the constraints you have in this stage. Don't forget to unwarp your images prior to segmentation as described in this post.

To train your classifier do not use plain intensity values. This would be very noisy. Instead exploit the gradient information (or normalized gradients). This is proven to be robust in many works such as this one. Also, don't even use the gradients directly. It is better to quantize them (Remember canny?). Robustness of LINEMOD is also a good example of this.

I would suggest further reading on machine vision as this is a practically involved topic. Many techniques on machine vision differ substantially from the methods in computer vision. You can think of this as a practice-theory duality. Refer to this book for instance.


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.