Vous êtes sur la page 1sur 168

République Tunisienne

Ministère de l’Enseignement Supérieur


et de la Recherche Scientifique

Université de Tunis El Manar

Institut Supérieur d’Informatique d’El Manar

Rapport de Stage de Fin d’Études

Présenté en vue de l’obtention du

Diplôme National de Licence en Ingénierie des Systèmes Informatiques


Spécialité : Ingénierie des Réseaux et Systèmes

Par

Chayma ZAOUALI

Inspection des pylônes de télécommunication par


un drone intelligent

Encadrant professionnel : Monsieur Mourad Ben Mna


Encadrant académique : Madame Ghayet El Mouna Zhioua

Réalisé au sein de Sotetel

Année Universitaire 2022 - 2023


République Tunisienne

Ministère de l’Enseignement Supérieur


et de la Recherche Scientifique

Université de Tunis El Manar

Institut Supérieur d’Informatique d’El Manar

Rapport de Stage de Fin d’Études

Présenté en vue de l’obtention du

Diplôme National de Licence en Ingénierie des Systèmes Informatiques


Spécialité : Ingénierie des Réseaux et Systèmes

Par

Chayma ZAOUALI

Inspection des pylônes de télécommunication par


un drone intelligent

Encadrant professionnel : Monsieur Mourad Ben Mna


Encadrant académique : Madame Ghayet El Mouna Zhioua

Réalisé au sein de Sotetel

Année Universitaire 2022 - 2023


J’autorise l’étudiant à faire le dépôt de son rapport de stage en vue d’une soutenance.

Encadrant professionnel, Monsieur Mourad Ben Mna

Signature et cachet

J’autorise l’étudiant à faire le dépôt de son rapport de stage en vue d’une soutenance.

Encadrant académique, Madame Ghayet El Mouna Zhioua

Signature
Dédicaces

Chers êtres aimés, vous qui avez fait battre mon cœur à chaque étape

de ce voyage extraordinaire, je vous dédie ces mots empreints d’émotion. Votre


présence bienveillante et votre amour inconditionnel ont illuminé ma vie de

façon indescriptible. À mes parents adorés, vous êtes mon roc, ma source
d’inspiration constante. À mon frère et ma sœur, vous êtes mes compagnons

de vie, mes alliés inébranlables. À ma famille élargie, vous êtes mes anges
gardiens, mes rayons de lumière dans les moments sombres. À mes chers amis,

vous êtes devenus ma deuxième famille, partageant les hauts et les bas de
cette aventure. À mes professeurs et mentors, vous êtes les artisans de ma

transformation, allumant la flamme de la connaissance. À l’équipe DroneVision,


nous avons créé quelque chose de magique ensemble, repoussant les limites. À

toutes les personnes qui m’ont soutenu de près ou de loin, vos encouragements
et votre soutien indéfectible ont été mes bouées de sauvetage. À vous tous, qui

avez aimé, cru en moi et m’avez accompagnée dans cette aventure, je vous suis
infiniment reconnaissante. Vos souvenirs précieux resteront gravés dans mon

cœur à jamais. Merci, du plus profond de mon être.

Chayma ZAOUALI

ii
Remerciements

Tel une symphonie s’élevant dans un concert à l’aube, je trace ces mots dans l’espoir
de peindre une toile d’émotions infinies, un tableau de gratitude qui transcende les limites de
l’expression. Chaque note qui s’élève, chaque touche de couleur qui émerge, chaque mot qui
se pose sur cette page est un hommage à ceux qui ont été la musique de ma vie, la palette
de couleurs de mon existence, les étoiles qui ont éclairé mon voyage.
Mon père, Zaouali Nabil, mon phare dans l’obscurité, ma boussole dans les tempêtes,
ma force lorsque la fatigue menaçait de me vaincre. Vous êtes un poème d’inspiration qui a
guidé mon pas, une mélodie qui a apaisé mes soucis. En tant que votre enfant, je porte en
moi l’écho de vos enseignements, l’héritage de votre amour.
Ma mère, Rajhi Dalel, fleur du matin et lueur de l’aube, votre amour est une chanson
qui danse dans le silence, une étreinte qui apaise les chagrins. Vous êtes le soleil qui a toujours
éclairé mon chemin, la lune qui a veillé sur mes rêves.
Mon frère, Omar Zaouali et ma sœur, Aicha Zaouali, mes compagnons d’aventure,
nos vies sont entrelacées comme les notes d’une chanson. Les éclats de rire, les secrets
chuchotés, les défis relevés ensemble ont créé une mélodie unique que nous partageons.
À mon oncle, Habib Zaouali et ma tante, Naima Zaouali, bien que vous ne soyez
plus de ce monde, votre amour résonne toujours en moi, une mélodie silencieuse qui bat au
rythme de mon cœur. Cette victoire, je vous la dédie.
Mes amies, Amira Karoui et Chaima Mami, vous êtes des sœurs de cœur, des
reflets de moi-même. Les éclats de rire, les larmes partagées, les rêves échangés ont tissé une
toile d’amitié indestructible.
À ma seconde famille, la famille Mami, Mme Hela Ben Ali épouse Mami
et Mr Sadek Mami, votre affection a été comme une douce mélodie dans les moments de
silence, une étoile brillante dans la nuit. Vous avez embrassé mes rêves comme les vôtres, et
pour cela, je vous suis éternellement reconnaissante.
À la famille Karoui, en particulier à Madame Achwek Tabessi, votre bienveillance
et votre amour ont été comme une chanson d’espoir qui m’a donné la force de poursuivre
mes rêves.

iii
À Mme Ghayet El Mouna Zhioua, ma professeure et encadrante de projet, pour
son accompagnement et son soutien tout au long de ce travail. Ses conseils avisés, son
expertise et sa disponibilité ont été d’une aide précieuse pour avancer le projet et atteindre
mes objectifs. Je tiens particulièrement à souligner son encouragement constant, qui m’a
permis de garder le cap et de me dépasser dans mon travail. Je vous remercie infiniment pour
tout ce que vous avez fait pour moi.
À Mes professeurs, Madame Nihel Ben Youssef , Monsieur Yassine Nourri,
Madame Mouna Bencheikh, Madame Hela Guermassi, Monsieur Ramzi Draoui
et Monsieur Adel Ben Salah, vos enseignements ont été des notes d’inspiration, des mots
de sagesse qui ont sculpté mon chemin académique et personnel.
À Mme Mariem Kallel, qui a été une source d’inspiration pour moi tout au long
de mon projet. Sa propre histoire de vie et ses échanges avec le cancer du sein m’ont motivé
à avancer malgré les obstacles, et à garder le sourire et la force de caractère en toutes
circonstances. Son courage et sa détermination sont un exemple pour moi, et j’ai été touchée
par sa sensibilité et son talent artistique. Je suis fière d’avoir été son étudiante et je suis
convaincue que son histoire inspirante continuera d’aider de nombreuses personnes dans leur
propre lutte contre la maladie. Merci infiniment pour son encouragement et son inspiration
chaque jour.
À Mr Fawzi Saidi, directeur commercial de SOTETEL, votre soutien inébranlable
a été la clé de notre réussite. Votre foi en nous a été comme une musique de motivation qui
nous a poussés à nous surpasser.
À Monsieur Hedi Abou Khalil , vous n’avez pas seulement été un professeur, mais
un mentor, un guide. Vous avez su éveiller en moi l’audace de rêver plus grand, l’ambition
d’atteindre l’extraordinaire.
À mes amis, Ranim Gouider, Sinda Galai, Oussama Cherni, Malek Bel Hadj
Ali, Malek Ziedi, Anas Arayedh, Med Salah Meddeb, Youssef Jedidi, Maram
Jlassi, Mehdi Merieh, Ibrahim Schmitt et Hichem Amamou, vous êtes le chœur de
mon existence, une mélodie d’amitié qui a rythmé chaque étape de ce voyage.
À la famille Poulina, Kais, Amal Jridi, Rami Mansouri, Asma Ben Chouchene,
Hamdi Kadri, Najah Aflouk, une famille avec laquelle nous avons partagé des moments
inoubliables .

iv
À L’équipe DroneVision, merci d’avoir partagé cette aventure avec moi. Nous
avons relevé les défis ensemble, repoussé nos limites et développé notre vision du projet
avec détermination et passion. Notre travail acharné a porté ses fruits et c’est à vous tous
que je dois cette réussite. Sachez que ce n’est pas un point d’arrêt, mais le commencement
de notre aventure.
Je remercie les membres du jury pour leur temps et leur attention lors de l’évaluation
de mon travail.
Mr Mourad Ben Mna, mon encadrant professionnel au sein d’un acteur de référence
dans le domaine des télécommunications, merci de m’avoir accueilli et encadré pendant mon
stage.
Je tiens à exprimer ma sincère gratitude envers l’ISI, l’Institut Supérieur
d’Informatique, pour son soutien inestimable tout au long de mon parcours académique.
Enfin, je tiens à exprimer ma gratitude envers la société SOTETEL qui m’a accordé
l’opportunité de réaliser mon stage professionnel au sein de leur entreprise.
Chaque mot de cette reconnaissance est une note de gratitude, une touche de couleur
sur la toile de ma vie. Je vous remercie tous de tout mon cœur pour avoir été les artistes qui
ont peint cette toile, les musiciens qui ont créé cette symphonie. La musique de ma vie, la
toile de mon existence, porte l’empreinte indélébile de chacun de vous.

v
Table des matières

Introduction générale 1

1 Préparation et Contexte du Projet 3


1.1 Organisme d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.1 Domaines d’activités : . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1.2 Position sur le marché de Sotetel : . . . . . . . . . . . . . . . . . . . . . 4
1.1.3 Départements de SOTETEL : . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Présentation du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Méthodologie de travail Scrum . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.2 Choix outils de gestion de projet agile . . . . . . . . . . . . . . . . . . 17
1.2.3 Drone : la nouvelle technologie pour une inspection sécurisée . . . . . . 17
1.2.4 Types de vol de drones . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2.5 Différentes configurations de drones : comparaison . . . . . . . . . . . . 18

2 Fabrication du Drone : Sélection, Assemblage des Composants et Essais de


Vol 23
2.1 Choix des composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.1 La structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.1.2 Terrain d’atterrissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.1.3 Le système de propulsion . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.1.4 Système de Contrôle : Contrôleur de vol . . . . . . . . . . . . . . . . . 37
2.1.5 Système de Communication . . . . . . . . . . . . . . . . . . . . . . . . 44
2.2 Achat des composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.3 Assemblage des composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.4 Configuration du système de Contrôle et Communication . . . . . . . . . . . . 49
2.4.1 Appairage du récepteur et de la radiocommande Flysky FS-i6X . . . . 49
2.4.2 Configuration du Flysky (radiocommande) . . . . . . . . . . . . . . . 49
2.4.3 Configuration du KK2.1.5 . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.5 Test de vol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

vi
3 Capture d’Images des Pylônes et Stockage dans Google Drive grâce à l’IoT 59
3.1 Définition de l’IoT et son rôle dans l’inspection des pylônes . . . . . . . . . . . 60
3.2 Représentation d’une caméra ESP32 CAM . . . . . . . . . . . . . . . . . . . . 61
3.3 Création et Mise en place de Google Apps Script . . . . . . . . . . . . . . . . 63
3.4 Test de la caméra sur l’ESP32-CAM . . . . . . . . . . . . . . . . . . . . . . . 66
3.5 Intégration de l’ESP 32-CAM avec Google Drive . . . . . . . . . . . . . . . . . 67

4 Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle 71


4.1 Détection d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.1.1 Préparation des Images pour la Détection d’objets . . . . . . . . . . . . 73
4.1.2 Labellisation des images . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.1.3 Choix du modèle YOLOv5m pour une détection d’objets précise et
performante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.1.4 Entraînement et évaluation du modèle YOLOv5m pour la détection
d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.1.5 Organisation des images labellisées automatiquement . . . . . . . . . . 104
4.1.6 Architecture du modèle YOLOv5m . . . . . . . . . . . . . . . . . . . . 104
4.1.7 Entraînement du modèle YOLOv5m . . . . . . . . . . . . . . . . . . . 104
4.1.8 Evaluation du modèle YOLOv5m . . . . . . . . . . . . . . . . . . . . . 108
4.1.9 Applications de la détection d’objets . . . . . . . . . . . . . . . . . . . 110
4.2 Détection de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
4.2.1 Amélioration de la qualité de l’image . . . . . . . . . . . . . . . . . . . 112
4.2.2 Tesseract OCR pour la reconnaissance de texte sur images traitées . . . 116

5 Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes 117
5.1 Architecture avec Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.2 Interconnexion entre Django et Google Drive . . . . . . . . . . . . . . . . . . . 119
5.2.1 L’intégration de l’API Google Drive . . . . . . . . . . . . . . . . . . . 119
5.2.2 Authentification OAuth . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.2.3 Gestion des erreurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.2.4 Stockage des images . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

vii
5.2.5 Obtention des informations d’authentification pour l’API Google Drive
à partir d’un fichier JSON dans Django . . . . . . . . . . . . . . . . . . 121
5.3 Intégration du modèle YOLOv5m avec Django . . . . . . . . . . . . . . . . . . 122
5.3.1 Chargement du modèle YOLOv5m . . . . . . . . . . . . . . . . . . . . 122
5.3.2 Chargement des classes d’objets . . . . . . . . . . . . . . . . . . . . . 123
5.3.3 Téléchargement d’images depuis Google Drive . . . . . . . . . . . . . . 123
5.3.4 Traitement d’images et détection d’objets . . . . . . . . . . . . . . . . 123
5.3.5 Enregistrement des résultats . . . . . . . . . . . . . . . . . . . . . . . 124
5.3.6 Affichage des résultats de détection . . . . . . . . . . . . . . . . . . . . 125
5.4 Intégration du modèle Tesseract OCR avec Django . . . . . . . . . . . . . . . 126
5.4.1 création d’une application dans le serveur django . . . . . . . . . . . . 126
5.4.2 Enregistrement du texte dans une base de données SQLite . . . . . . . 128
5.4.3 Modification de la base de données de SQLite a PostgreSQL . . . . . . 131
5.5 Conception et réalisation du Dashboard avec Django . . . . . . . . . . . . . . 136
5.5.1 Technologies front-end utilisées : HTML, CSS, JavaScript . . . . . . . . 136
5.5.2 Intégration de la 3D Spline/Sketchfab . . . . . . . . . . . . . . . . . . 136
5.5.3 Inventaire des antennes . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
5.5.4 Conditions environnementales . . . . . . . . . . . . . . . . . . . . . . . 139
5.5.5 Authentification et gestion des utilisateurs . . . . . . . . . . . . . . . . 139
5.5.6 Conception de la Landing Page et affichage des informations essentielles 141
5.5.7 Création d’un formulaire pour les informations sur les équipements des
pylônes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

Bibliographie 148

viii
Table des figures

1.1 Les composants d’un pylône de télécommunication . . . . . . . . . . . . . . . . 6


1.2 Méthodes d’inspection classiques des pylônes de télécoms . . . . . . . . . . . . 7
1.3 Synopsis du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Inspection des pylônes de télécoms avec drone IA et IoT . . . . . . . . . . . . 9
1.5 Méthodologie de travail Scrum . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Les différentes cérémonies de Scrum . . . . . . . . . . . . . . . . . . . . . . . . 12
1.7 Sprints partie 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.8 Sprints partie 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.9 Backlog de produit partie 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.10 Backlog de produit partie 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.11 Backlog de produit partie 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.12 Backlog de produit partie 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.13 Backlog de produit partie 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.14 Backlog de produit partie 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.15 Backlog de produit partie 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.16 Tricoptère : configuration à trois moteurs . . . . . . . . . . . . . . . . . . . . . 19
1.17 Octocoptère : configuration à huit moteurs . . . . . . . . . . . . . . . . . . . . 19
1.18 Hexacoptère : configuration à six moteurs . . . . . . . . . . . . . . . . . . . . . 20
1.19 Quadricoptère : configuration à quatre moteurs . . . . . . . . . . . . . . . . . 20

2.1 Processus de Fabrication du Drone . . . . . . . . . . . . . . . . . . . . . . . . 24


2.2 Conception du châssis du drone DJI F450 . . . . . . . . . . . . . . . . . . . . 28
2.3 Conception du terrain d’atterrissage . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4 Préparation du modèle du terrain d’atterrissage . . . . . . . . . . . . . . . . . 29
2.5 Impression 3D terrains atterrissage avec PLA . . . . . . . . . . . . . . . . . . 29
2.6 Conception des moteurs brushless . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.7 Diamètre d’une hélice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.8 Pas d’une hélice (un tour) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

ix
Table des figures

2.9 Montage des hélices CW et CCW pour un quadricoptère . . . . . . . . . . . . 33


2.10 Montage d’une hélice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.11 Contrôleur de vitesse 30A pour moteurs brushless . . . . . . . . . . . . . . . . 34
2.12 Connecteurs ESC pour une connexion fiable . . . . . . . . . . . . . . . . . . . 35
2.13 Les différents fils de connexion de l’ESC . . . . . . . . . . . . . . . . . . . . . 36
2.14 Batterie Lipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.15 Contrôleur de vol KK2.1.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.16 Broches du Contrôleur de vol KK2.1.5 . . . . . . . . . . . . . . . . . . . . . . 42
2.17 Connexion du contrôleur KK2.1 avec les composants du drone . . . . . . . . . 43
2.18 Radiocommande Flysky FS-i6X 6 canaux . . . . . . . . . . . . . . . . . . . . . 44
2.19 Récepteur Flysky FS-IA6 : Conception avec SolidWorks . . . . . . . . . . . . . 45
2.20 Achat des composants pour la construction du drone . . . . . . . . . . . . . . 46
2.21 Branchement et connexion des moteurs aux bras et aux ESC . . . . . . . . . . 47
2.22 Câblage du contrôleur de vol avec les composants du drone . . . . . . . . . . . 48
2.23 Résultat de l’Assemblage du Drone . . . . . . . . . . . . . . . . . . . . . . . . 49
2.24 Configuration du quadricoptère en mode X . . . . . . . . . . . . . . . . . . . . 50
2.25 Calibration automatique de l’accéléromètre . . . . . . . . . . . . . . . . . . . . 51
2.26 Réinitialisation de l’alimentation pour passer de l’état "Erreur" à l’état "Sécurisé" 51
2.27 Réglage des gains P et I, Étape 1 . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.28 Réglage des gains P et I, Étape 2 . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.29 Configuration du mode de stabilisation automatique "Self-Level" . . . . . . . . 52
2.30 Configuration de l’alarme de tension dans les paramètres divers . . . . . . . . 53
2.31 Armement du drone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.32 Manipulation du joystick de la radiocommande (Aileron) . . . . . . . . . . . . 55
2.33 Manipulation du joystick de la radiocommande (Elevator) . . . . . . . . . . . 55
2.34 Manipulation du joystick de la radiocommande (Rudder) . . . . . . . . . . . . 56
2.35 Alimentation à découpage de 40A à 12V . . . . . . . . . . . . . . . . . . . . . 57
2.36 Vol du drone après les améliorations apportées au système d’alimentation et
à la stabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

3.1 ESP32-CAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

x
Table des figures

3.2 Conception 3D de l’ESP 32 CAM . . . . . . . . . . . . . . . . . . . . . . . . . 63


3.3 Création d’un projet Google Apps Script . . . . . . . . . . . . . . . . . . . . . 64
3.4 Réception et enregistrement des photos de l’ESP32-CAM . . . . . . . . . . . . 64
3.5 Déploiement du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.6 ID de déploiement et URL fournis pour le projet . . . . . . . . . . . . . . . . . 65
3.7 Code de téléversement pour l’ESP32-CAM sur la carte . . . . . . . . . . . . . 66
3.8 Initialisation des bibliothèques . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.9 Connexion WiFi de l’ESP32-CAM . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.10 Définition des broches GPIO pour l’ESP32-CAM . . . . . . . . . . . . . . . . 68
3.11 Identifiants pour l’envoi d’images vers Google Drive . . . . . . . . . . . . . . . 69
3.12 stockage des images prise par ESP32-cam sur Google Drive . . . . . . . . . . . 69

4.1 Processus de détection d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . 73


4.2 Script Python du Web scraping . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.3 Exploration des résultats capturés lors de la session de web scraping . . . . . . 74
4.4 Exemple d’image de la base de données de SOTETEL . . . . . . . . . . . . . . 76
4.5 Classification pour une détection précise d’objets cibles . . . . . . . . . . . . . 77
4.6 Ouvrir LabelImg depuis la ligne de commande . . . . . . . . . . . . . . . . . . 78
4.7 Un exemple d’étiquetage manuel avec LabelImg . . . . . . . . . . . . . . . . . 78
4.8 le format d’annotation Pascal VOC . . . . . . . . . . . . . . . . . . . . . . . . 79
4.9 le format d’annotation Pascal COCO . . . . . . . . . . . . . . . . . . . . . . . 80
4.10 Nommage cohérent des images et de leurs annotations . . . . . . . . . . . . . . 81
4.11 Structure optimale pour annotations et images . . . . . . . . . . . . . . . . . . 82
4.12 Tableau de comparaison entre les modèles YOLOv5 . . . . . . . . . . . . . . . 83
4.13 Configuration du fichier YAML . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.14 Conversion d’annotations YOLO en fichier CSV avec un script Python . . . . 86
4.15 Extraction réussie des annotations YOLO vers un fichier CSV . . . . . . . . . 86
4.16 Script Python pour la génération d’ancres optimisées . . . . . . . . . . . . . . 87
4.17 Préparation des données d’entrée avec NumPy . . . . . . . . . . . . . . . . . . 87
4.18 Résultats de la génération des ancres optimisées et valeur de l’IOU . . . . . . . 88
4.19 Intégration des ancres optimisées . . . . . . . . . . . . . . . . . . . . . . . . . 88

xi
Table des figures

4.20 Un schéma clair pour visualiser les notions de batch et d’epoch . . . . . . . . 89


4.21 Exemple pratique des concepts de batch et d’epoch . . . . . . . . . . . . . . . 90
4.22 Statistiques de performance tout au long de l’entraînement . . . . . . . . . . . 91
4.23 Courbes d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.24 Courbes de précision et de rappel . . . . . . . . . . . . . . . . . . . . . . . . . 93
4.25 Courbes de mAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.26 Images de test avec étiquettes manuelles - Classe Boulon rouillé . . . . . . . . 94
4.27 Images de test avec prédictions et confiance - Classe Boulon rouillé . . . . . . 95
4.28 modification de l’option "save-txt=True" . . . . . . . . . . . . . . . . . . . . . 96
4.29 Création d’un dossier de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.30 Enregistrement des annotations au format YOLO . . . . . . . . . . . . . . . . 96
4.31 Eexécution du script detect.py . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
4.32 Stockage organisé des images dans le dossier de sortie “output” . . . . . . . . . 97
4.33 Stockage organisé des annotations au format YOLO dans le dossier "labels" . 98
4.34 Déplacement des images d’entrée dans le sous-dossier "labels" . . . . . . . . . 98
4.35 visualiser les images et leurs boîtes englobantes avec LabelImg . . . . . . . . . 99
4.36 Vérification de l’installation du CUDA Toolkit et du cuDNN . . . . . . . . . . 103
4.37 Vérification du GPU et de la version CUDA . . . . . . . . . . . . . . . . . . . 103
4.38 Entraînement du modèle avec GPU : Utilisation optimale du GPU . . . . . . . 105
4.39 Utilisation de la mémoire lors de l’entraînement sans GPU . . . . . . . . . . . 106
4.40 Utilisation du processeur lors de l’entraînement sans GPU . . . . . . . . . . . 107
4.41 Utilisation des ressources matérielles avec GPU et workers . . . . . . . . . . . 107
4.42 Entraînement du modèle avec GPU et workers . . . . . . . . . . . . . . . . . . 108
4.43 Images de test annotées : antenne . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.44 Prédictions du modèle pour les images de test - Classe Antenne . . . . . . . . 109
4.45 Application de la détection d’objets avec le modèle yolov5m . . . . . . . . . . 111
4.46 Processus de détection de texte . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.47 Amélioration d’image : Prétraitement avec ’preprocess-image’ . . . . . . . . . 113
4.48 Prétraitement d’image binaire pour meilleure reconnaissance des caractères . . 114
4.49 Image originale avant traitement . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.50 Amélioration de la qualité de l’image . . . . . . . . . . . . . . . . . . . . . . . 115

xii
Table des figures

4.51 Résultat de la détection de texte . . . . . . . . . . . . . . . . . . . . . . . . . 116

5.1 Django : Site web d’Analyse Visuelle avec Détection, Stockage et Visualisation
des résultats de détection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
5.2 Flux d’authentification OAuth avec Google Drive . . . . . . . . . . . . . . . . 120
5.3 Gestion sécurisée de l’authentification OAuth avec Django . . . . . . . . . . . 120
5.4 la fonction get google credentials . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.5 Script Python pour téléchargement les images depuis Google Drive . . . . . . 123
5.6 stockage des informations daNs le fichier statique . . . . . . . . . . . . . . . . 125
5.7 Affichage des résultats de détection des antennes sur le site web . . . . . . . . 126
5.8 Création une application ‘ocr-app’ dans le serveur Django . . . . . . . . . . . . 126
5.9 Implémentation dans views.py . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.10 Affichage des résultats dans une page HTML . . . . . . . . . . . . . . . . . . . 128
5.11 Modèle OCRResult pour le stockage des résultats OCR . . . . . . . . . . . . . 128
5.12 Création et application d’une migration dans SQLite . . . . . . . . . . . . . . 129
5.13 Modification de la fonction ‘ocr-results‘ . . . . . . . . . . . . . . . . . . . . . . 129
5.14 création de la fonction ‘ocr-results-list’ . . . . . . . . . . . . . . . . . . . . . . 129
5.15 Ajout de l’URL dans le fichier ‘urls.py’ . . . . . . . . . . . . . . . . . . . . . . 130
5.16 Création du fichier HTML ’ocr-results-list.html’ . . . . . . . . . . . . . . . . . 130
5.17 Affichage de la liste des résultats OCR . . . . . . . . . . . . . . . . . . . . . . 130
5.18 Installation et configuration de PostgreSQL . . . . . . . . . . . . . . . . . . . 131
5.19 Connexion à PostgreSQL en tant qu’utilisateur "postgres" . . . . . . . . . . . 132
5.20 Création d’une base de données PostgreSQL . . . . . . . . . . . . . . . . . . . 132
5.21 Création d’un utilisateur dans PostgreSQL . . . . . . . . . . . . . . . . . . . . 132
5.22 Attribution des privilèges à l’utilisateur . . . . . . . . . . . . . . . . . . . . . 132
5.23 Configuration de la base de données PostgreSQL . . . . . . . . . . . . . . . . . 133
5.24 Application d’une migration dans PostgreSQL . . . . . . . . . . . . . . . . . . 133
5.25 Extraction de sous-chaîne avec expression régulière . . . . . . . . . . . . . . . 134
5.26 Extraction d’informations grâce aux expressions régulières . . . . . . . . . . . 135
5.27 Stockage d’informations dans un dictionnaire . . . . . . . . . . . . . . . . . . . 135
5.28 affichage des résultats de détection du texte sur le site web . . . . . . . . . . . 136

xiii
5.29 Représentation en 3D d’un Pylône . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.30 Visualisation 3D du Tableau de Bord Interactif . . . . . . . . . . . . . . . . . 137
5.31 Illustration 3D de l’Architecture Complexe du Système . . . . . . . . . . . . . 138
5.32 Affichage des résultats détectés sur le site web . . . . . . . . . . . . . . . . . . 138
5.33 Affichage des résultats détectés sur le site web . . . . . . . . . . . . . . . . . . 139
5.34 Processus d’Authentification : Inscription des Utilisateurs . . . . . . . . . . . . 140
5.35 Processus d’Authentification : Connexion des Utilisateurs . . . . . . . . . . . . 140
5.36 Page d’Accueil : Visualisations 3D du Tableau de Bord . . . . . . . . . . . . . 141
5.37 Page d’Accueil : Visualisations 3D de l’Architecture du Système . . . . . . . . 142
5.38 Page d’Accueil : Aperçu général du projet d’inspection des pylônes par drone
intelligent 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
5.39 Page d’Accueil : Aperçu général du projet d’inspection des pylônes par drone
intelligent 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
5.40 Page d’Accueil : Aperçu général du projet d’inspection des pylônes par drone
intelligent 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
5.41 Formulaire : Spécifications, Type de l’Équipement BTS . . . . . . . . . . . . . 144
5.42 Formulaire : Informations sur l’Équipement d’Antenne et Câbles Associés . . . 144

xiv
Liste des tableaux

2.1 Tableau comparatif des modèles de châssis existants . . . . . . . . . . . . . . . 26


2.2 Comparaison des châssis de drones selon des critères spécifiques . . . . . . . . 27
2.3 Tableau comparatif détaillé des contrôleurs de vol . . . . . . . . . . . . . . . . 39
2.4 Modélisation comparative des contrôleurs de vol . . . . . . . . . . . . . . . . . 40
2.5 Tableau des coûts des composants pour notre drone . . . . . . . . . . . . . . . 46

3.1 Tableau des caractéristiques de ESP32-CAM . . . . . . . . . . . . . . . . . . . 62

4.1 Comparaison approfondie des configurations d’entraînement pour YOLOv5 . . 101

xv
Introduction générale

L’industrie tunisienne des télécommunications a connu une croissance rapide ces dernières
années, de nombreuses antennes étant installées sur tout le territoire. Cependant, cette
activité présente également des risques graves pour les travailleurs chargés de l’entretien
des infrastructures, tels que les chutes de hauteur, les risques d’électrocution et l’exposition
aux ondes électromagnétiques.
Malheureusement, de nombreux accidents mortels liés à la maintenance des antennes
de télécommunications ont été signalés dans différents pays. En 2016, un technicien français
a perdu la vie lors de la mesure d’un pylône de télécom au sommet d’un château d’eau, suite
à une erreur qui a provoqué un contact avec une ligne à haute tension.
Afin d’éliminer les risques pour les travailleurs et d’améliorer la sécurité des opérations
de maintenance des pylônes de télécom, l’inspection par drone intelligent est une solution
innovante. Ce projet consiste à remplacer les pylonistes par des drones équipés de caméras
et de capteurs pour surveiller le bon fonctionnement du réseau et détecter les anomalies.
L’inspection par drone est une solution innovante qui répond à plusieurs défis rencontrés
dans les méthodes d’inspection traditionnelles. Les drones peuvent atteindre en toute sécurité
des endroits inaccessibles tels que des immeubles de grande hauteur, des ponts et des pylônes
pour les inspecter minutieusement. Des caméras et des capteurs montés sur des drones
capturent des images et collectent des données, réduisant ainsi le besoin d’inspection manuelle
et améliorant la précision des résultats. De plus, les drones peuvent effectuer des inspections
en une fraction du temps par rapport aux méthodes traditionnelles, réduisant ainsi les temps
d’arrêt et les coûts associés.
Ce rapport s’articule autour de cinq chapitres, chacun mettant en avant une étape
spécifique du projet.
Dans le premier chapitre, nous commençons par introduire la société, expliquer la
méthodologie Scrum utilisée pour le développement du projet, et définir ce qu’est un drone.
Dans le deuxième chapitre, nous traitons du processus de fabrication du drone, à savoir
le choix des composants, leur achat, l’assemblage, et le test de vol.
Le troisième chapitre aborde l’intégration du ESP 32 Cam pour capturer des photos

1
Introduction générale

et les stocker dans Google Drive.


Le quatrième chapitre est consacré à la détection des objets et des textes avec YOLOv5
et Tesseract OCR respectivement.
Enfin, dans le cinquième chapitre, nous discutons de la conception de l’architecture
avec Django, l’interconnexion entre Django et Google Drive, l’intégration du modèle YOLOv5m
et Tesseract OCR avec Django, ainsi que la réalisation du tableau de bord avec Django.

2
Chapitre 1

Préparation et Contexte du Projet

Plan
1 Organisme d’accueil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Présentation du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Chapitre 1. Préparation et Contexte du Projet

Introduction

Au début de notre travail, nous avons brièvement décrit l’organisme qui nous a accueilli
durant notre stage, ainsi que le cadre de notre projet, incluant la problématique à résoudre,
les objectifs visés et le planning prévisionnel.

1.1 Organisme d’accueil

La Sotetel, qui est l’abréviation de Société tunisienne d’entreprises de


télécommunications, est une filiale de Tunisie Télécom, fondée en septembre 1981. Elle se
spécialise dans la conception et la maintenance d’infrastructures pour toutes sortes de réseaux
de télécommunications, tant en Tunisie qu’à l’étranger, et travaille en étroite collaboration
avec les principaux équipementiers internationaux. En 2013, son chiffre d’affaires était de
37,789 millions de dinars tunisiens, avec un capital social initial de 23,184 millions de dinars
tunisiens.

1.1.1 Domaines d’activités :

Les activités de la Sotetel couvrent plusieurs domaines des réseaux de télécommunication,


tels que le réseau d’accès, le réseau Core et Backbone, le réseau Wireless et les services
convergents.
Le réseau d’accès comprend l’ingénierie des réseaux de télécommunications, le réseau
d’accès par FTTx, les réseaux d’accès par câbles en cuivre, et d’autres domaines similaires.
Le réseau Core et Backbone comprend l’aménagement des locaux techniques,
l’intégration des systèmes IP-MSAN, la maintenance des réseaux des opérateurs, les réseaux
PSTN et PLMN, les réseaux Métro Fibre et Backbone, et d’autres domaines similaires.
Le réseau Wireless comprend la couverture Wireless Indoor, la mise en place des
sites 3G, l’optimisation des réseaux radios, et d’autres domaines similaires [1] [2].

1.1.2 Position sur le marché de Sotetel :

Sotetel est un acteur clé du marché tunisien des télécommunications, reconnu pour
son expertise en ingénierie, en aménagement des locaux techniques et en maintenance des
réseaux d’opérateurs. Grâce à ses ressources humaines et matérielles performantes, la société

4
Chapitre 1. Préparation et Contexte du Projet

est en mesure de proposer des solutions complètes et adaptées aux besoins de ses clients,
tout en garantissant une qualité de service optimale. En tant que filiale de Tunisie Télécom,
Sotetel bénéficie d’un positionnement privilégié sur le marché national, renforçant sa position
de leader en proposant des solutions innovantes en partenariat avec des équipementiers
internationaux renommés tels que Huawei, Alcatel-Lucent et Ericsson

1.1.3 Départements de SOTETEL :

SOTETEL, en tant que leader dans son domaine, a une structure organisatio-
nnelle bien établie avec cinq départements principaux travaillant en étroite collaboration pour
atteindre les objectifs de l’entreprise.

La Direction Centrale Financière (D.C.F) est responsable de la gestion financière,


de la comptabilité et de l’administration de SOTETEL. Elle s’assure que les opérations de
l’entreprise sont en conformité avec les règles comptables et fiscales.
La Direction Centrale Commerciale (D.C.C) est responsable de la gestion des
ventes, du chiffre d’affaires et du marketing. Elle travaille en étroite collaboration avec les
autres départements pour identifier les besoins des clients et offrir des solutions adaptées.
La Direction Centrale Ressources Humaines (D.C.R.H) est respons-
able du recrutement, de l’intégration et de la formation du personnel de SOTETEL. Elle est
également chargée de la gestion administrative, de la paie et de la communication interne.
La Direction Centrale Solution d’Entreprise (D.C.S.E) est respons-
able de l’étude, de l’installation et de la maintenance des réseaux privés de l’entreprise. Elle
offre des solutions personnalisées pour les entreprises souhaitant avoir leur propre réseau de
communication.
La Direction Centrale des Réseaux (D.C.RX) est responsable de la mise en
œuvre de l’infrastructure des réseaux de transmissions et des réseaux d’accès (réseaux publics).
Elle travaille en étroite collaboration avec les autres départements pour garantir la qualité
des services offerts aux clients.

5
Chapitre 1. Préparation et Contexte du Projet

1.2 Présentation du projet

Un pylône de télécommunication est une structure verticale essentielle pour la


transmission efficace des signaux de communication. Il joue un rôle clé dans la diffusion
des signaux, en soutenant les antennes et en intégrant les équipements de transmission. Les
pylônes offrent une meilleure couverture, une portée maximale et une connectivité fiable. Ils
permettent également l’expansion du réseau.
Les composants clés d’un pylône comprennent les antennes, les équipements
de transmission, les boîtiers d’équipement, les câbles et les dispositifs de sécurité.
La figure 1.1 présente les composants essentiels d’un pylône de télécommunication.

Figure 1.1 : Les composants d’un pylône de télécommunication

Les pylônes peuvent être sujets à des anomalies telles que la détérioration structurelle,
les problèmes d’antenne, les défaillances d’équipements, les problèmes de câblage et les
problèmes d’alimentation. Une inspection régulière et des mesures correctives sont nécessaires
pour maintenir un service de communication continu et de qualité.
La figure 1.2 présente les méthodes traditionnelles d’inspection des pylônes de
télécommunications.

6
Chapitre 1. Préparation et Contexte du Projet

Figure 1.2 : Méthodes d’inspection classiques des pylônes de télécoms

Voici quelques statistiques alarmantes que nous avons trouvés en lien avec les accidents
liés aux inspections des pylônes De télécommunication :
• En 2013, l’OSHA (Occupational Safety and Health Administration) a enregistré un
total de 13 décès liés aux tours de communication. En 2014, il y a eu 12 décès sur les sites
de tours de communication. En 2015, il y a eu un total de 3 décès. Il y a eu 6 décès en 2016.
L’OSHA travaille avec les parties prenantes de l’industrie pour identifier les causes de ces
blessures et décès, et pour réduire les risques auxquels les employés de l’industrie des tours
de communication sont confrontés [3].
• Selon un article de 2023 sur Wirelessestimator, le premier décès dû à une chute cette
année a été celui d’un technicien de 33 ans au Kansas [4].
• Un technicien de 32 ans est décédé le 15 décembre 2022 à Weatherford, TX, lors d’un
projet d’installation pour Verizon. Une défaillance du câble de sécurité a peut-être causé le
décès [4].
• Les Communications Workers of America (CWA) ont publié les résultats d’une
enquête montrant que la sécurité de leurs membres est compromise. Plus de 65 % des techniciens
ont été sur un chantier où quelqu’un a été blessé et 4 % où quelqu’un a été tué [4].
• En 2006, Wireless Estimator a identifié que les grimpeurs de tours de téléphonie
mobile avaient le métier le plus dangereux en Amérique, avec un taux de décès par 100 000

7
Chapitre 1. Préparation et Contexte du Projet

travailleurs de 115,2, basé sur environ 8 700 travailleurs de l’industrie [4].


• Un technicien de 36 ans et père de cinq enfants travaillant pour l’Alabama Forestry
Commission (AFC) est mort lorsqu’une tour de communication qu’il aidait à retirer s’est
effondrée [4].
• Un technicien de 24 ans de Las Vegas, Nevada, est décédé après une chute d’une
tour de communication à Arlington, WA [4].
• Le décès d’un technicien de 53 ans a été signalé à Garrison, TX le 17 novembre [4].
• Un technicien de 21 ans de l’Illinois est décédé après une chute d’une tour de
téléphonie cellulaire en Illinois alors qu’il travaillait sur une installation de Verizon [4].
Ces statistiques et incidents montrent l’ampleur du problème de sécurité dans l’industrie
des tours de télécommunication.
Notre solution révolutionnaire utilise un drone équipé des technologies avancées d’Internet
des Objets (IoT) et d’Intelligence Artificielle (IA) pour réaliser des inspections de pylônes
plus rapidement, plus efficacement et en toute sécurité. Voici un aperçu détaillé des différentes
étapes de ce processus :
1. Fabrication du drone :
Cette phase implique une sélection rigoureuse et l’acquisition de composants de haute
qualité, l’assemblage des pièces, la configuration des paramètres et les tests de vol pour
garantir la fiabilité et l’efficacité du drone.
2. Intégration de l’IoT avec ESP 32cam :
Grâce à la technologie IoT, nous équipons le drone d’une caméra ESP 32cam capable
de capturer des images haute résolution en vol. Ces images sont transférées en temps réel vers
un espace de stockage sur le cloud, comme Google Drive, permettant un accès instantané et
à distance aux images.
3. Application de l’IA pour la détection d’objets et de texte :
Nous intégrons l’intelligence artificielle à notre système pour permettre une détection et
une identification automatiques des objets sur les pylônes. Cela permet d’identifier rapidement
les signes d’usure, les dommages et autres anomalies potentiellement problématiques.
4. Gestion des données par un serveur Django :
Les données recueillies sont ensuite traitées et organisées par un serveur Django. Ce
système robuste et flexible assure une gestion efficace des données, facilitant leur analyse et

8
Chapitre 1. Préparation et Contexte du Projet

leur stockage.
5. Visualisation des données via un tableau de bord : Enfin, nous proposons un
tableau de bord intuitif qui présente de manière claire et compréhensible l’état des pylônes
inspectés. Cela permet aux utilisateurs de visualiser les résultats d’inspection et de prendre
des décisions informées pour la maintenance des pylônes.
Ce processus complet est illustré dans la Figure 1.3 ci-dessous.

Figure 1.3 : Synopsis du projet

La figure 1.4 montre l’inspection des pylônes de télécommunications avec un drone.

Figure 1.4 : Inspection des pylônes de télécoms avec drone IA et IoT

9
Chapitre 1. Préparation et Contexte du Projet

La technologie des drones améliore la sécurité et réduit les coûts dans l’inspection
des pylônes de télécommunications. Les drones équipés d’IA offrent une analyse précise des
données, réduisant les erreurs d’inspection et permettant une maintenance prédictive. Cela a
un impact positif sur l’environnement et permet des économies de coûts significatives. Notre
projet vise à transformer l’industrie des inspections de pylônes en Tunisie en proposant une
solution rapide, sûre et précise. Nous visons à améliorer la sécurité des travailleurs et à créer
un environnement de travail plus sûr et plus efficace.

1.2.1 Méthodologie de travail Scrum

Pour notre projet, nous avons choisi une approche agile de la gestion des projets de
développement de produits. Elle fournit une structure efficace pour gérer les risques, les
changements et les complexités liés au processus de développement.
La figure 1.5 présente la méthodologie Scrum.

Figure 1.5 : Méthodologie de travail Scrum

Nous avons choisi la méthodologie Scrum en tant qu’équipe parce qu’elle correspond
parfaitement à nos besoins et à nos objectifs. L’un des principaux avantages de Scrum est
qu’elle favorise un environnement de travail collaboratif et encourage chaque membre de
l’équipe à prendre des initiatives et à assumer des responsabilités.
En répartissant nos tâches et en menant nos recherches ensemble, nous avons pu
partager nos connaissances et tirer parti des compétences individuelles de chaque membre de

10
Chapitre 1. Préparation et Contexte du Projet

l’équipe. Cette approche nous a permis d’exploiter des idées et des perspectives diverses, ce
qui a conduit à des solutions plus créatives et plus innovantes.
Une autre raison de choisir Scrum est sa capacité à fournir des résultats réels et utiles
à intervalles de temps réguliers. Grâce aux sprints, qui sont des périodes de temps définies
pendant lesquelles nous nous concentrons sur un ensemble spécifique de tâches, nous sommes
en mesure de fournir des résultats dans les délais prévus à la fin de chaque sprint. Cela
nous permet d’obtenir rapidement un retour d’information de la part du Product Owner et
d’ajuster notre démarche en conséquence.
La tenue régulière de réunions "Daily Scrum" nous a également été bénéfique. Ces
brèves réunions quotidiennes nous permettent de synchroniser notre travail, d’identifier les
obstacles potentiels et de planifier efficacement les tâches à venir. Elles facilitent la communication
et la collaboration au sein de l’équipe, nous aidant à rester alignés sur nos objectifs communs
et à réagir rapidement aux changements.

1.2.1.1 éléments de Scrum

Dans le cadre du rapport de notre projet, il est essentiel de mettre en lumière les
principes clés de la méthode Scrum que nous avons adoptée. En tant que start-up composée
de trois personnes, nous nous sommes engagés à respecter ces principes tout au long de
réalisation de produits.
Équipe de développement :
Notre équipe est composée de trois personnes, Oussema Cherni, étudiant à l’université
ISTIC, spécialisé en informatique, réseaux et télécommunications, Amira Karoui, étudiante
à l’IHEC, spécialisée en business intelligence, et moi-même, Chayma Zaouali, étudiante
spécialisée en ingénierie des systèmes informatiques à l’ISI.
Product owner :
Mr Fawzi Saidi, directeur commercial de Sotetel, est responsable de la définition des
objectifs du projet,de la gestion du backlog.
Soutien externe : Nous avons bénéficié du soutien du Mr Adel Cherni, qui nous a
aidés à utiliser les logiciels SolidWorks et Repetier pour la conception 3D et la préparation
de l’impression 3D, ainsi qu’à assurer la sécurité du drone, et qui a nous aider pour avancer
à ce projet.

11
Chapitre 1. Préparation et Contexte du Projet

La figure 1.6 présente les différentes cérémonies de Scrum, qui permettent d’organiser,
d’animer et de synchroniser le travail de l’équipe.

Figure 1.6 : Les différentes cérémonies de Scrum

Sprint :
Nous avons défini 8 sprints pour notre projet, comme indiqué dans les figures 1.7 et
1.8.

Figure 1.7 : Sprints partie 1

12
Chapitre 1. Préparation et Contexte du Projet

Figure 1.8 : Sprints partie 2

Sprint Planning : Chaque sprint commence par une réunion de planification au cours
de laquelle notre équipe et le Product Owner définissent les objectifs du sprint à venir.
Sprint Review : À la fin de chaque sprint, nous organisons une réunion de revue
de sprint où nous présentons les résultats du sprint au Product Owner et aux autres parties
prenantes.
Sprint Rétrospective : Nous organisons également une réunion de rétrospective
après chaque sprint pour discuter de ce qui a bien fonctionné et de ce qui peut être amélioré
pour le sprint suivant.
Backlog de produit : Nous maintenons un backlog de produit, qui est une liste
priorisée de toutes les fonctionnalités souhaitées pour le produit, géré par le Product Owner,
comme indiqué dans les figures 1.9, 1.10, 1.11, 1.12, 1.13, 1.14 et 1.15.

13
Chapitre 1. Préparation et Contexte du Projet

Figure 1.9 : Backlog de produit partie 1

Figure 1.10 : Backlog de produit partie 2

14
Chapitre 1. Préparation et Contexte du Projet

Figure 1.11 : Backlog de produit partie 3

Figure 1.12 : Backlog de produit partie 4

15
Chapitre 1. Préparation et Contexte du Projet

Figure 1.13 : Backlog de produit partie 5

Figure 1.14 : Backlog de produit partie 6

16
Chapitre 1. Préparation et Contexte du Projet

Figure 1.15 : Backlog de produit partie 7

1.2.2 Choix outils de gestion de projet agile

Pour gérer notre projet de fin d’études selon la méthodologie Scrum, nous avons choisi
d’utiliser l’outil JIRA. JIRA est largement utilisé dans l’industrie du développement logiciel
et est adapté à la méthodologie Scrum. Les raisons de notre choix sont les suivantes : JIRA
offre une gestion avancée du backlog de produit, permettant de créer, prioriser et estimer les
user stories. Il facilite le suivi des tâches, l’assignation des responsables et la résolution des
problèmes. JIRA propose des tableaux de bord personnalisables et des rapports visuels pour
suivre les métriques clés du projet. Il s’intègre facilement avec d’autres outils utilisés dans
notre projet. De plus, JIRA est flexible et personnalisable, s’adaptant à notre méthodologie
de travail et à nos besoins spécifiques.

1.2.3 Drone : la nouvelle technologie pour une inspection sécurisée

Un drone est un aéronef sans pilote à bord, qui peut être contrôlé à distance ou
programmé pour voler de manière autonome. Les drones peuvent être équipés de caméras,
de capteurs et d’autres équipements pour effectuer une variété de tâches dans différents
domaines.
Dans notre projet, nous allons utiliser les drones pour l’inspection des pylônes de

17
Chapitre 1. Préparation et Contexte du Projet

télécommunication. Cette utilisation des drones est devenue essentielle dans l’industrie des
télécommunications en Tunisie car elle permet d’inspecter les pylônes de manière rapide,
efficace et en toute sécurité. Par exemple, l’entreprise française Azur Drones utilise des drones
pour inspecter les tours de télécommunications en France.

1.2.4 Types de vol de drones

Les types de vol des drones peuvent être divisés en vol nerveux, vol stable et vol
polyvalent. Le vol nerveux est utilisé par les drones de course pour des manœuvres acrobatiques
rapides. Le vol stable est utilisé par les drones de photographie et de vidéo pour maintenir
une position stable et capturer des images de haute qualité. Le vol polyvalent est utilisé par
les drones capables de réaliser différentes tâches telles que la surveillance, la cartographie,
l’inspection et la livraison. Pour l’inspection de pylônes de télécommunication, le vol stable
est le choix optimal car il garantit une stabilité en vol et permet de capturer des images
claires et précises.

1.2.5 Différentes configurations de drones : comparaison

Les drones peuvent être configurés de différentes manières en fonction de leurs utilisations
spécifiques. Les configurations les plus courantes sont le tricoptère, le quadricoptère, l’hexacoptère
et l’octocoptère.
• Le tricoptère est équipé de trois moteurs et est généralement plus léger que les
autres configurations. Cependant, il est moins stable en vol que les autres configurations,
comme indiqué dans la Figure 1.16 ci-dessous.

18
Chapitre 1. Préparation et Contexte du Projet

Figure 1.16 : Tricoptère : configuration à trois moteurs

• L’octocoptère est une configuration de drone équipée de huit moteurs. Cette


configuration offre une stabilité en vol exceptionnelle, une capacité de charge importante
et une redondance accrue des systèmes. L’utilisation d’un plus grand nombre de moteurs
permet à l’octocoptère de maintenir sa stabilité même en cas de panne d’un ou plusieurs
moteurs, comme indiqué dans la Figure 1.17 ci-dessous.

Figure 1.17 : Octocoptère : configuration à huit moteurs

19
Chapitre 1. Préparation et Contexte du Projet

• L’hexacoptère est équipé de six, ce qui leur donne une plus grande stabilité en vol
et une capacité de charge plus importante. Cependant, cette configurations est plus coûteuse
et plus compliquée à utiliser et à entretenir que les configurations à trois et quatre moteurs,
comme indiqué dans la Figure 1.18 ci-dessous.

Figure 1.18 : Hexacoptère : configuration à six moteurs

Le quadricoptère, quant à lui, est équipé de quatre moteurs et représente un choix


populaire pour de nombreuses applications de drones en raison de sa simplicité, de sa stabilité
en vol et de sa capacité de charge suffisante pour de nombreuses utilisations. De plus, il est
plus facile à manœuvrer dans des espaces restreints. comme indiqué dans la Figure 1.19
ci-dessous.

Figure 1.19 : Quadricoptère : configuration à quatre moteurs

20
Chapitre 1. Préparation et Contexte du Projet

Justification du choix de la configuration sélectionnée : Quadricoptère


Dans le contexte de l’inspection des pylônes de télécommunication à l’aide de drones,
le quadricoptère se présente comme le choix le plus approprié. Ses avantages incluent une
stabilité suffisante pour capturer des images aériennes claires et nettes, une capacité de charge
adaptée aux charges légères telles que les capteurs, un coût abordable par rapport aux autres
types de drones, ainsi qu’une bonne maniabilité qui facilite le pilotage et la navigation. Dans
l’ensemble, le quadricoptère offre un équilibre optimal entre ces différents aspects, ce qui en
fait un choix judicieux pour réaliser des prises de vues aériennes.

L’inspection des tours de télécommunication est une tâche nécessaire, mais souvent
dangereuse et coûteuse. Les inspections manuelles nécessitent l’utilisation de matériel lourd,
tel que des nacelles élévatrices et des échafaudages, qui peuvent causer des blessures ou même
des accidents mortels pour les travaill-
eurs.
La complexité de ces inspections est encore renforcée par le temps qu’elles nécessitent.
En effet, elles peuvent durer plusieurs jours ou semaines, provoquant des interruptions de
service et entraînant des coûts supplémentaires pour les opérateurs de télécommunications.
La précision des inspections manuelles peut également être remise en question. Il est
possible que certaines parties de la tour ne soient pas contrôlées ou, à l’inverse, que certaines
zones soient inspectées plus régulièrement que nécessaire. De telles erreurs d’inspection peuvent
non seulement poser des problè-
mes de sécurité, mais aussi avoir des répercussions négatives sur l’environnement et les
individus.
La durabilité de ces inspections manuelles est un autre sujet de préoccupation. En
effet, les travailleurs doivent souvent parcourir de longues distances pour atteindre les tours,
ce qui entraîne des émissions de gaz à effet de serre et d’autres impacts environnementaux.
L’ampleur de ces problèmes est exacerbée par des circonstances extérieures. Les grèves
des travailleurs des pylônes, les conditions météorologiques extrêmes telles que les vents
violents ou les tempêtes de sable, la situation géographique des sites et la difficulté de recruter
des travailleurs qualifiés pour les pylônes augmentent ces défis. Ces difficultés soulignent
l’importance d’explorer de nouvelles méthodes d’inspection plus sûres, plus précises et plus

21
Chapitre 1. Préparation et Contexte du Projet

durables.

Conclusion

Ce chapitre a fourni un aperçu de l’organisme d’accueil, Sotetel, en identifiant une


problématique à résoudre. Une étude bibliographique a été réalisée pour examiner les travaux
existants dans le domaine, et le contexte et la justification du projet ont été abordés, y compris
une représentation d’un drone. Le prochain chapitre abordera le sujet du drone quadricoptère.

22
Chapitre 2

Fabrication du Drone : Sélection,


Assemblage des Composants et
Essais de Vol

Plan
1 Choix des composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2 Achat des composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3 Assemblage des composants . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4 Configuration du système de Contrôle et Communication . . . . . . . . 49

5 Test de vol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Introduction

Dans ce chapitre, nous allons examiner le processus de fabrication du drone tel qu’illustré
dans la figure 2.1 ci-dessous.

Figure 2.1 : Processus de Fabrication du Drone

2.1 Choix des composants

L’architecture d’un drone quadricoptère, ou quadrirotor, est basée sur une configuration
à quatre hélices (ou rotors) qui fournissent la portance et le contrôle nécessaires pour le vol.
Voici les éléments qui composent un drone quadricoptère :

2.1.1 La structure

Le châssis d’un drone, appelé aussi structure ou frame ou squelette, est la structure de
base sur laquelle sont montés les différents composants du drone. C’est l’élément qui soutient

24
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

et protège les composants internes.


Dans notre projet d’inspection des pylônes de télécommunication, le choix du châssis
est une décision cruciale. Nous avons utilisé le modèle de prise de décision en deux étapes
de Herbert Simon pour évaluer les différentes options de châssis disponibles, notamment les
modèles DJI F450, DJI F330, S500 et X525, en examinant leurs caractéristiques, performances
et compatibilité avec nos besoins [17] .

Dans Le tableau 2.1, montre une comparaison des composants de différentes frames
populaires, y compris les moteurs, les contrôleurs de vitesse électroniques (ESC), les hélices,
les batteries et les dimensions. Les prix des cadres sont également inclus.

Modèles
Caractéristiques
DJI F450 DJI F330 S500 X525
Dimensions (L x l x H) 450mm x 330mm x 500mm x Largeur : 525mm, sa
450mm x 330mm x 500mm x largeur et sa hauteur
170mm 45mm 180mm ne sont pas précisées
Poids en gramme 282 156 405 385
Matière Fibre de Fibre de Fibre de Fibre de verre et
verre et nylon verre et nylon verre aluminium
polyamide polyamide renforcée
Prix en DT 125 110 310 150
Type de vol (stable) Oui Oui Oui Non
Disponibilité Disponible Disponible Non Non disponible sur le
sur le marché sur le marché disponible marché
sur le marché

25
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

ESC 30A ESC 18A ESC 30A ESC 25A/30A


Hélices Hélices 8*4.5 Hélices Hélices 9*5
Moteur
10*4.5 10*4.5
Moteur : Moteur : Moteur : Moteur : 1300KV
22*12 22*12 mm 28mm
1000KV 920Kv 800-1000kv
Batterie : Batterie : Batterie : Batterie : 3S 4S
3S 4S 3S 4S 3S 4S 2200-3000-
2200-3000 2200-3000- 2200-3000- 4000-5200mAh
-4000- 4000-5200 4000-5200
5200mAh mAh mAh
Terrain d’atterrissage Oui Oui Oui Non
Carte de distribution Oui Oui Oui Non
intégrée

Tableau 2.1 : Tableau comparatif des modèles de châssis existants

La deuxième étape consiste à évaluer les options disponibles et à choisir la meilleure


option pour choisir la frame de drone la plus adaptée à notre projet d’inspection de pylônes
de télécommunications en les évaluant selon différents critères tels que le poids, le matériau,
le prix, la stabilité de vol et la disponibilité pour prendre une décision éclairée.
Dans le tableau 2.2, nous présentons une comparaison des différents châssis de drones
en fonction de ces critères spécifiques. Cela nous permettra de visualiser les avantages et les
inconvénients de chaque option, nous aidant ainsi à choisir la frame la plus appropriée pour
notre projet d’inspection de pylônes de télécommunications.
Nous avons clarifié le processus d’évaluation des différentes options de châssis pour
nos drones. Le tableau comparatif que nous avons utilisé évalue les modèles de drones DJI
F450, DJI F330, S500 et X525 sur plusieurs critères. Chaque "x" dans le tableau indique une
évaluation positive du critère correspondant pour le modèle spécifique.
Par exemple, une "x" dans la colonne "Poids" pour le DJI F450 signifie que nous
avons jugé le poids de ce modèle approprié pour notre projet d’inspection de pylônes de

26
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

télécommunication. De même, une "x" dans la colonne "Matière" signifie que le matériau
utilisé dans la construction de ce modèle de drone est conforme à nos exigences. Une "x"
dans la colonne "Prix" indique que le coût de ce modèle est acceptable pour notre budget.

Critères DJI F450 DJI F330 S500 X525

Poids x

Matière x x x

Prix x x x

Type de vol (stable) x x x

Disponibilité (MOTEUR / ESC / HÉLICE) x x x

Disponibilité x x

Terrain d’atterrissage x x x

Carte de distribution intégrée x x x

Total 7 6 5 3

Tableau 2.2 : Comparaison des châssis de drones selon des critères spécifiques

Après une évaluation minutieuse de chaque modèle en fonction des critères établis,
nous avons choisi le modèle de drone DJI F450 comme la meilleure option pour notre projet.
Cette décision a été basée sur le fait que le DJI F450 a reçu le plus grand nombre total de
marques positives (7), indiquant qu’il répond le plus favorablement à l’ensemble des critères
évalués.
En particulier, le DJI F450 a été jugé favorable en termes de poids, de matériau
de construction, de coût, de stabilité de vol, de disponibilité des composants nécessaires
(MOTEUR / ESC / HÉLICE), de disponibilité sur le marché, de présence d’un terrain
d’atterrissage, et de l’intégration d’une carte de distribution. Ces caractéristiques ont fait du
DJI F450 notre choix préféré pour le projet d’inspection des pylônes de télécommunication.
Dans la Figure 2.2, nous présentons la conception du châssis du drone DJI F450 réalisée
avec SolidWorks.

27
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Figure 2.2 : Conception du châssis du drone DJI F450

2.1.2 Terrain d’atterrissage

Un terrain d’atterrissage pour drone est une zone spécialement préparée pour assurer
la sécurité du drone lors des opérations d’atterrissage et de décollage. Cependant, dans notre
projet d’inspection des pylônes de télécommunication, nous n’avons pas trouvé de terrain
d’atterrissage disponible sur le marché qui réponde à nos besoins spécifiques.
Pour surmonter cet obstacle, nous avons choisi une approche innovante en concevant
notre propre terrain d’atterrissage grâce à la création d’un modèle 3D utilisant le logiciel de
modélisation 3D, SolidWorks.
Dans la figure 2.3, nous montrons la conception de ce terrain d’atterrissage réalisée
avec SolidWorks.

Figure 2.3 : Conception du terrain d’atterrissage

28
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Nous avons utilisé le logiciel Repetier pour préparer et ajuster les paramètres de notre
modèle de terrain d’atterrissage en vue de son impression 3D, permettant ainsi de générer
les instructions nécessaires pour sa fabrication.
Dans la figure 2.4, nous montrons la préparation du terrain d’atterrissage avec Repetier
en vue de son impression 3D.

Figure 2.4 : Préparation du modèle du terrain d’atterrissage

Par la suite, nous avons procédé à la fabrication du terrain d’atterrissage en utilisant


une imprimante 3D et en utilisant du matériau PLA comme matière première.
Dans la figure 2.5, nous montrons l’impression 3D des terrains d’atterrissage à l’aide
d’une imprimante 3D utilisant du PLA (acide polylactique) comme matériau.

Figure 2.5 : Impression 3D terrains atterrissage avec PLA

29
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Le PLA (Acide Polylactique) est un matériau couramment utilisé en impression 3D en


raison de ses nombreux avantages. Tout d’abord, il est respectueux de l’environnement car il
est fabriqué à partir de ressources renouvelables telles que le maïs ou la pomme de terre. De
plus, le PLA est très facile à imprimer, nécessitant peu de réglages pour obtenir des résultats
de qualité. Il est également stable à des températures modérées, ce qui le rend compatible avec
la plupart des imprimantes 3D. Enfin, le PLA est connu pour sa résistance à la fissuration et
à la déformation, ce qui en fait un choix fiable pour des applications nécessitant une structure
solide [9] [10] [11] [12].

2.1.3 Le système de propulsion

2.1.3.1 Moteurs

Les moteurs brushless sont des composants essentiels dans les drones, responsables
de la conversion de l’énergie électrique en mouvement mécanique. Dans le contexte des
drones, ces moteurs sont utilisés pour générer une force de portance qui propulse l’aéronef
en faisant tourner les hélices. Grâce à leur conception à aimants permanents et à leur
capteur de position rotorique, ces moteurs offrent une efficacité et une puissance élevées
tout en étant compacts. Leur faible niveau de bruit et de vibrations les rend idéaux pour
une utilisation dans les drones, garantissant une expérience de vol agréable. De plus, leur
capacité à supporter des surcharges et à fonctionner de manière continue les rend adaptés
aux exigences de vol des drones. En choisissant des moteurs brushless pour notre drone, nous
nous assurons d’une propulsion efficace et fiable pour nos opérations d’inspection des pylônes
de télécommunication.
Dans la figure 2.6, nous montrons la conception des moteurs brushless réalisée avec
SolidWorks.

30
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Figure 2.6 : Conception des moteurs brushless

Après une analyse approfondie, nous avons choisi d’utiliser des moteurs brushless
1000KV pour notre drone. Le choix de cette spécification KV a été basé sur plusieurs facteurs,
tels que la stabilité du vol, l’adaptation à la frame F450, la puissance et la poussée nécessaires,
l’efficacité énergétique et la disponibilité sur le marché. Ces moteurs nous permettront d’obtenir
un vol stable, une installation facile et une autonomie de vol optimale pour notre projet de
drone d’inspection de pylônes de télécommunication.

2.1.3.2 Hélices

Les hélices sont des dispositifs rotatifs composés de pales qui, lorsqu’elles tournent,
créent une force d’air permettant de propulser notre drone à travers l’air. Les hélices sont
un élément essentiel du système de propulsion d’un drone et jouent un rôle crucial dans
la génération de la poussée nécessaire au vol. Le fonctionnement des hélices repose sur le
principe de l’aérodynamique. Lorsque les pales tournent, elles déplacent l’air autour d’elles,
créant une différence de pression entre la face supérieure et la face inférieure de chaque pale.
Cette différence de pression engendre une force d’air qui pousse le drone dans la direction
opposée au mouvement de l’air et permet de contrer les couples et les forces gyroscopiques
qui pourraient autrement déstabiliser le drone.
Dans notre cas, nous avons choisi des hélices de taille 10x4.5, ce qui signifie qu’elles
ont un diamètre de 10 pouces et un pas de 4.5 pouces.

31
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Les figures 2.7 et 2.8 montrent respectivement le diamètre d’une hélice et le pas d’une
hélice (un tour).

Figure 2.7 : Diamètre d’une hélice

Figure 2.8 : Pas d’une hélice (un tour)

En ce qui concerne la rotation des hélices, il est important de noter qu’il existe deux
types d’hélices : celles qui tournent dans le sens horaire (CW - Clockwise) et celles qui
tournent dans le sens anti-horaire (CCW - Counter-Clockwise). Pour un équilibre des forces
de poussée et pour minimiser les effets de couple indésirables, nous avons monté les hélices

32
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

tournant dans le sens horaire sur des moteurs adjacents et les hélices tournant dans le sens
anti-horaire sur les autres moteurs adjacents.
Dans la figure 2.9, nous montrons le montage des hélices en sens horaire (CW) et en
sens anti-horaire (CCW) pour un quadricoptère.

Figure 2.9 : Montage des hélices CW et CCW pour un quadricoptère

Lors du montage des hélices, nous avons veillé à ce que la surface supérieure de l’hélice,
qui est généralement incurvée vers l’extérieur, soit orientée vers le haut. Cette orientation
garantit une poussée efficace et un fonctionnement optimal de l’hélice.
Dans la figure 2.10, nous pouvons observer le montage d’une hélice sur un moteur
brushless, conçu à l’aide de SolidWorks.

33
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Figure 2.10 : Montage d’une hélice

2.1.3.3 ESC (Contrôleur de vitesse électronique) :

L’ESC (Contrôleur de vitesse électronique) est un composant essentiel d’un drone,


responsable du contrôle de la vitesse et de la direction du moteur. Dans cette section, nous
explorerons les aspects clés de l’ESC, y compris son fonctionnement, ses connecteurs et son
rôle dans la distribution de l’alimentation.
La figure 2.11 présente un exemple de contrôleur de vitesse de 30A conçu pour les
moteurs brushless.

Figure 2.11 : Contrôleur de vitesse 30A pour moteurs brushless

34
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Lorsqu’on examine un ESC, il peut sembler déroutant au départ en raison du nombre


de fils qui en sortent de chaque côté.
• Le premier côté de l’ESC est dédié à l’alimentation en entrée, avec deux fils épais
(noir et rouge) pour recevoir l’alimentation depuis la carte de distribution intégrée de la frame
F450.
• Le deuxième côté de l’ESC est équipé de trois connecteurs à cosse pour se connecter
aux trois broches du moteur brushless. Pour remédier au problème de compatibilité des
connecteurs entre les ESC et les moteurs, nous avons acheté des connecteurs appropriés et
les avons soigneusement soudés à l’aide d’un fer à souder et d’étain, établissant ainsi une
connexion solide et fiable pour assurer le bon fonctionnement du système de propulsion du
drone.
La figure 2.12 présente les connecteurs ESC utilisés pour une connexion fiable avec les
moteurs brushless.

Figure 2.12 : Connecteurs ESC pour une connexion fiable

• Les ESC ont une interface de commande avec trois fils : les fils d’alimentation
(noir/marron et rouge) fournissent l’énergie nécessaire, et un fil supplémentaire transmet
un signal de contrôle PWM entre le contrôleur de vol et l’ESC pour ajuster la vitesse du
moteur en fonction des commandes du pilote ou des instructions de vol automatisées.
La figure 2.13 présente les différents fils de connexion de l’ESC.

35
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Figure 2.13 : Les différents fils de connexion de l’ESC

2.1.3.4 Alimentation du drone

• Batterie
Une batterie est un dispositif électrochimique qui stocke de l’énergie chimique et
la convertit en énergie électrique lorsqu’elle est nécessaire. Elle est composée de cellules
individuelles qui contiennent des réactions chimiques permettant le stockage et la libération
d’électrons. Pour notre drone, nous avons choisi d’utiliser une batterie LiPo (Lithium Polymère)
3000mAh 11.1V 3S 50C.
La figure 2.14 présente un exemple de batterie LiPo.

Figure 2.14 : Batterie Lipo

36
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Les batteries LiPo offrent une densité d’énergie élevée, ce qui signifie qu’elles peuvent
stocker plus d’énergie par unité de poids. Elles offrent également un taux de décharge élevé,
ce qui est essentiel pour alimenter les moteurs puissants de notre drone. De plus, les batteries
LiPo sont légères et compactes, ce qui réduit le poids total du drone et améliore son efficacité
énergétique. Elles maintiennent une tension stable tout au long de la décharge et permettent
une recharge rapide, minimisant ainsi les temps d’attente entre les vols.
• Chargeur
Un chargeur de batterie est un dispositif utilisé pour recharger une batterie en fournissant
une alimentation électrique appropriée. Il convertit l’énergie électrique provenant d’une source
d’alimentation (comme une prise secteur) en un courant et une tension adaptés pour recharger
la batterie. Dans le cadre de notre projet, nous avons utilisé le chargeur B3 pour charger notre
batterie LiPo 3S d’une tension de 11,1V.
Pour charger la batterie, nous avons suivi les instructions fournies avec le chargeur.
Après avoir connecté le chargeur à une source d’alimentation secteur, nous avons branché
la batterie LiPo 3S au port d’équilibrage approprié. Les voyants LED sont passés du rouge
au vert pour indiquer que la charge était terminée. Nous avons utilisé un chargeur fiable et
sécurisé, bien qu’il ne soit pas caractérisé par une charge rapide. Avec une puissance de 0,8A,
nous avons préféré une charge en douceur pour assurer une charge en profondeur et minimiser
les risques de surchauffe ou de dommage de la batterie. Notre priorité était d’adopter une
approche sécurisée et précautionneuse lors de la charge de notre batterie.

2.1.4 Système de Contrôle : Contrôleur de vol

Le contrôleur de vol est un élément essentiel du drone, agissant comme son "cerveau"
en surveillant en temps réel sa position, son orientation et sa vitesse à l’aide de capteurs.
Grâce au principe du PID, il ajuste et stabilise ces paramètres pour maintenir le drone sur
une trajectoire stable. Il interprète également les commandes du pilote et les traduit en
mouvements précis du drone, offrant un contrôle optimal lors du vol.
Pour choisir le contrôleur de vol adapté à notre projet, nous avons suivi un modèle de
prise de décision en deux étapes développé par Herbert Simon. Parmi les options examinées,
nous avons collecté des informations sur les modèles suivants : LCD KK2.1.5, Contrôleur
De Vol Blackboard V5.5, Arduino UNO + Oled + Gyroscope MPU6050 et CONTRÔLEUR

37
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

ARDUPILOT APM2.8.
Le tableau 2.3 montre une comparaison détaillée des spécifications techniques, des
fonctionnalités et des prix des différents contrôleurs de vol.

LCD KK2.1.5 Contrôleur Arduino UNO + CONTRÔLEUR


De Vol Oled + Gyroscope ARDUPILOT
Blackboard MPU6050 APM2.8
V5.5
Disponibilité oui oui oui non
GPS non non non oui
Baromètre non non non oui
Accéléromètre oui oui oui 3 axes oui
Gyroscope 3 axes : 3 axes : roll 3 axes : 6050 MPU gyroscope 3 axes
6050MPU pitch yaw
Buzzer oui non non non
Prix 130,000 TND 89,000 TND 8,900 TND (gyro) + 280 TND
45 TND (Arduino
UNO) + 24 TND
(Oled)
Dimension 50.5mm x 50mm x Arduino UNO : 75mm x 50mm
50.5mm x 49mm x 68.6mm x 53.4mm
12mm 14.5mm Oled :24.384mm
x 14.4mm
Gyroscope :
28.6mm x 15mm x
7.1mm
Indicateur de cap oui oui non oui
Fonctionnement oui non non oui
automatique

38
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Poids 21g 14.5g Gyroscope : 2-3g, 25g


Oled : 1-3g,
Arduino UNO :
25g
Afficheur LCD Non Oui (Oled) Non
Tension 4.8V à 6.0V 3.3V à 5.5V Oled : 3V à 7V à 18V
5V, Gyroscope :
2.5-3.6V => 3.3V
Programmation non non oui non
requise
Configuration oui oui oui oui
requise

Tableau 2.3 : Tableau comparatif détaillé des contrôleurs de vol

Dans la deuxième étape, nous avons analysé et comparé les différentes options de
contrôleurs de vol en fonction de critères tels que la disponibilité, la précision des capteurs, la
nécessité de programmation, les fonctionnalités d’affichage et d’indication de cap, le prix, ainsi
que la présence de fonctionnalités telles que GPS, baromètre, accéléromètre et gyroscope, et
la capacité de fonctionnement automatique.
En évaluant ces critères, nous avons pu effectuer une comparaison objective des options
disponibles et prendre une décision éclairée pour choisir le contrôleur de vol le mieux adapté
à notre projet.
Le tableau 2.4 montre une synthèse des résultats de notre évaluation comparative des
différentes options de contrôleurs de vol. Une "x" dans le tableau signifie que le contrôleur
de vol répond positivement au critère correspondant.

39
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Contrôleur de vol LCD Contrôleur Arduino CONTRÔ-


KK2.1.5 De Vol UNO + LEUR APM2.8
Blackboard Oled +
V5.5 MPU6050

Disponibilité x x x

Précision des x
capteurs

Programmation x x x x
requise

Afficheur x x

Indicateur de cap x x x

Prix x

GPS x

Baromètre x

Accéléromètre x x x x

Gyroscope x x x

Fonctionnement x x
automatique

Total 7 4 5 8

Tableau 2.4 : Modélisation comparative des contrôleurs de vol

Après avoir analysé chaque modèle en fonction de ces critères, nous avons déterminé
que le CONTRÔLEUR ARDUPILOT APM2.8 était le plus adapté à nos besoins. En effet,
ce contrôleur a reçu le plus grand nombre total de marques positives (8), ce qui signifie qu’il
répond le plus favorablement à l’ensemble des critères que nous avons établis.
En particulier, le CONTRÔLEUR ARDUPILOT APM2.8 se distingue par sa précision
des capteurs, son indicateur de cap, la présence d’un GPS et d’un baromètre, ainsi que sa
capacité à fonctionner automatiquement. Il ne nécessite pas de programmation, ce qui facilite
son utilisation. De plus, malgré son prix plus élevé par rapport aux autres options, nous avons
jugé que les avantages qu’il offre justifient cet investissement.
Cependant, la carte ARDUPILOT APM2.8 était extrêmement difficile à trouver, avec

40
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

seulement une seule unité disponible sur le marché. Dans le but de prendre une décision
éclairée avant d’investir dans cette carte coûteuse, notre équipe a fait des efforts considérables
en se déplaçant à Sousse puis à Monastir pour effectuer des tests approfondis sur cette carte
spécifique. Cependant, malgré nos efforts, nous avons identifié un problème majeur remettant
en question sa fiabilité et son fonctionnement optimal. Par conséquent, nous avons pris la
décision de ne pas procéder à l’achat et de rechercher une alternative plus appropriée.
Nous avons finalement opté pour la carte KK2.1.5 comme notre deuxième choix, en
raison de ses fonctionnalités adaptées à notre projet d’inspection des pylônes de télécommunications,
de sa disponibilité sur le marché et de son bon rapport qualité-prix. Cette carte contrôleur
KK2.1 pour multirotor joue un rôle essentiel dans la stabilisation et la gestion du vol du drone.
Elle récupère les signaux des gyroscopes intégrés, les transmet au processeur Atmega324PA
et régule la vitesse de rotation des moteurs via les contrôleurs de vitesse électroniques (ESC),
garantissant ainsi la stabilité de l’aéronef.
La figure 2.15 présente le Contrôleur de vol KK2.1.5.

Figure 2.15 : Contrôleur de vol KK2.1.5

Le contrôleur de vol KK2.1 est équipé de différentes broches (pins) qui ont des fonctionnalités
spécifiques :
• Broches d’entrée (Input) : Le contrôleur de vol KK2.1 reçoit des signaux d’entrée
provenant du récepteur radio via les broches d’entrée aileron, profondeur, gaz et gouverne.
Ces signaux sont utilisés pour contrôler les mouvements de l’aéronef, tels que le roulis, le
tangage, la montée et le lacet.

41
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

• Broches de sortie (Output) : Le contrôleur de vol KK2.1 envoie des signaux de


sortie aux contrôleurs de vitesse électroniques (ESC) via les broches de sortie des moteurs.
Ces signaux ajustent la vitesse de rotation des moteurs pour contrôler l’orientation et les
mouvements de l’aéronef.
• Quatre boutons (Back, Down, Enter et Up) qui permettent de naviguer dans
le menu de configuration et d’effectuer des réglages sur le contrôleur. Le bouton Back permet
de revenir en arrière, le bouton Down fait défiler les options vers le bas, le bouton Enter est
utilisé pour sélectionner une option, et le bouton Up fait défiler les options vers le haut. Ces
boutons offrent une interface conviviale pour configurer et personnaliser les paramètres de
vol de l’aéronef.
La figure 2.16 présente les broches du Contrôleur de vol KK2.1.5, montrant les différentes
entrées, sorties et boutons disponibles.

Figure 2.16 : Broches du Contrôleur de vol KK2.1.5

Le contrôleur de vol KK2.1 doit être connecté aux composants suivants :


• Récepteur radio : Le récepteur radio est connecté aux broches d’entrée du contrôleur
de vol KK2.1 pour recevoir les commandes de vol du pilote.
• Contrôleurs de vitesse électroniques (ESC) : Les broches de sortie du contrôleur
de vol KK2.1 sont connectées aux ESC, qui contrôlent la vitesse des moteurs en fonction des

42
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

signaux reçus.
De plus, le contrôleur de vol KK2.1 est alimenté par les contrôleurs de vitesse électroniques
(ESC) qui sont connectés à la carte de distribution du frame. Cette carte de distribution est
elle-même reliée à la batterie du drone, assurant ainsi l’alimentation électrique du contrôleur
de vol. Cette connexion entre les ESC, la carte de distribution et la batterie permet d’assurer
un flux constant d’énergie vers le contrôleur de vol, garantissant son bon fonctionnement tout
au long du vol.
La figure 2.17 montre le schéma de connexion du Contrôleur de vol KK2.1 avec les
différents composants du drone. Cela inclut les connexions avec les moteurs, les ESC, le
récepteur radio, les capteurs, la batterie, etc.

Figure 2.17 : Connexion du contrôleur KK2.1 avec les composants du drone

En résumé, le contrôleur de vol KK2.1 est un composant essentiel pour la gestion du


vol des aéronefs multirotors. Il utilise des signaux d’entrée provenant du récepteur radio et
envoie des signaux de sortie aux ESC pour stabiliser et contrôler notre drone.

43
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

2.1.5 Système de Communication

2.1.5.1 Radiocommande (RC)

Dans notre projet, nous avons utilisé la radiocommande Flysky FS-i6X 6 channel pour
contrôler notre drone à distance. Cette radiocommande est un dispositif essentiel qui assure
l’interface entre le pilote et le drone, permettant de transmettre les commandes de vol et de
contrôler les différentes fonctionnalités du drone.
La figure 2.18 présente la radiocommande Flysky FS-i6X à 6 canaux.

Figure 2.18 : Radiocommande Flysky FS-i6X 6 canaux

La Flysky FS-i6X est équipée d’une manette, également connue sous le nom de "joystick",
qui permet de contrôler les mouvements du drone tels que la montée, la descente, l’avancement,
le recul, la rotation et le déplacement latéral. Ces mouvements de la manette sont convertis
en signaux radio qui sont ensuite transmis au récepteur intégré dans le drone, assurant ainsi
un contrôle précis du vol. La fréquence radio utilisée est de 2,4 GHz, offrant une transmission
fiable et une portée suffisante pour un contrôle à distance.

44
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

2.1.5.2 Récepteur

Le récepteur Flysky FS-IA6 est un composant essentiel de notre système de contrôle


de drone. Il fonctionne de manière synchronisée avec la radiocommande pour recevoir les
signaux de contrôle émis par le pilote et les transmettre au drone.
La figure 2.19 représente la conception du Récepteur Flysky FS-IA6 réalisée avec
SolidWorks.

Figure 2.19 : Récepteur Flysky FS-IA6 : Conception avec SolidWorks

Le récepteur Flysky FS-IA6 est un composant compact et léger, conçu pour une
utilisation avec la radiocommande Flysky FS-i6X. Il offre une connexion fiable et une transmission
de signaux sans faille entre la radiocommande et le drone, assurant un contrôle précis et
réactif. Grâce à sa performance et à sa compatibilité optimale, le récepteur Flysky FS-IA6 a
joué un rôle essentiel dans le succès de nos opérations de vol lors des missions d’inspection
de pylônes de télécommunications.

2.2 Achat des composants

Le Tableau 2.5 présente les coûts des différents composants nécessaires pour la construction
de notre drone, incluant la quantité et le prix de chaque composant. Cette analyse financière
nous permet d’estimer le budget total requis pour l’assemblage du drone, en prenant en
compte les coûts individuels de chaque élément.

La figure 2.20 montre l’achat des composants nécessaires pour la construction du

45
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Composants Quantité Prix


F450 cadre pour quadcopter 1 114,200 DT
A2212 1000KV 13T Kit Moteur Brushless 1045 2 134 DT
Moteur Brushless A2212/13T 2 66,300 DT
Controlleur Moteur Brushless ESC 30A 2 57,600 DT
Radiocommande : Flysky FS-i6X + récepteur FS-IA6 1 350 DT
Batterie Lipo 11,1V 3000mAh 50C 1 180 DT
Chargeur Batterie Lipo 2S 3S IMAX3 1 32,400 DT
KK2.1.5 Multi-Rotor LCD Flight Control Board 1 135 DT
Tableau 2.5 : Tableau des coûts des composants pour notre drone

drone. Elle met en évidence les différents composants achetés, tels que les moteurs, les ESC,
le contrôleur de vol, la batterie, etc.

Figure 2.20 : Achat des composants pour la construction du drone

2.3 Assemblage des composants

Pour assembler le drone, nous avons suivi les étapes suivantes :


• Nous avons commencé par souder les quatre ESC (contrôleurs de vitesse) sur le
châssis du drone, qui intègre une carte de distribution électrique. Nous avons utilisé une
soudure propre.
• Ensuite, nous avons soudé deux fils pour connecter la carte de distribution avec la
batterie. Pour faciliter la connexion, nous avons également acheté un adaptateur que nous
avons soudé aux deux fils. Cela nous permet de brancher facilement la batterie au drone.
• Après cela, nous avons procédé au vissage des bras du drone avec la partie inférieure

46
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

du châssis. Nous avons utilisé des vis adaptées pour assurer une fixation solide et sécurisée.
Cette étape est cruciale car elle garantit la stabilité et la résistance structurelle du drone
pendant le vol.
• Ensuite, nous avons procédé au vissage de la partie supérieure du drone avec les bras
préalablement fixés. Cette étape est essentielle pour assurer une connexion solide et sécurisée
entre les différents éléments du drone.
• Ensuite, nous avons procédé au branchement des moteurs sur les bras du drone et à
leur connexion avec les contrôleurs de vitesse électroniques (ESC). Nous avons utilisé des vis
adaptées pour fixer les moteurs sur les bras du drone. Nous avons fixé les ESC sur le châssis à
l’aide de colliers de serrage pour assurer une fixation solide et sécurisée. Ensuite, nous avons
relié les fils des moteurs aux ESC en suivant les schémas de câblage appropriés.
La figure 2.21 présente le branchement et la connexion des moteurs aux bras et aux
ESC.

Figure 2.21 : Branchement et connexion des moteurs aux bras et aux ESC

• Pour assurer la stabilité du drone, nous avons fixé le contrôleur de vol à la partie
supérieure de la structure du drone. Pour améliorer la stabilité, nous avons ajouté une petite
éponge sous le contrôleur de vol. De plus, nous avons suivi le schéma de câblage fourni
ci-dessous pour établir les connexions entre le contrôleur de vol et les autres composants du
drone.
La figure 2.22 représente le schéma de câblage pour les connexions du contrôleur de
vol avec les autres composants du drone. Ce schéma montre comment les différents éléments
du drone, tels que les moteurs, les ESC, le récepteur radio, les capteurs, la batterie, etc.

47
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Figure 2.22 : Câblage du contrôleur de vol avec les composants du drone

• Nous avons établi les connexions entre les 4 ESC et les broches appropriées du
contrôleur de vol. Ces connexions permettent de contrôler la vitesse des moteurs en fonction
des signaux transmis par le contrôleur de vol, assurant ainsi la propulsion du drone.
Connexion du récepteur radio au contrôleur de vol : Nous avons également connecté
le récepteur radio aux broches d’entrée du contrôleur de vol. Cette connexion permet au
contrôleur de vol de recevoir les commandes de vol du pilote via la radiocommande. Le
contrôleur de vol interprète ensuite ces commandes et les traduit en mouvements du drone,
assurant ainsi un contrôle précis et réactif du drone.

Avec un soin méticuleux, nous avons effectué une isolation minutieuse des connexions
électriques, en veillant à la position et à la fixation précises de chaque fil. De plus, nous
avons pris des mesures pour assurer la sécurité des hélices, en les installant correctement et
en vérifiant leur bon fonctionnement. Cela garantit un fonctionnement fiable et optimal de
notre drone dans le cadre de notre projet d’inspection des pylônes de télécommunications.
Enfin, nous avons obtenu un résultat concluant de l’assemblage du drone, comme illustré
dans la figure 2.23 ci-dessous.

48
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Figure 2.23 : Résultat de l’Assemblage du Drone

2.4 Configuration du système de Contrôle et Communication

2.4.1 Appairage du récepteur et de la radiocommande Flysky FS-i6X

L’appairage entre le récepteur et la radiocommande doit être effectué une seule fois,
sauf si une reconnexion est nécessaire ou en cas de problèmes de connexion. Lors de l’appairage
initial, les informations de la radiocommande sont mémorisées par le récepteur pour une
connexion automatique lors de chaque allumage.

2.4.2 Configuration du Flysky (radiocommande)

Nous avons procédé à la configuration de la radiocommande Flysky FS-i6X en suivant


attentivement les étapes nécessaires. Tout d’abord, nous avons allumé la radiocommande et
maintenu la touche "OK" enfoncée pour accéder au menu principal. À partir de là, nous

49
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

avons sélectionné "System Setup" pour choisir le type de modèle "Multirotor". Ensuite, nous
sommes retournés au menu principal et avons sélectionné "Function Setup" pour configurer
les voies auxiliaires (AUX) en fonction de nos besoins, comme l’armement/désarmement
du drone ou les modes de vol. Nous avons veillé à suivre avec précision ces étapes afin de
configurer correctement la radiocommande en fonction de nos besoins spécifiques.

2.4.3 Configuration du KK2.1.5

Pour configurer la carte KK2.1.5, nous commençons par allumer l’émetteur et nous
nous assurons que le récepteur est lié à l’émetteur.

Étape 1 : Allons d’abord dans le menu en appuyant sur S4, puis sélectionnons "Load
Motor Layout" et choisissons “quadrocopter X mode” pour configurer le quadricoptère en
mode X. Vérifions ici toutes les directions des moteurs.
Pour vérifier la configuration, référons-nous à la figure 2.24 qui illustre la Configuration
du quadricoptère en mode X.

Figure 2.24 : Configuration du quadricoptère en mode X

Étape 2 : Ensuite, procédons à l’étalonnage de l’ACC (accéléromètre). Plaçons le


quadricoptère sur une surface plane et sélectionnons l’étalonnage de l’accéléromètre en cliquant
sur S4. Cela effectuera une calibration automatique.
Référons-nous à la figure 2.25, qui illustre le processus de calibration automatique de
l’accéléromètre

50
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Figure 2.25 : Calibration automatique de l’accéléromètre

Nous avons débranché l’alimentation et la rebrancher immédiatement. L’écran LCD


affichera "Safe", ce qui signifie que l’état est passé de "Erreur" à "Sécurisé".
Référons-nous à la figure 2.26, qui illustre le processus de réinitialisation de l’alimentation
pour passer de l’état "Erreur" à "Sécurisé".

Figure 2.26 : Réinitialisation de l’alimentation pour passer de l’état "Erreur" à l’état "Sécurisé"

Étape 3 : Dans cette étape, nous allons accéder à l’éditeur PI pour ajuster les gains
P et I des ailerons, du gouvernail et de la profondeur.
Dans la figure 2.27, nous pouvons voir l’interface de l’éditeur PI spécifique aux ailerons.

Figure 2.27 : Réglage des gains P et I, Étape 1

Le gain P détermine la sensibilité et la réactivité du contrôle, avec un gain plus élevé

51
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

pour un contrôle précis et réactif, et un gain plus faible pour un contrôle doux.
Le gain I est responsable de la capacité du drone à maintenir une altitude constante,
en évitant les variations excessives.
Dans la figure 2.28, nous pouvons observer l’interface de l’éditeur PI spécifique au
gouvernail et à la profondeur.

Figure 2.28 : Réglage des gains P et I, Étape 2

Étape 4 : Dans les paramètres de mode, définissons le mode de stabilisation automatique


sur AUX.
Dans la figure 2.29, nous pouvons voir l’interface de configuration des paramètres de
mode.

Figure 2.29 : Configuration du mode de stabilisation automatique "Self-Level"

Étape 5 : Maintenant, allons dans les paramètres divers. Ici, nous allons régler l’alarme
pour une tension de 1/10 de volt. Pour régler l’alarme à 1/10 de volt, effectuons les calculs
suivants :
Dans la figure 2.30, nous pouvons voir l’interface de configuration des paramètres
divers.

52
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Figure 2.30 : Configuration de l’alarme de tension dans les paramètres divers

Dans notre cas, nous utilisons une batterie LiPo 3 cellules avec une tension nominale
de 11,1 volts. Pour indiquer une batterie vide, nous utilisons une valeur de 3,60 volts par
cellule. Pour régler l’alarme à 1/10 de cette valeur, nous effectuons le calcul suivant : 3,6
volts * 3 cellules * 10 = 108. Ainsi, en réglant la valeur de l’alarme à 108, l’alarme sonnera
lorsque la tension d’alimentation du système atteindra 10,8 volts, indiquant une décharge
importante de la batterie. Ce réglage nous permet de surveiller la tension de la batterie et de
prendre les mesures nécessaires pour éviter une décharge excessive et préserver la durée de
vie de la batterie.

Étape 6 : Étalonnage des contrôleurs de vitesse électroniques (ESC)


Pour effectuer l’étalonnage des ESC "ESC Calibration", nous suivons les étapes suivantes :
1. Réglons la commande des gaz de notre émetteur au minimum.
2. Passons les gaz au maximum tout en maintenant les interrupteurs S1 et S4 enfoncés.
3. Connectons la batterie au quadricoptère.
4. Nous entendrons deux bips sonores, puis nous baissons les gaz pour entendre un
bip unique.
Ce processus d’étalonnage des ESC nous permet de synchroniser les contrôleurs de
vitesse électroniques avec la commande des gaz de notre émetteur. Il garantit que les ESC
comprennent pleinement la plage de commande des gaz, du minimum au maximum. Une fois
l’étalonnage terminé, les ESC répondront de manière précise et cohérente à nos commandes
de gaz, assurant ainsi un fonctionnement optimal du système de propulsion de notre drone.

Étape 7 :Armer ou désarmer le quadricoptère et préparation pour le vol


Pour armer le quadricoptère, nous suivons la procédure suivante :
1. Maintenons les gaz à gauche, c’est-à-dire à la position de ralenti.

53
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

2. Une fois que les gaz sont maintenus à gauche, le quadricoptère est armé et prêt à
voler.
En armant le quadricoptère, nous activons le système de propulsion et préparons le
drone pour le vol. C’est une étape essentielle avant de prendre les commandes et de piloter
le drone en toute sécurité.
Dans la figure 2.31, nous pouvons observer le processus d’armement du drone.

Figure 2.31 : Armement du drone

Maintenant, le quadricoptère est prêt à voler. Nous maintenons les gaz ducôté droit
pour faire décoller le quadricoptère.
Étape 8 :Désarmement du drone
Pour désarmer le drone, nous suivons la procédure suivante :
1. Maintenons les gaz à droite, c’est-à-dire à la position de ralenti.
2. Une fois que les gaz sont maintenus à droite, le drone se désarme, ce qui signifie
que le système de propulsion est désactivé et que le drone est sécurisé.
Le désarmement du drone est une étape importante pour garantir la sécurité et éviter tout
fonctionnement accidentel des moteurs. Il est essentiel de s’assurer que le drone est désarmé
lorsque nous avons terminé le vol ou lorsque nous ne prévoyons pas de le faire voler pendant
un certain temps.

54
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

2.5 Test de vol

Lors du test de vol, nous avons manipulé les joysticks de la radiocommande pour
contrôler les mouvements du drone. Voici une explication de chaque point de contrôle :
Aileron : Le joystick horizontal situé à droite de la radiocommande permet de contrôler
le mouvement latéral du drone. En déplaçant le joystick vers la gauche ou la droite, le drone
effectue des mouvements de roulis, inclinant l’aéronef vers la gauche ou la droite.
La figure 2.32 présente la manipulation du joystick de la radiocommande pour le
contrôle de l’aileron.

Figure 2.32 : Manipulation du joystick de la radiocommande (Aileron)

Elevator : Le joystick vertical situé à droite de la radiocommande permet de contrôler


le mouvement vertical du drone. En déplaçant le joystick vers le haut ou vers le bas, le drone
effectue des mouvements de tangage, montant ou descendant.
La figure 2.33 présente la manipulation du joystick de la radiocommande pour le
contrôle de l’elevator.

Figure 2.33 : Manipulation du joystick de la radiocommande (Elevator)

Rudder : Le joystick horizontal situé à gauche de la radiocommande permet de


contrôler la rotation du drone autour de son axe vertical. En déplaçant le joystick vers la
gauche ou la droite, le drone effectue des mouvements de lacet, pivotant vers la gauche ou la
droite.

55
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

La figure 2.34 illustre la manipulation du joystick de la radiocommande pour le contrôle


du Rudder.

Figure 2.34 : Manipulation du joystick de la radiocommande (Rudder)

En utilisant ces joysticks, nous pouvons exercer un contrôle précis sur les mouvements
du drone pendant le test de vol. En ajustant la position des joysticks, nous pouvons faire
voler le drone dans différentes directions, effectuer des virages et des manœuvres, et maintenir
une stabilité en vol. Il est important de bien maîtriser la manipulation des joysticks de la
radiocommande pour assurer un vol sûr et contrôlé du drone.
Pendant les tests de vol, nous avons rencontré des besoins énergétiques supérieurs à
ce que la batterie LiPo seule pouvait fournir. Notre batterie 3S 3000mAh ne disposait pas
de la capacité nécessaire pour effectuer des vols prolongés, limitant ainsi notre temps de
vol à environ 10 minutes. De plus, notre chargeur n’était pas suffisamment puissant, ce qui
entraînait un temps de charge long de 8 heures. Pour résoudre ce problème, nous avons ajouté
une alimentation à découpage de 40A à 12V, combinant ainsi la capacité de la batterie LiPo
et de l’alimentation pour répondre à nos besoins énergétiques lors des vols prolongés.

56
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

La figure 2.35 présente l’alimentation à découpage de 40A à 12V.

Figure 2.35 : Alimentation à découpage de 40A à 12V

De plus, nous avons ajusté les paramètres PID pour améliorer la stabilité du drone lors
des vols, en effectuant des modifications itératives jusqu’à obtenir des résultats satisfaisants.
Ces efforts nous ont permis de surmonter les problèmes d’alimentation et de stabilité, améliorant
ainsi les performances de notre drone pour le projet d’inspection des pylônes de télécommunications.
Nous nous sommes rendus à l’ISTIC pour effectuer les tests de notre drone. Malgré les
contraintes auxquelles nous avons été confrontés, nous avons finalement réalisé avec succès
le test de vol, comme en témoigne la Figure 2.36.

Figure 2.36 : Vol du drone après les améliorations apportées au système d’alimentation et à la
stabilité

57
Chapitre 2. Fabrication du Drone : Sélection, Assemblage des Composants et Essais de Vol

Conclusion

Ce chapitre a joué un rôle essentiel dans notre apprentissage des drones en nous
fournissant les bases nécessaires pour comprendre leurs composants, leur fonctionnement
et les tests de vol. Dans le prochain chapitre, nous aborderons l’intégration de l’IoT (Internet
des objets) pour l’inspection des pylônes par drone.

58
Chapitre 3

Capture d’Images des Pylônes et


Stockage dans Google Drive grâce
à l’IoT

Plan
1 Définition de l’IoT et son rôle dans l’inspection des pylônes . . . . . . . 60

2 Représentation d’une caméra ESP32 CAM . . . . . . . . . . . . . . . . . 61

3 Création et Mise en place de Google Apps Script . . . . . . . . . . . . . 63

4 Test de la caméra sur l’ESP32-CAM . . . . . . . . . . . . . . . . . . . . . 66

5 Intégration de l’ESP 32-CAM avec Google Drive . . . . . . . . . . . . . 67


Chapitre 3. Capture d’Images des Pylônes et Stockage dans Google Drive grâce à l’IoT

Introduction

Dans ce chapitre, nous explorerons les différentes étapes pratiques de l’intégration


de l’IoT dans notre projet d’inspection des pylônes. Nous mettrons l’accent sur l’utilisation
d’une caméra esp32cam pour la capture d’images et leur hébergement sur Google Drive. Nous
examinerons en détail les avantages concrets de l’IoT dans ce contexte, notamment la collecte
de données en temps réel, l’automatisation des tâches d’inspection et l’amélioration globale
de l’efficacité du processus d’inspection des pylônes.

3.1 Définition de l’IoT et son rôle dans l’inspection des pylônes

L’Internet des Objets (IoT) est un concept technologique qui consiste à connecter des
objets physiques à Internet, leur permettant ainsi d’échanger des données et de communiquer
entre eux. Dans le contexte de l’inspection des pylônes, l’IoT se réfère à l’intégration de
capteurs, de dispositifs de collecte de données et de communication sans fil pour surveiller,
analyser et optimiser les opérations d’inspection des pylônes.
Dans notre projet spécifique, nous utilisons une caméra pour capturer des images des
pylônes et les héberger sur Google Drive via Internet. L’intégration de l’IoT offre de nombreux
avantages, notamment :
• Collecte de données en temps réel : Les capteurs intégrés à la caméra IoT
permettent de recueillir des données en temps réel sur l’état des pylônes, offrant une visibilité
immédiate sur les conditions de chaque site inspecté.
• Automatisation des tâches d’inspection : Grâce à l’IoT, certaines tâches
d’inspection peuvent être automatisées, réduisant ainsi les erreurs humaines et accélérant
le processus global d’inspection.
• Amélioration de l’efficacité globale : L’intégration de l’IoT permet une gestion
plus efficace des opérations d’inspection des pylônes, en optimisant l’utilisation des ressources
et en réduisant les délais de réponse aux problèmes potentiels.

60
Chapitre 3. Capture d’Images des Pylônes et Stockage dans Google Drive grâce à l’IoT

3.2 Représentation d’une caméra ESP32 CAM

Le ESP32-CAM est une carte de développement basée sur l’ESP 32 qui intègre une
caméra et est conçue pour les applications IoT. Elle est caractérisée par sa petite taille, son
faible coût et sa polyvalence.
Dans la figure 3.1, nous pouvons observer la représentation visuelle de la caméra
ESP32-CAM.

Figure 3.1 : ESP32-CAM

Elle offre de nombreuses fonctionnalités intéressantes pour la surveillance, la capture


d’images et la transmission des données.
Pour obtenir des détails supplémentaires sur ses caractéristiques, voici le tableau 3.1
qui présente une présentation exhaustive de l’ESP32-CAM.

61
Chapitre 3. Capture d’Images des Pylônes et Stockage dans Google Drive grâce à l’IoT

Caractéristiques Valeurs / Description

Processeur 2 CPU LX6 32 bits


Caméras supportées OV2640, OV7670
Flash intégré Oui
Port micro USB Oui
Téléchargement d’images via WiFi Oui
Protocoles de réseau pris en charge WiFi 802.11b/g/n/e/i, Bluetooth 4.2
Modes de fonctionnement WiFi STA (Station), AP (Point d’accès), STA+AP (Station+Point d’accès)
RAM 520 Ko intégrés + 4 Mo PSRAM
Dimensions 27 * 40,5 * 4,5 mm (±0,2 mm)
Bluetooth Bluetooth 4.2 BR/EDR et BLE
WiFi 802.11b/g/n/e/i
Carte TF (microSD) Support jusqu’à 4 Go
Formats de sortie d’image JPEG (OV2640 uniquement), BMP, niveau de gris
Plage de fréquences 2412 2484 MHz
Consommation électrique Flash éteint : 180 mA-5 V
Sécurité WiFi WPA, WPA2, WPA2-Enterprise, WPS
Plage de tension d’alimentation 5V
Poids 10 g
Prix 45 DT

Tableau 3.1 : Tableau des caractéristiques de ESP32-CAM

Justification du choix de l’ESP32 CAM :


L’ESP32 CAM est un choix populaire pour plusieurs raisons. Tout d’abord, sa combinaison
de fonctionnalités avancées et de prix abordable en fait une option attrayante pour les
amateurs et les développeurs. De plus, son intégration Wi-Fi et Bluetooth facilite la connexion
à d’autres appareils et réseaux IoT. Enfin, la possibilité d’utiliser une carte micro SD pour
le stockage des images offre une flexibilité supplémentaire.
La figure 3.2 présente la conception 3D de l’ESP32-CAM réalisée avec SolidWorks.

62
Chapitre 3. Capture d’Images des Pylônes et Stockage dans Google Drive grâce à l’IoT

Figure 3.2 : Conception 3D de l’ESP 32 CAM

L’ESP32 CAM peut être alimentée par une batterie externe pour permettre une
utilisation sans fil. Il est important de choisir une batterie adaptée à la caméra en fonction
de ses besoins énergétiques.

3.3 Création et Mise en place de Google Apps Script

Les fonctions de Google Apps Script nous permettent d’accéder à l’ESP32-CAM afin
de pouvoir envoyer ou poster des photos sur Google Drive en utilisant nos comptes Google.
Nous pouvons utiliser Google Apps Script pour créer des scripts personnalisés qui
interagissent avec les services Google, tels que Google Drive. Voici les étapes générales pour
utiliser Google Apps Script avec l’ESP32-CAM :
1. Créer un projet Google Apps Script : Nous nous sommes rendus sur script.google.com
et avons créé un nouveau projet pour écrire le code qui sera exécuté côté serveur.
La figure 3.3 illustre le processus de création d’un projet Google Apps Script

63
Chapitre 3. Capture d’Images des Pylônes et Stockage dans Google Drive grâce à l’IoT

Figure 3.3 : Création d’un projet Google Apps Script

2. Ajouter les fonctions nécessaires : Nous avons écrit la fonction dans notre projet
Google Apps Script pour recevoir les photos envoyées par l’ESP32-CAM et les enregistrer
dans Google Drive. Nous avons utilisé les API Google Drive, comme l’API DriveApp, pour
créer de nouveaux fichiers dans Google Drive et y enregistrer les photos.
La figure 3.4 met en évidence la fonction de réception et d’enregistrement des photos
de l’ESP32-CAM dans Google Drive

Figure 3.4 : Réception et enregistrement des photos de l’ESP32-CAM

Cette fonction est un script Google Apps qui reçoit une requête HTTP POST contenant
une image encodée en base64. Elle décode l’image, crée un nouveau fichier avec l’image dans
un dossier spécifique sur Google Drive, et renvoie une réponse indiquant que l’opération a
réussi. Le nom du dossier est déterminé par un paramètre dans la requête POST, et s’il n’est
pas fourni, le nom ’ESP32-CAM’ est utilisé par défaut.
3. Déployer le projet : Une fois que nous avons écrit nos fonctions, nous les avons

64
Chapitre 3. Capture d’Images des Pylônes et Stockage dans Google Drive grâce à l’IoT

déployées en tant que service web. Cela nous a fourni un ID de déploiement et une URL que
nous avons utilisée pour communiquer avec notre script depuis l’ESP32-CAM.
ID de déploiement : AKfycbxZB4rCcMQQ7ptPYlEU1e3Y5o8Da2ExLUikbfDKqXbWz
cyfTpEfGxLlGIjfoWAr9A
URL : https ://script.google.com/macros/s/AKfycbxZB4rCcMQQ7ptPYlEU-1e35o8
Da2ExLUikbfDKqXbWz-cyfTpEfGxLlGIjfoWAr-9A/exec
Les figures 3.5 et 3.6 présentent respectivement le processus de déploiement du projet
et les identifiants de déploiement et les URL associées au projet

Figure 3.5 : Déploiement du projet

Figure 3.6 : ID de déploiement et URL fournis pour le projet

65
Chapitre 3. Capture d’Images des Pylônes et Stockage dans Google Drive grâce à l’IoT

3.4 Test de la caméra sur l’ESP32-CAM

Nous avons réalisé un code qui permet de tester l’ESP32-CAM. Ce code configure
la caméra, établit une connexion WiFi, et démarre un serveur web qui permet d’accéder à
l’ESP32-CAM depuis un navigateur. Le serveur web diffuse en continu le flux vidéo en direct
et offre la possibilité de capturer des images à partir de la caméra. Une fois téléversé sur
l’ESP32-CAM, le code se connecte au réseau WiFi, démarre le serveur web, et vous pouvez
visualiser le flux vidéo et capturer des images en accédant à l’adresse IP de l’ESP32-CAM
via un navigateur. Dans ce test de la caméra ESP32-CAM, nos ordinateurs et l’ESP32-CAM
doivent être connectés au même réseau WiFi.

La figure 3.7 présente le code de téléversement utilisé pour tester l’ESP32-CAM sur
la carte.

Figure 3.7 : Code de téléversement pour l’ESP32-CAM sur la carte

66
Chapitre 3. Capture d’Images des Pylônes et Stockage dans Google Drive grâce à l’IoT

3.5 Intégration de l’ESP 32-CAM avec Google Drive

Dans notre projet, nous avons élaboré un système basé sur l’ESP32-CAM, une caméra
programmable capable de se connecter à un réseau WiFi et d’envoyer des photos à un serveur
Google Drive à intervalles réguliers.
1. Configuration de base : Tout d’abord, notre système commence par initialiser
les bibliothèques et les paramètres nécessaires.
La figure 3.8 illustre l’initialisation des bibliothèques.

Figure 3.8 : Initialisation des bibliothèques

Il s’agit notamment des bibliothèques pour la gestion du WiFi, la sécurisation des


connexions client, le traitement des images, et l’intégration avec l’ESP32-CAM :
Le module ESP32 intègre une fonctionnalité WiFi permettant au microcontrôleur de
se connecter à des réseaux WiFi et d’effectuer des opérations de communication en utilisant
le protocole TCP/IP.
WiFiClientSecure : WiFiClientSecure est une bibliothèque pour le micro-
contrôleur ESP32 qui permet d’établir une connexion sécurisée (chiffrée) avec un serveur
distant via le protocole HTTPS. Elle offre la possibilité d’effectuer des requêtes sécurisées et
de recevoir des réponses à partir de serveurs sécurisés, en utilisant des certificats SSL/TLS.
esp-camera : esp-camera est une bibliothèque spécifique pour les modules ESP32 qui
permet de prendre des photos, de capturer des vidéos et de les traiter à l’aide de la caméra
intégrée au module. Elle offre des fonctions pour configurer la caméra, capturer des images
et gérer les paramètres de l’image.
Base64 : Base64 est un système de codage qui permet de représenter des données
binaires (comme des images, des fichiers, etc.) sous forme de texte ASCII. Il est souvent
utilisé dans les communications sur Internet pour transmettre des données binaires dans des

67
Chapitre 3. Capture d’Images des Pylônes et Stockage dans Google Drive grâce à l’IoT

formats de texte, tels que les e-mails ou les protocoles HTTP. La bibliothèque Base64 permet
de convertir des données binaires en chaînes de caractères Base64 et vice versa.

2. Définition des identifiants WiFi : Nous avons défini les identifiants de connexion
pour le réseau WiFi auquel l’ESP32-CAM se connectera.
La figure 3.9 présente l’identification de connexion au réseau WiFi pour l’ESP32-CAM.

Figure 3.9 : Connexion WiFi de l’ESP32-CAM

3. Configuration de la caméra : Nous avons également défini plusieurs broches


GPIO pour que l’ESP32-CAM puisse interagir correctement avec le reste du matériel.
La figure 3.10 illustre la définition des broches GPIO pour l’ESP32-CAM.

Figure 3.10 : Définition des broches GPIO pour l’ESP32-CAM

4. Configuration du serveur Google Drive : Nous avons défini les identifiants


nécessaires pour que l’ESP32-CAM puisse envoyer des images à un serveur Google Drive
spécifique.

68
Chapitre 3. Capture d’Images des Pylônes et Stockage dans Google Drive grâce à l’IoT

La figure 3.11 met en évidence les identifiants requis pour l’envoi d’images de l’ESP32-CAM
vers un serveur Google Drive.

Figure 3.11 : Identifiants pour l’envoi d’images vers Google Drive

5. Vérification de la connectivité : Une fois la configuration terminée, une routine


est exécutée pour tester la connectivité à “script.google.com”, pour s’assurer que les images
capturées pourront être téléchargées sur le serveur Google Drive.
6. Capture et envoi de photos : Une routine est créée pour capturer une image à
partir de l’ESP 32-CAM et l’envoyer au serveur Google Drive. Cela comprend la gestion des
erreurs si la capture de l’image échoue.
7. Configuration de l’intervalle de capture : Nous avons défini un intervalle de
temps (20 secondes) auquel l’ESP 32-CAM doit capturer et envoyer des images.
8. Initialisation du système : Lors de la mise en marche, le système initialise la
connexion WiFi, configure l’ESP 32-CAM et vérifie la connectivité au serveur Google Drive.
9. Cycle de fonctionnement : Une fois lancé, le système entre dans une boucle de
fonctionnement principale. À chaque intervalle de temps défini, l’ESP32-CAM capture une
image et l’envoie au serveur Google Drive comme le montre la figure 3.12 ci-dessous.

Figure 3.12 : stockage des images prise par ESP32-cam sur Google Drive

69
Chapitre 3. Capture d’Images des Pylônes et Stockage dans Google Drive grâce à l’IoT

Conclusion

Dans ce chapitre, nous avons examiné comment l’Internet des objets (IoT) joue un rôle
essentiel dans l’inspection des pylônes en utilisant des caméras ESP32-CAM pour la collecte
des données. Cette approche, combinant l’IoT, les caméras ESP32-CAM, Google Apps Script
et Google Drive, offre une solution efficace pour l’inspection des pylônes.

70
Chapitre 4

Détection d’Anomalies et Inventaire


des Pylônes avec l’Intelligence
Artificielle

Plan
1 Détection d’objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

2 Détection de texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111


Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Introduction

Dans ce chapitre, nous aborderons l’intégration de l’intelligence artificielle (IA) dans


la détection d’objets et de texte. Nous explorerons les techniques de collecte, d’organisation
et de préparation d’images pour améliorer la qualité des données. En comprenant ces étapes,
nous pourrons développer des systèmes d’IA plus performants et exploiter pleinement leurs
avantages dans notre contexte spécifique.

4.1 Détection d’objets

Dans cette partie, nous allons nous concentrer sur la détection d’objets. Nous explorerons
l’utilisation de technologies d’intelligence artificielle avancées pour la détection d’images.
La détection d’images a pour objectif d’identifier et de localiser des objets spécifiques
dans une image. Cette technologie peut être utilisée pour des tâches variées, allant de la
reconnaissance faciale à la détection d’objets courants tels que des antennes. Elle permet
également de repérer des défauts ou des caractéristiques particulières, comme la détection de
boulons rouillés dans le cadre d’inspections.
Pour atteindre ces objectifs, nous utiliserons des technologies d’intelligence artificielle
avancées, notamment les réseaux de neurones profonds, tels que les réseaux de neurones
convolutionnels (CNN) utilisés en vision par ordinateur. Ces modèles sont entraînés sur de
vastes ensembles de données annotées, ce qui leur permet d’apprendre à reconnaître et à
généraliser les motifs présents dans les images.
L’utilisation de ces technologies d’IA nous permettra d’effectuer une détection précise
et une analyse automatique des informations visuelles. Cela ouvrira un large éventail de
possibilités dans des domaines tels que la reconnaissance de documents, l’analyse d’images
médicales, la sécurité, et bien d’autres encore. Ces avancées offriront des solutions efficaces
et sophistiquées pour diverses applications pratiques.
La figure 4.1 présente les processus de détection d’objets.

72
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Figure 4.1 : Processus de détection d’objets

4.1.1 Préparation des Images pour la Détection d’objets

4.1.1.1 Collecte d’images : techniques

Nous avons mis en place une méthode hautement efficace et rapide pour collecter un
ensemble d’images en utilisant le Web Scraping. Cette technique de collecte automatisée
nous a permis d’extraire rapidement des images à grande échelle à partir de divers sites web,
sans la nécessité de télécharger chaque image individuellement. En développant un script
Python, en utilisant la bibliothèque Beautifulsoup, nous avons pu naviguer de manière
ciblée à travers une multitude de sources en ligne, notamment des forums techniques, des
sites de télécommunications et des bases de données d’images.

La figure 4.2 illustre notre script de web scraping, soigneusement conçu pour identifier
avec précision les images pertinentes présentes sur ces pages web. Une fois identifiées, ces
images sont automatiquement téléchargées et enregistrées directement dans notre base de
données d’images. Grâce à cette approche automatisée, nous avons pu économiser un temps
considérable, évitant ainsi des heures de travail fastidieux nécessaires pour télécharger chaque

73
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

image une par une.

Figure 4.2 : Script Python du Web scraping

La figure 4.3 nous permet de constater que même si le web scraping est utile pour
collecter rapidement un grand nombre d’images, il présente certaines limites. Par exemple,
nous devons respecter les politiques d’utilisation des sites web et éviter de surcharger leurs
serveurs en téléchargeant un trop grand nombre d’images trop rapidement. De plus, les images
collectées par le web scraping sont souvent très diverses en termes de qualité, de résolution
et de pertinence, ce qui nécessite une étape de tri et de nettoyage.

Figure 4.3 : Exploration des résultats capturés lors de la session de web scraping

74
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Nous avons utilisé une deuxième méthode de collecte d’images en effectuant des visites
sur site. Ces visites nous ont permis de prendre des photos détaillées à haute résolution de
pylônes de télécommunication et de leur équipement, tels que des antennes, des câbles et des
boulons.
Lors de ces visites, nous avons pris des photos sous différents angles pour capturer
une variété de conditions d’éclairage. Cela nous a permis d’obtenir un jeu de données plus
robuste, représentatif des conditions réelles d’inspection des pylônes.
Cette méthode nous a offert des images spécifiques et de haute qualité, complétant
ainsi notre base de données existante. L’ajout de ces images provenant des visites sur site
a renforcé la diversité de notre jeu de données et a amélioré la capacité de notre modèle de
détection d’objets à traiter des scénarios réels de pylônes de télécommunication.
Nous avons utilisé la méthode 3, qui consiste à compléter notre collecte d’images en
utilisant une base de données fournie par SOTETEL. Cette base de données contient
des images d’inspection de pylônes de télécommunication provenant de missions précédentes.
Ces images ont été d’une grande valeur car elles représentaient des scénarios d’inspection réels
et présentaient une variété d’anomalies que nous souhaitions que notre modèle soit capable
de détecter.
Cette base de données d’images provenant de SOTETEL a renforcé notre jeu de
données existant en ajoutant des exemples réels d’anomalies spécifiques aux pylônes de
télécommunication. Le prétraitement minutieux que nous avons effectué nous a permis d’optimiser
l’utilisation de ces images lors de l’entraînement de notre modèle, améliorant ainsi sa capacité
à détecter et à identifier les différents équipements et anomalies rencontrés sur les pylônes.
La figure 4.4 présente un exemple d’image provenant de la base de données de SOTETEL

75
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Figure 4.4 : Exemple d’image de la base de données de SOTETEL

4.1.1.2 Organisation de la base de données d’images

• Filtrage et nettoyage des images :


Dans cette étape de prétraitement, nous avons appliqué un processus de filtrage pour
éliminer les images de mauvaise qualité ou non pertinentes à notre projet. Cela inclut les
images floues, surexposées, de résolution très basse, ou celles qui ne représentaient pas
adéquatement les équipements de pylônes de télécommunication. Le filtrage nous a permis
de garantir la qualité et la pertinence des images sélectionnées pour l’entraînement de notre
modèle, en éliminant les distractions et en se concentrant sur les images les plus informatives
et significatives.
• Classification et stockage méthodique des images :
Pour faciliter l’étiquetage et l’entraînement de notre modèle, nous avons organisé et
stocké les images en fonction des différentes classes d’objets que nous souhaitions détecter.
Cela inclut des catégories telles que les animaux (serpents, scarabées, oiseaux), les nids
d’oiseaux, les arbres, les éléments rouillés (boulons, bracons, haubannes), le balisage nocturne
(lampes), le balisage diurne (couleur rouge et blanc), les échelles, les équipements (BTS), la
détection de texte pour l’inventaire, les lignes de vie, les ports, les structures et les antennes.

76
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

En organisant les images par classe, nous avons pu accéder facilement aux exemples pertinents
pour l’annotation et l’entraînement de notre modèle, ce qui a conduit à une meilleure précision
de détection et à une meilleure capacité de généralisation.
La figure 4.5 présente la classification pour une détection précise des objets cibles

Figure 4.5 : Classification pour une détection précise d’objets cibles

4.1.2 Labellisation des images

4.1.2.1 Labellisation manuelle

Pour la labellisation manuelle de nos images, nous avons choisi d’utiliser le logiciel
d’annotation graphique open source LabelImg. Ce choix s’est imposé en raison des avantages
significatifs qu’offre cet outil.
LabelImg a été sélectionné pour sa convivialité et son interface utilisateur intuitive.
Son utilisation est accessible, même pour les utilisateurs novices, ce qui a accéléré notre
processus d’annotation tout en maintenant un haut niveau de précision.
Un autre aspect décisif était la compatibilité de LabelImg avec différents formats
d’annotation, notamment PASCAL VOC, YOLO et COCO. Cette flexibilité nous a permis
de travailler avec diverses structures de données et de choisir le format d’annotation le mieux
adapté à nos besoins spécifiques de détection d’objets.
L’une des fonctionnalités clés de LabelImg est la possibilité de personnaliser les raccourcis

77
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

clavier, ce qui a considérablement amélioré notre efficacité lors des tâches répétitives d’annotation.
Grâce à cette personnalisation, nous avons pu gagner du temps et accélérer notre processus
global d’annotation.
La Figure 4.6 illustre l’ouverture de LabelImg depuis la ligne de commande.

Figure 4.6 : Ouvrir LabelImg depuis la ligne de commande

La Figure 4.7 montre un exemple d’étiquetage manuel avec LabelImg : étiquetage


d’une image de boulon rouillé.

Figure 4.7 : Un exemple d’étiquetage manuel avec LabelImg

Lors de la labellisation des images, nous avons utilisé les formats d’annotation suivants :
• Format Pascal VOC :
- Indice de classe : Chaque annotation comprend un indice de classe pour l’objet
annoté. - Coordonnées de la boîte englobante : Les coordonnées de la boîte englobante sont
exprimées en pourcentage par rapport à la taille de l’image. - xmin, ymin, xmax, ymax : Ces

78
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

coordonnées définissent les coins de la boîte englobante.


La Figure 4.8 présente le format d’annotation Pascal VOC : les coordonnées de la boîte
englobante.

Figure 4.8 : le format d’annotation Pascal VOC

• Format COCO :
- Indice de classe : Comme dans le format Pascal VOC, chaque annotation comprend un
indice de classe pour l’objet annoté. - Coordonnées de la boîte englobante : Les coordonnées
de la boîte englobante sont également exprimées en pourcentage par rapport à la taille de
l’image. - xmin, ymin, largeur, hauteur : Les coordonnées xmin et ymin définissent le coin
supérieur gauche de la boîte englobante, tandis que la largeur et la hauteur indiquent les
dimensions de celle-ci.
La Figure 4.9 montre le format d’annotation Pascal COCO : les coordonnées de la
boîte englobante.

79
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Figure 4.9 : le format d’annotation Pascal COCO

• Format YOLO : - Chaque ligne d’annotation d’un fichier texte contient les informations
suivantes : - Numéro de classe de l’objet : Indique la classe à laquelle l’objet annoté appartient.
- Coordonnées de la boîte englobante : Les coordonnées de la boîte englobante sont fournies
sous forme de valeurs normalisées, relatives à la taille de l’image. - x, y, largeur, hauteur :
Les coordonnées x et y représentent le centre de la boîte englobante, tandis que la largeur et
la hauteur définissent les dimensions de celle-ci.
En utilisant ces formats d’annotation, nous avons pu associer des informations détaillées
aux objets annotés dans nos images. Ces informations sont cruciales pour l’entraînement et
la détection précise des objets sur les pylônes de télécommunication.
Cependant, il est important de souligner que la labellisation manuelle des images est
une tâche qui requiert un investissement de temps conséquent. Nous avons consacré un temps
considérable à examiner chaque image avec minutie, à dessiner des boîtes englobantes précises
et à associer les annotations appropriées. Pour garantir la cohérence entre les images et leurs
annotations, nous avons enregistré chaque image avec un fichier .txt portant le même nom,
qui contient les coordonnées de la boîte englobante correspondante.
Ainsi, chaque image et son annotation sont étroitement liées, ce qui garantit l’intégrité

80
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

et l’utilité de notre jeu de données annotées pour la formation de notre modèle de détection
d’objets.
La Figure 4.10 illustre le nommage cohérent des images et de leurs annotations.

Figure 4.10 : Nommage cohérent des images et de leurs annotations

4.1.2.2 Labellisation automatique avec le modèle YOLOv5s

a. Organisation des images labellisées manuellement


Pour entraîner et évaluer le modèle YOLOv5s pour la détection d’objets, nous avons
procédé à l’organisation des images labellisées manuellement. Tout d’abord, nous avons divisé
l’ensemble de données en ensembles distincts, à savoir l’ensemble d’entraînement (train) et
l’ensemble de validation (valid). Une répartition courante consiste à allouer 80% des images
à l’ensemble d’entraînement et 20% à l’ensemble de validation. Cette division nous permet
d’utiliser l’ensemble d’entraînement pour apprendre les caractéristiques des objets cibles et
l’ensemble de validation pour évaluer les performances du modèle en termes de détection
précise. Cette approche nous permet de mesurer l’efficacité du modèle YOLOv5s et de
l’ajuster si nécessaire pour améliorer les résultats.
La Figure 4.11 présente une structure en arborescence pour une gestion optimale des
annotations et des images.

81
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Figure 4.11 : Structure optimale pour annotations et images

Pour notre cas, voici comment nous allons structurer les images :
Classe "Rouille" :
• Entraînement : 357 images (85%)
• Validation : 65 images (15%)
Classe "Antenne" :
• Avec 840 images :
• Entraînement : 80% de 840 images = 0.8 * 840 = 672 images
• Validation/Test : 20% de 840 images = 0.2 * 840 = 168 images

b. Configuration du modèle :
La Figure 4.12 présente un tableau de comparaison entre les modèles YOLOv5.

82
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Figure 4.12 : Tableau de comparaison entre les modèles YOLOv5

Le tableau fournit des informations clés sur les performances et la complexité des
différents modèles YOLOv5. Voici une analyse des tendances observées dans le tableau :
c. Performance et complexité : On observe une tendance générale selon laquelle les
modèles plus performants (ceux ayant une mAP plus élevée) ont également une plus grande
complexité, comme en témoignent le plus grand nombre de paramètres et de FLOPs. Par
exemple, le YOLOv5x a une mAP plus élevée que le YOLOv5s, mais il a aussi beaucoup plus
de paramètres et de FLOPs.
d. Vitesse de traitement : De même, les modèles plus complexes ont tendance
à avoir des temps de traitement plus longs. Cela est logique car un modèle plus complexe
nécessite plus de calculs pour effectuer une prédiction. Par exemple, le YOLOv5x a des temps
de traitement CPU et GPU plus longs que le YOLOv5s.
e. Taille de l’image d’entrée : Les modèles formés et testés avec une résolution
d’image d’entrée plus grande (les modèles se terminant par "6") ont généralement une mAP
plus élevée, indiquant une meilleure performance, mais ils ont aussi des temps de traitement
plus longs et une plus grande complexité.
Dans notre projet, nous avons évalué plusieurs variantes du modèle YOLOv5 pour

83
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

déterminer celle qui s’adapte le mieux à nos contraintes spécifiques. Les facteurs clés qui ont
influencé notre décision comprenaient la quantité limitée de ressources disponibles, la taille
réduite de notre ensemble de données et le besoin d’un traitement efficace. Après une analyse
approfondie, nous avons sélectionné le modèle YOLOv5s comme étant le mieux adapté à nos
besoins.
Le YOLOv5s se distingue par sa petite taille et sa légèreté, ce qui le rend particulièrement
attrayant pour nos contraintes actuelles. Conçu pour traiter des images de 640 pixels, il
convient parfaitement à la résolution des données avec lesquelles nous travaillons.
La rapidité de traitement est une autre qualité remarquable du YOLOv5s. Sur un
CPU, le modèle est capable de réaliser une prédiction en 98 ms. Sur une carte graphique
NVIDIA V100, les délais de traitement sont également impressionnants : 6.4 ms pour une
image unique (lot de 1) et 7.2 ms pour un lot de 32 images. Ces performances nous permettent
de traiter efficacement nos données, même avec nos ressources limitées.
En termes de complexité, le YOLOv5s se distingue par son faible nombre de paramètres,
soit 7.2 millions. Cela est nettement inférieur aux autres modèles plus grands de la famille
YOLOv5, ce qui signifie que le YOLOv5s nécessite moins de ressources de calcul. De plus, il
ne nécessite que 16.5 milliards d’opérations en virgule flottante (FLOPs) pour effectuer une
prédiction sur une image de 640x640 pixels, soulignant encore une fois sa faible complexité.
Il est important de mentionner que, bien que le YOLOv5s soit plus léger et plus rapide,
il est généralement moins précis que les modèles plus grands. Cependant, compte tenu de nos
contraintes actuelles, nous avons privilégié la rapidité et l’efficacité.
En conclusion, après avoir soigneusement évalué nos besoins et contraintes, nous avons
déterminé que le YOLOv5s est le choix le plus approprié pour notre projet. Sa combinaison de
légèreté, de rapidité et d’adaptabilité nous permet d’optimiser l’efficacité tout en respectant
nos contraintes de ressources.
f. Etapes de configuration :
Étape 1 : Nous avons créé un fichier YAML nommé ‘dataset.yaml‘ pour spécifier les
chemins des répertoires d’entraînement et de validation, ainsi que le nombre de classes et leurs
noms correspondants dans notre jeu de données. Nous avons remplacé ‘<nombre-de-classes>‘
par le nombre réel de classes dans notre dataset, et mis à jour la liste ‘names‘ avec les noms
appropriés de nos classes. Voici le contenu du fichier ‘dataset.yaml‘ :

84
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

La Figure 4.13 présente la configuration du fichier YAML pour le jeu de données :


dataset.yaml.

Figure 4.13 : Configuration du fichier YAML

Étape 2 : Nous avons personnalisé le modèle en utilisant un fichier de configuration


spécifique que nous avons modifié selon nos besoins, que nous avons nommé "custom-yolov5s.yaml".
En ouvrant ce fichier de configuration dans un environnement de développement
intégré (VScode), nous avons apporté les modifications nécessaires afin d’adapter le modèle
à notre jeu de données. Plusieurs paramètres clés ont été ajustés pour répondre à nos besoins
spécifiques :
nc (nombre de classes) : Nous avons remplacé cette valeur par le nombre réel de
classes présentes dans notre ensemble de données.
depth-multiple et width-multiple : Ces paramètres ont été ajustés pour contrôler
la profondeur et la largeur du modèle. Nous avons pris en compte nos exigences en termes
de taille et de complexité du modèle, tout en gardant à l’esprit les valeurs par défaut
recommandées, sauf si nous avions des besoins spécifiques.
anchors : Les ancres, qui sont des boîtes englobantes prédéfinies utilisées pour détecter
des objets de différentes tailles, ont été adaptées en fonction des objets spécifiques de notre
jeu de données. Nous avons veillé à ajuster les ancres de manière à optimiser la détection des
objets dans notre ensemble de données.
Nous avons suivi un processus en plusieurs étapes pour calculer les ancres optimisées
utilisées dans notre modèle YOLOv5. Voici une description détaillée de chaque étape :
1. Conversion des annotations YOLO en fichiers CSV : Nous avons développé
un script Python pour convertir nos annotations YOLO en fichiers CSV. Ce script extrait les
coordonnées relatives des boîtes englobantes à partir des annotations et les enregistre dans
un fichier CSV distinct. Ces coordonnées seront utilisées ultérieurement pour le calcul des

85
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

ancres.
La Figure 4.14 présente la conversion des annotations YOLO en fichiers CSV.

Figure 4.14 : Conversion d’annotations YOLO en fichier CSV avec un script Python

La Figure 4.15 illustre également la conversion des annotations YOLO en fichiers CSV.

Figure 4.15 : Extraction réussie des annotations YOLO vers un fichier CSV

2. Utilisation de l’outil K-means : Nous avons utilisé l’algorithme de clustering


K-means pour déterminer les ancres optimisées. Le K-means est un algorithme qui regroupe
les points de données en k clusters en fonction de leur similarité. Dans notre cas, les points
de données sont les dimensions des boîtes englobantes.
La Figure 4.16 présente l’utilisation de l’outil K-means.

86
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Figure 4.16 : Script Python pour la génération d’ancres optimisées

3. Préparation des données d’entrée : Nous avons chargé les dimensions des boîtes
englobantes à partir du fichier CSV en utilisant la bibliothèque NumPy. De plus, nous avons
spécifié le nombre d’ancres par niveau de la pyramide d’échelle et le nombre de clusters pour
les ancres.
La Figure 4.17 montre la préparation des données d’entrée.

Figure 4.17 : Préparation des données d’entrée avec NumPy

4. Exécution de l’algorithme K-means : Nous avons utilisé la classe KMeans de la


bibliothèque scikit-learn pour exécuter l’algorithme K-means. Nous avons entraîné le modèle
sur les dimensions des boîtes englobantes et obtenu les centroïdes des clusters correspondants.
5. Évaluation de la qualité des ancres : Nous avons calculé l’IOU moyen (Intersection
over Union) pour évaluer la qualité des ancres générées. L’IOU mesure le degré de chevauchement
entre deux boîtes englobantes et varie de 0 à 1. Un IOU élevé indique une meilleure correspondance
entre les ancres et les objets réels.
La Figure 4.18 présente les résultats de la génération des ancres optimisées et valeur

87
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

de l’IOU .

Figure 4.18 : Résultats de la génération des ancres optimisées et valeur de l’IOU

6. Intégration des ancres dans le fichier de configuration : Les ancres optimisées,


représentées sous forme de tuples (largeur, hauteur), ont été extraites des résultats de K-means
et intégrées dans notre fichier de configuration YOLOv5. Ces ancres seront utilisées par le
modèle pour détecter et localiser les objets.
La Figure 4.19 présente l’intégration des ancres optimisées dans le fichier de configuration.

Figure 4.19 : Intégration des ancres optimisées

Une fois les modifications terminées, nous avons enregistré le fichier de configuration
personnalisé, prêt à être utilisé pour entraîner notre modèle YOLOv5 selon nos spécifications.
Entraînement du modèle YOLO :
Nous avons mis en œuvre une stratégie d’entraînement rigoureuse pour notre modèle
YOLO, comprenant l’ajustement des hyperparamètres pour optimiser les performances. Les
étapes de ce processus sont décrites ci-dessous :
1. Ajustement des hyperparamètres : Nous avons minutieusement ajusté les
hyperparamètres du modèle. Ces réglages comprennent :
• Taux d’apprentissage (Learning rate) : Il s’agit de la vitesse à laquelle notre modèle

88
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

apprend. Un taux trop élevé peut entraîner un apprentissage superficiel, tandis qu’un taux
trop faible peut rendre l’apprentissage lent et inefficace.
• Taille des mini-lots : Il s’agit du nombre d’exemples d’apprentissage utilisés dans
une seule mise à jour des paramètres du modèle. Une taille de lot correcte peut équilibrer
l’efficacité de l’apprentissage et l’utilisation de la mémoire.
• Nombre d’itérations : C’est le nombre de fois où l’ensemble des données d’apprentissage
est utilisé pour mettre à jour les paramètres du modèle. Un bon nombre d’itérations assure
que le modèle a suffisamment appris des données sans tomber dans le surapprentissage.
2. Lancement de l’entraînement : Avec la commande ci-dessous, nous avons initié
l’entraînement du modèle, en spécifiant les paramètres requis :
python yolov5/train.py –img 640 –batch 16 –epochs 100 –data dataset.yaml
–cfg custom-yolov5s.yaml –weights yolov5s.pt –name my-model
Cette commande indique la taille de l’image d’entrée (–img 640), la taille des mini-lots
(–batch 16), le nombre d’époques (–epochs 100), le fichier YAML avec les détails du jeu de
données (–data dataset.yaml), le fichier de configuration personnalisé (–cfg custom-yolov5s.yaml),
les poids du modèle pré-entraîné (–weights yolov5s.pt) et le nom du modèle final (–name
my-model). Ces valeurs doivent être ajustées en fonction de votre configuration spécifique.
La Figure 4.20 présente un exemple pratique pour comprendre les concepts de batch
et d’epoch.

Figure 4.20 : Un schéma clair pour visualiser les notions de batch et d’epoch

89
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

La Figure 4.21 présente un schéma clair pour visualiser les notions de batch et d’epoch.

Figure 4.21 : Exemple pratique des concepts de batch et d’epoch

3. Surveillance des métriques d’entraînement : Tout au long du processus


d’entraînement, nous avons suivi des métriques clés, telles que la perte (loss) et l’exactitude
(accuracy), pour évaluer les performances du modèle. Cette surveillance active a permis
de suivre la progression de l’apprentissage et d’ajuster les hyperparamètres ou la stratégie
d’entraînement si nécessaire.
Une fois l’entraînement initié avec cette commande, le modèle YOLOv5 commence à
apprendre, affichant régulièrement les métriques d’entraînement, comme la perte et l’exactitude.
Ces métriques sont essentielles pour évaluer la performance du modèle. À la fin de l’entraînement,
le modèle entraîné est sauvegardé dans un répertoire spécifié, prêt à être déployé pour la
détection d’objets sur de nouvelles images.

Evaluation du modèle YOLOv5s :


Évaluation des performances du modèle YOLOv5s : À l’issue de l’entraînement du
modèle YOLOv5s, une étape cruciale consiste à évaluer son efficacité dans la reconnaissance
d’objets. Cette évaluation se fait au moyen d’un ensemble de données de validation, distinct
de l’ensemble de données utilisé pour l’entraînement, qui permet de tester le modèle sur des
images qu’il n’a jamais vues auparavant.

90
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Indicateurs clés de performance : La performance du modèle est estimée en fonction


de trois indicateurs clés : la précision, le rappel et le score F1.
1. Précision (Precision) : Mesure la proportion de prédictions positives qui se sont
avérées correctes. Une précision élevée indique que le modèle a su identifier correctement une
grande majorité des objets, même s’il a pu passer à côté de certains.
2. Rappel (Recall) : Indique la proportion de véritables positifs qui ont été correctement
identifiés. Un rappel élevé témoigne du fait que le modèle a su correctement identifier la
plupart des objets, même s’il a pu identifier incorrectement certains.
3. Score F1 (F1 Score) : Le score F1 est une métrique qui combine la précision et
le rappel pour produire un seul chiffre. Il est calculé comme étant la moyenne harmonique de
la précision et du rappel, ce qui donne une mesure de l’équilibre entre ces deux critères.
Ces indicateurs sont évalués sur l’ensemble de validation, distinct de l’ensemble d’entraînement.
Ils fournissent une indication fiable des performances du modèle face à de nouvelles images.
Suivi des performances pendant l’entraînement :
Au cours de l’entraînement, le modèle génère une série de statistiques pour chaque
époque. Ces statistiques fournissent une vue d’ensemble de l’évolution des performances tout
au long de l’entraînement, Comme illustré dans la Figure 4.22.

Figure 4.22 : Statistiques de performance tout au long de l’entraînement

Époque (epoch) : Indique le numéro de l’époque en cours.


Perte pour boîte englobante / détection d’objet / classification (train/box-loss,

91
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

train/obj-loss, train/cls-loss) : Ces valeurs représentent l’erreur du modèle pour les boîtes
englobantes, la détection d’objets et la classification sur l’ensemble d’entraînement.
Précision et rappel (metrics/precision, metrics/recall) : Ces valeurs permettent
d’évaluer la qualité des prédictions du modèle.
Précision moyenne (metrics/mAP-0.5, metrics/mAP-0.5 :0.95) : Ces indicateurs
offrent une évaluation globale des performances du modèle en calculant la précision moyenne
à différents niveaux d’Intersection sur Union (IoU).
Perte pour boîte englobante / détection d’objet / classification sur l’ensemble
de validation (val/box-loss, val/obj-loss, val/cls-loss) : Ces valeurs indiquent l’erreur
du modèle pour les boîtes englobantes, la détection d’objets et la classification sur l’ensemble
de validation.
Taux d’apprentissage actuels (x/lr0, x/lr1, x/lr2) : Ces valeurs représentent les
taux d’apprentissage pour les différentes parties du réseau.
Ces métriques permettent d’observer l’évolution des performances du modèle au fil du
temps. On s’attend à ce que les erreurs d’entraînement et de validation diminuent au fil des
époques, tandis que la précision, le rappel et la mAP augmentent.

Évaluation du modèle
Après la fin de l’entraînement, les poids du modèle sont automatiquement sauvegardés
dans le dossier yolov5/runs/train/. Pour évaluer les performances du modèle sur l’ensemble
de validation, nous avons utilisé la commande suivante :
python yolov5/val.py –data dataset.yaml –weights runs/train
/my-model/weights/best.pt –img 640
Interprétation des courbes obtenues lors de l’entraînement et de l’évaluation :
Durant l’entraînement, vous pouvez suivre l’évolution des différentes métriques et
pertes grâce à des courbes générées automatiquement. Ces courbes permettent de visualiser
si le modèle apprend correctement et si les performances s’améliorent au fil des époques.
Courbes d’apprentissage (Learning curves) :
Ces courbes représentent l’évolution des pertes (losses) d’entraînement et de validation
au fil des époques. On s’attend d’après la figure 4.23 ci-dessous à ce que ces pertes diminuent
au fil du temps, indiquant que le modèle apprend à partir des données.

92
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Figure 4.23 : Courbes d’apprentissage

Courbes de précision et de rappel (Precision and Recall curves) : Ces courbes montrent
comment la précision et le rappel évoluent au fil des époques. On s’attend d’après la figure
4.24 ci-dessous à ce que ces valeurs augmentent au fil du temps, indiquant que le modèle
s’améliore pour détecter les objets.

Figure 4.24 : Courbes de précision et de rappel

Courbes de mAP (mAP curves) : Ces courbes représentent l’évolution du mAP (Mean
Average Precision) au fil des époques. On s’attend d’après la figure 4.25 ci-dessous à ce que
le mAP augmente au fil du temps, ce qui indique que la performance globale du modèle
s’améliore.

93
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Figure 4.25 : Courbes de mAP

Visualisation des résultats et interprétation des pourcentages de confiance


Pour illustrer l’efficacité de notre modèle, nous avons inclus deux figures(4.26 et 4.27).
La figure 4.26 représente les images que nous avons utilisées pour le test, avec les
étiquettes réelles que nous avons attribuées manuellement. Ces étiquettes indiquent où se
trouvent les objets d’intérêt, en l’occurrence les antennes, dans chaque image.

Figure 4.26 : Images de test avec étiquettes manuelles - Classe Boulon rouillé

La figure 4.27 montre les mêmes images, mais cette fois avec les prédictions de notre

94
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

modèle. Pour chaque objet détecté, le modèle attribue un pourcentage de confiance qui est
également indiqué sur la figure. Ce pourcentage de confiance donne une idée de la probabilité
que l’objet détecté soit effectivement une antenne, selon les estimations du modèle.

Figure 4.27 : Images de test avec prédictions et confiance - Classe Boulon rouillé

En comparant ces deux figures, nous pouvons évaluer l’exactitude des prédictions du
modèle. De plus, en analysant les pourcentages de confiance, nous pouvons comprendre à
quel point le modèle est certain de ses prédictions.
Les erreurs éventuelles de détection peuvent être visualisées directement sur ces figures,
ce qui nous permet de comprendre dans quelles situations ou pour quels types d’objets
le modèle peut rencontrer des difficultés. Cette analyse visuelle est un outil précieux pour
l’amélioration continue de notre modèle, en nous permettant d’identifier les domaines nécessitant
une attention particulière.
Applications du modèle : labellisation automatique des images
Une fois notre modèle YOLOv5s formé et validé, nous avons pu l’utiliser pour automatiser
le processus de labellisation des images. Voici comment nous avons procédé :

95
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Modification de detect.py : Pour permettre l’enregistrement automatique des labels


des images annotées, nous avons modifié le script detect.py dans le répertoire YOLOv5. Cette
modification a permis de générer automatiquement des fichiers d’annotation pour chaque
image traitée.
Etape 1 : Lorsque cette option est activée en la définissant sur True, le modèle
sauvegarde les résultats de détection dans des fichiers texte, Comme illustré dans la figure
4.28.

Figure 4.28 : modification de l’option "save-txt=True"

Etape 2 :
La figure 4.29 montre la création d’un dossier de sortie pour les images et les annotations

Figure 4.29 : Création d’un dossier de sortie

Etape 3 :
La figure 4.30 montre l’enregistrement des annotations au format YOLO.

Figure 4.30 : Enregistrement des annotations au format YOLO

Détection d’objets avec YOLO : Nous avons utilisé notre modèle formé pour détecter
les objets d’intérêt (les antennes ) dans de nouvelles images a l’aide de la commande “python
detect.py –source /path/to/your/images –save-txt”. Pour chaque image, le modèle a généré
des boîtes englobantes autour des objets détectés et attribué à chaque boîte une étiquette
correspondant à l’objet détecté.

96
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

La figure 4.31 montre l’exécution du script detect.py.

Figure 4.31 : Eexécution du script detect.py

Après l’exécution du script, nous trouvons les images et leurs annotations correspondantes
au format YOLO dans le dossier output. Les annotations seront stockées dans le sous-dossier
labels, et les images dans le sous-dossier images. Nous pouvons alors utiliser ces fichiers avec
labelImg ou tout autre outil de gestion d’annotations au format YOLO.
Les figures 4.32, 4.33 et 4.34 illustrent la structure du dossier de sortie et la gestion
des annotations dans YOLOv5.

Figure 4.32 : Stockage organisé des images dans le dossier de sortie “output”

97
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Figure 4.33 : Stockage organisé des annotations au format YOLO dans le dossier "labels"

Figure 4.34 : Déplacement des images d’entrée dans le sous-dossier "labels"

Ouverture des images et annotations avec LabelImg : Une fois les annotations générées
automatiquement, nous avons utilisé l’outil LabelImg pour ouvrir les images et leurs annotations
correspondantes. LabelImg est une application graphique qui permet de visualiser les images
et leurs boîtes englobantes associées, en superposant les boîtes englobantes sur les images,
comme ilustree dans la figure 4.35

98
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Figure 4.35 : visualiser les images et leurs boîtes englobantes avec LabelImg

Correction manuelle des erreurs : Même si la labellisation automatique a grandement


facilité le processus d’annotation, elle n’est pas parfaite. Par conséquent, nous avons inspecté
manuellement chaque image et chaque annotation pour vérifier leur exactitude. Lorsque nous
avons constaté des erreurs dans les boîtes englobantes ou les étiquettes, nous avons corrigé
ces erreurs directement dans l’interface de LabelImg.
Enregistrement des modifications : Une fois que nous avons vérifié et corrigé les
annotations pour chaque image, nous avons enregistré les modifications. Cela a généré une
version finale des fichiers d’annotation, prête à être utilisée pour un entraînement supplémentaire
du modèle ou pour l’évaluation des performances.
Cette démarche a permis d’accélérer considérablement le processus d’annotation des
images, tout en garantissant une certaine qualité grâce à la vérification manuelle. C’est un
excellent exemple de la manière dont un modèle d’apprentissage automatique peut être utilisé
pour automatiser et faciliter une tâche complexe et fastidieuse.

99
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

4.1.3 Choix du modèle YOLOv5m pour une détection d’objets précise


et performante

Après une première phase d’entraînement avec le modèle YOLOv5s pour la labellisation
automatique, nous avons réussi à augmenter notre base de données avec des images et leurs
annotations correspondantes. Cette augmentation substantielle de notre ensemble de données
a modifié notre situation initiale et nous a permis de réévaluer notre choix de modèle.
Dans cette nouvelle phase de notre projet, notre objectif est de développer un modèle
de détection d’objets performant. Compte tenu de l’augmentation de la taille de notre
ensemble de données, nous avons maintenant la possibilité d’entraîner des modèles plus grands
et plus précis. C’est pourquoi nous avons décidé d’utiliser le YOLOv5m pour cette tâche.
Le YOLOv5m est un modèle plus grand et plus complexe que le YOLOv5s. Il est conçu
pour traiter des images de 640 pixels, tout comme le YOLOv5s, mais offre une performance
supérieure. En termes de vitesse de traitement, le YOLOv5m est légèrement plus lent que le
YOLOv5s, mais toujours assez rapide pour nos besoins, avec un temps de prédiction de 224
ms sur CPU, et 8.2 ms et 21.2 ms sur une carte graphique NVIDIA V100 pour des lots de 1
et 32 images respectivement.
En termes de complexité, le YOLOv5m a 21.2 millions de paramètres, ce qui est plus
élevé que le YOLOv5s, et nécessite 49.0 milliards de FLOPs pour effectuer une prédiction
sur une image de 640x640 pixels. Cependant, grâce à l’augmentation de notre ensemble de
données, nous sommes maintenant en mesure de tirer parti de cette complexité accrue pour
améliorer la précision de notre modèle de détection d’objets.

4.1.4 Entraînement et évaluation du modèle YOLOv5m pour la détection


d’objets

Dans le cadre de notre projet, nous avons rencontré un problème majeur lors de
l’entraînement du modèle YOLOv5s pour me modele de labellisation automatique : l’utilisation
d’un CPU prend beaucoup de temps, ce qui limite considérablement notre efficacité d’entraînement.
En tant qu’équipe, nous avons cherché une solution pour accélérer le processus d’entraînement
et améliorer nos résultats.
Une solution clé que nous avons adoptée pour résoudre le problème de temps d’entraînement

100
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

excessif a été l’utilisation d’un GPU. Les GPUs sont spécialement conçus pour les tâches de
calcul intensif, telles que l’entraînement de modèles d’apprentissage profond. En utilisant un
GPU, nous avons pu accélérer considérablement le processus d’entraînement et améliorer les
performances globales du modèle YOLOv5.
Pour mieux comprendre les avantages et les différences entre les configurations d’entraînement
de YOLOv5, un tableau de comparaison approfondie (Tableau 4.1) a été préparé.

Configuration CPU GPU GPU avec plus de Workers

Temps d’entraînement Très Élevé Modéré Bas


(heures à jours) (minutes à heures) (minutes)

Efficacité Bas Haut Très Haut

Parallélisation Limitée Très Bonne Excellente


(dépend du nombre de cœurs) (milliers de cœurs)

Capacité de Mémoire Modérée Haut Très Haut


(quelques dizaines de Go) (quelques centaines de Go) (plusieurs To avec plusieurs GPUs)

Support de Framework Tous Dépendant du GPU Dépendant du GPU et de la bibliothèque


(CUDA pour Nvidia) de parallélisation (CUDA, NCCL pour Nvidia)

Utilisation d’énergie Modérée Élevée Très Élevée

Tableau 4.1 : Comparaison approfondie des configurations d’entraînement pour YOLOv5

L’utilisation d’un GPU a été une décision cruciale pour accélérer le processus d’entraînement
du modèle YOLOv5. Les GPUs offrent une puissance de calcul parallèle qui permet de traiter
efficacement les opérations complexes du modèle, réduisant ainsi considérablement le temps
d’entraînement nécessaire. Cette accélération se traduit par une amélioration significative de
la vitesse de détection du modèle, avec une augmentation notable du nombre de frames par
seconde (FPS).
Cependant, il convient de noter que l’utilisation d’un GPU peut entraîner une augmentation
de la consommation de mémoire et des coûts associés. De plus, pour exploiter pleinement
le potentiel du GPU, il est souvent nécessaire de configurer et d’optimiser correctement
l’infrastructure de deep learning utilisée, en installant les pilotes appropriés et les dépendances
nécessaires. Enfin, l’utilisation de workers, en parallèle avec le GPU, peut encore accélérer
le processus d’entraînement, réduisant ainsi davantage le temps nécessaire pour obtenir des
résultats satisfaisants.
En combinant l’utilisation d’un GPU avec d’autres techniques d’optimisation, nous
avons pu résoudre efficacement le problème de temps d’entraînement excessif, tout en améliorant

101
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

les performances de notre modèle YOLOv5. Cette approche nous a permis d’obtenir des
résultats plus rapides et plus précis, renforçant ainsi la qualité et l’efficacité de notre projet
de détection d’objets.

4.1.4.1 Configuration du GPU :

L’installation de dépendances clés telles que NVIDIA CUDA Toolkit et cuDNN s’est
avérée indispensable pour maximiser les performances de nos GPU et accélérer l’entraînement
de notre modèle YOLOv5. Voici une description détaillée des étapes que nous avons suivies
pour réaliser cette installation sous Windows :
Premièrement, il est important de vérifier la compatibilité de la carte graphique NVIDIA
avec CUDA. Cette vérification peut être effectuée en consultant la liste des GPU compatibles
sur le site web de NVIDIA. Par ailleurs, nous avons veillé à maintenir nos pilotes de carte
graphique à jour, en téléchargeant et en installant la dernière version depuis le site web de
NVIDIA.
Une fois cette vérification effectuée, nous avons procédé au téléchargement du CUDA
Toolkit directement depuis la page de téléchargement du CUDA Toolkit sur le site web de
NVIDIA. Nous avons sélectionné les options correspondant à notre système d’exploitation,
à notre architecture matérielle et à notre version de Windows. Ensuite, nous avons lancé
l’installateur téléchargé et suivi les instructions à l’écran pour installer le CUDA Toolkit.
Après l’installation du CUDA Toolkit, nous avons défini les variables d’environnement
de notre système pour inclure les répertoires bin et libnvvp du toolkit CUDA.
Ensuite, nous avons téléchargé cuDNN à partir de la page de téléchargement de cuDNN
sur le site web de NVIDIA. Nous avons choisi la version de cuDNN correspondant à la version
du CUDA Toolkit que nous avons installé. Après avoir extrait les fichiers du fichier ZIP
téléchargé, nous les avons copiés dans les répertoires appropriés du CUDA Toolkit.
Enfin, nous avons installé PyTorch avec la version CUDA correspondante en utilisant le
gestionnaire de paquets pip3. Pour vérifier que le CUDA Toolkit et cuDNN étaient correctement
installés et configurés, nous avons exécuté des commandes spécifiques dans le terminal.
La figure 4.36 illustre ces étapes.

102
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Figure 4.36 : Vérification de l’installation du CUDA Toolkit et du cuDNN

De plus, nous avons également exécuté un script Python pour vérifier si PyTorch
reconnaissait notre GPU et si la version de CUDA correspondait à celle de notre système.
La figure 4.37 montre la vérification de la reconnaissance du GPU par PyTorch et la
compatibilité de la version CUDA avec le système.

Figure 4.37 : Vérification du GPU et de la version CUDA

103
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Ces étapes ont permis d’assurer une installation correcte des dépendances nécessaires
pour l’entraînement de notre modèle YOLOv5 sur un GPU, garantissant ainsi un processus
d’entraînement plus rapide et plus efficace.

4.1.5 Organisation des images labellisées automatiquement

Dans le but d’optimiser l’efficacité de notre modèle YOLOv5, nous avons pris des
mesures pour organiser correctement les images labellisées automatiquement par notre modèle.
Tout d’abord, nous avons ajouté ces images à notre dossier de données existant. Ensuite, nous
avons divisé l’ensemble de données en trois sous-ensembles distincts : l’ensemble d’entraînement,
l’ensemble de validation et l’ensemble de test. Cette division standard en apprentissage
automatique nous permet de prévenir le surapprentissage, d’ajuster les paramètres du modèle
pendant l’entraînement et d’évaluer ses performances sur des données inédites. L’ensemble
d’entraînement est utilisé pour former le modèle, l’ensemble de validation pour ajuster les
paramètres et surveiller l’apprentissage, et l’ensemble de test pour évaluer les performances
finales du modèle.

4.1.6 Architecture du modèle YOLOv5m

Le modèle YOLOv5m, avec son architecture plus grande et plus puissante par rapport à
YOLOv5s, offre des performances accrues en termes de vitesse d’entraînement et de détection
d’objets. En passant de YOLOv5s à YOLOv5m, il est possible de réduire significativement
le temps d’entraînement nécessaire. Cette transition vers un modèle plus puissant permet de
mieux exploiter les ressources du GPU, accélérant ainsi le processus d’entraînement global.

4.1.7 Entraînement du modèle YOLOv5m

Après avoir préparé nos données, nous avons entrepris la phase cruciale de l’entraînement
du modèle YOLOv5m pour la détection d’objets. Dans cette étape, nous avons utilisé une
approche différente par rapport à notre premier modèle YOLOv5s, en exploitant la puissance
du GPU pour accélérer le processus d’entraînement.
Sans entrer dans les détails techniques déjà abordés dans la partie de l’entraînement
du modèle YOLOv5s, nous avons suivi un processus similaire, mais adapté aux spécificités du
modèle YOLOv5m et à l’usage du GPU. Les hyperparamètres ont été ajustés en conséquence,

104
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

et l’entraînement a été lancé sur l’ensemble de données avec une surveillance constante des
métriques d’entraînement.
L’efficacité de l’entraînement sur GPU s’est traduite par une accélération significative
du processus et une amélioration notable des performances de détection du modèle YOLOv5m.
Ainsi, malgré les changements dans l’architecture du modèle et le matériel utilisé, la philosophie
générale de l’entraînement est restée la même : optimiser les performances du modèle tout en
minimisant la perte lors de l’apprentissage. Pour s’assurer que le GPU est correctement
reconnu et utilisé, nous avons effectué une vérification pour confirmer que la valeur de
l’utilisation du GPU n’est pas nulle.
La figure 4.38 présente l’entraînement du modèle avec GPU : Vérification de l’utilisation
optimale du GPU.

Figure 4.38 : Entraînement du modèle avec GPU : Utilisation optimale du GPU

Dans l’effort d’optimiser l’entraînement du modèle YOLOv5m, nous avons utilisé non
seulement un GPU mais également intégré des "workers" dans le processus. Ces "workers"
sont des processus parallèles qui se chargent de la préparation des données avant leur transmission
au GPU pour l’entraînement. Cette méthode de parallélisation est bénéfique car elle optimise
l’exploitation des ressources disponibles et minimise le temps nécessaire pour l’entraînement.
Il est important de souligner que malgré le recours à des "workers", il n’existe pas
d’option directe permettant d’utiliser simultanément le CPU et le GPU pour l’entraînement
du modèle. En effet, le GPU est généralement plus performant pour effectuer les calculs
nécessaires à l’entraînement de modèles de deep learning, il est donc préférable de l’utiliser
pour ces calculs.
Cependant, nous avons pu optimiser l’usage du CPU en parallèle avec le GPU en

105
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

ajustant l’argument –workers. Cet ajustement a permis d’augmenter le nombre de threads


de données utilisés pour le chargement des données durant l’entraînement.
Voici un exemple de la commande que nous avons utilisée :
python yolov5/train.py –img 640 –batch 8 –epochs 100 –data data-antenne.yaml
–cfg data-antenne-yolov5m.yaml –weights yolov5m.pt –name modelantenne –workers
8
Cet ajustement a permis d’accroître le nombre de threads de données chargées, contribuant
ainsi à minimiser les goulots d’étranglement liés à l’E/S et à maximiser l’utilisation du GPU
pendant l’entraînement. Bien que cela n’ait pas entraîné le modèle directement sur le CPU,
cela a permis de maximiser l’utilisation du GPU en chargeant les données plus rapidement.
Avant d’utiliser le GPU, il est important de noter que les ressources matérielles, telles
que la mémoire et le processeur, sont fortement sollicitées, atteignant des niveaux proches de
100% lors de l’entraînement du modèle comme l’indiquent les figures 4.39 et 4.40 ci-dessous.

Figure 4.39 : Utilisation de la mémoire lors de l’entraînement sans GPU

106
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Figure 4.40 : Utilisation du processeur lors de l’entraînement sans GPU

L’utilisation simultanée du GPU et du CPU permet d’observer une optimisation et


une amélioration significative de l’utilisation des ressources matérielles.
La figure 4.41 présente l’utilisation des ressources matérielles lors de l’entraînement
avec activation du GPU et des workers.

Figure 4.41 : Utilisation des ressources matérielles avec GPU et workers

107
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

La figure 4.42 présente l’entraînement du modèle avec GPU et workers.

Figure 4.42 : Entraînement du modèle avec GPU et workers

4.1.8 Evaluation du modèle YOLOv5m

Suite à l’étape d’entraînement du modèle YOLOv5m, nous avons poursuivi avec une
étape cruciale : l’évaluation et le test du modèle de détection d’objets. Pour ce faire, nous
nous sommes appuyés sur le jeu de données de test qui avait été réservé, distinct des données
d’entraînement et de validation.
Cette phase s’est déroulée de manière similaire à celle du modèle YOLOv5s, tout en
exploitant l’avantage de la puissance de calcul du GPU. Cette accélération matérielle a rendu
le processus d’évaluation plus rapide et plus efficace.
Durant l’étape de test, le modèle YOLOv5m a été appliqué à l’ensemble de test, et ses
prédictions ont été mises en parallèle avec les véritables annotations pour évaluer la précision
du modèle. De plus, plusieurs métriques de performance ont été analysées, dont la précision
(accuracy), le rappel (recall) et le score F1.
L’évaluation a confirmé que notre modèle YOLOv5m, grâce à l’entraînement sur GPU,
a non seulement permis une réduction notable du temps d’entraînement, mais a également
amélioré la performance de détection comparativement au modèle YOLOv5s entraîné sur
CPU. Cette progression remarquable a non seulement renforcé notre confiance dans la démarche

108
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

adoptée, mais a également souligné l’importance et l’efficacité de l’utilisation du GPU pour


l’entraînement de modèles de détection d’objets.
La figure 4.43 présente des images de test annotées avec des antennes.

Figure 4.43 : Images de test annotées : antenne

Figure 4.44 : Prédictions du modèle pour les images de test - Classe Antenne

109
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

La figure 4.44 présente des images de test avec les prédictions du modèle et les
pourcentages de confiance associés pour la classe "antenne".

4.1.9 Applications de la détection d’objets

Le modèle YOLOv5m que nous avons entraîné peut être utilisé dans un large éventail
de scénarios de détection d’objets. Il offre une grande flexibilité en ce qui concerne le type
de données d’entrée qu’il peut traiter. Ci-dessous, nous décrivons comment utiliser le modèle
pour différentes formes d’input.
• Détection par webcam : Pour utiliser une webcam comme source d’entrée.
• Détection sur une image : Pour effectuer une détection d’objets sur une image
spécifique.
• Détection sur une vidéo : De même, pour utiliser une vidéo comme source
d’entrée,
• Détection dans un répertoire : Si nous souhaitons effectuer une détection
d’objets sur toutes les images ou vidéos dans un répertoire spécifique.
• Détection sur une vidéo YouTube : Pour effectuer une détection d’objets sur
une vidéo YouTube.
• Détection sur un flux RTSP, RTMP ou HTTP : Enfin, pour effectuer une
détection d’objets sur un flux en direct RTSP, RTMP ou HTTP
Ainsi, avec notre modèle YOLOv5m entraîné, nous sommes équipés pour effectuer une
détection d’objets précise sur un large éventail de sources de données, ouvrant la voie à de
nombreuses applications intéressantes.
La figure 4.45 montre l’application de la détection d’objets avec le modèle YOLOv5m.

110
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Figure 4.45 : Application de la détection d’objets avec le modèle yolov5m

4.2 Détection de texte

La détection de texte consiste à identifier et à extraire automatiquement les zones de


texte présentes dans une image ou une vidéo. Cette fonctionnalité est particulièrement utile
dans des applications telles que la reconnaissance optique de caractères (OCR), qui permet
de convertir des textes imprimés en données électroniques manipulables. Dans cette partie,
nous allons examiner le processus de détection de texte, tel qu’illustré dans la figure 4.46

111
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

ci-dessous.

Figure 4.46 : Processus de détection de texte

4.2.1 Amélioration de la qualité de l’image

Dans notre processus de traitement d’image, nous utilisons plusieurs étapes pour
améliorer sa qualité et faciliter la reconnaissance des caractères.
Interpellation : Cette première étape est cruciale. Elle permet d’ajuster la taille de
l’image tout en préservant les détails importants. C’est une étape de prétraitement indispensable
pour préparer l’image aux traitements suivants.
Filtre de flou médian : Cette étape joue un rôle majeur dans la réduction du bruit
de l’image. En remplaçant chaque pixel par la médiane des pixels voisins, on obtient une
image plus lisse, donc plus facile à traiter dans les étapes ultérieures.
Conversion en niveaux de gris : Cette étape simplifie considérablement le traitement
de l’image en éliminant la couleur. Elle permet de concentrer l’analyse sur les caractéristiques
structurelles et texturales de l’image, éléments essentiels pour la reconnaissance des caractères.
Seuillage adaptatif gaussien : Cette méthode de binarisation est essentielle. Elle

112
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

prend en compte les caractéristiques locales de l’image pour ajuster le seuil. Cela permet
d’obtenir une binarisation précise et adaptée à chaque région de l’image, ce qui est fondamental
pour une bonne reconnaissance des caractères.
Morphologie mathématique (érosion et dilatation) : Ces opérations sont primordiales
car elles permettent de modifier la structure et la forme des objets dans l’image. L’érosion
réduit la taille des objets en enlevant les pixels à la bordure, tandis que la dilatation les
agrandit en ajoutant des pixels à leur bordure. Ces transformations peuvent aider à améliorer
la détection et la reconnaissance des caractères.
Binarisation avec l’outil OCR Kraken : Cette dernière étape est indispensable.
Elle facilite grandement la reconnaissance des caractères lors du traitement ultérieur de
l’image. En optimisant la binarisation, on améliore les chances d’une reconnaissance précise
des caractères.
Nous avons intégré un script Python qui inclut une fonction nommée "process-image"
pour réaliser le filtrage de l’image et améliorer sa qualité comme le montre les Figures 4.47
et 4.48.

Figure 4.47 : Amélioration d’image : Prétraitement avec ’preprocess-image’

113
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

Figure 4.48 : Prétraitement d’image binaire pour meilleure reconnaissance des caractères

La Figure 4.49 présente l’image originale avant traitement.

Figure 4.49 : Image originale avant traitement

114
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

La Figure 4.50 illustre l’amélioration de la qualité de l’image.

Figure 4.50 : Amélioration de la qualité de l’image

En somme, chaque étape joue un rôle déterminant dans l’amélioration de la qualité de


l’image et la facilitation de la reconnaissance des caractères.

115
Chapitre 4. Détection d’Anomalies et Inventaire des Pylônes avec l’Intelligence Artificielle

4.2.2 Tesseract OCR pour la reconnaissance de texte sur images traitées

Nous avons développé un code en utilisant les techniques de traitement d’image pour
améliorer la qualité de l’image et effectuer la reconnaissance de texte avec Tesseract OCR.
La Figure 4.51 présente le résultat de la détection de texte à partir de l’image traitée.

Figure 4.51 : Résultat de la détection de texte

Conclusion

En conclusion, dans ce chapitre, nous avons exploré l’intégration de l’intelligence


artificielle (IA) dans la détection d’objets, en mettant l’accent sur la préparation des images.
Nous avons examiné les différentes techniques de collecte d’images, ainsi que l’organisation,
le filtrage, le nettoyage, la classification et la labellisation méthodiques des images. Grâce à
ces étapes de préparation, nous pouvons améliorer la qualité des données et développer des
systèmes d’IA plus performants. Dans le chapitre suivant, nous aborderons l’importance de
Django et ses applications dans notre domaine, approfondissant ainsi notre compréhension
des technologies essentielles pour notre étude.

116
Chapitre 5

Intégration Web IA-IoT avec Django


pour la Surveillance des Pylônes

Plan
1 Architecture avec Django . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

2 Interconnexion entre Django et Google Drive . . . . . . . . . . . . . . . 119

3 Intégration du modèle YOLOv5m avec Django . . . . . . . . . . . . . . 122

4 Intégration du modèle Tesseract OCR avec Django . . . . . . . . . . . . 126

5 Conception et réalisation du Dashboard avec Django . . . . . . . . . . . 136


Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Introduction

Dans ce chapitre, nous aborderons l’utilisation de Django dans ce projet. Nous explorerons
l’architecture de l’application basée sur Django, son intégration avec Google Drive pour
le téléchargement d’images, l’intégration du modèle de détection d’objets YOLOv5m avec
Django, et comment Django gère les données détectées. De plus, nous présenterons le tableau
de bord de Django qui affiche les résultats visuels de la détection d’anomalies.

5.1 Architecture avec Django

Django est un framework de développement web hautement flexible et puissant, écrit


en Python. Il fournit une infrastructure complète pour la création d’applications web, en
suivant le paradigme du Modèle-Vue-Contrôleur (MVC).
Dans l’architecture de Django, les modèles représentent les structures de données de
l’application. Ils définissent la structure, la validation et le comportement des données. Les
vues gèrent la logique de contrôle en interagissant avec les modèles pour obtenir les données
nécessaires. Les templates définissent la présentation des données dans l’interface utilisateur.
Django facilite la gestion des flux de données entre les différentes composantes de
l’application, assurant leur bonne intégration. Il prend en charge des tâches telles que
l’hébergement de l’interface utilisateur, la gestion des requêtes HTTP, l’interfaçage avec
des services externes comme l’API de Google Drive, l’intégration de modèles d’intelligence
artificielle, et le stockage et la gestion des données.
Grâce à sa modularité, sa robustesse et son support pour les bonnes pratiques de
développement web, Django permet aux développeurs de se concentrer sur la logique de
l’application plutôt que sur les détails techniques. Il offre une abstraction de haut niveau
pour masquer la complexité sous-jacente, ce qui en fait un outil essentiel pour la création
d’applications web puissantes et évolutives.
La Figure 5.1 présente Django : un site web d’Analyse Visuelle amélioré, qui intègre
la détection, le stockage et la visualisation des résultats de détection.

118
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Figure 5.1 : Django : Site web d’Analyse Visuelle avec Détection, Stockage et Visualisation des
résultats de détection

5.2 Interconnexion entre Django et Google Drive

L’interconnexion entre Django et Google Drive est une composante essentielle du flux
de travail de notre application. Cette interconnexion permet de télécharger les images des
pylônes de télécommunication stockées sur Google Drive, ce qui constitue la première étape
de notre processus de détection des anomalies.

5.2.1 L’intégration de l’API Google Drive

L’API Google Drive offre une multitude de fonctionnalités permettant d’interagir avec
les fichiers et les dossiers stockés sur Google Drive. Dans notre application, nous utilisons
l’API pour télécharger les images nécessaires à l’analyse. Django, avec ses capacités intégrées
pour travailler avec les API, rend cette tâche simple et directe. Un service spécifique est créé
dans l’application Django qui est responsable de la communication avec l’API Google Drive.
Ce service utilise les fonctionnalités de l’API pour localiser le dossier approprié sur Google
Drive, parcourir les images qu’il contient, et les télécharger une par une.

5.2.2 Authentification OAuth

L’authentification est une étape importante pour garantir la sécurité des données lors
de l’interaction avec Google Drive. Pour cette raison, nous utilisons OAuth, un protocole
standard pour l’authentification qui assure que seuls les utilisateurs autorisés ont accès aux

119
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

fichiers sur Google Drive. Django gère l’ensemble du flux OAuth, y compris l’acquisition du
jeton d’authentification, son stockage sécurisé, et son utilisation pour authentifier chaque
requête à l’API Google Drive. De plus, Django gère également le renouvellement du jeton
lorsque cela est nécessaire.
La Figure 5.2 présente le flux d’authentification OAuth avec Google Drive.

Figure 5.2 : Flux d’authentification OAuth avec Google Drive

La Figure 5.3 présente la gestion sécurisée de l’authentification OAuth avec Django.

Figure 5.3 : Gestion sécurisée de l’authentification OAuth avec Django

120
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

5.2.3 Gestion des erreurs

La robustesse du processus de téléchargement est cruciale pour le fonctionnement de


notre application. Pour cette raison, Django est doté d’un mécanisme de gestion des erreurs
pour gérer tout problème qui pourrait survenir lors du téléchargement des images. Cela
comprend des vérifications pour s’assurer que le fichier existe, que le jeton d’authentification
est valide, et que le téléchargement s’est déroulé sans problème. Si une erreur se produit,
Django peut soit tenter de résoudre le problème (par exemple, en renouvelant un jeton
d’authentification expiré), soit émettre une alerte pour signaler le problème.

5.2.4 Stockage des images

Une fois les images téléchargées, elles sont stockées dans un dossier spécifique de fichiers
statiques dans le système de fichiers de Django. Cette approche garantit que les images sont
facilement accessibles pour les étapes suivantes du processus, notamment l’analyse par le
modèle de détection d’anomalies. Le dossier de fichiers statiques est organisé de manière à
faciliter la localisation et la récupération des images.
En somme, l’interconnexion entre Django et Google Drive est une composante clé de
notre application, qui garantit le téléchargement sécurisé et efficace des images nécessaires à
l’analyse.

5.2.5 Obtention des informations d’authentification pour l’API Google


Drive à partir d’un fichier JSON dans Django

Figure 5.4 : la fonction get google credentials

121
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Le code de la Figure 5.4 présente un exemple de récupération des informations


d’authentification pour l’API Google Drive à partir d’un fichier JSON contenant les détails
du compte de service. La fonction "get-google-credentials" utilise le module client de la
bibliothèque oauth2client pour faciliter l’authentification OAuth.
La fonction commence par définir trois variables : "SCOPES" pour les scopes d’accès
requis, "CLIENT-SECRET-FILE" pour le fichier contenant les informations secrètes du
client, et "SERVICE-ACCOUNT-FILE" pour le fichier JSON contenant les détails du compte
de service.
Ensuite, la fonction utilise la méthode "from-service-account-file" pour créer un objet
"credentials" à partir du fichier du compte de service. Cet objet "credentials" sera utilisé
pour l’authentification lors des interactions avec l’API Google Drive.
Enfin, la fonction renvoie l’objet "credentials" qui peut être utilisé pour authentifier
l’application lors de l’utilisation de l’API Google Drive.
En résumé, ce code est une fonction qui crée et renvoie un objet d’authentification
pour l’API Google Drive en utilisant les informations fournies dans un fichier de compte de
service.

5.3 Intégration du modèle YOLOv5m avec Django

Après le téléchargement et le stockage des images, la prochaine étape consiste à intégrer


le modèle YOLOv5m à notre application Django pour la détection d’objets. Ce processus se
déroule en plusieurs étapes :

5.3.1 Chargement du modèle YOLOv5m

Dans ce processus, la première étape consiste à charger le modèle de détection d’objets


YOLOv5m. C’est un modèle pré-entraîné, ce qui signifie qu’il a déjà été formé sur un vaste
ensemble de données d’images. Nous utilisons le modèle stocké dans le fichier best.pt, qui
est supposé contenir les poids du modèle qui a obtenu les meilleurs résultats lors de la phase
d’entraînement.
model-path = ’C :/Users/Lenovo/dronevision/inspection/best.pt’
model = YOLOv5(model-path)

122
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

5.3.2 Chargement des classes d’objets

Une fois le modèle chargé, la prochaine étape consiste à charger les classes d’objets
que le modèle est capable de détecter. Ces classes sont définies dans un fichier yaml. Chaque
classe représente un type d’objet différent que le modèle a appris à détecter.

5.3.3 Téléchargement d’images depuis Google Drive

La prochaine étape consiste à télécharger les images à traiter à partir de Google Drive.
L’API Google Drive est utilisée pour cette tâche. Le dossier spécifique à partir duquel les
images sont téléchargées est défini par son identifiant de dossier (your-folder-id). Les images
téléchargées sont ensuite stockées dans un dossier local pour une utilisation ultérieure. Cela
est illustré dans la figure 5.5 ci-dessous :

Figure 5.5 : Script Python pour téléchargement les images depuis Google Drive

5.3.4 Traitement d’images et détection d’objets

Une fois les images téléchargées et stockées localement, elles sont traitées une par une
par le modèle YOLOv5m. Le modèle renvoie une liste d’objets qu’il a détectés dans chaque
image. Chaque objet est accompagné d’une boîte englobante (qui indique où se trouve l’objet
dans l’image) et d’une classe (qui indique quel type d’objet a été détecté). Les images sont
ensuite annotées avec ces informations.

123
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

5.3.5 Enregistrement des résultats

Stockage des résultats de la détection : Dans le cadre du projet d’inspection des


pylônes de télécommunication par drone intelligent, la gestion des données détectées est un
aspect crucial. Une fois que le modèle YOLOv5m a renvoyé les informations de détection,
ces informations doivent être stockées de manière efficace et organisée pour une utilisation
ultérieure. Ces informations comprennent la position des objets détectés dans l’image, la
classe de l’objet (ce qui a été détecté) et le niveau de confiance de la détection.
Django offre un moyen efficace pour gérer cela. Il dispose d’un système de modèles
qui permet de définir la structure des données de manière flexible et puissante. Un modèle
Django spécifique a été créé pour stocker les informations de détection renvoyées par le modèle
YOLOv5m. Chaque fois qu’une détection est effectuée, une nouvelle instance de ce modèle
est créée et les informations de détection sont stockées dans ses champs.
Gestion des fichiers statiques : Outre le stockage des informations de détection, il
est également nécessaire de gérer les images elles-mêmes. Les images téléchargées de Google
Drive ainsi que les images annotées avec les détections d’objets doivent être stockées de
manière à pouvoir être facilement récupérées pour l’analyse et l’affichage.
Django offre un système efficace de gestion des fichiers statiques pour cela. Les fichiers
statiques sont tous les fichiers qui ne sont pas générés dynamiquement, comme les images,
les fichiers CSS ou JavaScript. Dans ce projet, nous utilisons le système de fichiers statiques
de Django pour stocker les images téléchargées et les images annotées.
Cela permet non seulement de conserver les images de manière organisée, mais aussi
de les servir facilement à l’utilisateur lorsqu’elles sont demandées. Le dossier statique local,
où ces images sont stockées, est configuré de manière à être accessible depuis l’interface
utilisateur de l’application, permettant ainsi aux images de être affichées à l’utilisateur.
En conclusion, grâce à ses fonctionnalités puissantes et flexibles, Django joue un rôle
clé dans le projet d’inspection des pylônes de télécommunication par drone intelligent, en
gérant efficacement le flux de données entre les composantes essentielles du système.
La figure 5.6 présente la gestion des fichiers statiques.

124
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Figure 5.6 : stockage des informations daNs le fichier statique

5.3.6 Affichage des résultats de détection

La fonctionnalité principale du tableau de bord est l’affichage des résultats de la


détection d’anomalies. Cela comprend les images annotées avec les détections d’objets, ainsi
que des détails sur chaque anomalie détectée. Les images sont affichées en grand format, avec
la possibilité de zoomer sur des zones spécifiques pour une inspection plus détaillée.
Pour chaque anomalie détectée, une fiche détaillée est fournie, qui comprend la classe
de l’objet détecté, la position dans l’image, et le niveau de confiance de la détection. Ces
fiches permettent à l’utilisateur de comprendre en détail chaque anomalie et de prendre des
décisions éclairées sur les actions à entreprendre.
La figure 5.7 présente l’affichage des résultats de détection.

125
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Figure 5.7 : Affichage des résultats de détection des antennes sur le site web

5.4 Intégration du modèle Tesseract OCR avec Django

5.4.1 création d’une application dans le serveur django

La figure 5.8 présente la création d’une application appelée ’ocr-app’ dans le serveur
Django.

Figure 5.8 : Création une application ‘ocr-app’ dans le serveur Django

Dans le fichier views.py de notre application, nous avons implémenté les fonctionnalités
suivantes :
• Prendre en entrée un dossier contenant des images : Nous avons créé une

126
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

fonction pour récupérer le chemin du dossier contenant les images à traiter.


• Binarisation et application de filtres : Nous avons développé des méthodes pour
lire chaque image du dossier, les binariser et appliquer des filtres pour améliorer la précision
de l’image.
• Reconnaissance de texte avec l’algorithme OCR : Nous avons utilisé l’algorithme
OCR (Tesseract OCR dans notre exemple) pour extraire le texte des images binarisées et
filtrées.
• Affichage des résultats dans une page HTML : Nous avons créé une page
HTML qui affiche le nom de chaque fichier d’image traité ainsi que le texte détecté par cette
image.
La Figure 5.9 illustre l’implémentation des fonctions de traitement d’image, de filtrage
et de reconnaissance de texte dans le fichier views.py.

Figure 5.9 : Implémentation dans views.py

La Figure 5.10 présente l’affichage des résultats dans une page HTML.

127
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Figure 5.10 : Affichage des résultats dans une page HTML

5.4.2 Enregistrement du texte dans une base de données SQLite

Nous avons utilisé cette base de données par défaut dans notre projet Django, la base
de données utilisée par défaut dans un projet Django est SQLite. Elle stocke les données dans
un fichier appelé ‘db.sqlite3‘, situé à la racine de notre projet Django.
SQLite est une base de données légère qui stocke les données localement dans un
fichier, sans nécessiter un serveur de base de données distinct. C’est un bon choix pour le
développement et les tests, offrant une facilité d’utilisation et une configuration minimale.
Étape 1 : Création du modèle ‘OCRResult‘ est effectuée dans ‘models.py‘ afin de
stocker les résultats OCR, comme illustré dans la Figure 5.11.

Figure 5.11 : Modèle OCRResult pour le stockage des résultats OCR

Étape 2 : Création d’une nouvelle migration pour appliquer les modifications à la


base de données et Application de la migration, comme illustré dans la Figure 5.12.

128
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Figure 5.12 : Création et application d’une migration dans SQLite

Étape 3 : Modification de la vue ‘ocr-results‘ pour enregistrer les résultats OCR dans
la base de données, comme illustré dans la Figure 5.13.

Figure 5.13 : Modification de la fonction ‘ocr-results‘

Étape 4 : affichage des résultats stockés dans la base de données. Nous créons une
nouvelle vue dans ‘views.py‘ afin de récupérer les données stockées dans la base de données,
comme illustré dans la Figure 5.14.

Figure 5.14 : création de la fonction ‘ocr-results-list’

Nous ajoutons l’URL de la nouvelle vue dans ‘urls.py’, tel qu’indiqué dans la Figure
5.15.

129
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Figure 5.15 : Ajout de l’URL dans le fichier ‘urls.py’

Nous créons un nouveau fichier nommé ‘ocr-results-list.html‘ dans le dossier ‘templates’


afin d’afficher les données. comme indiqué dans la Figure 5.16.

Figure 5.16 : Création du fichier HTML ’ocr-results-list.html’

Maintenant, nous avons accès à l’URL ‘http ://127.0.0.1 :8000/ocr-results-list/’ pour


voir la liste des résultats OCR stockés dans la base de données. comme indiqué dans la Figure
5.17.

Figure 5.17 : Affichage de la liste des résultats OCR

130
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Cependant, pour un déploiement en production, nous avons réalisé une modification


en utilisant une base de données plus robuste et évolutive : PostgreSQL. Nous avons constaté
qu’elle offre des performances supérieures ainsi que des fonctionnalités avancées pour la
gestion d’applications à grande échelle.

5.4.3 Modification de la base de données de SQLite a PostgreSQL

Étape 1 : Installation de PostgreSQL sur Windows et configuration du mot de


passe de l’utilisateur "postgres", nous avons téléchargé l’installateur de PostgreSQL pour
Windows à partir de https ://www.postgresql.org/download/windows/. Ensuite, nous avons
exécuté l’installateur et suivi les instructions à l’écran pour installer PostgreSQL. Pendant
l’installation, il nous a été demandé de définir un mot de passe pour l’utilisateur "postgres".
comme indiqué dans la Figure 5.18.

Figure 5.18 : Installation et configuration de PostgreSQL

Étape 2 : Création d’une base de données et d’un utilisateur Pour nous connecter
à PostgreSQL en tant qu’utilisateur "postgres", nous avons ouvert un terminal ou l’invite
de commandes (sur Windows) et saisi le nom d’utilisateur lorsque cela nous a été demandé.
Ensuite, nous avons fourni le mot de passe correspondant lorsque cela a été requis.demandé.

131
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

comme indiqué dans la Figure 5.19.

Figure 5.19 : Connexion à PostgreSQL en tant qu’utilisateur "postgres"

Nous avons créé une nouvelle base de données PostgreSQL, comme indiqué dans la
Figure 5.20.

Figure 5.20 : Création d’une base de données PostgreSQL

Nous avons créé un nouvel utilisateur dans PostgreSQL, comme indiqué dans la Figure
5.21.

Figure 5.21 : Création d’un utilisateur dans PostgreSQL

Étape 3 : Attribution des privilèges à l’utilisateur sur la base de données PostgreSQL


.
La Figure 5.22 présente l’attribution des privilèges à l’utilisateur.

Figure 5.22 : Attribution des privilèges à l’utilisateur

132
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Étape 4 : Configuration de Django pour utiliser la nouvelle base de données PostgreSQL


dans ‘settings.py, nous ouvrons ‘settings.py‘ et localisons la section ‘DATABASES‘. Nous la
modifions pour utiliser les informations de connexion de notre nouvelle base de données
PostgreSQL, comme indiqué dans la Figure 5.23.

Figure 5.23 : Configuration de la base de données PostgreSQL

Étape 5 : Application de la migration :


La Figure 5.24 présente l’application d’une migration dans PostgreSQL.

Figure 5.24 : Application d’une migration dans PostgreSQL

133
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Étape 6 : Extraction d’informations à partir du texte détecté et les enregistrer dans


PostgreSQL
Nous avons modifié le code dans views.py pour inclure l’utilisation d’expressions régulières
dans le but d’extraire des informations spécifiques à partir du texte détecté. Plus précisément,
nous avons ciblé des champs tels que la fréquence du gain et le type d’antenne. Nous avons
ajouté des fonctions dans le fichier views.py dans le but d’extraire les information nécessaires :
La fonction ‘extract-antenna-string()‘ :
• prend une chaîne de caractères en entrée
• recherche un motif spécifique dans cette chaîne de caractères à l’aide d’une expression
régulière
• retourne une chaîne de caractères spécifique si le motif est trouvé, sinon elle retourne
‘None‘.
La Figure 5.25 présente l’extraction de sous-chaîne avec une expression régulière.

Figure 5.25 : Extraction de sous-chaîne avec expression régulière

La fonction ‘extract-antenna-info()‘ :
• prend une chaîne de caractères en entrée
• Elle extrait des informations spécifiques de la chaîne de caractères en utilisant des
expressions régulières
• stocke ces informations dans un dictionnaire qui est ensuite renvoyé.

La Figure 5.26 présente la fonction extract-antenna-info() qui effectue l’extraction

134
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

d’informations à l’aide d’expressions régulières et d’un dictionnaire.

Figure 5.26 : Extraction d’informations grâce aux expressions régulières

La Figure 5.27 présente le stockage d’informations dans un dictionnaire.

Figure 5.27 : Stockage d’informations dans un dictionnaire

Une fois les valeurs extraites, nous les avons enregistrées dans notre base de données
PostgreSQL. Cela nous permet de stocker ces informations précises dans une structure de
base de données bien organisée.
Une fois que nous avons stocké les champs requis dans la base de données SQL
PostgreSQL, nous transmettons ces informations à notre site web, qui se charge ensuite
d’afficher les résultats détectés, comme illustré dans la Figure 5.28.

135
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Figure 5.28 : affichage des résultats de détection du texte sur le site web

5.5 Conception et réalisation du Dashboard avec Django

Dans cette section du projet, nous avons conçu et réalisé un tableau de bord interactif
en utilisant Django, un framework de développement web haute performance qui prend en
charge le design orienté-objet et encourage la réutilisation des composants.

5.5.1 Technologies front-end utilisées : HTML, CSS, JavaScript

Pour le développement du front-end, nous avons utilisé HTML, CSS et JavaScript,


qui constituent le triptyque de base pour tout développement web. HTML a été utilisé pour
structurer le contenu de la page, tandis que CSS a permis de styler et de mettre en forme ce
contenu. Enfin, JavaScript a permis de rendre la page interactive en ajoutant de la dynamique
aux éléments de la page.

5.5.2 Intégration de la 3D Spline/Sketchfab

Pour améliorer l’expérience utilisateur et offrir une meilleure visualisation des données,
nous avons intégré la technologie 3D Spline/Sketchfab dans le tableau de bord. Ce choix nous
a permis de présenter des modèles 3D interactifs de différents éléments comme le pylône, le
tableau de bord et l’architecture globale du système.

136
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Figure 5.29 : Représentation en 3D d’un Pylône

Ce modèle offre une représentation détaillée d’un pylône. L’utilisateur peut interagir
avec le modèle pour examiner le pylône sous différents angles et obtenir une meilleure
compréhension de sa structure comme le montre la Figure 5.29.

Figure 5.30 : Visualisation 3D du Tableau de Bord Interactif

Ce modèle offre une vue tridimensionnelle du tableau de bord, donnant à l’utilisateur

137
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

une vue globale de l’interface de l’application comme le montre la Figure 5.30.

Figure 5.31 : Illustration 3D de l’Architecture Complexe du Système

Ce modèle donne une vue tridimensionnelle de l’architecture du système, permettant


à l’utilisateur de comprendre la structure globale et le fonctionnement du notre projetcomme
le montre la Figure 5.31.

5.5.3 Inventaire des antennes

L’inventaire des antennes est présenté à travers une interface utilisateur intuitive. Cette
interface inclut le modèle 3D d’un pylône et permet à l’utilisateur de visualiser en détail les
différents composants de l’antenne.

Figure 5.32 : Affichage des résultats détectés sur le site web

138
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

La page "Inventaire des antennes" présente une liste complète et détaillée des antennes
installées sur les pylônes. Les informations clés telles que le type d’antenne, la fréquence,
polarisation ..seront affichées, comme illustré dans la Figure 5.32.

5.5.4 Conditions environnementales

L’interface utilisateur pour les conditions environnementales présente les résultats de


la détection. Cette interface donne à l’utilisateur des informations en temps réel sur les
conditions environnementales de la zone de l’antenne, y compris des informations sur la
température, l’humidité et la pression atmosphérique.

Figure 5.33 : Affichage des résultats détectés sur le site web

La page "Environnement" fournira des informations détaillées sur les conditions


environnementales autour des pylônes lors des inspections, comme illustré dans la Figure
5.33.

5.5.5 Authentification et gestion des utilisateurs

Le système offre un module d’authentification complet permettant aux utilisateurs de


s’inscrire et de se connecter.

139
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Figure 5.34 : Processus d’Authentification : Inscription des Utilisateurs

Figure 5.35 : Processus d’Authentification : Connexion des Utilisateurs

140
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

La page "Authentification" gérera le processus d’authentification pour les utilisateurs


du tableau de bord web. Les utilisateurs devront s’identifier en utilisant leurs identifiants
uniques pour accéder aux fonctionnalités du tableau de bord, comme illustré dans les Figure
5.34 et 5.35.

5.5.6 Conception de la Landing Page et affichage des informations essentielles

La page d’accueil a été conçue de manière à fournir les informations essentielles aux
utilisateurs de manière claire et concise. Les figures montrent la conception de la page
d’accueil et la manière dont les informations sont présentées. La "Landing Page" sera la page
d’accueil du tableau de bord web. Elle fournira un aperçu général du projet d’inspection des
pylônes par drone intelligent, comme illustré dans la Figure 5.36.

Figure 5.36 : Page d’Accueil : Visualisations 3D du Tableau de Bord

La Figure 5.37 montre un aperçu général du projet d’inspection des pylônes par drone
intelligent.

141
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Figure 5.37 : Page d’Accueil : Visualisations 3D de l’Architecture du Système

Les Figures 5.38, 5.39 et 5.40 présentent la page d’accueil : description de notre projet.

Figure 5.38 : Page d’Accueil : Aperçu général du projet d’inspection des pylônes par drone
intelligent 1

142
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Figure 5.39 : Page d’Accueil : Aperçu général du projet d’inspection des pylônes par drone
intelligent 2

Figure 5.40 : Page d’Accueil : Aperçu général du projet d’inspection des pylônes par drone
intelligent 3

5.5.7 Création d’un formulaire pour les informations sur les équipements
des pylônes

Un formulaire a été conçu pour collecter les informations sur les équipements des
pylônes. Ce formulaire est interactif et facile à utiliser, permettant aux utilisateurs de saisir
et de soumettre les informations de manière efficace.
La Figure 5.41 présente le formulaire pour l’équipement BTS, l’alimentation et le type.

143
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

Figure 5.41 : Formulaire : Spécifications, Type de l’Équipement BTS

La Figure 5.42 montre le formulaire pour l’équipement d’antenne et les câbles.

Figure 5.42 : Formulaire : Informations sur l’Équipement d’Antenne et Câbles Associés

144
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

La page "Formulaire" permettra aux utilisateurs de saisir facilement et de manière


structurée des informations sur les équipements des pylônes.

Conclusion

En conclusion, Django joue un rôle crucial dans notre projet d’inspection de pylônes
par drone intelligent. Il permet de connecter harmonieusement toutes les composantes du
système, facilitant ainsi la gestion des données et l’intégration de technologies avancées telles
que l’IA et l’IoT. Grâce à Django, nous avons pu interagir efficacement avec Google Drive,
intégrer des modèles de détection d’anomalies et offrir une interface utilisateur conviviale
pour présenter les résultats de manière claire et intuitive. Sans Django, notre projet aurait
été difficile à réaliser et à maintenir. Son apport en tant que pierre angulaire de notre solution
d’inspection de pylônes est incontestable, offrant une application web robuste, intégrée et
conviviale pour optimiser le processus d’inspection et garantir la sécurité des pylône.

145
Conclusion générale

Ce rapport symbolise le témoignage vibrant d’un voyage exceptionnellement ardu et


enrichissant. Nous, l’équipe DroneVision, avons unifié nos talents, notre dévouement et notre
résilience pour transformer une idée ambitieuse en réalité tangible. Malgré des contraintes de
temps serrées et un océan de défis complexes à naviguer, nous avons démontré que l’effort
intense et le travail acharné peuvent produire des résultats remarquables.
Depuis la conception et l’assemblage de notre drone innovant équipé d’une caméra
ESP32 Cam, en passant par l’intégration des technologies sophistiquées de détection d’objets
et de textes (YOLOv5 et Tesseract OCR), jusqu’à la création d’un site web interactif basé
sur Django, chaque détail a été minutieusement étudié et mis en œuvre avec passion et
détermination. Ces défis n’étaient pas des obstacles, mais plutôt des tremplins qui ont renforcé
notre croissance et notre apprentissage.
Ce voyage n’a pas seulement renforcé nos compétences techniques, mais a aussi renforcé
notre esprit d’équipe et notre capacité à collaborer pour surmonter les contraintes de ressources
et les défis de l’interopérabilité des technologies. Chaque défi relevé, chaque victoire remportée,
est le témoignage de l’engagement indéfectible et de l’innovation constante qui sont au cœur
de Drone Vision.
Cependant, notre voyage ne s’arrête pas ici. C’est plutôt le début d’une aventure
en constante évolution. Nous avons hâte d’explorer de nouvelles possibilités, d’élargir nos
horizons, d’améliorer notre approche avec des solutions comme l’adoption du "cluster" pour
gérer les ressources matérielles, ou l’intégration de la réalité augmentée (AR) et de la réalité
virtuelle (VR) pour enrichir l’expérience utilisateur.
Bien que ce projet ait été initialement conçu dans le contexte des infrastructures de
télécommunications, nous sommes conscients de son potentiel immense dans de nombreux
autres domaines. Que ce soit l’agriculture, l’urbanisme, l’environnement ou la sécurité, nous
sommes convaincus que notre travail a le potentiel de transformer la manière dont nous
interagissons avec le monde.
En conclusion, ce rapport est un hommage à l’endurance, à l’innovation et à l’esprit
d’équipe qui ont animé chaque membre de l’équipe DroneVision. C’est un reflet de nos cœurs

146
Chapitre 5. Intégration Web IA-IoT avec Django pour la Surveillance des Pylônes

et de nos âmes que nous avons infusés dans chaque détail de ce projet. Nous nous tournons
vers l’avenir avec une passion renouvelée, prêts à relever de nouveaux défis et à continuer à
créer des solutions qui ont un impact significatif. C’est ici que nous commençons.

147
Bibliographie

[1] « Sotetel, » Sotetel, Consulté le 02-2023. adresse : Accueil|Sotetel:SmartEnabler.

[2] « Sotetel, » Annuairepro, Consulté le 02-2023. adresse : https://www.annuairepro-tunisie.


com / societe - tunisienne - dentreprises - des - telecommunications - sotetel - ariana -
tunisie.html.

[3] OSHA Communication Towers, Consulté le 02-2023. adresse : https : / / www . osha . gov /
communication-towers.

[4] Tower Fatalities - Wireless Estimator, Consulté le 02-2023. adresse : https://wirelessestimator.


com/articles/tag/tower-fatalities/.

[5] Scrum : de quoi s’agit-il, comment cela fonctionne-t-il et en quoi est-ce génial ? Consulté le
02-2023. adresse : https://www.atlassian.com/fr/agile/scrum.

[6] Comprendre la méthode Agile Scrum en 10 min • Tuleap, Consulté le 02-2023. adresse : https:
//www.tuleap.org/fr/agile/comprendre-methode-agile-scrum-10-minutes.

[7] Jira | Issue & Project Tracking Software | Atlassian, Consulté le 02-2023. adresse : https:
//www.atlassian.com/software/jira.

[8] inventaires pylones, Consulté le 02-2023. adresse : https://youtu.be/-WyyrKbUruA.

[9] PLA, Consulté le 02-2023. adresse : https://www.twi-global.com/technical-knowledge/


faqs/what-is-pla.

[10] Ultimate Materials Guide - Tips for 3D Printing with PLA, Consulté le 02-2023. adresse :
https://www.simplify3d.com/resources/materials-guide/pla.

[11] Déformation du filament d’acide polylactique sur tissu en polyéthylène téréphtalate via impression
3D, Consulté le 02-2023. adresse : https://www.nature.com/articles/s41598-019-50832-
7.

[12] Le choix des moteurs et des hélices pour un drone, Consulté le 02-2023. adresse : https :
//www.dronelis.com/choix-des-moteurs-et-des-helices-pour-un-drone/.

[13] Comment fabriquer un drone, Consulté le 02-2023. adresse : https://community.robotshop.


com/blog/show/comment-fabriquer-drone-lecon-2-chassis.

148
Bibliographie

[14] Popular models | 3D CAD Model Collection | GrabCAD Community Library, Consulté le
03-2023. adresse : https://grabcad.com/library.

[15] KK2.1.5, Consulté le 03-2023. adresse : https://www.flyingtech.co.uk/sites/default/


files/product_files/KK2.1.5.pdf.

[16] Tuni Smart Innovation, Consulté le 03-2023. adresse : https://tuni- smart- innovation.
com/.

[17] Python Downloads, Consulté le 03-2023. adresse : https://www.python.org/downloads/.

[18] Comment fabriquer un drone/UAV, Consulté le 03-2023. adresse : https : / / community .


robotshop.com/blog/show/comment-fabriquer-un-droneuav-leon-3-propulsion.

[19] Comment fabriquer un drone, Consulté le 03-2023. adresse : https://community.robotshop.


com/blog/show/comment-fabriquer-un-droneuav-lecon-4-controleur-de-vol.

[20] Google Apps Script, Consulté le 03-2023. adresse : https://developers.google.com/apps-


script.

[21] S500 Glass Fiber Quadcopter Frame, Consulté le 04-2023. adresse : https://hobbyking.com/
en_us/s500-glass-fiber-quadcopter-frame-480mm-integrated-pcb-version.html?__
_store=en_us.

149
PÌl›
ºAyJ± žrtž³ ¤ ¨ˆAnW}¯ ºA•@˜ dts Ty•Ð CAyV  ¤d ­r¶AW˜ TF Cd˜ T§Ahž Š¤rK› r§rqt˜ @¡ Ädq§
.A›wl`m˜ Tw˜ “ybW Y˜ ¨qyq˜ ’w˜ ¨ AžAyb˜ ™qž¤ ‰m ­r¶AW˜ wq .¯AO ¯  r Lytft˜ (­I)
wq§ . C rq˜ ÐA Ylˆ TžAyO˜ “§r ­Cd’¤  A›± Ez`§ Am› , r± Ylˆ A¡wKt˜ ¨ˆAnW}¯ ºA•@˜ Ktk§
. r± TžAy} ­ºAf• Ez`§¤ ,y˜Akt˜ ™lq§¤ ,Lytft˜ Tylmˆ œy t Š¤rKm˜ @¡

,ºAyJ± žrtž ,¨ˆAnW} ºA•Ð , r ,P ,¯AO ,Ty•Ð CAyV  ¤d ­r¶AV : y Af› Aml•
. b§rkF AA , wy

Résumé
Ce rapport présente un SFE pour un drone intelligent utilisant l’IA et l’IoT pour inspecter les
pylônes de télécommunication. Le drone collecte et transmet en temps réel des données à une
application de tableau de bord. L’IA détecte les anomalies sur les pylônes, améliorant ainsi la
sécurité et la prise de décisions de l’équipe de maintenance. Ce projet automatise l’inspection,
réduit les coûts et améliore l’efficacité de la maintenance des pylônes.

Mots clés : Drone intelligent, Télécommunications, Inspection, Pylônes, IA, IoT, Python,
JavaScript.

Abstract
This report presents a final year project (SFE) for an intelligent drone utilizing AI and IoT
to inspect telecommunication towers. The drone collects and transmits real-time data to a
dashboard application. The AI detects anomalies on the towers, thereby enhancing the safety
and decision-making capabilities of the maintenance team. This project automates the inspection
process, reduces costs, and improves the efficiency of tower maintenance.

Keywords : Intelligent drone, telecommunications, inspection, pylons, AI, IoT, Python,


JavaScript.

contact@sotetel.tn : ¨ž¤rtk˜¯ d§rb˜ 71 94 11 00 : H•Af˜ 71 94 11 00 :  Ah˜ Hžw ,Hžw 1082 ,‰ r˜ “AW˜ -  r± - ©d`F ­CAmˆ
textLRII Tél : 71 94 11 00 Fax : 71 94 11 00 Email : contact@sotetel.tn
isi@isim.rnu.tn : ¨ž¤rtk˜¯ d§rb˜ 71 706 698 : H•Af˜ 71 706 164 :  Ah˜ TžA§C 2080 ¨ž¤CAb˜  A§r˜ w hž 2
2, Abou Raihane Bayrouni 2080 l’Ariana Tél : 71 706 164 Fax : 71 706 698 Email : isi@isim.rnu.tn

Vous aimerez peut-être aussi