2
votes

Meilleures pratiques pour affiner un modèle?

J'ai quelques questions concernant le processus de mise au point. Je crée une application capable de reconnaître les données des documents suivants:

  • Carte d'identité
  • Permis de conduire
  • Passeport
  • Reçus

Tous ont des polices différentes (en particulier les reçus) et il est difficile de faire correspondre exactement la même police et je devrai entraîner le modèle sur un grand nombre de polices similaires.

Donc mes questions sont:

  1. Dois-je entraîner un modèle distinct pour chacun des types de documents pour de meilleures performances et précision ou il est bon de former un seul modèle eng sur un groupe de polices similaires aux polices utilisées sur ce type de documents?

  2. Combien de pages de données d'entraînement dois-je générer par police? Par défaut, je pense que tesstrain.sh génère environ 4k pages. Peut-être des suggestions sur la façon dont je peux générer des données d'entraînement les plus proches des données d'entrée réelles

  3. Combien d'itérations faut-il utiliser?

Par exemple, si j'utilise une police qui a un taux d'erreur élevé et que je souhaite viser un taux de précision de 98% - 99% .

De plus, certains d'entre vous ont peut-être déjà travaillé avec ce type de documents et peut-être connaissez-vous certaines polices courantes utilisées pour ces documents?

Je sais que MRZ dans les passeports et les cartes d'identité utilise la police OCR-B , mais qu'en est-il du reste du document?

Merci d'avance!


0 commentaires

3 Réponses :


1
votes

Ans 1, vous pouvez entraîner un seul modèle pour obtenir la même chose, mais si vous voulez détecter différentes langues, je pense que vous aurez besoin de différents modèles.

Ans 2 Si vous recherchez des ensembles de données, jetez un œil à cet ensemble de données Mnist Png qui contient des chiffres ainsi que des alphabets de diverses polices informatiques. Voici un lien vers un code de démarrage pour utiliser l'ensemble de données implémenté dans Pytorch.

Ans 3 Vous pouvez utiliser optuna pour trouver le meilleur ensemble de paramètres pour votre modèle, mais vous aurez besoin de certains des

Jetez un œil à ces

Ils essaient d'accomplir une tâche similaire. J'espère qu'il répond à votre question ...!


0 commentaires

1
votes
  1. Je formerais un classificateur sur les 4 types différents pour classer une pièce d'identité, une licence, un passeport, des reçus. En gros, vous savez qu'un passeport est un passeport par rapport à un permis de conduire, etc. Ensuite, j'aurais 4 modèles supplémentaires qui sont utilisés pour traduire chaque type spécifique (passeport, permis de conduire, carte d'identité et reçus). Il convient de noter que si vous travaillez avec plusieurs langues, cela impliquera probablement de créer 4 modèles basés sur chaque langue spécifique, ce qui signifie que si vous avez des langues L, vous aurez besoin d'un nombre de modèles 4 * L pour les traduire.

  2. Probablement beaucoup. Je ne pense pas que cette police soit vraiment un problème. Peut-être que ce que vous devriez faire est d'essayer de définir des modèles pour des choses comme le permis de conduire, puis de les générer en fonction de ce modèle?

  3. C'est le moindre de vos problèmes, faites un test.


0 commentaires

1
votes

En supposant que vous vous référez à un modèle de données ML qui pourrait être utilisé pour effectuer ocr en utilisant la vision par ordinateur, je vous recommande de:

  1. Configurez votre taxonomie selon les exigences de votre application. Cela signifie classer les jeux de polices attendus par type de document numérisé (png, jpg tiff, etc.) à inclure dans le jeu de données approprié. Sélectionnez les polices les plus proches de celles utilisées ainsi que le type d'informations que vous devez collecter (chiffres uniquement, caractères alphabétiques).

  2. Effectuez un nettoyage des données sur votre ensemble de données et assurez-vous que vous disposez de données homogènes pour la fonctionnalité OCR. Par exemple, toutes les images de document doivent être de type png, avec des dimensions maximales de 46x46 pour avoir un modèle de formation approprié. Notez que des images de résolution plus élevée et une échelle plus petite signifient une précision plus élevée.

  3. Traitez également l'écriture manuscrite, si vous avez des images de polices endommagées ou non visibles. Cela peut améliorer les options de conversion de caractères dans les cas où les polices sur papier ne sont pas clairement visibles / usées.

  • Si vous utilisez le module keras avec TF sur les ensembles de données fournis par mnist, configurez une règle d'annulation pour l'entraînement du modèle ML lorsque vous atteignez une précision de 98% à 99% pour plus de contrôle au cas où vous vous attendez à ce que vos polices dans les images soient sujettes aux erreurs (comme indiqué au dessus). Cela permet d'éviter une marge d'erreur plus élevée lorsque vous avez de mauvaises images dans votre ensemble de données d'entraînement. Pour un ensemble de données de plus de 1000 images, un bon réglage serait d'utiliser TF Dense de 256 et 5 époques. Un exemple de jeu de données d'entraînement peut être trouvé ici .

Si vous avez juste besoin d'automatiser votre application ou de saisir des données qui nécessitent une conversion OCR à partir d'images, une bonne solution open source serait d'utiliser la collecte d'informations automatiquement via le module PSImaging (Powershell) utiliser les degrés de confiance récupérés (à partir de png) et exécutez-les sur vos ensembles de données actuels pour améliorer la précision de la correspondance de vos personnages. Vous pouvez trouver le lien correspondant ici


0 commentaires