Professional Documents
Culture Documents
Université de Carthage
Par
Amira Karoui
Université de Carthage
Par
Amira Karoui
Signature et cachet
J’autorise l’étudiant à faire le dépôt de son rapport de stage en vue d’une soutenance.
Signature
i
Remerciements
D’abord et avant tout, je veux exprimer ma gratitude envers Dieu. Il a été notre soutien constant
et notre guide tout au long de ce projet. Malgré les problèmes graves que nous avons rencontrés, comme
l’explosion de la batterie et les défis de santé qui nous ont surpris, Sa présence nous a aidé à trouver des
solutions. Il était là, à chaque étape, toujours avec nous, nous guidant dans les moments difficiles. Chaque
difficulté surmontée, chaque succès atteint, nous le devons à Sa bonté sans fin. C’est donc avec une grande
C’est avec une émotion bouleversante et un amour infini que je prends la plume pour rendre hommage
aux piliers de ma vie, mes parents, Achwek Tabessi et Jalel Karoui. Votre amour, aussi vaste que l’univers, a
été mon abri contre chaque tempête. Votre soutien, aussi solide que le plus grand des chênes, m’a permis de
me hisser vers les cimes les plus élevées. Vous êtes la symphonie douce-amère de mon existence, les artisans
Mon affection pour mes frères et sœurs, Aziz et Olfa Karoui, est aussi profonde que l’océan et aussi
brillante que la constellation la plus lumineuse. Aziz, ta présence dans ma vie a été aussi rassurante qu’un
phare dans la nuit. Olfa, ta force et ta tendresse m’ont enveloppé comme une écharpe de soie, me gardant au
chaud dans les moments les plus froids. Et Selim, ton innocence est un baume apaisant, une source constante
de joie et de tendresse.
Je tiens à exprimer ma profonde gratitude envers mes grands-parents, Laila et Aroussi Tabassi, ainsi
que mes oncles Brahim Tabassi, Marwen Tabassi et ma tante Jnaina Tabassi. Votre amour inconditionnel,
votre soutien constant et votre présence bienveillante ont été des piliers dans ma vie. Vous avez été mes guides,
mes confidents et mes sources d’inspiration tout au long de ce parcours. Votre sagesse, votre générosité et
votre soutien ont été des trésors précieux qui ont nourri mon développement personnel. Je suis profondément
reconnaissante d’avoir été entourée d’une famille aussi aimante et solidaire. Merci du fond du cœur pour votre
Mes encadrants, Mourad Ben Mna et Jihene Tounsi, ont été les sculpteurs de ce rêve qui a pris
forme sous mes mains. Votre mentorat a été une danse de passion, de persévérance et de dévouement. Votre
Ma gratitude infinie est dirigée vers M. Faouzi Saidi, Directeur Commercial de SOTETEL, et son fils,
des figures inspirantes qui ont gravé une empreinte indélébile sur mon parcours. M. Saidi, votre leadership
et votre soutien ont été le vent qui a propulsé mon voilier vers des horizons inexplorés. Et à Faouzi, son
ii
fils, ton amitié et ta motivation ont été un réconfort et une source d’inspiration précieuse. Je vous remercie
profondément.
À mon équipe DroneVision, Chayma Zaouali et Oussama Cherni, je dédie ces mots avec une affection
profonde et un amour indéfectible. Nous avons navigué ensemble à travers des mers tumultueuses, traversé
des tempêtes sombres et célébré sous des cieux étoilés de gloire. Nous avons partagé des rires joyeux et
essuyé des larmes amères, bravé des nuits blanches et surmonté des défis de santé. Nos sacrifices ont tissé une
étoffe de persévérance et de dévouement. Chaque obstacle que nous avons rencontré a renforcé la soudure de
notre équipe, chaque défi a aiguisé notre détermination. Notre voyage ensemble a été une danse de passion
et d’amour, une symphonie de dévouement et d’ambition. Votre camaraderie a été une lueur d’espoir dans
les moments sombres, votre soutien, un baume apaisant dans les moments de doute. Ensemble, nous avons
créé quelque chose de beau, une œuvre d’art qui continuera à résonner dans mon cœur pour toujours. Merci
pour votre dévouement inébranlable, votre persévérance indomptable et votre amour inconditionnel. Je tiens
également à remercier Chaima Memi pour son amitié indéfectible et son soutien constant.
Je souhaite adresser un remerciement tout particulier à Oussama Cherni pour son soutien constant
lors des moments difficiles. Ta présence bienveillante et ton soutien indéfectible ont été une véritable bouée
de sauvetage pendant les épreuves auxquelles j’ai dû faire face. Tu as été un roc solide sur lequel je me
suis appuyé, m’encourageant à persévérer et à dépasser mes limites. Ta confiance en moi et ton soutien
inconditionnel ont été une source d’inspiration et de force inestimable. Je suis profondément reconnaissante
d’avoir eu la chance de t’avoir à mes côtés et je te remercie du fond du cœur pour ton soutien sans faille.
Je souhaite adresser un remerciement sincère et rempli d’amour à ma meilleure amie, Chayma Zaouali.
Tu as été bien plus qu’une amie dans ma vie, tu as été ma confidente, ma complice et ma source d’inspiration.
Ta présence lumineuse et ton soutien inconditionnel ont été un cadeau précieux qui a illuminé mon parcours.
Tu as été là pour moi dans les moments de joie et de tristesse, dans les hauts et les bas, toujours prête à
m’écouter, à me comprendre et à me soutenir. Tu as su partager mes rires et mes larmes, mes victoires et
mes défis. Je suis profondément reconnaissante d’avoir une amie aussi merveilleuse et aimante que toi. Merci
du fond du cœur pour ton amitié précieuse, ta présence réconfortante et ton amour inébranlable.
Je tiens à adresser un remerciement spécial à Chayma Zaouali, Oussama Cherni, Chaima Memi, Aicha
Zaouali, Samir Koched, Med Salah Meddeb, Amine Mhadhbi, Anas Arayedh et Malek Ziedi. Votre présence
dans ma vie a été une bénédiction inestimable, un soutien indéfectible et une source infinie d’inspiration.
Votre amitié précieuse, vos conseils avisés et votre encouragement constant ont été des facteurs déterminants
dans la réussite de ce projet. Vous avez été des piliers de force, des confidents fidèles et des compagnons de
iii
route inestimables.
Un amour inconditionnel et une gratitude infinie se dirigent vers la famille Zaouali. Votre soutien sans
faille, votre amour inébranlable et votre présence bienveillante ont été des piliers de force tout au long de ce
projet. Vos encouragements chaleureux et vos sourires réconfortants ont allumé en nous un feu d’inspiration
et de détermination. Vous avez été notre refuge lors des moments difficiles, notre rocher solide sur lequel nous
nous sommes appuyés. Nous sommes profondément reconnaissants de vous avoir à nos côtés, famille Zaouali,
Un océan d’amour et de gratitude s’élève vers la famille Cherni, la famille d’Oussama. Votre soutien
indéfectible et votre présence bienveillante ont été un phare dans notre voyage. Votre amour inconditionnel,
vos encouragements constants et votre confiance en nous ont été une source d’inspiration et de force. Vous
avez partagé nos triomphes avec joie et nos défis avec courage. Votre soutien sans faille a tissé des liens
indéfectibles au sein de notre équipe. Nous sommes honorés de faire partie de votre famille, famille Cherni,
et nous vous remercions du plus profond de notre cœur pour votre amour et votre soutien sans limites.
Je tiens également à exprimer ma gratitude la plus sincère à tous mes enseignants. Mme. Mouna
Bencheikh, Mme. Hela Guermassi, M. Adel Ben Salah, Mondher Antri - vous avez semé en moi les graines de
la connaissance, arrosées par votre passion et votre dévouement. Je vous suis profondément reconnaissante
M. Adel Cherni, votre aide précieuse a été une lumière dans l’obscurité, un guide sûr dans le labyrinthe
de ce projet. Votre soutien a été un don du ciel, une bénédiction que j’apprécierai toujours.
Je souhaite également exprimer ma profonde gratitude envers le jury qui a évalué mon rapport.
Votre expertise, votre temps et votre attention ont été des éléments essentiels pour évaluer mon travail avec
objectivité et rigueur. Votre engagement envers l’excellence académique et votre précieuse contribution à mon
parcours sont sincèrement appréciés. Je vous remercie pour votre dévouement à l’évaluation de mon travail
et pour le temps que vous avez consacré à m’aider à progresser dans ma démarche. Un grand merci à l’IHEC
et à SOTETEL, des terres fertiles qui ont nourri mes compétences et m’ont permis de m’épanouir.
défis, de passion et d’amour. Chaque obstacle a été une étape vers une plus grande compréhension, chaque
défi une opportunité de croissance. Je suis fier de la personne que je suis devenue et de la passion qui brûle
en moi pour mon travail. J’ai appris, j’ai grandi, j’ai aimé, et pour cela, je suis profondément reconnaissant.
iv
Table des matières
1.2.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2 Statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.4 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1 Sprint 1 : Sélection et acquisition des composants, suivi de l’assemblage et des tests de vol . 22
électroniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
v
2.4.3 Configuration du contrôleur de vol KK2.1.5 . . . . . . . . . . . . . . . . . . . . . . . . 57
2.5.4 Fusion d’une Alimentation Stabilisée et d’une Batterie : Une Solution Innovante . . . 63
2.6 II. Sprint 2 : Intégration de l’IoT pour l’inspection des pylônes par drone . . . . . . . . . . . 68
2.7.3 Les solutions de stockage en nuage avec un focus sur Google Drive . . . . . . . . . . . 71
vi
2.10.7 Initialisation du Système : Mise en Marche . . . . . . . . . . . . . . . . . . . . . . . . 79
2.11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.1.4 Apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.1.5 Inférence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.1.6 Post-traitement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.2.1 Choix de YOLO : Une Comparaison Critique avec les Modèles Concurrents . . . . . . 87
3.3.3 Sélection du modèle YOLOv5m pour une détection d’objets optimisée et efficace . . . 133
3.5.3 Utilisation de Tesseract OCR pour la reconnaissance de texte sur les images traitées . 148
vii
4.1 Sprint 5 : Conception de l’architecture avec Django - Backend . . . . . . . . . . . . . . . . . . 154
4.4.4 Obtention des informations d’authentification pour l’API Google Drive à partir d’un
4.8 Présentation des langages utilisés : HTML, CSS, JavaScript, Python . . . . . . . . . . . . . . 176
4.10.2 Présentation de la manière dont Django gère les URL, les formulaires et les vues . . . 178
Bibliographie 195
viii
Table des figures
2.14 Préparation des fils électriques pour l’alimentation de la carte de distribution depuis la batterie 46
2.17 Installation des moteurs dans la structure du drone : fixation par vissage . . . . . . . . . . . . 49
2.19 Connexion des ESC à la carte de vol : intégration électrique pour le contrôle du drone . . . . 51
ix
Table des figures
2.26 Vol stable du drone : équilibre et contrôle pour une expérience de vol fluide . . . . . . . . . . 65
2.27 Vol du drone après les améliorations apportées au système d’alimentation et à la stabilité . . 65
2.35 Fonction de réception et enregistrement des photos de l’ESP 32-CAM dans Google Drive . . . 74
2.42 Identifiants requis pour l’envoi d’images de l’ESP 32-CAM vers un serveur Google Drive . . 79
2.43 stockage des images prise par ESP32-cam sur Google Drive . . . . . . . . . . . . . . . . . . . 80
3.2 Différence entre les modèles YOLOv5 : YOLOv5s, YOLOv5m, YOLOv5l, YOLOv5x . . . . . 103
3.4 Classification organisée des images pour une détection précise des objets cibles . . . . . . . . 104
3.5 Organisation des images pour une détection des antennes . . . . . . . . . . . . . . . . . . . . 105
3.8 Labelisation manuelle avec LabelImg : Exemple d’étiquetage d’une image . . . . . . . . . . . 108
x
Table des figures
3.11 Une structure en arborescence pour une gestion optimale des annotations et des images . . . 111
3.12 Séparation des images et des annotations pour la classe "Antenne" . . . . . . . . . . . . . . . 112
3.16 Conversion d’annotations YOLO en fichier CSV avec un script Python . . . . . . . . . . . . . 116
3.17 Extraction réussie des annotations YOLO vers un fichier CSV . . . . . . . . . . . . . . . . . . 116
3.31 Établissement d’un dossier de sortie pour les images et les annotations . . . . . . . . . . . . . 129
3.35 Stockage ordonné des annotations au format YOLO dans le dossier . . . . . . . . . . . . . . . 131
3.37 Visualisation des images et de leurs boîtes englobantes avec LabelImg . . . . . . . . . . . . . 132
3.38 Tableau comparatif détaillé des configurations d’entraînement pour YOLOv5 . . . . . . . . . 134
xi
Table des figures
3.41 Apprentissage du modèle avec GPU : Vérification de l’usage optimal du GPU . . . . . . . . . 137
3.44 Usage des ressources matérielles pendant l’apprentissage après activation du GPU et des workers139
3.47 Image de test montrant les prédictions du modèle et les pourcentages de confiance : antenne . 141
3.50 Prétraitement d’image binaire pour meilleure reconnaissance des caractères . . . . . . . . . . 147
4.1 Django : Site web d’Analyse Visuelle avec Détection, Stockage et Visualisation des résultats
de détection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.3 les images prise par ESP32-cam stockés sur Google Drive . . . . . . . . . . . . . . . . . . . . 157
4.8 affichage des résultats de détection des antennes sur le site web . . . . . . . . . . . . . . . . . 163
xii
4.15 création de la fonction ‘ocr-results-list’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
4.17 Création du fichier ‘ocr-results-list.html‘ pour l’affichage des données OCR . . . . . . . . . . . 168
dictionnaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
4.28 affichage des résultats de détection du texte sur le site web . . . . . . . . . . . . . . . . . . . 174
4.39 Inventaire des Antennes : Modèle 3D du Pylône et Affichage des Informations . . . . . . . . . 192
4.40 Présentation des résultats de la détection d’objets lors des Inspections de Pylônes . . . . . . . 193
xiii
Liste des tableaux
xiv
Liste des abréviations
— AI = Intelligence Artificielle
1
Introduction générale
L’univers dans lequel nous sommes plongés repousse les limites de l’industrie des télécommunications,
un lieu où l’innovation et la sécurité se rencontrent, et où les dangers menaçant les travailleurs se transforment
en de lointains souvenirs. Bienvenue dans le monde fascinant de l’inspection par drone intelligent.
Envisageons une Tunisie en pleine effervescence, avec des antennes de télécommunications qui prolifèrent
sur l’ensemble du territoire, tissant un réseau de connectivité dense. Toutefois, derrière cette avancée technologique
se cachent des risques concrets pour les hommes et les femmes courageux chargés de l’entretien de ces
infrastructures essentielles. Des chutes de grande hauteur, le risque d’électrocution, et même une exposition
à des ondes électromagnétiques dangereuses planent comme des ombres sur ces héros des réseaux.
Il est permis de rêver d’un monde où ces dangers seraient inexistants. Un monde où les travailleurs
pourraient accomplir leurs tâches en toute sécurité, sans risquer leur vie. C’est ici qu’interviennent les drones
protection.
Visualisons des drones aux capacités exceptionnelles, capables de se faufiler dans les endroits les
plus inaccessibles, bravant les hauteurs vertigineuses des gratte-ciel, des ponts majestueux et des pylônes
imposants. Équipés de caméras ultra-performantes et de capteurs de pointe, ces drones scrutent chaque détail
avec soin, collectant des données précieuses et minimisant ainsi le besoin d’inspections humaines périlleuses.
L’inspection par drone se transforme ainsi en une véritable révolution, repoussant les limites des
méthodes d’inspection traditionnelles. Les images capturées et les données recueillies fournissent une précision
inégalée, offrant des résultats d’une qualité sans précédent. Et le plus impressionnant dans tout cela ? Les
drones accomplissent leur mission en un temps record, réduisant les délais d’arrêt et les coûts associés. Il
Ce rapport invite à un voyage fascinant à travers quatre chapitres, chacun représentant une version
majeure du projet Scrum. Chaque version est composée de deux sprints, étapes clés dans le développement de
cette prouesse technologique. L’histoire de cette aventure est dévoilée, où passion et ingéniosité se conjuguent
de l’ESP 32 Cam sont au cœur des préoccupations. L’histoire des choix judicieux des composants, de leur
acquisition soigneusement orchestrée, de l’assemblage méticuleux du drone et des tests de vol passionnants
se déroule. Pour couronner le tout, l’intégration de l’ESP 32 Cam permet de capturer des images à couper le
1
Liste des tableaux
d’image sont les héros de l’histoire. L’excitation des développements techniques, des algorithmes sophistiqués
et de la mise en œuvre de YOLOv5 pour la détection d’objets est palpable. Ensuite, la magie de Tesseract
OCR fait surgir les caractères cachés dans les images, offrant ainsi une reconnaissance optique d’une précision
inouïe.
Enfin, le quatrième chapitre emporte dans la troisième version, où le backend et le frontend s’entrelacent
pour créer une expérience fluide et intuitive. L’architecture ingénieuse de Django, cette toile complexe qui
relie tous les éléments du projet, est dévoilée. L’interconnexion entre Django et Google Drive est suivie,
et comment les modèles YOLOv5m et Tesseract OCR s’intègrent harmonieusement dans cette symphonie
technologique est démontré. Enfin, le tableau de bord, une véritable œuvre d’art visuelle, conçue avec amour
Bienvenue dans un univers où l’inspection par drone intelligent repousse les frontières de l’impossible,
où la sécurité des travailleurs et l’efficacité des opérations se rejoignent pour créer une nouvelle réalité. Il est
temps de s’émerveiller, d’être transporté et inspiré par cette aventure technologique sans précédent.
2
Chapitre 1
Plan
1 Présentation de l’entité d’accueil . . . . . . . . . . . . . . . . . . . . . . . 4
2 Présentation du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2 Statistiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.4 Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Introduction
Ce premier chapitre invite à la découverte de l’entité d’accueil, à l’immersion dans les défis qu’elle doit
surmonter et à la perception de l’urgence de trouver une solution révolutionnaire. Le lecteur est sur le point
d’être captivé par un récit où l’innovation et la sécurité se rencontrent, prêtes à modeler un avenir meilleur.
SOTETEL, est une entreprise qui se démarque par son expertise en matière de conception, mise
en œuvre et maintenance de réseaux de télécommunication, ainsi que par la prestation d’une gamme variée
de services de communication. Acclamée comme leader dans le domaine des télécommunications en Tunisie,
elle propose un large éventail de services aux entreprises et aux particuliers. Parmi ces services figurent la
téléphonie fixe et mobile, l’accès à Internet haut débit, les services de données et la diffusion de télévision.
SOTETEL tire sa force de son équipe de professionnels qualifiés, composée d’ingénieurs, de techniciens
des services fournis. Grâce à son infrastructure de pointe, équipée des technologies de communication les plus
avancées, SOTETEL est en mesure de proposer des services novateurs, parfaitement adaptés aux besoins
SOTETEL fait également preuve d’un fort engagement envers le développement durable. Elle cherche
à minimiser l’impact environnemental de ses activités en utilisant des technologies respectueuses de l’environnement
et en mettant en place des pratiques de gestion durable visant à réduire la consommation d’énergie et la
production de déchets. De plus, SOTETEL est consciente de sa responsabilité sociale et contribue activement
au développement économique et social de la Tunisie en soutenant divers projets communautaires dans les
SOTETEL opère dans une grande variété de services de télécommunication, fournissant une gamme
exhaustive de solutions à sa clientèle. L’entreprise excelle dans la création, la mise en œuvre et la maintenance
de réseaux de télécommunication, tout en fournissant également des services de communication aux entreprises
et aux particuliers.
En proposant des solutions de téléphonie fixe et mobile, d’accès à Internet à haut débit, de services de
4
Chapitre 1. Présentation et Contexte du Projet
Elle joue également un rôle clé dans le déploiement des réseaux 4G et 5G, garantissant à ses clients une
Pour les entreprises, SOTETEL propose une panoplie de solutions qui englobent la communication
unifiée, le cloud computing, la sécurité du réseau et la surveillance. En complément à ces services, l’entreprise
offre des consultations et un soutien technique pour aider ses clients à optimiser leurs infrastructures de
communication.
efficacement aux exigences des clients individuels et corporatifs. L’entreprise se spécialise dans la création, le
déploiement et l’entretien des réseaux de télécommunication et s’engage à fournir des services de communication
Le spectre des activités de SOTETEL embrasse divers terrains du paysage des télécommunications.
Cette étendue couvre le réseau d’accès, le réseau Core et Backbone, le réseau sans fil et les services convergents.
Dans le domaine du réseau d’accès, SOTETEL se spécialise en ingénierie des réseaux de télécommunications,
en déploiement de réseau d’accès par FTTx et en gestion des réseaux d’accès par câbles en cuivre, parmi
Le réseau Core et Backbone fait appel à une multitude de compétences : l’aménagement des locaux
techniques, l’intégration des systèmes IP-MSAN, la maintenance des réseaux des opérateurs. En outre,
SOTETEL gère également les réseaux PSTN et PLMN, les réseaux Métro Fibre et Backbone, entre autres
domaines similaires.
Pour ce qui est du réseau sans fil, l’entreprise a une expertise en couverture Wireless Indoor, en
installation des sites 3G et en optimisation des réseaux radios, parmi d’autres domaines similaires.
En plus de ces spécialités, SOTETEL se distingue aussi dans la construction et l’équipement des
pylônes de télécommunication, assurant une infrastructure robuste et optimisée pour la maintenance des
réseaux de télécommunication. Cette gamme de services souligne la capacité de SOTETEL à répondre à des
SOTETEL est un acteur essentiel sur le marché tunisien des télécommunications. Elle est reconnue
pour son expertise en ingénierie, aménagement des locaux techniques et maintenance des réseaux d’opérateurs.
5
Chapitre 1. Présentation et Contexte du Projet
Grâce à des ressources humaines et matérielles performantes, l’entreprise 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 jouit 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
La structure organisationnelle de SOTETEL, en tant que leader dans son domaine, est bien
établie. Elle compte cinq départements principaux qui travaillent en synergie pour atteindre les objectifs de
l’entreprise.
et de l’administration de SOTETEL. Elle s’assure que les opérations de l’entreprise sont en conformité avec
La Direction Centrale Commerciale (D.C.C) est en charge de la gestion des ventes, du chiffre
d’affaires et du marketing. Elle collabore étroitement avec les autres départements pour identifier les besoins
et de la maintenance des réseaux privés de l’entreprise. Elle propose des solutions personnalisées aux entreprises
Enfin, 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.
Un pylône de télécommunication est une structure verticale indispensable pour une transmission
efficace des signaux de communication. Jouant un rôle crucial dans la diffusion des signaux, il soutient les
antennes et intègre les équipements de transmission. Les pylônes permettent une meilleure couverture, une
portée maximale et une connectivité fiable. Ils sont aussi essentiels à l’expansion du réseau. Les composants
6
Chapitre 1. Présentation et Contexte du Projet
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. présente les composants essentiels d’un pylône de
télécommunication.
Ces structures élévatrices, les pylônes, peuvent être confrontées à diverses anomalies. Elles peuvent
varier de la détérioration structurelle aux problèmes d’antenne, en passant par des défaillances d’équipement,
des complications de câblage et des problèmes d’alimentation. Pour maintenir un service de communication
de qualité et sans interruption, des inspections périodiques, assorties de mesures correctives, s’imposent. Cette
1.2.1 Problématique
n’a jamais été aussi grande. Ces structures vertigineuses, à l’allure quasi surréaliste, sont les piliers invisibles
qui soutiennent le filet omniprésent des communications numériques et analogiques. Elles veillent à ce que
nous restions connectés, non seulement entre nous, mais aussi avec le reste du monde. Cependant, le maintien
de ces tours nécessite des efforts considérables. Les inspections régulières sont essentielles pour assurer
leur fonctionnement optimal, éviter les pannes et garantir la sécurité des personnes. Historiquement, ces
inspections sont réalisées manuellement, un processus qui peut être non seulement dangereux, mais aussi
7
Chapitre 1. Présentation et Contexte du Projet
Imaginons une journée typique de notre équipe d’inspecteurs de pylônes : nous sommes équipés de
harnais de sécurité, d’outils variés et d’une myriade de dispositifs de protection. Nous devons grimper sur
ces structures hautes de plusieurs mètres, parfois dans des conditions météorologiques défavorables. Nous
sommes confrontés à des risques de blessures et même de décès, sans parler du stress mental associé à ces
conditions de travail. De plus, notre inspection manuelle de ces structures peut prendre beaucoup de temps,
ce qui augmente les coûts pour les entreprises de télécommunications. Ajoutons à cela le potentiel d’erreur
humaine qui peut entraîner des problèmes non détectés et ultimement des pannes coûteuses, et nous obtenons
1.2.2 Statistiques
Voici quelques statistiques alarmantes que nous avons trouvés en lien avec les accidents liés aux
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
• Selon un article de 2023 sur Wirelessestimator, le premier décès dû à une chute cette année a été
8
Chapitre 1. Présentation et Contexte du Projet
• 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.
• 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ù
• 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.
• 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].
• Un technicien de 21 ans de l’Illinois est décédé après une chute d’une tour de téléphonie cellulaire
Ces statistiques et incidents montrent l’ampleur du problème de sécurité dans l’industrie des tours
de télécommunication.
pylônes représentent un défi majeur. Actuellement, ces tâches essentielles sont généralement effectuées manuellement
par des équipes d’ingénieurs sur le terrain. Malgré les progrès technologiques dans de nombreux domaines,
cette approche traditionnelle demeure largement utilisée. Cependant, elle présente des limitations et des défis
Les inspections manuelles nécessitent souvent que des techniciens grimpent sur les pylônes eux-mêmes.
Non seulement cette méthode est-elle potentiellement dangereuse, mais elle peut également être inefficace
et coûteuse. Le temps nécessaire pour effectuer une inspection manuelle peut être long, et la nécessité de
déployer des équipes humaines peut entraîner des coûts importants. En outre, la qualité des inspections
manuelles peut varier en fonction de nombreux facteurs, tels que les compétences de l’inspecteur, les conditions
De plus, certaines anomalies peuvent échapper à une inspection manuelle. Des problèmes structurels
mineurs, des défaillances d’équipement ou des problèmes de câblage peuvent être difficiles à détecter sans
l’utilisation d’équipements spécialisés. Dans certains cas, des problèmes non détectés peuvent se transformer
9
Chapitre 1. Présentation et Contexte du Projet
en défaillances majeures, avec des conséquences potentiellement graves pour le service de communication.
La maintenance des pylônes de télécommunication est également une tâche complexe. En plus de
l’inspection régulière, il faut effectuer des travaux de réparation et d’entretien, parfois dans des conditions
difficiles. Encore une fois, la sécurité est une préoccupation majeure. Les travaux de maintenance peuvent
impliquer des risques similaires à ceux des inspections, notamment les risques de chute, d’électrocution et
Face à ces défis, l’industrie est à la recherche de solutions innovantes. L’inspection et la maintenance
automatisées des pylônes de télécommunication représentent une opportunité majeure d’améliorer la sécurité
et l’efficacité des opérations. C’est dans ce contexte que s’inscrit le présent projet, avec l’objectif de développer
un système d’inspection par drone intelligent qui pourrait révolutionner la façon dont ces tâches essentielles
sont effectuées.
1.2.4 Solution
rapidement, en toute sécurité et avec une précision sans précédent. Cet avenir envisage des coûts opérationnels
en déclin et une productivité en augmentation. C’est cette vision du futur que ce projet aspire à concrétiser
grâce à une solution innovante, fusionnant la technologie des drones, l’intelligence artificielle et l’Internet des
objets.
Dans le scénario proposé, des drones, munis de caméras haute résolution, sont dirigés autour des
pylônes pour saisir des images détaillées. Ces images sont ensuite examinées par des algorithmes d’intelligence
artificielle à la recherche de signes d’anomalie ou de dégâts. Les données ainsi recueillies sont archivées et
analysées pour permettre une maintenance prédictive, limitant les temps d’arrêt et optimisant l’efficacité.
Cette solution présente une pléthore d’avantages, allant de la réduction des risques pour le personnel
d’inspection, à une détection plus rapide des problèmes, en passant par une diminution des coûts opérationnels
et une amélioration de l’efficacité globale. En outre, elle offre une opportunité de métamorphoser l’industrie
des télécommunications en une entité plus sûre, plus performante et plus résiliente.
Un avenir prometteur se dessine, dans lequel la technologie ne se contente pas de modifier nos
méthodes de travail, mais transforme également notre perception du monde. Embarquons ensemble dans
cette quête de transformation et d’innovation, dans le but d’engendrer des changements positifs dans le
10
Chapitre 1. Présentation et Contexte du Projet
la gestion de projet
1. Fabrication du drone :
2. Intégration de l’IoT :
Intégration des fonctionnalités IoT au drone pour prendre des photos avec une caméra embarquée et
3. Application de l’IA :
Incorporation de l’intelligence artificielle pour une détection et une identification automatiques des
Les données recueillies sont ensuite traitées et organisées par un serveur Django. Ce système robuste
11
Chapitre 1. Présentation et Contexte du Projet
et flexible assure une gestion efficace des données, facilitant leur analyse et leur stockage.
5. Tableau de bord :
Développement d’un tableau de bord intuitif permettant d’évaluer l’état des pylônes de télécommunication.
Cela offre aux clients la possibilité de visualiser les résultats d’inspection et de prendre les décisions nécessaires
Pour notre projet de fin d’études, nous avons choisi d’adopter la méthodologie Scrum, une approche
agile de la gestion des projets de développement de produits. Elle fournit une structure efficace pour gérer
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 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
12
Chapitre 1. Présentation et Contexte du Projet
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
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.
En résumé, le choix de la méthodologie Scrum s’est confirmé être une décision bien avisée pour notre
équipe, car elle vise à promouvoir la production régulière de résultats de qualité et l’adaptation continue.
Grâce à Scrum, nous avons été en mesure d’optimiser la productivité, de maximiser l’engagement et d’obtenir
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
Product owner (Le propriétaire du produit) : Mr Faouzi Saidi, directeur commercial de Sotetel,
13
Chapitre 1. Présentation et Contexte du Projet
La Scrum Team (L’équipe Scrum) : Notre équipe DroneVision est composée de trois personnes,
Chayma Zaouali, étudiante spécialisée en systèmes informatiques à l’ISI, et moi-même, Amira Karoui, étudiante
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’à
14
Chapitre 1. Présentation et Contexte du Projet
15
Chapitre 1. Présentation et Contexte du Projet
La figure ci dessous montre le backlog produit réalisé sur Jira Software pour le suivi des sprints :
16
Chapitre 1. Présentation et Contexte du Projet
Pour la gestion de notre projet de fin d’études selon la méthodologie Scrum, nous avons choisi d’utiliser
l’outil JIRA. JIRA est un outil de gestion de projet agile largement utilisé dans l’industrie du développement
Les raisons qui nous ont poussés à choisir JIRA sont les suivantes :
Gestion du backlog de produit : JIRA offre des fonctionnalités avancées pour la gestion du backlog
de produit. Nous pouvons créer des user stories, les prioriser, les estimer en points d’effort et les organiser
dans des sprints. Cela nous permet de garder une vue d’ensemble claire des fonctionnalités à développer et
Suivi des tâches et des problèmes : JIRA permet de créer des tâches, d’assigner des responsables,
de suivre leur avancement et de les lier aux user stories correspondantes. Nous pouvons également signaler
les problèmes rencontrés et les suivre jusqu’à leur résolution. Cela facilite la collaboration au sein de l’équipe
Intégration avec d’autres outils : JIRA peut être facilement intégré à d’autres outils utilisés dans
notre projet, tels que des systèmes de contrôle de version, des outils de tests ou de déploiement continu. Cela
assure une synchronisation efficace des différentes étapes du développement et une meilleure collaboration
Flexibilité et personnalisation : JIRA est hautement configurable et permet d’adapter les flux
de travail, les champs, les statuts et les transitions selon nos besoins spécifiques. Cela nous permet de
Nous avons défini sur 3 sprints pour notre projet comme le montre le tableau ci-dessous :
Backend DroneVision 21 5
Release 3
Frontend DroneVision 21 6
17
Chapitre 1. Présentation et Contexte du Projet
Conclusion
se révèle. La découverte de l’entité d’accueil, l’exploration de ses défis et la prise de conscience de l’urgence
d’une solution innovante ont marqué ces premiers pas. Que cette introduction serve de tremplin vers les
prochaines étapes, où chaque nouveau chapitre ouvrira des horizons inédits et plongera au cœur d’une aventure
18
Chapitre 2
Plan
1 Sprint 1 : Sélection et acquisition des composants, suivi de l’assemblage
et des tests de vol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.3.3 Batterie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
19
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
5 Test de vol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.5.4 Fusion d’une Alimentation Stabilisée et d’une Batterie : Une Solution Innovante 63
20
2.5.8 L’Explosion de la Batterie : Un Incident Douloureux et Instructif . . . . . . 66
6 II. Sprint 2 : Intégration de l’IoT pour l’inspection des pylônes par drone 68
7 Fondements Théoriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.7.3 Les solutions de stockage en nuage avec un focus sur Google Drive . . . . . 71
11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Introduction
L’excitation monte avec l’avancée dans le deuxième chapitre de cette aventure technologique. Au cœur
de cette Release 1 captivante, se trouve l’immersion dans l’art de la sélection minutieuse des composants,
de l’assemblage délicat et des essais de vol exaltants. Il s’agit d’une véritable quête de perfection, où chaque
élément du drone est sélectionné avec soin et assemblé avec précision pour viser des sommets toujours plus
hauts.
Le voyage débute par l’exploration des critères de sélection rigoureux, les recherches approfondies
et l’acquisition des composants méticuleusement choisis. L’intensité monte alors que l’assemblage soigneux
commence, chaque pièce s’ajustant pour créer un ensemble harmonieux. L’apogée de ce chapitre est atteint
avec les tests de vol enthousiasmants, où la magie de l’aéronautique prend véritablement son envol.
La sélection des matériaux et des composants électroniques est essentielle dans la conception d’un
drone. Le choix de ces éléments, comprenant le châssis, les hélices, les moteurs, la carte de vol, la batterie
conformité aux normes. La prochaine section détaillera nos choix pour un drone d’inspection de pylônes de
télécommunication.
Afin de choisir le châssis de drone le plus adapté à notre projet d’inspection de pylônes de télécommunications,
nous avons dû prendre en compte un certain nombre de critères cruciaux. Chacun de ces critères peut avoir
un impact significatif sur les performances, la fonctionnalité et l’efficacité globale du drone dans le contexte
22
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Le tableau suivant présente les quatre châssis de drones que nous avons examinés : le DJI F450,
le DJI F330, le S500 et le X525. Pour chaque châssis, nous avons répertorié des informations sur plusieurs
critères clés, y compris les dimensions, le poids (sans électronique), le matériau du châssis, la distance entre
les trous de montage du moteur, la compatibilité du moteur, de l’ESC, de l’hélice et de la batterie, la facilité
l’équipement supplémentaire.
Ces critères ont été soigneusement choisis pour leur pertinence dans le cadre de notre projet, et ils
sont susceptibles d’influencer la performance et la fiabilité du drone dans les opérations d’inspection des
pylônes de télécommunications.
23
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Dans cette section, nous allons examiner une série de critères clés pour le choix d’une carte de vol
pour notre drone. Il est important de prendre en compte une variété de facteurs pour choisir la carte de vol
Ces critères fournissent une vue d’ensemble des caractéristiques à considérer lors du choix d’une carte
de vol. En évaluant chaque option par rapport à ces critères, nous pouvons faire un choix éclairé qui répond
24
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
25
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Cette méthode est une technique puissante et polyvalente de prise de décision qui offre une structure
claire pour comparer diverses options sur un ensemble de critères définis. Elle se distingue par sa capacité
à quantifier et à hiérarchiser les facteurs de décision, ce qui offre une vision claire de l’option qui offre le
Dans cette méthode, chaque option est évaluée par rapport à chaque critère, généralement sur une
échelle numérique (par exemple, de 1 à 4 ou de 0 à 2). Chaque critère est également attribué un poids en
fonction de son importance relative dans la décision finale. Ces évaluations et ces poids sont ensuite combinés
Ce qui rend cette méthode particulièrement efficace est sa flexibilité. Les critères et leurs poids peuvent
être facilement adaptés pour tenir compte de nouvelles informations ou pour ajuster l’importance relative des
différents critères. De plus, parce qu’elle offre une évaluation quantifiée, elle facilite grandement la justification
des décisions .
Pour mettre en œuvre la méthode de notation pondérée dans notre processus de décision, nous avons
1. Définition des critères : Nous avons commencé par identifier les critères importants pour notre
décision. Ces critères reflètent les caractéristiques et les performances clés que nous attendons de notre châssis
de drone, y compris des éléments tels que la compatibilité du moteur, du contrôleur de vitesse électronique
supplémentaire.
2. Attribution des poids aux critères : Nous avons attribué des poids à chaque critère en fonction
de son importance relative pour notre projet. Les critères tels que la compatibilité du moteur, de l’ESC et de
la batterie, ainsi que le prix et la disponibilité, ont été jugés particulièrement importants, et ont donc reçu
3. Évaluation des options selon chaque critère : Ensuite, nous avons évalué chaque option de
châssis de drone en fonction de chaque critère. Nous avons attribué une note à chaque option pour chaque
critère sur une échelle de 0 à 4, 0 signifiant une performance faible et 4 une performance élevée.
26
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
4. Calcul des scores pondérés : Nous avons ensuite multiplié la note de chaque option pour chaque
critère par le poids de ce critère pour obtenir un score pondéré. Ces scores pondérés reflètent l’importance
5. Somme des scores pondérés : Enfin, nous avons sommé tous les scores pondérés pour chaque
option pour obtenir un score total. Le score total fournit une évaluation globale de chaque option, facilitant
Durabilité (3) 12 6 12 6
Prix (4) 16 16 4 12
Disponibilité (5) 20 20 0 0
Après une analyse détaillée utilisant une méthode de notation pondérée, nous avons comparé quatre
châssis de drones : DJI F450, DJI F330, S500 et X525. Nos critères d’évaluation incluaient les dimensions, le
le prix, la disponibilité et l’espace pour l’équipement supplémentaire .Nos calculs révèlent que le DJI F450
est le châssis le plus adapté à notre projet d’inspection de pylônes de télécommunications, avec un score total
de 163. Ensuite viennent le X525 (155), le S500 (132), et le DJI F330 (123). Le DJI F450 excelle en termes
27
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
disponibilité élevée et son prix raisonnable sont également avantageux. Bien que les autres châssis aient leurs
propres atouts, le DJI F450 se distingue selon nos critères et notre méthode de notation.
Pour sélectionner la carte de vol la plus appropriée pour notre drone, nous allons utiliser la méthode
de notation pondérée. Cette approche nous aidera à quantifier les performances de chaque carte de vol par
rapport à une série de critères que nous avons identifiés comme étant importants pour notre projet.
Nous avons identifié un ensemble de critères clés qui sont importants pour notre projet de drone.
Nous attribuons un poids à chaque critère sur une échelle de 1 à 5, où 5 signifie très important et 1 signifie
moins important. Voici une brève explication de chaque critère et son poids respectif.
Nous évaluerons chaque carte de vol par rapport à chaque critère, en attribuant une note de 0 à 5
pour chaque critère, où 0 signifie une performance faible et 5 une performance élevée.
Nous calculons ensuite le score pondéré pour chaque carte de vol en multipliant le poids du critère
par la note obtenue. La somme de tous ces scores pondérés donnera le score total, permettant une évaluation
28
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Microcontrôleur 20 15 15 25
Disponibilité 25 25 25 0
GPS 4 4 4 20
Baromètre 3 3 3 15
Accéléromètre et Gyroscope 25 25 25 25
Buzzer 10 2 2 2
Prix 12 16 20 4
Dimensions 9 9 6 12
Indicateur de cap 20 20 4 20
Mode automatique 20 4 4 20
Poids 12 15 12 12
Afficheur 10 2 10 2
Tension 16 16 12 16
Lors de l’évaluation de quatre cartes de vol pour notre drone en utilisant une méthode de notation
pondérée, chaque carte a été évaluée sur divers critères importants pour notre projet. Bien que l’Ardupilot
APM2.8 ait obtenu le score le plus élevé, sa faible disponibilité l’a exclu comme option viable. En tenant
compte des scores pondérés et de la disponibilité, la LCD KK2.1.5 s’est révélée être l’option la plus appropriée
En Tunisie, nous avons rencontré des difficultés significatives liées à la disponibilité et à la diversité
des composants de drones. Le manque de variété a influencé notre processus de sélection, limitant parfois
notre capacité à choisir les options optimales pour notre projet. En ce qui concerne les hélices, nous avons
été contraints de choisir parmi une gamme limitée, n’offrant qu’un seul type avec différentes tailles. Par
conséquent, nous avons dû opter pour des hélices de taille 1045, compatibles avec notre châssis F450. Notre
choix de moteurs a été similaire à celui des hélices, c’est-à-dire limité par le manque de diversité sur le marché.
Le seul choix disponible était basé sur la valeur KV du moteur. Par conséquent, nous avons opté pour un
29
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
La disponibilité des cartes de vol a également posé problème. Initialement, nous avions prévu d’utiliser
la carte de vol Ardupilot APM2.8 pour ses fonctionnalités avancées et sa performance supérieure. Cependant,
nous avons constaté qu’elle était introuvable sur le marché local. Même après avoir effectué un déplacement
à Sousse pour obtenir la seule unité APM2.8 disponible, nous avons découvert qu’elle était défectueuse. Nous
avons donc été obligés de choisir la carte de vol KK2.1.5, malgré ses limitations.
2.2.3.3 Batterie
Lors de la sélection d’une batterie pour notre drone, nous avons dû jongler entre performance et
disponibilité du marché tunisien. Nous avons finalement opté pour une batterie LiPo 3S 11,1V de 6000mAh.
Le choix de ce modèle repose sur plusieurs facteurs clés. Premièrement, sa légèreté et sa tension inférieure
permettent d’optimiser le temps de vol, une caractéristique primordiale pour notre projet. Deuxièmement,
les batteries LiPo 3S sont réputées pour leur stabilité de décharge, contribuant à une meilleure stabilité en
vol.
Bien que la capacité de 6000mAh soit en deçà de notre idéal, elle est suffisante pour un fonctionnement
de base. Les batteries LiPo sont en outre privilégiées dans l’industrie des drones pour leur haute densité
énergétique et leur capacité à délivrer un courant élevé, idéale pour des manœuvres rapides.
En dépit des limites du marché local, nous sommes confiants d’avoir choisi la batterie la plus adéquate
L’achat des composants d’un drone est une étape cruciale dans le processus de développement. Elle
implique de sélectionner les meilleurs fournisseurs et de s’assurer que les composants achetés répondent à
Cette étape est particulièrement importante car la qualité des composants a un impact direct sur
les performances du drone. De plus, les coûts associés à l’achat de ces composants constituent une part
significative du budget total du projet. Il est donc essentiel de faire des choix judicieux pour garantir la
30
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
D’une envergure de 450mm, le châssis F450 se démarque par sa conception en fibre de verre et en
nylon, qui combine légèreté et résistance. Son poids plume de 282g est particulièrement appréciable pour
optimiser le temps de vol de notre drone. L’un des points forts de ce châssis est sa carte de distribution
d’énergie intégrée, véritable facilitateur pour le câblage des moteurs et des ESC, contribuant ainsi à une gestion
efficace de l’espace. Le F450 offre également une grande flexibilité pour l’intégration des divers composants,
avec de multiples points de fixation et options d’emplacement. Sa plaque supérieure démontable facilite l’accès
aux composants internes pour l’entretien et les réparations. En somme, le châssis F450, par son agilité, sa
robustesse et sa flexibilité, se révèle être un choix idéal pour notre projet de drone.
31
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Le moteur est l’une des composantes les plus critiques d’un drone, fournissant la force de propulsion
nécessaire pour le vol. Pour notre projet, nous avons choisi le moteur brushless A2212 1000Kv pour sa
En termes de spécifications techniques, le moteur brushless A2212 1000Kv présente une efficacité
maximale , un courant d’efficacité maximale de 4-10A , et une capacité de courant de 12A pour 60 secondes.
En ce qui concerne les dimensions, ce moteur présente un diamètre de 27,5 mm et une longueur de 30 mm,
avec un poids total de 47 g, ce qui le rend assez compact pour notre utilisation.
En résumé, notre caractérisation du moteur brushless A2212 1000Kv confirme que c’est un choix
32
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
La carte de vol KK2.1.5, spécialement conçue pour les aéronefs multi-rotors, a été choisie pour notre
drone grâce à ses performances et sa praticité. Elle utilise un IC Atmega644PA pour traiter les signaux du
système radio et les transmet aux ESC pour contrôler le vol. Équipée d’un système MPU 6050 ultra-sensible,
elle garantit une grande stabilité en vol en compensant les mouvements indésirables. Avec une tension d’entrée
de 4,8-6,0V, une interface AVR à 6 broches et une taille compacte de 51x51x12mm, la KK2.1.5 s’adapte
facilement à notre châssis F450 et offre une grande flexibilité de configuration de vol.
33
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Les contrôleurs électroniques de vitesse (ESC pour Electronic Speed Controllers) sont des dispositifs
qui contrôlent la vitesse du moteur du drone, en fonction des signaux reçus de la carte de vol. Pour notre
drone, nous avons choisi les ESC 30A, qui offrent des performances robustes et une gamme d’entrée de tension
flexible.
Le 30A est un ESC de 30A, capable de gérer un courant maximal de 40 A pendant plus de 10 secondes.
Il supporte une tension d’entrée allant de 5.6V à 16.8V, ce qui lui permet d’être alimenté par 2 à 4 cellules
LiPo. Cette flexibilité d’alimentation est essentielle, car elle permet d’utiliser une variété de sources d’énergie
Les ESC 30A sont conçus avec un démarrage à faible couple pour protéger le moteur et les autres
composants du drone contre les chocs de couple élevés lors du démarrage. De plus, ils sont équipés d’un
programme d’armement sécurisé qui garantit que le moteur ne démarrera pas accidentellement après l’allumage.
En termes de taille et de poids, les ESC sont compacts et légers, mesurant 5.0 cm x 2.5 cm x 1.0 cm
et pesant seulement 24 g. Ces dimensions compactes et ce poids léger aident à minimiser l’impact des ESC
En somme, les ESC 30A présentent une série de caractéristiques qui les rendent adaptés à notre drone,
notamment leur flexibilité d’alimentation, leur gamme de fonctionnalités programmables, leur sécurité, ainsi
34
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
La batterie est l’élément qui alimente notre quadricoptère, fournissant l’énergie nécessaire à tous ses
systèmes, y compris les moteurs, les ESC, la carte de vol, et le système de transmission. Le choix de la batterie
est donc essentiel pour assurer une durée de vol adéquate et une performance optimale.
La batterie que nous avons choisie est de la marque TCB WOERTH. Elle est de grade A, ce qui
signifie qu’elle a été fabriquée selon les normes de qualité les plus élevées.
— Capacité : 5200mAh
— Voltage : 11.1V
— Nombre de cellules : 3S
— Dimensions : 140*43*28.5 mm
— Poids : 366g
Cette batterie a été choisie pour sa capacité élevée et son taux de décharge, qui permettent un vol
prolongé et un fonctionnement fiable du quadricoptère. Sa tension de 11.1V est compatible avec les exigences
électriques de nos autres composants, et son poids a été pris en compte dans la conception globale du
35
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Les hélices sont des éléments clés de notre quadricoptère, jouant un rôle crucial dans la génération de
poussée et la manipulation de l’équilibre de l’appareil. Ces hélices ont été conçues spécifiquement pour des
cadres multirotors, offrant une excellente performance et une grande fiabilité. Fabriquées en plastique ABS
de haute qualité, elles sont résistantes tout en ayant une grande flexibilité, ce qui les rend à la fois durables
— Longueur : 10 pouces
Ces caractéristiques, combinées à leur capacité à offrir un contrôle précis de l’équilibre, font de ces hélices un
36
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
La radiocommande FS-6 est un dispositif de contrôle à 6 canaux avec une plage de fréquences RF de
2.4055 à 2.475 GHz. Elle possède un écran STN de type transflectif positif, avec une matrice de points de
128*64. Elle pèse 392g, alimentée par 4 piles AA de 1.5V produisant une puissance de 6V. De plus, elle offre
une sensibilité de 1024 et une alarme de basse tension en dessous de 4.2V. Il est également possible de mettre
Le récepteur FS-iA6B, d’autre part, opère également sur une plage de fréquences RF de 2.4055 à
2.475 GHz, et possède une sensibilité RX de -105dBm. Sa taille compacte de 42.626.115.1mm et son poids
léger de 16.4g le rendent parfait pour une utilisation sur notre quadricoptère. Il est alimenté par une source
d’énergie de 4.0-6.5V. De plus, le récepteur FS-iA6B dispose de ports i-Bus et de collecte de données pour
une flexibilité accrue. Ces spécifications techniques confirment que la radiocommande FS-6 et le récepteur
FS-iA6B sont parfaitement adaptés à nos besoins pour contrôler le quadricoptère, offrant à la fois une large
En conclusion, l’achat des composants pour notre drone a été une étape essentielle dans la réalisation
de notre projet. Cette phase a impliqué une recherche approfondie et une analyse détaillée pour sélectionner
37
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Nous avons choisi des composants de haute qualité pour garantir une performance optimale et une
longévité accrue du drone. Le choix du châssis F450, par exemple, offre une base solide et légère pour le
drone, tandis que le moteur brushless A2212 1000Kv assure une propulsion efficace et fiable. De même, la
carte de vol KK2.1.5 offre une multitude de fonctionnalités qui améliorent la stabilité et le contrôle du drone,
L’achat de la batterie TCBWOETH de 6000mAh assure une durée de vol suffisante, ce qui est crucial
pour la réalisation des objectifs du projet. De plus, le choix du récepteur radio FS-iA6B et de l’émetteur
FS-T6 permet une communication efficace entre le pilote et le drone. En somme, l’achat des composants
judicieusement nos composants, nous avons été en mesure de maximiser la performance de notre drone tout
en respectant notre budget. Les implications de ces achats sont importantes. Non seulement ils ont un impact
direct sur la performance et la fonctionnalité de notre drone, mais ils déterminent également dans une large
mesure le coût total du projet. En effectuant des achats judicieux, nous avons pu optimiser la performance
de notre drone tout en respectant notre budget, ce qui est crucial pour la réussite de notre projet. En outre,
ces composants serviront de base pour les prochaines étapes du projet, notamment l’assemblage du drone et
38
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Cette étape essentielle de notre projet implique la fabrication et la configuration logicielle de notre
drone. Au-delà de l’assemblage des pièces, la fabrication nécessite une précision et une connaissance approfondie
vol KK2.1.5, est vitale pour contrôler la navigation, la stabilité et la réponse du drone aux commandes.
Cette étape intègre la fabrication et la configuration logicielle en un processus qui donne vie à notre drone,
Dans notre quête d’excellence et de précision, l’impression 3D a joué un rôle prépondérant, permettant
la personnalisation et l’optimisation des composants de notre drone. Cette technologie novatrice, qui donne
forme à nos idées les plus audacieuses, a été utilisée pour créer divers éléments clés du drone, notamment le
En utilisant l’impression 3D, nous avons pu concevoir ces pièces sur mesure, garantissant ainsi une
adaptation parfaite à nos besoins spécifiques. Ce processus de personnalisation a permis d’optimiser les
La sécurité est une priorité dans tout ce que nous faisons. Pour cela, nous avons pris des précautions
supplémentaires en concevant des pièces de protection pour nos composants les plus délicats. Un cache de
protection pour notre carte de vol KK2.1.5, et un support spécialement conçu pour notre batterie LiPo ont
En bref, l’impression 3D s’est révélée être une alliée précieuse dans notre aventure. Elle a permis de
concrétiser nos visions, d’améliorer les performances de notre drone et de garantir sa sécurité. En constante
recherche d’innovation et de perfection, nous continuons d’explorer les vastes possibilités offertes par cette
Pour protéger notre carte de vol KK2.1.5, nous avons créé un cache de protection imprimé en 3D
sur mesure. Ce cache, conçu grâce à la modélisation 3D, offre une protection complète contre les conditions
extérieures et les impacts accidentels. Il est fabriqué avec un matériau durable et comprend des renforts
structurels pour plus de robustesse. Importamment, ce cache n’entrave pas les fonctionnalités de la carte
39
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
de vol et permet un accès facile aux connexions et ports nécessaires. Cette solution innovante préserve la
sécurité et la durabilité de la carte de vol, assurant ainsi le bon fonctionnement de notre drone dans diverses
situations.
Figure 2.9 : Cache de protection de la Carte de Vol KK2.1.5 : Conception avec SolidWorks
40
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Pour faire face à diverses contraintes physiques rencontrées lors de l’atterrissage, nous avons développé
deux solutions distinctes : l’une offrant une robustesse exceptionnelle, l’autre alliant légèreté et durabilité.
Dans notre quête incessante de fournir une protection maximale à notre drone, nous avons développé
un terrain d’atterrissage spécial en acier galvanisé. Nous sommes conscients que l’utilisation d’un matériau
plus lourd peut potentiellement affecter les performances de vol. Cependant, nous avons pris en compte les
L’acier galvanisé, grâce à son processus de galvanisation qui le recouvre d’une couche protectrice
de zinc, est un choix idéal pour un terrain d’atterrissage en raison de sa durabilité exceptionnelle et de sa
Grâce à cette construction robuste, notre terrain d’atterrissage en acier galvanisé peut résister à
des conditions difficiles et offrir une protection inégalée à la fois au drone et aux composants électroniques
sensibles. Il peut supporter les chocs et les impacts qui pourraient survenir lors des atterrissages, assurant
Cependant, il est important de noter que le poids supplémentaire du terrain d’atterrissage en acier
galvanisé peut avoir un impact sur les performances de vol, notamment en termes de maniabilité et d’autonomie.
Malgré cela, après avoir évalué les avantages et les inconvénients, nous avons conclu que les bénéfices de la
résistance accrue et de la protection offerte par le terrain d’atterrissage en acier galvanisé compensent cette
légère contrainte.
41
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
De plus, parmi les pièces que nous avons créées sur mesure, nous avons conçu un support spécifique
pour protéger notre batterie LiPo des chocs et autres dangers potentiels.
La batterie LiPo est un composant essentiel de notre drone, mais elle est également sensible aux
dommages. Pour assurer sa sécurité et sa durabilité, nous avons utilisé l’impression 3D pour concevoir un
support de batterie sur mesure qui lui offre une protection supplémentaire.
Ce support de batterie est conçu de manière à maintenir fermement celle-ci en place tout en absorbant
les chocs éventuels lors de l’utilisation du drone. Grâce à des logiciels de modélisation 3D tels que Solidworks,
42
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
nous avons pu adapter précisément le support aux dimensions et à la forme spécifiques de la batterie LiPo.
pendant les vols, ce qui contribue à éviter les courts-circuits et les dommages potentiels. De plus, il offre une
protection supplémentaire contre d’autres dangers éventuels, tels que les impacts ou les objets étrangers qui
Grâce à l’impression 3D, nous avons pu créer ce support sur mesure avec des caractéristiques spécifiques
répondant aux besoins de notre batterie LiPo. Cela démontre une fois de plus les avantages de cette technologie
dans la fabrication de pièces personnalisées qui améliorent la sécurité et les performances globales de notre
drone.
En conclusion, grâce à l’impression 3D, nous avons pu concevoir et fabriquer un support sur mesure
pour notre batterie LiPo, offrant une protection contre les chocs et les dangers potentiels. Cette solution
Nous avons choisi le PLA pour le terrain d’atterrissage de notre drone en raison de sa légèreté, qui
améliore la maniabilité, la vitesse, la durée de vol et l’expérience de pilotage, comparé à l’acier galvanisé.
Malgré une moindre robustesse, le PLA offre une durabilité suffisante pour un atterrissage normal et des
risques de dommages peuvent être minimisés avec des précautions. Le PLA, utilisé en impression 3D, est
également un choix écologique, car il est fabriqué à partir de ressources renouvelables, biodégradable, a une
Avant de commencer l’assemblage mécanique, une préparation méticuleuse des composants et des
outils nécessaires est cruciale. Cette étape implique un examen minutieux de chaque composant pour s’assurer
de son intégrité et de son bon fonctionnement. Il est primordial d’identifier toute défaillance ou anomalie à
ce stade pour éviter les complications ultérieures lors de l’assemblage ou de l’opération du drone.
En ce qui concerne les outils, nous avons réuni un ensemble d’instruments indispensables pour
43
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
. Fer à souder et étain : utilisés pour les connexions électriques qui requièrent une soudure solide
et sécurisée.
. Clé à molette : utilisée pour le serrage et le desserrage des écrous et des vis.
. Pince à dénuder : utilisée pour enlever l’isolation des fils avant la soudure.
. Serre-câbles : pour organiser et sécuriser les câbles, évitant ainsi les enchevêtrements et les
dommages.
. Pied à coulisse : un outil de mesure précis pour garantir les bonnes dimensions de nos composants.
. Connecteurs Bullet mâles et femelles : pour les connexions entre les ESC et les moteurs.
.Colle à chaud : utilisée pour fixer certains composants ensemble ou pour sécuriser les connexions.
Fils électriques rouge et noir : utilisés pour le câblage des différents composants électriques du drone.
Ces outils et composants ont été soigneusement sélectionnés pour assurer un assemblage sans heurts et
une performance efficace du drone. La préparation préalable de ces éléments facilite grandement le processus
Pour débuter notre processus d’assemblage, nous devons impérativement souder les contrôleurs de
vitesse électroniques (ESC) sur la carte de distribution. Cette étape nécessitera l’utilisation du fer à souder
La carte de distribution jouera un rôle central dans la distribution de l’énergie provenant de la batterie
à nos différents ESC. Chaque ESC sera responsable de contrôler un moteur spécifique. Par conséquent, la
connexion de ces ESC à la carte de distribution représente une étape cruciale dans la construction de notre
drone.
Durant cette phase, nous devrons accorder une attention particulière à la connexion correcte des
câbles des ESC. Habituellement, chaque ESC est muni de trois fils (positif, négatif et signal). Nous devrons
souder le fil positif (rouge) sur l’un des pads positifs de la carte de distribution, tandis que le fil négatif
(généralement noir) sera relié à l’un des pads négatifs. Quant au fil de signal, il ne sera pas relié à la carte de
Nous recommandons d’apporter un soin particulier à nos soudures afin de garantir une bonne conduction
44
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
électrique et d’éviter tout risque de court-circuit. De plus, nous devons nous assurer que nos ESC sont
correctement alignés avec les bras du drone et que les fils sont suffisamment longs pour permettre les
Une fois que les ESC sont soudés à la carte de distribution, l’étape suivante consiste à préparer les
fils électriques qui seront utilisés pour alimenter la carte de distribution à partir de la batterie. Ce processus
nécessite l’utilisation de pinces à dénuder et de tournevis pour couper les fils à la longueur appropriée et
dénuder les extrémités. Pour commencer, les fils électriques, généralement rouge pour le positif et noir pour
le négatif, doivent être coupés à une longueur adéquate. Cette longueur dépendra de la distance entre la
batterie et la carte de distribution. Il est généralement préférable de garder les fils aussi courts que possible
sans restreindre le placement de la batterie ou la manipulation du drone. Ensuite, les fils doivent être dénudés
à chaque extrémité à l’aide de la pince à dénuder. Cela expose une partie du conducteur en cuivre, permettant
une connexion électrique solide lors de la soudure. Il est important de ne dénuder que la quantité nécessaire
de fil pour éviter les courts-circuits potentiels. Enfin, ces fils sont soudés à la carte de distribution à l’endroit
approprié pour l’alimentation de la batterie. Encore une fois, il est crucial de faire attention à la polarité lors
45
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
de la soudure : le fil rouge doit être soudé au pad positif et le fil noir au pad négatif. Une soudure propre et
bien faite assure une conduction électrique efficace et minimisera les risques de déconnexion pendant le vol.
Figure 2.14 : Préparation des fils électriques pour l’alimentation de la carte de distribution
depuis la batterie
Connexion de l’Alimentation
Dans cette étape, nous nous concentrons sur la mise en place de la connexion entre notre drone et
la source d’énergie, à savoir la batterie. Notre première tâche consiste à dénuder les fils de l’autre extrémité
Une fois les fils dénudés, nous préparons le connecteur XT60 en vue de la soudure. Le connecteur
XT60, largement utilisé dans les applications de drones, offre une connexion sécurisée entre la batterie et
le système d’alimentation du drone. Il est essentiel que nous veillions à souder les fils correctement sur le
connecteur XT60, en respectant la polarité : le fil rouge est soudé sur le terminal positif (+) et le fil noir sur
Après avoir effectué la soudure des fils sur le connecteur XT60, nous recommandons l’utilisation d’une
gaine thermorétractable pour recouvrir les bornes de soudure. Cela contribue à prévenir les courts-circuits et
protège les soudures de l’usure. Une fois que tout est en place, nous disposons d’un système d’alimentation
46
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Désormais, avec le connecteur XT60 relié aux fils d’alimentation, nous avons la possibilité de connecter
et de déconnecter facilement la batterie du système d’alimentation du drone, facilitant ainsi les opérations
L’assemblage de la structure du drone est une étape essentielle où tous les éléments se regroupent
pour donner naissance à la forme finale du quadricoptère. Cette phase consiste à visser les différents éléments
La première étape consiste à monter les bras du drone sur la carte de distribution, qui sert également
de plaque inférieure du châssis. Les bras sont conçus pour être fixés à cette plaque avec des vis. Il est important
de s’assurer que chaque bras est correctement aligné et fermement attaché, car ils supportent les moteurs et
47
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
L’installation des moteurs est une étape cruciale qui a une influence directe sur les performances de
vol du drone. Chaque moteur doit être soigneusement monté sur les bras du drone, en veillant à ce que tous
Pour ce faire, chaque moteur est placé dans l’endroit désigné à l’extrémité de chaque bras. Les trous
pré-percés sur le bras du drone correspondent aux trous de fixation sur le moteur, permettant une installation
facile et solide. Il est recommandé de commencer par insérer une vis sans la serrer complètement, puis de
continuer avec les autres vis. Une fois que toutes les vis sont insérées, elles peuvent être serrées de manière
égale. Cette méthode assure que le moteur est correctement positionné et équilibré.
48
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Figure 2.17 : Installation des moteurs dans la structure du drone : fixation par vissage
Connexion des Moteurs aux ESC et fixation des ESC sur les bras
La connexion des moteurs aux contrôleurs de vitesse électroniques (ESC) est une étape vitale pour
garantir que les moteurs répondent correctement aux commandes de la carte de vol. Les ESC servent
d’intermédiaire entre les moteurs et la carte de vol, contrôlant la vitesse de rotation de chaque moteur
Chaque moteur possède trois fils correspondant aux trois fils de l’ESC. Ces fils sont connectés ensemble
en utilisant des connecteurs bullet. Pour connecter le moteur à l’ESC, les connecteurs bullet doivent être
Il est important de se rappeler que pour que les moteurs tournent dans le bon sens, les fils doivent
être connectés en suivant une séquence spécifique. Pour les moteurs qui tournent dans le sens des aiguilles
d’une montre, les fils rouge, noir et jaune de l’ESC sont connectés respectivement aux fils rouge, noir et jaune
du moteur. Pour les moteurs qui tournent dans le sens inverse des aiguilles d’une montre, les fils rouge et
noir de l’ESC sont inversés lorsqu’ils sont connectés aux fils du moteur.
Après avoir connecté les moteurs aux ESC, les connexions sont isolées à l’aide d’une gaine thermorétractable
49
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Ensuite, les ESC sont fixés sur les bras du drone. Cette étape est importante pour garder les ESC en
place pendant le vol et pour assurer une bonne ventilation des ESC, qui peuvent chauffer lorsqu’ils sont en
fonctionnement. La fixation des ESC est réalisée à l’aide de serre-câbles, qui sont attachés autour du bras du
drone et de l’ESC, les maintenant fermement en place. Il est recommandé de placer les ESC sur le dessus des
bras pour assurer une bonne ventilation et pour faciliter les vérifications et les réparations éventuelles.
Figure 2.18 : Connexion des Moteurs aux ESC : liaison électrique essentielle
Une fois que les ESC sont connectés aux moteurs et fixés en place, l’étape suivante consiste à installer
la carte de vol sur le châssis du drone et à la connecter aux ESC. La carte de vol est l’unité de contrôle
principale du drone, qui reçoit les commandes du récepteur radio et les traduit en commandes de vitesse pour
chaque moteur. La carte de vol est fixée sur la partie supérieure de la structure du drone, généralement au
centre, pour maintenir un équilibre optimal. Elle est fixée en place en utilisant des vis qui sont insérées à
travers les trous de montage pré-percés de la carte et vissées dans un cage imprimer avec l’imprimante 3d et
fixés avec le serre câble sur le drone . Il est important de veiller à ce que la carte de vol soit solidement fixée
pour éviter tout mouvement indésirable qui pourrait affecter la stabilité du drone en vol.
Une fois la carte de vol installée, les ESC sont ensuite connectés à elle. Chaque ESC possède un câble
à trois fils (rouge, noir et blanc) qui est connecté à l’un des connecteurs à 3 broches sur la carte de vol. Les
ESC doivent être connectés à la carte de vol en respectant un certain ordre pour que chaque moteur réagisse
correctement aux commandes de la carte de vol. En général, les ESC sont connectés à la carte de vol dans
l’ordre des moteurs, de 1 à 4, en suivant le sens des aiguilles d’une montre à partir du coin supérieur gauche
50
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
du drone. Une fois que tous les ESC sont connectés, le système de propulsion du drone est prêt à être testé
et calibré.
Figure 2.19 : Connexion des ESC à la carte de vol : intégration électrique pour le contrôle du
drone
radio à la carte de vol. Cette étape est importante car c’est ce qui permettra au pilote de contrôler le drone
drone, comme le contrôle de l’aileron, de l’élévateur, du gouvernail, et des gaz. Chaque canal sur le récepteur
La connexion est généralement réalisée à l’aide de câbles de connexion. Ces câbles ont une prise mâle
à une extrémité qui se branche dans le récepteur, et une prise femelle à l’autre extrémité qui se branche dans
la carte de vol.
51
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Il est important de s’assurer que chaque canal est correctement connecté à la bonne fonction sur la
carte de vol. Une fois que toutes les connexions sont faites, il est recommandé de vérifier soigneusement toutes
Nous souhaitons également souligner l’importance de s’assurer que chaque canal est correctement
connecté à la bonne fonction sur la carte de vol. Avant de procéder aux essais de vol, il est crucial de vérifier
Dans le processus d’assemblage d’un drone, chaque étape revêt une grande importance. Chaque
mouvement précis, chaque composant soigneusement intégré, contribue à créer une symphonie d’innovation
technologique. Nous avons fusionné l’électronique, l’informatique et l’aéronautique pour donner vie à un
appareil capable de conquérir les cieux. Notre transformation d’un ensemble de composants en une entité
volante, dotée d’une précision et d’une efficacité sans précédent, est le fruit de notre expertise technique, de
L’assemblage du drone est une étape majeure dans notre parcours. Cependant, il ne s’agit pas
de la finalité en soi. Une fois assemblé, notre drone nécessitera un entretien régulier, des ajustements et
éventuellement des réparations. C’est un engagement continu pour maintenir son fonctionnement optimal.
Nous sommes à l’aube de l’aventure. Le drone, assemblé et prêt à être déployé, ouvre la voie à
d’infinies possibilités. Ce processus d’assemblage est le point de départ d’une voie d’innovation, d’exploration
et de découverte. Il représente un pas audacieux vers l’avenir, un voyage qui ne fait que commencer. Alors
que nous nous préparons pour son premier vol, nous ressentons un profond sentiment d’accomplissement et
d’anticipation. Nous avons créé une passerelle vers le ciel et nous sommes prêts à l’emprunter.
52
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
et du contrôleur de vol KK2.1.5 de notre drone quadricoptère. Cette étape est cruciale car elle définit comment
notre drone va interagir avec les commandes que nous lui donnons via la radiocommande, ainsi que comment
La radiocommande Flysky FS-i6X nous servira d’interface entre le drone et nous, le pilote. Elle doit
être soigneusement configurée pour assurer une réactivité précise et fiable du drone à chaque commande.
Quant au contrôleur de vol KK2.1.5, il constitue le cerveau de notre drone. Il reçoit les informations
de la radiocommande et des différents capteurs du drone, et dirige les moteurs en conséquence pour assurer
pour établir une communication stable entre les deux. Puis, nous passerons à la configuration détaillée de la
Nous entrerons ensuite dans le vif du sujet avec la configuration du contrôleur de vol. Cela impliquera
53
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
l’étalonnage des capteurs, la configuration du schéma des moteurs, l’édition des paramètres PI pour le contrôle
L’objectif final est de configurer et de préparer notre drone à des tests de vol efficaces et à des
opérations de vol ultérieures. Alors, plongeons dans le processus sans plus attendre.
L’une des étapes préliminaires essentielles dans la configuration de notre drone fut l’appariement du
récepteur et de la radiocommande Flysky FS-i6X. Cette procédure, aussi désignée sous le terme "binding", est
indispensable pour établir une communication exclusive entre notre récepteur spécifique et notre radiocommande.
La procédure d’appariement que nous avons suivie est assez directe. Tout d’abord, nous avons activé
notre radiocommande Flysky FS-i6X. Puis, nous avons placé le récepteur en mode d’appariement. Cette
opération s’est effectuée en appuyant sur un bouton dédié sur le récepteur, tout en le mettant sous tension.
Dans cet état, une LED spécifique du récepteur a commencé à clignoter, indiquant son passage en mode
d’appariement.
Ensuite, nous avons basculé notre radiocommande en mode d’appariement. Nous avons réalisé cette
opération en naviguant à travers le menu de la radiocommande jusqu’à l’option d’appariement. Une fois le
mode d’appariement activé sur la radiocommande, la LED sur le récepteur a cessé de clignoter et est restée
Il est important de noter que cette procédure d’appariement n’a besoin d’être réalisée qu’une seule
fois. Une fois que le récepteur est apparié avec la radiocommande, il enregistre ces informations et se connecte
automatiquement à cette radiocommande à chaque mise sous tension des deux appareils. Toutefois, si nous
rencontrions des problèmes de connexion, ou si nous souhaitions utiliser un autre récepteur avec la même
Dans le cadre de notre projet, nous avons commencé par configurer notre radiocommande Flysky
FS-i6X. Voici les étapes que nous avons suivies pour sa configuration :
. Détermination du type d’appareil : En premier lieu, nous sommes allés dans "System Setup",
puis dans "Type" et avons sélectionné "Multirotor". Cela a permis de définir le type de drone que nous
utilisons.
. Choix du mode de contrôle : Nous avons ensuite défini le mode de contrôle en sélectionnant
"Mode 2" dans le menu "Control Mode". Le mode 2 est le plus couramment utilisé dans le pilotage des drones
54
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
et place le contrôle du lacet et des gaz sur le joystick de gauche, et le contrôle du tangage et du roulis sur le
joystick de droit. Les canaux de contrôle jouent un rôle vital dans la manière dont notre drone répond aux
commandes que nous donnons via la radiocommande. Voici un détail plus précis de chaque canal et de son
utilité :
1. Canal 1 - Aileron (Roulis) : Ce canal est attribué au contrôle du roulis, une action qui fait
basculer notre drone latéralement, comme une bascule. Les ailerons, situés sur les côtés du drone, sont les
composants qui permettent ce mouvement. En manipulant le joystick du canal 1, nous pouvions faire basculer
le drone d’un côté à l’autre, ce qui est crucial pour effectuer des virages ou pour stabiliser le drone contre les
vents latéraux.
2. Canal 2 - Élévateur (Tangage) : Le canal 2 est destiné à contrôler le tangage, qui fait monter ou
descendre l’avant du drone. Cela est rendu possible grâce à l’élévateur, qui se trouve généralement à l’arrière
du drone. Le contrôle du tangage est essentiel pour le décollage, l’atterrissage et le vol en avant ou en arrière.
3. Canal 3 - Gaz (Throttle) : Le canal 3 est notre levier d’accélération. Il contrôle la quantité
d’énergie que nous donnons aux moteurs de notre drone. En augmentant la valeur sur ce canal, nous faisons
augmenter la vitesse des moteurs, ce qui fait monter le drone. Inversement, en réduisant cette valeur, nous
55
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
4. Canal 4 - Direction (Lacet) : Le canal 4 est dédié à la commande de lacet, qui permet au drone
de pivoter ou de tourner sur son axe vertical. C’est un mouvement similaire à la rotation d’une toupie. Cette
commande est indispensable pour modifier l’orientation du drone sans déplacer son centre de gravité.
. Configuration des canaux auxiliaires : En accédant à "Function Setup", puis à "Aux. Channels",
nous avons assigné les différents boutons et interrupteurs de notre radiocommande à différentes fonctions
de notre drone. Par exemple, nous avons assigné l’armement/désarmement du drone à l’interrupteur SwA
(position 0 pour désarmé, position 1 pour armé) et le mode de vol à l’interrupteur SwC (position 0 pour le
mode stabilisé, position 1 pour le mode Horizon et position 2 pour le mode Acro).
. Inversion des voies si nécessaire : Lors de nos tests, si nous observions que certaines commandes
étaient inversées (par exemple, si le drone tournait à gauche alors que nous donnions l’ordre de tourner à
56
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
droite), nous avons corrigé cela en inversant les voies concernées. Pour ce faire, nous sommes allés dans
Au cours de l’étalonnage des capteurs, nous avons commencé par placer notre drone sur une surface
plane et immobile. Ceci est une précaution essentielle pour assurer l’exactitude de l’étalonnage. En effet, le
processus d’étalonnage a pour but d’offrir un point de référence neutre au contrôleur de vol pour comprendre
Nous avons navigué dans le menu du contrôleur de vol jusqu’à l’option "Sensor Calibration". Deux
types d’étalonnage ont été effectués ici : l’étalonnage de l’accéléromètre (option “Acc Calibration”) et celui
L’accéléromètre mesure l’accélération linéaire du drone dans les trois directions de l’espace (avant/arrière,
gauche/droite, haut/bas). L’étalonnage de cet instrument est crucial pour que le contrôleur de vol puisse
comprendre l’orientation du drone par rapport à la gravité terrestre et donc maintenir une trajectoire de vol
stable.
Le gyroscope, quant à lui, mesure la vitesse angulaire du drone, c’est-à-dire la rapidité avec laquelle
il change son orientation. L’étalonnage du gyroscope est donc essentiel pour que le contrôleur de vol puisse
Ces étapes d’étalonnage, bien que simples à réaliser, ont une importance capitale pour le contrôle
Après avoir procédé à l’étalonnage des capteurs, nous avons réalisé un test des capteurs pour nous
assurer de leur bon fonctionnement et de la précision de l’étalonnage. Dans le menu du contrôleur de vol,
nous avons sélectionné l’option "Sensor Test". Cette option nous a permis de vérifier les valeurs renvoyées
Nous avons prêté une attention particulière aux valeurs renvoyées par les capteurs lorsque le drone
était immobile. Idéalement, l’accéléromètre devrait indiquer une accélération nulle dans les directions horizontales
(gauche/droite et avant/arrière). De même, le gyroscope devrait indiquer une vitesse angulaire nulle pour
57
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Toutes les valeurs renvoyées par les capteurs lors du test étaient cohérentes avec ces attentes, ce
qui nous a permis de confirmer le succès de l’étalonnage et la fiabilité de nos capteurs. Cette étape de test
nous a également donné l’opportunité de nous familiariser avec l’interprétation des données renvoyées par les
Suite au test des capteurs, nous avons poursuivi avec la configuration de la disposition des moteurs.
Cette étape consiste à informer le contrôleur de vol de la disposition physique de nos moteurs sur le drone.
Pour cela, nous avons utilisé l’option "Load Motor Layout" du menu du contrôleur de vol KK2.1.5.
Puisque notre drone est un quadricoptère, nous avons sélectionné l’option "Quadcopter X Mode"
dans le sous-menu de la disposition des moteurs. Cela indique au contrôleur de vol que notre drone a quatre
Il est essentiel de bien configurer la disposition des moteurs car cela permet au contrôleur de vol
de comprendre comment ajuster la vitesse de chaque moteur pour contrôler les mouvements du drone. Une
mauvaise configuration pourrait entraîner des mouvements imprévus ou une perte de contrôle du drone.
Une fois que nous avons sélectionné la disposition des moteurs appropriée, le contrôleur de vol a
affiché un diagramme pour confirmer notre sélection. Nous avons vérifié ce diagramme pour nous assurer
qu’il correspondait bien à la disposition physique réelle de nos moteurs. Une fois confirmé, nous avons quitté
L’étape suivante de notre processus de configuration du contrôleur de vol KK2.1.5 a impliqué l’édition
des paramètres Proportionnels-Intégraux-Dérivés (PID). Ces paramètres sont essentiels pour le contrôle du
drone car ils déterminent la réponse du contrôleur de vol aux différents mouvements du drone.
Nous avons accédé à ces paramètres via l’option "PI Editor" du menu du contrôleur de vol. Dans ce
sous-menu, nous avons pu modifier les paramètres PID pour les axes de roulis (Roll), de tangage (Pitch) et
de lacet (Yaw).
Après avoir défini les paramètres PID, nous avons sauvegardé nos réglages et sommes revenus au menu
principal du contrôleur de vol. À ce stade, notre contrôleur de vol a été configuré pour réagir de manière
58
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Nous avons réalisé le test du récepteur, une étape clé pour garantir que les signaux envoyés par la
En sélectionnant "Receiver Test" dans le menu principal du contrôleur de vol KK2.1.5, nous avons
été en mesure de vérifier que le contrôleur de vol recevait correctement les commandes envoyées par la
radiocommande.
En manipulant les joysticks de la radiocommande, nous avons pu observer les variations des valeurs
affichées à l’écran pour les voies correspondantes. Par exemple, lorsque le joystick droit était poussé vers le
haut, la valeur de la voie PITCH augmentait. De même, en déplaçant le joystick gauche vers la droite, la
valeur de la voie YAW augmentait. Ces changements de valeurs indiquaient que le contrôleur de vol recevait
Cependant, si lors de cette vérification, les valeurs se déplaçaient dans le mauvais sens, cela signifierait
que les voies de la radiocommande sont inversées. Dans ce cas, il serait nécessaire de naviguer vers le menu
"Function Setup", puis vers l’option "Reverse" pour inverser les voies concernées.
Enfin, après avoir validé que toutes les commandes étaient correctement reçues par le contrôleur de
vol, nous avons quitté le menu "Receiver Test" pour revenir au menu principal du contrôleur de vol.
L’étalonnage des ESC, ou Contrôleurs Électroniques de Vitesse, est une étape essentielle pour garantir
un vol sûr et stable de notre drone. Les ESC sont responsables de la régulation de la vitesse de rotation des
moteurs en fonction des commandes que nous donnons via la radiocommande. Pour que le drone réagisse de
manière appropriée à nos commandes, chaque ESC doit comprendre les valeurs maximales et minimales du
signal qu’il recevra du contrôleur de vol. C’est précisément l’objectif de l’étalonnage des ESC.
1. Dans le menu du contrôleur de vol KK2.1.5, nous avons sélectionné l’option "ESC Calibration".
2. Nous avons suivi les instructions à l’écran, qui demandaient d’abord de confirmer que les hélices
étaient retirées pour des raisons de sécurité. En effet, pendant l’étalonnage, les moteurs peuvent se mettre à
tourner à pleine vitesse, ce qui pourrait causer des blessures si les hélices étaient en place.
3. Une fois la confirmation donnée, l’écran suivant nous a demandé de placer le stick des gaz
(habituellement le stick gauche de la radiocommande) à la position maximale. Cela envoie le signal de gaz le
59
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
4. Après avoir confirmé que le stick des gaz était à la position maximale, le contrôleur de vol a émis
un signal sonore et a commencé le processus d’étalonnage. Pendant ce temps, chaque ESC a appris la valeur
5. Une fois le processus d’étalonnage terminé, nous avons réduit le stick des gaz à la position minimale.
6. Après l’étalonnage, nous avons redémarré le contrôleur de vol pour enregistrer les nouvelles valeurs
d’étalonnage.
Ainsi, nous avons réussi à étalonner nos ESC pour qu’ils répondent de manière précise et fiable à nos
La dernière étape de notre configuration du contrôleur de vol KK2.1.5 a été le test des moteurs. Ce
test nous a permis de vérifier que chaque moteur répond correctement aux signaux envoyés par le contrôleur
1. Dans le menu du contrôleur de vol, nous avons sélectionné l’option "Motor Test". Comme pour
l’étalonnage des ESC, l’interface nous a d’abord demandé de confirmer que toutes les hélices étaient retirées
2. Après avoir confirmé, nous avons activé le test des moteurs. À ce stade, chaque moteur a commencé
3. En regardant la vue de dessus du drone, nous avons vérifié que chaque moteur tournait dans la
direction indiquée par le schéma de disposition des moteurs que nous avions précédemment chargé (Quadcopter
X Mode). Par exemple, pour un Quadcopter en mode X, le moteur 1 (avant droit) et le moteur 3 (arrière
gauche) devraient tourner dans le sens des aiguilles d’une montre, tandis que le moteur 2 (avant gauche) et
4. Si nous avions trouvé un moteur qui tournait dans la mauvaise direction, nous aurions dû échanger
deux des trois fils qui le connectent à l’ESC pour inverser sa direction de rotation.
5. Une fois que nous avons confirmé que tous les moteurs tournaient dans la bonne direction, nous
avons terminé le test des moteurs en désactivant la fonction "Motor Test" dans le menu du contrôleur de vol.
En suivant ces étapes, nous avons pu nous assurer que nos moteurs répondent correctement aux
60
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
éléments représentent le système nerveux de notre drone, permettant le contrôle précis de son vol et le
réglage fin de ses performances. La radiocommande, qui est l’interface entre le pilote et le drone, nécessite
une configuration minutieuse pour garantir une réponse précise et fiable à chaque commande. Le contrôleur
de vol, de son côté, est l’élément qui gère les informations venant de la radiocommande et des divers capteurs
La configuration de ces deux composants requiert une attention particulière. Nous avons commencé
par l’appariement de la radiocommande et du récepteur, une étape essentielle pour établir une connexion
fiable entre les deux. Ensuite, nous avons procédé à la configuration de la radiocommande elle-même, en
La configuration du contrôleur de vol a été un processus plus détaillé. Cela a commencé par l’étalonnage
des capteurs pour assurer la précision des données qu’ils fournissent au contrôleur de vol. Puis nous avons défini
la disposition des moteurs et ajusté les paramètres de contrôle PI pour obtenir un vol stable et contrôlable. Un
test du récepteur a été effectué pour confirmer que le contrôleur de vol recevait correctement les commandes
de la radiocommande.
Ensuite, L’étalonnage des ESC a permis de garantir une réponse précise des moteurs aux commandes
du contrôleur de vol. Enfin, nous avons effectué un test des moteurs pour confirmer qu’ils répondent correctement
Nous avons un drone prêt à voler, avec une radiocommande et un contrôleur de vol parfaitement
La période de recharge de nos batteries s’est imposée comme une contrainte conséquente. La durée
nécessaire pour une recharge complète a non seulement ralenti notre processus d’essai et d’optimisation, mais
a également érodé le temps précieux de vol disponible entre chaque cycle de recharge. Ce défi complexe a
souligné la nécessité d’investir dans la recherche de solutions visant à prolonger le temps de vol tout en
maintenant l’intégrité du système. Les stratégies déployées pour surmonter cette épreuve ont mis en lumière
61
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Pour contrecarrer le dilemme du temps de recharge, nous avons envisagé l’utilisation d’une batterie
de voiture. Malgré nos espoirs, cette initiative s’est avérée infructueuse, menant à une surcharge accidentelle
qui a rendu la batterie hors service. Ce revers a souligné la prudence nécessaire lors de l’expérimentation de
nouvelles méthodes, en mettant en évidence les dangers potentiels de l’innovation sans une compréhension
Pour remplacer la batterie de la voiture endommagée, nous avons intégré une alimentation stabilisée
de 12V/40A. Malgré cette tentative, l’intensité s’est révélée insuffisante pour alimenter nos quatre moteurs
de 1000kv, chacun soutenu par des pilotes ESC 30A. Cet écart entre l’alimentation et la demande a présenté
62
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
un nouveau défi, nous rappelant l’importance de la correspondance entre l’offre énergétique et les exigences
techniques.
Face au déficit énergétique, nous avons trouvé une solution en couplant notre alimentation à une
ancienne batterie Lipo 3s de 3000mAh, capable d’une décharge maximale de 45C. Cette alliance a permis
de surmonter les défis posés par les pics de demande d’énergie, compensant le manque de puissance de
l’alimentation stabilisée. Bien que cette stratégie ait porté ses fruits, elle a également souligné l’importance
Le poids de notre drone s’est révélé être un facteur déterminant dans les performances de vol. La tâche
consistant à trouver le juste équilibre entre la robustesse des composants et la légèreté nécessaire pour un vol
optimal s’est avérée être un défi de taille. Chaque décision concernant les composants avait des répercussions
sur la maniabilité, l’agilité et l’autonomie du drone. L’expérience a démontré que la recherche constante de
solutions innovantes est essentielle pour atteindre l’équilibre idéal entre le poids et la performance.
Parmi les défis inattendus, les problèmes de stabilité du drone ont été particulièrement marquants.
Après une analyse minutieuse, nous avons découvert que nos moteurs fonctionnaient dans le sens inverse de
celui prévu par le schéma de la carte KK2.1.5. Ce détail apparemment minime a provoqué un déséquilibre
considérable dans la stabilité de l’appareil. La correction de l’orientation des moteurs a été une étape
cruciale pour remédier à ce problème, mettant en évidence l’importance d’une connaissance approfondie
63
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Au lendemain de nos rigoureux tests de vol, après avoir subi les tracas de la configuration minutieuse
de la carte de vol, et ayant surmonté une kyrielle de problèmes techniques, nous avons atteint un jalon
significatif et gratifiant dans notre quête : la réalisation du vol stable. C’est un rêve qui s’est enfin matérialisé,
un rêve qui autrefois flottait dans le royaume de l’impossible, mais qui, à présent, grâce à la persévérance de
Le moment où notre drone a maintenu son premier vol stable a été une révélation époustouflante.
C’était comme si le temps s’était arrêté, et l’atmosphère était saturée de tension et d’anticipation. Le drone
s’est élevé lentement, son bourdonnement devenant un chant de triomphe. Puis, il est resté là, dans les
airs, immobile comme une étoile dans la nuit. C’était une vision impressionnante, un spectacle qui a mis en
Dans ce moment de gloire, l’excitation a remplacé nos soucis. Nos visages tendus ont laissé place
à des sourires d’émerveillement, les cœurs battant à l’unisson avec le rythme hypnotique des rotors. Nous
avons tous senti une joie indescriptible, une sorte de jubilation réservée aux explorateurs qui ont gravi des
C’était plus qu’une simple réalisation technique. C’était la concrétisation d’un rêve, la preuve tangible
que la persévérance, le dévouement et la passion peuvent transcender les limites de ce que nous pensions
possible. C’était l’apogée d’innombrables heures de travail, de dévouement, d’échecs et de triomphes. C’était
la démonstration ultime que notre équipe est capable d’atteindre les étoiles, d’affronter l’adversité et de
Cette réussite marque un tournant dans notre voyage, mais ce n’est pas la fin. C’est un pas de géant
vers des horizons inexplorés, vers des vols plus stables, plus efficaces et plus sûrs. C’est la promesse que nous
continuerons à repousser les limites, à innover et à améliorer notre technologie pour que, dans un avenir
proche, nos drones puissent inspecter chaque pylône avec une précision et une fiabilité sans précédent.
En fin de compte, le vol stable n’est pas seulement un rêve qui a été réalisé. C’est une célébration
du génie humain, un témoignage de notre détermination à repousser les frontières de l’impossible. C’est un
hymne à l’innovation, un triomphe de la technologie sur les défis. C’est notre moment de gloire, et c’est avec
64
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Figure 2.26 : Vol stable du drone : équilibre et contrôle pour une expérience de vol fluide
Figure 2.27 : Vol du drone après les améliorations apportées au système d’alimentation et à la
stabilité
65
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Le point culminant de nos tests s’est produit lors de l’explosion tragique de notre batterie. Cet
incident, provoqué par un écart de tension entre la batterie (11,1V) et l’alimentation stabilisée (12V), a
entraîné une surcharge dévastatrice. L’incendie qui a suivi a détruit le drone, mettant fin prématurément à
notre première phase de tests. Cet événement désastreux, aussi tragique soit-il, a renforcé notre détermination
à tirer des leçons de nos erreurs et à améliorer sans cesse nos protocoles de sécurité pour prévenir de tels
incidents à l’avenir.
66
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Notre phase de test de vol a été une expérience intense et enrichissante, avec ses réussites et ses défis.
Elle a également été marquée par un incident tragique qui a laissé une empreinte indélébile sur notre équipe.
Notre victoire initiale a été rapidement tempérée par un problème majeur : la batterie vétuste et
défaillante de notre drone. L’intégration d’une alimentation stabilisée en parallèle a permis de surmonter ce
défi, augmentant considérablement la durée de vol et offrant à notre drone une autonomie illimitée.
Cependant, la joie de cette réussite a été assombrie par un événement inattendu et catastrophique :
l’explosion de la batterie. Ce moment, qui restera gravé dans nos mémoires, a transformé notre atelier en un
champ de ruines fumant. La déflagration a résonné comme un coup de tonnerre, faisant trembler les murs et
remplissant l’air d’une fumée suffocante et toxique. Nos rêves, notre travail acharné, tout semblait être parti
en fumée en un instant. Cette tragédie a été un choc pour tous, l’équipe dévastée et traumatisée par cette
soudaine explosion.
Mais au-delà de la désolation et du choc, cet incident a aussi été un catalyseur de notre résilience. En
effet, ce qui aurait pu nous anéantir nous a en réalité rendus plus forts. Nous avons transformé notre échec en
une source de motivation, rappelant les paroles de Thomas A. Edison : "Notre plus grande faiblesse
réside dans l’abandon. La façon la plus sûre de réussir est toujours d’essayer encore une fois".
Cette épreuve a renforcé notre détermination à ne pas abandonner. Nous avons investi dans de
nouveaux composants et avons utilisé l’expertise que nous avions acquise pour reconstruire notre drone.
Malgré les défis, nous sommes restés déterminés et optimistes, prêts à faire face aux obstacles futurs avec une
67
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
confiance renouvelée.
Ainsi, malgré la douleur et le défi que cet incident a représenté, il a également renforcé notre résilience
et notre détermination à réussir. Cela a été une leçon précieuse et une épreuve qui, loin de nous dissuader,
par drone
Le voyage se poursuit avec l’exploration de la technologie qui permet la capture d’images extraordinaires
pendant les vols d’essai. Le mystère de l’ESP 32 Cam se dévoile peu à peu, révélant un monde de sophistication
et de capacités stupéfiantes, capable d’immortaliser chaque moment avec une netteté exceptionnelle. Pour
compléter cette exploration, le voyage fait escale dans l’abîme virtuel de Google Drive. Là, chaque image
capturée trouve un refuge sûr, prête à être analysée et mise à profit dans la quête d’améliorations et de
découvertes.
Dans cette partie , nous allons passer en revue les fondements théoriques et les technologies clés
nécessaires à la réalisation de notre projet. Nous commencerons par une introduction à l’Internet des Objets
(IoT), suivie d’une présentation détaillée de l’ESP32 CAM, un module polyvalent pour la capture d’images.
Enfin, nous examinerons les solutions de stockage en nuage, en mettant l’accent sur Google Drive.
68
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
L’Internet des Objets (IoT) est un concept qui fait référence à l’interconnexion des objets physiques
via Internet, leur permettant de collecter et d’échanger des données. L’IoT offre des possibilités infinies dans de
nombreux domaines, de la domotique à la santé, en passant par la logistique et l’industrie. Il permet aux objets
de communiquer entre eux et avec les utilisateurs, créant ainsi des systèmes intelligents et interconnectés.
Dans notre projet spécifique, nous utilisons une caméra IoT 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
. 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
L’ESP32 CAM est un module compact et abordable qui combine les fonctionnalités d’un microcontrôleur
ESP32 et d’une caméra. Équipé d’un capteur d’image OV2640 de 2 mégapixels, l’ESP32 CAM est capable
de capturer des images de haute qualité. Il prend en charge la communication sans fil via le Wi-Fi et peut
69
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Valeurs / Caractéristiques
Description
Téléchargement Oui
d’images via WiFi
WiFi 802.11b/g/n/e/i
Plage de tension 5V
d’alimentation
Poids 10 g
Prix 45 DT
70
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
2.7.3 Les solutions de stockage en nuage avec un focus sur Google Drive
Les solutions de stockage en nuage sont devenues courantes pour la sauvegarde et le partage des
données. Elles permettent aux utilisateurs d’accéder à leurs fichiers depuis n’importe quel appareil connecté
à Internet et offrent une solution de sauvegarde sécurisée en cas de perte ou de dommage du matériel.
Dans notre projet, nous envisageons d’utiliser Google Drive comme solution de stockage en nuage
pour nos images capturées par l’ESP32 CAM. Google Drive offre un espace de stockage gratuit et payant,
permettant de stocker et de partager différents types de fichiers, y compris des images. Il fournit également
des API qui facilitent l’interaction avec les fichiers stockés, permettant leur intégration avec d’autres systèmes
et applications.
L’utilisation de Google Drive présente plusieurs avantages, tels que sa facilité d’utilisation, sa disponibilité
multiplateforme, la sécurité des données et la possibilité de collaborer avec d’autres utilisateurs. Il nous
permettra de stocker nos images de manière sécurisée, tout en facilitant leur accès à partir de différents
appareils et la mise en place d’un flux de travail efficace pour notre projet.
Dans cette section, nous aborderons la configuration et la programmation de l’ESP32 CAM pour la
capture d’images. Nous commencerons par présenter et justifier l’utilisation de l’ESP32 CAM en tant que
matériel pour notre projet. Ensuite, nous présenterons une conception 3D de l’ESP32 CAM réalisée avec
L’ESP32 CAM a été choisi comme matériel pour notre projet de capture d’images en raison de ses
caractéristiques et de ses capacités adaptées à nos besoins. Voici les principales raisons de ce choix :
Intégration de la caméra :
L’ESP32 CAM est équipé d’un capteur d’image OV2640 de 2 mégapixels, ce qui nous permet de
L’ESP32 CAM prend en charge le Wi-Fi, ce qui nous permet de transférer les images capturées vers
71
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Avec ses deux CPU LX6 32 bits, l’ESP32 CAM dispose de la puissance de calcul nécessaire pour
Flexibilité de programmation :
L’ESP32 CAM est programmable avec l’environnement de développement Arduino IDE, ce qui facilite
Pour mieux visualiser l’aspect physique de l’ESP32 CAM, nous avons réalisé une conception 3D
détaillée de ce module à l’aide du logiciel SolidWorks. Cette modélisation 3D nous permet d’apprécier
l’agencement des différents composants et connexions de l’ESP32 CAM, ainsi que son format compact.
La conception 3D de l’ESP32 CAM nous aide à mieux comprendre son encombrement et sa structure.
Cela peut être particulièrement utile lors de l’intégration de l’ESP32 CAM dans des boîtiers ou des conceptions
l’ESP32 CAM dans notre projet, en tenant compte des dimensions et de l’orientation du module.
Le processus de programmation de l’ESP32 CAM pour la capture d’images implique plusieurs étapes.
Tout d’abord, nous devons configurer l’environnement de développement Arduino IDE pour prendre en charge
l’ESP32 CAM. Ensuite, nous devons écrire le code nécessaire pour initialiser la caméra, capturer des images
et les traiter si nécessaire. Enfin, nous devons mettre en place la logique de transfert des images vers un
72
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Google Apps Script est un puissant outil qui nous permet de faire interagir de manière dynamique
Le point de départ de notre travail consistait à visiter le site script.google.com pour concevoir un
projet entièrement nouveau. Cela nous a permis d’élaborer un code qui serait exécuté sur le serveur, ouvrant
ainsi la voie à une interaction efficace et personnalisée avec les divers services Google.
Nous avons inséré une fonction spécifique dans notre projet Google Apps Script afin de recevoir et
de traiter les images envoyées par l’ESP32-CAM. Ces images sont ensuite stockées dans Google Drive. Pour
cela, nous avons eu recours aux API de Google Drive, notamment l’API DriveApp. Cette dernière nous a
permis de générer de nouveaux fichiers directement dans Google Drive et d’y stocker les images transmises
par l’ESP32-CAM.
73
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Figure 2.35 : Fonction de réception et enregistrement des photos de l’ESP 32-CAM dans
Google Drive
Cette fonction est un script Google Apps qui reçoit une requête HTTP POST contenant une image
codée en base64. L’image est alors décodée, puis un nouveau fichier contenant cette image est généré et stocké
dans un dossier spécifique sur Google Drive. Si le processus se déroule sans problème, une réponse est envoyée
pour confirmer le succès de l’opération. Le nom du dossier est spécifié par un paramètre inclus dans la requête
Après avoir développé et peaufiné nos fonctions, nous avons procédé à leur déploiement sous forme
de service web. Cette étape nous a permis de générer un ID de déploiement unique et une URL spécifique,
que nous avons utilisée pour établir une communication entre notre script et l’ESP32-CAM.
ID de déploiement : AKfycbxZB4rCcMQQ7ptPYlEU-1e3Y5o8Da2-ExLUikbfDKqXbWz-cyfTpEf
GxLlGIjfoWAr-9A
kbfDKqXbWz-cyfTpEfGxLlGIjfoWAr-9A/exec
74
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Nous avons réalisé un test de la caméra intégrée à l’ESP32-CAM. Pour cela, nous avons développé
un code spécifique. Ce code configure la caméra, établit une connexion WiFi, et lance un serveur web. Ce
serveur donne accès à l’ESP32-CAM via un navigateur web. Il transmet en continu le flux vidéo en direct et
permet de capturer des images à partir de la caméra. Une fois que le code est téléversé sur l’ESP32-CAM, le
module se connecte au réseau WiFi et démarre le serveur web. Ainsi, nous pouvons visualiser le flux vidéo
et capturer des images en accédant à l’adresse IP de l’ESP32-CAM via un navigateur web. Pendant ce test,
75
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Programmée
Dans le cadre de ce projet, nous avons mis au point un système en utilisant l’ESP32-CAM, une
caméra hautement programmable capable d’établir une connexion WiFi et d’envoyer des images à un serveur
76
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
et configurations pertinentes.
Les bibliothèques sélectionnées jouent un rôle crucial dans la gestion du WiFi, la sécurisation des
WiFi : Cette technologie de communication sans fil permet aux appareils de se connecter à Internet
ou à d’autres réseaux locaux sans recourir à des câbles physiques. Le module ESP32 contient une fonction
WiFi intégrée qui permet au microcontrôleur de se connecter à des réseaux WiFi et d’effectuer diverses
connexion sécurisée (chiffrée) avec un serveur distant par le biais du protocole HTTPS. Elle permet d’effectuer
des requêtes sécurisées et de recevoir des réponses de serveurs sécurisés en utilisant des certificats SSL/TLS.
esp camera : C’est une bibliothèque spécifique pour les modules ESP32. Elle permet de prendre des
photos, de capturer des vidéos et de les traiter avec 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 : Il s’agit d’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. Dans les communications sur Internet, Base64 est
souvent utilisé pour transmettre des données binaires dans des formats textuels 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
77
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Nous avons établi les identifiants de connexion pour le réseau WiFi que l’ESP32-CAM utilisera pour
Nous avons également configuré plusieurs broches GPIO pour permettre à l’ESP32-CAM d’interagir
Nous avons mis en place les identifiants nécessaires pour permettre à l’ESP32-CAM d’envoyer des
78
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Figure 2.42 : Identifiants requis pour l’envoi d’images de l’ESP 32-CAM vers un serveur Google
Drive
Après la finalisation de la configuration, une procédure de vérification est mise en marche pour tester
la connectivité avec “script.google.com”. Cela garantit que toutes les images capturées seront téléchargeables
sans problème sur le serveur Google Drive. Ce processus de vérification de connectivité est une étape vitale,
car elle permet de détecter tout problème potentiel avant la mise en service du système.
Une fois la connectivité confirmée, une routine est mise en place pour la capture systématique des
images. Cette routine comporte deux étapes principales : premièrement, la capture d’une image à partir
de l’ESP32-CAM, et deuxièmement, l’envoi de cette image vers le serveur Google Drive. Pour assurer la
robustesse de ce processus, nous avons inclus des mécanismes de contrôle d’erreur, qui interviennent si jamais
Dans ce système, la fréquence de capture et de transmission d’images est d’une importance cruciale.
Nous avons décidé de définir un intervalle de temps spécifique - toutes les 20 secondes - au cours duquel
l’ESP32-CAM doit effectuer ces deux opérations. Ce paramètre a été soigneusement calibré pour assurer un
flux régulier d’images sans surcharger le réseau ni consommer excessivement la batterie de l’appareil.
Au démarrage du système, plusieurs actions se déroulent. Tout d’abord, la connexion WiFi est établie.
Ensuite, l’ESP32-CAM est configuré selon les paramètres définis précédemment. Enfin, la connectivité au
serveur Google Drive est vérifiée pour assurer le bon fonctionnement du système. Ces actions permettent de
79
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Une fois que toutes les étapes initiales ont été achevées et que le système a été lancé, il entre dans
une boucle de fonctionnement principale. Cette boucle est le cœur du système : à chaque intervalle de temps
défini - dans notre cas, toutes les 20 secondes - l’ESP32-CAM capture une image et l’envoie au serveur Google
Drive. Ce cycle continu de capture et de transmission d’images est le mécanisme qui permet à notre système
Figure 2.43 : stockage des images prise par ESP32-cam sur Google Drive
Dans cette section finale, nous analyserons les résultats obtenus lors de l’implémentation du système
d’inspection automatisée des pylônes de télécommunication utilisant l’ESP32-CAM et Google Drive. Nous
discuterons des avantages et des limitations du système, en mettant en évidence les réussites et les éventuels
défis rencontrés. De plus, nous présenterons des pistes d’amélioration possibles et des optimisations qui
pourraient être apportées au système pour améliorer ses performances et son efficacité.
Enfin, nous conclurons ce chapitre en faisant une synthèse des résultats de l’étude. Nous récapitulons
les principales conclusions tirées de l’analyse des résultats et discuterons de l’importance de notre système
d’inspection automatisée des pylônes de télécommunication dans le contexte de l’IoT et de l’efficacité opérationnelle.
80
Chapitre 2. Release 1 - Construction d’un drone et intégration de l’IOT
Nous soulignerons également les perspectives futures et les possibilités d’extension du système pour d’autres
En suivant cette structure organisée, claire et compréhensible, le chapitre II fournira une revue
de l’art et des fondements théoriques solides pour notre projet d’inspection automatisée des pylônes de
télécommunication utilisant l’ESP32-CAM et Google Drive. Les informations fournies dans les sections
détaillées permettront aux lecteurs de comprendre les concepts essentiels, les choix technologiques et les
2.11 Conclusion
Au terme de ce deuxième chapitre captivant, nous avons voyagé au cœur de la Release 1, où nous avons
vécu ensemble une expérience riche en découvertes. La sélection minutieuse des composants, l’assemblage
méticuleux, les tests de vol palpitants et l’intégration de l’ESP 32 Cam ont donné naissance à une symphonie
technologique fascinante. Nous avons été témoins des décisions cruciales, des défis relevés et des avancées
Nous vous invitons maintenant à vous préparer pour la suite de cette aventure passionnante, où la
détection d’objets et le traitement d’images occuperont une place centrale dans le prochain chapitre captivant.
Restez captivés par l’excitation et l’innovation qui animent chaque étape de ce projet visionnaire. Nous
81
Chapitre 3
Plan
1 Sprint 3 : Exploration de la Détection d’Objets : Méthodes et Applications 85
3.1.4 Apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.1.5 Inférence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.1.6 Post-traitement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
2 La Détection d’Objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.2.1 Choix de YOLO : Une Comparaison Critique avec les Modèles Concurrents 87
82
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
3.3.1.2 Extraction d’images à partir d’un site web par Web Scraping . . . 105
83
3.3.2.13 Correction manuelle des erreurs . . . . . . . . . . . . . . . . . . . 132
3.5.3 Utilisation de Tesseract OCR pour la reconnaissance de texte sur les images
traitées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
3.5.3.1 Script Python pour la reconnaissance de texte avec Tesseract OCR :149
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Introduction
Le chapitre suivant de ce voyage technologique s’ouvre sur des horizons encore plus vastes. Dans la
Release 2, deux itérations passionnantes attendent leur révélation, invitant à une exploration approfondie
compréhension de la détection d’objets, tandis que le Sprint 4 offre une plongée dans les profondeurs de la
reconnaissance de texte avec Tesseract OCR. L’ensemble constitue un voyage où les avancées technologiques
éclairent les chemins, repoussant sans cesse les frontières de la précision et de la performance.
expose les différentes étapes, depuis la collecte des données jusqu’à l’inférence, en passant par l’annotation
et l’apprentissage. Il révèle également les choix cruciaux liés au modèle YOLO, mettant en lumière ses
performances en comparaison avec d’autres modèles concurrents. Les architectures de YOLOv1, YOLOv2,
YOLOv3, YOLOv4 et YOLOv5 se déploient, présentant les améliorations et les fonctionnalités uniques de
chaque version. Le processus de préparation des données, l’annotation manuelle et automatique, l’entraînement
du modèle YOLO et l’évaluation des résultats se dessinent avec précision. L’étonnement face aux capacités
La détection d’objets par l’Intelligence Artificielle (IA) est une branche de la vision par ordinateur
qui utilise des techniques d’apprentissage profond pour identifier et localiser des objets dans les images ou
les séquences vidéo. Le processus complexe et multi-étapes de cette méthode est fascinant et englobe divers
aspects tels que la collecte des données, l’annotation des données, l’apprentissage du modèle, l’inférence et le
post-traitement.
Le processus commence par la collecte de données. C’est une étape cruciale, car la qualité et la diversité
des données influencent directement la performance du modèle. Il est essentiel de recueillir un ensemble
d’images qui contiennent les objets d’intérêt dans une multitude de scénarios différents. Les objets doivent
85
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
être capturés sous divers angles, éclairages, environnements, tailles, et états afin de généraliser efficacement
pendant la phase d’apprentissage. Dans certains cas, la collecte des données peut impliquer l’utilisation de
techniques d’augmentation de données pour enrichir l’ensemble de données avec des variations synthétiques
Après la collecte des données, vient l’étape d’annotation des données. C’est une étape laborieuse qui
implique de marquer chaque objet d’intérêt dans les images. Typiquement, cette annotation prend la forme
de boîtes englobantes rectangulaires qui entourent chaque objet et incluent une étiquette de catégorie. De
nombreuses méthodes d’annotation existent, des techniques manuelles qui exigent une intervention humaine
aux techniques semi-automatiques qui utilisent l’IA pour prédire les annotations, lesquelles sont ensuite
vérifiées et corrigées par des humains. L’annotation précise des données est fondamentale pour la formation
efficace du modèle.
3.1.4 Apprentissage
Le cœur du processus de détection d’objets par l’IA est la phase d’apprentissage. C’est à ce moment
que le modèle d’apprentissage profond est formé sur l’ensemble des images annotées. Il apprend à comprendre
les caractéristiques essentielles qui définissent chaque catégorie d’objets et à prédire leur emplacement dans
l’image. L’apprentissage se fait en utilisant des techniques de rétro propagation et d’optimisation stochastique
pour ajuster les paramètres du modèle afin de minimiser l’erreur entre les prédictions du modèle et les
annotations réelles. Cette phase est généralement réalisée sur une machine équipée d’un processeur graphique
(GPU), qui peut traiter de grandes quantités de données en parallèle, accélérant ainsi le processus.
3.1.5 Inférence
Une fois le modèle formé, nous entrons dans la phase d’inférence, où le modèle est utilisé pour détecter
des objets dans de nouvelles images ou séquences vidéo, non vues lors de la formation. Le modèle examine
l’image et génère une série de boîtes englobantes prédites pour chaque objet qu’il identifie, associées à une
catégorie d’objet et un score de confiance qui indique la probabilité que l’objet identifié appartienne à la
catégorie spécifiée. C’est l’étape où tout le travail d’apprentissage est mis à l’épreuve et où l’on voit les
86
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
3.1.6 Post-traitement
La dernière étape du processus est le post-traitement des prédictions du modèle. Cela peut inclure
des techniques pour éliminer les doublons et les fausses détections, l’ajustement des scores de confiance, et
d’autres méthodes pour affiner les résultats. Cette étape est vitale pour filtrer le bruit et présenter une image
La détection d’objets est un domaine essentiel de l’apprentissage automatique, avec une multitude
d’applications pratiques dans des domaines tels que la surveillance vidéo, la conduite autonome, la réalité
augmentée, et bien d’autres. Au fil des années, plusieurs modèles de détection d’objets ont été développés,
chacun ayant ses propres caractéristiques, avantages et inconvénients. Dans cette sous-section, nous entreprenons
une comparaison critique de différents modèles de détection d’objets, tels que YOLO, SSD, Faster R-CNN,
ainsi que d’autres modèles pertinents, en évaluant leurs performances selon divers critères clés.
L’objectif de cette comparaison est de déterminer le modèle le plus approprié pour notre projet
spécifique de détection d’objets. Nous évaluons ces modèles en tenant compte de facteurs tels que la vitesse
de détection, la précision des prédictions et la capacité à détecter de petits objets, tout en prenant en
Parmi ces modèles, YOLO (You Only Look Once) se distingue comme l’un des plus populaires et
des plus largement utilisés pour la détection d’objets en temps réel. Cependant, pour prendre une décision
éclairée quant à son adoption pour notre projet, il est essentiel d’effectuer une comparaison critique avec
d’autres modèles. Nous examinons attentivement les caractéristiques et les performances de chaque modèle
Au cours de cette sous-section, nous présentons en détail chaque modèle, en expliquant ses principes
de fonctionnement, ainsi que ses avantages et inconvénients respectifs. Nous évaluons ensuite ces modèles selon
les critères pertinents, en mettant en évidence leurs performances dans des scénarios de détection d’objets
spécifiques. Enfin, nous justifions notre choix de YOLO pour notre projet, en soulignant ses avantages et en
démontrant sa capacité à répondre aux exigences spécifiques de notre application de détection d’objets.
Cette comparaison critique des modèles de détection d’objets nous permettra de prendre une décision
87
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
éclairée quant au choix de YOLO pour notre projet, en nous appuyant sur des données objectives et des
analyses approfondies. Cela nous permettra d’optimiser les performances et les résultats de notre système de
Dans cette sous-section, nous allons explorer en détail le modèle YOLO (You Only Look Once)
et examiner son importance dans le domaine de la détection d’objets. Nous commencerons par retracer son
historique, en mettant en lumière ses créateurs, la motivation derrière sa création et son impact significatif sur
le domaine. Ensuite, nous plongerons dans le fonctionnement du modèle YOLO, en décrivant ses principes clés,
son architecture et ses caractéristiques uniques. Enfin, nous analyserons de manière critique les performances
du modèle YOLO, en soulignant ses avantages et ses inconvénients grâce à des exemples concrets et des
preuves empiriques.
Le modèle YOLO repose sur des principes clés qui en font un modèle unique dans le domaine de
la détection d’objets. Tout d’abord, l’image d’entrée est divisée en une grille régulière de cellules. Chaque
cellule est responsable de prédire les boîtes englobantes des objets présents dans cette cellule et les probabilités
associées aux différentes classes d’objets. Ensuite, chaque cellule prédit un certain nombre de boîtes englobantes,
caractérisées par leurs coordonnées (coordonnées x et y du centre, largeur et hauteur) et un score de confiance
qui est une estimation de la présence d’un objet dans cette boîte. De plus, chaque cellule prédit également les
probabilités d’appartenance à différentes classes d’objets pour chaque boîte englobante. Enfin, les prédictions
de toutes les cellules sont regroupées et filtrées pour supprimer les duplications et les prédictions de faible
confiance, ce qui permet d’obtenir les boîtes englobantes et les classes des objets détectés.
L’architecture de base du modèle YOLO comprend des couches de convolution, de pooling et des
couches entièrement connectées, qui sont suivies de couches de prédiction. Ces dernières génèrent les prédictions
pour les boîtes englobantes et les classes d’objets. Le modèle YOLO est généralement pré-entraîné sur de vastes
bases de données d’images annotées, ce qui lui permet d’apprendre des caractéristiques visuelles pertinentes
Le modèle YOLO présente plusieurs caractéristiques uniques qui le distinguent des autres modèles
de détection d’objets. Tout d’abord, sa vitesse de détection en temps réel est exceptionnelle, ce qui en fait
un choix privilégié pour des applications nécessitant une analyse en temps réel, telles que la surveillance
88
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
vidéo et la conduite autonome. De plus, YOLO est capable de détecter de petits objets grâce à son approche
multi-échelle, ce qui est essentiel dans de nombreux scénarios pratiques. Enfin, YOLO est conçu pour être
robuste aux variations d’échelle et de position des objets, ce qui lui permet de s’adapter à différentes scènes
Avantages de YOLO :
— Vitesse de détection en temps réel : YOLO se démarque par sa capacité à effectuer des détections
— Gestion efficace de grands ensembles de données : YOLO est conçu pour traiter efficacement de grandes
quantités de données, ce qui le rend particulièrement adapté aux scénarios où des ensembles de données
— Bon équilibre entre vitesse et précision : YOLO offre un bon compromis entre la vitesse de détection
et la précision des prédictions, ce qui le rend approprié pour une gamme variée d’applications.
Inconvénients de YOLO :
— Précision inférieure pour les petits objets : YOLO peut présenter des difficultés dans la détection
précise des petits objets, ce qui peut être un inconvénient dans certaines applications spécifiques qui
— Sensibilité aux erreurs de localisation : YOLO peut parfois présenter des erreurs de localisation des
boîtes englobantes, ce qui peut avoir un impact sur la précision globale des prédictions.
— Limitations dans la détection d’objets enchevêtrés : En raison de sa grille de cellules, YOLO peut
rencontrer des difficultés à détecter avec précision des objets enchevêtrés ou étroitement espacés.
d’objets grâce à son approche novatrice de détection en une seule passe. Malgré ses inconvénients potentiels,
tels que la précision réduite pour les petits objets, YOLO reste un choix populaire en raison de sa vitesse de
détection en temps réel, de sa gestion efficace de grands ensembles de données et de son bon équilibre entre
vitesse et précision.
Dans cette sous-section, nous nous pencherons sur le modèle SSD (Single Shot MultiBox Detector)
en effectuant une analyse détaillée de ses principes, de son fonctionnement et de ses performances en
matière de détection d’objets. Nous commencerons par présenter le modèle SSD, en mettant en évidence
89
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
ses caractéristiques et son importance dans le domaine de la détection d’objets. Ensuite, nous explorerons
son architecture, en décrivant les différentes étapes et les mécanismes clés qui permettent au modèle SSD
d’effectuer des détections précises. Enfin, nous procéderons à une analyse critique des performances du modèle
SSD, en soulignant ses avantages et ses inconvénients à l’aide d’exemples concrets et de preuves empiriques.
L’architecture du modèle SSD est basée sur un réseau de neurones convolutifs, généralement basé sur
des architectures pré-entrainées telles que VGG ou ResNet. Le modèle SSD se compose de plusieurs couches de
convolutions, de pooling, qui sont utilisées pour extraire des caractéristiques de différentes échelles spatiales
dans l’image. Ces caractéristiques sont ensuite utilisées pour prédire les boîtes englobantes et les classes
d’objets correspondantes.
Le modèle SSD utilise des "feature maps" de différentes résolutions spatiales pour détecter des objets
de tailles variées. Les prédictions de détection sont effectuées à différents niveaux de résolutions spatiales, ce
qui permet au modèle SSD de capturer des objets de différentes tailles. Des ancres (anchors) sont utilisées
pour générer des régions de détection potentielles à partir des "feature maps", et des filtres convolutifs sont
utilisés pour prédire les décalages et les confiances des boîtes englobantes pour chaque ancre.
Le modèle SSD fonctionne en effectuant des prédictions à plusieurs échelles sur les "feature maps"
générées par le réseau de neurones convolutifs. Pour chaque niveau de résolution spatiale, des filtres convolutifs
sont utilisés pour prédire les décalages et les confiances des boîtes englobantes. Ces prédictions sont ensuite
regroupées et filtrées pour supprimer les duplications et les prédictions de faible confiance.
Le modèle SSD utilise également des mécanismes de non-maximum suppression pour éliminer les
détections redondantes et conserver les détections les plus fiables. Ce processus permet de réduire le nombre
Avantages de SSD :
— Bonne précision de détection : Le modèle SSD offre une précision de détection élevée, en particulier
pour les objets de taille moyenne à grande. Il est capable de détecter avec précision différents types
— Adaptabilité à différentes échelles : Le modèle SSD est conçu pour détecter des objets à différentes
échelles grâce à l’utilisation de "feature maps" de différentes résolutions spatiales. Cela lui permet
d’obtenir de bonnes
90
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
— Vitesse de détection raisonnable :Il offre des performances de détection satisfaisantes, notamment grâce
à l’utilisation de "feature maps" de différentes résolutions qui réduisent le nombre de boîtes englobantes
à évaluer.
Inconvénients de SSD :
— Détection moins précise pour les petits objets : Le modèle SSD peut avoir des difficultés à détecter
avec précision les petits objets, en raison de la taille des "feature maps" utilisées pour les prédictions.
Cela peut être un inconvénient dans des scénarios où la détection fine des petits objets est essentielle.
— Sensibilité aux variations d’échelle extrêmes : SSD peut rencontrer des difficultés à détecter des objets
à des échelles extrêmes, telles que de très petits objets ou de très grands objets. Cela peut limiter son
— Besoin d’un grand nombre d’exemples d’entraînement : Comme la plupart des modèles de détection
d’objets, SSD nécessite un grand ensemble de données d’entraînement annotées pour atteindre des
performances optimales. La création de ces ensembles de données peut être coûteuse et nécessite des
ressources importantes.
Le modèle SSD est un modèle de détection d’objets populaire et performant, offrant une bonne
précision de détection pour les objets de taille moyenne à grande. Il se distingue par son adaptabilité à
différentes échelles et sa capacité à détecter des objets de tailles variées. Cependant, il peut rencontrer des
difficultés dans la détection précise des petits objets et peut être sensible aux variations d’échelle extrêmes. La
sélection du modèle SSD dépendra des besoins spécifiques de l’application, en tenant compte de ces avantages
et inconvénients.
Dans cette sous-section, nous allons nous concentrer sur le modèle Faster R-CNN (Faster Region
Convolutional Neural Network) en effectuant une analyse approfondie de ses principes, de son fonctionnement
et de ses performances en matière de détection d’objets. Nous commencerons par présenter le modèle Faster
R-CNN, en mettant en évidence son importance et ses contributions majeures dans le domaine de la détection
d’objets. Ensuite, nous explorerons son architecture, en détaillant les différentes composantes qui le rendent
efficace pour la détection précise des objets. Enfin, nous procéderons à une analyse critique des performances
du modèle Faster R-CNN, en soulignant ses avantages et ses inconvénients à l’aide d’exemples concrets et de
preuves empiriques.
91
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Le modèle Faster R-CNN se compose de deux parties principales : le réseau de convolutions régionales
(Region Proposal Network - RPN) et le réseau de convolutions pour la classification et la localisation des
objets. Le RPN génère des propositions de régions d’intérêt, tandis que le réseau de classification et de
Le RPN est basé sur une architecture de réseau de neurones convolutifs, généralement partagée avec
le réseau de classification et de localisation. Il génère des propositions de régions d’intérêt en analysant des
régions potentielles dans l’image et en les classifiant comme contenant ou ne contenant pas d’objets. Les
régions proposées sont ensuite utilisées pour extraire des caractéristiques et prédire les classes et les positions
des objets.
Le réseau de classification et de localisation utilise les régions proposées par le RPN pour effectuer
une détection précise des objets dans chaque région. Il utilise des couches de convolutions et de pooling pour
extraire des caractéristiques des régions d’intérêt, puis applique des couches entièrement connectées pour
Le modèle Faster R-CNN fonctionne en effectuant des détections en deux étapes. Tout d’abord,
le RPN génère des propositions de régions d’intérêt en évaluant des régions potentielles dans l’image. Ces
propositions sont filtrées et classifiées comme contenant ou ne contenant pas d’objets. Ensuite, les régions
proposées sont utilisées par le réseau de classification et de localisation pour détecter et classifier les objets
Le modèle Faster R-CNN utilise des mécanismes de non-maximum suppression pour éliminer les
détections redondantes et conserver les détections les plus fiables. Cela permet de réduire le nombre de
— Haute précision de détection : Le modèle Faster R-CNN offre une haute précision de détection grâce
régions à évaluer.
— Flexibilité pour détecter des objets de différentes tailles : Le modèle Faster R-CNN est capable de
détecter des objets de différentes tailles grâce à l’utilisation de régions de proposition et à l’extraction
92
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
— Bonne localisation des objets : Le modèle Faster R-CNN a une bonne capacité à localiser précisément
les objets dans l’image, ce qui est essentiel pour de nombreuses applications pratiques.
— Temps de traitement plus long : En raison de sa conception en deux étapes, le modèle Faster R-CNN
nécessite plus de temps de traitement par rapport à certains modèles plus rapides tels que YOLO.
— Dépendance aux régions de proposition : La performance du modèle Faster R-CNN dépend fortement
de la qualité des régions de proposition générées par le RPN. Si les propositions sont de mauvaise
— Besoin de ressources de calcul élevées : En raison de sa complexité, le modèle Faster R-CNN nécessite
des ressources de calcul élevées, ce qui peut être un défi dans des environnements avec des contraintes
de puissance ou de mémoire.
Avant de choisir un modèle de détection d’objets pour notre projet, nous avons dû évaluer chaque
option en fonction de divers critères pertinents. Ces critères comprennent non seulement la précision et
la vitesse de détection, mais aussi la capacité de détecter des objets de différentes tailles, la flexibilité et
la capacité d’être adapté à des cas d’utilisation spécifiques. Pour cela, nous avons utilisé une méthode de
notation pondérée, qui nous a permis de quantifier les avantages et les inconvénients de chaque modèle.
Critères d’évaluation
1. Vitesse de détection : Étant donné que notre application nécessite une détection en temps réel,
la vitesse à laquelle le modèle peut identifier et classer les objets est cruciale.
2. Précision de détection : La précision est également un facteur déterminant, car elle affecte
3. Détection de petits objets : Certains objets peuvent être relativement petits dans les images
et les modèles de détection d’objets ont tendance à avoir du mal à les détecter. Nous avons donc également
4. Adaptabilité : Notre projet implique la détection de divers types d’objets. Par conséquent, le
modèle choisi doit être capable d’être formé et adapté pour reconnaître divers objets.
support communautaire important sont préférés, car ils ont tendance à recevoir des mises à jour régulières
93
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Ces critères sont pondérés en fonction de leur importance pour notre projet. Par exemple, comme
notre application nécessite une détection en temps réel, la vitesse de détection a une pondération plus élevée
Nous avons évalué trois des principaux modèles de détection d’objets : YOLO (You Only Look Once),
SSD (Single Shot MultiBox Detector) et Faster R-CNN (Region Convolutional Neural Networks), selon les
YOLO : YOLO excelle en termes de vitesse de détection, car il analyse les images en une seule passe, ce
qui est idéal pour notre application en temps réel. Cependant, sa précision est légèrement inférieure à celle des
deux autres modèles. En ce qui concerne la détection de petits objets, YOLO peut avoir des difficultés, mais
les versions récentes ont apporté des améliorations significatives à cet égard. En termes d’adaptabilité, YOLO
est assez flexible et peut être formé pour détecter divers objets. De plus, YOLO bénéficie d’un développement
SSD : SSD
est un compromis entre YOLO et Faster R-CNN. Il offre une vitesse de détection plus rapide que
Faster R-CNN mais plus lente que YOLO. Sa précision est comparable à celle de Faster R-CNN et il est
meilleur que YOLO pour détecter de petits objets. Cependant, il est moins flexible que YOLO en termes
d’adaptabilité.
Faster R-CNN : Faster R-CNN offre la meilleure précision parmi les trois modèles, ce qui est son
principal avantage. Cependant, sa vitesse de détection est la plus lente. Il est également le meilleur pour
détecter de petits objets. En termes d’adaptabilité, Faster R-CNN est moins flexible que YOLO. Enfin, il
bénéficie d’un support communautaire solide, mais son développement est plus lent que celui de YOLO.
Critères de comparaison
Pour bien évaluer chaque modèle et choisir celui qui serait le mieux adapté à notre projet, nous avons
défini cinq critères principaux sur lesquels baser notre évaluation : la vitesse de détection, la précision de
Vitesse de détection (40%) : Dans notre cas, la vitesse à laquelle un modèle peut identifier et classer
les objets dans une image est cruciale. Comme notre projet implique une détection d’objets en temps réel,
il est important que le modèle soit capable de traiter les images rapidement et efficacement. Pour ce critère,
nous avons accordé une pondération de 40%, soulignant son importance pour notre projet.
Précision de détection (30%) : Bien que la vitesse soit un facteur critique, elle ne doit pas compromettre
94
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
la précision de la détection. Nous avons besoin d’un modèle qui peut non seulement identifier les objets
rapidement, mais aussi avec une grande précision. Ce critère a donc été pondéré à 30%.
Détection de petits objets (10%) : La détection de petits objets peut être un défi pour certains modèles
en raison de la faible résolution et du manque de détails. Cependant, notre projet nécessite la capacité de
détecter avec précision des objets de toutes tailles. Par conséquent, ce critère a été attribué une pondération
de 10%.
Adaptabilité (10%) : Nous avons besoin d’un modèle qui peut être formé sur de grands ensembles de
données avec une variété d’objets. De plus, la flexibilité pour adapter le modèle à différents cas d’utilisation
est également un avantage majeur pour notre projet. Par conséquent, nous avons accordé une pondération
de 10% à ce critère.
support communautaire sont importants pour assurer que le modèle reste à jour avec les dernières avancées
et améliorations. Par conséquent, nous avons attribué une pondération de 10% à ce critère.
Choix du modèle
YOLO a obtenu le score total le plus élevé, ce qui le rend le choix le plus approprié pour notre
projet. Ses forces résident dans sa vitesse de détection élevée, sa bonne adaptabilité et le soutien actif de la
communauté, ce qui est essentiel pour une application en temps réel comme la nôtre.
Néanmoins, il est important de souligner que le choix du modèle dépend grandement du contexte
d’application et des exigences spécifiques du projet. Bien que YOLO soit le plus approprié pour notre
cas d’utilisation, si la précision de détection était le facteur le plus important, alors Faster R-CNN serait
95
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
probablement le choix idéal. De plus, si la détection de petits objets était une priorité, SSD ou Faster R-CNN
En conclusion, nous avons choisi d’utiliser YOLO comme modèle de détection d’objets pour notre
système en raison de sa vitesse de détection, de son adaptabilité et de son développement communautaire actif.
Cependant, cette décision est basée sur une analyse détaillée des critères qui sont spécifiquement importants
YOLOv1, également connu sous le nom de YOLO (You Only Look Once), a été introduit par Joseph
Redmon, Santosh Divvala, Ross Girshick et Ali Farhadi dans un document de 2015. C’était la première
version du modèle YOLO, et elle a introduit de nombreuses innovations qui ont défini les versions ultérieures.
L’une des caractéristiques distinctives de YOLO est son approche unifiée de la détection d’objets.
Alors que d’autres modèles de détection d’objets effectuaient la localisation et la classification des objets en
De plus, YOLO a introduit une nouvelle métrique, le taux de précision global, qui prend en compte
Cette métrique a permis d’obtenir une mesure plus précise de la performance de la détection d’objets, qui
L’une des innovations clés de YOLO est l’introduction du concept de grille. Au lieu de rechercher
des objets dans toute l’image, YOLO divise l’image en une grille de taille SS. Chaque cellule de la grille est
Cette approche permet de réduire considérablement le nombre de prédictions à effectuer, car chaque
cellule ne prédit qu’un seul objet. De plus, en associant chaque objet à une cellule spécifique, YOLO peut
Chaque cellule de la grille prédit également B bounding boxes pour l’objet qu’elle détecte. Chaque
bounding box est décrite par 5 valeurs : (x, y, w, h, confidence). Les coordonnées (x, y) représentent le centre
96
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
de la bounding box relative à la cellule, tandis que (w, h) représentent la largeur et la hauteur de la bounding
box relative à l’image entière. La valeur de confidence représente la probabilité que la bounding box contienne
YOLO utilise également une approche multi-échelle pour la détection d’objets, en utilisant des
bounding boxes de différentes tailles pour détecter des objets de différentes tailles.
Dans la prochaine sous-section, nous discuterons de la prédiction des classes dans YOLOv1 et de la
En plus de prédire les bounding boxes, chaque cellule de la grille YOLO prédit également les
probabilités de classe pour l’objet détecté. Pour cela, elle utilise un vecteur de probabilités de classe C-dimensionnel,
où C est le nombre total de classes. La probabilité de chaque classe est indépendante des autres, ce qui signifie
que chaque cellule peut prédire la présence de chaque classe indépendamment des autres.
Il est important de noter que dans YOLOv1, la probabilité de classe est prédite pour chaque cellule
plutôt que pour chaque bounding box. Cela signifie que toutes les bounding boxes prédites par une cellule
donnée partageront les mêmes probabilités de classe. Cette approche est plus simple et plus rapide que de
prédire les probabilités de classe pour chaque bounding box, mais elle peut être moins précise si plusieurs
La fonction de coût utilisée pour former YOLOv1 est une combinaison de plusieurs termes. Il
comprend des termes pour l’erreur de localisation (la différence entre la bounding box prédite et la véritable
bounding box), l’erreur de classification (la différence entre les probabilités de classe prédites et les véritables
probabilités de classe) et l’erreur de confiance (la différence entre la confiance prédite et la véritable confiance).
La fonction de coût donne plus de poids à l’erreur de localisation qu’à l’erreur de classification, ce qui
reflète l’importance de la localisation précise des objets dans la détection d’objets. De plus, elle donne plus de
poids à l’erreur de confiance pour les bounding boxes qui contiennent réellement un objet, pour encourager
Un autre aspect important de la fonction de coût de YOLOv1 est qu’elle utilise le carré des erreurs
plutôt que les erreurs absolues. Cela signifie qu’elle punit plus sévèrement les grandes erreurs que les petites
Dans la prochaine section, nous explorerons les améliorations apportées à YOLO dans sa deuxième
97
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
YOLOv2, également connu sous le nom de YOLO9000, a apporté un certain nombre d’améliorations
significatives par rapport à la version originale. Ces améliorations comprennent l’introduction de anchor
boxes, l’entraînement multi-échelle, la possibilité de détecter plus de 9000 classes, et l’utilisation d’un réseau
L’une des principales améliorations de YOLOv2 est l’introduction de anchor boxes. Dans YOLOv1,
chaque cellule de la grille ne pouvait prédire qu’un seul objet. Avec l’introduction des anchor boxes, chaque
cellule peut maintenant prédire plusieurs objets, ce qui permet à YOLOv2 de détecter plus d’objets dans une
image.
Chaque anchor box est associée à un ratio hauteur/largeur spécifique. Lors de la prédiction, la cellule
ajuste la taille et le ratio de ces anchor boxes pour mieux correspondre à l’objet détecté. Cela permet à
YOLOv2 de gérer une plus grande variété de formes d’objets et d’améliorer sa précision de détection.
YOLOv2 utilise également un réseau de convolution plus puissant, Darknet-19. Darknet-19 est un
réseau de 19 couches de convolution suivies par 5 couches entièrement connectées. Il a été spécifiquement
conçu pour être rapide et efficace, tout en offrant une bonne précision de classification. Grâce à Darknet-19,
YOLOv2 a pu obtenir de meilleures performances tout en conservant une vitesse de détection rapide.
Une autre amélioration clé de YOLOv2 est l’introduction de l’entraînement multi-échelle. Dans
YOLOv1, le modèle est formé et testé à une seule échelle. Cela signifie qu’il peut ne pas être capable de
détecter correctement les objets qui apparaissent à des échelles différentes dans l’image.
l’échelle de l’image est modifiée à chaque itération, ce qui permet au modèle d’apprendre à détecter les
objets à différentes échelles. Cela améliore la capacité du modèle à détecter les petits objets et les objets qui
98
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Enfin, YOLOv2 a introduit la capacité de détecter plus de 9000 classes. Pour ce faire, il utilise une
de détection d’objets.
La formation sur ces deux types de données permet à YOLOv2 de généraliser à un plus grand nombre
de classes et de reconnaître une plus grande variété d’objets. C’est pourquoi YOLOv2 est également connu
Dans la prochaine section, nous allons explorer la troisième version de YOLO, YOLOv3, qui a apporté
YOLOv3, la troisième version du modèle YOLO, est une évolution de YOLOv2 qui apporte une série
d’améliorations et de nouvelles fonctionnalités. Il conserve l’essence de YOLO qui est une détection d’objets
rapide et précise, tout en introduisant de nouvelles fonctionnalités telles que la prédiction multi-échelle et
YOLOv3 continue d’utiliser le concept des anchor boxes, mais au lieu d’utiliser seulement 5 comme
dans YOLOv2, il utilise maintenant trois échelles différentes avec trois anchor boxes pour chaque échelle.
Il utilise également un réseau de neurones convolutionnels plus profond basé sur Darknet-53, qui
comprend 53 couches de convolution. Darknet-53 combine les avantages de Darknet-19 et ceux d’un autre
réseau de convolution très performant, ResNet, pour créer un modèle de détection d’objets plus puissant et
plus précis.
YOLOv3 a introduit une amélioration importante par rapport à ses prédécesseurs : la prédiction
multi-échelle. Alors que YOLOv1 et YOLOv2 effectuaient leurs prédictions uniquement à partir de la dernière
couche de leur réseau, YOLOv3 effectue des prédictions à trois échelles différentes.
Il fait cela en prenant des fonctionnalités de trois couches différentes dans le réseau et en effectuant
des prédictions à partir de chacune. Cela permet à YOLOv3 de détecter des objets de tailles variées avec plus
99
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
de précision, car il peut utiliser les caractéristiques les plus pertinentes à chaque échelle.
Une autre amélioration significative apportée par YOLOv3 est la manière dont il gère la prédiction
des classes. Au lieu d’utiliser une fonction softmax pour prédire la classe d’un objet comme dans YOLOv1
et YOLOv2, YOLOv3 utilise une fonction sigmoïde indépendante pour chaque classe.
Cela signifie que la prédiction de la classe d’un objet ne dépend plus des autres classes, ce qui permet
à YOLOv3 de prédire plusieurs classes pour un seul objet si nécessaire. Cela améliore la précision du modèle
lors de la détection d’objets qui peuvent être classés dans plusieurs catégories.
Dans la prochaine section, nous allons explorer la quatrième et dernière version de YOLO (jusqu’à
mon point de connaissance jusqu’en septembre 2021), YOLOv4, qui apporte encore plus d’améliorations en
La quatrième version de YOLO, YOLOv4, est une amélioration majeure par rapport aux versions
précédentes en termes de vitesse et de précision. YOLOv4 a été conçu pour être extrêmement rapide tout
en conservant une excellente précision, ce qui en fait une excellente option pour les applications de détection
YOLOv4 utilise une nouvelle architecture backbone appelée CSPDarknet53. Cette architecture est
basée sur Darknet53, qui est utilisé dans YOLOv3, mais il introduit une nouvelle technique appelée Cross
Stage Partial Networks (CSPNet). Le CSPNet divise le réseau en plusieurs sous-réseaux qui peuvent apprendre
les caractéristiques des données indépendamment, ce qui améliore l’efficacité et la performance de l’apprentissage.
CSPDarknet53 est une combinaison de CSPNet et Darknet53, et il fournit à YOLOv4 une excellente
Pour améliorer la précision de la détection, YOLOv4 introduit également deux nouvelles techniques :
Le Path Aggregation Network (PANet) est une technique qui permet de fusionner les caractéristiques
de différentes échelles de l’image. Cela permet à YOLOv4 de faire des prédictions précises sur des objets de
100
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
tailles différentes, car il peut utiliser les caractéristiques pertinentes à chaque échelle.
Le SAM block (Spatial Attention Module) est une autre technique introduite par YOLOv4 pour
améliorer la précision. Il s’agit d’un module d’attention spatiale qui aide le réseau à se concentrer sur les
zones importantes de l’image lors de l’extraction des caractéristiques. Cela permet au réseau d’extraire des
YOLOv4 introduit également la fonction d’activation Mish et la fonction de perte CIOU pour
La fonction d’activation Mish est une nouvelle fonction d’activation qui a été trouvée pour améliorer
les performances du réseau de neurones par rapport aux fonctions d’activation traditionnelles comme ReLU.
Elle est définie comme mish(x) = x * tanh(softplus(x)), où softplus(x) est une version lissée de la fonction
ReLU.
La fonction de perte CIOU (Complete Intersection over Union) est une amélioration de la fonction de
perte IOU traditionnelle utilisée pour mesurer la différence entre les bounding boxes prédites et les véritables
bounding boxes. La fonction de perte CIOU prend en compte non seulement l’IOU, mais aussi la distance
entre les centres des bounding boxes et l’aspect ratio, ce qui donne une mesure de la perte plus complète et
précise.
Ces innovations ont permis à YOLOv4 d’atteindre une vitesse de détection d’objets extrêmement
rapide tout en conservant une excellente précision, ce qui en fait une excellente option pour la détection
d’objets en temps réel. Dans la prochaine section, nous examinerons plus en détail comment utiliser YOLO
Comme mentionné précédemment, YOLOv5 est une version non officielle de la série YOLO. Son but
est de faciliter l’utilisation de YOLO pour la détection d’objets en simplifiant le code et en le rendant plus
personnalisable. Les chercheurs à l’origine de YOLOv5 ont pris les bases solides de YOLOv4 et ont cherché
Pour y parvenir, ils ont simplifié le code et rendu le modèle plus facile à personnaliser. Cela signifie
que les utilisateurs peuvent plus facilement modifier le modèle en fonction de leurs besoins spécifiques. Cela
101
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
pourrait inclure l’ajustement de la taille de l’image d’entrée, le nombre de classes que le modèle doit détecter,
YOLOv5 comprend également une gamme de scripts utiles pour l’entraînement, les tests et le déploiement
du modèle. Par exemple, il y a des scripts pour entraîner le modèle sur des ensembles de données personnalisés,
pour évaluer les performances du modèle, et même pour exécuter le modèle sur des images, des vidéos ou
des flux de webcam en temps réel. Ces scripts facilitent grandement l’utilisation de YOLO pour la détection
YOLOv5 introduit également plusieurs améliorations de l’architecture pour améliorer les performances
du modèle. Il utilise une nouvelle architecture de réseau de neurones appelée PANet pour la prédiction des
bounding boxes. PANet, qui signifie Path Aggregation Network, est une architecture qui vise à améliorer la
précision de la détection en améliorant le flux d’informations entre les couches du réseau. En pratique, cela
signifie que PANet aide le réseau à mieux comprendre les relations spatiales entre les objets, ce qui peut aider
YOLOv5 utilise également une version améliorée de la fonction de perte de YOLOv4. Cette fonction
de perte améliorée, appelée CIOU Loss, est conçue pour mieux gérer les problèmes courants en détection
d’objets, tels que les chevauchements de boîtes englobantes. En utilisant CIOU Loss, YOLOv5 peut entraîner
YOLOv5 offre un choix de plusieurs modèles qui varient en taille et en précision. Ces différentes
versions sont conçues pour répondre à différents besoins, en fonction de l’équilibre souhaité entre vitesse et
précision.
YOLOv5s est le plus petit et le plus rapide des modèles, ce qui le rend idéal pour les applications
où la vitesse est plus importante que la précision. YOLOv5x est à l’autre extrémité du spectre. C’est le plus
grand et le plus précis des modèles, ce qui le rend adapté aux applications où la précision est la priorité.
YOLOv5m et YOLOv5l sont des options intermédiaires qui offrent un bon équilibre entre vitesse et précision.
Le temps de traitement se réfère au temps nécessaire pour que le modèle passe d’une image d’entrée
à une prédiction d’objet. Il est mesuré en millisecondes par image. Plus ce temps est bas, plus le modèle est
rapide pour faire des prédictions. Ce temps peut varier en fonction de nombreux facteurs, notamment la taille
de l’image d’entrée, la complexité de l’image, et la configuration du matériel sur lequel le modèle est exécuté.
102
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Figure 3.2 : Différence entre les modèles YOLOv5 : YOLOv5s, YOLOv5m, YOLOv5l,
YOLOv5x
L’inspection des infrastructures est une activité cruciale dans de nombreux domaines industriels,
notamment dans le secteur des télécommunications. Parmi ces infrastructures, les pylônes jouent un rôle
Néanmoins, l’inspection de ces structures peut être une tâche ardue en raison de leur hauteur et de leur
accessibilité souvent limitée. C’est là qu’interviennent les drones, apportant une solution efficace et moins
dangereuse pour réaliser ces inspections. Cependant, l’analyse manuelle des images capturées par les drones
Dans ce contexte, nous avons développé un système basé sur l’intelligence artificielle (IA) pour
l’inspection des pylônes par drone. Ce système utilise un modèle d’apprentissage profond pour détecter
automatiquement les anomalies dans les images des pylônes capturées par les drones. De plus, le système est
d’objets basé sur l’apprentissage profond, capable d’identifier automatiquement les anomalies des pylônes
Dans cette partie, nous présentons notre approche pour collecter et préparer les données, labelliser
les images, entraîner le modèle de détection d’objets et évaluer ses performances. Nous discuterons également
de la manière dont nous avons déployé ce modèle pour l’inspection des pylônes par drone.
La préparation des données est une étape cruciale dans tout projet d’apprentissage automatique.
Elle implique la collecte, le nettoyage, l’organisation et la transformation des données brutes en un format
103
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
La base de données de SOTETEL a été la source primaire pour notre projet. Elle contient un vaste
ensemble d’images de pylônes et d’équipements associés, ce qui nous a permis d’avoir une quantité significative
Une fois les images récupérées, un processus de filtrage a été appliqué. Cette étape est cruciale
pour assurer la qualité des données d’entraînement. En effet, la performance de tout modèle d’apprentissage
automatique dépend largement de la qualité des données sur lesquelles il est entraîné. Nous avons éliminé
toutes les images qui étaient de mauvaise qualité, floues, mal éclairées, ou qui ne montraient pas clairement
les objets (pylônes ou équipements). De plus, nous avons également écarté les images non pertinentes qui ne
Les images restantes ont ensuite été organisées de manière systématique. Cette organisation est basée
sur des caractéristiques pertinentes telles que le type de pylône, le type d’équipement, etc. Cette étape a
permis de faciliter l’accès et la manipulation des images lors des phases ultérieures du projet, comme la
Figure 3.4 : Classification organisée des images pour une détection précise des objets cibles
104
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Figure 3.5 : Organisation des images pour une détection des antennes
3.3.1.2 Extraction d’images à partir d’un site web par Web Scraping
L’extraction d’images à partir de sites web, connue sous le nom de "web scraping", est une méthode
efficace pour collecter des données visuelles à utiliser dans des projets d’apprentissage automatique. Pour
notre projet, nous avons utilisé le langage de programmation Python et des bibliothèques spécifiques de
La bibliothèque Python BeautifulSoup est utilisée pour extraire des données de fichiers HTML et
XML. Elle crée un arbre de parsement depuis la page web qui peut être utilisé pour extraire des données de
De son côté, Selenium est un outil de test pour les applications web qui permet d’automatiser les
actions du navigateur, comme aller sur une page web ou cliquer sur un lien. Dans notre cas, Selenium a été
utilisé pour récupérer le code source HTML de la page de recherche d’images de Google.
105
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Ce code permet d’extraire toutes les images d’une page web, de les sauvegarder localement avec un
nom de fichier unique, et d’assurer une gestion appropriée des erreurs HTTP lors du téléchargement des
images.
En combinant les forces de BeautifulSoup et Sélénium, nous avons été en mesure d’automatiser
Pour une précision optimale et pour obtenir des données plus conformes à la réalité, nous avons décidé
d’effectuer des visites sur site afin de collecter des images des pylônes et de leurs équipements. Cela s’est avéré
particulièrement nécessaire pour obtenir des images de haute qualité qui reflètent fidèlement les conditions
Ces déplacements sur site n’ont pas été sans défis. Nous avons dû escalader des murs et des structures
pour atteindre les mâts sur les bâtiments, ce qui a comporté un certain niveau de risque. En outre, nous
avons dû composer avec des conditions météorologiques variables, notamment des vents forts qui rendaient
Cependant, malgré ces défis, ces visites sur site ont été extrêmement bénéfiques pour notre projet.
Elles nous ont permis de capturer des images à partir de différents angles et altitudes, ce qui a ajouté une
précieuse diversité à notre ensemble de données. De plus, ces images prises de près ont aidé à enrichir notre
ensemble de données avec des détails plus fins des pylônes et de leurs équipements, ce qui est essentiel pour
En somme, malgré les difficultés rencontrées, l’effort supplémentaire consacré à la collecte d’images
sur site a amélioré la qualité de nos données, et par conséquent, la performance de notre modèle de détection
106
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
d’objets. Nous avons pu recueillir un ensemble de données plus riche et plus diversifié, ce qui nous a mis
sur la voie d’un modèle plus précis et plus robuste Une fois les données collectées, nous avons procédé à un
processus de nettoyage et d’organisation. Cela a impliqué l’élimination de toute image de mauvaise qualité
ou non pertinente, ainsi que l’organisation des images restantes dans des dossiers appropriés en fonction de
leurs caractéristiques. Ce processus est essentiel pour garantir que notre modèle est formé sur des données de
qualité et pertinentes.
Après cette phase de préparation des données, nous avons procédé à la labellisation des images, une
La labellisation des données est une étape critique dans tout projet de détection d’objets. Elle consiste
à attribuer des "étiquettes" ou des "labels" aux objets d’intérêt dans chaque image. Ces labels fournissent
les informations nécessaires à notre modèle d’apprentissage profond pour apprendre à détecter et à identifier
Pour notre projet, la labellisation des données a été réalisée en deux étapes :
Le processus d’annotation nécessitait un logiciel d’annotation adapté. La sélection de cet outil s’est
fondée sur divers critères essentiels, tels que le coût, la compatibilité de la plateforme, la simplicité d’utilisation
et la présence de fonctionnalités supplémentaires. Après avoir considéré plusieurs alternatives, dont RectLabel,
VIA, Labelbox, OpenCV, Labelme et CVAT, l’outil LabelImg a été choisi pour cette tâche.
LabelImg
LabelImg est un outil graphique d’annotation d’images qui se distingue par son caractère open
source. Il est particulièrement accessible et propose un large éventail de fonctionnalités. Il fonctionne sur
divers systèmes d’exploitation, y compris Windows, MacOS et Linux, et prend en charge plusieurs formats
Pour l’installation de LabelImg, il était nécessaire de s’assurer que Python 3 était déjà présent sur le
système. Les dépendances requises ont ensuite été installées, puis le code source de LabelImg a été téléchargé
L’utilisation de LabelImg s’est avérée intuitive. Il offre la possibilité de dessiner facilement des boîtes
englobantes autour des objets d’intérêt dans chaque image et d’attribuer une étiquette à chaque boîte. Il
propose des raccourcis clavier personnalisables pour accélérer le processus d’annotation, en plus de gérer
107
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Figure 3.8 : Labelisation manuelle avec LabelImg : Exemple d’étiquetage d’une image
efficacement des images de grande taille. Il autorise le zoom et le défilement d’images pour une annotation
Après avoir terminé le processus de labellisation des données, nous avons pu passer à l’étape suivante :
La simplicité et la flexibilité de LabelImg ont été déterminantes dans son choix. Il fournit toutes les
fonctionnalités requises pour ce projet, tout en étant simple d’utilisation et facile à configurer.
Après l’annotation manuelle des images à l’aide de LabelImg, un fichier texte d’annotation a été
généré pour chaque image annotée. Chaque ligne de ce fichier représente une boîte englobante dans l’image
correspondante.
Le nombre de la classe de l’objet encapsulé par la boîte englobante. Cela peut être le type d’équipement
de pylône identifié. Les coordonnées de la boîte englobante. Ces coordonnées représentent les coordonnées du
centre, la largeur et la hauteur de la boîte englobante, qui définissent la position et la taille de l’objet dans
l’image.
Ces fichiers d’annotation sont essentiels pour l’entraînement des modèles de détection d’objets, car ils
fournissent l’emplacement exact des objets dans les images, ainsi que leurs classes respectives. Cela permet
En somme, la phase de labellisation a permis de préparer de manière efficace et précise les données
108
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
nécessaires à l’entraînement des modèles de détection d’objets. La génération de fichiers d’annotation appropriés
a permis de garantir que les informations nécessaires étaient disponibles pour que le modèle d’apprentissage
machines sont utilisées pour identifier et marquer les objets dans une image ou un jeu de données. Par
rapport à la labellisation manuelle, cette méthode peut économiser beaucoup de temps et d’efforts, surtout
quand on travaille avec des jeux de données volumineux. De plus, elle peut aussi réduire les erreurs et les
Dans le cadre de la labellisation automatique pour ce projet, un modèle de deep learning, spécifiquement
YOLOv5s, a été entraîné sur les données annotées manuellement. Le choix de YOLOv5s se justifie par sa
rapidité et son efficacité pour la détection d’objets, caractéristiques qui le rendent particulièrement approprié
pour des applications nécessitant une labellisation d’images à grande échelle. L’entraînement de YOLOv5s sur
les données manuellement annotées vise à former le modèle pour reconnaître et annoter automatiquement les
109
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
objets d’intérêt dans les images. Ce processus de labellisation automatique peut considérablement accélérer le
processus d’annotation, surtout lorsqu’il est question de traiter de grands volumes de données. De plus, il peut
réduire les erreurs et les incohérences introduites par l’intervention humaine, améliorant ainsi la précision et
Il est cependant important de souligner que malgré les avantages de la labellisation automatique,
cette méthode peut comporter ses propres erreurs. Par exemple, le modèle entraîné pourrait ne pas être en
mesure de reconnaître correctement les objets inconnus ou rarement vus dans les données d’entraînement. Par
conséquent, une certaine vérification et correction manuelle peuvent être nécessaires pour garantir l’exactitude
La première étape du processus de labellisation automatique a consisté à organiser les images et leurs
Cette structure est destinée à séparer les images et les annotations en deux ensembles distincts :
un ensemble d’entraînement (train) et un ensemble de validation (valid). Cette séparation est cruciale pour
l’entraînement du modèle, permettant de valider la performance du modèle sur des données non vues lors de
l’entraînement.
Pour le projet en question, l’ensemble des images a été réparti en suivant la règle courante de 80%
des images pour l’entraînement et 20% pour la validation. Pour la classe "rouille", cela s’est traduit par 357
images pour l’entraînement (soit 85%) et 65 images pour la validation (soit 15%).
Pour la classe "Antenne", sur un total de 840 images, la règle de 80/20 a été appliquée, ce qui a donné
672 images pour l’entraînement et 168 images pour la validation. Ce type de répartition assure une quantité
suffisante de données pour l’entraînement du modèle tout en réservant un ensemble de données suffisamment
d’un fichier YAML. Ce fichier, nommé dataset.yaml, sert de guide au modèle pour localiser les données
110
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Figure 3.11 : Une structure en arborescence pour une gestion optimale des annotations et des
images
— path : fait référence au chemin du répertoire contenant les données, qui comprend les sous-répertoires
’images’ et ’labels’.
— nc : le nombre de classes uniques présentes dans le dataset. Cela doit correspondre au nombre réel de
— names : une liste contenant les noms des classes. Ces noms doivent correspondre exactement aux
111
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Figure 3.12 : Séparation des images et des annotations pour la classe "Antenne"
Cette configuration YAML fournit au modèle YOLOv5s les informations nécessaires pour localiser et
La prochaine étape consiste à choisir une configuration pour le modèle. YOLOv5 propose plusieurs
configurations de modèles pré-entraînés, chacune optimisée pour un équilibre spécifique entre vitesse d’inférence
et précision.
Ces configurations sont disponibles sous forme de fichiers YAML dans le répertoire models de YOLOv5.
Chaque fichier de configuration décrit la structure d’un modèle spécifique. Les configurations disponibles
(extra-large).
Pour ce projet, la configuration yolov5s.yaml a été choisie. Ce choix a été motivé par le fait que
yolov5s est le plus petit et le plus rapide des modèles disponibles, ce qui convient aux contraintes de
performance du projet.
La configuration du modèle peut être ajustée en modifiant le fichier YAML correspondant. Par
112
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
exemple, le nombre de classes du modèle (nc) peut être modifié pour correspondre au nombre de classes
du dataset.
La configuration d’un modèle YOLOv5 se fait à l’aide d’un fichier YAML qui décrit les paramètres
et la structure du modèle. La configuration standard pour le modèle "small" de YOLOv5 (yolov5s) a été
Paramètres :
— nc : Ce paramètre définit le nombre de classes que le modèle est configuré pour prédire. Pour ce projet,
— anchors : Ce paramètre représente les dimensions prédéfinies des boîtes englobantes prédites par le
modèle. Ces ancres sont définies à trois échelles différentes correspondant à trois niveaux différents du
réseau de neurones.
Backbone :
Le backbone d’un modèle fait référence à la partie initiale du réseau neuronal qui est responsable de
l’extraction des caractéristiques de base de l’image en entrée. Il s’agit généralement d’une série de couches
empilées qui effectuent des opérations de convolution et de mise en commun pour capturer les motifs et les
Dans le contexte du modèle YOLOv5, le backbone est composé de plusieurs couches qui se succèdent
pour extraire progressivement des caractéristiques de plus en plus abstraites de l’image. Les paramètres du
113
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Voici une explication détaillée des paramètres du backbone dans le contexte de YOLOv5 :
(from) : Ce paramètre indique à chaque couche du backbone quelle couche ou quel ensemble de couches
lui fournit ses entrées. Il est généralement exprimé sous la forme d’un numéro d’indice ou d’un nom
— Nombre de répétitions (number) : Ce paramètre spécifie le nombre de fois que la couche est répétée
dans le backbone. Par exemple, si le nombre est 3, cela signifie que la même couche est empilée trois
fois de suite.
— Type de couche (module) : Les types de couches, ou modules, utilisés dans le backbone d’un réseau
— Arguments spécifiques (args) : Les arguments spécifiques (args) sont les paramètres propres à chaque
type de couche ou module utilisé dans le backbone d’un réseau neuronal. Ces arguments sont utilisés
pour configurer et contrôler le comportement de chaque couche. Les valeurs des arguments peuvent
neurones pour répondre aux besoins spécifiques de la tâche à accomplir, en tenant compte de la complexité
précision du modèle.
Head :
La tête du réseau, en tandem avec le backbone, est chargée de prédire les boîtes englobantes et les
classes. Elle utilise les caractéristiques extraites par le backbone pour produire les prédictions finales. Tout
comme dans le backbone, chaque couche de la tête est définie par des paramètres similaires.
La configuration du modèle doit être adaptée à la tâche spécifique d’apprentissage. Par conséquent,
certains de ces paramètres peuvent être modifiés pour optimiser les performances du modèle. Cependant, cette
Anchors :
Dans le cadre de l’ajustement du modèle YOLOv5, un aspect crucial à considérer est le paramètre des
"anchors". Les "anchors" peuvent être définis comme des boîtes englobantes prédéterminées, utilisées comme
références initiales lors du processus de détection d’objets dans YOLO. Ces boîtes, avec leurs proportions et
tailles définies, servent à couvrir un éventail de formes et de dimensions typiques des objets à détecter. Le
114
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
modèle, durant son entraînement, est alors entraîné à ajuster ces boîtes "anchors" afin qu’elles se superposent
Dans la configuration de yolov5s.yaml, trois groupes d’anchors sont définis, qui correspondent à
trois différentes échelles d’objets que le modèle est capable de détecter. Chaque groupe est utilisé pour un
la détection d’objets de tailles variées. Par exemple, le premier groupe d’anchors [10,13, 16,30, 33,23]
est utilisé pour la détection de petits objets, tandis que le dernier groupe [116,90, 156,198, 373,326] est réservé
Il est important de noter que ces valeurs d’anchors ne sont pas fixes et peuvent être modifiées pour
s’adapter aux spécificités du projet en cours. Ainsi, si les objets d’intérêt présentent des tailles et des formes
significativement différentes de celles représentées par les anchors par défaut, un réajustement de ces valeurs
peut être bénéfique pour améliorer la précision du modèle sur les données spécifiques.
Dans notre processus d’adaptation du modèle YOLOv5, l’ajustement des ancres - qui sont des boîtes
englobantes prédéfinies utilisées pour détecter les objets de différentes tailles - a été primordial. Ces ancres ont
été spécifiquement adaptées pour correspondre aux caractéristiques uniques des objets présents dans notre
jeu de données. Notre objectif était d’optimiser ces ancres afin de maximiser leur efficacité dans la détection
La procédure pour calculer les ancres optimisées était une démarche en plusieurs phases :
— Conversion des annotations YOLO en fichiers CSV : Grâce à un script Python développé sur mesure,
nous avons converti nos annotations YOLO en fichiers CSV. Le script extrait les coordonnées relatives
des boîtes englobantes à partir des annotations et les sauvegarde dans un fichier CSV distinct. Ces
115
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Figure 3.16 : Conversion d’annotations YOLO en fichier CSV avec un script Python
Figure 3.17 : Extraction réussie des annotations YOLO vers un fichier CSV
— Utilisation de l’algorithme de clustering K-means : Nous avons mis en œuvre l’algorithme de regroupement
K-means pour déterminer les ancres optimales. K-means est un algorithme qui regroupe les données
en k clusters en fonction de leur similarité. Dans notre cas, les points de données sont les dimensions
116
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
— 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
— 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. Le modèle a été formé sur les dimensions des boîtes englobantes,
— Évaluation de la qualité des ancres : Pour évaluer la qualité des ancres générées, nous avons calculé
l’IOU moyen (Intersection sur Union). 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
117
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
— Intégration des ancres dans le fichier de configuration : Les ancres optimisé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.
Après l’achèvement de ces étapes, nous avons sauvegardé notre fichier de configuration personnalisé,
qui est maintenant prêt à être utilisé pour entraîner notre modèle YOLOv5 selon nos spécifications uniques.
L’entraînement du modèle YOLOv5 représente une étape capitale de notre projet. Nous avons mis
en œuvre une stratégie d’entraînement rigoureuse, basée sur l’ajustement minutieux des hyperparamètres, le
suivi constant des métriques d’entraînement et l’application d’algorithmes d’optimisation. Voici un aperçu
118
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Le réglage des hyperparamètres est une étape cruciale qui influence directement l’efficacité et la
performance du modèle. Voici les principaux hyperparamètres que nous avons ajustés :
— Taux d’apprentissage : Il s’agit d’un paramètre essentiel qui détermine la rapidité avec laquelle notre
modèle apprend à partir des données. Un taux trop élevé peut entraîner un apprentissage superficiel,
tandis qu’un taux trop faible peut rendre l’apprentissage lent et inefficace. Nous avons choisi un taux
— 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 adéquate permet de maximiser l’efficacité de l’apprentissage
et l’utilisation de la mémoire. Nous avons sélectionné une taille de lot qui tire le meilleur parti des
ressources disponibles.
— Nombre d’itérations (époques) : Le nombre d’itérations détermine le nombre de fois que l’ensemble
des données d’apprentissage est utilisé pour mettre à jour les paramètres du modèle. Un nombre
d’itérations adéquat assure que le modèle a suffisamment appris des données sans tomber dans le piège
du surapprentissage.
119
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Pour entraîner notre modèle YOLOv5, nous avons exécuté une commande spécifique qui a inclus
C:\Users\Lenovo\Desktop\data_antenne\data_antenne\dataset.yaml \\
--cfg C:\Users\Lenovo\Desktop\data_antenne\data_antenne\custom_yolov5s.yaml \\
— –img 640 : Définit la taille de l’image d’entrée pour l’entraînement, c’est-à-dire 640x640 pixels dans
notre cas.
— –batch 8 : Fixe la taille du lot pour l’entraînement. Un lot de 8 signifie que 8 images sont traitées
— –epochs 100 : Précise le nombre d’époques d’entraînement. Ici, le modèle a été entraîné pendant 100
époques, chaque époque signifiant que le modèle a parcouru l’ensemble du dataset une fois.
— –data dataset.yaml : Spécifie le fichier YAML qui contient les informations sur le dataset, comme
— –cfg custom_yolov5s.yaml : Indique le fichier YAML qui contient la configuration du modèle YOLOv5
personnalisé.
— –weights yolov5s.pt : Utilise les poids du modèle YOLOv5m pré-entraîné comme point de départ
pour l’entraînement.
— –name antennedrone : Attribue un nom personnalisé au modèle entraîné, ce qui facilite l’identification
Pendant le processus d’entraînement, nous avons suivi de près plusieurs indicateurs clés pour évaluer
les performances du modèle. La perte (loss), qui mesure l’écart entre les prédictions du modèle et les véritables
valeurs, et la précision (accuracy), qui évalue la proportion des prédictions correctes, étaient nos principales
métriques de référence. Avec l’entraînement lancé, le modèle YOLOv5 commence à apprendre, affichant
120
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
régulièrement les métriques d’entraînement, comme la perte et la précision. Ces informations nous permettent
nécessaire. Une fois l’entraînement terminé, le modèle est sauvegardé et prêt pour le déploiement et l’inférence
utilisant les paramètres spécifiés. Tout au long de l’entraînement, des informations sur la progression, telles
que la perte, la précision et d’autres mesures de performance, ont été constamment mises à jour.
Une fois l’entraînement terminé, le modèle entraîné a été enregistré dans le dossier runs/train sous le
121
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
nom spécifié par l’argument –name. Ce modèle entraîné peut ensuite être utilisé pour réaliser des inférences
Après l’entraînement du modèle YOLOv5s, il est essentiel d’évaluer ses performances en termes de
détection d’objets. Cette évaluation est effectuée en utilisant un ensemble de données de validation distinct
de celui utilisé pour l’entraînement, ce qui permet de tester le modèle sur des images qu’il n’a jamais vues
auparavant.
Trois indicateurs clés sont utilisés pour évaluer les performances du modèle : la précision, le rappel
et le score F1.
La précision mesure la proportion des prédictions positives qui se sont avérées correctes. Une précision
élevée indique que le modèle a réussi à identifier correctement la grande majorité des objets, même s’il peut
Le rappel indique la proportion des vrais positifs qui ont été correctement identifiés. Un rappel élevé
indique que le modèle a réussi à identifier correctement la plupart des objets, même s’il a pu en identifier
Le score F1 est une métrique qui combine la précision et le rappel pour fournir un seul chiffre résumant
les performances du modèle. Il est calculé comme la moyenne harmonique de la précision et du rappel, ce qui
Ces indicateurs sont évalués sur l’ensemble de validation, qui est distinct de l’ensemble d’entraînement.
Ils fournissent une estimation fiable des performances du modèle lorsqu’il est confronté à de nouvelles images.
122
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Pendant le processus d’entraînement, le modèle génère des statistiques à chaque époque, ce qui permet
train/cls-loss) : Ces valeurs représentent l’erreur du modèle pour la prédiction des boîtes englobantes,
évaluation globale des performances du modèle en calculant la précision moyenne à différents seuils
pour la prédiction des boîtes englobantes, la détection des 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
123
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Ces métriques permettent de suivre 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 cours des époques, tandis que la
Après la fin de l’entraînement, les poids du modèle sont automatiquement sauvegardés dans le
répertoire yolov5/runs/train/. Pour évaluer les performances du modèle sur l’ensemble de validation, la
Cette commande évalue le modèle en utilisant les poids sauvegardés (best.pt) sur l’ensemble de validation
défini dans le fichier dataset.yaml. Les images de l’ensemble de validation sont traitées avec une taille de 640
Les courbes générées lors de l’entraînement et de l’évaluation du modèle YOLOv5s fournissent des
informations précieuses sur son apprentissage et ses performances. Voici comment interpréter ces courbes :
— Courbes d’apprentissage (Learning curves) : Ces courbes montrent l’évolution des pertes d’entraînement
et de validation au fil des époques. L’objectif est de voir ces pertes diminuer progressivement au
fil du temps, ce qui indique que le modèle apprend efficacement à partir des données. Si les pertes
d’entraînement diminuent tandis que les pertes de validation augmentent, cela peut indiquer un surapprentissage
(overfitting).
124
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
— Courbes de précision et de rappel (Precision and Recall curves) : Ces courbes illustrent
l’évolution de la précision et du rappel du modèle au cours des époques. On s’attend à ce que ces
objets. Une augmentation simultanée de la précision et du rappel indique une meilleure capacité du
modèle à identifier correctement les objets tout en minimisant les fausses détections.
125
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
— Courbes de mAP (mAP curves) : Les courbes de mAP (Mean Average Precision) montrent
l’évolution du mAP au fil des époques. Une augmentation du mAP indique une amélioration globale
des performances du modèle en termes de précision et de rappel à différents seuils d’intersection sur
union (IoU). Une augmentation constante du mAP est souhaitée pour obtenir un modèle de détection
126
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Pour illustrer l’efficacité de notre modèle, nous avons inclus deux figures clés.
La première figure présente les images utilisées pour les tests, accompagnées des étiquettes réelles
que nous avons attribuées manuellement. Ces étiquettes indiquent l’emplacement des objets d’intérêt, en
La seconde figure présente les mêmes images, mais cette fois avec les prédictions de notre 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 représente une estimation de la probabilité que l’objet détecté soit
127
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
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.
comprendre dans quelles situations ou pour quels types d’objets le modèle peut rencontrer des difficultés.
Cette analyse visuelle nous offre un outil précieux pour l’amélioration continue de notre modèle, en nous
En utilisant ces figures, nous pouvons non seulement évaluer les performances quantitativement à
l’aide de mesures telles que la précision, le rappel et le score F1, mais aussi obtenir une compréhension
visuelle des résultats du modèle et de ses prédictions. Cela nous aide à prendre des décisions éclairées pour
Après avoir formé et validé notre modèle YOLOv5s, nous l’avons exploité pour automatiser l’étiquetage
128
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Afin d’activer l’enregistrement automatique des étiquettes des images annotées, nous avons révisé le
script detect.py situé dans le répertoire YOLOv5. Ce changement a conduit à la génération automatique de
— Etape 1 : Lors de l’activation de cette option, en la mettant sur True, le modèle consigne les résultats
— Etape 2 :
Figure 3.31 : Établissement d’un dossier de sortie pour les images et les annotations
— Etape 3 :
Nous avons employé notre modèle formé pour repérer des objets d’intérêt (les antennes) dans de
Pour chaque image, le modèle a créé des boîtes englobantes autour des objets détectés et attribué à
129
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Après l’exécution du script, les images et leurs annotations correspondantes au format YOLO se
trouvent dans le dossier de sortie. Les annotations sont stockées dans le sous-dossier ’labels’, et les images
dans le sous-dossier ’images’. Ces fichiers peuvent alors être utilisés avec labelImg ou tout autre outil de
130
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Figure 3.35 : Stockage ordonné des annotations au format YOLO dans le dossier
Une fois les annotations générées automatiquement, nous avons utilisé l’outil LabelImg pour visualiser
les images et leurs annotations correspondantes. LabelImg est une interface graphique qui offre la possibilité
de voir les images et leurs boîtes englobantes associées, superposant les boîtes sur les images.
131
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Figure 3.37 : Visualisation des images et de leurs boîtes englobantes avec LabelImg
Bien que l’étiquetage automatique ait grandement simplifié le processus d’annotation, il reste imparfait.
Nous avons donc inspecté manuellement chaque image et chaque annotation pour en vérifier l’exactitude. Les
erreurs détectées dans les boîtes englobantes ou les étiquettes ont été corrigées directement via l’interface de
LabelImg.
Après avoir vérifié et corrigé les annotations pour chaque image, nous avons sauvegardé les modifications.
Cela a produit une version finale des fichiers d’annotation, prête à être exploitée pour une formation supplémentaire
Cette approche a permis d’accélérer sensiblement le processus d’annotation d’images, tout en assurant
une qualité acceptable grâce à la vérification manuelle. C’est une illustration parfaite de comment un modèle
d’apprentissage automatique peut être utilisé pour automatiser et simplifier une tâche complexe.
Pour assurer une organisation adéquate des images labellisées automatiquement par notre modèle,
nous avons suivi les étapes suivantes. Tout d’abord, nous avons intégré ces images dans notre dossier de
données existant. Ensuite, nous avons procédé à une division de 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 approche standard
132
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
en apprentissage automatique nous permet de prévenir le surapprentissage, d’ajuster les paramètres du modèle
Après une phase initiale d’entraînement avec le modèle YOLOv5s pour l’annotation automatique,
nous avons réussi à enrichir notre base de données avec des images et leurs annotations correspondantes. Cette
expansion significative de notre ensemble de données a modifié notre position de départ, nous permettant de
Dans cette seconde phase de notre projet, notre visée est de concevoir un modèle de détection d’objets
d’entraîner des modèles plus grands et plus précis. C’est pourquoi nous avons opté pour le YOLOv5m pour
cette tâche.
Le YOLOv5m est un modèle plus volumineux et plus complexe que le YOLOv5s. Il est configuré pour
gérer des images de 640 pixels, tout comme le YOLOv5s, mais fournit une performance supérieure. En ce
qui concerne la vitesse de traitement, le YOLOv5m est légèrement plus lent que le YOLOv5s, mais demeure
suffisamment rapide pour nos exigences, avec un temps de prédiction de 224 ms sur CPU, et 8.2 ms et 21.2
En matière de complexité, le YOLOv5m possède 21.2 millions de paramètres, ce qui est supérieur
au YOLOv5s, et requiert 49.0 milliards de FLOPs pour effectuer une prédiction sur une image de 640x640
pixels. Cependant, grâce à l’élargissement de notre ensemble de données, nous sommes désormais capables
de profiter de cette complexité augmentée pour renforcer la précision de notre modèle de détection d’objets.
En somme, la capacité du YOLOv5m à offrir une meilleure performance tout en demeurant relativement
efficient en termes de ressources en fait le choix optimal pour notre modèle de détection d’objets, compte
Au cours de notre projet, nous avons été confrontés à une difficulté majeure lors de l’entraînement
du modèle YOLOv5s pour la labellisation automatique : l’usage d’un CPU prend énormément de temps,
entraînant significativement notre efficience d’entraînement. En tant qu’équipe, nous avons cherché une
133
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Une solution cruciale que nous avons adoptée pour pallier au problème de la durée excessive d’entraînement
a été l’utilisation d’un GPU. Les GPUs sont spécifiquement conçus pour les tâches de calcul intensives,
telles que la formation de modèles d’apprentissage profond. En exploitant un GPU, nous avons pu accélérer
Afin de mieux saisir les avantages et les différences entre les configurations d’entraînement pour
Figure 3.38 : Tableau comparatif détaillé des configurations d’entraînement pour YOLOv5
L’usage d’un GPU a été une décision clé 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 gérer efficacement les opérations
complexes du modèle, diminuant ainsi significativement le temps d’entraînement requis. Cette accélération se
traduit par une amélioration notable de la vitesse de détection du modèle, avec une augmentation remarquable
Cependant, il convient de souligner 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,
utilisée, en installant les pilotes adéquats et les dépendances requises. Enfin, l’usage 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
En associant l’usage d’un GPU à d’autres techniques d’optimisation, nous avons pu efficacement
résoudre le problème de durée excessive d’entraînement, tout en améliorant 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
134
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
L’intégration de dépendances essentielles comme le NVIDIA CUDA Toolkit et cuDNN a été vitale
pour optimiser les performances de nos GPU et booster l’entraînement de notre modèle YOLOv5. Voici un
aperçu détaillé des démarches que nous avons entreprises pour réaliser cette installation sous Windows :
Tout d’abord, il est crucial de confirmer 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.
De plus, nous avons pris soin de garder nos pilotes de carte graphique à jour, en téléchargeant et installant
Après cette vérification, 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
correspondantes à 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 fournies à l’écran pour installer le
CUDA Toolkit.
Suite à l’installation du CUDA Toolkit, nous avons configuré les variables d’environnement de notre
Par la suite, nous avons téléchargé cuDNN depuis la page de téléchargement de cuDNN sur le site
web de NVIDIA. Nous avons opté pour la version de cuDNN qui correspond à la version du CUDA Toolkit
que nous avons installée. Après avoir extrait les fichiers du fichier ZIP téléchargé, nous les avons copiés dans
Finalement, nous avons installé PyTorch avec la version CUDA adéquate en utilisant le gestionnaire
de paquets pip3. Pour confirmer que le CUDA Toolkit et cuDNN étaient correctement installés et configurés,
135
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Ces démarches ont permis de garantir une installation adéquate des dépendances requises pour
l’entraînement de notre modèle YOLOv5 sur un GPU, assurant ainsi un processus d’entraînement plus rapide
et plus efficace.
136
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Une fois nos données prêtes, nous avons entamé la phase critique de l’apprentissage du modèle
YOLOv5m pour la détection d’objets. À cette étape, nous avons adopté une stratégie différente de celle
utilisée pour notre premier modèle YOLOv5s, en tirant profit de la puissance du GPU pour accélérer le
processus d’apprentissage.
Sans reprendre les aspects techniques déjà discutés dans la partie consacrée à l’apprentissage du
modèle YOLOv5s, nous avons suivi un processus analogue, mais adapté aux particularités du modèle YOLOv5m
et à l’utilisation du GPU. Les hyperparamètres ont été ajustés de manière adéquate, et l’apprentissage a été
initié sur le jeu de données avec un suivi constant des métriques d’apprentissage.
L’efficience de l’apprentissage sur GPU s’est traduite par une accélération notable du processus et une
amélioration remarquable 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’apprentissage est restée
constante : optimiser les performances du modèle tout en minimisant la perte lors de l’apprentissage. Pour
garantir que le GPU est correctement reconnu et utilisé, nous avons effectué une vérification pour confirmer
Figure 3.41 : Apprentissage du modèle avec GPU : Vérification de l’usage optimal du GPU
Dans le but d’optimiser l’apprentissage du modèle YOLOv5m, nous avons non seulement utilisé un
GPU mais avons aussi intégré des "workers" dans le processus. Ces "workers" sont des processus parallèles
qui s’occupent de la préparation des données avant leur transmission au GPU pour l’apprentissage. Cette
méthode de parallélisation est avantageuse car elle optimise l’utilisation des ressources disponibles et réduit
le temps nécessaire pour l’apprentissage. Il est essentiel de noter que malgré l’usage des "workers", il n’y a
pas d’option directe permettant d’utiliser simultanément le CPU et le GPU pour l’apprentissage du modèle.
137
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
En effet, le GPU est généralement plus performant pour exécuter les calculs nécessaires à l’apprentissage des
modèles de deep learning, il est donc préférable de l’employer pour ces calculs.
Néanmoins, nous avons optimisé l’usage du CPU parallèlement au GPU en 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 pendant l’apprentissage. Voici un exemple de la commande que nous avons utilisée :
Cet ajustement a contribué à augmenter 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’apprentissage.
Bien que cela n’ait pas entraîné le modèle directement sur le CPU, cela a permis de maximiser l’utilisation
Avant d’utiliser le GPU, il est important de noter que les ressources matérielles, comme la mémoire
138
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
L’utilisation simultanée du GPU et du CPU permet d’observer une optimisation et une amélioration
Figure 3.44 : Usage des ressources matérielles pendant l’apprentissage après activation du GPU
et des workers
139
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Après l’entraînement du modèle YOLOv5m, nous avons procédé à une étape cruciale : l’évaluation
et la vérification du modèle de détection d’objets. Pour ce faire, nous avons utilisé le jeu de données de test
Cette phase a été réalisée de manière analogue à celle du modèle YOLOv5s, en bénéficiant toutefois de
l’efficacité de la puissance de calcul du GPU. Cette accélération matérielle a rendu le processus d’évaluation
Durant l’étape de test, le modèle YOLOv5m a été appliqué à l’ensemble de test, et ses prédictions ont
été confrontées aux véritables annotations pour estimer l’exactitude du modèle. De plus, plusieurs indicateurs
de performance ont été analysés, tels que 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
par rapport au modèle YOLOv5s entraîné sur CPU. Cette avancée notable a non seulement renforcé notre
confiance dans l’approche adoptée, mais a également souligné l’efficacité et l’importance de l’utilisation du
140
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Figure 3.47 : Image de test montrant les prédictions du modèle et les pourcentages de
confiance : antenne
141
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
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
— 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
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.
142
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Au cours de ce sprint palpitant, l’exploration des capacités puissantes de Tesseract OCR pour la
reconnaissance de texte se déroule. Les techniques et les algorithmes utilisés par Tesseract OCR, tels que
l’image pour faciliter la détection de texte se révèle, tandis que le processus de reconnaissance de texte
s’élabore avec l’aide d’un script Python personnalisé. L’émerveillement survient avec les résultats de la
reconnaissance de texte obtenus grâce à Tesseract OCR, et les possibilités d’intégration de cette technologie
Dans le contexte de notre système d’inspection de pylônes, l’OCR (Optical Character Recognition)
joue un rôle essentiel en permettant l’extraction de texte à partir d’images. Plus précisément, nous utilisons
le logiciel de reconnaissance optique de caractères Tesseract pour identifier et extraire toute information
textuelle présente sur les antennes inspectées. Ce rapport présente en détail les caractéristiques de Tesseract
OCR, ainsi que les techniques et algorithmes qu’il utilise pour réaliser cette reconnaissance de texte.
Tesseract OCR est un logiciel de reconnaissance optique de caractères largement utilisé, actuellement
développé par Google. Il s’agit d’un logiciel open-source, écrit en langage de programmation C++, offrant
des fonctionnalités avancées pour la reconnaissance de texte à partir d’images ou de documents scannés.
Tesseract OCR bénéficie d’une large prise en charge de plus de 100 langues, ce qui le rend adapté
à une variété de scénarios de reconnaissance de texte à l’échelle internationale. Il est capable de traiter des
3.4.2.2 Fonctions
Outre la reconnaissance de texte, Tesseract OCR propose des fonctionnalités de prétraitement d’image
pour améliorer la qualité de l’image et la précision de la reconnaissance des caractères. Ces fonctions visent à
optimiser les résultats en appliquant des techniques telles que la binarisation, le recadrage, le redressement,
la suppression de bruit et la segmentation de l’image. Le prétraitement d’image est essentiel pour garantir
143
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
3.4.2.3 Utilisations
Tesseract OCR trouve son application dans divers domaines tels que la reconnaissance de texte dans
les documents, les livres, les images de caméras de surveillance, les images médicales, les images satellites, etc.
Grâce à sa polyvalence, il est utilisé pour automatiser des tâches de traitement de l’image et de reconnaissance
3.4.2.4 Intégration
Tesseract OCR peut être intégré à des applications tierces grâce à des interfaces de programmation
(API), permettant ainsi la reconnaissance de texte en temps réel ou l’automatisation de tâches de traitement
de documents. Cette flexibilité facilite l’intégration de Tesseract dans des solutions existantes, améliorant
Tesseract OCR utilise des réseaux neuronaux récurrents LSTM, une forme de réseau de neurones
profonds, pour la reconnaissance de texte. Les réseaux LSTM sont capables de traiter des séquences de
données, telles que des séquences de caractères. L’algorithme LSTM présente l’avantage de pouvoir conserver
des informations à long terme, ce qui améliore la précision de la reconnaissance des caractères et permet de
3.4.3.2 N-gram
L’algorithme N-gram est une méthode statistique utilisée par Tesseract OCR pour prédire la prochaine
lettre ou le prochain mot dans une séquence de caractères. Il se base sur les modèles de probabilité construits
à partir de l’historique des caractères précédents. En utilisant cette approche, Tesseract OCR peut améliorer
Les modèles d’apparence sont utilisés par Tesseract OCR pour reconnaître les caractères en se basant
sur des informations telles que leur forme, leur taille et leur position relative dans l’image. Ces modèles
sont créés à partir de données d’apprentissage qui contiennent des images de caractères annotées avec leurs
144
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
étiquettes correspondantes. En combinant les modèles d’apparence avec d’autres méthodes de reconnaissance
Tesseract OCR utilise des techniques avancées de prétraitement d’image pour améliorer la qualité
de l’image et préparer celle-ci pour la reconnaissance de texte. Ces techniques comprennent la binarisation
pour convertir l’image en une image binaire, le recadrage pour isoler la région d’intérêt contenant le texte,
le redressement pour corriger l’inclinaison du texte, la suppression de bruit pour éliminer les artefacts
indésirables et la segmentation de l’image pour identifier les régions de texte distinctes. Le prétraitement
d’image est une étape critique pour obtenir de bons résultats de reconnaissance de texte.
Tesseract OCR intègre également des fonctionnalités de correction d’orthographe pour améliorer la
précision de la reconnaissance de texte. Il utilise des dictionnaires de mots pour comparer le texte reconnu avec
les mots valides et corriger les erreurs d’orthographe éventuelles. Cette fonctionnalité est particulièrement
utile dans les langues avec des orthographes complexes ou lors de la reconnaissance de textes présentant des
Certaines versions de Tesseract incluent des algorithmes d’apprentissage automatique pour améliorer
la précision de la reconnaissance de texte. Ces algorithmes peuvent apprendre à partir de données d’apprentissage
annotées pour affiner la reconnaissance des caractères et s’adapter à des cas spécifiques. L’apprentissage
automatique permet à Tesseract OCR de s’améliorer avec l’expérience et de fournir des résultats plus précis
au fil du temps.
Tesseract OCR propose une fonctionnalité de découpage de texte qui permet de diviser le texte
reconnu en blocs plus petits, tels que des mots ou des lignes. Ce découpage améliore la précision et la lisibilité
du texte reconnu en permettant une analyse et une manipulation plus précises des éléments textuels extraits.
En utilisant Tesseract OCR dans notre système d’inspection de pylônes, nous avons accès à une
technologie de reconnaissance de texte avancée et polyvalente. Les techniques et algorithmes utilisés, tels que
les réseaux neuronaux LSTM, les N-grams, les modèles d’apparence et les fonctionnalités de prétraitement
145
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
d’image, garantissent des performances fiables et précises. La correction d’orthographe intégrée et l’apprentissage
automatique contribuent à améliorer la précision de la reconnaissance de texte dans des scénarios variés. Grâce
à ces fonctionnalités, notre système d’inspection de pylônes bénéficie d’une capacité robuste pour extraire et
analyser efficacement le texte des images, facilitant ainsi les processus d’inspection et les analyses ultérieures.
Nous avons intégré un script Python qui inclut une fonction nommée "process_image" pour réaliser
146
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Figure 3.50 : Prétraitement d’image binaire pour meilleure reconnaissance des caractères
Les conditions d’éclairage, le mouvement du drone et d’autres facteurs peuvent affecter la clarté et la
netteté de l’image. Dans ces cas, les détails subtils nécessaires pour une inspection précise peuvent se perdre.
Pour surmonter cet obstacle, nous entamons un processus rigoureux d’amélioration de l’image. Une
147
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
fois ce traitement effectué, nous obtenons notre deuxième image, une version nettement plus claire et détaillée
de l’originale. Les détails précédemment perdus ou obscurcis sont maintenant clairement visibles, permettant
Cette amélioration de la qualité est cruciale pour la prochaine étape de notre processus d’inspection :
l’application de notre technologie OCR. Avec une image plus claire et plus détaillée, la reconnaissance optique
de caractères (OCR) peut fonctionner avec une précision maximale, analysant minutieusement chaque élément
En somme, la transformation de l’image originale en une version améliorée est une étape fondamentale
dans notre processus d’inspection. Elle ouvre la voie à une analyse OCR plus précise, maximisant l’efficacité
Dans le cadre de notre système d’inspection de pylônes, nous avons développé un script Python
utilisant Tesseract OCR pour effectuer la reconnaissance de texte sur les images traitées. Cette partie détaille
148
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
le fonctionnement de notre script, en mettant l’accent sur les étapes spécifiques impliquées dans le processus
de reconnaissance de texte.
Notre script Python utilise Tesseract OCR pour la reconnaissance de texte sur les images traitées.
Configuration personnalisée :
Au début du script, nous définissons une configuration personnalisée pour Tesseract OCR. Cette
— Langue : Nous pouvons spécifier la langue à utiliser pour la reconnaissance de texte. Dans notre cas,
— OEM 0 : Legacy Tesseract OCR engine. Il s’agit de la méthode OCR originale de Tesseract, mais
elle est moins précise et moins rapide que les méthodes plus récentes.
— OEM 1 : Neural nets LSTM engine. Cette méthode utilise un réseau neuronal pour améliorer la
— OEM 2 : Legacy plus LSTM. Cette méthode combine les deux méthodes précédentes en utilisant
l’OCR Legacy pour la reconnaissance de caractères en basse résolution, puis en utilisant LSTM
— PSM 3 : Default page segmentation mode. Cette option est la plus couramment utilisée et permet
— PSM 6 : Assume a single uniform block of vertically aligned text. Cette option est utile pour les
— PSM 11 : Sparse text. Cette option est adaptée aux images contenant de petits blocs de texte
149
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
En ajustant ces paramètres de configuration en fonction de nos besoins spécifiques, nous pouvons
Reconnaissance de texte :
pytesseract pour effectuer la reconnaissance de texte. Cette méthode prend en entrée l’image prétraitée
ainsi que la configuration personnalisée que nous avons définie précédemment. Elle retourne une chaîne de
caractères représentant le texte reconnu dans l’image. Il est important de noter que Tesseract OCR est
capable de reconnaître du texte dans plus de 100 langues, ce qui le rend très polyvalent et adapté à diverses
applications.
Notre script Python utilisant Tesseract OCR pour la reconnaissance de texte sur les images traitées
offre une solution puissante et précise pour extraire des informations textuelles importantes dans notre
à la reconnaissance de texte, nous obtenons des résultats fiables et de haute qualité. Cette fonctionnalité
d’informations textuelles à partir des images, ce qui facilite les analyses ultérieures et les prises de décision.
150
Chapitre 3. Release 2 - Détection d’objets et reconnaissance de texte
Conclusion
Au terme de ce deuxième chapitre captivant, nous avons voyagé au cœur de la Release 1, où nous avons
vécu ensemble une expérience riche en découvertes. La sélection minutieuse des composants, l’assemblage
méticuleux, les tests de vol palpitants et l’intégration de l’ESP 32 Cam ont donné naissance à une symphonie
technologique fascinante. Nous avons été témoins des décisions cruciales, des défis relevés et des avancées
Nous vous invitons maintenant à vous préparer pour la suite de cette aventure passionnante, où la
détection d’objets et le traitement d’images occuperont une place centrale dans le prochain chapitre captivant.
Restez captivés par l’excitation et l’innovation qui animent chaque étape de ce projet visionnaire. Nous
sommes impatients de partager avec vous les prochaines étapes de ce périple technologique fascinant.
151
Chapitre 4
Plan
1 Sprint 5 : Conception de l’architecture avec Django - Backend . . . . . 154
152
4.10.1 Description de la structure globale du site . . . . . . . . . . . . . . . . . . . 177
4.10.2 Présentation de la manière dont Django gère les URL, les formulaires et les
vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Introduction
Le quatrième chapitre de cette aventure technologique évoque un frisson de fascination. Cette Release
3 palpitante propose deux sprints qui conduisent dans l’univers fascinant de l’architecture et du Dashboard
avec Django. Le Sprint 5 révèle la conception du backend, l’interconnexion avec Google Drive, l’intégration de
l’API, le stockage des images et l’intégration du modèle Tesseract OCR se manifestent en une réalité tangible.
Le Sprint 6 s’ensuit avec la réalisation du frontend, où le Dashboard se construit à l’aide des langages tels que
HTML, CSS, JavaScript et Python. Le lecteur est alors plongé dans l’art de l’architecture et de l’expérience
utilisateur captivante.
Dans le cadre de ce sprint passionnant, l’immersion se fait dans la conception de l’architecture avec
Django. Le voyage traverse l’interconnexion entre Django et Google Drive, avec l’intégration de l’API Google
Drive et la mise en œuvre de l’authentification OAuth. Le stockage des images capturées et l’obtention des
informations d’authentification pour l’API Google Drive dans Django se dévoilent. Le processus d’affichage
des résultats de détection et l’intégration du modèle Tesseract OCR avec Django se déploient. L’aventure
continue dans la création d’une application sur le serveur Django, l’enregistrement du texte extrait dans
une base de données SQLite et la transition vers PostgreSQL. Les fonctions extract-antenna-string() et
Django, un outil de développement web Python, se distingue par sa flexibilité et sa puissance. C’est un
composant crucial qui orchestre efficacement l’interaction de divers éléments, tels que l’interface utilisateur,
l’API Google Drive, le modèle d’IA pour la détection d’anomalies et la gestion des données.
C’est cette centralité et cette efficacité de Django qui sont fondamentales pour la réussite de ce projet.
Sans Django, la coordination de tous ces éléments serait considérablement plus complexe. Django facilite ce
processus en offrant une couche d’abstraction qui cache la complexité technique, nous permettant de nous
Dans ce chapitre, nous allons décortiquer l’utilisation de Django dans ce projet. Nous aborderons
d’abord la structure de l’application basée sur Django, avant de passer à son interaction avec Google Drive
pour le téléchargement d’images. Nous parlerons ensuite de l’incorporation du modèle d’IA YOLOv5m dans
154
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Django et de la manière dont Django manipule les données détectées. Pour finir, nous donnerons un aperçu
de la conception du tableau de bord de Django, qui présente les résultats de la détection d’anomalies de
En explorant le rôle de Django dans ce projet complexe, nous allons approfondir notre compréhension
de sa capacité à gérer des défis sophistiqués et à participer activement à l’élaboration de solutions innovantes.
Notre objectif est non seulement de rendre le processus de ce projet plus transparent, mais aussi de souligner
Figure 4.1 : Django : Site web d’Analyse Visuelle avec Détection, Stockage et Visualisation des
résultats de détection
L’ambition du projet d’inspection des pylônes par drone intelligent est d’améliorer la manière dont
ces inspections sont effectuées en tirant parti des drones dotés de technologies de pointe. Dans ce segment,
nous nous pencherons sur l’aspect crucial de ce projet : la création du tableau de bord web. C’est l’élément
qui se trouve au cœur de la manipulation et de la gestion des données collectées lors des inspections.
Django est un outil de développement web très solide et capable de s’adapter à diverses situations,
conçu autour du concept Modèle-Vue-Contrôleur (MVC). Ce principe favorise l’organisation des systèmes
Les Modèles : En ce qui concerne Django, les modèles sont une représentation théorique des
structures de données. Ils constituent le pont entre la base de données et les vues, régissant la forme des
données, leur vérification et le comportement spécifique à l’application des données. Dans notre projet, nous
155
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
avons créé plusieurs modèles pour contrôler différentes entités, notamment les images importées, les résultats
de détection d’anomalies et les données historiques d’inspection. Chacun de ces modèles est doté d’attributs
Les Vues : Les vues, dans le contexte de Django, gèrent la logique de contrôle. Elles réceptionnent
les demandes HTTP de l’utilisateur, interagissent avec un ou plusieurs modèles pour récupérer les données
nécessaires, puis transmettent ces données à un template pour produire une réponse. Dans notre projet, nous
avons employé les vues pour déterminer les opérations spécifiques, telles que le téléchargement d’images,
Les Templates : Les templates, ou modèles, sont responsables de la présentation des données. Ils
décrivent comment les données, fournies par les vues, doivent être présentées dans l’interface utilisateur. Dans
notre application, nous utilisons les templates pour élaborer l’interface utilisateur du tableau de bord, pour
Les fichiers statiques : Ces fichiers jouent un rôle majeur dans notre application Django. Ils
contiennent les images importées et les résultats de la détection d’anomalies, et sont stockés à un emplacement
spécifiquement défini dans la structure de Django, assurant ainsi une gestion uniforme et fiable.
156
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
La liaison entre Django et Google Drive joue un rôle fondamental dans le fonctionnement de notre
application. Elle nous permet de récupérer les images des pylônes de télécommunication qui sont stockées sur
Google Drive, ce qui est la première phase de notre procédure de repérage des anomalies.
L’API Google Drive propose une panoplie de fonctions qui facilitent l’interaction avec les fichiers et
dossiers conservés sur Google Drive. Dans notre application, nous nous servons de cette API pour récupérer
les images à analyser. Django, grâce à ses fonctionnalités natives de gestion des API, rend ce processus aisé
et sans détour. Nous avons instauré un service dédié dans notre application Django qui se charge de la liaison
avec l’API Google Drive. Ce service exploite les fonctionnalités de l’API pour repérer le bon dossier sur
Google Drive, naviguer à travers les images qu’il contient et les télécharger une à une.
Figure 4.3 : les images prise par ESP32-cam stockés sur Google Drive
La vérification de l’identité est une mesure cruciale pour sécuriser les données lors des interactions
avec Google Drive. C’est pourquoi nous avons recours à OAuth, un protocole d’authentification standardisé
qui garantit que seuls les utilisateurs habilités peuvent accéder aux fichiers sur Google Drive. Django s’occupe
157
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
de l’intégralité du processus OAuth, qui inclut l’obtention du jeton d’authentification, son stockage de manière
sécurisée, et son utilisation pour valider chaque demande adressée à l’API Google Drive. De surcroît, Django
Après le téléchargement, les images sont conservées dans un répertoire spécifique de fichiers statiques
au sein du système de fichiers de Django. Cette méthode assure que les images sont aisément disponibles
pour les phases ultérieures du processus, y compris l’analyse par le modèle de détection d’anomalies. Le
répertoire de fichiers statiques est structuré de manière à faciliter la recherche et la récupération des images.
En définitive, la connexion entre Django et Google Drive est un élément central de notre application, qui
158
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Voici un exemple de code illustrant la façon dont nous récupérons les informations d’authentification
pour l’API Google Drive à partir d’un fichier JSON qui contient les détails du compte de service. Ces
informations sont employées par Django pour certifier l’application lorsqu’elle communique avec Google Drive
via l’API.
Cette ligne de code permet d’importer le module "client" de la bibliothèque "oauth2client". Ce module
def get_google_credentials():
de renvoyer les informations d’authentification nécessaires pour interagir avec l’API Google Drive.
SCOPES = [’https://www.googleapis.com/auth/drive’]
CLIENT_SECRET_FILE = ’client_secrets.json’
SERVICE_ACCOUNT_FILE=’SERVICE_ACCOUNT_FILE.json’
SCOPES est une liste contenant les niveaux d’accès requis pour l’application. Ici, le niveau est défini
CLIENT-SECRET FILE est le nom du fichier qui renferme les informations secrètes du client pour
l’authentification OAuth. Ce fichier est généralement fourni par le service d’authentification lors de la mise
en place de l’application.
SERVICE ACCOUNT FILE est le nom du fichier JSON qui contient les détails du compte de service.
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES)
Cette ligne génère un objet "credentials" à partir du fichier du compte de service. Cet objet sera utilisé
pour authentifier l’application lors de la communication avec l’API Google Drive. La méthode "from-service-account-file"
est employée pour créer l’objet "credentials" à partir du fichier du compte de service.
159
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
return credentials
Enfin, la fonction "get-google-credentials" renvoie l’objet "credentials". Cet objet peut ensuite être employé
En somme, ce bout de code constitue une fonction qui génère et restitue un objet d’authentification
pour l’API Google Drive, en s’appuyant sur les informations contenues dans un fichier associé à un compte
de service.
L’intégration du modèle YOLOv5m avec Django pour l’identification des objets constitue une phase
Le premier pas consiste à installer le modèle préformé YOLOv5m, capable de repérer des objets dans
des images. Ce modèle a déjà été entraîné sur un large corpus d’images. Pour le mettre en œuvre, nous
faisons appel au fichier best.pt, réputé pour contenir les poids du modèle ayant affiché les meilleures
model_path = ’C:/Users/Lenovo/dronevision/inspection/best.pt’
model = YOLOv5(model_path)
Après avoir chargé le modèle, nous mettons en place les catégories d’objets que le modèle est capable
de repérer. Ces catégories sont précisées dans un fichier yaml, et chacune d’elles correspond à un type
160
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
yaml_data = yaml.safe_load(f)
classes = yaml_data["names"]
Ensuite, nous téléchargeons les images à analyser depuis Google Drive grâce à l’API du même nom.
L’identifiant du dossier spécifique d’où nous récupérons les images est défini comme (your-folder-id).
Les images téléchargées sont sauvegardées dans un dossier local pour une utilisation ultérieure.
Une fois les images téléchargées et enregistrées localement, elles sont soumises une par une à l’analyse
du modèle YOLOv5m. Le modèle produit une liste des objets identifiés dans chaque image. Chaque
objet est associé à un cadre (indiquant son emplacement dans l’image) et une catégorie (spécifiant le
type d’objet repéré). Les images sont alors annotées avec ces informations.
Dans le cadre de notre projet d’inspection des pylônes de télécommunication par drone intelligent, la
gestion des données identifiées revêt une importance capitale. Lorsque le modèle YOLOv5m fournit les
informations d’identification, celles-ci doivent être conservées de façon efficace et organisée pour des
usages ultérieurs. Ces informations incluent la position des objets identifiés dans l’image, la catégorie
Django offre une solution efficace à ce niveau. Il propose un système de modèles permettant de définir
la structure des données de manière flexible et performante. Un modèle Django spécifique a été créé
pour conserver les informations d’identification fournies par le modèle YOLOv5m. Chaque fois qu’une
identification est réalisée, une nouvelle instance de ce modèle est créée et les informations d’identification
Outre la conservation des informations sur les objets détectés, la gestion des images téléchargées depuis
Google Drive et annotées avec des informations de détection d’objets est également une nécessité.
Ces images doivent être stockées de manière à pouvoir être facilement retrouvées pour des analyses
Django propose un système efficace de gestion de fichiers statiques pour cela. Les fichiers statiques
comprennent tous les fichiers qui ne sont pas générés dynamiquement, comme les images, les fichiers
161
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
CSS ou JavaScript. Pour ce projet, nous utilisons le système de fichiers statiques de Django pour stocker
Le système de gestion de fichiers statiques de Django ne permet pas seulement de stocker les images de
manière organisée, mais il facilite également leur accessibilité à l’utilisateur lorsque celui-ci les demande.
Le dossier statique local, où ces images sont stockées, est configuré de manière à être accessible depuis
En somme, grâce à ses fonctionnalités souples et puissantes, Django joue un rôle central dans notre
projet d’inspection des pylônes de télécommunication par drone intelligent. Il gère efficacement le flux
Le tableau de bord du système utilise une interface intuitive basée sur une galerie d’images pour
afficher les résultats de la détection d’anomalies. Les images sont présentées dans un format carrousel qui
utilise le HTML et CSS pour créer une galerie interactive. Chaque image de l’anomalie est affichée en grand
format, offrant aux utilisateurs la possibilité de zoomer pour une inspection plus détaillée.
Chaque anomalie est accompagnée d’une fiche détaillée générée dynamiquement qui comprend des
informations telles que la classe de l’objet détecté, sa position dans l’image, et le niveau de confiance de la
162
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
détection. Cette conception permet aux utilisateurs de comprendre chaque anomalie en détail et de prendre
Le carrousel d’images est rendu possible grâce au système de gestion des fichiers statiques de Django.
Les images téléchargées de Google Drive et les images annotées avec les détections d’objets sont stockées
en tant que fichiers statiques. Ces fichiers sont facilement accessibles et peuvent être servis à l’utilisateur
En utilisant la combinaison de Django pour la gestion des données et le code HTML/CSS pour
l’interface utilisateur, le système est capable de fournir une présentation visuelle efficace et intuitive des
anomalies détectées. Cela démontre la puissance et la flexibilité de Django en tant que framework pour le
Figure 4.8 : affichage des résultats de détection des antennes sur le site web
163
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Dans le fichier views.py de notre application, nous avons implémenté les fonctionnalités suivantes :
Notre système commence par accueillir un ensemble d’images en entrée. Nous avons conçu une fonction
spécifique qui permet de récupérer efficacement le chemin du dossier contenant ces images.
Dans le processus suivant, nous avons intégré des techniques de binarisation et l’application de divers
filtres sur chaque image. Ces méthodes ont été développées pour lire chaque image du dossier, les transformer
en une forme binaire, et appliquer ensuite des filtres pour affiner la qualité de l’image. Cette étape cruciale
Tesseract OCR, pour extraire le texte à partir de ces images binarisées et filtrées. C’est ici que le texte est
Enfin, nous avons mis en place une page HTML dédiée à l’affichage des résultats. Cette page web
présente le nom de chaque fichier image traité, ainsi que le texte détecté dans l’image correspondante. Cela
offre une visualisation claire et organisée des résultats pour l’utilisateur final.
par la reconnaissance OCR, et enfin à l’affichage des résultats - nous avons créé un système de reconnaissance
164
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Dans notre projet Django, nous avons choisi d’utiliser la base de données par défaut, SQLite. SQLite
stocke les données dans un fichier unique, nommé ‘db.sqlite3‘, qui se situe à la racine de notre projet.
Il s’agit d’une base de données légère qui conserve les données localement, sans avoir besoin d’un
serveur de base de données distinct. C’est particulièrement adapté pour les phases de développement et de
tests, car cela offre une facilité d’utilisation considérable et requiert une configuration minimale.
En utilisant SQLite, nous avons pu éviter la complexité d’une configuration de serveur de base de
données externe, tout en bénéficiant de la fonctionnalité complète d’une base de données relationnelle. Cela
nous a permis de nous concentrer sur le développement de notre application, tout en ayant la flexibilité de
165
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
models.py pour conserver les résultats issus de la reconnaissance optique de caractères (OCR).
De plus, nous avons également instauré une nouvelle application nommée ocr-app au sein du
serveur Django.
Étape 2 : Suite à cela, nous avons créé une nouvelle migration pour intégrer ces modifications
à la base de données SQLite. Cela a été suivi par l’application de cette migration pour
Étape 3 : Par la suite, nous avons apporté des modifications à la vue ocr-results pour
qu’elle puisse enregistrer les résultats OCR directement dans la base de données. Cela a
166
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Étape 4 : Dans le but de visualiser les résultats stockés dans la base de données,
nous avons développé une nouvelle vue dans views.py qui permet de récupérer les 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.
Afin de rendre cette vue accessible, nous avons ajouté l’URL correspondante dans le fichier urls.py.
En outre, nous avons créé un nouveau fichier ocr-results-list.html dans le dossier templates, qui est
167
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Figure 4.17 : Création du fichier ‘ocr-results-list.html‘ pour l’affichage des données OCR
Maintenant, en se dirigeant vers l’URL http ://127.0.0.1 :8000/ocr-results-list/, nous pouvons visualiser
significatif en remplaçant SQLite par une base de données plus puissante et plus flexible : PostgreSQL. Nous
avons observé qu’elle fournit des performances optimisées et des fonctionnalités avancées pour gérer des
l’utilisateur "postgres"
via le lien https ://www.postgresql.org/download/windows/. Par la suite, nous avons lancé ce programme
168
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
d’installation et respecté les directives affichées pour finaliser l’installation de PostgreSQL. Au cours de ce
processus, un mot de passe nous a été demandé pour le compte utilisateur "postgres".
Pour établir une connexion à PostgreSQL en utilisant le compte utilisateur "postgres", nous avons
lancé un terminal ou, dans le cas de Windows, l’invite de commandes. Lorsque le nom d’utilisateur nous a
été demandé, nous avons saisi "postgres". Par la suite, nous avons entré le mot de passe approprié lorsque
169
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
dans ‘settings.py‘ Nous avons procédé à l’ouverture du fichier settings.py et avons recherché la section
nommée DATABASES. Cette dernière a été modifiée de manière à intégrer les données de connexion relatives
170
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
171
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
PostgreSQL
En vue d’extraire des informations précises issues du texte détecté, des modifications ont été apportées
au code se trouvant dans views.py. Ces ajustements ont inclus l’utilisation d’expressions régulières. Notre
but primordial était de cibler des champs spécifiques tels que la fréquence de gain et le type d’antenne.
Par conséquent, des fonctions ont été rajoutées dans le fichier views.py afin de permettre une extraction
efficace des informations pertinentes. Ces dernières sont par la suite enregistrées dans notre base de données
PostgreSQL.
La fonction ‘extract-antenna-string()‘ :
— chercher un schéma précis à l’intérieur de cette chaîne en se servant d’une expression régulière.
— renvoyer une chaîne spécifique si le schéma est détecté, sinon elle renvoie None.
La fonction ‘extract-antenna-info()‘ :
— Elle extrait des informations spécifiques de la chaîne de caractères en utilisant des expressions régulières.
172
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Dans la continuité, nous avons sauvegardé ces informations dans notre base de données PostgreSQL.
Ceci nous donne l’opportunité de conserver ces données précises dans une structure de base de données
soigneusement agencée.
Après avoir sauvegardé les champs nécessaires dans la base de données PostgreSQL, nous envoyons
ces informations à notre site web. Celui-ci est alors chargé de présenter les résultats identifiés.
173
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Figure 4.28 : affichage des résultats de détection du texte sur le site web
Explorons les langages utilisés tels que HTML, CSS, JavaScript et Python, ainsi que les outils tels que Spline
et Sketchfab.Dans une immersion au coeur de l’architecture du site web, la structure globale se dessine et
détaille la manière dont elle gère les URL, les formulaires et les vues à l’aide de Django. . Explorons les
différentes pages du site web, de l’authentification à la page d’accueil, en passant par les formulaires et le
tableau de bord. Découvrons comment chaque page est conçue visuellement et fonctionnellement pour offrir
Cette partie constitue la partie finale d’un projet plus vaste portant sur l’inspection des pylônes
par drone intelligent grâce à l’Internet des objets (IoT) et l’intelligence artificielle (IA). La partie spécifique
abordée dans cette section concerne le développement d’un site web permettant d’afficher les résultats de la
détection d’objets et de la reconnaissance optique de caractères (OCR) obtenus lors des inspections. Ce site
web fournit une interface conviviale pour visualiser et gérer les informations relatives aux équipements des
pylônes, ainsi que les modèles 3D permettant de mieux comprendre les projets et les pylônes inspectés.
Cette partie se concentre sur les aspects techniques du développement web, en mettant en avant
l’utilisation du framework Django et des langages HTML, CSS, JavaScript et Python. De plus, la base de
données SQLite est utilisée pour stocker les informations relatives aux équipements des pylônes.
Dans les sections suivantes, nous détaillerons l’architecture du site web, en expliquant comment les
différentes fonctionnalités ont été mises en œuvre. Nous présenterons également les différentes pages du
174
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
site, telles que l’authentification, le formulaire d’entrée des informations sur les équipements des pylônes, le
tableau de bord pour afficher les informations, ainsi que les modèles 3D interactifs et la page de résultats de
la détection d’objets.
Le site web développé dans le cadre de ce projet d’inspection des pylônes par drone intelligent présente
plusieurs fonctionnalités clés permettant la visualisation et la gestion des données d’inspection. Voici une
Authentification et inscription :
Le site web propose un système d’authentification sécurisé permettant aux utilisateurs autorisés de
se connecter à leurs comptes. De plus, il offre la possibilité de s’inscrire en tant que nouvel utilisateur, en
Tableau de bord : Le tableau de bord constitue la page centrale du site web. Il offre une vue
d’ensemble des informations essentielles relatives aux pylônes inspectés. Les utilisateurs peuvent y accéder
après s’être authentifiés. Le tableau de bord présente des indicateurs clés, des modèles 3D de pylône permettant
Le site web propose un formulaire interactif qui permet aux utilisateurs de saisir les informations
relatives aux équipements des pylônes inspectés. Ce formulaire est conçu de manière conviviale, avec des
champs appropriés pour chaque type d’information. Les utilisateurs peuvent enregistrer les données saisies
Modèles 3D interactifs :
Le site web intègre des modèles 3D interactifs pour une meilleure compréhension des projets et
des pylônes inspectés. Ces modèles 3D sont rendus disponibles grâce à des technologies telles que Spline
et Sketchfab. Les utilisateurs peuvent interagir avec les modèles, effectuer des zooms, des rotations et des
caractères (OCR) :
Une fonctionnalité importante du site web est l’affichage des résultats de la détection d’objets et de
l’OCR obtenus lors des inspections des pylônes. Les utilisateurs peuvent visualiser les résultats de manière
claire et organisée, ce qui leur permet de repérer rapidement les anomalies détectées ou les informations
175
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Ces fonctionnalités principales du site web visent à offrir une expérience utilisateur fluide et à faciliter
la gestion des informations relatives aux équipements des pylônes inspectés. Elles permettent aux utilisateurs
autorisés d’accéder facilement aux données pertinentes, de prendre des décisions éclairées en matière de
Python
Dans le cadre du développement de ce site web avec Django, nous avons utilisé plusieurs langages
pour différentes parties de l’application. Voici une présentation des langages clés :
HTML est le langage de balisage standard utilisé pour structurer et présenter le contenu d’une page
web. Il définit la structure et l’organisation des éléments de la page, tels que les titres, les paragraphes, les
listes, les images, etc .Nous avons utilisé HTML pour créer la structure de nos pages web, en définissant les
CSS est un langage de feuilles de style utilisé pour définir l’apparence et la mise en forme des éléments
HTML d’une page web. Il permet de contrôler les couleurs, les polices, les marges, les alignements, les
animations et bien d’autres aspects visuels. Nous avons utilisé CSS pour styliser et personnaliser l’apparence
de notre site web, en appliquant des règles de style à nos éléments HTML.
JavaScript :
JavaScript est un langage de programmation utilisé pour rendre les pages web interactives et dynamiques.
Il permet d’ajouter des fonctionnalités avancées, de manipuler le contenu de la page, de réagir aux actions
de l’utilisateur et de communiquer avec le serveur. Nous avons utilisé JavaScript pour gérer les interactions
Python :
Python est un langage de programmation polyvalent et puissant, largement utilisé dans le développement
web. Dans le cadre de notre projet Django,nous avons utilisé Python pour la logique métier, le traitement
des données, la manipulation de la base de données et l’interaction avec le framework Django. Python
offre une syntaxe claire et lisible, ainsi qu’une vaste gamme de bibliothèques et de modules qui facilitent
176
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
En combinant ces langages, nous avons pu créer des pages web bien structurées (HTML), stylisées
(CSS), interactives (JavaScript) et fonctionnelles (Python) dans le cadre de notre application Django. Cette
combinaison de langages nous a permis de mettre en place une expérience utilisateur conviviale et d’offrir
Spline et Sketchfab sont deux technologies utilisées dans notre site web pour la visualisation des
modèles 3D interactifs des pylônes et des projets. Voici une présentation de ces deux outils :
Spline : Spline est une bibliothèque JavaScript qui permet de créer et de manipuler des modèles
3D interactifs. Elle offre des fonctionnalités avancées pour la visualisation, le rendu et l’interaction avec des
objets 3D. Spline facilite la création d’expériences immersives en permettant aux utilisateurs de zoomer,
de faire pivoter et de manipuler les modèles 3D avec fluidité. Cette technologie contribue à une meilleure
Sketchfab :
Sketchfab est une plateforme en ligne qui permet de partager et de visualiser des modèles 3D de
manière interactive. Elle offre un large éventail de fonctionnalités pour l’importation, la visualisation et
le partage de modèles 3D. Dans notre site web, nous utilisons l’intégration de Sketchfab pour afficher les
modèles 3D des pylônes. Cette intégration permet aux utilisateurs de naviguer dans les modèles, d’explorer
les détails, d’effectuer des zooms, des rotations et d’autres interactions pour mieux appréhender la structure
La structure globale de notre application de site web pour l’inspection des pylônes par drone intelligent
repose sur une architecture solide et bien organisée. Notre site web suit le modèle d’architecture de Django, le
modèle-vue-template (MVT), ce qui permet une séparation claire des responsabilités et facilite la maintenance
Modèles (Models) :
Les modèles définissent la structure et les relations des données de notre application. Dans le contexte
177
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
de notre projet, les modèles décrivent les équipements des pylônes, les résultats de la détection d’objets, les
Vues (Views) :
Les vues gèrent la logique métier de notre application. Elles sont responsables de la récupération des
données des modèles, de leur traitement et de la préparation des données à afficher. Nos vues interagissent
avec les modèles pour récupérer les informations nécessaires et les transmettent aux templates pour l’affichage.
Templates :
Les templates sont responsables de la présentation des données aux utilisateurs. Nous utilisons une
combinaison de HTML, CSS et balises spéciales de Django pour afficher dynamiquement les données. Nos
templates reçoivent les données des vues et les intègrent dans la structure HTML appropriée, créant ainsi des
URLs :
Les URLs de notre site web sont gérées par Django à l’aide d’un système de routage basé sur des
expressions régulières. Chaque URL est associée à une vue spécifique, ce qui nous permet de définir les chemins
Notre application utilise SQLite, une base de données relationnelle légère intégrée à Django par défaut.
SQLite stocke les données relatives aux équipements des pylônes, aux résultats de la détection d’objets et
En combinant ces éléments clés, notre site web offre une structure bien définie et organisée. Les
modèles définissent la structure des données, les vues gèrent la logique métier, les templates prennent en
charge la présentation des données et les URLs assurent le routage des requêtes utilisateur. La base de
données SQLite permet de stocker et de récupérer les informations nécessaires de manière efficace.
Cette architecture solide et bien organisée offre une base robuste pour notre site web, permettant une
4.10.2 Présentation de la manière dont Django gère les URL, les formulaires
et les vues
Django offre une gestion puissante et efficace des URL, des formulaires et des vues dans le développement
de sites web. Voici une présentation de la manière dont Django gère ces éléments clés :
178
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Django propose un système de gestion des URLs basé sur des expressions régulières. Il utilise un
fichier de configuration appelé "urls.py" pour mapper les URLs entrantes aux vues correspondantes. Dans
ce fichier, nous définissons des expressions régulières et les associons aux fonctions de vue appropriées. Cela
permet de définir facilement les chemins d’accès aux différentes pages ou fonctionnalités de notre site web.
Django fournit des fonctionnalités intégrées pour la gestion des formulaires. Il inclut un module de
formulaire qui facilite la création, la validation et le traitement des données saisies par les utilisateurs. Nous
pouvons définir les champs, les types de données attendus, les règles de validation et les messages d’erreur
personnalisés. Django gère également la sécurité des formulaires en protégeant contre les attaques de type
Les vues dans Django sont responsables de la logique métier de notre application. Elles sont associées
aux URLs correspondantes et définissent le comportement à exécuter lorsque ces URLs sont appelées. Les
vues peuvent récupérer les données des modèles, effectuer des opérations de traitement, préparer les données à
afficher et les transmettre aux templates pour le rendu final. Django offre une grande flexibilité en permettant
Les vues dans Django peuvent également gérer les requêtes HTTP, les paramètres d’URL, les cookies,
les sessions et les autorisations utilisateur. Elles peuvent renvoyer différentes réponses HTTP, telles que des
pages HTML, des fichiers JSON, des redirections ou des erreurs 404.
Django facilite également la réutilisation du code en permettant de regrouper des vues similaires dans
des vues génériques. Ces vues génériques fournissent des fonctionnalités communes telles que la création, la
mise à jour, la suppression et la liste des objets. Elles réduisent la duplication du code et simplifient le
En résumé, Django offre une gestion complète des URLs, des formulaires et des vues dans le développement
de sites web. Son système de gestion des URLs permet de mapper facilement les URLs aux vues correspondantes.
Le module de formulaire intégré facilite la création et la validation des formulaires. Les vues gèrent la logique
métier, le traitement des données et le rendu des pages. En combinant ces fonctionnalités, Django simplifie
le développement web et offre une structure cohérente pour la gestion des fonctionnalités clés de notre
application.
179
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Le site web développé pour l’inspection des pylônes par drone intelligent comprend plusieurs pages
clés qui offrent différentes fonctionnalités aux utilisateurs. Voici une description des pages principales :
Page d’authentification :
Cette page permet aux utilisateurs de s’authentifier en entrant leurs identifiants de connexion (nom
d’utilisateur et mot de passe). Elle assure la sécurité de l’accès aux fonctionnalités restreintes du site web.
Les utilisateurs doivent s’identifier avec succès avant de pouvoir accéder aux autres pages.
Page d’inscription :
La page d’inscription permet aux nouveaux utilisateurs de créer un compte sur le site web. Ils doivent
fournir des informations telles que leur nom, leur adresse e-mail et leur mot de passe. Une fois l’inscription
Tableau de bord :
Le tableau de bord est la page centrale du site web, où les utilisateurs authentifiés accèdent aux
informations essentielles concernant les pylônes inspectés. Il présente un aperçu clair et organisé des données,
telles que les informations sur les équipements des pylônes, les résultats de la détection d’objets. Les utilisateurs
peuvent naviguer dans les différentes sections du tableau de bord pour accéder aux détails spécifiques.
Page de formulaire :
La page de formulaire permet aux utilisateurs de saisir les informations relatives aux équipements
des pylônes. Les champs du formulaire sont conçus de manière conviviale et adaptés aux différentes données
à collecter. Les utilisateurs peuvent remplir les informations nécessaires, telles que le numéro du pylône, la
localisation, les caractéristiques. Une fois le formulaire soumis, les données sont enregistrées dans la base de
données.
Ces pages présentent des modèles 3D interactifs des pylônes et des projets. Les utilisateurs peuvent
manipuler les modèles, effectuer des zooms, des rotations et des déplacements pour visualiser les détails et
mieux comprendre la structure des pylônes inspectés. Les modèles 3D sont rendus disponibles grâce à des
Cette page affiche les résultats de la détection d’objets réalisée lors des inspections des pylônes. Les
utilisateurs peuvent visualiser les objets détectés, les zones problématiques identifiées et les informations
associées à ces objets. Ces résultats sont présentés de manière claire et organisée, facilitant ainsi l’analyse des
180
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Chacune de ces pages offre des fonctionnalités spécifiques et permet aux utilisateurs d’interagir avec
les données et les fonctionnalités du site web. Elles contribuent à fournir une expérience utilisateur riche et
4.11.1 Authentification
Le système d’authentification utilisé dans notre site web repose sur le framework Django, qui offre
des fonctionnalités intégrées pour gérer l’authentification des utilisateurs de manière sécurisée. Voici une
Django fournit une gestion complète des utilisateurs, y compris la création de comptes, la gestion des
profils utilisateurs et les opérations courantes telles que la récupération de mot de passe. Les informations
des utilisateurs, telles que leurs noms, adresses e-mail et mots de passe, sont stockées de manière sécurisée
Django utilise des techniques de hachage et de salage pour sécuriser les mots de passe des utilisateurs.
Les mots de passe ne sont jamais stockés en texte brut, mais sous forme de hachage, ce qui garantit la
confidentialité des informations des utilisateurs. Lorsque les utilisateurs se connectent, leurs mots de passe
sont comparés aux hachages stockés dans la base de données pour vérifier l’authenticité.
181
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Django gère les sessions utilisateur de manière transparente. Lorsqu’un utilisateur se connecte, une
session est créée et un identifiant unique (jeton) lui est attribué. Cet identifiant est utilisé pour maintenir l’état
de la session et identifier l’utilisateur tout au long de sa navigation sur le site web. Les sessions permettent
de stocker des informations spécifiques à l’utilisateur, telles que ses préférences ou son statut de connexion.
framework, telles que la gestion des formulaires, les vues génériques et les modèles. Cela facilite la création
Grâce au système d’authentification de Django, notre site web offre une sécurisation robuste des
comptes utilisateurs. Les utilisateurs peuvent créer des comptes et se connecter en toute sécurité .
Les fonctionnalités liées à l’authentification dans notre site web offrent aux utilisateurs une expérience
sécurisée et personnalisée. Voici une présentation des principales fonctionnalités associées à l’authentification :
Les utilisateurs ont la possibilité de créer un compte sur notre site web en remplissant un formulaire
d’inscription. Ce formulaire demande des informations telles que le nom d’utilisateur, l’adresse e-mail et le
mot de passe. Une fois l’inscription terminée, les informations sont vérifiées et le compte utilisateur est créé.
182
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Les utilisateurs enregistrés peuvent se connecter à leur compte en utilisant leurs identifiants de
connexion (nom d’utilisateur ou adresse e-mail et mot de passe). La connexion est vérifiée par rapport aux
informations enregistrées dans la base de données. Les utilisateurs authentifiés ont accès à des fonctionnalités
utilisateur se connecte, une session est créée, et un identifiant de session unique est attribué à cet utilisateur.
Cette session permet de maintenir l’état de connexion tout au long de la navigation sur le site web. Les
Si un utilisateur oublie son mot de passe, notre site web propose une fonctionnalité de récupération
de mot de passe. L’utilisateur peut fournir son adresse e-mail associée à son compte, et un e-mail de
réinitialisation de mot de passe lui est envoyé. Ce processus lui permet de créer un nouveau mot de passe et
Déconnexion sécurisée :
183
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Les utilisateurs ont la possibilité de se déconnecter de leur compte de manière sécurisée. Cette
fonctionnalité met fin à leur session et les redirige vers une page appropriée, confirmant leur déconnexion.
En combinant ces fonctionnalités, notre site web assure une expérience d’authentification sécurisée
et conviviale. Les utilisateurs peuvent créer des comptes, se connecter, gérer leurs informations personnelles,
récupérer leur mot de passe en cas de besoin et accéder aux fonctionnalités appropriées en fonction de leurs
autorisations. Ces fonctionnalités contribuent à garantir la confidentialité des données utilisateur et à offrir
La page d’accueil, également appelée "Landing page" joue un rôle essentiel pour capter l’attention
des visiteurs et les inciter à explorer davantage notre site. Voici une description du contenu et du but de la
page d’accueil :
Présentation du projet :
La page d’accueil met en avant une présentation claire et concise du projet d’inspection des pylônes
par drone intelligent. Nous fournissons un aperçu des objectifs du projet, de son importance et des avantages
qu’il apporte. Cette présentation permet aux visiteurs de comprendre rapidement le contexte et l’objectif de
notre initiative.
Modèles 3D interactifs :
Pour susciter l’intérêt des visiteurs, la page d’accueil intègre des modèles 3D interactifs des pylônes ou
des projets. Ces modèles, créés avec des technologies telles que Spline et Sketchfab, permettent aux visiteurs
d’explorer virtuellement les pylônes inspectés. Ils peuvent zoomer, faire pivoter et visualiser les détails des
Le but principal de la page d’accueil est d’attirer l’attention des visiteurs, de les informer sur notre
projet d’inspection des pylônes par drone intelligent et de les encourager à explorer davantage notre site web.
En utilisant des éléments visuels attrayants, des informations clés, nous cherchons à susciter l’intérêt et à
La page d’accueil de notre site web offre une expérience visuelle et fonctionnelle immersive pour
captiver les visiteurs dès leur arrivée. Voici une présentation des éléments visuels et fonctionnels de la page :
184
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
La page d’accueil utilise une animation des sections au défilement pour créer une expérience dynamique
et engageante. Lorsque les visiteurs font défiler la page vers le haut ou vers le bas, les différentes sections
s’animent, donnant une sensation fluide de transition entre les contenus. Cette animation est réalisée à l’aide
de la bibliothèque GSAP (GreenSock Animation Platform), qui permet des transitions fluides et des effets
visuels captivants.
La page d’accueil intègre des modèles 3D interactifs qui illustrent de manière visuelle les aspects
185
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
clés de notre projet d’inspection des pylônes par drone intelligent.Cette description permet aux visiteurs de
comprendre rapidement l’essence du projet et son importance. Les visiteurs peuvent effectuer des zooms, des
rotations et des déplacements pour une meilleure compréhension et une immersion dans le projet.
Une fonctionnalité interactive de pilotage du drone est intégrée à la page d’accueil. Cela permet aux
visiteurs de simuler virtuellement le pilotage d’un drone pour inspecter les pylônes. Ils peuvent contrôler les
Cette fonctionnalité offre une expérience immersive et engageante, en permettant aux visiteurs de se mettre
Dashboard 3D attractif :
La page d’accueil peut également présenter un aperçu du dashboard en 3D, qui offre une visualisation
dynamique des données et des résultats du projet. Le dashboard 3D présente les informations clés sous forme
permet aux visiteurs de comprendre rapidement les performances, les tendances et les résultats du projet,
186
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
En combinant ces éléments visuels et fonctionnels, la page d’accueil crée une expérience immersive et
interactive pour les visiteurs. Elle les attire visuellement, leur permet d’explorer les modèles 3D, de piloter
virtuellement un drone et de se plonger dans les données et les résultats du projet via le dashboard en 3D.
Ces éléments contribuent à créer un impact visuel fort et à engager les visiteurs dans notre site web et notre
projet.
4.11.3 Formulaire
Le formulaire joue un rôle essentiel dans notre site web, en permettant aux utilisateurs de saisir et de
soumettre des informations pertinentes liées aux équipements des pylônes. Voici une explication du formulaire
et de son rôle :
Collecte d’informations :
Le formulaire est conçu pour collecter des informations spécifiques sur les équipements des pylônes. Il
peut inclure des champs tels que le numéro du pylône, les caractéristiques techniques, les problèmes identifiés.
Les utilisateurs peuvent remplir ces champs en fonction des données pertinentes pour chaque pylône inspecté.
Une fois que les utilisateurs remplissent le formulaire et le soumettent, les données saisies sont
enregistrées dans la base de données. Cela permet de stocker de manière structurée et sécurisée les informations
187
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
relatives aux équipements des pylônes pour une utilisation ultérieure. La base de données, telle SQLite dans
Le formulaire peut comporter des règles de validation pour s’assurer que les utilisateurs saisissent
des données correctes et cohérentes. Les champs peuvent être configurés avec des contraintes de format, des
vérifications de type numérique ou des conditions spécifiques pour garantir l’intégrité des données enregistrées.
Le formulaire est conçu pour offrir une interface utilisateur conviviale et intuitive. Les champs peuvent
être organisés de manière logique, avec des descriptions claires pour guider les utilisateurs lors de la saisie
des informations.
Le formulaire joue un rôle central dans la collecte, le stockage et la gestion des informations relatives
aux équipements des pylônes. Il offre une interface conviviale permettant aux utilisateurs de fournir des
données pertinentes et précieuses pour la maintenance et la surveillance des pylônes. En permettant aux
utilisateurs de remplir le formulaire de manière efficace, notre site web facilite la gestion des informations et
contribue à une prise de décision éclairée pour les opérations d’inspection et de maintenance des pylônes.
188
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Dans le cadre de notre projet, nous avons développé un système de formulaire pour collecter et gérer
les informations relatives aux équipements des pylônes. La création et la gestion de ce formulaire ont été
réalisées en utilisant les fonctionnalités intégrées de Django. Voici les étapes que nous avons suivies pour
Définition du formulaire :
Nous avons créé un fichier forms.py où nous avons défini notre formulaire. Nous avons importé la
classe forms de Django et créé une sous-classe de forms.Form pour définir notre formulaire. Dans cette
sous-classe, nous avons défini les champs du formulaire à l’aide des différents types de champs disponibles,
Django offre une validation intégrée des données des formulaires. Nous avons spécifié des règles de
validation pour chaque champ du formulaire en utilisant les attributs tels que required, max-length, minlength,
validators. Ces règles de validation garantissent que les données saisies par les utilisateurs sont correctes et
cohérentes.
Dans notre vue correspondante, nous avons importé le formulaire que nous avons défini dans le fichier
forms.py. Nous avons ensuite instancié le formulaire et l’avons passé au contexte de rendu pour qu’il puisse
être affiché dans notre template. Nous avons également personnalisé l’apparence du formulaire en utilisant
Lorsque le formulaire est soumis par l’utilisateur, nous avons accédé aux données saisies via request.POST
189
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
dans notre vue. Nous avons alors validé les données en utilisant la méthode is-valid() du formulaire. Si les
données sont valides, nous les avons traitées et enregistrées dans notre base de données ou avons effectué
En utilisant les fonctionnalités intégrées de Django, nous avons pu créer et gérer efficacement notre
rendu, offrant ainsi une expérience utilisateur conviviale lors de la saisie et de la soumission des informations.
Le tableau de bord (Dashboard) de notre site web est une fonctionnalité centrale qui offre aux
utilisateurs une vue d’ensemble des informations clés relatives aux pylônes inspectés. Voici une description
Le tableau de bord affiche les informations essentielles sur les pylônes, telles que le gain de l’antenne
,largeur de faisceau, numéro de modèle et d’autres données pertinentes. Ces informations permettent aux
Au centre du tableau de bord, nous affichons un modèle 3D interactif du pylône inspecté. Les
utilisateurs peuvent faire pivoter le modèle, effectuer des zooms et explorer les détails de la structure du
pylône. Cette fonctionnalité offre une visualisation réaliste et immersive, facilitant ainsi la compréhension de
190
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Dans le tableau de bord, nous avons intégré une animation où un drone virtuel tourne autour du
pylône en mouvement. Cette animation ajoute une dimension visuelle dynamique et réaliste à l’expérience
utilisateur, simulant le processus d’inspection par drone et renforçant l’immersion dans le projet.
Le tableau de bord comporte une barre de navigation latérale (sidebar) qui permet aux utilisateurs
de naviguer vers d’autres pages et fonctionnalités du site web. Cette barre de navigation facilite l’accès aux
différentes sections du site, telles que les formulaires, les résultats de la détection d’objets. Les utilisateurs
peuvent cliquer sur les éléments de la barre de navigation pour passer rapidement d’une section à une autre.
Background en 3D :
Le tableau de bord présente un fond en 3D, qui ajoute une ambiance visuelle immersive à l’ensemble
d’inspection des pylônes. Cette fonctionnalité vise à créer une atmosphère engageante et captivante pour les
utilisateurs.
Le tableau de bord affiche également des informations spécifiques à l’antenne du pylône, telles que le
gain de l’antenne, la largeur de faisceau, le numéro de modèle, le nombre d’antennes, la polarisation, le type
de connecteur et la fréquence. Ces données permettent aux utilisateurs d’obtenir des détails techniques sur
l’antenne utilisée, ce qui est crucial pour la maintenance et la surveillance des pylônes.
Le tableau de bord offre une interface visuelle riche et fonctionnelle, fournissant aux utilisateurs
une vue d’ensemble complète des pylônes inspectés. Les fonctionnalités telles que le modèle 3D interactif,
l’animation du drone, la barre de navigation latérale et les informations sur l’antenne contribuent à une
expérience utilisateur immersive et intuitive, permettant aux utilisateurs de prendre des décisions éclairées
191
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Figure 4.39 : Inventaire des Antennes : Modèle 3D du Pylône et Affichage des Informations
La page de résultat de la détection d’objets est une fonctionnalité clé de notre site web. Elle permet
d’afficher les images résultant du processus de détection d’objets. Voici une description de la fonctionnalité
Détection d’objets :
La détection d’objets est réalisée à l’aide de techniques d’intelligence artificielle et de vision par
ordinateur. Elle permet d’identifier et de localiser automatiquement des objets spécifiques dans une image.
Notre système utilise des modèles pour détecter des catégories d’objets d’intérêt, tels que les antennes .
Une fois que les images ont été traitées et les objets détectés, la page de résultat de la détection
d’objets affiche les images avec les objets mis en évidence. Chaque objet détecté est encadré pour attirer
l’attention de l’utilisateur. Cette mise en évidence permet de visualiser facilement les objets détectés dans
chaque image.
Interactions utilisateur :
La page de résultat de la détection d’objets peut permettre aux utilisateurs d’interagir avec les
résultats. Par exemple, ils peuvent cliquer sur un objet détecté pour voir clairement l’image .
192
Chapitre 4. Release 3 - Visualisation des résultats via le tableau de bord Django
Figure 4.40 : Présentation des résultats de la détection d’objets lors des Inspections de Pylônes
En offrant la fonctionnalité de détection d’objets et en affichant les résultats sur la page dédiée, notre
site web permet aux utilisateurs de télécharger des images, de détecter automatiquement les objets d’intérêt
et de visualiser les résultats de manière claire et conviviale. Cela facilite l’analyse des images, l’identification
des objets pertinents et la prise de décisions basées sur les résultats de la détection.
Conclusion
En refermant ce chapitre passionnant, nous avons été transportés dans la Release 3, où la conception
de l’architecture et la réalisation du Dashboard ont pris vie. Les sprints 5 et 6 ont dévoilé les coulisses du
backend et du frontend, révélant l’interconnexion avec Google Drive, l’intégration du modèle Tesseract OCR
et la création d’un Dashboard captivant. Nous avons découvert comment chaque aspect de l’architecture et de
l’expérience utilisateur est méticuleusement conçu pour offrir une performance optimale et une convivialité
inégalée. Nous sommes restés hypnotisés par l’excitation et l’innovation qui animent chaque étape de cette
extraordinaire aventure technologique. Nous nous préparons à poursuivre notre exploration avec le dernier
193
Conclusion générale
guidé chaque membre de DroneVision tout au long de ce projet. De la conception à la réalisation d’un drone
visionnaire, nous avons surmonté des défis complexes avec détermination. Chaque étape de ce voyage a été
marquée par notre passion inébranlable et notre volonté constante de repousser les limites.
Nous sommes fiers des résultats obtenus, qu’il s’agisse de l’intégration de technologies sophistiquées
ou du développement d’un site Web intuitif. Ces réalisations témoignent de notre dévouement et de notre
Cependant, nous considérons ce rapport comme une étape intermédiaire dans notre parcours. Nous
sommes enthousiasmés par les perspectives d’exploration de nouvelles frontières et d’adoption de solutions
innovantes telles que la réalité augmentée (AR) et la réalité virtuelle (VR). Nous sommes déterminés à
continuer d’évoluer et à apporter des transformations significatives à divers secteurs, tels que l’agriculture,
Nous tenons à remercier tous les membres de l’équipe DroneVision pour leur travail acharné, leur
collaboration et leur esprit d’équipe. Chacun de nous a joué un rôle essentiel dans la concrétisation de notre
vision commune.
En regardant vers l’avenir, nous sommes animés par une passion renouvelée et une volonté d’embrasser
de nouveaux défis. Nous sommes convaincus que notre travail continuera à avoir un impact significatif et à
Ce rapport marque une étape importante, mais ce n’est que le début d’une aventure continue
pour DroneVision. Nous sommes impatients de poursuivre notre voyage, d’écrire de nouveaux chapitres
194
Bibliographie
[3] OSHA Communication Towers, Consulté le 02-2023. adresse : https : / / www . osha . gov /
communication-towers.
[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.
[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/.
195
Bibliographie
[14] Popular models | 3D CAD Model Collection | GrabCAD Community Library, Consulté le
03-2023. adresse : https://grabcad.com/library.
[16] Tuni Smart Innovation, Consulté le 03-2023. adresse : https://tuni- smart- innovation.
com/.
[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.
[22] 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.
[25] U. Nouvelle. « Le drone a 100 ans. » (Consulté le 2023-06-25), adresse : https : / / www .
usinenouvelle.com/article/le-drone-a-100-ans.N1848717.
196
Bibliographie
[31] FutureLab3D. « How does a Brushless Motor and ESC Work ? » (Consulté le 2023-06-25),
adresse : https://futurelab3d.com/how-brushless-motor-and-esc-work/.
[32] GrabCAD. « FLYSKY FS-R6B | 3D CAD Model Library. » (Consulté le 2023-06-25), adresse :
https://grabcad.com/library/flysky-fs-r6b-1.
[33] GrabCAD. « KK 2.0 Flight Controller | 3D CAD Model Library. » (Consulté le 2023-06-25),
adresse : https://grabcad.com/library/kk-2-0-flight-controller-1.
[34] GrabCAD. « Turnigy Nanotech - Battery 1800mAh 2S | 3D CAD Model Library. » (Consulté
le 2023-06-25), adresse : https : / / grabcad . com / library / turnigy - nanotech - battery -
1800mah-2s-1.
[35] GrabCAD. « Exceed RC Proton 30A ESC | 3D CAD Model Library. » (Consulté le 2023-06-25),
adresse : https://grabcad.com/library/exceed-rc-proton-30a-esc-1.
[37] GrabCAD. « DJI Innovations Flame Wheel F-450 Quadrotor Frame. » (Consulté le 2023-06-25),
adresse : https : / / grabcad . com / library / dji - innovations - flame - wheel - f - 450 -
quadrotor-frame-1.
197
Bibliographie
[39] GrabCAD. « Brushless Motor BLDC 2212-6T 2200KV. » (Consulté le 2023-06-25), adresse :
https://grabcad.com/library/brushless-motor-bldc_2212-6t-2200kv-1.
[40] Amazon.in. « REES52 Motor Multi-Rotor RC029. » (Consulté le 2023-06-25), adresse : https:
//www.amazon.in/REES52-Motor-Multi-Rotor-RC029/dp/B01MZ8DBEL.
[41] B. Trading. « Controlleur Moteur Brushless ESC 30A. » (Consulté le 2023-06-25), adresse :
https://2betrading.com/accueil/4244-controlleur-moteur-brushless-esc-30a.html.
[43] Didactico. « Contrôleur de vol KK 2.1.5 avec LCD. » (Consulté le 2023-06-25), adresse :
https://www.didactico.tn/produit/controleur-de-vol-kk-2-1-5-avec-lcd/.
[45] Amazon.com. « Flysky FS-i6X Transmitter and Receiver. » (Consulté le 2023-06-25), adresse :
https://www.amazon.com/Transmitter-Controller-Receiver-Helicopter-Quadcopter/
dp/B07Z9YNP7S.
[46] B. B. Tunisie. « Contrôleur moteur brushless ESC 30A. » (Consulté le 2023-06-25), adresse :
https://bestbuytunisie.tn/produit/controleur-moteur-brushless-esc-30a/.
[50] AliExpress. « Controlleur de vol APM 2.8. » (Consulté le 2023-06-25), adresse : https :
//fr.aliexpress.com/item/32774442452.html.
198
Bibliographie
[52] T. D. Science. « Understanding SSD Multibox : Real-Time Object Detection in Deep Learning. »
(Consulté le 2023-06-25), adresse : https://towardsdatascience.com/understanding-ssd-
multibox-real-time-object-detection-in-deep-learning-495ef744fab.
[53] Microsoft. « Object Detection using Fast R-CNN. » (Consulté le 2023-06-25), adresse :
https://learn.microsoft.com/en- us/cognitive- toolkit/object- detection- using-
fast-r-cnn.
[54] T. D. Science. « R-CNN, Fast R-CNN, Faster R-CNN, YOLO : Object Detection Algorithms. »
(Consulté le 2023-06-25), adresse : https://towardsdatascience.com/r-cnn-fast-r-cnn-
faster-r-cnn-yolo-object-detection-algorithms-36d53571365e.
[55] T. D. Science. « Using Transformers for Computer Vision. » (Consulté le 2023-06-25), adresse :
https://towardsdatascience.com/using-transformers-for-computer-vision-6f764c5a078b.
[56] T. D. Science. « YOLO : You Only Look Once - Real-Time Object Detection Explained. »
(Consulté le 2023-06-25), adresse : https : / / towardsdatascience . com / yolo - you - only -
look-once-real-time-object-detection-explained-492dc9230006.
[57] DataCamp. « YOLO Object Detection Explained. » (Consulté le 2023-06-25), adresse : https:
//www.datacamp.com/blog/yolo-object-detection-explained.
[59] Django. « Django Web Framework. » (Consulté le 2023-06-25), adresse : https : / / www .
djangoproject.com/.
[61] YouTube. « Python Django Web Framework - Full Course. » (Consulté le 2023-06-25),
adresse : https://www.youtube.com/watch?\\v=XUFLq6dKQok&list=PLO_fdPEVlfKoanjvTJbIbd9V5d9Pzp8
[62] Mozilla. « MDN Web Docs - HTML. » (Consulté le 2023-06-25), adresse : https://developer.
mozilla.org/fr/docs/Web/HTML.
199
Bibliographie
[64] Mozilla. « MDN Web Docs - JavaScript Language Overview. » (Consulté le 2023-06-25),
adresse : https : / / developer . mozilla . org / en - US / docs / Web / JavaScript / Language _
overview.
[65] W3C. « CSS - Cascading Style Sheets. » (Consulté le 2023-06-25), adresse : https://www.
w3.org/standards/#:~:text=What\%20is\%20CSS\%3F,any\%20XML\%2Dbased\%20markup\
%20language..
200
PÌl
Otm
rt³ ¤ ¨AnW}¯ ºA@ dts TyÐ CAyV ¤d r¶AW Ty¶Ahn Tnsl A¾A¤rK r§rqt £@¡ dq
Tw ybW Y AhAFC¤ ¨qyq
w ¨ AAyb m r¶AW wq .¯AO¯ r Lytft ºAyJ±A
.C rq n} Cd¤ TAyO §r T®F Ez`§ Am , r± Yl ¶ wK ¨AnW}¯ ºA@ Ktk§ .Awl`m
. r± TAy} ºAf s§¤ ,yAkt lq§¤ ,Lytft Tylm Lyt ¤rKm @¡ wq§
Otm
rt³ ,¨AnW}¯ ºA@ ,ºArhk r ,Lytft ,¯AO¯ ,TyÐ CAyV ¤d r¶AV : yAf Aml
.
b§rkF AA , wy ,ºAyJ±A
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 940 584 : HAf 71 135 100 : Ah YA TyrK «Ð Am± AC CAJ
Rue des entrepreneurs, Z.I Charguia II Tél : 71 135 100 Fax : 71 940 584 Email : contact@sotetel.tn
chaabenm ed@voila.f r : ¨¤rtk¯ d§rb 71 749 100 : HAf 71 748 910 : Ah AVr2080AVrq ©r± wm 2
Avenue de la République BP 77-1054 Amilcar Tél : 71 748 910 Fax : 71 749 100 Email :chaabenm ed@voila.f r