We need custom cordova plugin for both android and ios that would be able to:
1. OCR randomly formatted invoices from different retailers and extract key fields, such as
* retailer / issuer (name and ABN - australian business number - we have API for ABN lookup that you can use)
* service type (electricity, gas, phone, internet, etc)
* recipient name & address (service address)
* amount due
* due date
* any discounts applicable
2. provide instant user feedback as fields are recognised
* such as displaying all expected variable names/fields on the screen, and displaying values as they're recognised
* expected variables can change according to "service type"
3. return payload to the application (all "variable" names and values)
4. take an image (1 page or several) of entire invoice, to be uploaded into cloud
5. UI for the component to be easily adjusted/changed
6. help our internal developers with using the above plugin successfully in our app
Invoices will be from different retailers and for different services, such as:
* utilities: electricity, gas, water, phone, internet etc
* other: parking tickets, golf club membership fee etc
Invoices will be formatted in many different ways, and no templating (fixed positions etc) is to be used.
You will need to employ some AI / machine learning to recognise all different invoices and fields within them. Any patterns need to be outside of the source code (ie in the database)
* you might have a field "total" which can be any value under or next to "Total", or "Total Due" or "Total Amount Due" or....- those patterns to not be hardcoded, so it's easy to add more, if/when needed (manually or through machine learning)
* any suggestion on how to recognise which value belongs to which field are welcome, maybe prefixes and different "spellings" are not the right way to go.
We will own all the source code (for native components as well as for plugins).
Speed and accuracy of OCR are of the utmost importance, and feedback of any field recognised to be displayed on the screen and remained there until OCR completed. User should be able to click on the field recognised to either manually fix the value or remove the value to "re-scan" again.
We currently have a licence for Abbyy OCR engine, but you can use another engine, if it will give you better & quicker results (prior to consultation with us, as we need to see what the licence agreements for the engine are).
[url removed, login to view] has something similar, but only for fixed format documents/invoices, which is simple OCR and doesn't require machine learning. Yet it gives a visual idea of what we would like to accomplish.