Projet d'équipe · ESILV · 2024 – 2025
Caméra thermique pour la détection de mines
Une mine enfouie ne chauffe ni ne refroidit au même rythme que la terre qui l'entoure : à certaines heures, elle peut se trahir par une tache plus chaude ou plus froide. Pour un projet de veille sur la détection de mines, nous avons prototypé une caméra thermique à bas coût : un capteur infrarouge de 8 × 8 pixels, un Arduino et un serveur Python. Voici ses 3 789 images réelles, enregistrées dans la nuit du 6 au 7 janvier 2025.
Visualisation web réalisée avec une assistance d'IA, à partir des données et du code du projet.
Rejouer la nuit
Chargement des mesures…
–
- –minimum
- –moyenne
- –maximum
- –pixels au-dessus du seuil
Les trous de la courbe sont des coupures de l'enregistrement ; la plus longue dure 1 h 08, entre 23 h 57 et 1 h 05. Les images ont été tournées d'un quart de tour à l'acquisition, comme dans le prototype, pour correspondre à l'orientation du capteur.
La chaîne d'acquisition
-
1
Capteur Grid-EYE
64 thermopiles infrarouges (AMG8833) mesurent chacune la température d'une zone, au quart de degré. Liaison I²C.
-
2
Arduino
Lit les 64 valeurs et les envoie sur le port série sous forme de trame texte, encadrée par
BEGIN_FRAMEetEND_FRAME. -
3
Serveur Python
Un fil d'exécution lit le port série, valide chaque trame, la tourne d'un quart de tour, l'ajoute à un CSV et la sert par une API Flask.
-
4
Tableau de bord
Image en direct, historique image par image et carte des mesures géolocalisées (GPS simulé sur le prototype).
La trame série de l'image affichée
Apprendre à voir sous la pluie
L'autre volet du projet visait la détection visuelle avec YOLO, à partir d'un jeu de 6 714 images annotées. Sur le terrain, il pleut, il neige, il y a du brouillard : un script générait donc, pour chaque image, cinq variantes météo. L'objet ne bouge pas, donc son annotation est simplement recopiée. Ici, sur une scène de synthèse :
Du prototype au navigateur
Le prototype
- Capteur AMG8833 sur Arduino, programmé en C++
- Serveur Flask : lecture série dans un fil dédié, verrous sur les données partagées, CSV, API JSON
- Tableau de bord web : direct, historique et carte OpenLayers
Le volet vision
- Jeu de 6 714 images annotées au format YOLO, exporté de Roboflow
- Script Python d'augmentation : pluie, neige, trois brouillards
- YOLOv5 comme base de détection
Ce que la page ajoute
- Toute la nuit rejouable, avec lissage bicubique des 64 pixels
- Repérage des pixels plus chauds que la médiane de l'image, seuil réglable
- Mesures nettoyées : une trame incomplète écartée sur 3 790