Giter Club home page Giter Club logo

ocrflow's Introduction

OCRFLOW

OCRFLOW est une plateforme polyvalente conçue pour le benchmarking des pipelines OCR (Optical Character Recognition) et des plateformes de detection d'objets. Elle offre une solution complète on-premise, installable sur un serveur, conçue pour évaluer les performances et la précision des systèmes de reconnaissance de caractères ainsi que des systèmes de détection d'objets, le tout à l'aide d'une architecture flexible et évolutive.

Architecture OCRFLOW

YOUR-ALT-TEXT

Philosophie

OCRFLOW est un assemblage de solutions agencées pour gérer le benchmark, l'inférence, l'entrainement de modéles de computervision. A terme la porte d'entrée de la plateforme sera l'API.

Inférence

Pour le moment l'inférence temps-réel n'est pas prévue, le scénario d'inférence est asynchrone et fonctionne par passage d'url de l'image à l'API, en choisissant le modéle adapté, stocké au préalable dans la solution de stockage objet MINIO. L'image est processée par un consumer inscrit sur une queue rabbitmq dédiée.

Benchmark

Le benchmark peut être réalisé par passage d'url ou par passage de bucket MINIO. Les métriques sont déclarées dans l'API (Accuracy, Recall, FPS, Mémoire, etc ...), ainsi que le modéle, le consumer doit renvoyer ses spécifications pour une analyse équitable.

Training

Le training se fait par déclaration de bucket, avec déclaration des métriques triggers accuracy, nombre d'épochs etc ... Le modéle issu de l'entrainement est ensuite stocké dans MINIO.


Déploiement

To deploy this project run

  git clone --branch dev https://github.com/hackolite/ocrflow.git
  cd ./ocrflow/infrastructure/apiQ
  docker-compose up --build apiQ
 

Référence apiQ

Get all items

Méthode Endpoint Tag Description Niveau d'Achèvement
GET /inference inference Get all Inference Jobs Vert Not Complete
POST /inference inference Create Inference Vert Complete
GET /inference/findByStatus inference Find Inferences by status Vert Not Complete
GET /inference/findByTags inference Find Inferences by tags Vert Not Complete
GET /inference/{jobId} inference Find Inference job by jobId Vert Not Complete
PUT /inference/{jobId} inference Updates Inference by jobId Vert Not Complete
DELETE /inference/{jobId} inference Delete Inference by jobId Vert Not Complete
GET /benchmark benchmark Get all Benchmark Jobs Vert Not Complete
POST /benchmark benchmark Create a benchmark Vert Not Complete
GET /benchmark/{jobId} benchmark Get Benchmark by jobId Vert Not Complete
DELETE /benchmark/{jobId} benchmark Delete Benchmark by jobId Vert Not Complete
GET /training training Get all Training Jobs Vert Not Complete
POST /training training Create a training Vert Not Complete
GET /training/{jobId} training Get Training by jobId Vert Not Complete
DELETE /training/{jobId} training Delete Training by jobId Vert Not Complete
GET /manage/exchange manage Manage Exchanges Rouge Not Complete
GET /manage/queues manage Manage Queues Rouge Not Complete
GET /manage/datasets manage Manage Datasets Rouge Not Complete
GET /manage/models manage Manage Models Rouge Not Complete
GET /status/jobs status Get all Jobs Status Vert Complete
GET /status/consumers status Get All Consumers Status Vert Not Complete
GET /status/jobs/{jobId} status Get Job by jobId Vert Not Complete
GET /status/consumers/{nodeId} status Get Consumer by nodeId Vert Not Complete
GET /metric/ metric Get All Metrics Rouge Not Complete
GET /metric/{jobId} metric Get Metrics by jobId Vert Not Complete
POST /user user Create user Vert Not Complete
POST /user/createWithList user Creates list of users with given input array Vert Not Complete
GET /user/login user Logs user into the system Vert Not Complete
GET /user/logout user Logs out current logged in user session Vert Not Complete
GET /user/{username} user Get user by user name Vert Not Complete
PUT /user/{username} user Update user Vert Not Complete
DELETE /user/{username} user Delete user Vert Not Complete

Authors

Badges

Add badges from somewhere like: shields.io

MIT License GPLv3 License AGPL License

Color Reference

Color Hex
Example Color #0a192f #0a192f
Example Color #f8f8f8 #f8f8f8
Example Color #00b48a #00b48a
Example Color #00d1a0 #00d1a0

Contributing

Contributions are always welcome!

See contributing.md for ways to get started.

Please adhere to this project's code of conduct.

Demo

Insert gif or link to demo



## License

[MIT](https://choosealicense.com/licenses/mit/)




## Roadmap

- Endpoints design and implementation

- Develop relevants queues from start 

- Scenario Development

- Micropython and rust consumer implementation


## Tech Stack

**Client:** mlflow, pytorch, pika

**Server:** flask, rabbitmq, minio, mlflow  


## Used By

This project is used by the following companies:

- Xretail

ocrflow's People

Contributors

hackolite avatar

Stargazers

 avatar Quentin Aupetit avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.