Libraries for Mobile Vision
In this small article contains the most common libraries that you can use for rapid development and writing of applications for recognition.
There are three options:
- Using a ready-made library, and feed it the images
- Use some kind of API or to make a recognition on the server
- To write a library for OCR
Take the library and feed her pictures
Nothing complicated, because there are lots of libraries for this purpose, but some are better and others worse. Here some libraries:
Tesseract
This library is written in C++. And it is not because cool. On the Internet a lot of articles praising this library, but the syntax is simple and convenient, but on personal experience verified that it is terrible. So explain why: mobile devices have restrictions on CPU usage, and if you feed it in a good resolution of the phone is the most intriguing moment, and there have even multithreading doesn't help, it not adapted to mobile, the accuracy of recognition — the bottom, if half will understand — good. If someone does not believe — you can check yourself it will take not more than an hour.
Tesseract library comes with a handy command-line tool called tesseract. We can use this tool for optical image recognition, and the output data is saved in a text file. If we want to integrate Tesseract into our C ++ or Python code, we will use the Tesseract API.
OpenCV
Good and it is a working library, I had to recognize rectangles, and it is quite coped with the task. A lot of tutorials, the syntax is simple, nothing extra.
OpenCV (Open Source Computer Vision Library) library of open source software for computer vision and machine learning. OpenCV was created to provide a common infrastructure for computer vision applications and to accelerate the use of machine perception in commercial products. Being a BSD-licensed product, OpenCV makes it easy for businesses to utilize and modify the code.
The library has more than 2500 optimized algorithms, which include a complete set of both classical and advanced algorithms of computer vision and machine learning.
It has interfaces for C ++, Python, Java and MATLAB and supports Windows, Linux, Android, and Mac OS. OpenCV tends mainly to real-time visualization applications and uses MMX and SSE instructions when available.
Google mobile vision
Recognizes text, detects faces, emotions reads QR codes. Most importantly, low hardware requirements. Written for mobile. I liked the fact that you can attach a camera, and not take a picture and display the results, and immediately, on the scanning data stream from the camera, recognize, and draw things on top of the camera based on the results and FPS subsidence is not observed. But another important criterion is accuracy, here it is about 95%. True, there are downsides. Last month, Google released the version of the gaming services Bagan, and OCR on many devices did not work - there was a failure, but now everything seems ok.