PDA

View Full Version : Creare un OCR per targhe


montegentile
24-04-2007, 10:01
M'hanno affidato un compito difficile (per me), e voglio capire che strada seguire.

Devo sostanzialmente creare un software che riconosca le targhe prese da una immagine (che a sua volta viene catturata ogni x sec. da una fonte video).

Avete idea di come agire ?

(Uso V.B.)

cionci
24-04-2007, 10:45
VB certo non ti aiuta in algoritmi di queste proporzioni...
Comunque...ci sono tanti modi per fare OCR...uno di questi ad esempio è con le reti neurali... Una rete neurale con 2 strati interni e con 36 uscite dovrebbe essere sufficiente (10 numeri + 26 lettere)...
Il problema non è tanto il riconoscimento del carattere...il problema la rilevazione della targa...
Il sistema sarebbe sicuramente più semplice con una fatocamera che non con uan videocamera o comunque con una rilevando una immagine fissa ad un determinato istante da una videocamera...
Infatti rilevare il momento esatto in cui prendere dal video un fermoimmagine della targa per poterlo elaborare è estremamente complicato...non solo algoritmicamente, ma anche come tempi di calcolo...infatti bisogna analizzare continuamente la sorgente video.
Il modo migliore è fare un sistema misto hardware + software...
Mi immagino che ci sia un "passaggio obbligato" da cui i veicoli transitino...l'ideale sarebbe appunto di mettere una fotocellula che, al momento in cui il veicolo liberi la fotocellula, invii un segnale al PC. Il PC acquisito questo segnale capisce che deve prendere l'immagine dalla video/fotocamera. Ovviamente la videocamera deve essere posta il più possibile allineata posteriormente con la macchina, se non è possibile prendere la macchina esattamente da dietro bisogna per prima cosa applicare delle correzioni prospettiche all'immagine (che dipendono dall'angolo fra la direzione della macchina e la retta di puntamento della videocamera).
Ora occorre fare una scansione orizzontale e verticale dell'immagine per individuare i bordi (che sono di colore quasi omogeneo) della targa. Il fatto che la targa venga posta sempre centralmente e che la targa ripresa sempre dalla stessa distanza abbia delle dimensioni sempre "quasi" costanti può essere d'aiuto.
A questo punto bisogna isolare la targa (ritagliando il riquadro individuato), dare una pulizia ai bordi dell'immagine, individuare il riquadro che contiene i numeri (altra scansione verticale ed orizzontale fino a quando il colore non cambia in diversi punti contemporaneamente)...ritagliare ulteriormente il riquadro.
Rimane soltanto da individuare con una scansione orizzontale le lettere e i numeri...scansione che sarà molto simile alla precedente.
In questo modo si possono passare singolarmente le lettere all'ocr...ed il riconoscimento con la rete neurale, opportunamente addestrata, sarà una banalità.

Edit: se la targa è in un formato fisso (ad esempio ti interessa solo la targa italiana, puoi fare due reti neurali con addestramento diverso, una per le lettere ed una per i numeri