Mobile OCR Engine. Frequently Asked Questions

Why do I get “License info is invalid” error message?

In general, this issue may occur if the name or the path to the license that you specify in your code does not match the actual name or the actual path to the license that you added to your project.

To fix the problem, please, make sure that specified name and path match the actual ones. Take into account that these parameters are case-sensitive.

How to import Android sample into Android Studio?

The instructions on how to import Android sample of Mobile OCR SDK into Android Studio are available in ABBYY Knowledge base >>

How to set the necessary recognition language?

In case you use Android wrapper

  • Set recognition languages with the help of the setRecognitionLanguages method of the RecognitionConfiguration class. You can specify as many languages as you need, but please take into account that selecting several recognition languages may decrease the recognition accuracy. ABBYY recommends to use not more than 2 recognition languages.
  • Add necessary Patterns and Dictionaries (files corresponding to selected languages) into the resources of your application

In case you use iOS wrapper

  • Specify the recognition language in the recognitionLanguages property of the CMocrRecognitionConfiguration class. You can specify as many languages as you need, but please take into account that selecting several recognition languages may decrease the recognition accuracy. ABBYY recommends to use not more than 2 recognition languages.
  • Add necessary Patterns and Dictionaries (files corresponding to selected languages) into the resources of your application

In case you use Native (C++) library for Android/iOS

  • Pass recognition languages as an array of TLanguageID constants to the FineRecognizeImage function. You can specify as many languages as you need, but please take into account that selecting several recognition languages may decrease the recognition accuracy. ABBYY recommends to use not more than 2 recognition languages.
  • Add necessary Patterns and Dictionaries (files corresponding to selected languages) into the resources of your application

For more information, please, see the Help file (articles “Guided Tour→How to use the Native Library”, “Guided Tour→How to use the Android Wrapper” and “Guided Tour→How to use the iOS Wrapper”).

How to make Mobile OCR Engine recognize upside-down images?

In case you have no possibility to rotate the image before passing it to Mobile OCR Engine you can turn on “Detect text orientation” option. This option specifies whether the page orientation should be detected by Mobile OCR Engine, so the portrait or landscape page orientation will be detected and the orientation of the image will be corrected if needed. The way to turn on the option depends on the library version you are using:

In case you use Android wrapper

  • Set the DETECT_PAGE_ORIENTATION flag for ImageProcessingOptions object which you pass to the RecognitionConfiguration class.
  • More information can be found in the Help file: articles “Android Wrapper→ RecognitionConfiguration Class” and “Android Wrapper→ RecognitionConfiguration→ ImageProcessingOptions Class”.

In case you use iOS wrapper

  • Use the imageProcessingOptions:MIPO_DetectPageOrientation setting.
  • More information can be found in the Help file: articles “Wrapper for iOS→ Enumerations→ TMocrImageProcessingOptionsFlags” and “Wrapper for iOS→ Classes→ CMocrRecognitionConfiguration Class”.

In case you use Native (C++) library for Android/iOS

  • Set FIPO_DetectPageOrientation flag for imageProcessingOptions parameter passing to FineRecognizeImage function.
  • More information can be found in the Help file: articles “Native Library API Reference→ Enumerations→ TFineImageProcessingOptionsFlags” and “Native Library API Reference→ Functions→ FineRecognizeImage Function”.

How can I improve recognition of small text?

  • Low image resolution may be the reason of the poor recognition quality. Usually smartphone’s cameras allow taking pictures with resolution 72 or 96 dpi. But it’s not enough for accurate text recognition. In case of such low image resolution Mobile OCR Engine cannot detect small text on the image. For accurate recognition the images must confirm the following requirements:
    • the letters' size must be 2 to 20 mm, and not less than 10 pixels on image
    • the best resolution for texts printed in fonts 10 pt or larger is 300 dpi
    • the best resolution for texts printed in fonts 9 pt or smaller is 400-600 dpi
  • In case you have no possibility to produce images with high resolution, you can specify the necessary resolution value in the recognition settings:
    • in case you use Android wrapper
      • Use setImageResolution method of RecognitionConfiguration class
      • For more information see the Help file: article “Android Wrapper→ RecognitionConfiguration→ setImageResolution Method of RecognitionConfiguration Class”
    • in case you use iOS wrapper
      • Set imageResolution property for CMocrRecognitionConfiguration class
      • For more information see the Help file: article “Wrapper for iOS→ Classes→ CMocrRecognitionConfiguration Class”
    • in case you use Native (C++) library for Android/iOS
      • Set Resolution for CFineImage you are processing
      • For more information see the Help file: articles “Native Library API Reference→ Structures→ CFineImage Structure”, “Native Library API Reference→ Structures→ FineLoadImageFromFile Function” and “Native Library API Reference→ Structures→ FineLoadImageFromInputStream Function”

How to create custom recognition language?

ABBYY Mobile OCR Engine allows customers to recognize images with custom dictionaries.

Custom dictionaries are useful in case you need to recognize some specific data (for example, telephone numbers or email addresses) or texts containing unusual vocabulary (for example, technical or medical terms). Custom dictionaries allow limiting the alphabet which will be used for recognition and also “teach” Mobile OCR Engine to understand new specific terms.

To create custom dictionary you need to contact technical support:

Region Technical Support Contact
North/Central Americas Customers from USA, Canada, Japan, Mexico or other Central American countries, please contact ABBYY North American Headquarters at dev_support@abbyyusa.com
Western Europe Customers from Austria, Benelux, Denmark, France, Germany, Italy, Ireland, Norway, Portugal, Spain, Sweden, Switzerland, the United Kingdom or other Western European countries, please contact ABBYY European Headquarters at TechSupport_eu@abbyy.com
Eastern Europe and the Mediterranean Customers from Ukraine, Moldova, Turkey, Israel or Eastern European countries, please contact ABBYY Eastern European Headquarters at engine_support@abbyy.ua
All other regions Customers from the countries not mentioned above, please contact ABBYY International Headquarters at SDK_Support@abbyy.com

Related Articles

  • No tags, yet