Added technical difficulties to the doc

This commit is contained in:
2023-06-06 15:43:42 +02:00
parent 8a69b42d9b
commit 6653eee01c
22 changed files with 44 additions and 5267 deletions
+44 -2
View File
@@ -250,7 +250,7 @@ Si j'avais passé ne serait-ce qu'une semaine de plus juste sur l'affichage le r
Le soucis c'est simplement que le cahier des charges ne parle pas du tout du reste du projet et ne parle que du résultat final.
Pour toutes ces raisons je dirais que l'application est conforme à l'idée générale du CDC et qu'il serait très facile de la rendre parfaitement conforme maintenant que tout le travail de fond a été fait et fonctionne et je pense donc que c'est un succès.
Pour toutes ces raisons je dirais que le CDC était trop superficiel mais que l'application est conforme à l'idée générale de ce dernier et qu'il serait très facile de la rendre parfaitement conforme maintenant que tout le travail de fond a été fait et fonctionne et je pense donc que c'est un succès.
## Planning prévisionnel
@@ -2230,7 +2230,49 @@ Ecrire des tests c'est jamais marrant et c'est encore moins marrant quand ils no
----
[A remplir au fur et à mesure dans la seconde moitié du travail de diplôme]
Ici je vais parler très rapidement des difficultées techniques rencontrées. Si vous voulez tout savoir à propos des difficultées vous pouvez aller lire le journal de bord. C'est aussi pour éviter de me répèter par rapport aux explications des différents points dans l'analyse organique.
Je vais pas non plus parler des difficultées rencontrée avec des choses que je n'ai pas gardé dans le programme final donc il est normal que vous vous disiez qu'il n'y a pas eu tant de difficultés que ca.
### Browser Headless
Il y avait plusieurs difficultées techniques avec cette histoire de Browser Headless.
Deja pouvoir lancer un browser headless et le contrôler. C'est difficile car il faut trouver la bonne librairie et ensuite il faut trouver le bon exectuable de geckoDriver qui permette de faire fonctionner l'application même si l'utilisateur n'a pas Firefox sur sa machine.
Ensuite la seconde difficulté est celle de ne pas se faire chopper comme un bot par le site de la F1TV. Il faut savoir qu'à ce jour je n'ai toujours pas réussi à faire croire à la page de login de la F1TV que j'étais un user normal en utilisant Selnnium mais au moins maintenant je peux accèder aux vidéos tranquillement.
Ce soucis de ne pas pouvoir se connecter avec la page de login à la plus grosse difficulté technique de cette partie du projet : la connexion automatique. Pour me connecter à la F1TV avec un browser headless la seule solution que j'ai trouvé a été d'utiliser des cookies. Et pour que l'utilisateur n'aie pas à aller chercher les siens dans son navigateur il a fallut trouver une technique pour aller les chercher directement sans lui demander son avis.
Autre difficutlé, comme on travaille avec un site web que l'on ne contrôle pas, il faut trouver un moyen de gèrer les erreurs et de réessayer parfois et attendre quand il faut dans les cas ou le chargement est long etc...
Ensuite après tout ca la dernière difficulté a été de pouvoir contrôler le firefox Headless assez bien pour qu'il puisse non seulement naviguer les pages mais aussi qu'il puisse cliquer sur des boutons qui ne s'affichent pas tout le temps.
(Je ne vais pas mentioner la difficulté que ca a été de mettre le browser en 4K pour des raison de santé mentale)
### OCR
Les difficultées ici sont dans un autre niveau. Chaque type de donnée représentait sa difficulté à lui tout seul sans compter l'optimisation.
Pour commencer on a le texte pour les noms de pilotes. Il a fallu trouver un système qui puisse reconnaitre le texte et qui puisse comparer le résultat avec les pilotes que l'on connait.
Ensuite il a fallu trouver un moyen de detecter la différence entre les fenêtres de DRS où il est ouvert ou fermé. Il fallait également faire attention à ne pas faire de faux positifs.
Pour les temps par secteurs il a fallu trouver des filtres qui permettent de bien différencier les '1' et les '4' sans les confondre et il a aussi fallut trouver un moyen de filter l'image pour que dans le cas ou le texte serait en couleur ca fonctionne quand même. (Car oui un filtre de nuances de gris ne marche pas super avec des couleurs sombres)
Pour les pneus (le plus dur) il a fallut trouver un moyen de trouver sur toute la longeur de la zone la partie intéressante. Ensuite il a fallut trouver une technique pour savoir quel type de pneu c'est en fonction de la couleur moyenne et ensuite le plus dur a été d'isoler le chiffre du dessin autour car Tesseract aime pas les formes, le tout automatiquement.
Pour les temps au tour il a fallut trouver un moyen de ne pas confondre les ponctuations avec des chiffres tout en ne les ratant pas. Et il a fallu trouver un moyen de detecter quand inévitablement cela arrive quand même.
Et la dernière difficulté (la plus pénible) a été de detecter les écarts entre les pilotes. Il a fallut trouver une facon de decoder le texte en temps mais aussi de faire tout un système qui détecte et règle les cas ou un ':' a été oublié ou confondu tout en ne sachant pas si il était scensé y en avoir à la base car les valeurs peuvent varier entre '1_23.657' et '0.452'.
### Stockage
Pour ce qui est du stockage la grande difficulté a été de savoir quand un pilote avait avait finit un tour car chaque pilote finit son tour à un moment différent. Il a également fallut trouver un moyen de savoir les données d'un pilote étaient logiques.
Une difficulté qui n'a pas été complêtement dépassée est de savoir quand un pilote a fait un arrêt aux stands car la detection de l'age des pneus est plus que mauvaise.
Voila. Ce fut une petite liste non exhaustive de quelques difficultés techniques que j'ai rencontré pendant ce projet.
## Optimisation du programme