Jump to: navigation, search

Difference between revisions of "OCR"


 
(18 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
'''O'''ptical '''C'''haracter '''R'''ecognition, abbreviated as OCR, is the automatic text recognition using a respective algorithm on an image (originating from a live camera feed, for example).
 
'''O'''ptical '''C'''haracter '''R'''ecognition, abbreviated as OCR, is the automatic text recognition using a respective algorithm on an image (originating from a live camera feed, for example).
  
{{UBIK Client}}s are capable of OCR for the sake of identifying objects ({{Version/AndroidSince|2.5.0}}).
+
{{UBIK Client}}s are capable of OCR for the sake of identifying objects.
  
 
== Preconditions ==
 
== Preconditions ==
* On '''Android''' devices, the {{UBIK}} SmartClient app providing the OCR scanner has to be installed.
 
* For Android, {{UBIK}} objects to be found by OCR tag have to be classified as such, using the [[SYSCLS_OBJECTWITHOCRTEXT|Object with OCR Text Classification]].
 
<br/>
 
{{
 
Attention|The {{UBIK}} SmartClient and its OCR scanner are still in an early development state. Don't expect the feature to be perfect yet!
 
}}
 
  
* For the '''Windows 8''' client until version 2.4.3, the optical code classification must be used instead. In later versions, the same classification as for Android will be used.  
+
Up till version 2.4.3, the optical code classification must be present on objects in order for them to be found. In later versions, the classification [[SYSCLS_OBJECTWITHOCRTEXT|Object with OCR Text Classification]] must be used. Up till version 4.7, the object to be found has to be available on the device, since online search currently is not enabled for this feature.
* The object to be found has to be available on the device, since online search currently is not enabled for this feature.
+
  
== Usage ==
+
=== Offline search ===
=== {{UBIK}} Android ===
+
In any case (regardless of the network connection and sync mode), {{UBIK}} always goes through all suitable objects (carrying [[SYSCLS_OBJECTWITHOCRTEXT]]) currently available on the device and finds the ones that match the scanned results.
The navigation drawer provides a ''Scanning'' element, which has a sub-item ''OCR'' ({{Version/AndroidSince|2.5.0}}).
+
 
Clicking on it will start the OCR scanner and if a tag has been recognized successfully, the scanner will automatically close and show the result in a list.
+
=== Online search {{Version/WinXSince|4.7}}{{Version/XamarinSince|4.7}} ===
If the scanner doesn't find anything, a click on the screen will close it (without showing results).
+
When the Internet is available, {{UBIK}} is not running under offline mode and there is an online query carrying [[SYSCLS_OCRSCANQUERY]] in the infrastructure, the search result is enhanced by online search. This means any objects that match the scanned results can be found even if they don't yet exist locally.
 +
 
 +
Unlike some other types of scan (e.g. [[RFID_tags|RFID]]), OCR scan often produces very volatile/unstable results continuously. Therefore, {{UBIK}} requires a user confirmation before triggering online searches which are costly compared to offline searches. After confirming the current scanned OCR text, there is also the possibility to manually correct it before the search.
 +
 
 +
==== UI and customizability ====
 +
When OCR scan is turned on, you will find additionally a text input field as well as two buttons in the scan page.
 +
* One button allows you to confirm the current scanned OCR text and display it in the text input field.
 +
* One button allows you to trigger a search (offline & online when applicable) using the confirmed OCR text.
 +
* One text input field displays the confirmed OCR text and also allows you to manually change/correct that text.
 +
 
 +
{{Hint|The standard UI described above is fully customizable. The implementations can be found in UBIKScanAreaFlyout.xaml (WinX/UWP) and UBIKScanArea.xamlx (Xamarin).}}
 +
 
 +
The relevant properties of the data context (ScanViewModel) include the following.
 +
* ScanResult.Value: The text value of the current OCR result. This constantly updates as you scan.
 +
* ConfirmedScanResult.Value: The text value of the confirmed OCR result. This does not update by itself and should be set/changed explicitly through user input or UI customizing.
 +
* ProcessConfirmedMarkerCommand: The command to trigger a search (offline & online when applicable) using ConfirmedScanResult. If the latter is not yet set, the command does nothing.
 +
* FirstScanResult: The first OCR scan result in the current scan session. Unlike ScanResult, this no longer updates after the very first value is set. This is useful when you want e.g. a behavior to automatically confirm the first scan result.
  
 
== See also ==
 
== See also ==
 +
* [[HowTo:Make an Object be found by OCR Text|Make an Object be found by OCR Text]]
 
* [[HowTo:Configure_Start_Screen_Content|Configurable start screen button for OCR]]
 
* [[HowTo:Configure_Start_Screen_Content|Configurable start screen button for OCR]]
 
* [[SYSCLS_OBJECTWITHOCRTEXT]] (Classification)
 
* [[SYSCLS_OBJECTWITHOCRTEXT]] (Classification)
 +
* [[SYSCLS_OCRSCANQUERY]] (Classification)
  
[[Category:Android|OCR]]
+
[[Category:Client|OCR]]

Latest revision as of 15:47, 20 March 2024

Optical Character Recognition, abbreviated as OCR, is the automatic text recognition using a respective algorithm on an image (originating from a live camera feed, for example).

UBIK® Clients are capable of OCR for the sake of identifying objects.

Preconditions

Up till version 2.4.3, the optical code classification must be present on objects in order for them to be found. In later versions, the classification Object with OCR Text Classification must be used. Up till version 4.7, the object to be found has to be available on the device, since online search currently is not enabled for this feature.

Offline search

In any case (regardless of the network connection and sync mode), UBIK® always goes through all suitable objects (carrying SYSCLS OBJECTWITHOCRTEXT) currently available on the device and finds the ones that match the scanned results.

Online search

When the Internet is available, UBIK® is not running under offline mode and there is an online query carrying SYSCLS OCRSCANQUERY in the infrastructure, the search result is enhanced by online search. This means any objects that match the scanned results can be found even if they don't yet exist locally.

Unlike some other types of scan (e.g. RFID), OCR scan often produces very volatile/unstable results continuously. Therefore, UBIK® requires a user confirmation before triggering online searches which are costly compared to offline searches. After confirming the current scanned OCR text, there is also the possibility to manually correct it before the search.

UI and customizability

When OCR scan is turned on, you will find additionally a text input field as well as two buttons in the scan page.

  • One button allows you to confirm the current scanned OCR text and display it in the text input field.
  • One button allows you to trigger a search (offline & online when applicable) using the confirmed OCR text.
  • One text input field displays the confirmed OCR text and also allows you to manually change/correct that text.
IC Hint square.pngThe standard UI described above is fully customizable. The implementations can be found in UBIKScanAreaFlyout.xaml (WinX/UWP) and UBIKScanArea.xamlx (Xamarin).

The relevant properties of the data context (ScanViewModel) include the following.

  • ScanResult.Value: The text value of the current OCR result. This constantly updates as you scan.
  • ConfirmedScanResult.Value: The text value of the confirmed OCR result. This does not update by itself and should be set/changed explicitly through user input or UI customizing.
  • ProcessConfirmedMarkerCommand: The command to trigger a search (offline & online when applicable) using ConfirmedScanResult. If the latter is not yet set, the command does nothing.
  • FirstScanResult: The first OCR scan result in the current scan session. Unlike ScanResult, this no longer updates after the very first value is set. This is useful when you want e.g. a behavior to automatically confirm the first scan result.

See also