I am trying to recognize the digital numbers in Android. I used OpenCV for image processing and OCR engine for Tessreact. But result is still poor.
I found about SSOCR form this. Therefore I would like to use SSOCR (Seven Segment Optical Character Recognition) in Android. It is written in C. Anyone suggests me the way how can I use SSOCR in my Android application OR is there any better way to recognize the digital numbers with tessreact.
Related
I need to recognize some text written on a postit. The text has no meaning, it is a succession of letters written in block capitals.
I inquired and discovered that it is a problem of localization of handwriting and then of recognition of the handwriting. There is google OCR, but those models only recognize English language phrases.
I leave you an example image:enter image description here
I would like that, for each postit, the text is recognized, so for the first postit: "769213" for the second "ALHSFP"
The Cloud Vision API is able to detect more than just "English language phrases". Try Google Translate; it can translate directly from camera input; Lens might also use the same. You could as well use TensorFlow Lite on Android. Keras is required for training models (won't run on Android).
For example:
https://cloud.google.com/vision/docs/handwriting
https://towardsdatascience.com/build-a-handwritten-text-recognition-system-using-tensorflow-2326a3487cd5
https://keras.io/examples/vision/handwriting_recognition/
The mere difference is, that the one requires a network connection, while the other doesn't.
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.
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 am new in OpenCV, image processing and also in Native language C/C++ for, and I would like to have some guides on where I should focus on in order to complete my task. I am developing an android application that can recognize the bent pins and circle/square the bent pins, for example the face recognition in openCV will "square" the human face once it was detected. The bent pins can be in defected in various different forms. I am using Eclipse ADT. Currently I had downloaded the Face recognition in OpenCV for android and I am analyzing it, and according to what I had discovered is that, it consist of an xml file, where it had been trained and is used for detection by the system. Now my questions are:
How can I train and generate the xml file?
What software should I use in order to train and generate the xml file?
What type of images do I need to retrieve in order to train the system/image requirements (eg, image of the bent pins from multiple angles)?
What is the best algorithm to achieve this?
According to my research I discovered that Face detection recognition is using Haar-like feature. What is the difference of Haar-like feature, cascade classifier and also artificial neural network? I am confused of the difference. Are they the same thing?
Thank you
1) 2) the pc-version of opencv comes with a tool named opencv_traincascade, this is used to generate the haar/hog/lbp xml-cascades off-line. (no, you don't run that kind of task on your smartphone)
3) 4) multiple(hundreds) images from your object, also even more negative (non-pin/background images)
5) haar cascades train on edge features like those:
so, here's the bummer: i seriously doubt, that your 'bent pins' come with enough 'edge features' for this.
I have successfully integrated tesseract into my android app and it reads whatever the image that I capture but with very less accuracy. But most of the time I do not get the correct text after capturing because some text around the region of interest is also getting captured.
All I want to read is all text from a rectangular area, accurately, without capturing the edges of the rectangle. I have done some research and posted on stackoverflow about this two times, but still did not get a happy result!
Following are the 2 posts that I made:
https://stackoverflow.com/questions/16663504/extract-text-from-a-captured-image?noredirect=1#comment23973954_16663504
Extracting information from captured image in android
I am not sure whether to go ahead with tesseract or use openCV
Including the many links and answers from others, I think it's good to take a step back and note that there are actually two fundamental steps to optical character recognition (OCR):
Text Detection: This is the title and focus of your question, and it is concerned with localizing regions in an image that contain text.
Text Recognition: This is where the actual recognition happens, where the localized image regions from detection get segmented character-by-character and classified. This is also where tools like Tesseract come into play.
Now, there are also two general settings in which OCR is applied:
Controlled: These are images taken from a scanner or similar in-nature where the target is a document and things like perspective, scale, font, orientation, background consistency, etc are pretty docile.
Uncontrolled/Scene: These are the more natural and in-the-wild photos, e.g. those taken from a camera, where you are trying to recognize a street sign, shop name, etc.
Tesseract as-is is most applicable to the "controlled" setting. And in general, but for scene OCR especially, "re-training" Tesseract will not directly improve detection, but may improve recognition.
If you are looking to improve scene text detection, see this work; and if you are looking at improving scene text recognition, see this work. Since you asked about detection, the detection reference uses maximally stable extremal regions (MSER), which has a plethora of implementation resources, e.g. see here.
There's also a text detection project here specifically for Android too:
https://github.com/dreamdragon/text-detection
As many have noted, keep in mind that recognition is still an open research challenge.
The solution to improving the OCR output is to
either use more training data to train it better
filter it's input using some Linear Filter (grayscaling, high-contrasting, blurring)
In the chat we posted a number of links describing filtering techniques used in OCRing, but sample code wasn't posted.
Some of the links posted were
Improving input for OCR
How to train Tesseract
Text enhancement using asymmetric filters <-- this paper is easily found on google, and should be read fully as it quite clearly illustrates and demonstrates necessary steps before OCR-processing the image.
OCR Classification