🛠️ VisiVoirie : Mise en place de l'infrastructure de calcul (LXC & Proxmox)

Rédigé par manuel Aucun commentaire
Classé dans : Informatique, HomeLab, Fil Rouge Mots clés : Développement, Fil Rouge, 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 :

Chemin hôte : /mnt/pve-hp-visivoirie

Chemin container : /home/manuel/photos_voirie

Cette 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

# Mise à jour du système et installation des dépendances
sudo apt update && sudo apt upgrade -y
sudo apt install -y python3-pip python-is-python3 python3-venv

 Bash

# Création d'un environnement virtuel dédié (Isoler le projet)
python3 -m venv venv
source venv/bin/activate

 Bash

# Installation des bibliothèques clés
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 !

Les commentaires sont fermés.