9
votes

Numérisation de la parcelle - raclage des valeurs d'échantillon d'une image d'un graphique

Ce n'est pas vraiment "OCR", car il ne reconnaît pas les personnages, mais c'est la même idée appliquée aux courbes. Quelqu'un connaît une bibliothèque de traitement d'image ou un algorithme établi pour récupérer les valeurs d'une image de tracé (raster)? Par exemple, dans ce graphique, il est difficile pour moi de lire des valeurs exactes avec mes yeux car il y a de telles lacunes entre les gridlines:

 text alt

Je peux utiliser un bord droit ou quoi que ce soit, mais cela va toujours être sujette d'erreur. Ce serait génial s'il y avait un logiciel qui pourrait simplement prendre une capture d'écran de tout graphique ancien et la convertir automatiquement en une table de valeurs ou une fonction pouvant être interrogée.

semble être appelé "reconnaissance de la courbe"? Pourrait également être utilisé pour extraire des données des courbes dans des papiers scientifiques pour lesquels les données sous-jacentes ne sont pas publiées.

Et c'est correct d'avoir des conseils humains. Il n'y a aucune raison que un OCR ne pouvait pas lire le "100" et le faire correspondre à la ligne, par exemple, mais il est correct d'avoir un humain donner aux lignes les valeurs numériques après que la machine ait extrait le chemin de la courbe par rapport aux glislines. Je suis surtout intéressé par la fonction de traçage de la courbe par rapport à la grille, même si la grille est inclinée, tournée ou déformé dans un manière non affine .

mise à jour:

Il y a maintenant un article Wikipedia appelé convertir des graphiques numérisés en données avec une bande de logiciels dans les liens. En outre, quelque logiciel sur alternativeto.net . Je suppose que la théorie appartient à http://dsp.stackexchange.com maintenant, pendant que les solutions logicielles appartiennent à Http://superuser.com ?


3 commentaires

J'ai utilisé arohatgi.info/webplotdigitizer nécessite une annotation manuelle du graphique, mais dans votre cas, je pense C'est l'option la plus facile!


@ Rasmusbååth: Oui c'est ce que j'ai utilisé. C'est plus une question de programmation, cependant.


J'utilise PlutDigitizer . Vous pouvez essayer son application gratuite en ligne ici .


7 Réponses :


6
votes

Ceci est extrêmement difficile et sujet d'erreur. (Nous faisons beaucoup de choses en chimie où nous essayons d'analyser la chimie.) Cela dépend de manière critique sur divers paramètres et conditions.

  1. est l'image un bit-plan (pixels uniquement) ou vecteurs (EMF, WMF, SVG, PS, PD, PDF ...)? Les vecteurs sont vastes mieux que les pixels. Nous abordons les vecteurs (y compris PDF) mais ne touchez pas les pixels. Certains de nos collbaorateurs essaieront d'utiliser des pixels mais uniquement sur des documents assez récents.
  2. Si vous êtes coincé avec des pixels, vos images sont-elles toutes de la même source? Si oui, vous avez une petite chance d'extraire des informations de police. Je crains que votre image soit si pauvre que cela nécessiterait beaucoup de travail. Toutefois, si vous pouvez travailler la police, vous avez une chance d'extraire du texte et des chiffres si tous les documents sont de la même source. Vous pouvez utiliser des heuristiques (règles telles que les chiffres pourraient être) ou une machine-apprentissage (une liste de fonctionnalités sur Whioch les méthodes peut être formée).
  3. Votre image semble avoir été numérisée (car les axes sont pixels). Cela le rend encore pire. Ce qui apparaît une ligne droite à l'oeil est horrible pour une machine. Votre image est-elle asymétrique sur la page? Vous devrez peut-être vous déseciller.
  4. Si vous avez un modèle pour les lignes et les courbes, vous pouvez avoir un changement de modélisation des paramètres attendus dans l'image. Mais ce n'est pas trivial.

    Je suis désolé d'être pessimiste. Si vous voulez vraiment les informations, cela peut être fait avec beaucoup d'investissement ou de collaboration avec des groupes qui font ce genre de chose.


7 commentaires

Je ne pense pas que ce soit aussi difficile que vous l'imaginez. Quelle expérience spécifique avez-vous avec cela? Je ne comprends pas ce que les graphiques de raclage ont à voir avec "analyser la chimie".


Et oui, je veux dire des graphiques rastralisés, pas des images vectorielles.


@endolith Le graphique ci-dessus pourrait bien apparaître dans un papier de chimie. Nous avons analysé (et publié dans des journaux de pair-reviwed) sur la manière d'extraire des informations provenant de documents scientifiques. Celles-ci sont principalement en chimie, mais elles contiennent des graphiques qui montrent tous les aspects de ce problème. Vous "ne pensez pas que ce soit aussi difficile que j'imagine". Si vous avez réussi à écrire des logiciels que d'extraire des informations (sans aide humaine) de l'image indiquée, vous émerveillerez beaucoup de personnes.


@endolith même OCR sur les caractères de votre graphique (sans parler des lignes) donnera lieu à des erreurs considérables. Si vous ne croyez pas cela, obtenez un programme OCR et essayez.


* Il n'y a aucune raison de ne pas lire la "100" * La qualité de ces glyphes est si médiocre que vous obtiendrez presque certainement comme "loo" (el-oh-oh, pas un zéro zéro). En effet, les pixels saignent d'un glyphe à un autre alors je doute que vous obtiendriez même cela. N'oubliez pas que l'OCR n'a pas été formé sur ce graphique. Il est bien sûr possible de créer un logiciel qui permet une annotation manuelle sur une superposition du graphique, mais je suppose que vous vouliez quelque chose de plus automatique.


Le point de ma question est de lire la position de la courbe par rapport aux lignes de la grille, de ne pas lire le texte. Je l'ai dit dans la première phrase de la question. Mais je supporte toujours ma déclaration que OCR n'a aucun problème à lire le nombre "100", surtout depuis que je viens de courir cette image via ocrterminal.com, onlineocr.net, free-ocr.com et googlecodesamples.com et ils ont tous lu " 100 ". Et ceux-ci sont optimisés pour les pages de texte. Si un algorithme OCR connaît qu'il recherche des chiffres et non des lettres, et qu'ils sont alignés sur une grille, cela va être encore plus précis.


"Votre image semble avoir été numérisée ... cela le rend encore pire. Qu'est-ce qui apparaît une ligne droite à l'œil est horrible pour une machine." Je ne vois pas pourquoi. Même un exemple exemple de script de transformation de Hough peut trouver les lignes de l'image: flickr.com/photos / 56868697 @ N00 / 4071011102 Un programme dédié à la recherche de lignes parallèles espacées uniformément de longueur égale devrait être capable de le faire très bien.



1
votes

Je ne connais aucun logiciel qui fait ce que vous demandez, mais si vous pouvez obtenir seulement quelques points, vous pouvez utiliser une sorte de régression pour trouver la meilleure fonction qui correspond à ces points. Ce graphique particulier ressemble à une fonction exponentielle. Donc, vous voudrez trouver un calculateur de régression exponentielle.


1 commentaires

S'il vous plaît dites-nous quelle "calculatrice de régression" peut-elle lire des données d'une image?



3
votes

Google for "Software de reconnaissance de courbe" suggère http://www.curveunscan.com/


3 commentaires

Hmmm ... il dit "algorithme de reconnaissance de courbe", mais parle également de choisir les points à la main: Curveunscan. Com / Caractéristiques.htm


Cela fonctionne en quelque sorte, mais nécessite beaucoup de points de cueillette de la main, des pistes mal couronnes et se bloque souvent. : /


Voici une autre solution logicielle, avec une certaine courbe après la possibilité: digitizer.sourceforge.net



2
votes

Il y a aussi Potrace qui est associé, et cette page à son tour mentionne d'autres alternatives


0 commentaires

3
votes

http://www.digitizeit.de/ est un programme de numérisation de graphiques.


0 commentaires

1
votes

J'utilise iM2Graph pour convertir des images graphiques en données, c'est-à-dire des chiffres. IM2Graph est gratuit et disponible pour Linux et Windows. Très lisse et nécessite très peu d'efforts de votre part pour générer des résultats. Voir http://www.im2graph.co.il


0 commentaires

0
votes

Il est très difficile de gratter les valeurs avec des yeux nus. Mais vous pouvez utiliser des numériseurs de graphes pouvant vous permettre de goûter des points hors réseau. Il y a beaucoup d'outils de ce type sur Internet. Quelqu'un a déjà mentionné DigitizeIt. Cependant, ce n'est pas gratuit.

Voici mes outils préférés que j'utilise souvent pour extraire des points de données à partir de graphiques et de documents numérisés.

  1. PlutDigitizer.com : C'est gratuit (en ligne) et payé (hors ligne) et prend en charge de nombreux graphiques. Il prend également en charge l'échelle logarithmique, comme celle de votre graphique.
  2. Webplotdigitizer: C'est aussi un outil très populaire et entièrement gratuit. Mais parfois, je trouve est Buggy et Glitchy.
  3. digitizeIt: c'est un outil payé et n'a pas de version en ligne.

0 commentaires