Added a lot to the doc and modified the pdf generation
This commit is contained in:
+63
-2
@@ -456,6 +456,67 @@ Il existe d'autres outils mais j'ai décidé de prendre celui la à cause de son
|
||||
|
||||
En plus il est facile à utiliser et je ne pense pas encore avoir fait le tour de tout son potentiel dans ce projet.
|
||||
|
||||
### Fonctionnement général
|
||||
|
||||
Avant de passer à l'explication de chaques parties du projet en détail, je pense qu'il est important de faire un petit point sur comment toutes les parties du projet s'emboitent et fonctionnement ensemble. Comme ca quand vous lirez l'explication d'une étape vous serez conscient de à quoi elle sert et ou elle s'înscrit dans le projet principal.
|
||||
|
||||
#### Les briques principales
|
||||
|
||||
Voici trois grosses étapes du projet. Pour rappel ce sont des vulgarisations plutôt larges qui n'ont qu'un seul but, aider à la compréhension de ce qui vient par la suite.
|
||||
|
||||
##### Recupération d'images
|
||||
|
||||

|
||||
|
||||
Pour faire simple on peut voir qu'il y a deux parties à cette étape. La première en partant du haut représente un script python qui va chercher des informations dans la base de données de Chrome qui est en SQLITE. Ces informations dans notre cas sont les cookies de connexion.
|
||||
|
||||
Dans la seconde étape, on peut voir que le programme utilise Selenium avec un navigateur Firefox Headless qui va aller communiquer avec la F1TV qui est le site web qui nous intéresse et que une des infos que l'on récupère est une image de la page en format PNG que l'on envoie au programme C#.
|
||||
|
||||
Ces deux partie sont liées car pour se connecter à la F1TV Selenium a besoin des cookies de connexion récupèrés par le programme Python.
|
||||
|
||||
La première partie est un processus qui n'est utilisé qu'une seule fois au démarrage tandis que la récupération d'images et en continu pendant toute la durée de l'utilisation de l'application.
|
||||
|
||||
##### OCR
|
||||
|
||||
;
|
||||
|
||||
On peut voir dans ce diagramme simplifié qu'avec l'aide de ce que contient le fichier "Config.JSON" on découpe l'image que l'on a récupèré au préalable en petits morceaux qui continennent des informations. Ensuite on prend cette image et on lui applique un filtre pour retirer le flou la couleur etc... Puis en utilisant de l'OCR (Optical Character Recognition) on en récupère les informations sous forme de texte et on le renvoie dans le programme C#
|
||||
|
||||
Dans cette partie explicative générale, on ne reviendra pas sur la création de ce fichier config. Pour plus d'infos à son sujet voir la rubrique (OCR/Fonctionnement général)
|
||||
|
||||
##### Traitement et affichage
|
||||
|
||||

|
||||
|
||||
On peut voir dans ce dernier mini diagramme simplifié que on prend les données que l'on récupèré de l'étape précédente qui ne sont pas forcément toutes cohérentes et qu'on les traite pour leur redonner du sens avant de les stocker dans une base de données SQLITE. Ensuite cette même base de donnée fournis les infos nescessaires pour des affichages (Ces affichages sont directements récupèrés depuis le projet en cours de fonctionnement)
|
||||
|
||||
#### Résumé du fonctionnement général
|
||||
|
||||

|
||||
|
||||
Ce dernier diagramme est un schéma fait pour représenter de la manière la plus simple possible toutes les briques du projet et comment elles s'imbriquent ensemble.
|
||||
La représentation est un peu différentes des 3 autre diagramme car le but ici est surtout de montrer le chemin que fait la donnée à travers les couches
|
||||
|
||||
Toutes les parties du projet ne sont pas incluses, notamment la partie calibration dans un objectif de simplifier la lecture.
|
||||
|
||||
Dans l'ordre, on peut voir que pour la partie récupèration d'images, le python va récupèrer les cookies dans la base de données chrome pour ensuite les retourner à Selenium.
|
||||
|
||||
Selenium va ensuite pouvoir lancer un navigateur (en l'occurence Firefox) et utiliser les cookies récupèrés pour aller sur la page de la F1TV qui va retourner un certain nombre d'infos à Selenium.
|
||||
|
||||
L'info qui nous intéresse le plus depuis Selenium c'est les images de la page data de la F1Tv et c'est elles que l'on va envoyer dans la partie LOAD du diagramme.
|
||||
|
||||
Dans cette partie on prend l'image de la F1TV et on la decoupe selon les directives données par le fichier Config.JSON (il renseigne les zones à découper et ce qu'elles représentent) et après le découpage on se retrouve avec une zone principale, vingt zones de pilotes et 9 fenêtres de données par zone de pilote donc 180 fenêtres en tout.
|
||||
|
||||
Ces fenêtres sont ensuite envoyées pour être filtrées (retirer le flou, mettre en évidence les caractères, en gros les préparer pour la reconnaissance) dans la partie OCR
|
||||
|
||||
Dans cette partie, après avoir filtré les images, on les envoie à Tesseract pour qu'il nous retourne des résultats d'OCR. Ces résultats sont ce que Tesseract a trouvé sur les image et ils sont retournés sous al forme de Data Pilote. Ex (Position: 1,Tour : 45, Temps au tour : 1:34.683, Pneus: Medium etc....)
|
||||
|
||||
Finalement ces données ont envoyées dans la partie traitement qui va faire des vérifications d'usage pour s'assurer qu'elles sont correctes et quand c'est fait, tout est envoyé dans une base de données SQLITE.
|
||||
|
||||
On ne montre pas non plus dans ce diagramme la parte affichage des données car je ne trouve pas pertinent de l'inclure ici.
|
||||
|
||||
Et voila c'est le fonctionnement très général et simplifié de l'application. Je vous invite à continuer à lire cette documentation pour des informations plus précises à propos de toutes ces étapes. Bonne lecture !
|
||||
|
||||
### Récupération des images
|
||||
|
||||
Voici la première grande étape du projet.
|
||||
@@ -2041,8 +2102,6 @@ Je pense que dans mes futurs projets je mettrai les tests en début de projet pl
|
||||
|
||||
Ecrire des tests c'est jamais marrant et c'est encore moins marrant quand ils nous empêchent d'avancer. Mais je suis convaincu que au final c'est un gain de temps et de sérénité incontournable.
|
||||
|
||||
[INSERER MEME SUR LES TESTS UNITAIRES]
|
||||
|
||||
## Résumé des difficultés techniques
|
||||
|
||||
----
|
||||
@@ -2078,3 +2137,5 @@ Ecrire des tests c'est jamais marrant et c'est encore moins marrant quand ils no
|
||||
----
|
||||
|
||||
[A remplir la dernière semaine du travail de diplôme]
|
||||
|
||||
## Notes de code
|
||||
|
||||
Reference in New Issue
Block a user