Quali sono gli algoritmi più comuni per la soglia adattativa?


38

La soglia adattativa è stata discussa in alcune domande precedenti:

Soglia adattativa per la segmentazione del fegato con Matlab

Quali sono i migliori algoritmi per il soglia delle immagini dei documenti in questo esempio?

Naturalmente, ci sono molti algoritmi per il soglia adattivo. Voglio sapere quali hai trovato più efficaci e utili.

Quali algoritmi adattivi hai usato di più e per quale applicazione; come vieni a scegliere questo algoritmo?

Risposte:


24

Non credo che la mia sarà una risposta completa, ma offrirò quello che so e dato che si tratta di un sito modificato dalla comunità, spero che qualcuno ti dia presto una risposta gratuita :)

I metodi di soglia adattativi sono quelli che non utilizzano la stessa soglia nell'intera immagine .

Ma, per alcuni usi più semplici, a volte è sufficiente scegliere una soglia con un metodo più intelligente del metodo iterativo più semplice . Il metodo di Otsu è un metodo di soglia popolare che presuppone che l'immagine contenga due classi di pixel: primo piano e sfondo e abbia un istogramma bimodale . Quindi tenta di minimizzare la loro diffusione combinata (varianza all'interno della classe).

Gli algoritmi più semplici che possono essere considerati metodi di soglia veramente adattativi sarebbero quelli che dividono l'immagine in una griglia di celle e quindi applicano un semplice metodo di soglia (ad esempio il metodo iterativo o di Otsu) su ogni cella trattandola come un'immagine separata (e presumendo un istogramma bimodale). Se una sottoimmagine non può essere soglie correttamente, è possibile utilizzare la soglia di una delle celle vicine.

Un approccio alternativo per trovare la soglia locale è esaminare statisticamente i valori di intensità del vicinato locale di ciascun pixel . La soglia è diversa per ogni pixel e calcolata dal vicinato locale ( sono possibili una mediana, una media e altre opzioni). Esiste un'implementazione di questo tipo di metodi inclusi nella libreria OpenCV nella cv::adaptiveThresholdingfunzione.

Ho trovato un altro metodo simile chiamato Bradley Local Thresholding . Esamina inoltre la vicinanza di ciascun pixel, impostando la luminosità su nero se la luminosità dei pixel è t percentuale inferiore alla luminosità media dei pixel circostanti. Il documento corrispondente può essere trovato qui .

Questa risposta allo stackover menziona un metodo di soglia locale (adattivo) chiamato Niblack, ma non ne ho mai sentito parlare prima.

Infine, esiste un metodo che ho usato in uno dei miei precedenti progetti più piccoli, chiamato Image Thresholding by Variational Minimax Optimization . È un metodo iterativo, basato sull'ottimizzazione di una funzione energetica che è una combinazione non lineare di due componenti. Un componente mira a calcolare la soglia in base alla posizione delle variazioni di intensità più forti nell'immagine. L'altro componente mira a livellare la soglia nelle aree di confine (oggetto). Si è dimostrato abbastanza buono sulle immagini di strumenti analogici (varie sfumature e riflessi dal vetro / plastica presenti), ma ha richiesto un'attenta scelta del numero di iterazioni.

fγ(f). Come ulteriore spiegazione lasciatemi offrire un preventivo di P. Soille: Analisi morfologica dell'immagine :

Un'apertura dell'immagine originale con un grande quadrato SE rimuove tutte le strutture dell'immagine rilevanti ma conserva la funzione di illuminazione. Il cappello a cilindro bianco dell'immagine originale o la sottrazione della funzione di illuminazione dall'immagine originale produce un'immagine con un'illuminazione omogenea.


14

È possibile trovare un documento contenente un confronto di una serie di metodi di soglia qui:

  • M. Sezgin, B. Sankur - Indagine sulle tecniche di soglia delle immagini e valutazione quantitativa delle prestazioni, Journal of Electronic Imaging, 2004 - pdf

Ecco un altro documento che valuta i metodi di binarizzazione:

  • P. Stathis, E. Kavallieratou e N. Papamarkos - Una tecnica di valutazione per algoritmi di binarizzazione, Journal of Universal Computer Science, 2008, - pdf

Il metodo di binarizzazione adattiva che ho usato nel mio ultimo progetto utilizza immagini integrali per un rapido calcolo della funzione di soglia utilizzata dal metodo Sauvola. Il metodo Sauvola è descritto in:

  • J. Sauvola e M. Pietikainen, Binarizzazione adattativa dei documenti, Pattern Recognition 33, 2000. - pdf

La modifica che utilizza immagini integrali che forniscono uno speedup di 20 volte (secondo il documento) è descritta in questo documento:

  • F. Shafait, D. Keysers e TM Breuel, Implementazione efficiente delle tecniche di soglia adattativa locale usando immagini integrali, riconoscimento dei documenti e recupero XV, 2008 - pdf

Questi sono solo i documenti che ho usato quando ho scelto il metodo di binarizzazione per il mio progetto (per trovare testo nelle immagini). Non sono un esperto, quindi non posso dire quale metodo sia il migliore per quale applicazione.


6

A questa domanda è stata data un'ottima risposta da diverse prospettive e voglio solo riassumere la mia esperienza e sottolineare anche alcuni problemi legati alla binarizzazione adattativa.

La binarizzazione adattativa può essere suddivisa in tre categorie:

1) Metodo globale: con questo metodo viene stimato prima lo sfondo dell'immagine; successivamente viene generata un'immagine normalizzata con l'aiuto delle informazioni di base. Quindi viene utilizzato il metodo di binarizzazione globale.

2) Metodo basato su patch: come indica il nome, il metodo basato su patch eseguirà la binarizzazione patch per patch. Ad ogni patch, viene stimata una binarizzazione con un metodo di binarizzazione globale. Successivamente, viene eseguita una certa post-elaborazione per far valere che la soglia di binarizzazione nelle patch vicine ha una transizione graduale.

3) Metodo a finestra mobile: con questo metodo, la binarizzazione viene eseguita pixel per pixel. Viene impostata una finestra mobile per calcolare le statistiche dei pixel all'interno della finestra e in base alle statistiche viene calcolata la soglia per il pixel centrale all'interno della finestra.

È molto difficile stabilire quale sia il metodo migliore in quanto dipende dall'applicazione. Quando pensi a una binarizzazione adattativa, non dimenticare di considerare le seguenti domande:

1) impostazione dei parametri: il metodo ha una procedura di impostazione automatica dei parametri? Come possiamo impostare i parametri molto bene in modo che possa funzionare nella maggior parte dei casi?

2) qual è il criterio per giustificare una buona binarizzazione adattativa? In molti casi, la differenza tra i diversi metodi di binarizzazione è davvero piccola. Tuttavia, la piccola differenza può portare a grandi differenze alla fine.

3) la binarizzazione può funzionare in alcune situazioni particolari? Ad esempio, supponiamo che l'obiettivo della binarizzazione adattiva sia estrarre mentre gli oggetti da sfondo nero, la binarizzazione può adattarsi automaticamente a questa situazione? O vice visto.

4) i metodi adattivi hanno la tendenza a concentrarsi solo sulle configurazioni locali, quindi il risultato binario non è ottimizzato. Ad esempio, il famoso metodo Sauvola genererà oggetti vuoti se l'oggetto da ottimizzare è molto più grande della finestra mobile. Il tuo metodo adattivo può contenere questa limitazione?

5) preelaborazione. Una buona binarizzazione dovrebbe includere anche un insider di elaborazione delle immagini. Se l'immagine è troppo sfocata, può regolare automaticamente i parametri dell'algoritmo o invocare un po 'di preelaborazione per evitare una cattiva binarizzazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.