Analisi di Documenti M. Diligenti diligmic@ing.unisi.it Dipartimento di Ingegneria dell Informazione Università di Siena
Libro di testo Lawrence O-Gorman e Rangachar Kasturi Document Image Analysis Editore: IEEE COMPUTER SOCIETY PRESS
Introduzione I documenti cartacei sono il mezzo principale per la trasmissione e la memorizzazione di informazione. Rivoluzione informatica non ha rallentato la crescita della massa di documenti emessi dalle pubbliche amministrazioni o dalle grandi aziende.
Applicazioni Instradamento automatico della posta. Lettura automatica di assegni bancari. Catalogazione automatica degli archivi di pubbliche amministrazioni e aziende. Creazione di biblioteche digitali partendo dai dati memorizzati nelle attuali biblioteche. Velocizzazione delle operazioni negli uffici.
Problemi da risolvere Analisi di documenti Testo Grafica Riconoscimento di caratteri Analisi di Layout Linee Estrazione immagini e simboli Testo Paragrafi Linee Logo, immagini
Dalla carta alla comprensione del contenuto Documento cartaceo Acquisizione ottica 10 7 pixels Elaborazione a livello di pixels Box di caratteri Estrazione di caratteristiche Riconoscimento Analisi di Layout Linee Estrazione immagini di caratteri Paragrafi Testo Analisi semantica e simboli Logo, immagini Campo1 Campo2... CampoN
Acquisizione ottica In genere si usano scanners a 300 dpi. Immagini binarie o 255 livelli di grigio. Documento 8.5 x11 è rappresentato da 2550 x 3300 pixels. Dati rappresentano i pixels in sequenza, pertanto per estrarre oggetti con semantica (caratteri, linee) è necessario elaborare i dati.
Parte 1 Elaborazione di basso livello dell immagine del documento
Sommario: elaborazione di basso livello Thresholding Filtraggio del rumore Thinning
Thresholding Trovare la soglia ottimale per decidere se un pixel è nero o bianco. Tale fase è necessaria per passare da immagine a livelli di grigio ad immagine binaria. White 0 Black 255
Thresholding statica Qui sfondo è scuro Soglia bassa Qui sfondo è scuro Qui sfondo è chiaro Qui sfondo è chiaro
Thresholding statica Qui sfondo è scuro Soglia alta Qui sfondo è scuro Qui sfondo è chiaro Qui sfondo è chiaro
Thresholding statica vs. adattiva Soglia statica non riesce a catturare tutti i dettagli del documento. SOLUZIONE: thresholding adattiva con analisi dello sfondo. La soglia viene fissata a seconda dello sfondo di una regione.
Thresholding adattiva Qui sfondo è scuro Qui sfondo è scuro Qui sfondo è chiaro Qui sfondo è chiaro
Riduzione del rumore Principale rumore su fotocopie o fax è rumore sale e pepe o rumore impulsivo. Si presenta con dei pixels isolati di colore diverso dai pixels che lo circondano.
Filtri In genere si usano filtri specifici. ESEMPIO: Data finestra di dimensione k, decidere se a tutti i suoi pixels deve essere assegnato il colore bianco o nero.
Filtri ESEMPIO: data finestra di dimensione k = 6, decidere se a tutti i suoi pixels deve essere assegnato il colore nero eliminando il rumore sale e pepe dei pixels bianchi. Pixel di vicinato Pixel del core
Filtri: esempio REGOLA. A tutti i pixels di una finestra viene assegnato il colore nero se: c=1 AND (n > 3k-4 OR (n=3k-4) AND r=2) dove, - c numero componenti connesse in vicinato - n numero pixel neri in vicinato - k dimensione finestra in analisi - r numero pixel neri in angolo
Filtri: esempio C=1 ==> riempio C=2 ==> non riempio
Thinning
Parte 2 Estrazione di caratteristiche
Introduzione Uscita dell elaborazione di basso livello è una serie di valori relativi ai singoli pixels. Un estrattore di caratteristiche raggruppa i pixels ed estrae valori relativi ad oggetti complessi come linee o curve. Primo passo verso una rappresentazione più vicina a quella che verrebbe fornita da un operatore umano.
Sommario: estrazione di caratteristiche Estrazione contorni Rappresentazione degli oggetti: Chain coding Line adjacency graphs Estrazione linee o altre forme
Oggetti elementari Ogni oggetto elementare corrisponde ad una componente connessa: un insieme di pixel neri tra loro contigui.
Seguire un contorno Algoritmo della tartaruga. Trova un pixel di transizione bianco-nero (punto di partenza di un contorno da seguire). While(non si torna al punto di partenza) if(pixel == bianco) then gira a sinistra if(pixel == nero) then gira a destra
Chain coding Dopo estrazione dei contorni, chain code può rappresentare il contorno di un oggetto. ESEMPIO 0 1 2 5555555555553333333333 7 X 3 6 5 4
Line adjacency graphs Estraggono un grafo rappresentante un oggetto da un insieme di pixels neri tra loro connessi, detti anche componente connessa)
Trasformata di Hough Usata per scoprire la presenza di oggetti complessi sul documento. Spesso usata per scoprire linee, circonferenze, ecc. In generale: un qualsiasi oggetto di cui si conosce la rappresentazione analitica può essere cercato tramite la trasformata di Hough.
Trasformata di Hough Trasforma il documento da coordinate x,y alle coordinate dello spazio dei parametri. ESEMPIO: cercare linee rette. Equazione della retta: y = ax + b a, b parametri della retta Passo da spazio (x,y) a spazio (a,b)
Trasformata di Hough y b y = 2x + 3 3 3 x 2 a
Trasformata di Hough y Fascio di rette per un punto b 3-2a= b 3 3 2 x 3/2 a
Trasformata di Hough y 3 b 3 3-2a= b 1 - a= b 1 1 2 x -1 2 a Retta in comune tra i punti (1,1) e (2,3) è la retta con parametri a = 2 e b = -1
Trasformata di Hough y 3 b 3 3-2a= b 1 - a= b 1 1 2 x -1 2 a Continuo ad accumulare nel punto (2,-1) dello spazio trasformato.
Trasformata di Hough y 3 Trovare le circonferenze con centro sull asse x 1 1 3 x che sono sull immagine. Considerare in particolare i punti (1,1) e (3,3).
Trasformata di Hough Cerco curve del tipo: r 2 y 2 + x 2-2ax + a 2 - r 2 = 0 Per i punti (1,1) e (3,3): 10 9 r 2 = a 2-2a + 2 r 2 = a 2-6a + 18 1 Intersezione in a = 4, r 2 = 10. 1 3 4 a La curva cercata è: y 2 + x 2-8x + 6 = 0
Parte 3 Analisi di Layout
Analisi di Layout L analisi del Layout di una pagina consente di: segmentare un documento in gruppi di elementi omogenei (per esempio contenenti solo testo, per evitare gli errori di un OCR se gli viene passata una regione priva di testo); associare una semantica ad alcuni elementi (titolo, autore, logo, ecc.) ed ottimizzare il successivo riconoscimento.
XY-trees Hi guys, I m the title of this article M. Gori M. Maggini 2 Larghe Proiezioni di valore 0 Il documento è proiettato ABSTRACT Fhnoirfnpfrpjfoprjfèp cioejcrpiejprojfèoew nwoeijndewpjpweje jdiwejdiwejdejwpojd dewpw. INTRODUCTION dpwejdpepwjepwde ekpwdkopewkopwk wdkjepkeèwkèwek dewjpo, dkpowekfèprekèpfè Fhnoirfnpfrpjfoprjfèp cioejcrpiejprojfèoew nwoeijndewpjpweje jdiwejdiwejdejwpojd dewpw. 93ruwerjffepljfpjrpe djpiwqejpjkdèpekèp dpwejdpepwjepwde ekpwdkopewkopwk wdkjepkeèwkèwek dewjpo, alternativamente lungo gli assi X e Y (sommando il numero di pixel neri su ogni linea). I tagli sono effettuati in corrispondenza delle proiezioni di Proietto lungo asse x valore 0 più larghe.
XY-trees: passo 1 ABSTRACT Hi guys, I m the title of this article M. Gori M. Maggini dkpowekfèprekèpfè La Radice dell albero corrisponde all intero documento Fhnoirfnpfrpjfoprjfèp cioejcrpiejprojfèoew nwoeijndewpjpweje jdiwejdiwejdejwpojd dewpw. Fhnoirfnpfrpjfoprjfèp cioejcrpiejprojfèoew nwoeijndewpjpweje jdiwejdiwejdejwpojd dewpw. 93ruwerjffepljfpjrpe INTRODUCTION dpwejdpepwjepwde ekpwdkopewkopwk wdkjepkeèwkèwek dwepojzmòdmòewd dewjpo, djpiwqejpjkdèpekèp dpwejdpepwjepwde ekpwdkopewkopwk wdkjepkeèwkèwek dwepojzmòdmòewd dewjpo,
XY-trees: passo 2 Hi guys, I m the title of this article M. Gori M. Maggini Si tagliano lungo l asse Y le regioni trovate al passo precedente ABSTRACT Fhnoirfnpfrpjfoprjfèp cioejcrpiejprojfèoew nwoeijndewpjpweje jdiwejdiwejdejwpojd dewpw. dkpowekfèprekèpfè Fhnoirfnpfrpjfoprjfèp cioejcrpiejprojfèoew nwoeijndewpjpweje jdiwejdiwejdejwpojd dewpw. 93ruwerjffepljfpjrpe INTRODUCTION dpwejdpepwjepwde ekpwdkopewkopwk wdkjepkeèwkèwek dwepojzmòdmòewd dewjpo, djpiwqejpjkdèpekèp dpwejdpepwjepwde ekpwdkopewkopwk wdkjepkeèwkèwek dwepojzmòdmòewd dewjpo,
XY-trees: passo 2 ABSTRACT Hi guys, I m the title of this article Fhnoirfnpfrpjfoprjfèp M. Gori M. Maggini dkpowekfèprekèpfè Fhnoirfnpfrpjfoprjfèp Vediamo ad esempio come taglio la regione cioejcrpiejprojfèoew nwoeijndewpjpweje jdiwejdiwejdejwpojd dewpw. cioejcrpiejprojfèoew nwoeijndewpjpweje jdiwejdiwejdejwpojd dewpw. INTRODUCTION dpwejdpepwjepwde ekpwdkopewkopwk wdkjepkeèwkèwek dwepojzmòdmòewd dewjpo, 93ruwerjffepljfpjrpe djpiwqejpjkdèpekèp dpwejdpepwjepwde ekpwdkopewkopwk wdkjepkeèwkèwek dwepojzmòdmòewd dewjpo, M. Gori M. Maggini 3 larghe proiezioni di valore 0
XY-trees: caratteristiche Effettuano segmentazione Top-down. Consentono segmentazione a diversi livelli (livello di paragrafo, linea, parola, carattere). Altamente sensibili al rumore (se il documento è corrotto da rumore sale e pepe, le proiezioni non sono mai completamente a valore 0). Non tratta documenti con tabelle od altri elementi complessi.
XY-trees arricchiti Hi guys, I m the title of this article M. Gori M. Maggini In genere si aggiunge informazione nei nodi per ABSTRACT Fhnoirfnpfrpjfoprjfèp cioejcrpiejprojfèoew nwoeijndewpjpweje jdiwejdiwejdejwpojd dewpw. INTRODUCTION dpwejdpepwjepwde ekpwdkopewkopwk wdkjepkeèwkèwek dkpowekfèprekèpfè Fhnoirfnpfrpjfoprjfèp cioejcrpiejprojfèoew nwoeijndewpjpweje jdiwejdiwejdejwpojd dewpw. 93ruwerjffepljfpjrpe djpiwqejpjkdèpekèp dpwejdpepwjepwde ekpwdkopewkopwk wdkjepkeèwkèwek specificare le coordinate del rettangolo che corrisponde alla regione associata. 0, 0, 100, 100 dwepojzmòdmòewd dewjpo, dwepojzmòdmòewd dewjpo, 0, 0, 100, 15 0, 15, 100, 20 0, 20, 100, 100
XY-tree esempio ABSTRACT Fhnoirfnpfrpjfoprjfèp cioejcrpiejprojfèoew Nwoeijndewpjpweje ewgreq eqwthwtreh rfthjehgret Jdiwejdiwejdejwpojd vcergwr gwerg wehrt trhreh eh dewpw. INTRODUCTION Dpwejdpepwjepwde Ekpwdkopewkopwk Wdkjepkeèwkèwek Dwepojzmòdmòewd dewjpo, oewjprjgpèjgè rehjhrej jerrytulk hehphp cdsfvs vnp berwbp frkhoè fep ewpè Estrarre l XY-tree dal documento in figura THIS IS A TITLE DO YOU RECOGNIZE IT Fhnoirfnpfrpjfoprjfèp Nwoeijndewpjpweje Jdiwejdiwejdejwpojd v cioejcrpiejprojfèoew wthwtreh rfthjehgret wehrt trhreh eh dewpw.
Adjacency graphs Estraggo le componenti connesse. Formo nuovi oggetti, unendo le componenti a distanza inferiore a D. Applico ricorsivamente l algoritmo agli oggetti trovati al passo precedente incrementando la soglia di unione D. NB Talvolta si usano regole aggiuntive. Esempio: favorire unioni in direzione orizzontale (per formare parole)
Adjacency graphs: passo 1 Estraggo le parole C i a o s o n o i o C i a o s o n o i o C i a o s o n o s e m p r e i o C i a o s o n o s e m p r e i o
Adjacency graphs: passo 2 Estraggo le linee C i a o s o n o i o C i a o s o n o i o C i a o s o n o s e m p r e i o C i a o s o n o s e m p r e i o
Adjacency graphs: passo 3 Estraggo i paragrafi C i a o s o n o i o C i a o s o n o i o C i a o s o n o s e m p r e i o C i a o s o n o s e m p r e i o
Adjacency graphs: caratteristiche Effettuano segmentazione bottom-up. Consentono segmentazione a diversi livelli (livello di paragrafo, linea, parola, carattere). E spesso necessario inserire regole euristiche per unire in modo semanticamente corretto gli elementi.
Skew Correggere l orientamento di un documento è fondamentale per il successo di molti algoritmi di analisi di alto livello. Per esempio: XY-trees proiettano lungo linee orizzontali e verticali, se documento non è ben orientato il metodo fallisce. Un OCR ha prestazioni migliori se i caratteri in ingresso hanno una orientazione fissa.
Skew: metodo delle proiezioni ABSTRACT Fhnoirfnpfrpjfoprjfèp cioejcrpiejprojfèoew nwoeijndewpjpweje jdiwejdiwejdejwpojd dewpw. dkpowekfèprekèpfè Fhnoirfnpfrpjfoprjfèp cioejcrpiejprojfèoew nwoeijndewpjpweje jdiwejdiwejdejwpojd dewpw. Il documento originale è inclinato. Proiettandolo si ottiene una distribuzione omogenea. Il documento viene ruotato più volte, finché non si scopre l angolo che minimizza la regolarità della distribuzione. Tale angolo è l angolo di inclinazione del documento. ABSTRACT Fhnoirfnpfrpjfoprjfèp cioejcrpiejprojfèoew nwoeijndewpjpweje jdiwejdiwejdejwpojd dewpw. dkpowekfèprekèpfè Fhnoirfnpfrpjfoprjfèp cioejcrpiejprojfèoew nwoeijndewpjpweje jdiwejdiwejdejwpojd dewpw.
Skew: metodo delle proiezioni Come misurare la regolarità della proiezione di un documento dopo averlo ruotato di un angolo ϕ? Misurando l energia della sua distribuzione (Baird1987): E(ϕ) = p(x) 2 dx dove p(x) è la distribuzione della proiezione. Nel nostro caso se E(ϕ) è più alta la distribuzione è più irregolare (ϕ è più vicino all inclinazione del documento).
Skew: metododi Hough Hough trova le linee. Può essere usato per trovare le linee di testo. ABSTRACT dkpowekfèprekèpfè Fhnoirfnpfrpjfoprjfèp Fhnoirfnpfrpjfoprjfèp cioejcrpiejprojfèoew cioejcrpiejprojfèoew nwoeijndewpjpweje nwoeijndewpjpweje jdiwejdiwejdejwpojd jdiwejdiwejdejwpojd dewpw. dewpw. NB Questo metodo è costoso ma molto accurato. 150 100 50 0 Valori relativi ad una data inclinazione saranno alti. Tale inclinazione è l inclinazione del documento.
Skew: metodo Nearest-neighbor C i a o m a m m a Cerco i centroidi (momenti di ordine 0) delle componenti connesse 140 120 100 80 60 40 20 0 Conto il numero di angoli in un dato intervallo. L inclinazione è data dall angolo con conteggio massimo. Unisco i centroidi vicini -10-5 0 5 10 15 20 Misuro gli angoli tra centroidi contigui
Parte 4 Riconoscimento di testo
Introduzione Gli OCR (Optical Character Recognition) permettono il riconoscimento dei caratteri partendo da una loro immagine bitmap. Gli OCR si dividono nei seguenti gruppi: OCR per riconoscimento di caratteri stampati; OCR per ricoscimento di caratteri manoscritti; OCR per riconoscimento on-line di caratteri manoscritti;
Breve storia Il primo brevetto (in Germania) è del 1929!!! Veniva fornita solo l idea non una sua realizzazione. Il primo brevetto (negli USA) è del 1933!!! Il Primo vero OCR arriva con l avvento dei computers intorno dopo il 1950.
La storia continua Primo OCR commerciale è dell IBM nei primi anni 60. Poteva riconoscere soltanto i caratteri di un font speciale creato dall IBM. Grandi miglioramenti tra il 1970 ed il 1990.
Stato dell arte Oggi si trovano software commerciali che funzionano molto bene su caratteri sulla maggior parte dei font comuni. Si può affermare che oggi gli OCR sono uno dei settori meglio compresi nell analisi dei documenti. Al contrario non sono ancora perfettamente compresi i problemi relativi al preprocessing ed alla segmentazione dei caratteri.
OCR tecniche base Approccio Template-Matching: le immagini dei caratteri sono confrontate con dei prototipi. Si seleziona il carattere con il prototipo piu simile all immagine in ingresso. Analisi strutturale: si estraggono caratteristiche specifiche dell immagine in ingresso (spesso locali ad una piccola porzione di immagine). Tali caratteristiche sono usate per decidere la classe dell immagine in ingresso.
OCR: Template-Matching Metodo diretto. Valori medi su Ingresso caselle Confronto Prototipi
OCR: Template-Matching Il metodo diretto non funziona bene. Non gestisce, traslazioni o rotazioni dei patterns. Inoltre la firma ottenuta è poco compatta.
OCR: Template-Matching Metodo riduzione della dimensione: A Proietto lungo asse x Questa e la firma dell immagine da confrontare con dei prototipi Metodo delle peepholes: A B A B prototipo Ingresso 1 Ingresso 2 SI match NO match
OCR: Template-Matching Momenti: calcolo i momenti di ordine <= 6 e li uso come features rappresentanti l immagine. Si ottengono firme invarianti rispetto alla posizione e dimensione del carattere. Serie di Fourier: rappresento l immagine usando trasformate di Fourier bi-dimensionali. Oppure estraggo il chain-code del contorno e ne calcolo la trasformata di Fourier 1D.
OCR: analisi strutturale Vediamo adesso alcuni metodi per estrarre caratteristiche che descrivono in modo compatto il contorno o la regione coperta da un oggetto. Tali caratteristiche, se estratte da un oggetto di tipo carattere, possono essere utilizzate come firma per riconoscere la classe dello stesso.
OCR: analisi strutturale Rappresento il pattern con un grafo. Per esempio con Line adjacency graphs. Confronto Prototipi
OCR: analisi strutturale Approssimazione poligonale Raggio di curvatura Punto di partenza
OCR: analisi strutturale Momenti di ordine 1: calcolo baricentro m (1) x = 1/n x i m (1) y = 1/n y i Momenti di ordine K m x (K) = 1/n (x i - m x (1) ) K m y (K) = 1/n (y i - m y (1) ) K Momenti di ordine 2 : varianza m x (2) = 1/n (x i - m x (1) ) 2 m y (2) = 1/n (y i - m y (1) ) 2 x i e y i indicano le coordinate dell i-esimo pixel nero di una data regione
OCR: Rappresentazione di contorni Dimensione = Area Compattezza = Area / Perimetro Compattezza misurata con m (2) x e m (2) y m x (3) = m y (3) = 0 m x (3) = 0 m y (3)!= 0 Simmetria = m x (3) e m y (3) Trasformata di Fourier Componenti HF Componente LF
OCR: analisi strutturale A ingresso contorno parte convessa Altre caratteristiche utilizzate come parte concava elementi interni firma di un carattere
Classificazione Per classificare le firme delle immagini, si usano in genere algoritmi basati su apprendimento. Reti Neurali Algoritmi statistici k-nearest Neighbor (knn) Support Vector Machines (SVM) PUBBLICITA OCCULTA: Seguite il corso di Sistemi di supporto alle decisioni per saperne di più
Uso del contesto In talune situazioni (soprattutto nel caso di OCR omnifont) è impossibile assegnare una identità univoca ad un carattere. Per esempio i seguenti caratteri sono spesso indistinguibili a partire dalla loro immagine bitmap: O da 0 (zero) (in alcuni font) l (elle) da 1.
Uso del contesto Per discriminare tra più scelte possibili, gli OCR più evoluti utilizzano vocabolari e modelli del linguaggio (spesso basati su HMM) che decidono l identità del carattere sulla base dei caratteri precedentemente incontrati.
Analisi semantica Confronto tra la struttura del documento (data per esempio dagli XY-trees) con dei prototipi semantici. In questo modo è possibile dare una interpretazione semantica al testo in uscita all OCR. 0, 0, 100, 15 0, 0, 100, 100 0, 15, 100, 20 0, 20, 100, 100 XY-tree di un Documento 0, 0, 100, 100 Introduzione if a == 0 and b>10 and c == 100 and d > 80 Titolo if a == 0 and b == 0 and c>80 and d>70 Prototipo
Riassunto 1 dalla carta alla comprensione Acquisizione ottica Analisi di basso livello thresholding rimozione del rumore thinning (opzionale)
Riassunto 2 dalla carta alla comprensione Ricerca di linee ed di oggetti grafici Analisi di layout (XY-trees o Adjacency graphs) Estrazione di features dai componenti del documento Momenti Analisi dei contorni Trasformate di Fourier
Riassunto 3 dalla carta alla comprensione Riconoscimento dei caratteri Analisi semantica