Quels sont les algorithmes les plus courants pour le seuillage adaptatif?

38

Le seuillage adaptatif a déjà été abordé dans quelques questions:

Seuil adaptatif pour la segmentation du foie à l'aide de Matlab

Quels sont les meilleurs algorithmes pour le seuillage d’image de document dans cet exemple?

Bien sûr, il existe de nombreux algorithmes pour le seuillage adaptatif. Je veux savoir quels sont ceux que vous avez trouvés les plus efficaces et les plus utiles.

Quels algorithmes adaptatifs vous avez le plus utilisé et pour quelle application? comment en arrivez-vous à choisir cet algorithme?

Dipan Mehta
la source

Réponses:

24

Je ne pense pas que la mienne sera une réponse complète, mais j'offrirai ce que je sais et puisqu'il s'agit d'un site édité par la communauté, j'espère que quelqu'un donnera bientôt une réponse complémentaire :)

Les méthodes de seuillage adaptatif sont celles qui n'utilisent pas le même seuil sur toute l'image .

Mais, pour des utilisations plus simples, il suffit parfois de choisir un seuil avec une méthode plus intelligente que la méthode itérative la plus simple . La méthode d'Otsu est une méthode de seuillage populaire qui suppose que l'image contient deux classes de pixels - avant - plan et arrière - plan , et possède un histogramme bimodal . Il tente ensuite de minimiser leur propagation combinée (variance intra-classe).

Les algorithmes les plus simples pouvant être considérés comme des méthodes de seuillage véritablement adaptatives seraient ceux qui divisent l’image en une grille de cellules , puis appliquent une méthode de seuillage simple (par exemple, la méthode itérative ou la méthode d’Otsu) à chaque cellule en la traitant comme une image distincte (et en supposant un histogramme bimodal). Si une sous-image ne peut pas être seuil correctement, le seuil de l'une des cellules voisines peut être utilisé.

Une autre approche pour trouver le seuil local consiste à examiner statistiquement les valeurs d'intensité du voisinage local de chaque pixel . Le seuil est différent pour chaque pixel et calculé à partir de son voisinage local (une médiane, une moyenne et d'autres choix sont possibles). Une implémentation de ce type de méthodes est incluse dans la bibliothèque OpenCV dans la cv::adaptiveThresholdingfonction.

J'ai trouvé une autre méthode similaire appelée Bradley Local Thresholding . Il examine également le voisinage de chaque pixel, en définissant la luminosité en noir si la luminosité des pixels est inférieure de t pour cent à la luminosité moyenne des pixels environnants. Le papier correspondant peut être trouvé ici .

Cette réponse de stackoverflow mentionne une méthode de seuillage locale (adaptative) appelée Niblack, mais je n'en avais jamais entendu parler auparavant.

Enfin, il existe une méthode que j’ai utilisée dans l’un de mes précédents projets plus petits, appelée Seuil d’image par optimisation variationnelle et minimimax . Il s'agit d'une méthode itérative, basée sur l'optimisation d'une fonction énergétique consistant en une combinaison non linéaire de deux composants. Une composante vise à calculer le seuil en fonction de la position des plus forts changements d'intensité dans l'image. L'autre composant vise à lisser le seuil dans les zones de bordure (d'objet). Il s’est avéré assez bon pour les images d’instruments analogiques (divers dégradés et reflets du verre / plastique présent), mais a nécessité un choix judicieux du nombre d’itérations.

Fγ(F)

Une ouverture de l'image originale avec un grand carré SE supprime toutes les structures d'image pertinentes mais conserve la fonction d'éclairage. Le chapeau blanc de l'image d'origine ou la soustraction de la fonction d'éclairage à l'image d'origine génère une image avec un éclairage homogène.

Pénélope
la source
14

Vous pouvez trouver un article contenant une comparaison d'un certain nombre de méthodes de seuillage ici:

  • M. Sezgin, B. Sankur - Enquête sur les techniques de seuillage d'image et d'évaluation de la performance quantitative, Journal of Electronic Imaging, 2004 - pdf

Voici un autre article évaluant les méthodes de binarisation:

  • P. Stathis, E. Kavallieratou et N. Papamarkos - Une technique d'évaluation des algorithmes de binarisation, Journal of Universal Computer Science, 2008, - pdf

La méthode de binarisation adaptative que j'ai utilisée dans mon dernier projet utilise des images intégrales pour un calcul rapide de la fonction de seuil utilisée par la méthode Sauvola. La méthode Sauvola est décrite dans:

  • J. Sauvola et M. Pietikainen, Binarisation adaptative de documents, Pattern Recognition 33, 2000. - pdf

La modification qui utilise des images intégrales permettant une multiplication par 20 (selon le papier) est décrite dans cet article:

  • F. Shafait, D. Keysers et TM Breuel, Mise en œuvre efficace de techniques locales de seuillage adaptatif utilisant des images intégrales, Reconnaissance et extraction de documents XV, 2008 - pdf

Ce sont juste les papiers que j'ai utilisés lors du choix de la méthode de binarisation pour mon projet (pour trouver du texte dans les images). Je ne suis pas un expert, donc je ne peux pas dire quelle méthode est la meilleure pour quelle application.

ppalasek
la source
6

Nous avons très bien répondu à cette question de différents points de vue. Je souhaite simplement résumer mon expérience et souligner certains problèmes liés à la binarisation adaptative.

La binarisation adaptative peut être divisée en trois catégories:

1) Méthode globale: avec cette méthode on estime d'abord le fond de l'image; ensuite, une image normalisée est générée à l'aide des informations d'arrière-plan. Ensuite, la méthode de binarisation globale est utilisée.

2) Méthode basée sur les correctifs: comme son nom l’indique, la méthode basée sur les correctifs effectuera patch par patch. À chaque patch, une binarisation est estimée avec une méthode de binarisation globale. Après cela, un certain post-traitement est effectué pour faire en sorte que le seuil de binarisation dans les patchs voisins présente une transition en douceur.

3) Méthode de la fenêtre mobile: avec cette méthode, la binarisation est effectuée pixel par pixel. Une fenêtre en mouvement est configurée pour calculer les statistiques de pixel dans la fenêtre et le seuil pour le pixel central dans la fenêtre est calculé.

Il est très difficile de dire quelle méthode est la meilleure car cela dépend de l'application. Lorsque vous songez à une binarisation adaptative, n'oubliez pas de vous poser les questions suivantes:

1) paramétrage: la méthode a-t-elle une procédure de paramétrage automatique? Comment pouvons-nous définir les paramètres très bien pour que cela puisse fonctionner dans la plupart des cas?

2) quel est le critère pour justifier une bonne binarisation adaptative? Dans de nombreux cas, la différence entre les différentes méthodes de binarisation est vraiment minime. Cependant, la petite différence peut conduire à une grande différence à la fin.

3) La binarisation peut-elle fonctionner dans certaines situations? Par exemple, supposons que la binarisation adaptative ait pour objectif d'extraire les objets d'un arrière-plan noir, la binarisation peut-elle s'adapter automatiquement à cette situation? Ou vice-visa.

4) les méthodes adaptatives ont tendance à ne se focaliser que sur les configurations locales, le résultat binaire n'est donc pas optimisé. Par exemple, la fameuse méthode Sauvola générera un objet creux si l’objet à optimiser est beaucoup plus grand que la fenêtre en mouvement. Votre méthode adaptative peut-elle dépasser cette limitation?

5) prétraitement. Une bonne binarisation doit également inclure un initié en traitement d’images. Si l'image est trop floue, elle peut ajuster automatiquement les paramètres de l'algorithme ou invoquer un prétraitement pour éviter une mauvaise binarisation.

N'hésitez pas
la source