From fbf75f4ab1000d8b111ed80928c798afe03df299 Mon Sep 17 00:00:00 2001 From: maxluli Date: Sun, 16 Apr 2023 12:49:22 +0200 Subject: [PATCH] Added some doc --- docs/index.md | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/docs/index.md b/docs/index.md index e424dc3..4130ee0 100644 --- a/docs/index.md +++ b/docs/index.md @@ -335,6 +335,84 @@ J'ai mis une durée arbitraire de deux jours, mais je ne sais pas vraiment combi [A remplir au fur et à mesure que les features sont développées] +### OCR + +Ici je vais parler du processus de reconnaissance de data sur une image du feed DATA de la F1TV. + +C'est je pense la partie qui a demandé le plus tests et de refactor. + +Toute la partie OCR a été développée dans un projet à part avant d'être intègrée dans le projet final. + +Il faut savoir que la reconnaissance est différente celon ce que l'on cherche. Je vais donc décomposer cette partie du document en sous rubriques selon les données recherchées. + +Mais avant ca je dois expliquer certains concepts qui seront importants. + +#### Fonctionnement général + +Voici un screenshot de la page DATA de la F1TV que le programme va recevoir : + +!["Screen F1TV"](./Images/Screens/ScreenF1TvData.png) + +Si on regarde de loin on peut se dire que la structure est plutôt simple mais c'est loin d'être le cas. +On peut y voir au moins 4 zones contenant de l'information dans un format différent. + +!["Main zones"](./Images/Figma/WindowZoneExplanation1.png) + +Dans l'exemple ci dessus on peut voir 3 zones mais on aurait également pu comprendre la zone de position des pilotes autour du circuit pour faire 4. + +Ces 4 zones sont très différentes et contiennent d'autres informations. Pour ce travail de diplôme je ne m'occupe que de la zone principale. Mais je pense que le titre et les infos de circuit ne prendrait pas tant de temps que ca à implémenter. + +J'ai utilisé le mot "Zone" plus haut et ca n'est pas juste un mot en l'air. C'est le nom de l'objet que j'utilise pour les représenter dans mon programme. Mais comme c'est important de bien comprendre ce concept avant de continuer je vais vous l'expliquer. + +ZONE : + +L'objet "Zone" parent est un objet qui est une zone d'image. Je m'explique, le but d'une zone est d'être un morceau d'une image plus grande. + +Le but d'une Zone est de contenir une liste de plus petites Zones ou bien une liste de "Window" (j'explique ce que c'est juste après). Elle contient la portion d'image qui la concerne et ses propres dimensions. + +Le parent zone ne prévoit que de pouvoir ajouter ou supprimer des éléments des listes de zones ou de windows ainsi qu'une methode qui permet d'aller chercher toutes informations des livres qu'elle contient. + +L'intérêt d'une zone est de pouvoir compartimenter une image dans des parties intéressantes au niveau de la reconnaissance mais pas de traiter d'information. + +WINDOW : + +L'objet "Window" est un objet qui peut ressembler beaucoup à l'objet "Zone". En effet elle aussi est une partie d'une image plus grande et contient ses dimensions, mais elle se distingue en deux points importants. + +- Elle ne contient pas d'autres Zones ou Windows +- Elle peut retourner les informations écrites sur son image. + +Toutes les Window qui héritent du parent Window peuvent implémenter une methode qui permet de renvoyer ce qui peut être décodé sur son image. Les enfants peuvent aussi aller piocher dans les nombresues methodes de récupèration de données contenues dans le parent Window. Mieux vaut réutiliser le plus possible que de réinventer la roue pour chaque Window. + +Une analogie un peu bancale pourrait se présenter comme la suivante : + +La zone est une armoire ou une bibliotèque. Si c'est une zone qui contient d'autres zones c'est une bibliotèque et chacune de ces sous-zones sont des armoires. Leur unique but est de contenir de manière ordonnée des objets qui eux contiennent de l'information. + +Les livres ici sont les Windows. Ils contiennet de l'information et sont stockés dans des armoires et on y accède en allant dans la bonne bibliotèque et en allant dans la bonne armoire. + +Dernières choses pour comprendre le diagramme: + +- Il existe une Main Zone qui est une des 4 grandes zones dont je parlais dans la décomposition de l'image. +- Il existe aussi des "Driver Zone" qui sont de plus petites zones contenues dans la Main Zone qui et qui ne contiennent que les informations d'un pilote. +- L'objet Window n'est quasi jamais utilisé, c'est presque tout le temps des enfants de Window plus spécifiques qui sont utilisés, le but est que chaque type d'information sur l'image aie son type de window. + +Voila donc un petit diagramme qui montre le découpage du programme : + +!["Diagramme zones"](./Images/Figma/WindowZoneExplanationDiagram.png) + +Pour visualiser encore un peu mieux comment ce découpage prend forme voici ce que chaque zone et Window contient. + +Main Zone : + +Driver Zone : + +Driver Position Window : + +Driver Name Name Window : + +Driver LapTime Window : + +Driver Tyre Window : + ### Récupération des images ### Lecture des images