2009-02-14 10 views
2

Je souhaite que mon application remplisse un seul champ sous une forme qui existe sous la forme d'un fichier image en noir et blanc . Le formulaire commence toujours par la même version papier, mais au moment où mon application l'obtient de mes utilisateurs, il a peut-être été scanné ou faxé plus d'une fois. Pour cette raison, le champ dont j'ai besoin n'est pas dans le même endroit dans tous les fichiers.Comment trouver un champ vide sur l'image d'un document numérisé

Mes utilisateurs ne reçoivent pas toujours le formulaire vierge de moi, donc je n'ai pas avoir la possibilité d'imprimer une marque ou un espace réservé que je peux reconnaître plus tard.

Il y a du texte dans le formulaire vierge original, mais parce qu'il a été envoyé par fax, j'ai seulement 200 dpi de résolution. Le texte est toujours assez grand pour un humain à lire, mais je suis sceptique quant à l'OCR.

J'ai un peu de budget, donc je n'ai pas besoin d'une solution gratuite ... disons juste $ 2000.

Cela dit, je considère

  1. Obtenez une solution d'OCR pour trouver le texte étiquette sur le terrain que j'ai besoin. Je ne pense pas avoir les ressources ou d'expertise pour rouler-moi-même. Je n'ai pas besoin de reconnaissance parfaite, car je sais déjà ce que dit le texte. Mais j'ai besoin de savoir X- et Y-coordonnées. Y a-t-il un logiciel qui fait cela? Ou est la programmation plus facile que je pense?

  2. Créer ou acheter un logiciel pour reconnaître les bords du formulaire. De là, je pourrais obtenir la position relative de le champ dont j'ai besoin. Je pense à la ligne en pointillés mon logiciel de numérisation met autour de l'image de un petit document. Est-ce un algorhthm connu ou existe-t-il une solution disponible ? Une autre façon de reconnaître le champ dont j'ai besoin. Tentatives de google logiciel de remplissage de formulaire donnez-moi des centaines de correspondances pour les formulaires Web, formulaires pdf, etc. qui ne font pas ce que j'ai besoin .

Je ne suis pas difficile sur la langue. Mon application fonctionne sur Linux, mais si la meilleure solution est Microsoft, je peux probablement faire ce travail.

J'apprécierais vos pensées.

Répondre

3

Si je comprends bien, la forme est toujours le même, mais il peut être déplacé, mis à l'échelle, ou légèrement tourné grâce à la photocopie/faxer. Dans ce cas, votre problème est l'un des enregistrement d'image: trouvez la transformation rigide optimale qui forme un formulaire d'un utilisateur en ligne avec votre formulaire "modèle", dans lequel vous connaissez l'emplacement du champ d'intérêt. Une fois que vous connaissez la transformation, vous pouvez calculer l'emplacement du champ dans le formulaire de l'utilisateur.

Il existe de nombreux algorithmes d'enregistrement d'image, généralement développés pour des applications telles que l'alignement des images MR du cerveau. Ils sont coûteux en termes de calcul et nécessitent des priors statistiques. Heureusement, votre cas est plus facile: tout ce que vous avez à faire est de placer un rectangle autour du contenu du formulaire de l'utilisateur. La descente des coordonnées devrait fonctionner. Vous aurez besoin d'une certaine tolérance pour le bruit (indésirable en dehors du formulaire).

+0

Je pense que vous comprenez exactement correctement. C'est une bonne information. – bmb

+0

Pouvez-vous expliquer ce que vous appelez la descente de coordonnées? Merci – Raj

+1

@Raj: Une version simple de descente en dégradé. Parcourez les variables. Trouvez pour chaque variable la nouvelle valeur de la variable qui optimise la fonction objectif. Répétez jusqu'à convergence. Consultez http://books.google.com/books?id=epc5fX0lqRIC&lpg=PA53&dq=%22coordinate%20descent%22&pg=PA53#v=onepage&q=%22coordinate%20descent%22&f=false et posez une question dans la balise algorithmes si nécessaire. . –

0

Voici un petit résumé de quelques solutions disponibles OCR (open source et non): http://googlesystem.blogspot.com/2007/04/open-source-ocr-software-sponsored-by.html

+0

Les solutions résumées ici transformeront les images en texte. Aucun ne dit qu'ils vont me dire l'emplacement sur la page du texte reconnu. Avez-vous de l'expérience avec l'un d'entre eux qui le fera? – bmb

+0

Non, je suis désolé de vous dire que je n'ai pratiquement aucune expérience avec OCR. J'ai mentionné ce lien parce que, quand je l'ai lu, j'ai été informé qu'il y avait un OCR open-source et/ou que Google y participait. – ChrisW

0

Une inscription rigide peut ne pas suffire. Les utilisateurs peuvent modifier la mise en page et le formatage d'un formulaire, comme changer les polices, changer l'emplacement d'une case ou d'une boîte de saisie, casser un paragraphe à différentes positions, etc. Ces différences sont plus compliquées à traiter que décalage, rotation ou transformation d'échelle. En outre, si votre image est une image binaire (en noir et blanc), je ne pense pas que ces algorithmes d'enregistrement d'image médicale (travaillant sur l'image en niveaux de gris) puissent aider beaucoup. Votre stratégie de coût et vos stratégies de minimisation peuvent être modifiées en conséquence.

+0

Les utilisateurs ne peuvent pas modifier la mise en page ou le formatage. "Le formulaire commence toujours par la même version papier." – bmb

Questions connexes