wQgo4d6Zf2i3yRcBE7moGKZwbkorrceyl2jXhXE8
wQgo4d6Zf2i3yRcBE7moGKZwbkorrceyl2jXhXE8
wQgo4d6Zf2i3yRcBE7moGKZwbkorrceyl2jXhXE8
Référence Dép. TI
AN 2023
N° DSI2305
Rapport de
PROJET DE FIN D’ETUDES
En vue de l’obtention de :
Licence Appliquée en Développement des Systèmes d’Information
« DSI »
Elaboré par :
Mossab Weda
&
Mohamed Nour Bensalah
Encadré par :
Effectué à :
Ce petit exploit est la conséquence de tous les sacrifices que tu as faits pour mon éducation
et mon développement, mon père Ezzedine Bensalah. Je tiens à vous exprimer ma gratitude
pour ton amour, ta générosité et ta compréhension.
Mounira, ma mère bien-aimée, tes encouragements ont été une lumière qui m'a guidé tout au
long de mon parcours. Aucun travail ne pourra jamais refléter l'amour, l'estime et le respect que
j'ai pour toi.
J'espère que ce travail sera un cadeau de gratitude à mes merveilleux frères et sœurs,
Moetez, Manel et Mariem, pour tous nos souvenirs d'enfance que nous avons eus. Vous avez
toujours été là pour moi, me réconfortant et m'encourageant. Que Dieu vous garde en sécurité.
Aucun mot ne peut exprimer pleinement ma gratitude envers toute la famille Bensalah pour
son soutien et ses encouragements. Je vous dédie ce travail en remerciement de l'amour et de
l'attention que vous me témoignez régulièrement. Que Dieu Tout-puissant vous protège et vous
accorde santé et bonheur.
À mes chers amis, les mots me manquent pour décrire mes sentiments et mes pensées à votre
égard. Vous êtes les plus proches et les plus mignons de moi. Je vous souhaite santé et bonheur
dans votre vie.
Ce petit exploit est la conséquence de tous les sacrifices que tu as faits pour mon éducation
et mon développement, Adnen Weda. Je tiens à t'exprimer ma gratitude pour ton amour, ta
générosité et ta compréhension.
Rim, ma mère bien-aimée, tes encouragements ont été une lumière qui m'a guidé tout au
long de mon parcours. Aucun travail ne pourra jamais refléter l'amour, l'estime et le respect que
j'ai pour toi.
J'espère que ce travail sera un cadeau de gratitude à mon merveilleux frère Souhaib pour
tous nos souvenirs d'enfance que nous avons eus. Tu as toujours été là pour moi, me réconfortant
et m'encourageant. Que Dieu vous garde en sécurité.
Aucun mot ne peut exprimer pleinement ma gratitude envers toute la famille Weda pour son
soutien et ses encouragements. Je vous dédie ce travail en remerciement de l’amour et de
l’attention que vous me témoignez régulièrement. Que Dieu tout-puissant vous protège et vous
accorde santé et bonheur.
À mes chers amis, les mots me manquent pour décrire mes sentiments et mes pensées à votre
égard. Vous êtes les plus proches et les plus mignons de moi. Je vous souhaite santé et bonheur
dans votre vie.
Mossab Weda
Remerciements
C'est avec grand plaisir que nous exprimons notre profonde gratitude et notre
appréciation à tous ceux qui ont contribué directement ou indirectement à l'élaboration de ce
travail.
De plus, nous aimerions exprimer notre reconnaissance envers Mr Jason Li pour son
soutien et ses conseils inestimables tout au long de notre stage.
Enfin, nous tenons à remercier les membres du jury pour leur intérêt envers notre travail
et leur engagement à l'évaluer, ainsi que tous les enseignants de l'Institut supérieur des études
technologiques de Bizerte pour leur dévouement tout au long de nos années universitaires.
Table des matières
Introduction Générale ............................................................................................................ 1
INTRODUCTION .............................................................................................................................................. 4
I. PRÉSENTATION DE L’ORGANISME D’ACCUEIL........................................................................................ 4
II. PRÉSENTATION DU PROJET .................................................................................................................... 5
II.1. Étude de l’existant ...................................................................................................................... 5
II.2. Analyse de l’existant.................................................................................................................... 5
II.3. Solution proposée ....................................................................................................................... 5
III. MÉTHODOLOGIES ET FORMALISME ADOPTÉ .......................................................................................... 6
III.1. Le langage de modélisation (UML) ............................................................................................ 6
III.2. Méthodologie de travail ............................................................................................................ 7
III.2.1. Pourquoi Scrum ? ..................................................................................................................................7
III.2.2. L’équipe Scrum ...................................................................................................................................8
IV. TECHNOLOGIES ET OUTILS DE TRAVAIL .............................................................................................. 9
IV.1. Environnement matériel .............................................................................................................. 9
IV.2. Environnement logiciel ............................................................................................................. 11
IV.2.1. Choix techniques .................................................................................................................. 16
V. ARCHITECTURE DE L’APPLICATION ..................................................................................................... 17
CONCLUSION .............................................................................................................................................. 18
INTRODUCTION ............................................................................................................................................ 20
I. MICROSOFT AZURE COGNITIVE SERVICE ........................................................................................... 20
II. LA RECONNAISSANCE OPTIQUE DE CARACTÈRES (OCR) ..................................................................... 20
ETUDE COMPARATIVE ENTRE LES OUTILS OCR AZURE........................................................................... 21
III.1. Test et Analyse des outils (les solutions) .................................................................................. 21
III.2. Pourquoi Azure Form Recognizer ?.......................................................................................... 21
III. CONSOMMATION D’API FROM RECOGNIZER ................................................................................... 22
IV. C’EST QUE NEURAL NETWORK ? ................................................................................................. 24
V. NEURAL NETWORK MICROSOFT AZURE ............................................................................................. 24
CONCLUSION ............................................................................................................................................... 25
INTRODUCTION ............................................................................................................................................ 27
I. IDENTIFICATION DES PROFILS UTILISATEURS....................................................................................... 27
II. LES BESOINS NON FONCTIONNELS ....................................................................................................... 28
III. LES USER STORIES .............................................................................................................................. 28
IV. PRODUCT BACKLOG ............................................................................................................................ 31
CONCLUSION ............................................................................................................................................... 34
INTRODUCTION ............................................................................................................................................ 36
I. ORGANISATION DES SPRINTS ............................................................................................................... 36
II. SPRINT 1 « ETUDE DE L’ENVIRONNEMENT » ....................................................................................... 36
II.1. Sprint Goal ................................................................................................................................ 36
II.2. Sprint Backlog .......................................................................................................................... 37
II.3. Implémentation du sprint .......................................................................................................... 37
III.4. Sprint Review ........................................................................................................................... 40
III.5. Sprint Rétrospective .................................................................................................................. 41
III. SPRINT 2 « CHOIX DE LA SOLUTION OPTIMALE » ................................................................................. 41
III.1. Sprint Goal ................................................................................................................................ 41
III.2. Sprint Backlog .......................................................................................................................... 41
III.3. Implémentation du sprint .......................................................................................................... 41
Pourquoi Azure Form Recognizer ? ....................................................................................................... 48
III.4. Sprint Review ......................................................................................................................... 48
III.5. Sprint Rétrospective ................................................................................................................ 48
IV. SPRINT 3 « GESTION ET NUMÉRISATION DES FACTURES » ................................................................... 49
IV.1. Sprint Goal ................................................................................................................................ 49
IV.2. Sprint Backlog .......................................................................................................................... 49
IV.3. Implémentation du sprint .......................................................................................................... 50
IV.3.1. Expression des besoins ..................................................................................................................50
IV.3.2. Analyse de sprint 3.........................................................................................................................51
IV.3.3. Conception du sprint 3 ...................................................................................................................52
IV.3.4. Implémentation ...............................................................................................................................55
IV.3.5. Test ................................................................................................................................................56
IV.7. Sprint Review ........................................................................................................................... 57
IV.8. Sprint Rétrospective .................................................................................................................. 59
CONCLUSION ............................................................................................................................................... 59
INTRODUCTION ............................................................................................................................................ 61
I. ORGANISATION DES SPRINTS .................................................................................................................. 61
II. SPRINT 4 « INTERFAÇAGE DE L’APPLICATION DE LABELLING » ........................................................... 61
II.1. Sprint Goal ................................................................................................................................ 61
II.2. Sprint Backlog .......................................................................................................................... 62
II.3. Implémentation du sprint 4 ....................................................................................................... 62
II.4. Sprint Review ........................................................................................................................... 64
II.5. Sprint Rétrospective .................................................................................................................. 64
III. SPRINT 5 « ANALYSE ET ENTRAÎNEMENT DE MODÈLES DE FACTURES »............................................. 64
III.1. Sprint Goal ................................................................................................................................ 64
III.2. Sprint Backlog .......................................................................................................................... 65
III.3. Implémentation du sprint 5 ....................................................................................................... 65
Expression des besoins........................................................................................................................................65
II.3.2. Analyse du sprint 5..............................................................................................................................67
III.3.3. Conception du sprint 5 ........................................................................................................................68
III.3.4. Implémentation ...................................................................................................................................71
III.3.5. Test......................................................................................................................................................71
III.4. Sprint Review ........................................................................................................................... 72
III.5. Sprint Rétrospective .................................................................................................................. 74
CONCLUSION ............................................................................................................................................... 74
INTRODUCTION ............................................................................................................................................ 76
I. ORGANISATION DES SPRINTS ............................................................................................................... 76
II. SPRINT 6 « GESTION DES MODÈLES ET DES DONNÉES D'ENTRAÎNEMENT. ».......................................... 76
II.1. Sprint Goal ............................................................................................................................... 76
II.2. Sprint Backlog ......................................................................................................................... 77
II.3. Implémentation du sprint 6 ...................................................................................................... 77
II.3.1. Expression des besoins ........................................................................................................................78
II.3.2. Analyse de sprint 6 ..............................................................................................................................80
II.3.3. Conception du sprint 6 ........................................................................................................................81
II.3.4. Implémentation ...................................................................................................................................86
II.3.5. Test......................................................................................................................................................87
II.4. Sprint Review ........................................................................................................................... 88
II.5. Sprint Rétrospective .................................................................................................................. 90
III. SPRINT 7 « MODULE DE GESTION DU RÉFÉRENTIEL ET DES FICHIERS DANS AZURE BLOB STORAGE » . 90
III.1. Sprint Goal ............................................................................................................................... 90
III.2. Sprint Backlog ......................................................................................................................... 90
II.3. Implémentation du sprint 7 ...................................................................................................... 91
III.3.1. Expression des besoins ........................................................................................................................91
III.3.2. Analyse de sprint 7 ..............................................................................................................................93
III.3.3. Conception du sprint 7 ........................................................................................................................94
III.3.4. Implémentation ...................................................................................................................................95
III.4. Sprint Review ........................................................................................................................... 96
III.5. Sprint Rétrospective ................................................................................................................ 100
CONCLUSION ............................................................................................................................................. 100
Dans le cadre du processus traditionnel, la gestion des factures dans une entreprise se
fait généralement manuellement en commençant par la recherche des factures puis la saisie
des informations de la facture dans des champs dédiés dans des formulaires, ce qui entraîne
une perte de temps, un risque d'erreurs et rend l’activité monotone pour le gestionnaire.
La solution que nous avons développée est une application desktop web qui permet le
classement et la comptabilisation automatique des factures, en utilisant des techniques de
reconnaissance des caractères (OCR) et de l’intelligence artificielle.
La reconnaissance des caractères (OCR) est une technologie clé pour l'informatisation
des factures et l'automatisation du processus de traitement des factures. Elle permet de
scanner les factures ou les documents numériques contenant du texte, et d'extraire
automatiquement les données pertinentes à partir de ces documents en se basant sur
l'intelligence artificielle.
Pour proposer une solution complète plus pratique pour tous les utilisateurs, nous avons
développé une application web et desktop qui permet de scanner, d’enregistrer les factures
dans la base de données de l'entreprise, ainsi que de consulter la liste des factures
téléchargées.
1
Le présent rapport constitue un récapitulatif de notre activité au sein de l'entreprise pendant
la période de stage. Grâce à ce rapport nous souhaitons vous fournir une vue d'ensemble claire
et professionnelle de notre travail, les activités que nous avons réalisées, les défis que nous
avons pu relever et les solutions que nous avons pu mettre en place.
Pour ce faire, dans le premier chapitre, nous commençons par une présentation de
l’organisme d’accueil et le projet ainsi que le choix de la méthodologie adoptée et les différents
outils de travail.
Le deuxième chapitre présente une étude comparative des différentes solutions OCR qui ont
été testées dans le but de déterminer la meilleure approche.
2
Chapitre 1 : Présentation du cadre du projet
3
Chapitre 1 : Présentation du cadre du projet
Introduction
Ce chapitre introductif est consacré à la présentation du contexte général du projet. Nous
présenterons en premier lieu l’organisme d’accueil de notre projet. Ensuite, nous donnerons une
vue d’ensemble de notre projet en expliquant les problématiques à résoudre ainsi que la solution
proposée. Enfin, nous détaillerons la méthodologie que nous adoptons pour la réalisation du
projet.
00
Notre équipe
4
Chapitre 1 : Présentation du cadre du projet
Suite aux différentes discussions avec notre superviseur au sein de la société, plusieurs
problématiques ont été identifiées dans le process actuel de gestion des factures et surtout lors
du traitement et de la classification des factures. Ce processus est complexe et prend beaucoup
de temps, ce qui peut impacter l'efficacité globale de l'entreprise.
Un des problèmes est la comptabilisation manuelle des montants des factures, qui est
effectuée par un gestionnaire dédié qui lui prend beaucoup de temps avec un risque d’erreur
élevé.
Afin de remédier à ce problème, et de rendre ce process plus efficace et précis, il est
crucial de mettre en place un système de traitement automatisé des factures. Cela permettra de
minimiser les erreurs humaines et de libérer du temps pour d'autres tâches plus stratégiques.
5
Chapitre 1 : Présentation du cadre du projet
6
Chapitre 1 : Présentation du cadre du projet
00
En ce qui concerne la méthodologie de travail, nous avons été inspirés par SCRUM. Il
représente l’approche agile la plus utilisé parmi les autres approches existantes et il est simple à
comprendre.
Le principe de SCRUM est de diriger l'attention de l'équipe de développement vers un
objectif unique qui sera complété en plusieurs étapes, chacune se déroulant sur une période de
deux à quatre semaines, ces étapes sont appelées Sprints. Chaque sprint doit aboutir à la sortie
d'un produit partiel appelé "incrément".
7
Chapitre 1 : Présentation du cadre du projet
8
Chapitre 1 : Présentation du cadre du projet
L’organisation d’un projet Scrum est rythmée par un ensemble de réunions définies avec
précision et limitées dans le temps et on peut distinguer 4 types de réunions :
• Sprint Planning : C’est la première réunion de chaque sprint qui dure en général de
deux semaines à un mois, il consiste à déterminer un sprint goal puis à planifier les
fonctionnalités et des users stories jugées prioritaires parmi toutes celles répertoriées
dans le backlog produit. [2]
• Sprint Review : C’est la réunion destinée pour évaluer les résultats obtenus par
l’équipe scrum suite à chaque sprint. Il permet d’analyser les progrès réalisés par le
développement afin d’atteindre l’objectif fixé. [3]
• Daily Meeting : cette réunion est journalière de 15 minutes, elle est très
importante. Cette réunion a pour but de faire un point sur la progression
quotidienne du Sprint. Cette rencontre permet à l’équipe de synchroniser ses
activités et de faire un plan pour les prochaines 24 heures. [4]
• Rétrospective du Sprint : C’est une réunion qui a lieu à la fin de chaque sprint. La
rétrospective est interne à l’équipe Scrum. L’équipe se sert de la rétrospective pour
passer en revue le Sprint terminé et déterminer ce qui a bien fonctionné et ce
qu’il faut améliorer. [5]
Pour le développement de la solution, nous avons utilisé les ordinateurs suivants dont leurs
caractéristiques sont illustrées dans la figure ci-dessous :
9
Chapitre 1 : Présentation du cadre du projet
10
Chapitre 1 : Présentation du cadre du projet
Nous allons énumérer au cours de cette partie les différents outils utilisés tout au long de ce
projet pour l’étude et la mise en place de notre application.
Visual Studio Code est un éditeur de code open-source développé par Microsoft
supportant un très grand nombre de langages grâce à des extensions. Il supporte
l’autocomplétions, la coloration syntaxique, le débogage, et les commandes git. [7]
11
Chapitre 1 : Présentation du cadre du projet
Draw.io est une application gratuite en ligne, accessible via son navigateur (protocole
https) qui permet de dessiner des diagrammes ou des organigrammes. Cet outil vous propose
de concevoir toutes sortes de diagrammes, de dessins vectoriels, de les enregistrer au format
XML puis de les exporter. [9]
12
Chapitre 1 : Présentation du cadre du projet
Azure DevOps est un logiciel créé par Microsoft, pour piloter des projets de
développement d’application ou de logiciels. Entre autres fonctionnalités, Azure
DevOps permet de planifier ses projets et suivre le travail de développement grâce à Git
(logiciel de gestion de versions) [10]
ASP.NET est un framework web open source, côté serveur, créé par Microsoft, qui
fonctionne sous Windows. ASP.NET permet aux développeurs de créer des applications web,
des services web et des sites web dynamiques. [11]
13
Chapitre 1 : Présentation du cadre du projet
PWA est l'initiale ou raccourci utilisé pour désigner une "Progressive Web App", c'est
à dire un environnement de type applicatif accessible à partir d'un navigateur mobile sans passer
par un magasin d'applications. [13]
Blazor est un framework web open source développé par Microsoft et permettant de
créer des applications web d’interface utilisateur web côté client basé sur le langage de
programmation C# au lieu du commun JavaScript. [14]
JavaScript est un langage de programmation qui permet de créer du contenu mis à jour
de façon dynamique, de contrôler le contenu multimédia, d'animer des images, et tout ce à quoi
on peut penser. [15]
14
Chapitre 1 : Présentation du cadre du projet
ReactJS est une bibliothèque JavaScript frontale à code source ouvert permettant de
créer des interfaces utilisateur ou des composants d'interface utilisateur. Elle est maintenue par
Facebook et une communauté de développeurs individuels et d'entreprises. [17]
Python est un langage de programmation largement utilisé dans les applications Web,
le développement de logiciels, la science des données et le machine learning (ML). [18]
15
Chapitre 1 : Présentation du cadre du projet
Microsoft SQL Server est un système de gestion de base de données en langage SQL
incorporant entre autres un SGBDR développé et commercialisé par la société Microsoft. [19]
➢ Choix du langage C# :
C# est un choix populaire pour les solutions d'entreprise. Il s'intègre bien avec d'autres
technologies Microsoft telles que .NET Framework, Visual Studio, SQL Server et Azure. Les
développeurs peuvent créer des solutions d'entreprise puissantes et évolutives pour répondre
aux besoins complexes des organisations.
➢ Choix du Blazor :
Blazor est une option intéressante pour les développeurs cherchant à créer des applications
web interactives et dynamiques rapidement, en utilisant des langages familiers et en bénéficiant
de performances et de mesures de sécurité avancées.
16
Chapitre 1 : Présentation du cadre du projet
V. Architecture de l’application
Le MVC est un modèle architectural utilisé pour créer des projets évolutifs. Il divise une
application en trois composants : le modèle, la vue et le contrôleur. C'est un framework de
développement Web couramment utilisé pour des applications Web extensibles.
o Contrôleur : composant responsable des prises de décision, qui gère la logique du code
qui prend des décisions, il est l’intermédiaire entre le modèle et la vue.
➢ Dans notre cas, notre contrôleur et les traitements sont gérés par ASP.NET
17
Chapitre 1 : Présentation du cadre du projet
Conclusion
Ce chapitre constitue une présentation générale du cadre du travail. Nous avons
présenté en premier lieu la société par la suite nous nous sommes focalisés sur la
problématique et le projet pour finir par le Framework du travail utilisé qui est un
Framework agile « Scrum » et les outils du travail. Notre sujet sera expliqué plus en détail
dans le chapitre suivant, en exposant les besoins et les objectifs à atteindre.
18
Chapitre 2 : Etat de l’art
19
Chapitre 2 : Etat de l’art
Introduction
L'objectif de ce chapitre est de présenter une étude comparative des outils OCR disponibles
sur le marché, en vue d'identifier le meilleur choix pour notre projet. Nous commencerons par
une présentation générale de la reconnaissance optique de caractères (OCR).
Ensuite Nous nous concentrerons plus particulièrement sur Microsoft Azure OCR, en
effectuant des tests sur ses outils pour évaluer leurs précisions, leurs rapidités et leurs facilités
d'intégration.
Enfin, nous utiliserons les résultats de cette étude comparative pour justifier notre choix
d'outil OCR pour notre projet.
L'OCR est largement utilisé dans de nombreux secteurs, y compris les services
gouvernementaux, les entreprises, les bibliothèques et les archives, pour numériser et traiter des
documents tels que des factures, des formulaires de demande, des documents historiques, etc.
Cela peut améliorer l'efficacité, la productivité et l'expérience utilisateur, tout en réduisant les
coûts et les erreurs liées à la saisie manuelle de données.
20
Chapitre 2 : Etat de l’art
L'objectif de notre projet est l'extraction de données intelligente, qui reconnaît et traite le
texte extrait par OCR pour produire des données pertinentes ultérieures.
Nous avons procédé à essayer les outils OCR avant de choisir le meilleur outil qui répond à
nos besoins.
Le choix du tel type d’outil OCR nécessite le test de tous les outils pour avoir quel est
le meilleur choix pour répondre aux besoins de point de vue fiabilité, performance et
sécurité. C’est pour cela, on a pris en considération ces facteurs et on a testé ces services
(sauf le service Azure Cognitive Search car son rôle n’est pas compatible avec notre sujet)
en réalisant les deux applications (sprint2).
Après la phase du test, on a choisi le Form Recognizer comme service car il est plus
adapté pour notre projet et plus avantageux par rapport au Computer Vision Service dans
les points suivants :
21
Chapitre 2 : Etat de l’art
Temps de Non-
Performance Précision Document
réponse document
Azure Form
X X X X
Recognizer
Azure Computer
X X
Vision
• Performance : dans la phase test l’application celle de computer vision n’a pas pu
extraire toutes les données alors que l’application Form Recognizer a fait ça.
• Temps de réponse : les deux applications ont le même temps de réponse qui est 6s.
• Précision : d’après les figures 39,40 et les figures 45,46 en conclure qu’en terme de
précision l’outil Form Recognizer est plus mieux
• Document : Azure Form Recognizer est un service OCR spécialisé dans la
reconnaissance de caractères optiques pour les documents tels que les factures, les
reçus et les formulaires, en format PDF ou en image.
• Non-document : Azure Computer Vision OCR est un service de reconnaissance de
caractères optiques (OCR) qui est conçu pour extraire du texte à partir des images et
des documents en texte brut, de manière générale.
En premier lieu, nous avons créé la ressource Azure Form Recognizer dans le portail Azure
et on a vérifié les valeurs de Key1 et d’Endpoint.
En deuxième lieu, nous avons collecté les factures dont nous allons l’entrainer (Dataset) et
les téléchargées dans le Blob container que nous avons déjà créé
La troisième étape, consiste à obtenir une signature d'accès partagé à partir du Blob
Container et la valeur de l'URI pour partager l'accès aux ressources avec l’application.
22
Chapitre 2 : Etat de l’art
La figure ci-dessous offre une représentation visuelle sur les étapes de consommation de
l'API Form Recognizer :
Pour architecture Microsoft Azure Form Recognizer on utilise la figure ci-dessous pour la
présenté :
23
Chapitre 2 : Etat de l’art
24
Chapitre 2 : Etat de l’art
Azure Form Recognizer combine les LSTM avec les réseaux de neurones convolutifs (CNN)
pour créer des architectures d'apprentissage en profondeur afin de gérer la complexité et la
variabilité des mises en page de formulaires et des modèles de texte. Microsoft n'a pas divulgué
publiquement l'architecture spécifique de la combinaison RNN/CNN utilisée par Form
Recognizer car elle est considérée comme une technologie propriétaire.
Dans l'ensemble, l'utilisation de LSTM dans Azure Form Recognizer permet à la plateforme
d'identifier et d'extraire avec précision des données structurées à partir de documents non
structurés, une tâche complexe qui nécessite un apprentissage en profondeur et un traitement
du langage naturel. [22]
Conclusion
En conclusion, cette étude comparative nous a permis d'identifier le meilleur outil OCR pour
notre projet, en fonction de critères tels que la précision, la performance et la rapidité. À travers
cette analyse, nous avons exploré différentes bibliothèques et APIs OCR, en examinant leurs
avantages et leurs limites.
25
Chapitre 3 : Planification du Backlog Produit
26
Chapitre 3 : Planification du Backlog Produit
Introduction
Ce chapitre est essentiel dans la réalisation de tout projet, car il permet de déterminer les
fonctionnalités de chaque utilisateur, ainsi que les différentes fonctionnalités qui peuvent
exister dans notre projet.
27
Chapitre 3 : Planification du Backlog Produit
28
Chapitre 3 : Planification du Backlog Produit
29
Chapitre 3 : Planification du Backlog Produit
30
Chapitre 3 : Planification du Backlog Produit
31
Chapitre 3 : Planification du Backlog Produit
En tant qu'admin, je souhaite pouvoir tester les L'administrateur peut tester les
Test des modèles de
US 14 modèles de factures pour évaluer leur précision et Haut modèles de factures pour évaluer leur
factures
leur fiabilité précision et leur fiabilité
Suppression sélective des En tant qu'administrateur, je souhaite pouvoir L'administrateur peut supprimer des
US 15 Haut
modèles supprimer des modèles de manière sélective. modèles de manière sélective
L'administrateur peut visualiser une
Sprint 6 – Gestion Visualisation des modèles
En tant qu'administrateur, je veux visualiser une
liste complète des modèles existants, y
des modèles et des US 16 liste des modèles existants pour avoir une vue Haut
existants compris leur nom, leur date de création
données d'ensemble de l'état de l'application.
et leur état (actif ou inactif)
d'entraînement.
Options d'analyse En tant qu'utilisateur, je veux pouvoir choisir des L'utilisateur est en mesure de
sélective pour une modèles d'analyse adaptés à mes besoins sélectionner et d'utiliser avec succès des
US 17 Haut
interprétation plus efficace spécifiques afin que mon analyse de données modèles d'analyse adaptés à ses besoins
des données produise des résultats plus précis et plus pertinents. spécifiques.
Fusion des modèles En tant qu'administrateur, je veux composer les L'administrateur est en mesure de
US 18 existants modèles existants pour faire la fusion entre eux.
Moyenne
fusionner les modèles existants
32
Chapitre 3 : Planification du Backlog Produit
Sprint 7 - Upload Document dans Azure En tant administrateur je souhaite pouvoir L’administrateur peut télécharger un
US 21 Moyenne
Intégration et de Blob Storage télécharger un document dans Azure Blob Storage document dans Azure Blob Storage.
déploiement
continus Suppression sélective des L’administrateur peut pouvoir
En tant qu'administrateur je souhaite pouvoir
US 22 fichiers importés dans le Blob Moyenne supprimer sélectivement les fichiers
supprimer sélectivement les fichiers importés.
Storage importés.
En tant qu'administrateur je souhaite pouvoir
Visualisation des fichiers L’administrateur peut visualiser les
US 23 visualiser les fichiers importés dans le Blob Moyenne
importées dans le Blob Storage fichiers importés dans le Blob Storage
Storage
L’administrateur peut pouvoir
Téléchargement des fichiers du En tant qu'administrateur je souhaite pouvoir
US 24 Moyenne télécharger les fichiers du Blob
Blob Storage télécharger les fichiers du Blob Storage
Storage
En tant qu'administrateur je souhaite pouvoir L’administrateur peut effectuer des
Chercher les fichiers importés
US 25 effectuer des recherches pour trouver les fichiers Moyenne recherches pour trouver les fichiers
dans le Blob Storage
importés importés
33
Chapitre 3 : Planification du Backlog Produit
Nous avons choisi de répartir les Sprints que nous avons identifiés en trois Release se
présentant comme suit :
Conclusion
En conclusion, après la spécification des différentes fonctionnalités qui existent dans notre
projet, nous pouvant commencer par la réalisation du Release l’objet du chapitre suivant.
34
Chapitre 4 : Release 1
35
Chapitre 4 : Release 1
Introduction
Ce chapitre présente en détail les sprints de première release commençant par le backlog,
suivi des différents diagrammes élaborés pour la réalisation du première release, incluant le
diagramme des cas d'utilisation, le diagramme d'analyse, le diagramme des classes et les
diagrammes des séquences. Enfin, les interfaces graphiques de chaque sprint.
Ce sprint vise à faire une étude approfondie de l'environnement de travail et de tester les
différentes solutions envisageables afin de trouver l’outil le plus adapté pour garantir la réussite
de notre projet.
36
Chapitre 4 : Release 1
Recherche sur :
• la notion des composants
• render-fragment
Sprint • les call-back
1 • OCR - API Azure
Maitriser le développement avec les Préparer une présentation sur l’outil OCR
frameworks blazor, ASP.NET et Microsoft Azure et les comparer 13j
Microsoft Azure
Développer des mini-applications :
• Upload File
• Render Fragment
Faire l'entrainement des quelques factures avec
Microsoft Azure afin de comprendre mieux
comment fonctionne ce dernier
Cette partie contient des captures écrans pour nos tâches réalisées dans ce sprint :
37
Chapitre 4 : Release 1
Cette partie renferme une carte mentale [23] élaborée pour notre projet, des recherches sur
les différentes notions requises, une présentation détaillée des outils OCR Azure, ainsi que des
38
Chapitre 4 : Release 1
captures d'écran des mini-applications réalisées au cours de cette phase et l'entraînement des
quelques factures.
La capture d'écran de l'application "Upload File", qui illustre l'importation d'un fichier dans
le Blazor, est présentée à l'annexe A du rapport.
• Les fragments nous permettent de grouper une liste d'enfants sans ajouter de nœud
supplémentaire au DOM. [24]
39
Chapitre 4 : Release 1
Après avoir terminé ce sprint notre environnement de travail devient prêt afin de pouvoir
réaliser les sprints suivants avec succès.
40
Chapitre 4 : Release 1
L'objectif de ce sprint est d'identifier la meilleure solution possible pour notre projet en se
concentrant sur les besoins spécifiques et les contraintes qui y sont associées.
III.2. Sprint Backlog
La réalisation de ce sprint nécessite une comparaison entre les outils pour déterminer la
solution optimale :
41
Chapitre 4 : Release 1
sens qu’il ne fournit pas une contextualisation aussi robuste des paires clé/valeur que l’outil
de reconnaissance des formules. Le service offre également une fonctionnalité d’IA de
niveau supérieur pour le traitement des images et des vidéos afin d’identifier les
personnes/célébrités, les points de repère et les objets communs (entre autres)
• Les étapes :
➢ Créer une ressource de service de vision Azure
➢ Générer une clé d'API
➢ Créer un projet Blazor
➢ Ajouter le package NuGet Microsoft.Azure.CognitiveServices.Vision.ComputerVision
➢ Ajouter les clés d'API dans le fichier de configuration
➢ Consommer l'API Azure Computer Vision
42
Chapitre 4 : Release 1
43
Chapitre 4 : Release 1
C’est une méthode de test en ligne dans laquelle on a créé un modèle IA qui sert à détecter
les informations d’un type de facture (on a pris la facture Amazon comme exemple) et l’entrainé
avec 5 factures pour qu’il soit plus précis à la reconnaissance des caractères puis on a testé ce
modèle sur une facture de même type.
44
Chapitre 4 : Release 1
• Les étapes :
45
Chapitre 4 : Release 1
46
Chapitre 4 : Release 1
47
Chapitre 4 : Release 1
Sur la base des exigences de notre projet, Azure Form Recognizer semble être un choix plus
adapté et avantageux par rapport au service de Computer Vision. Lors des tests, Form
Recognizer a réussi à extraire toutes les données tandis que Computer Vision Service ne l'a pas
fait. Les deux applications ont un temps de réponse identique de 6 secondes, mais Form
Recognizer a montré une précision supérieure. De plus, Form Recognizer est spécialisé dans
l'OCR pour les documents tels que les factures, les reçus et les formulaires au format PDF ou
image, tandis que Computer Vision OCR est plus général et conçu pour extraire du texte à partir
d'images et de documents texte brut.
Temps de Non-
Performance Précision Document
réponse document
Azure Form
X X X X
Recognizer
Azure Computer
X X
Vision
Nous avons tenu la réunion de Sprint Review à distance, au cours de laquelle nous avons
expliqué à notre encadrant pour quoi on a choisi la solution du Form Recognizer afin de
présenter les avantages et les inconvénients de chaque application.
48
Chapitre 4 : Release 1
49
Chapitre 4 : Release 1
50
Chapitre 4 : Release 1
Modèle du domaine :
Dans cette partie nous avons présenté la structure interne de l’application via le modèle
du domaine de la partie gérer les factures.
51
Chapitre 4 : Release 1
52
Chapitre 4 : Release 1
53
Chapitre 4 : Release 1
54
Chapitre 4 : Release 1
IV.3.4. Implémentation
• Diagramme de composant de « Gestion et numérisation des factures »
55
Chapitre 4 : Release 1
IV.3.5. Test
Ces captures mettent l'accent sur les tests réalisés sur les méthodes SearchDocByName et
GetAllDocs qui permettent de chercher et récupérer les documents importés.
56
Chapitre 4 : Release 1
Nous avons tenu la réunion de Sprint Review à distance avec notre encadrant de la société,
au cours de laquelle nous avons effectué :
• Consommation de L'API Form Recognizer qui nous permet d'extraire les données
nécessaires de la facture.
57
Chapitre 4 : Release 1
58
Chapitre 4 : Release 1
Conclusion
Cette release a été dédié à l'acquisition de compétences sur les nouveaux outils et
frameworks de travail, ainsi qu'à l'étude approfondie de la solution qui sera mise en œuvre dans
notre projet.
59
Chapitre 5 : Release 2
60
Chapitre 5 : Release 2
Introduction
Une fois que nous avons achevé la première release de notre application, nous sommes prêts
à entreprendre les tâches nécessaires pour créer la deuxième release, qui comportera le Product
backlog, les différents diagrammes et les interfaces graphiques.
61
Chapitre 5 : Release 2
Pour réaliser ce sprint on a essayé de comprendre la logique du code ainsi que les
components de chaque interface
62
Chapitre 5 : Release 2
63
Chapitre 5 : Release 2
Nous avons effectué la réunion de ce sprint review à distance avec et notre encadrant
Mr Ridha. A la fin de ce sprint, nous avons montré les taches demandées :
• Re-design de l’application
• Optimisation de l'application
II.5. Sprint Rétrospective
64
Chapitre 5 : Release 2
65
Chapitre 5 : Release 2
66
Chapitre 5 : Release 2
67
Chapitre 5 : Release 2
68
Chapitre 5 : Release 2
69
Chapitre 5 : Release 2
70
Chapitre 5 : Release 2
III.3.4. Implémentation
• Diagramme de composant de « Analyse et Entraînement de Modèles de Factures »
III.3.5. Test
Cette capture représente le test de la création d’un modèle :
71
Chapitre 5 : Release 2
À la clôture de ce sprint, nous avons tenu une réunion à distance avec le superviseur de notre
entreprise basée au Canada Mr. Jason Li, ainsi qu'avec notre encadrant Mr. Ridha. Au cours de
cette réunion, nous avons présenté les tâches qui nous ont été assignées. Ces tâches
comprenaient :
• La visualisation des résultats d'analyse
• La création et l'entraînement de modèles de factures
• La recherche de modèles existants
La recherche d'un modèle est effectuée immédiatement dès la saisie dans la barre de
recherche comme indique la capture suivante :
72
Chapitre 5 : Release 2
73
Chapitre 5 : Release 2
Conclusion
Au cours de ce chapitre nous avons effectué l’interfaçage de l’application de labelling et des
changements dans la logique ainsi qu’amélioré l'application en permettant aux utilisateurs de
visualiser et modifier les résultats d'analyse des factures, tandis que l'administration peut créer
et entraîner des modèles personnalisés.
74
Chapitre 6 : Release 3
75
Chapitre 6 : release 3
Introduction
Une fois que nous avons achevé la deuxième Release de notre application, nous sommes
prêts à entreprendre les tâches nécessaires pour créer la troisième release, qui comportera le
Product Backlog, les différents diagrammes et ses interfaces graphiques.
76
Chapitre 6 : release 3
modèles et de fournir des options d'analyse sélective, tout en offrant aux utilisateurs la
possibilité de sélectionner et d'utiliser les modèles les mieux adaptés à leurs besoins.
77
Chapitre 6 : release 3
Acteur Administrateur
Pré-condition L'administrateur est authentifié et a accès aux modèles existants.
Post-condition L'administrateur est en mesure de supprimer sélectivement les modèles de son choix.
78
Chapitre 6 : release 3
Acteur Administrateur
Acteur Administrateur
79
Chapitre 6 : release 3
80
Chapitre 6 : release 3
81
Chapitre 6 : release 3
82
Chapitre 6 : release 3
83
Chapitre 6 : release 3
84
Chapitre 6 : release 3
85
Chapitre 6 : release 3
II.3.4. Implémentation
Diagramme de composant de « Gestion des modèles et des données d'entraînement »
86
Chapitre 6 : release 3
II.3.5. Test
Cette section présente les tests effectués sur les modèles d'analyse, en mettant en évidence
les méthodes "GetModelById", "GetAllModels" et "DeleteModel".
87
Chapitre 6 : release 3
Au terme de ce sprint, nous avons tenu une réunion à distance avec notre encadrant, M.
Ridha. Au cours de cette réunion, nous avons présenté les différentes tâches qui nous avaient
été assignées, à savoir : le test des modèles de factures, la suppression sélective des modèles, la
visualisation des modèles existants, l'enregistrement des fichiers sur le cloud, les options
d'analyse sélective ainsi que la fusion des modèles existants.
88
Chapitre 6 : release 3
Avant de procéder à la suppression d'un modèle, il est nécessaire de confirmer cette action
en utilisant un modal :
89
Chapitre 6 : release 3
L'objectif de ce sprint est de créer un référentiel avec des politiques de branche, configurer
un pipeline de CI, réaliser l'importation, la suppression sélective, la visualisation, le
téléchargement et la recherche des fichiers dans Azure Blob Storage.
III.2. Sprint Backlog
90
Chapitre 6 : release 3
Sprint Création de référentiel avec Tester les politiques de branche et corriger les erreurs
1j
7 politiques de branche éventuelles
91
Chapitre 6 : release 3
Cas
Visualiser les fichiers importés dans le stockage Blob
d’utilisation
Acteur Administrateur
2. L'application envoie une requête au backend pour récupérer les fichiers importés.
Scénario 3. Le backend reçoit la demande et récupère les informations nécessaires sur les fichiers dans
Normal Azure Blob Storage.
4. Le backend envoie une réponse contenant les informations sur les fichiers à l'application.
5. Le backend envoie une réponse indiquant le succès ou l'échec du processus de
téléchargement.
Tableau 25 : Description textuelle « Visualiser les fichiers importés dans le stockage Blob »
92
Chapitre 6 : release 3
Post-condition L'administrateur est en mesure d'évaluer la précision et la fiabilité des modèles de factures.
4. L'application envoie une demande au backend avec les informations sur le fichier
Scénario Normal sélectionné.
93
Chapitre 6 : release 3
Figure 101 : Diagramme de classe participante de « Upload Document dans le Blob Storage »
94
Chapitre 6 : release 3
Diagramme de classe conception « Visualiser les fichiers importés dans le Blob Storage »
Figure 103 : Diagramme de classe conception « Visualiser les fichiers importés dans le Blob
Storage
III.3.4. Implémentation
Diagramme de composant du « Module de gestion du référentiel et des fichiers dans
Azure Blob Storage »
95
Chapitre 6 : release 3
96
Chapitre 6 : release 3
Dans cette capture nous avons fait la configuration du centenaire pour migrer et indiquer
les fichiers du projet :
En utilisant Microsoft Azure Storage Explorer nous avons géré le côté client du projet en
chargeant les fichiers principaux du projet
97
Chapitre 6 : release 3
Après avoir ajouté les fichiers de ressources nécessaires, nous obtenons un lien spécifique
vers notre application hébergée sur Internet
Le clic sur un fichier dans le stockage Blob entraîne automatiquement son affichage comme
indique cette capture d’écran
98
Chapitre 6 : release 3
99
Chapitre 6 : release 3
Conclusion
Au cours de ce chapitre, nous avons accordé à l'administrateur le droit de gérer les fichiers
du stockage de blobs, ainsi que l'intégration et l'hébergement de notre projet dans Microsoft
Azure.
100
Chapitre 6 : release 3
101
Chapitre 6 : release 3
102
Conclusion Générale
Durant notre stage chez Metam Tech Tunisie, nous avons pu travailler sur le développement
d'une application Web et Desktop qui a pour but la numérisation et la classification des factures
de différents formats et types. Le projet s'est déroulé en deux parties principales, et a nécessité
l'utilisation de différentes technologies.
Dans la première partie, nous avons créé une application robuste et efficace pour extraire les
données des factures. En utilisant des technologies telles que ASP.NET Blazor, Entity
Framework, SQL Server et les services cognitifs Microsoft Azure, notamment l'API Azure
Form Recognizer et l'API REST, ce qui nous a permis à obtenir d'excellents résultats en termes
de précision d'extraction des données. Nous sommes passés d'un niveau de confiance initial de
30% à un niveau de confiance considéré comme impressionnant de 80%.
Ce stage nous a offert une opportunité précieuse de travailler avec des technologies avancées
et les intégrer dans une application cohérente. En combinant ASP.NET Blazor, Entity
Framework, SQL Server, React, Python et les services cognitifs Azure, nous avons pu
développer une solution complète pour la numérisation et la classification des factures.
Atteindre un niveau de confiance de 80% dans l'extraction des données représentent une
étape significative de notre projet. Cela démontre notre capacité à exploiter la puissance de
l'apprentissage automatique et à l'intégrer d’une manière transparente dans notre application.
103
En conclusion, notre stage chez Metam Tech Tunisie a renforcé nos compétences techniques,
et a approfondi notre compréhension de l'apprentissage automatique et du développement de
logiciels dans un environnement professionnel.
Nous sommes reconnaissants d'avoir eu cette opportunité et nous sommes impatients à mettre
en pratique les connaissances et les compétences acquises dans nos futurs projets.
Pour l'avenir, notre vision consiste à réduire l'intervention humaine dans notre application
de numérisation et de classification des factures. En renforçant l'intégration de l'apprentissage
automatique et de l'intelligence artificielle, nous visons à augmenter la précision de l'extraction
des données et à automatiser les tâches répétitives.
104
Bibliographie & Néographie
Keywords: ASP.NET Blazor, PWA, Azure Form Recognizer, ReactJS, Python, SQL Server,
Electron.
الملخص
Metam Tech لفائدةBlazor PWA ASP.NET يوثق هذا التقرير تطوير تطبيق الويب وسطح المكتب باستخدام
Tunisia.
.ينقسم المشروع إلى مشروع تحليل البيانات وأداة وضع العالمات
. الستخراج النص المطلوبAzure Form Recognizer تتضمن تحليل البيانات تحميل الملفات ومعالجتها بواسطة خدمة
Azure أداة وضع العالمات تسهل إنشاء تطبيق لتسمية أزواج بيانات القيمة المفتاحية وتدريب خوارزمية التعلم اآللي لخدمة
Form Recognizer.
يُظهر هذا التقرير التنفيذ الناجح لتقنيات. Neuron سيتم دمج النظام الناتج مع نظام تخطيط موارد المؤسسة الحالي
لتحسين معالجة المستندات واسترداد البياناتElectron ASP.NET وSQL وPython وReact وBlazor PWA
Metam Tech Tunisia.في بيئة
Blazor, ASP.NET, PWA, SQL Server, Azure Form Recognizer, ReactJs : الكلمات الرئيسية
Python, Electron
Abstract
This report documents the development of a web and desktop application using
ASP.NET Blazor PWA for Metam Tech Tunisia. The project is divided into two parts: data
analysis and the labeling tool. Data analysis involves file uploads, which are then processed
by the Azure Form Recognizer service to extract the required text. The labeling tool
facilitates the creation of an application for labeling key-value data pairs by training the
machine learning algorithm of the Azure Form Recognizer service. The technologies used
include ASP.NET Blazor, SQL Server, ReactJS, Python, and Electron. The resulting system
is integrated with the existing ERP, Nœuron, to improve document processing and data
retrieval in the Metam Tech Tunisia environment.
Keywords: ASP.NET Blazor, PWA, Azure Form Recognizer, ReactJS, Python, SQL Server,
Electron.