1 / 18

Il Progetto

Il Progetto. Il nostro progetto è nato per il corso di ‘AI’ e consiste in un OCR (Optical Character Recognition). Il nome scelto è ‘JInO’, Che sta per “Jino is Not Ocr” o anche per “Java Intelligent Ocr”. Il Progetto.

cora
Télécharger la présentation

Il Progetto

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Il Progetto Il nostro progetto è nato per il corso di ‘AI’ e consiste in un OCR (Optical Character Recognition). Il nome scelto è ‘JInO’, Che sta per “Jino is Not Ocr” o anche per “Java Intelligent Ocr”

  2. Il Progetto Per quanto riguarda il “cuore” dell’applicazione, cioè la parte di AI, abbiamo deciso di utilizzare un tipo di architettura che ci ha particolarmente attirato, cioè quella degli auto-encoders affiancati a dei classici classificatori (che realizzano la “selezione a torneo”). Da un punto di vista “funzionale” invece, si è cercato di dare a “jino” delle caratteristiche che possano renderlo più ultile/interessante dei molti ocr basati sull’ AI che si possono trovare su internet (“Jinoisnotocr”, appunto.. ) Proprio per questo l’input dei file da processare viene da immagini o da webcam, e non da un’area di testo in cui scrivere come avviene in molti sw di questo tipo.

  3. Scelte Progettuali • Utilizzo del linguaggio java [portabilità - esperienze personali] • Librerie ausiliari: • Joone [neuralnetowork management] • JAI [ImagePrepocessing] • JMF [Webcam acquisition]

  4. Step del processo

  5. Data Acquisition Come già detto l’acquisizione dati da file(momentaneamente solo immagini) e da webcam vuole essere un modo di aumentare l’utilità del software. Al momento l’acquisizione da webcam è funzionante solo sotto Windows (a causa di problemi legati alla libreria Java “V4L”) ed è possibile solo con alcuni modelli di webcam.

  6. Preprocessing: ImageManipulation Attualmente si limita alla conversione in bianco e nero (basata sul canale dei rossi). Aggiunte utili all’acquisizione da webcam sarebbero filtering (pulizia, etc..) e allineamento(fondamentale in fase di segmentazione)

  7. Preprocessing: Segmentation • Analisi dell’immagine: • In lunghezza [per distinguere le varie righe] • In larghezza [per distinguere le lettere] Entrambe le suddivisoni sono basate sulla somma di pixel e utilizzano più soglie. NOTA: Ogni pixel è memorizzato come un intero che va da 0(nero) a 255(Bianco)

  8. Preprocessing: Segmentation • “Pulizia” del carattere (vengono eliminati gli spazi bianchi)

  9. Preprocessing -> CharacterRecognition • Scaling del carattere a 50x50 pixel (proportionalresize in modo che la dimensione più grande arrivi a 50 pixel, dopodichèpadding sull’altra) • Desampling del carattere a 10x10 Samples [ognuno costituito da 5x5 = 25 pixels] • Normalizzazione e codifica: sample –> double tra 0 e 1 [Numero di pixel neri /25]

  10. Characterrecognition Architettura software costituita da: • Auto-encoders [riconoscimento dei singoli caratteri] (esempio: il carattere in ingresso “è”/”non è” una ‘a’) • Classificatori [distinzione tra due caratteri specifici] (esempio: il carattere in ingresso “è una a”/”è una b”) • Gliingressi [100 double (10x10 samples) che variano da 0.00 ad 1.00]

  11. Characterrecognition: Gli step • Si attiva la rete neurale dandole in ingresso tutte le lettere riconosciute, una ad una. • Gli ingressi sono collegati ad ogni singolo auto-encoder (full synapse), che torna in uscita un errore [scarto quadratico medio di (uscita meno ingresso)] • Se quest’ultimo è minore di una certa soglia il carattere in ingresso appartiene alla classe di cui l’auto-encoder si occupa –> L’auto-encoder risuona. • Se più auto encoder risuonano viene avviato il cosiddetto “torneo”, vengono cioè attivati i classificatori (a due uscite) delle classi che risuonano. Viene così decisa la classe a cui il carattere in ingresso appartiene • Le lettere vengono scritte su un file di uscita (appare un nuovo tab), che può essere salvato in formato testo.

  12. Characterrecognition: Dietro le quinte(architettura rete neurale) • Auto-encoders Sanno dire bene se è una ‘B’ o no, ma c’è il rischio che gli vada bene anche un ‘8’ (target=ingresso -> non gli do mai esempi che non siano B!) • Two Way Classifiers Distinguono bene gli 8 dalle B, ma devono essere sicuri che l’ingresso sia un 8 o una B -> complementari degli auto-encoders!

  13. Classe 3! Classificatore classi 1/2 Classificatore classi 3/n Classificatore classi (n-1)/n no no Risuona! Risuona! Auto Encoder classe 3 Auto Encoder classe 2 Auto Encoder classe n Auto Encoder Classe 1 ... ... … …………… ... ... … …………………………… 1 2 3 ... … …………… ... ... … ………………………………100

  14. Characterrecognition: Dietro le quinte(selezione a torneo) La “selezione a torneo” è utilizzata per semplificare e rendere più efficienti le operazioni nel caso in cui risuonino più di due classi. Si confrontano le classi risuonate a due a due (esattamente come un “campionato”) e si dà loro un punteggio in base all’uscita del classificatore(se il classificatore richiesto non è presente si assegna un “pareggio”), la classe che al termine otterrà il maggior numero di punti è quella a cui realmente appartiene il carattere.

  15. Characterrecognition: Dietro le quinte (selezione a torneo) M: 0,81 - N: 0,19 N: 0,51 - K: 0,49 M: 0,72 - K: 0,28 Classificatore M/N Classificatore N/K Classificatore M/K

  16. TODO • Acquisizione da pdf/altro.. • Supporto webcam su linux (e migliorare su win) • Testing • Supporto divisione spazi e parole (in fase di segmentazione) • Maniploare le immagini(filtering, pulizia, roation, allineamento, etc..) per migliorare la qualità dell’immagine acquisita da webcam • Gestione di vari Layout di pagina

  17. Sviluppi futuri Attualmente le funzioni di JInO sono abbastanza limitate, ma le possibili migliorie son molte, come molte sono le possibili applicazioni. In generale ci sentiamo di dire che se fosse migliorato l’intero processo di acquisizione da webcam, il software potrebbe avere una reale utilità nella virtualizzazione di documenti

More Related