1 | initial version |
If you want a strong Recognition I would suggest you the nonfree Descriptors like SIFT and SURF (note the nonfree descriptors are patented but free for research). I was playing with SIFT a little bit on Android until now. There I made an app, where the user captures a photo of a Object or scene which should be recognized and tracked.
At the moment, I get a recognition in 1,5ms using FAST Corner Detection, Sift Description and BruteForceMatching.
Unfortunately you can't use them in plain Java. SIFT did't survive it into the latest OpenCV4Android SDK (AFAIK). So you have to use the android NDK and JNI with the OpenCV c++ library. If you want to know, how to build an connect it look at my Answer here.
Probably there are other possibilities to solve your Problem but SIFT for example is rotation, scale, transformation invariant, and can still recognize objects with a little reflection on it. And when your limit of processing is 2 or 3 seconds it will be good enough.
2 | No.2 Revision |
If you want a strong Recognition I would suggest you the nonfree Descriptors like SIFT and SURF (note the nonfree descriptors are patented but free for research). I was playing with SIFT a little bit on Android until now. There I made an app, where the user captures a photo of a Object or scene which should be recognized and tracked.
At the moment, I get a recognition in 1,5ms using FAST Corner Detection, Sift Description and BruteForceMatching.
Unfortunately you can't use them in plain Java. SIFT did't survive it into the latest OpenCV4Android SDK (AFAIK). So you have to use the android NDK and JNI with the OpenCV c++ library. If you want to know, how to build an connect it look at my Answer here.
Probably there are other possibilities to solve your Problem but SIFT for example is rotation, scale, transformation invariant, and can still recognize objects with a little reflection on it. And when your limit of processing is 2 or 3 seconds it will be good enough.
3 | No.3 Revision |
If you want a strong Recognition I would suggest you the nonfree Descriptors like SIFT and SURF (note the nonfree descriptors are patented but free for research). I was playing with SIFT a little bit on Android until now. There I made an app, where the user captures a photo of a Object or scene which should be recognized and tracked.
At the moment, I get a recognition in 1,5ms using FAST Corner Detection, Sift Description and BruteForceMatching.
Unfortunately you can't use them in plain Java. SIFT did't survive it into the latest OpenCV4Android SDK (AFAIK). So you have to use the android NDK and JNI with the OpenCV c++ library. If you want to know, how to build an connect it look at my Answer here.
Probably there are other possibilities to solve your Problem but SIFT for example is rotation, scale, transformation invariant, and can still recognize objects with a little reflection on it. And when your limit of processing is 2 or 3 seconds it will be good enough. Also I'm sure, that it would detect pictograms, but I'm not quite sure, how good it would work with words.
EDIT: Looking a Little bit through the Q&A here, I found a Question, where sb. wants to use Tesseract to detect Texts or Labels. And wanted to know, what preprocessing on the Image can be done to get a better Result