Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
August 26, 2022 07:11 am GMT

Fin PEN: An AI-powered receipt image analysis app

Overview of My Submission

Fin PEN is an AI powered fintech app used to analyze customer invoice receipt images in realtime, allowing business owners to better understand client spending habits.

The app receives customer invoice receipt images in realtime, captures the receipt's data, and analyses the captured results to better understand customer spending habits.

Fin PEN's system architecture is split into 3 core units, image, analysis and storage.

The app uses Redis' queuing system to receive, track and process requests and RedisJSON to store the analyzed data.

Fin PEN's system design looks like below.

Fin PENs System Design Architecture:

Fin PENs System Design Architecture

Fin PENs UI.

Fin PENs UI

Fin PENs Graph UI.

Fin PENs Graph UI

Fin PEN in Film

How Fin PEN works:

Fin PEN's system architecture is split into 3 core units, image, analysis and storage. The app uses Redis' queuing system to receive, track and process requests and RedisJSON to store the analyzed data.

A client takes a picture of their invoice receipt and uploads it to the app. The app receives the image upload and captures the receipt's data. The data captured is added to Redis' queuing system where it awaits processing. After the processing is complete the analyzed data is stored into the RedisJSON database.

The data analyzed is then retrieved from the RedisJSON database and a graph is plotted to depict client spending habits, for example on what days the client spent the most amount of money and on what product.

Fin PEN is an acronym for Financial Payment Integration Network (Fin PEN).

Running the app:

Download or clone Fin PEN: https://github.com/VakinduPhilliam/FinPEN

Install Node.JS, Redis, and Memurai (For Windows Users) on your PC.

Install Python3 (And install python dependencies, OpenCV (CV2) and PyTesseract).

Install Pip8 or greater (for managing python dependency installations).

Install Tesseract (used for image text extraction). Also go to your routes/analyzer.py file and update the pytesseract configuration variable pytesseract.pytesseract.tesseract_cmd to reflect where the tesseract files are installed and located on your PC.

Unzip the Fin PEN project and install the NPM dependencies.
In the command line terminal of the project folder, install npm dependencies.

npm install

Then install python dependencies (Make sure to have pip8 or greater installed).

npm run pyinstall

Then run the project:

npm start

If the run was successful, you should see the message "Fin PEN started successfully on Port 6006" in your console.

Open your browser and visit 'http://localhost:6006'.

The Fin PEN User Interface will look like below.

Fin PEN User Interface:

Fin PEN User Interface

Upload Invoice Receipts for Analysis:

Now lets analyze an invoice receipt.

Take a photo of an invoice receipt, (or use one found inside the downloaded demos folder) and upload it to Fin PEN for analysis.
Fin PEN will start processing the receipt (this could take several minutes).

The Fin PEN app will capture its data, analyze the results and plot a graph displaying the results of the analysis.

The Fin PEN Graph of the analysis will look like below.

Fin PEN User Interface with Analyzed Data Graph:

Redis at work:

Fin PENs design architecture leverages the power of Redis queuing mechanism for efficiently managing processing requests and RedisJSON for data storage.

Queuing Requests

Fin PEN uses redis for queuing user upload requests. This ensures efficient management and processing of receipt photos uploaded to the system.

The redis queue worker implementation looks like below.

const queueWorker = new Queue('queue_worker', {    limiter: {        max: 5000, // Limit the queue to a maximum of 5000 jobs per 10 seconds        duration: 10000        },    redis: {        host: "127.0.0.1",        port: "6379",        password: ""      }    });

Handling Data

The data extracted from an individual invoice receipt image is in JSON format and will look something like below. Its the kind of data that is stored into the RedisJSON Database.

[{    "logs":{        "image":"0.20608087643787876.png",        "timestamp":"8/13/2022"        },    "results":{        "Price":4500,        "Tax":409,        "Total":4909        }}]

How Fin PEN stores data:

Fin PEN predominately uses the JSON.SET command to store data to RedisJSON.

await jsonCache.set(receipt:{receiptImageName}, {extractedReceiptJSONData});

E.g,

await jsonCache.set(receipt: 0.4213453345.png, [{"logs":{"image":"0.20608087643787876.png","timestamp":"8/13/2022"},"results":{"Price":4500,"Tax":409,"Total":4909}}]);

How Fin PEN reads data:

Fin PEN predominately uses the JSON.GET command to read data from RedisJSON.

await jsonCache.get(receipt:{receiptImageName}, {variableKeyword});

E.g

const value = await jsonCache.get(receipt: 0.4213453345.png, results);

Redis Performance:

The rate of read and write operations performed on the load per second is higher than when using plain JSON or other NoSQL databases. Also the average execution delay is minimized.

Submission Category:

Wacky Wildcards

Language Used

Node.js,
JavaScript,
Python.

Link to Code

Fin PEN (Financial Payment Elevation Network):

Fin PEN is an AI powered fintech app used to analyse customer invoice receipt images in realtime, allowing business owners to better understand client spending habits.

System Architecture:

Fin PEN's system architecture is split into 3 core units, image, analysis and storage. The system uses Redis' queuing system to receive, track and process requests and RedisJSON to store the analyzed dataA client takes a picture of their invoice receipt and uploads it to the app, the app receives the image upload and captures the receipt's data, the data captured is added to Redis' queuing system where it awaits processing. After the processing is complete the analyzed data is stored into the RedisJSON database. The data analyzed is then retrieved from the RedisJSON database and a graph is plotted to depict client spending habits.


Fin PEN System Design Architecture:

Fin PEN System Design Architecture


Fin PEN User

Additional Resources / Info

IMPORTANT!

Make sure to install Tesseract (used for image text extraction). Then go to your routes/analyzer.py file and update the pytesseract configuration variable pytesseract.pytesseract.tesseract_cmd to reflect where the tesseract files are installed and located on your PC.


Original Link: https://dev.to/vakinduphilliam/fin-pen-an-ai-powered-receipt-image-analysis-app-46di

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To