Come configurare smartphone e PC. Portale informativo
  • casa
  • Sistema operativo
  • Tecnologie di riconoscimento delle immagini. Caso semplice, separazione unidimensionale

Tecnologie di riconoscimento delle immagini. Caso semplice, separazione unidimensionale

Il riconoscimento delle immagini è una branca importante e interessante dell'informatica con un'ampia varietà di applicazioni nella vita reale. Quindi, il riconoscimento delle immagini può essere utilizzato per il problema del riconoscimento delle targhe, l'identificazione della presenza di pedoni sulla strada, la ricerca e il riconoscimento dei volti nelle fotografie, i sistemi per controllare qualsiasi dispositivo con i gesti, il controllo automatico della qualità in produzione - e questo è solo un piccolissimo sottoinsieme di applicazioni pratiche del riconoscimento delle immagini. Pertanto, non sorprende che l'interesse dei ricercatori nel campo dell'informatica e dell'intelligenza artificiale per il riconoscimento delle immagini sia apparso negli anni '60 del XX secolo e quest'area della scienza si sta ancora sviluppando attivamente.

Esistono molte formulazioni per il problema del riconoscimento delle immagini ed è piuttosto difficile definirlo in modo univoco. Ad esempio, il riconoscimento dell'immagine può essere considerato come un compito per trovare e identificare alcuni oggetti logici sull'immagine originale.

Il riconoscimento delle immagini è solitamente un compito complicato per un algoritmo informatico. Ciò è dovuto principalmente all'elevata variabilità delle immagini dei singoli oggetti. Quindi, il compito di trovare un'auto in un'immagine è semplice per il cervello umano, che è in grado di identificare automaticamente la presenza di caratteristiche importanti per un'auto (ruote, forma specifica) in un oggetto e, se necessario, "ottenere" un immagine nell'immaginazione, presentando i dettagli mancanti ed estremamente difficile per un computer, poiché esiste un numero enorme di varietà di auto di diverse marche e modelli, che hanno forme ampiamente diverse, inoltre, la forma finale dell'oggetto nel l'immagine dipende fortemente dal punto di ripresa, dall'angolo di ripresa e da altri parametri. Inoltre, l'illuminazione gioca un ruolo importante, che influisce sul colore dell'immagine risultante e può anche rendere invisibili o distorti determinati dettagli.

Pertanto, le principali difficoltà nel riconoscimento delle immagini sono causate da:

  • Variazione di elementi all'interno della classe
  • Variabilità di forma, dimensione, orientamento, posizione sull'immagine
  • Variabilità dell'illuminazione

Nel corso della storia del riconoscimento delle immagini, sono stati proposti vari metodi per combattere queste difficoltà e sono già stati compiuti progressi significativi in ​​questo settore.

I primi studi nel campo del riconoscimento delle immagini furono pubblicati nel 1963 da L. Roberts nell'articolo "Machine Perception Of Three-Dimensional Solids", dove l'autore tentò di astrarre da possibili cambiamenti nella forma di un oggetto e si concentrò su riconoscere immagini di forme geometriche semplici in diverse condizioni di illuminazione e quando ci sono svolte. Il programma per computer che ha sviluppato è stato in grado di identificare oggetti geometrici di alcune forme semplici sull'immagine e formare il loro modello tridimensionale su un computer.

Nel 1987, S. Ulman e D. Huttenlocher hanno pubblicato un articolo "Riconoscimento di oggetti utilizzando l'allineamento" in cui hanno anche tentato di riconoscere oggetti di forme relativamente semplici, mentre il processo di riconoscimento è stato organizzato in due fasi: in primo luogo, la ricerca di un'area in l'immagine in cui si trova l'oggetto di destinazione e determinarne la possibile dimensione e orientamento ("allineamento") utilizzando un piccolo insieme di funzioni, quindi confrontare l'immagine potenziale dell'oggetto con quella prevista pixel per pixel.

Tuttavia, il confronto pixel per pixel delle immagini presenta molti inconvenienti significativi, come la sua laboriosità, la necessità di un modello per ciascuno degli oggetti delle possibili classi e anche il fatto che nel caso del confronto pixel per pixel, può essere eseguita solo una ricerca di un oggetto specifico e non un'intera classe di oggetti. In alcune situazioni, questo è applicabile, ma nella maggior parte dei casi è comunque necessario cercare non un oggetto specifico, ma un insieme di oggetti di una classe.

Una delle direzioni importanti nell'ulteriore sviluppo del riconoscimento delle immagini era il riconoscimento delle immagini basato sull'identificazione del contorno. In molti casi, sono i contorni che contengono la maggior parte delle informazioni sull'immagine e, allo stesso tempo, considerare l'immagine come un insieme di contorni consente di semplificarla notevolmente. Per risolvere il problema della ricerca dei contorni in un'immagine, l'approccio classico e più famoso è il Canny Edge Detector, il cui lavoro si basa sulla ricerca del massimo locale del gradiente.

Un'altra importante area dell'analisi delle immagini è l'applicazione di metodi matematici come il filtraggio della frequenza e l'analisi spettrale. Questi metodi vengono utilizzati, ad esempio, per comprimere le immagini (compressione JPEG) o migliorarne la qualità (filtro gaussiano). Tuttavia, poiché questi metodi non sono direttamente correlati al riconoscimento delle immagini, non verranno qui considerati in modo più dettagliato.

Un altro compito che viene spesso considerato in connessione con il compito di riconoscimento delle immagini è il compito di segmentazione. Lo scopo principale della segmentazione è quello di evidenziare i singoli oggetti nell'immagine, ognuno dei quali può poi essere studiato e classificato separatamente. L'attività di segmentazione è notevolmente semplificata se l'immagine originale è binaria, ovvero è costituita da pixel di soli due colori. In questo caso, il problema della segmentazione viene spesso risolto utilizzando metodi di morfologia matematica. L'essenza dei metodi della morfologia matematica è rappresentare un'immagine come un insieme di valori binari e applicare operazioni logiche a questo insieme, le principali tra le quali sono il trasferimento, la crescita (addizione logica) e l'erosione (moltiplicazione logica). Con l'uso di queste operazioni e delle loro derivate, come la chiusura e l'apertura, diventa possibile, ad esempio, eliminare il rumore nell'immagine o evidenziare i contorni. Se tali metodi vengono utilizzati nel problema della segmentazione, allora il loro compito più importante diventa proprio il problema dell'eliminazione del rumore e della formazione di aree più o meno omogenee sull'immagine, che sono poi facili da trovare utilizzando algoritmi simili alla ricerca di componenti connesse in un grafo - questi saranno i segmenti desiderati Immagini.

Per quanto riguarda la segmentazione delle immagini RGB, una delle principali fonti di informazioni sui segmenti dell'immagine può essere la sua trama. Per determinare la trama di un'immagine viene spesso utilizzato il filtro Gabor, creato nel tentativo di riprodurre le caratteristiche della percezione delle trame da parte della visione umana. Questo filtro si basa sulla funzione di trasformazione della frequenza dell'immagine.

Un'altra importante famiglia di algoritmi utilizzati per il riconoscimento delle immagini sono gli algoritmi basati sulla ricerca di caratteristiche locali. Le caratteristiche locali sono alcune aree dell'immagine chiaramente distinguibili che consentono di correlare l'immagine con il modello (l'oggetto target) e determinare se questa immagine corrisponde al modello e, in tal caso, determinare i parametri del modello (ad esempio, l'angolo di inclinazione , compressione applicata, ecc.) ... Per lo svolgimento di alta qualità delle loro funzioni, le caratteristiche locali devono resistere a trasformazioni affini, spostamenti, ecc. Un classico esempio di caratteristiche locali sono gli angoli, che sono spesso presenti ai confini di vari oggetti. L'algoritmo più popolare per trovare gli angoli è il rilevatore Harris.

Recentemente, i metodi di riconoscimento delle immagini basati su reti neurali e deep learning sono diventati sempre più popolari. La principale fioritura di questi metodi è avvenuta dopo la comparsa delle reti convoluzionali (LeCun) alla fine del 20° secolo, che mostrano risultati significativamente migliori nel riconoscimento delle immagini rispetto ad altri metodi. Quindi, la maggior parte degli algoritmi leader (e non solo) nella competizione annuale per il riconoscimento delle immagini ImageNet-2014 ha utilizzato reti convoluzionali in una forma o nell'altra.

Come argomento di ricerca per l'intelligenza artificiale, il riconoscimento delle immagini ha una lunga storia e un grande valore pratico. È stato utilizzato per la prima volta per la lettura automatica di numeri scritti a mano. Attualmente, il campo di applicazione della sua applicazione si è notevolmente ampliato: dalla misurazione, controllo, smistamento e assemblaggio nei processi produttivi all'analisi di immagini lette a distanza, diagnostica da immagini mediche, valutazione quantitativa di dati sperimentali, identificazione umana, progettazione automatica, comprensione delle immagini come funzione visione tecnica dei robot, ecc. Il processo di riconoscimento dell'immagine umana non è una semplice elaborazione di informazioni visive, ma un processo complesso in cui i fattori psicologici giocano un ruolo importante. In particolare, nel processo di comprensione dell'immagine, c'è un'inferenza semantica, ma la sua implementazione richiede la raccolta di conoscenze approfondite e soluzioni intuitive che vanno oltre la logica, quindi è estremamente difficile simulare un tale processo in un computer.

Gli strumenti di riconoscimento delle immagini esistenti utilizzano metodi diversi a seconda che l'oggetto di riconoscimento sia artificiale o naturale. Nel primo caso si tratta di solito di oggetti separati di forma chiara, quindi un gran numero di studi

si concentra sulla corrispondenza dei modelli rilevando contorni e contorni o disegnando una forma tridimensionale utilizzando regole geometriche. Tra gli oggetti naturali, ci sono molti oggetti di forma irregolare con luci e ombre, quindi, solitamente utilizzando la cluster analysis, si dividono in aree omogenee e quindi, in base alle caratteristiche delle forme di queste aree, traggono una conclusione sull'oggetto. Inoltre, recentemente sono state condotte molte ricerche sulla riproduzione di forme bidimensionali e tridimensionali di oggetti basate sull'elaborazione di un gran numero di immagini. Nella robotica diventa necessario elaborare le immagini in movimento in tempo reale, ovvero la velocità di riconoscimento è di grande importanza.

In generale, il processo di riconoscimento delle immagini utilizzando un computer è il seguente.

1. Ricevere informazioni sull'immagine utilizzando una fotocamera o altro mezzo e convertirle in informazioni digitali: di conseguenza, le cornici sono suddivise in un gran numero di elementi e a ciascun elemento vengono assegnati colore e contrasto.

2. Preelaborazione. Rimozione del rumore, normalizzazione per confronto con un riferimento, segmentazione (estrazione di informazioni locali necessarie al riconoscimento), ecc.

3. Isolamento dei segni. Gli attributi dell'immagine possono avere diversi livelli. A rigor di termini, anche la segmentazione fa parte dell'estrazione di funzionalità. I metodi di estrazione delle caratteristiche possono essere locali e globali. Esempi del metodo locale sono il rilevamento dei confini, il clustering globale e il metodo di espansione della regione. Le discontinuità tra le aree vengono utilizzate per rilevare i confini, mentre il clustering è la segmentazione basata sul rilevamento di aree omogenee. Poiché, in ogni caso, le informazioni sull'immagine contengono rumore che non è stato eliminato nella fase di preelaborazione, durante la segmentazione è necessaria l'elaborazione di informazioni sfocate. La selezione globale delle caratteristiche viene effettuata in relazione alla forma, alle proprietà, alla posizione relativa e ad altre caratteristiche delle aree selezionate. Questa procedura è di grande importanza per la fase successiva della valutazione.

4. Comprensione e valutazione. Processo di comprensione delle immagini

chiamano sia classificazione e identificazione confrontando i cluster ottenuti con modelli noti, sia la costruzione di un'immagine tridimensionale dell'oggetto originale utilizzando inferenze. Il risultato di questo processo è l'obiettivo finale del riconoscimento delle immagini.

Attualmente è stato condotto un numero enorme di studi sul processo di riconoscimento delle immagini, ma i risultati finora sono estremamente insoddisfacenti. Ad esempio, questioni come la comprensione di immagini complesse, la trasformazione reciproca di informazioni verbali e video, il riconoscimento di oggetti di forme curvilinee e irregolari, il riconoscimento di immagini sfocate, l'estrazione di caratteristiche altamente efficienti, l'inferenza semantica e l'immaginazione, ecc. non sono state praticamente toccate .

I principali approcci metodologici attualmente adottati nel riconoscimento sono la statistica, l'analisi dei cluster, la deduzione nella logica a due valori e molti altri, ma sono tutti molto lontani dal processo di riconoscimento inerente agli esseri umani. L'estrazione delle caratteristiche è la fase più importante nel riconoscimento delle immagini, ma è anche estremamente difficile. In effetti, cos'è una caratteristica dell'immagine? Perché una caricatura assomiglia più a una persona che a una fotografia? Apparentemente, un ruolo importante nel processo di riconoscimento umano è svolto dall'informazione, che per un computer sembra non essere altro che rumore, ma è in qualche modo isolata e presentata. È possibile identificare segni di questo tipo dai sentimenti di una persona e non dalla logica. Inoltre, quando si riconoscono immagini sfocate, non sono le capacità analitiche che funzionano, ma la capacità di generalizzare, ad es. è anche un processo intuitivo. Per simulare tali processi, è necessario studiare i metodi di elaborazione delle informazioni soggettive e le tecniche per la gestione delle macroinformazioni. La ricerca sul riconoscimento delle immagini sfocate è appena iniziata, ma ora si aspettano un ulteriore sviluppo di una nuova metodologia che soddisfi i requisiti di cui sopra.

Consideriamo brevemente lo stato del riconoscimento delle immagini sfocate. Poiché le informazioni video anche di un oggetto sufficientemente chiaro possono essere disturbate dal rumore, la logica fuzzy viene spesso utilizzata per rilevare i bordi. Un tipico esempio è la classificazione

elementi dell'immagine utilizzando il clustering fuzzy. Tuttavia, poiché gli elementi assolutamente identici sono rari, è necessario il raggruppamento "fuzzy". Metodi simili vengono utilizzati per classificare le immagini che sono sparse rispetto all'immagine di riferimento (riconoscimento di caratteri scritti a mano, parlato, ecc.).

Il rilevamento diretto dei contorni solleva il problema del rumore, che non può essere completamente risolto con l'aiuto dei filtri. Inoltre, sono necessarie conclusioni per ricostituire i siti perduti. Per questo vengono utilizzate regole euristiche, che, tuttavia, sono di natura qualitativa sfocata. Quando si passa alla fase di comprensione dell'immagine, sorge il problema di un confronto sfocato più efficace delle immagini, che richiede la corrispondenza non solo nella forma, ma anche nella semantica per la sua soluzione. In particolare, questa situazione si sta sviluppando nel campo della diagnostica basata su immagini a raggi X, dove la formazione di regole è impossibile.

Di seguito sono riportati alcuni esempi tipici di ricerca sul riconoscimento delle immagini utilizzando la logica fuzzy.

Il rilevamento e il riconoscimento degli oggetti è parte integrante dell'attività umana. Non è ancora del tutto chiaro come una persona riesca a isolare e riconoscere così accuratamente e così rapidamente gli oggetti necessari in una varietà di ambienti. Fisiologi e psicologi hanno cercato di scoprirlo per più di cento anni. Tuttavia, qui il nostro obiettivo non è comprendere il meccanismo di percezione dell'uomo (e degli animali), ma descrivere i metodi di riconoscimento automatizzato degli oggetti dalle loro immagini: nuova tecnologia dell'informazione, metodologia potente, pratica e, in un certo senso, universale per elaborazione e valutazione delle informazioni e rivelazione di schemi nascosti.

Il riconoscimento di oggetti tridimensionali dalle loro immagini bidimensionali è recentemente diventato uno dei compiti più importanti nell'analisi della scena e nella visione artificiale. Le informazioni iniziali per il riconoscimento contengono immagini in varie parti dell'intero spettro di radiazione (ottica, infrarossa, ultrasonica, ecc.), ottenute con vari metodi (televisivo, fotografico, laser, radar, radiazione, ecc.), convertite in forma digitale e presentato sotto forma di una matrice numerica. Per oggetto si intende non solo (e non tanto) una rappresentazione digitale di un frammento locale di una scena bidimensionale, ma una sua descrizione approssimativa, sotto forma di un insieme di proprietà caratteristiche (caratteristiche). Lo scopo principale delle descrizioni (immagini di oggetti) è il loro utilizzo nel processo di determinazione della corrispondenza di oggetti, effettuato per confronto (collation). Il compito del riconoscimento è determinare l'appartenenza "nascosta" di un oggetto a una particolare classe analizzando il vettore di valori delle caratteristiche osservate. L'algoritmo di riconoscimento deve estrarre informazioni sulla relazione tra i valori degli attributi di un oggetto e la sua appartenenza a una determinata classe dall'insieme di addestramento di oggetti per i quali sono noti i valori sia degli attributi che delle classi, o solo i valori dei loro attributi. Nel primo caso, il compito è chiamato il compito di insegnare il riconoscimento del modello con un insegnante e nel secondo - senza un insegnante. Si presume qui che ogni oggetto "appartiene" a un'immagine da un insieme fisso. Quando si assegnano (classificano) oggetti, è necessario applicare alcune regole stabilite in precedenza per decidere a quale immagine (classe) appartiene l'oggetto. Nel problema del riconoscimento con l'allenamento, la regola di classificazione dovrebbe essere sviluppata sulla base dello studio di un insieme di oggetti con note appartenenti a classi diverse. Questi oggetti sono chiamati collettivamente set di addestramento o campione. Nel problema della formazione automatica delle immagini, gli oggetti vengono presentati all'"osservatore" senza indicare la loro appartenenza alle classi (riconoscimento senza insegnante). L'osservatore (algoritmo di riconoscimento) deve costruire autonomamente un'opportuna definizione di classi (analisi dei cluster). Naturalmente, un tale approccio all'analisi dell'immagine è adeguato solo a uno dei due aspetti del duplice problema di rilevare e riconoscere gli oggetti in una scena, vale a dire, il riconoscimento effettivo di una classe di un frammento di immagine (selezionato) abbastanza definito, considerato come manifestazione esterna di qualche immagine nascosta. In questo caso si è costretti ad assumere che il problema della segmentazione sia già stato risolto, ovvero la determinazione dei confini dei frammenti, ognuno dei quali può essere considerato come un tutto unico (oggetto).

La ricerca sul riconoscimento delle immagini degli oggetti spaziali si distingue per una grande varietà nella formulazione dei problemi e nella scelta dei mezzi per risolverli (metodi di elaborazione dei corrispondenti frammenti di immagini), che è una conseguenza della varietà di campi di applicazione pratica. I compiti tradizionali, risolti anche nei primi sviluppi sperimentali dei sistemi di visione artificiale, sono i compiti di rilevare e riconoscere oggetti con una determinata forma sulla base di immagini rumorose e (possibilmente) deformate. Quindi, uno dei primi problemi pratici che ha stimolato la formazione e lo sviluppo della teoria del riconoscimento degli oggetti è stato il problema dell'identificazione e del riconoscimento dei volti umani

Riso. 9.1. Illustrazione del problema del riconoscimento del volto umano e approcci alla selezione dei frammenti informativi (fonte)

La complessità di questo compito è dovuta alla varietà di possibili angoli (scale, posizioni, angoli di rotazione) dei volti riconosciuti (vedi Fig. 9.1). Qui devi prima costruire una rappresentazione interna degli oggetti, comprese le proiezioni di immagini. Questa attività è ancora ampiamente utilizzata nei sistemi di sicurezza, verifica delle carte di credito, medicina legale, teleconferenze, ecc. Per risolverlo vengono proposti metodi di riconoscimento basati sulla teoria delle reti di neurocomputer, algoritmi di correlazione-estremo, metodi per il calcolo dei momenti statistici e algebrici, analisi del contorno, modellazione 3D, ecc. Tra questi, viene prestata particolare attenzione alla direzione associata alla selezione automatica delle caratteristiche (informative) degli oggetti della scena, in questo caso gli elementi degli occhi, del naso, della bocca, del mento - Fig. 9.1.

Poco dopo, nei compiti di monitoraggio (controllo) dell'ambiente naturale da immagini aerospaziali, sono stati delineati diversi approcci più importanti alla costruzione di caratteristiche informative. In particolare, quando sono stati ottenuti i primi dati di telerilevamento multispettrale e multispettrale, la maggior parte degli sviluppatori di metodi di interpretazione delle macchine si è rivolta allo studio delle proprietà spettrali degli oggetti naturali, poiché la luminosità degli elementi dell'immagine corrispondenti in diversi intervalli spettrali ha permesso di identificarli a costi di calcolo relativamente bassi.

Riso. 9.2. Cluster analysis della luminosità spettrale di oggetti naturali, mappatura e piano bidimensionale di una coppia di canali spettrali informativi

Il metodo di elaborazione più comune era la "classificazione non supervisionata" basata sull'analisi dei cluster, con l'aiuto del quale lo spazio delle caratteristiche spettrali è stato suddiviso in gruppi distinguibili (cluster, cfr. Fig. 9.2) e la classificazione degli elementi dell'immagine ha consentito di segmentare la scena in regioni spettralmente omogenee.

Inoltre, si è riscontrato che nel riconoscimento delle formazioni naturali, oltre alle caratteristiche spettrozonali, sono risultate estremamente importanti le caratteristiche che caratterizzano l'organizzazione spaziale locale dei mezzitoni (texture) degli oggetti di analisi. Un operatore di decodificatore esperto fa affidamento su tali informazioni (forma, orientamento, distribuzione di elementi caratteristici, contesto e altre caratteristiche spaziali) a volte più che su caratteristiche multispettrali. In ogni caso, l'attrazione delle caratteristiche materiche può aumentare significativamente l'affidabilità del riconoscimento e aumentare il numero di classi distinguibili di oggetti naturali.

Negli studi sperimentali incentrati sulla risoluzione di problemi specifici, i dati iniziali sono un insieme di frammenti di immagini (oggetti di scena), decifrati da specialisti in materia e che fungono da materiale di formazione e controllo. In questo caso, l'obiettivo principale dello sviluppo di un algoritmo di riconoscimento è rispondere alla domanda se sia possibile l'analisi e la classificazione automatizzate delle corrispondenti immagini degli oggetti e, in tal caso, quale insieme di funzionalità di decrittazione è più efficace e quale struttura dovrebbe governare la decisione e metodo di decrittazione hanno.

  • Corso obbligatorio per gli studenti del 3° anno del dipartimento. MMP, letto nel 6° semestre
  • Corso obbligatorio per gli studenti del 1° anno della magistratura di dipartimento. ASVK, leggere nel 2° semestre
  • Lezioni frontali - 32 ore
  • Modulo di controllo - esame
  • L'autore del programma: il professor Mestetsky L.M.
  • Relatore: Professor Mestetsky L.M.

annotazione

Il corso si basa sui metodi matematici di pattern recognition utilizzati per l'analisi e la classificazione delle immagini nei sistemi di visione artificiale. Le caratteristiche distintive dei metodi di riconoscimento per questa classe di problemi sono determinate dalla struttura dei dati iniziali: immagini digitali sotto forma di matrici di colore e luminosità dei punti. Queste caratteristiche riguardano principalmente le specifiche della generazione di descrizioni delle caratteristiche degli oggetti, nonché le specifiche della costruzione di una metrica nello spazio delle immagini.

La prima parte del corso (18 ore) comprende le problematiche della trasformazione di immagini di vario tipo per generare descrizioni di caratteristiche. In primo luogo, vengono studiati metodi di elaborazione di immagini puntiformi, geometriche spaziali, algebriche e interframe. Inoltre, metodi per generare caratteristiche basate sulla scomposizione delle immagini in termini di funzioni di base (trasformata di Karunen-Loev, trasformata di Fourier discreta, decomposizione wavelet), analisi statistica della trama dell'immagine, nonché analisi della forma delle immagini (costruzione di confini , scheletri, trasformata di Hough) sono considerati.

Nella seconda parte del corso (8 ore) vengono considerate le modalità di costruzione di metriche per il confronto delle immagini (confronto di scomposizioni spettrali, sovrapposizione e allineamento delle immagini).

L'ultima parte del corso (6 ore) prevede l'applicazione delle metodologie studiate a problemi applicati di computer vision. Vengono presi in considerazione i problemi di riconoscimento del testo nelle immagini dei documenti, i problemi di identificazione biometrica di una persona dalla trama dell'iride dell'occhio, dalla forma del palmo, dall'impronta digitale, dal profilo del viso. Successivamente, vengono esplorate le applicazioni al riconoscimento di oggetti dinamici nelle scene osservate per il riconoscimento di posture e gesti.

Oggetto e compiti del trattamento e riconoscimento delle immagini digitali

Dispositivi di acquisizione e riproduzione di immagini raster (fotocamere, scanner, display, stampanti), digitalizzazione delle immagini. Modelli di immagini. I compiti di elaborazione, analisi e classificazione delle immagini. Sistemi applicativi, software.

Metodi puntuali di elaborazione delle immagini

Istogrammi di intensità. Trasformazioni basate sull'analisi degli istogrammi di intensità. Trasformazioni puntiformi (illuminazione, immagine negativa, binarizzazione, pseudo colorazione).

Tecniche di elaborazione delle immagini spaziali

Frequenza spaziale dell'immagine. Convoluzione dell'immagine. Design del filtro: filtri passa-basso, passa-banda e passa-alto. Miglioramento degli spigoli, metodi di Laplace, Roberts, Kirsch e Sobel, metodi di spostamento e differenza, metodo del gradiente direzionale.

Tecniche di elaborazione delle immagini geometriche e algebriche

Trasformazioni algebriche (addizione, sottrazione di immagini). Trasformazioni geometriche (interpolazione monocromatica, trasformazioni affini e non lineari).

Metodi di elaborazione delle immagini interframe

Geometria di più proiezioni. Stereovisione. Determinazione del movimento di un oggetto.

Analisi dell'immagine basata sull'espansione nelle funzioni di base

Vettori di base e matrici di base. Decomposizione Karunen-Loev. Trasformata discreta di Fourier. Trasformata del coseno. Trasformate wavelet continue e discrete. Decomposizione Wavelet. Selezione Wavelet.

Metodi statistici di analisi delle texture

Segnali regionali. Metodi per misurare le texture basate su statistiche del primo ordine. Metodi per misurare le texture basate su statistiche del secondo ordine.

Metodi di analisi della forma dell'immagine

Concetti di forma. Segmentazione, selezione della forma. Invio del modulo. Caratteristiche della forma e loro misura. Scheletrizzazione. Hough trasformazione. Morfologia matematica binaria. Erosione e dilatazione. Algoritmi morfologici su immagini binarie discrete.

Metriche per misurare la somiglianza delle immagini

Confronto di espansioni spettrali. Classificazione per confronto con uno standard. Somiglianza basata sulla ricerca del percorso ottimale. Principio di ottimalità di Bellman e programmazione dinamica. Riconoscimento "senza segno".

Riconoscimento di testi da immagini di documenti

Segmentazione di documenti e testi. Allineamento dei testi. Riconoscimento dei caratteri stampati. Riconoscimento della grafia.

Identificazione biometrica basata sul riconoscimento delle immagini

Classificazione delle iridi con il metodo Daugman. Classificazione delle sagome dei palmi mediante il metodo di confronto di oggetti flessibili. Un metodo per evidenziare punti speciali in uno schema papillare.

Riconoscimento di scene dinamiche

Riconoscimento dei gesti. Riconoscimento delle espressioni facciali. Riconoscimento delle pose.

Lavoro indipendente dagli studenti

Workshop computazionale sull'elaborazione e la classificazione delle immagini

Esercizio 1. Argomento: Studio e padronanza dei metodi di elaborazione e segmentazione delle immagini. Sviluppare e implementare un programma per lavorare con le immagini dei chip del set di giochi Tantrix.

Compito 1, PDF

Compito 2. Argomento: Studio e sviluppo di metodi per classificare la forma delle immagini. Sviluppare e implementare un programma per la classificazione delle immagini dei palmi. "

Sto continuando una serie di articoli sul riconoscimento di schemi, la visione artificiale e l'apprendimento automatico. Oggi vi presento una panoramica di un algoritmo chiamato eigenface.

L'algoritmo si basa sull'utilizzo di caratteristiche statistiche fondamentali: media (aspettativa) e matrice di covarianza; utilizzando il metodo delle componenti principali. Toccheremo anche concetti di algebra lineare come autovalori e autovettori (wiki:, eng). E inoltre, lavoreremo in uno spazio multidimensionale.
Per quanto spaventoso possa sembrare, questo algoritmo è forse uno dei più semplici che ho considerato, la sua implementazione non supera diverse dozzine di righe, allo stesso tempo mostra buoni risultati in una serie di attività.


Per me eigenface è interessante perché negli ultimi 1,5 anni ho sviluppato, tra l'altro, algoritmi statistici per l'elaborazione di vari array di dati, dove molto spesso ho a che fare con tutte le "cose" sopra descritte.

Utensili

Secondo quanto stabilito, nell'ambito della mia modesta esperienza, la tecnica, dopo aver riflettuto su qualsiasi algoritmo, ma prima di implementarla in C/C++/C#/Python ecc., è necessario rapidamente (per quanto possibile ) creare un modello matematico e testarlo, per contare qualcosa. Ciò consente di apportare le modifiche necessarie, correggere gli errori e scoprire cosa non è stato preso in considerazione quando si pensa all'algoritmo. Per questo, utilizzo MathCAD. Il vantaggio di MathCAD è che, insieme a un numero enorme di funzioni e procedure integrate, utilizza la notazione matematica classica. In parole povere, basta conoscere la matematica ed essere in grado di scrivere formule.

Breve descrizione dell'algoritmo

Come ogni algoritmo della serie di machine learning, eigenface deve essere prima addestrato, per questo utilizziamo un training set, ovvero le immagini dei volti che vogliamo riconoscere. Dopo che il modello è stato addestrato, forniremo un'immagine come input e, di conseguenza, riceveremo una risposta alla domanda: quale immagine del campione di addestramento corrisponde molto probabilmente a un esempio in input o non corrisponde a nessun .

Il compito dell'algoritmo è rappresentare l'immagine come la somma dei componenti di base (immagini):

Dove Ф i - immagine i-esima centrata (cioè meno la media) del campione originale, w j sono i pesi e u j autovettori (autovettori o, nell'ambito di questo algoritmo, autofacce).

Nell'immagine sopra, otteniamo l'immagine originale mediante la somma pesata degli autovettori e aggiungendo la media. Quelli. avendo w e u, possiamo ripristinare qualsiasi immagine originale.

Il training set deve essere proiettato in un nuovo spazio (e lo spazio, di regola, è molto più grande dell'immagine bidimensionale originale), dove ogni dimensione darà un certo contributo alla rappresentazione complessiva. Il metodo delle componenti principali consente di trovare le basi di un nuovo spazio in modo tale che i dati in esso contenuti si trovino, in un certo senso, in modo ottimale. Per capire, basta immaginare che nel nuovo spazio alcune dimensioni (dette anche componenti principali o autovettori o autofacce) "trasporteranno" informazioni più generali, mentre altre porteranno solo informazioni specifiche. Di norma, le dimensioni di ordine superiore (corrispondenti ad autovalori minori) contengono informazioni molto meno utili (nel nostro caso, utile significa qualcosa che fornisce una visione generalizzata dell'intero campione) rispetto alle prime dimensioni corrispondenti agli autovalori maggiori. Lasciando le dimensioni con solo informazioni utili, otteniamo uno spazio di funzionalità, in cui ogni immagine del campione originale è presentata in forma generalizzata. Questa, molto semplificata, è l'idea dell'algoritmo.
Inoltre, avendo tra le mani un'immagine, possiamo mapparla allo spazio creato in anticipo e determinare a quale immagine del campione di addestramento si trova il nostro esempio più vicino. Se si trova a una distanza relativamente grande da tutti i dati, molto probabilmente questa immagine non appartiene affatto al nostro database.

Per una descrizione più dettagliata, consiglio di fare riferimento all'elenco dei Link esterni su Wikipedia.

Una piccola digressione. Il metodo della componente principale è ampiamente utilizzato. Ad esempio, nel mio lavoro lo uso per selezionare componenti di una certa scala (temporale o spaziale), direzione o frequenza in un array di dati. Può essere utilizzato come metodo per la compressione dei dati o come metodo per ridurre la dimensione originale di un campione multidimensionale.

Creazione del modello

Il Face Database dell'Olivetti Research Lab (ORL) è stato utilizzato per compilare il campione di formazione, che contiene 10 fotografie di 40 persone diverse:

Per descrivere l'implementazione dell'algoritmo, inserirò qui schermate con funzioni ed espressioni di MathCAD e le commenterò. Andare.

FaceNums definisce un vettore di numeri di volti che verranno utilizzati nell'allenamento. varNums imposta il numero di variante (secondo la descrizione della base, abbiamo 40 directory, ciascuna con 10 file immagine della stessa faccia). Il nostro set di allenamento è composto da 4 immagini.
Successivamente, chiamiamo la funzione ReadData. Implementa la lettura sequenziale dei dati e la conversione da immagine a vettore (funzione TwoD2OneD):

Quindi, in uscita abbiamo una matrice Ã, ogni colonna della quale è un'immagine "espansa" in un vettore. Tale vettore può essere visto come un punto nello spazio multidimensionale, in cui la dimensione è determinata dal numero di pixel. Nel nostro caso, le immagini 92x112 danno un vettore di 10304 elementi o definiscono un punto nello spazio 10304-dimensionale.

2. È necessario normalizzare tutte le immagini nel training set sottraendo l'immagine media. Questo viene fatto in modo da lasciare solo informazioni univoche, rimuovendo elementi comuni a tutte le immagini.

La funzione AverageImg conta e restituisce un vettore di medie. Se "comprimiamo" questo vettore in un'immagine, vedremo una "faccia media":

La funzione Normalizza sottrae un vettore di medie da ciascuna immagine e restituisce il campione medio:

3. Il passaggio successivo consiste nel calcolare gli autovettori (alias autofaces) u e i pesi w per ciascuna immagine nel set di addestramento. In altre parole, è una transizione verso un nuovo spazio.

Calcoliamo la matrice di covarianza, poi troviamo le componenti principali (sono anche autovettori) e calcoliamo i pesi. Chi conoscerà meglio l'algoritmo entrerà in matematica. La funzione restituisce una matrice di pesi, autovettori e autovalori. Questi sono tutti i dati necessari per mappare il nuovo spazio. Nel nostro caso, lavoriamo con uno spazio a 4 dimensioni, in base al numero di elementi nel training set, le restanti 10304 - 4 = 10300 dimensioni sono degenerate, non le prendiamo in considerazione.

In generale, non abbiamo bisogno di autovalori, ma da essi si possono ricavare alcune informazioni utili. Diamo un'occhiata a loro:

Gli autovalori mostrano infatti la varianza lungo ciascun asse delle componenti principali (ogni componente corrisponde ad una dimensione nello spazio). Osserva l'espressione giusta, la somma di un dato vettore = 1, e ogni elemento rappresenta un contributo alla varianza totale dei dati. Vediamo che le componenti principali 1 e 3 sommano fino a 0,82. Quelli. Le dimensioni 1 e 3 contengono l'82% di tutte le informazioni. La 2a dimensione è crollata e la 4a contiene il 18% delle informazioni e non ne abbiamo bisogno.

Riconoscimento

Il modello è compilato. proveremo.

Creiamo una nuova selezione di 24 elementi. I primi quattro elementi sono gli stessi del training set. Il resto sono diverse varianti di immagini dal set di allenamento:

Successivamente, carichiamo i dati e li passiamo alla procedura Riconosci. In esso, ogni immagine viene mediata, mappata nello spazio dei componenti principali e vengono trovati i pesi w. Dopo che il vettore w è noto, è necessario determinare a quale degli oggetti esistenti è più vicino. Per questo viene utilizzata la funzione dist (invece della classica distanza euclidea nei problemi di riconoscimento di pattern, è meglio usare un'altra metrica: la distanza di Mahalonobis). Trova la distanza minima e l'indice dell'oggetto a cui questa immagine si trova più vicino.

Su un campione di 24 oggetti mostrato sopra, l'efficienza del classificatore è del 100%. Ma c'è un avvertimento. Se sottoponiamo all'input un'immagine che non è nella base originale, verrà comunque calcolato il vettore w e verrà trovata la distanza minima. Pertanto, viene introdotto un criterio O se la distanza minima< O значит изображение принадлежит к классу распознаваемых, если минимальное расстояние >Oh, non c'è un'immagine del genere nel database. Il valore di questo criterio è scelto empiricamente. Per questo modello, ho scelto O = 2,2.

Facciamo un campione di persone che non sono in formazione e vediamo con quanta efficacia il classificatore filtrerà i campioni falsi.

Abbiamo 4 falsi positivi su 24 campioni. Quelli. l'efficienza era dell'83%.

Conclusione

In generale, un algoritmo semplice e originale. Ancora una volta dimostra che molte informazioni utili sono "nascoste" in spazi di dimensione superiore, che possono essere utilizzati in vari modi.  Insieme ad altre tecniche avanzate, eigenface può essere utilizzato per migliorare l'efficienza della risoluzione dei compiti.

Ad esempio, utilizziamo un semplice classificatore di distanza come classificatore. Tuttavia, potremmo applicare un algoritmo di classificazione più avanzato, ad esempio

Articoli correlati principali