Projet ENSTO : Automatisation d'accès par lecture de plaques
Le contexte
Dans le cadre de mon projet de fin de BTS CIEL, mon équipe et moi avons travaillé pour l'entreprise ENSTO. L'objectif : créer un système automatisé pour gérer l'accueil des camions de livraison (barrière automatique, borne tactile, base de données).
Mon rôle : Reconnaissance d'images
Ma mission était de concevoir le module de reconnaissance de plaques d'immatriculation (LPR). En gros, mon programme devait détecter un camion à l'entrée, isoler sa plaque, lire le texte, et l'envoyer en temps réel à l'API de notre serveur.
Pour la stack technique, j'ai utilisé :
- Un Raspberry Pi avec module caméra pour la prise de vue.
- Un Serveur PC Linux pour le traitement.
- Python, avec Tkinter pour l'interface graphique et OpenCV pour le traitement d'image.
Un problème matériel
Au début, j'étais parti sur une solution basée sur l'Intelligence Artificielle (YOLOv8). Sauf que j'ai vite réalisé que notre matériel n'était pas adapté : les processeurs n'avaient pas les instructions requises (AVX) pour faire tourner les modèles de Machine Learning. L'IA faisait littéralement planter le système. J'ai dû totalement repenser mon approche.
Ma solution
J'ai abandonné l'IA pour tout recoder de zéro avec une approche 100% mathématique et algorithmique via OpenCV. J'ai créé un pipeline de traitement d'images léger et sur-mesure :
- Filtre HSV : pour corriger la lumière et isoler les teintes des plaques.
- Érosion morphologique : pour nettoyer l'image et détacher les caractères.
- Template Matching : pour reconnaître les lettres sans utiliser d'OCR lourd.
Au final, j'ai packagé tout ça dans une interface logicielle en Python. Mon application pilote la caméra du Raspberry Pi à distance (via SSH), traite l'image localement, et expédie la plaque à la base de données.