I'm fairly familiar with android application developpement and have created quite a few apps within Android-Studios. Now I'd like to do an app wich can detect a A4 paper in an image and read it's content. Can you name me a couple of libraries/API's? I've checked out OpenCV and Vuforia, but couldn't find something with this particular problem.
Thanks alot!
The best (free) possibility for OCR (Optical Character Recognition) would be Tesseract Engine.
Please note however, that you'll need some background in image processing to get reasonable results.
There are libraries that do the preprocessing for you, but most of them are commercial projects.
Related
I want to make an app of image recognition and i need help of where to start. What i need is someone to explain me these few things
Wich offline libraries are the best to use with xamarin for image processing
in case more performance is needed, best libraries for Image processing iOS and Android to work them separately.
It does not matter if the library is in C or C++ what i want is documentation to follow
My idea of best is.
Well documented.
Easy to implement on the platforms xamarin or individually
The main functions i am looking for are for object recognition in an image NOT at runtime with camera
Also i want to add if is there any well document of fundamentals of image procesing and edge detection.
Thanks
Depends on what you want to do - image detection is a big topic.
A couple of places to start are:
Microsoft cognitive services
https://blog.xamarin.com/performing-ocr-for-ios-android-and-windows-with-microsoft-cognitive-services/
This is an on-line service and can do OCR, facial recognition, even describing what is in an image.
OpenCV
This is a fully featured computer vision library available in C++ with iOS and Android wrappers you can bind to use form Xamarin.
http://opencv.org
I'm working on android application and it should allow users to take photos using camera and the application reads the text and numbers in the photo.
I don't know where to start from android studio. is there any good suggestion on github that could help me???
thanks in advance.
As others said OpenCV or OCR is the way to go.
Google maintains one OCR library called as "Tesseract" (reminds me of Avengers :P).
To make the job little easier there is a fork of Tesseract called as Tess-Two
It combines some other useful tools like Leptonica (image processing library). Build instructions are given on the Readme file.
To get started you can check out very easy to use OCR library
Easy OCR Library Android which uses Tess-Two under the hood.
Again usage instructions are in the Readme file. It is already built so you don't need to build Tess-Two.
You can try to use OpenCV library. Its abbreviature is Open Computer Vision Library. It has a reputation similar to OpenGL. There must be articles about yor issue in which library is ised. It can be linked static or dynamic using runtime application called OpenCV Manager (available in Google Play). You can use it both in Java and C++ code. Hope, it helps
PS i have an own example of it use.
https://github.com/androidovshchik/ProhibitingSignDetector
i could give suggest about how i would do that if i needed to .
first of all you need to photo the picture only black and white .
then cheack the min black pixels in row that will define a letter .(you dont want any shadow to recognize as potential letter.
try and learn progress (any camera have diffrent resulution so it need to be some % of the picture row pixels.)
after that evrey letter have diffrent shape so you need to do for loop 5 times in diffrent angel until you get to the third gap of black rows.
after that some huge switch and if to get to the right letter need to do big research about the gap inside the letter proportion.
to have a little dataBase could help if you wanted to get more then one font .
again i not sure its the right way but that what i would do.
have fun :)
You may try to find some Optical Character Recognition (OCR) library for Java
Check Java OCR, tess-two, Aprise. And explore stackoverflow searching other OCR solutions.
Implementing your own OCR lib may be very difficult so think is it really necessary for your task.
Recently I made a simple Tesseract app with tess-two for android.
But the numbers I get from the image is terrible and I would need some help with making traineddata for android. Or if possible are there a good traineddata for numbers that I can download ?
I believe looking at these two links are worth the merit and that they will certainly bring you closer to an answer. Additionally I do not believe that there is any trainingdata particularly for numbers floating around online somewhere (As I have not found them myself). The links:
https://groups.google.com/forum/#!topic/tesseract-ocr/zOPKly6ymbA
https://code.google.com/p/tesseract-ocr/wiki/FAQ#How_do_I_recognize_only_digits
and this link especially
Training Tesseract on Android
Right now I'm making an OCR app using Android OCR rmtheis(https://github.com/rmtheis/android-ocr) as a scaffold.
However, I'm far from satisfied.
My main issues:
It returns only a fraction of the containing characters correct when scanning ultra-tiny texts with a few different fonts with
irrelavant clutter such as images and barcodes included (from a
product manual in this case).
The autofocus is looping in a way that if you press the camerabutton when the image is as it's sharpest shape, you might be
0.02 seconds too late and scan the blurry image. So I prefer an autocapture when text is included in the selected view.
Is there any high quality OCR solutions for Android that can capture tricky and small text and getting it all correct almost every time?
Just to clarifie: I use tesseract(tess-two) already through the android-ocr project
On another note: It needs to return close to 100% correct results almost everytime. No language support required, Im only going to use it to catch codes such as 842EAB842EAB842EAB84?2EAB842EAB842EAB with irrelevant english text besides it. Therefore, I need no language support at all.
Edit: This seems to be what I'm looking for:
http://www.abbyy.com/mobileocr/features/
Is there any solution with even higher quality output than Abbyy?
I've also been researching for high quality and free OCR solutions for Android, and finally I've chosen tess-two fork in one of my projects because other options had more disadvantages than advantages. As #realkarim says, it's not 100% accurate but the results are optimal.
Link for an OCR example using tess-two
Try it and comment us your experience ;)
Well, a year ago I was planning to create an Android application in which I needed an OCR, first of all and I'm sorry to say that but you won't find a free "high quality OCR solutions for Android" :/ I used tess-two which is the best free OCR available for android but still it wasn't 100% accurate, probably if I had more time I could add some image processing to enhance the output.
link for the OCR:
https://github.com/rmtheis/tess-two
an example of a running application using it:
http://www.youtube.com/watch?v=Ho5DyK1hKdw
my application:
http://www.youtube.com/watch?v=2PRQo7EWYd8
try it, and add some image processing to the image before using the OCR if you can :)
i am upto recognizing the eye in an image (which is opened).The image is taken by the camera Activity in a tablet.By webservice i could connect it to postgres.But i dont know how i should consider those images to identify the eyes.when i searched i came across OpenCV but im new to it..is there any particular algorithm (name) to identify the eye..when i searched they said its possible in android with the help of opencv by simply importing some packages..but i dont know how to start and from where..can any one plz help me..Something supporting android will be helpful..
If my understanding is correct, there are few differences between the CV4Android library and the OpenCV C++ library. In addition, C++ code can be used by using the Native Development Kit for Android.
With that being said, OpenCV has a C++ tutorial that uses Cascade Classifiers to identify an individual's face and eyes and places a circle around each one of the eyes and a larger circle around the head.
The tutorial can be found here.
Edit: If you're looking for more information on the CV4Android and OpenCV C++ libraries, I'd recommend reading the reply to this question. Hope that helps.