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, 2015 at 9:54
  • $\begingroup$ @Micka no I dont I am just testing out states that can happen. $\endgroup$ Jan 2, 2015 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, 2015 at 10:01
  • $\begingroup$ @Micka hello what can you suggest me instead ? for these kind of images. $\endgroup$ Jan 2, 2015 at 13:00

1 Answer 1


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 and acknowledge you have read our privacy policy.

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