Vous êtes sur la page 1sur 24

RAPPORT DE STAGE

Reconnaissance faciale du citoyen

Organisme d’accueil :
Province de Berkane

Réalisé par :
Manal Hachhach
2 ème année cycle d’ingénieur en génie informatique

Encadré par :
Mme. Nassima Tabloul
Chef de la Divion de la Gouvernance Numérique Intégrée
Province Berkane

Période de stage :
Du 3 Aout au 3 Septembre 2021

1
Remerciements

Nous tenons à exprimer nos sincères gratitudes et


nos profondes reconnaissances à toutes les personnes
qui nous ont aidées à la réalisation de ce modeste
travail.

De prime à bord, Nous tenons à remercier monsieur


le gouverneur de la province Mohamed Ali
HABOUHA d’avoir accepté notre demande de stage
et de nous avoir données cette chance pour
développer notre expérience professionnelle.

Avec toute gratitude nous adressons nos


remerciements à notre encadrante madame Nassima
TABLOUL, chef de la division de la Gouvernance
Numérique Intégrée de la PROVINCE BERKANE,
d’être à notre écoute tout au long de notre stage et de
nous apporter un soutien sans faille et des conseils
précieux.

2
Finalement, nous remercions le directeur et les
enseignants de l’Ecole Nationale des Sciences
appliquées aussi bien d’El Hoceima que d’Oujda
pour la qualité d’enseignement et leurs efforts
fournis pour notre formation.

Table des matières

Introduction ………………………………………………………………………..…4
Chapitre 1 : Présentation de l’organisme d’accueil : …………………………….....5
1. Présentation de la province de Berkane……………………………………..…..5

2. Organigramme de la province Berkane ……………………………………..….7

3. Présentation de la DGNI……………………………………………………….....8

4. Présentation du service de la gouvernance numérique , des systèmes


d’information communication et des archives……………………………….…….....8

Chapitre 2 : Déroulement de stage ……………………………………………........10

1. Description de travail ……………………………………………………………10

2. Contexte du projet .………………………………………………………………11

3. Problématique ……………………………………………………………………11

4. Outils …………..……………………………………………………………….…12

Chapitre 3 : Implémentation ………………………………………………………….15

3
1. Fichiers ……………………………………………………………………………15

2.Installations & importations ……………………………………………………16

3.Explication méthodique du code …………………………………………………16

4.Test/résultats ……………………………………………………………………..19

Défis rencontrés & solutions apportées …………………………………21


Conclusion ………………………………………………………………………...22
Documentation ………………………………………………………………….....23

Introduction

Ce rapport est la synthèse de mon travail dans le cadre de notre stage au


sein de Province Berkane. L'objectif de cette période de stage est nous
accorder une opportunité d'apprendre plus d'expériences dans tout ce qui
concerne les organismes.
Ce stage a duré un mois. Bien évidemment, ce rapport est une réflexion
d'une expérience enrichissante et motivante qui sera effectivement
accumulée et ajoutée à notre profil professionnel en tant qu'un ingénieur
des données et des connaissances.
Ce stage est destiné à faire connaissance avec l'organisme d'accueil et s'y
intégrer d'une part, d'autre part il est l'objet de découvrir le système général
et le fonctionnement de cet organisme ainsi que les méthodes générales
d'organisation. En outre cette expérience permet de partager avec le
personnel et les responsables des différentes équipes de travail leurs
tâches journalières et comprendre les conditions de travail et le système
général du fonctionnement de chaque département au sein de cette
direction.
Plus précisément un stage c'est :

4
 S'adapter à la vie de l’organisme : horaire, encadrement et
discipline.
 Découvrir un secteur d'activité et un métier.
 Avoir une première expérience concrète en passant de la
théorie à la pratique.
 Le travail d'équipe permet de Valider les savoirs et les acquis
académiques.

Chapitre 1 : Présentation de l'organisme d'accueil

1. Présentation générale de la province de Berkane :

Les origines :

La province de Berkane tire son nom de la ville de Berkane, elle est flongée au début
du 20siecle sur les anciennes ruines d'un village historiques, baptisée du nom de Sidi
Ahmed ABERKANE.
Situation Geographique :

La province de Berkane est située a ('extrême nord-est du Maroc. Elle est créée le 24
janvier 1994 et fait partie des provinces de la region de l'Oriental. Elle s'étend sur une
superficie de 1985 km2, soft 2.4% de Ia superficie de Ia region de l'Oriental. Elle est
limitée au Nord par la Méditerranée, l'Est par Ia frontière Maroc algérienne et Ia
Préfecture d'Oujda-Angad, a l'Ouest par la province de Nador at au Sud par Ia province
de Taourirt et Ia Préfecture d'Oujda-Angad..
La province de Berkane comprend une administration provinciale siégeant a Berkane et
des unités territoriales constituées de circonscriptions urbaines (pachaliks et
arrondissement) et rurales (cercles et caïdats).
D’un point de vue communal (découpage communal) cette Province est constituée de
16 Communes Territoriales :

✓ Commune Territoriale de Berakne


✓ Commune Territoriale d'ahfir

5
✓ Commune Territoriale de Sidi Slimane
✓ Commune Territoriale d'Aklim
✓ Commune Territoriale de Saidia
✓ Commune Territoriale d'Ain Reggada
✓ Commune Territoriale d'Aghbal
✓ Commune Territoriale de Fezouane
✓ Commune Territoriale de Laatamna
✓ Commune Territoriale de Madagh
✓ Commune Territoriale de Chaouihia
✓ Commune Territoriale de Boughriba
✓ Commune Territoriale de Zegzel
✓ Commune Territoriale de Tafoughalt
✓ Commune Territoriale de Sidi Bouhria
✓ Commune Territoriale de Rislane
D’un point de vue administrative, la province de Berkane est organisée comme suit :

✓ Pachalik de Ahfir : deux annexes administratives


✓ Pachalik de Berkane : cinq annexes administratives
✓ Pachalik de Saidia : deux annexes administratives
✓ Pachalik Aklim
✓ Pachalik Ain Reggada
✓ Cercle Aklim : trois caïdats
✓ Cercle Ahfir : cinq caïdats

L'administration provincial comprend outre le cabinet du Gouverneur, les structures ci-


après :

✓ Le secrétariat général : constitué de huit divisions


✓ La division des affaires intérieures
✓ La cellule de veille et de gestion des catastrophes naturelles
✓ Le cabinet qui contient le bureau d'ordre, bureau de la communication et de l'accueil
et bureau des transmissions
✓ Comité technique provincial, Comité de pilotage des projets de développement et de
convergence et les transverses

6
La province de Berkane plus précisément son secrétariat général comprend huit
divisions :

✓ Division de la Coordination de la Mise en Cohérence de la Convergence


✓ Division de l'Action Sociale de Développement Humain
✓ Division des Collectivités Territoriales et des Affaires Juridiques
✓ Division de l'Accueil des Requêtes de l'Orientation et des Affaires de Citoyen
✓ Division de l'Audit de Contrôle, du Suivi et d'Evaluation %7 Division de la Gestion des
Ressources et de la Logistique
✓ Division de la Gouvernance Numérique Intégrée
✓ Division des Etudes Techniques et de l'Urbanisme

2. Organigramme de la Province de Berkane :

La Province de Berkane est composée de plusieurs divisions et Services. Ci-dessous


un schéma représentant l'organigramme de la Province de Berkane.

PHOOCOPIE

7
2. Présentation de la DGNI :

La Division de la Gouvernance Numérique Intégrée constitue un nerf central à la


province de Berkane , et une division carrefour qui joue en outre de ses missions
techniques, une mission stratégique visant la transformation de territoire de Berkane
pour réussir un chantier phare qui est la transformation digitale, cette division est
composée de trois services : services de la gouvernance numérique, des systèmes
d’information, de communication et des archives, le service de système de production
et d'exploitation et le service du suivi et d'évaluation de la performance numérique
provinciale. Ils assurent toutes les activités de la division

8
D’une autre manière, la division peut être représentée comme suit :

4. Présentation du Service de la gouvernance Numérique, des


Systèmes d'lnformation de communication et des archives :

SGNSICA (service de la gouvernance numérique, des systèmes d'information, de


communication et des archives) est une entité qui permit de : Gérer et administrer les
systèmes de l'information « Mi-net » Gérer, explorer, entretenir et faire évaluer le SIG
provincial Conception et mise en place d'un Sl unifié, pour la dématérialisation des
processus métier et garantir la collaboration des services extérieurs Conception et mise

DGNI

S. de la Gouvernance
S. du suivi et S. de système de Numerique, des Systèmes
d'Evaluation de la Production et d'information, de
performance d'Exploitation communication et des
Archives

en place d'un si décisionnel pour les métiers clés de la province Gestion de la solution
d'archivage électronique Contribuer å la coordination et å l'unité de l'action public
territoriale

Les systèmes d'information que la division gère sont trois :


 SIG intégré
 SI provincial
 SI ministériel

SIG intégré : constitué de plus de 258 couches d’information, entre découpage,


administration, point d’intérêt, réseaux routières, assainissant, AEP, écoles et

9
établissements…cet outil représente le cockpit de la province, et son moyen de prise de
décision par excellence

SI provincial : constituant une expérience originale et pilote en matière de digitalisation


et de dématérialisation des processus métier constitué de plus d’une vingtaine de
solutions, ce SI représente un pas très avancé pour la concrétisation et la mise en place
de la vision royale de l’administration moderne en ajoutant la touche spatiale à toutes
les composantes du SI

SI Ministériel : est une infrastructure parallèle à l’information provinciale englobant les


solutions conçus par les services centraux du ministère et l’intérieur tel que les
passeports, Ramed … et dont la DGNI assure l’administration et la formation

Chapitre 2 : Déroulement de stage

1.Description de travail

1. 1. Introduction générale

10
La reconnaissance faciale est un moyen d'identifier ou de confirmer l'identité d'un
individu à l'aide de son visage (authentifier).
C'est une technologie biométrique qui permet d’analyser, grâce à des algorithmes, les
traits de visages des personnes filmées ou photographiées et de les comparer à des
images stockées dans une base de données.
L’évolution dans trois domaines techniques ont joué un rôle majeur dans le
développement des techniques de détection /reconnaissance : les mégadonnées (big
data), les réseaux de neurones convolutifs (CNN) et les puissantes unités de traitement
graphique ou GPU.
Au cours de la dernière décennie en particulier, des systèmes de reconnaissance
faciale ont été déployés partout, et les données qu'ils recueillent ont aidé les entreprises
à perfectionner leur technologie.

Comment ça marche ?

Tout d'abord, l'ordinateur doit apprendre ce qu'est un visage (computer vision).


Cela peut être fait en entraînant un algorithme (machine Learning algorithms),
généralement un réseau de neurones profonds (neural network), sur un grand nombre
de photos qui ont des visages dans des positions connues. Chaque fois que
l'algorithme est présenté avec une image, il estime où se trouve le visage. Le réseau
sera d'abord nul, Mais si cela est fait plusieurs fois, l'algorithme s'améliore et finit par
maîtriser l'art de repérer un visage. C'est l'étape de détection de visage (facial
detection).
Vient ensuite la partie reconnaissance. Cela se fait de différentes manières, il existe
plusieurs techniques et algorithmes tels que : Face Landmark Detection.

2.Contexte du projet
Notre stage s’inscrit dans le contexte d’un chantier de grande envergure qu’est le ‘’e-
Berkane’’.
Un projet qui vise la modernisation et la digitalisation des processus administratifs
notamment les processus concernant l’usager et en particulier le citoyen.
A ce propos, le DGNI a conçu des solutions clés pour les services front office de la
province relevant de la ’’Division de l’accueil, des Réclamations, de l’orientation et des
affaires de citoyens ‘’.

11
Ces applications numériques permettent de gérer et d’identifier et d’historier tous les
citoyens qui fréquentent la province via leur CIN et ce en procédant à une recherche
par leur code CNIE ou pat lecture NFC.
Pour une meilleure fluidité de l’accueil, la DGNI a proposé une authentification par
reconnaissance faciale notamment pour les selfs services sur les pupitres mis à la
disposition des usagers au niveau de l’accueil.

3.Problématique
La reconnaissance faciale présente un problème difficile dans le
Domaine de l'analyse d'images et de la vision par ordinateur. La sécurité de
l’information devient très importante et difficile.
Les caméras sont actuellement courantes dans les aéroports, les bureaux, les
universités, ATM, banque et dans tous les endroits avec un système de sécurité.
Le système de reconnaissance faciale devrait pouvoir détecter un visage dans une
image. Il s'agit d'extraire ses caractéristiques et puis le reconnaître, Indépendamment
de l'éclairage, de l'expression, de l'illumination, vieillissement, transformations
(translater, faire pivoter et redimensionner l'image) ainsi que le positionnement du
visage, ce qui est une tâche difficile.

Définition du problème :
Le problème de reconnaissance faciale peut être formulé comme Suit :
Étant donné une image de visage d'entrée et une base de données des images faciales
d'individus connus, comment vérifier où déterminer l'identité de la personne dans
l'image d'entrée ?
4.Outils
4.1 Langages : Python
Le choix d’usage de python pour l’implémentation de notre modèle vient du fait qu’il est
l’un des langages de programmation les plus accessibles disponibles car il a une
syntaxe simplifiée et non compliquée, ce qui met davantage l’accent sur le langage
naturel. En raison de sa facilité d’apprentissage et d’utilisation, les codes python

12
peuvent être facilement écrits et exécutés beaucoup plus rapidement que les autres
langages de programmation

4.2 Library : openCV

i. Introduction documentaire

OpenCV est la bibliothèque la plus populaire pour la vision par ordinateur (computer vision).
Écrit à l'origine en C/C++, il fournit désormais des liaisons pour Python.
OpenCV utilise des algorithmes d'apprentissage automatique (machine Learning) pour
rechercher des visages dans une image. Parce que les visages sont si compliqués comme c’est
déjà mentionné dans la problématique, il n'y a pas un test simple qui vous dira s'il a trouvé un
visage ou non. Au lieu de cela, il existe des milliers de petits modèles et caractéristiques qui
doivent être mis en correspondance. Les algorithmes divisent la tâche d'identification du visage
en milliers de tâches plus petites, chacune étant facile à résoudre. Ces tâches sont également
appelées classificateurs (classifiers).

ii. Regression Trees

L’apprentissage par arbre de décision désigne une méthode basée sur l'utilisation d'un arbre de
décision comme modèle prédictif. On l'utilise notamment en fouille de données et
en apprentissage automatique.
Dans ces structures d'arbre, les feuilles représentent les valeurs de la variable-cible et les
embranchements correspondent à des combinaisons de variables d'entrée qui mènent à ces
valeurs. En analyse de décision, un arbre de décision peut être utilisé pour représenter de
manière explicite les décisions réalisées et les processus qui les amènent. En apprentissage et
en fouille de données, un arbre de décision décrit les données mais pas les décisions elles-
mêmes, l'arbre serait utilisé comme point de départ au processus de décision.
C'est une technique d'apprentissage supervisé : on utilise un ensemble de données pour
lesquelles on connaît la valeur de la variable-cible afin de construire l'arbre (données dites
étiquetées), puis on extrapole les résultats à l'ensemble des données de test. Les arbres de
décision font partie des algorithmes les plus populaires en apprentissage automatique.

iii. Face Landmark Detection

13
L' algorithme Face Landmark Detection proposé par Dlib est une implémentation de l' Ensemble
of Regression Trees (ERT) présenté en 2014 par Kazemi et Sullivan . Cette technique utilise
une fonctionnalité simple et rapide ( différences d'intensités de pixels ) pour estimer directement
les positions des points de repère. Ces positions estimées sont ensuite affinées avec un
processus itératif effectué par une cascade de régresseurs. Les régresseurs produisent une
nouvelle estimation à partir de la précédente, en essayant de réduire l'erreur d'alignement des
points estimés à chaque itération. L'algorithme est extrêmement rapide, en fait, il faut environ 1
à 3 ms (sur une plate-forme de bureau) pour détecter (aligner) un ensemble de 68 points de
repère sur un visage donné.

4.3 Packages
 Numpy
NumPy signifie « Numerical Python». C'est un package pour l'analyse de données et le calcul
scientifique avec Python. NumPy utilise un objet tableau multidimensionnel et dispose de
fonctions et d'outils pour travailler avec ces tableaux. Le puissant tableau à n dimensions de
NumPy accélère le traitement des données. On l’utilisera par la suite pour transformer des
images en un tableaux (Array)

 Pillow
La bibliothèque d'imagerie Python ajoute des capacités de traitement d'images à votre
interpréteur Python.
Cette bibliothèque fournit une prise en charge étendue des formats de fichiers, une
représentation interne efficace et des capacités de traitement d'image assez puissantes.
La bibliothèque d'images de base est conçue pour un accès rapide aux données stockées dans
quelques formats de pixels de base. Il devrait fournir une base solide pour un outil général de
traitement d'images.
Le module Pillow fournit les fonctions open() et show() pour lire et afficher l'image
respectivement. Pillow convertit d'abord l'image au format . png (sur le système d'exploitation
Windows) et le stocke dans un tampon temporaire, puis l'affiche.

14
 Dlib
Dlib est une bibliothèque d'apprentissage automatique assez célèbre et impressionnante écrite
en C++, avec des API Python pratiques. Il implémente une large gamme d'algorithmes
d'apprentissage automatique qui peuvent être utilisés sur des plates-formes de bureau et
mobiles.

 Pathlib
Ce module offre des classes représentant le système de fichiers avec la sémantique appropriée
pour différents systèmes d'exploitation. Les classes de chemins sont divisées en chemins purs,
qui fournissent uniquement des opérations de manipulation sans entrées-sorties, et chemins
concrets, qui héritent des chemins purs et fournissent également les opérations d'entrées-
sorties.

 Json
La bibliothèque json peut analyser JSON à partir de chaînes ou de fichiers. La bibliothèque
analyse JSON dans un dictionnaire ou une liste Python. Il peut également convertir des
dictionnaires ou des listes Python en chaînes JSON.

 Pymongo
PyMongo est une distribution Python contenant des outils pour travailler avec MongoDB et est
la méthode recommandée pour travailler avec MongoDB à partir de Python.

4.4 Editeur : VS code

Pourquoi Visual studio code pour python ?


Travailler avec Python dans Visual Studio Code est simple, amusant et productif. L'extension
fait de VS Code un excellent éditeur Python et fonctionne sur n'importe quel système
d'exploitation avec une variété d'interpréteurs Python.
Il détecte automatiquement les installations de Python dans des emplacements standard et
nous permet de configurer des installations personnalisées. Avec chaque environnement nous
pouvons facilement gérer les packages, ouvrir une fenêtre interactive pour cet environnement et
accéder aux dossiers de l'environnement.

Chapitre 3 : Implémentation

15
1. Fichiers

Nous avons commencé tout d’abord par créer un nouveau dossier que nous avons nommé
Face-recognition qui va contenir par la suite les dossiers et les fichiers suivants :

 Le dossier « pretrained_model » contient les algorithmes qu’on utilisera par la


suite pour détecter le visage.

 Le dossier « known_faces » contient des images, que chacun d’eux est nommé
par le CIN des personnes qu’on veut reconnaitre.

 Le fichier facial_recognition.py contient la partie principale du code (main), qui


va détecter le visage à partir d’une caméra ou vidéo, en utilisant les algorithmes que
fournit dlib, puis par la suite l’idenifié.

 Attendance2.csv est un fichier excel qui contient les informations des citoyens
dont on a utilisé pour l’affichage des résultats de la reconnaissance suivi d’une date et
d’une heure marquant le passage du citoyen.

2. Installations et importations :

16
3. Explication
méthodique du code :

 Encoder le visage :

Pour encoder les images, nous avons utilisé la fonction encode_face qui va détecter le
visage par face_detector de dlib, par conséquent ça va nous retourner une lise des
coordonnées des visages sur l’image, donc nous allons envoyer l’image et la
localisation des visages dans le predictor shape 5, par suite avec la fonction
compute_face_descriptor qui va calculer un vecteur de 128 de dimension qui va décrire
le visage.

Avec shape_to_np nous récupérons les 5 points qui permettent de décrire le visage
sous forme de coordonnées pour pouvoir les afficher.

17
 Reconnaissance du visage :

Avec np.linalg.norm(visages connues – visage détecté)nous calculerons la norme de


tous les visages qui vient d’être détecté, par suite nous récupérons le visage le plus
proche qui est connue , du visage qui vient d’être détecté.

Nous avons aussi une tolérance de 0.6 , si la soustraction est inférieure à 0.6 , nous
considérons que c’est le même visage , plus que c’est proche de 0, plus les visages
sont similaires , puis nous récupérons l’index du nom.

18
Si le visage détecté est trouvé, nous chercherons dans la base de données qui est
MongoDB les informations du citoyen en utilisant le CIN comme étant une clé de
recherche pour les affichées, sinon (si le visage détecté n’est pas connu) nous
demandons au citoyen d’insérer ses données.

 Dessiner un rectangle avec OpenCV

La fonction renvoie une liste de rectangles dans lesquels elle pense avoir trouvé un
visage. Ensuite, nous bouclerons sur l'endroit où elle pense avoir trouvé quelque chose,
nous ajouterons dans une place réservée sous le rectangle l’identifiant du citoyen qui
est le CIN.

19
4.Tests /résultats:

Lors de la réalisation de notre projet, nous avons répartis le travail en 3 cas possibles
afin de satisfaire les besoins exprimés.

 Citoyen connue :

Dans ce cas, le citoyen a sa propre photo dans le dossier known_faces et ses


informations étaient enregistrer dans la base de données, donc une fois son visage
sera détecté par la camera, ses propres informations s’afficheront sur la console suite
d’une recherche dans la base de données.

Par rapport à cette recherche nous avons nommé la photo du citoyen par son CIN afin
de trouver un CIN identique à celui qui existe déjà dans la base.

20
 Citoyen inconnue :

Veut dire que les informations et la photo n’existent pas, au moment où le visage
détecté par la camera est inconnue, s’affichera dans le terminal des information à
compléter pour les insérer dans la base de données, ainsi que la camera capture son
visage et l’enregistre dans le dossier known_faces selon son CIN.

 Cas particulier :

Si les informations du citoyen existe déjà dans la base de données mais sa photo
n’existe pas, donc ça va capturer son visage automatiquement sans insérer ses
informations .

21
Défis rencontrés/ Solution apportées

1. Problèmes techniques

Nous avons rencontré quelques problèmes lorsque nous avons essayé d'importer des
modules ou des bibliothèques, car même si nous les avons installés, l'éditeur n'a pas pu
les reconnaître, et tant de problèmes similaires, mais nous avons fini par les résoudre
avec l'aide offerte de notre encadrante, qu’elle nous a appris que nous devons
comprendre la racine de ce genre de problèmes, donc nous fournirions une solution
radicale, et non des Solutions prothétiques et provisoires car ils se révéleront à
nouveau plus tard.

2. Faible précision

Lors des premiers essais nous avons obtenu d'excellents résultats pour notre modèle
pendant le processus d'apprentissage, mais lors de l'utilisation de l'ensemble de test
nous avons obtenu une précision bien faible, et parfois même erronée : tout se passe
mal. Et le plus grand défi, c'était que nous ne savions pas où ça s'était mal passé. Ce
qui nous a fait penser à tous les facteurs qui affectent la précision du modèle, revérifier
chacun d’eux, modifier les mesures, et revérifier à chaque fois si cela améliore la
précision ou non, nous avons commencé par effectuer quelques traitements sur les
images, comme les redimensionner, nous avons également vérifié les données que
nous utilisions pour entraîner le modèle, était-ce assez de données ? les images
étaient-elles claires ? etc. jusqu'à ce que la précision commence à s'améliorer.

22
Conclusion

En conclusion, ce stage a été très utile pour nous. C’était une expérience
excellente et enrichissante.
Nous pouvons dire en toute sécurité que notre compréhension de
l'environnement de travail s'est considérablement améliorée et notre esprit
d’équipe s’est bien concrétisé au sein de la DGNI. Cependant, nous
pensons qu'il y a certains aspects du travail que nous aurions pu mieux
faire et sur lesquels nous devons travailler. Nous avons appris d'acquérir
plus de confiance pour essayer de nouvelles idées et appliquer de
nouveaux principes, les mettre à jour ou les modifier pour les adapter aux
besoins professionnels, même s'ils semblent différents et parfois difficiles,
nous avons appris à nous laisser échouer et à réessayer librement parce
que c'est ainsi que la connaissance est acquise, et que rien n’est possible.

D’autre part, nous avons réalisé que nous aurions pu terminer le travail
plus tôt que nous ne l'avons fait. De plus, les parties techniques du travail
étaient un peu imparfaites et nous m'avons demandé à plusieurs reprises
de les corriger.

Dans l'ensemble, ce stage a été une expérience précieuse. Nous avons


acquis de nouvelles connaissances, compétences et rencontré de
nouvelles personnes. Nous avons atteint plusieurs objectifs
d'apprentissage, mais il y a toujours beaucoup plus à apprendre.

Le stage a également permis de découvrir quelles sont nos forces et nos


faiblesses. Cela nous a aidé à définir les compétences et les aspects que
nous devons améliorer dans le temps à venir.

23
Documentation

https://www.w3schools.com/python/default.asp
https://www.geeksforgeeks.org/
https://stackoverflow.com/

Fin du rapport .

24

Vous aimerez peut-être aussi