Pin project – anomaly detection
Il rilevamento delle anomalie è un compito estremamente impegnativo nel campo della computer vision. Il motivo della difficoltà risiede nel fatto che il sistema deve imparare schemi noti e da questi deve successivamente dedurre gli schemi sconosciuti, quindi anomali, o più in generale informazioni completamente diverse da quelle su cui il sistema è stato addestrato.
Il rilevamento delle anomalie può essere suddiviso in due categorie. Una è il rilevamento delle anomalie a livello di immagine e l’altra è il rilevamento delle anomalie a livello di pixel. Il rilevamento a livello di immagine determina se l’intera immagine è “normale” o meno, mentre il rilevamento a livello di pixel prevedere l’identificazione della posizione dell’anomalia nell’immagine. In entrambi i tipi di rilevamento delle anomalie vengono utilizzati approcci diversi. Le tre macro categorie di analisi dell’immagine sono di seguito presentate.
Stima della densità:
Questo metodo genera un modello di distribuzione di probabilità delle immagini normali impostandolo come “modello di riferimento”. L’algoritmo genera quindi un nuovo modello di distribuzione delle probabilità per le nuove immagini e determina se la nuova immagine può essere inclusa nella categoria “immagini buone” o se presenta un’eventuale anomalia.
Classificazione univoca (one class classification):
In questo caso viene costruito un confine decisionale, nello spazio dei features, al fine di separare le immagini normali da quelle anormale. I metodi classici includono il “one-class support vector machines”, uno dei metodi più performanti ma che risente delle non-linearità nei casi di problemi fortemente non lineari.
Ricostruzione dell’immagine:
L’intuizione alla base della ricostruzione è che l’errore di ricostruzione deve necessariamente risultare piccolo quando viene ricostruita una normalità, mentre è grande quando nell’immagine è presente un’anomalia. I cosiddetti ‘autoencoder’ sono ampiamente utilizzati per la ricostruzione delle immagini. l’idea alla base degli autoencoder è quella di addestrare un algoritmo a comprimere l’immagine e successivamente ricostruirla attraverso una specie di “amplificazione”. Anche le reti avversarie generative (generative adversarial neural network) sono utilizzate per il rilevamento delle anomalie utilizzando la tecnica della ricostruzione. La rete avversaria viene prima addestrata su immagini normali e poi viene calcolata la differenza tra le immagini normali e quelle anormali per determinare la presenza di un’anomalia. Ciò che lo rendere inconveniente è il fatto che il modello deve eseguire un processo di ricerca iterativo rendendolo inefficiente per le applicazioni reali.
Nel settore industriale questa tecnologia sta riscuotendo sempre più interesse perché utile a:
- Controllare la qualità della produzione e scovare difetti o imperfezioni;
- Classificare, misurare, analizzare oggetti in scorrimento nella catena di produzione;
- Orientare e posizionare oggetti e favorirne la movimentazione e la logistica.
Vogliamo determinare la qualità degli adattatori della presa elettrica.

A tale scopo utilizzeremo uno dei metodi più semplici nell’identificare un oggetto o una sua parte, nonché la probabilità che esso sia presente nell’immagine.
il Multi-Template-Matching (MTM) è un metodo operabile per eseguire il rilevamento di oggetti nelle immagini utilizzando una o più immagini “modello” (template) per la ricerca.
Il punto di forza di tale metodo è che combinando i rilevamenti da più template è possibile migliorare la gamma di modelli rilevabili. Ciò è utile se si prevede una variabilità della prospettiva dell’oggetto nelle immagini, come ad esempio la rotazione, la specchiatura eccetera.
I rilevamenti dai diversi modelli non vengono semplicemente combinati, ma vengono filtrati utilizzando la Non-maximum suppression per evitare la sovrapposizione dei rilevamenti.
È necessario assicurarsi che nessuno dei template sia di dimensioni maggiori rispetto all’immagine di input. Il modulo MTM è sensibile e non rileverebbe un oggetto quando ci sono variazioni consistenti nei template o nelle dimensioni tra di loro ed un oggetto simile presente nell’immagine.
Le implementazioni python e le funzioni di MTM sono disponibili sul sito ufficiale.