VisioForge

Reconnaissance de plaques (ANPR/LPR) en C# et .NET

Lisez les plaques d'immatriculation depuis des caméras IP, des webcams et des fichiers vidéo en C#. LicensePlateRecognizerBlock trouve chaque plaque, la lit et renvoie le texte avec un horodatage — sur l'appareil, dans le même pipeline qui affiche, enregistre et diffuse la vidéo.

À partir de €500/an · licence Lifetime à partir de €1,500

Un lecteur de plaques n'est pas un OCR général pointé sur une voiture

La reconnaissance automatique de plaques d'immatriculation — ANPR, aussi appelée ALPR, LPR ou LAPI — n'est pas un OCR général. Un OCR général lit chaque panneau, autocollant et logo de l'image et ne sait pas quel texte est la plaque. L'ANPR a besoin de deux modèles : un détecteur qui trouve les plaques et un modèle OCR entraîné sur les caractères de plaques. Il faut aussi les images — décodées depuis la caméra, prélevées à un rythme que le matériel peut suivre, sans bloquer la vidéo en direct. Dans les SDK VisioForge, LicensePlateRecognizerBlock est un bloc du pipeline vidéo : le SDK décode la source, le bloc exécute les deux modèles dans un thread d'arrière-plan, et les images continuent vers l'écran, un fichier ou un flux réseau.

Construire l'ANPR soi-même ou appeler une API cloud vs LicensePlateRecognizerBlock

ANPR typique maison ou cloudLicensePlateRecognizerBlock dans un pipeline VisioForge
Trouver la plaqueTrouver ou entraîner un détecteur de plaques, l'exporter en ONNX, écrire le pré- et post-traitementDétecteur de plaques FastALPR YOLOv9-T (MIT) ; DetectionConfidenceThreshold et MaxDetections
Lire les caractèresUn OCR général qui lit aussi tous les autres textes de l'imageUne tête fast-plate-ocr dédiée aux plaques ; Text arrive en majuscules, sans caractères non alphanumériques
Obtenir les images de la caméraUn décodeur ou un grabber distinct pour chaque type de sourceToute source du SDK : caméras IP RTSP, webcams, fichiers vidéo
Garder la vidéo en direct fluideLa reconnaissance sur le thread de capture bloque le fluxLa reconnaissance tourne dans un worker d'arrière-plan ; les images qui arrivent pendant qu'il est occupé sont ignorées et comptées
Plaques de différents paysRéentraîner le modèle ou changer de fournisseurUne tête globale pour les États-Unis et plus de 90 pays et une tête européenne pour les plaques de l'UE, choisies avec RecognitionModelPath
Où va la vidéoLes images sont envoyées à un service cloud et facturées à l'appelNulle part : ONNX Runtime dans votre processus, sans clé d'API, sans frais à l'appel

Ce que vous apporte le bloc ANPR

LicensePlateRecognizerBlock est fourni dans le paquet VisioForge.DotNet.Core.AI. Il a une entrée et une sortie vidéo, exécute deux modèles ONNX sur les images qu'il reçoit et signale les plaques par l'événement OnPlateRecognized.

  • Reconnaissance en deux étapes : un détecteur YOLOv9-T trouve les plaques, et chaque plaque recadrée est lue par un modèle OCR dédié aux plaques ; les deux sont des modèles FastALPR sous licence MIT
  • Un résultat complet par plaque : Text, Confidence (de 0 à 1), BoundingBox et le Polygon à quatre points en pixels de l'image source, avec le Timestamp de l'image dans chaque événement
  • Têtes régionales : la tête globale couvre les États-Unis et plus de 90 pays, la tête européenne est optimisée pour les plaques de l'UE ; les deux lisent les caractères latins (chiffres et A–Z), et la taille d'entrée est lue dans le modèle lui-même
  • Sur l'appareil : ONNX Runtime avec DirectML sur les GPU Windows, CoreML sur les plateformes Apple et le CPU en repli ; ActiveProvider indique celui qui est utilisé
  • La vidéo en direct reste fluide : la reconnaissance tourne dans un worker d'arrière-plan, FramesToSkip fixe sa fréquence, et LastInferenceTimeMs et DroppedFrameCount montrent si le matériel suit
  • Reconnaissance et enregistrement ensemble : DrawResults dessine les cadres et le texte des plaques dans les images qui continuent vers l'aperçu, un fichier ou un flux
  • Un bloc pour chaque moteur : connectez-le dans un pipeline Media Blocks SDK .NET, ou ajoutez-le avec Video_Processing_AddBlock à VideoCaptureCoreX ou MediaPlayerCoreX

Où l'utiliser

Accès et paiement de parking

Reconnaître la plaque devant une caméra d'entrée pour ouvrir la barrière ou démarrer une session de stationnement.

Journal de péage et de contrôle d'accès

Enregistrer quelles plaques sont passées devant une caméra fixe et quand, avec la vidéo conservée sur site.

Gestion de flotte et de parc

Suivre les véhicules qui entrent et sortent d'un site privé ou d'un dépôt.

Outils de contrôle du trafic

Signaler des plaques pour une vérification manuelle ; les décisions finales de sanction doivent toujours inclure un contrôle humain.

Exemples de code

Tirés de la License Plate Recognition Demo, qui fournit les trois fichiers de modèle FastALPR ; le second exemple ajoute le bloc à VideoCaptureCoreX comme la démo Capture OCR X ajoute son bloc d'IA.

Journaliser les plaques d'une caméra d'entrée

C#

Afficher une caméra IP, lister les plaques et enregistrer en MP4

C#

Pipeline

Dans l'exemple d'entrée, LicensePlateRecognizerBlock se place entre la caméra et un renderer nul. Les plaques sortent par l'événement OnPlateRecognized ; avec DrawResults activé, les images portent les cadres et le texte vers le bloc suivant.

RTSPSourceBlock
LicensePlateRecognizerBlock
NullRendererBlock

Questions fréquentes

La vidéo quitte-t-elle la machine ?▼
Non. LicensePlateRecognizerBlock exécute les deux modèles avec ONNX Runtime dans votre processus. Il n'y a ni service cloud ni clé d'API ; les images et les numéros de plaque restent sur l'appareil. Les modèles sont deux fichiers .onnx que vous livrez avec votre application.
Les plaques de quels pays peut-il lire ?▼
La tête de reconnaissance globale FastALPR couvre les États-Unis et plus de 90 pays ; une tête européenne distincte est optimisée pour les plaques de l'UE. Faites pointer RecognitionModelPath vers la tête de votre région ; le détecteur est le même pour les deux.
Dois-je entraîner mon propre modèle ?▼
Non. Le bloc utilise tels quels le détecteur FastALPR YOLOv9-T et la tête de reconnaissance fast-plate-ocr ; vous fournissez seulement les deux fichiers .onnx. Ils sont livrés avec la License Plate Recognition Demo.
Et les scènes chargées avec beaucoup de véhicules ou des plaques lointaines ?▼
Le bloc signale jusqu'à MaxDetections plaques par image (10 par défaut). Pour des plaques petites ou lointaines, abaissez DetectionConfidenceThreshold ou rapprochez le cadrage de la caméra. Sur des scènes très chargées, un détecteur de véhicules comme YOLOObjectDetectorBlock placé en amont peut d'abord recadrer les véhicules.
De quel SDK ai-je besoin ?▼
LicensePlateRecognizerBlock se trouve dans le paquet VisioForge.DotNet.Core.AI. Utilisez-le dans un pipeline Media Blocks SDK .NET quand vous construisez le pipeline vous-même, ou ajoutez-le avec Video_Processing_AddBlock à VideoCaptureCoreX dans Video Capture SDK .NET ou à MediaPlayerCoreX dans Media Player SDK .NET quand votre application utilise déjà l'un de ces moteurs.
Les plaques d'immatriculation sont-elles des données personnelles ?▼
Les plaques sont généralement considérées comme des données personnelles au sens de réglementations comme le RGPD, et certaines juridictions ont leurs propres règles pour l'ANPR ; vérifiez-les pour votre cas d'usage avant de déployer. Pour masquer les plaques dans un enregistrement au lieu de les lire, PIIRedactionBlock les floute ou les pixellise avec le même détecteur de plaques.