Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Identify pattern in image

what is the best approach to identify a pattern (could be a text,signature, logo. NOT faces,objects,people,etc) in an image, given that all images are taken from the same angle, which means the pattern to identify will be ALWAYS visible at the same angle, but not position / size/ quality / brightness, etc.

Assuming I have the logo, I would like to run a test on 1000 images, from different sizes & quality and get those images that have this pattern embedded or at least a high probability to have this pattern embedded.

Thanks,

like image 965
snoofkin Avatar asked Jul 19 '11 18:07

snoofkin


2 Answers

Perhaps you can show a couple of images but it seems like template matching (perhaps with a distance transform) seems like an ideal candidate to your problem.

like image 81
carlosdc Avatar answered Sep 28 '22 13:09

carlosdc


Perl? I'd have suggested using OpenCV with python or C since you're on the Linux platform.

You could check out SURF and SIFT (explains how to do this with OpenCV and C++ with code attached) which can do decent template matching (logos, etc.).

Text detection is a different kettle of fish, I'd suggest Robust Text Detection in Natural Images with Edge-enhanced maximally stable extremal regions paper which is the latest I've seen that does robust text detection from natural scenes without becoming overly intricate.

Training a neural network with the expected patterns seems to be the best way all-round, though the training process will take a long time. Actual identification is almost real-time though.

Here's a discussion on MSER implementation in two libraries: a) OpenCV, b) VLfeat

like image 43
AruniRC Avatar answered Sep 28 '22 15:09

AruniRC