🛠️ VisiVoirie : Mise en place de l'infrastructure de calcul (LXC & Proxmox)
Pour mon projet de détection automatisée des dégradations de voirie par IA, la première étape n’est pas le code, mais la construction d’un environnement de calcul solide. Voici comment j’ai configuré mon système sur mon Homelab pour transformer mon flux de données en résultats exploitables.
🏗️ Le choix de l'infrastructure
Pour ce projet, j'ai opté pour un container LXC plutôt qu'une machine virtuelle (VM). Pourquoi ? Pour la performance brute. Sur mon cluster Proxmox (Ryzen 5 5560U), le LXC permet d'accéder directement aux ressources CPU sans la surcouche de virtualisation, ce qui est crucial pour l'inférence IA avec YOLO.
Spécifications du container :
-
Système : Ubuntu 24.04 (Noble Numbat).
-
Processeur : 4 cœurs (pour paralléliser le traitement des images).
-
Mémoire : 4 Go de RAM (le "sweet spot" pour charger les modèles YOLO et OpenCV).
-
Type : Container Privilégié (pour faciliter les montages réseaux NFS sans batailler avec les mappings d'UID).
🔗 Le lien avec le stockage (NFS)
Les milliers de clichés haute résolution capturés sur le terrain ne sont pas stockés dans le container, mais sur mon serveur HP Proliant Microserver Gen8 (pve-hp).
Pour faire le pont, j'utilise la fonctionnalité Mount Point de Proxmox. Le partage NFS est déclaré au niveau du Datacenter, puis injecté directement dans le LXC :
/mnt/pve-hp-visivoirieChemin container :
/home/manuel/photos_voirieCette méthode garantit que mon stockage de 5 To est accessible comme s'il était sur un disque local, tout en préservant l'espace de mon NVMe principal.
🐍 Environnement de développement Python
Une fois le container stable, j'ai mis en place une pile logicielle moderne pour traiter les données. Voici les commandes essentielles pour reproduire cet environnement :
Bash
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3-pip python-is-python3 python3-venv
Bash
python3 -m venv venv
source venv/bin/activate
Bash
pip install ultralytics pillow opencv-python
Rôle des librairies :
-
Ultralytics (YOLOv8) : Le cerveau qui détecte les nids-de-poule et les fissures.
-
OpenCV : Les "mains" qui ouvrent, redimensionnent et dessinent sur les images.
-
Pillow : L'outil indispensable pour extraire les données GPS (EXIF) de chaque photo.
⚠️ Pièges évités (Retour d'expérience)
Lors de la création, j'ai rencontré un warning concernant Systemd 255. Pour le résoudre, il est impératif d'activer le Nesting (Imbrication) dans les fonctionnalités (Features) du container sous Proxmox. Sans cela, certains services système internes au LXC pourraient ne pas démarrer correctement.
🎯 Prochaine étape
L'infrastructure est maintenant prête et "zéro stress". Le pipeline entre mon NAS et mon unité de calcul est ouvert. La prochaine étape sera le développement du premier script Python pour extraire les coordonnées GPS de mes premiers tests réalisés avec mon smartphone Android.
La suite au prochain épisode sur mdsv41.fr !