Accurately recognizing the total bill amount from scanned bills/inovice images.
Data set included for this task consists of 600 scanned bills / invoices in PNG format, all of them labeled with the final total value of each bill.
- sample_invoice.json
Or
{"total": "1748.40"}
- All result in a single file
{ "file_name" }
A user should be able to upload/submit a set of images consisting of invoices and get the total value of submitted invoices. (Developing upload/submit functionality is not a must. Copying a set of images to a source directory is acceptable).
We are expecting existing OCR image-to-text extraction methods and implementations, to be re-used to extract the features from the images
Eg:
After extracting features from the images we are expecting a machine learning model to predict the total amount of the bill.
Build a machine learning model to process a given set of images of invoices and extract the Total amount of each invoice separately.
As a pre-processing step you are expected to overcome following challenges in the data set
- Images are not in the same resolution
- Images will have different orientations and sizes
- Some images could be partially damaged or might have poor ink quality
With pre-processing, its expected that existing OCR image to text extraction methods and implementations to be re-used to extract the features from the images and generate the input to the task of extracting total amount from the bill.
Apply the trained model on a validation dataset and produce and present the results.
Output should be in the following format as a CSV saved to output file. Output should be logged to console in following format (No need to draw a table. Output should be well formatted).
File name | total |
---|---|
Invoice_1.jpg | 32 |
Invoice_2.jpeg | 97 |
Grand Total | 129 |
-
All teams should share a working source code with one of the following method
- Link to public github repository (Preferred)
- ipython notebook if you are using Jupyter
- Kaggle notebook
- Google Colab notebook
- Any other resource
-
Explain methods used for pre-processing data
-
Explain the Model/s used, and reason to select the particular model.
-
Result from validation dataset
-
Reason out the results with evaluation matrices : eg : F1 scores , confusion matrix
A new set of files (excluding the given training set) will be used to evaluate the prediction accuracy.
- Accuracy (70% Total)
- A working, reusable model with high precision (40%)
- Implementation of functional requirements (10%)
- Pre-processing of data (10%)
- Code quality (10%)
- Readability
- Best practices
- Presentation (10%)
- Method explanation
- Identified challenges
- Compare the results with ground truth
- Q & A (20%)
Modern Financial Accounting Systems can save a lot of manual labor and discrepancies which occur due to manually entering data from printed invoices and receipts It will help to drastically speed up the supply chain processes as well.
Accounts department receives diverse types of invoices for claims. Scanning through excessive amounts of invoices take up a lot of time of employees. The bills are received as PDFs and various image types. The accounts department is thinking about freeing up employee hours by automating the process of calculating total amount of the given set of bills. An example use case is given below.
Petty cash are minor expenses incurred in organisations/teams when conducting their regular day-to-day work (e.g.: buying a marker, short eats etc.). These are done via bills, which need to be manually calculated by accountants and process for final payments at the end of the month. This system can categorise these bills and identify the types of payments incurred, whether the allocated budget is overused by a team and much more. This eliminates the manual process of reading bills and calculating the final payable amount.
Mobile applications helping to manage personal expenses are becomeing popular, most of them support the functionality of scanning the bills/invoices and updating them in the accounts management software automaitcally.