VisioForge

Riconoscimento targhe (ANPR/LPR) in C# e .NET

Leggi le targhe dei veicoli da telecamere IP, webcam e file video in C#. LicensePlateRecognizerBlock trova ogni targa, la legge e restituisce il testo con un timestamp — sul dispositivo, nella stessa pipeline che mostra, registra e trasmette il video.

Un lettore di targhe non è un OCR generico puntato su un'auto

Il riconoscimento automatico delle targhe — ANPR, detto anche ALPR, LPR o lettura targhe — non è OCR generico. L'OCR generico legge ogni cartello, adesivo e logo nell'inquadratura e non sa quale testo sia la targa. L'ANPR richiede due modelli: un rilevatore che trova le targhe e un modello OCR addestrato sui caratteri delle targhe. Servono anche i fotogrammi — decodificati dalla telecamera, prelevati a un ritmo che l'hardware riesce a sostenere, senza bloccare il video dal vivo. Negli SDK VisioForge, LicensePlateRecognizerBlock è un blocco della pipeline video: l'SDK decodifica la sorgente, il blocco esegue entrambi i modelli in un thread in background e i fotogrammi proseguono verso lo schermo, un file o uno stream di rete.

Costruire l'ANPR da soli o chiamare un'API cloud vs. LicensePlateRecognizerBlock

ANPR tipico fatto in casa o in cloudLicensePlateRecognizerBlock in una pipeline VisioForge
Trovare la targaTrovare o addestrare un rilevatore di targhe, esportarlo in ONNX, scrivere pre e post-elaborazioneRilevatore di targhe FastALPR YOLOv9-T (MIT); DetectionConfidenceThreshold e MaxDetections
Leggere i caratteriOCR generico che legge anche ogni altro testo nell'inquadraturaUna testa fast-plate-ocr specifica per le targhe; Text arriva in maiuscolo, senza caratteri non alfanumerici
Ottenere i fotogrammi dalla telecameraUn decoder o frame grabber diverso per ogni tipo di sorgenteQualsiasi sorgente dell'SDK: telecamere IP RTSP, webcam, file video
Mantenere fluido il video dal vivoIl riconoscimento sul thread di acquisizione blocca lo streamIl riconoscimento gira in un worker in background; i fotogrammi che arrivano mentre è occupato vengono saltati e contati
Targhe di paesi diversiRiaddestrare il modello o cambiare fornitoreUna testa globale per gli USA e oltre 90 paesi e una testa europea per le targhe UE, scelte con RecognitionModelPath
Dove va il videoFotogrammi inviati a un servizio cloud e fatturati a chiamataDa nessuna parte: ONNX Runtime nel tuo processo, nessuna chiave API, nessun costo a chiamata

Cosa offre il blocco ANPR

LicensePlateRecognizerBlock è incluso nel pacchetto VisioForge.DotNet.Core.AI. Ha un ingresso e un'uscita video, esegue due modelli ONNX sui fotogrammi che riceve e segnala le targhe tramite l'evento OnPlateRecognized.

  • Riconoscimento in due fasi: un rilevatore YOLOv9-T trova le targhe e ogni targa ritagliata viene letta da un modello OCR specifico per le targhe; entrambi sono modelli FastALPR con licenza MIT
  • Un risultato completo per targa: Text, Confidence (da 0 a 1), BoundingBox e il Polygon a quattro punti in pixel del fotogramma sorgente, con il Timestamp del fotogramma in ogni evento
  • Teste regionali: la testa globale copre gli USA e oltre 90 paesi, la testa europea è ottimizzata per le targhe UE; entrambe leggono caratteri latini (cifre e A–Z), e la dimensione di ingresso viene letta dal modello stesso
  • Sul dispositivo: ONNX Runtime con DirectML sulle GPU Windows, CoreML sulle piattaforme Apple e la CPU come ripiego; ActiveProvider indica quale è in uso
  • Il video dal vivo resta fluido: il riconoscimento gira in un worker in background, FramesToSkip stabilisce quanto spesso viene eseguito, e LastInferenceTimeMs e DroppedFrameCount mostrano se l'hardware tiene il passo
  • Riconoscimento accanto alla registrazione: DrawResults disegna i riquadri e il testo delle targhe nei fotogrammi che proseguono verso l'anteprima, un file o uno stream
  • Un blocco per ogni motore: collegalo in una pipeline di Media Blocks SDK .NET, oppure aggiungilo con Video_Processing_AddBlock a VideoCaptureCoreX o MediaPlayerCoreX

Dove si usa

Accesso e pagamento dei parcheggi

Riconoscere la targa a una telecamera d'ingresso per aprire la sbarra o avviare una sosta.

Registro di pedaggi e controllo accessi

Registrare quali targhe sono passate davanti a una telecamera fissa e quando, con il video conservato in sede.

Gestione di flotte e piazzali

Tracciare i veicoli che entrano ed escono da un'area privata o da un deposito.

Strumenti di revisione del traffico

Segnalare targhe per la revisione manuale; le decisioni finali di sanzione dovrebbero sempre includere un controllo umano.

Esempi di codice

Ricavati dalla License Plate Recognition Demo, che include i tre file di modello FastALPR; il secondo esempio aggiunge il blocco a VideoCaptureCoreX come la demo Capture OCR X aggiunge il suo blocco IA.

Registrare le targhe di una telecamera d'ingresso

C#

Visualizzare una telecamera IP, elencare le targhe e registrare in MP4

C#

Pipeline

Nell'esempio d'ingresso LicensePlateRecognizerBlock si trova tra la telecamera e un renderer nullo. Le targhe escono dall'evento OnPlateRecognized; con DrawResults attivo, i fotogrammi portano riquadri e testo al blocco successivo.

RTSPSourceBlock
LicensePlateRecognizerBlock
NullRendererBlock

Domande frequenti

Il video lascia la macchina?▼
No. LicensePlateRecognizerBlock esegue entrambi i modelli con ONNX Runtime dentro il tuo processo. Non c'è un servizio cloud né una chiave API; fotogrammi e numeri di targa restano sul dispositivo. I modelli sono due file .onnx che distribuisci con la tua applicazione.
Di quali paesi può leggere le targhe?▼
La testa di riconoscimento globale FastALPR copre gli USA e oltre 90 paesi; una testa europea separata è ottimizzata per le targhe UE. Imposta RecognitionModelPath sulla testa della tua regione; il rilevatore è lo stesso per entrambe.
Devo addestrare un mio modello?▼
No. Il blocco usa così come sono il rilevatore FastALPR YOLOv9-T e la testa di riconoscimento fast-plate-ocr; fornisci solo i due file .onnx. Sono inclusi nella License Plate Recognition Demo.
E le scene affollate con molti veicoli o targhe lontane?▼
Il blocco segnala fino a MaxDetections targhe per fotogramma (10 per impostazione predefinita). Per targhe piccole o lontane, abbassa DetectionConfidenceThreshold o avvicina l'inquadratura della telecamera. Su scene molto affollate, un rilevatore di veicoli come YOLOObjectDetectorBlock a monte può ritagliare prima i veicoli.
Quale SDK mi serve?▼
LicensePlateRecognizerBlock è nel pacchetto VisioForge.DotNet.Core.AI. Usalo in una pipeline di Media Blocks SDK .NET quando costruisci la pipeline da solo, oppure aggiungilo con Video_Processing_AddBlock a VideoCaptureCoreX in Video Capture SDK .NET o a MediaPlayerCoreX in Media Player SDK .NET quando la tua app usa già uno di questi motori.
Le targhe sono dati personali?▼
Le targhe sono comunemente considerate dati personali secondo normative sulla privacy come il GDPR, e alcune giurisdizioni hanno regole proprie per l'ANPR; verificale per il tuo caso d'uso prima del rilascio. Per nascondere le targhe in una registrazione invece di leggerle, PIIRedactionBlock le sfoca o le pixela con lo stesso rilevatore di targhe.