IPhone: Comment utiliser les fonctionnalités de détection de texte iOS

Vision dans iOS 11 a tout ce dont vous avez besoin pour créer une application capable de reconnaître les caractères de texte avec une mise en œuvre simultanée. Vous n'avez pas besoin de connaissances techniques en codage - la navigation dans la fonctionnalité est assez simple. De plus, la mise en œuvre est transparente.

Cadre de vision

Le cadre de vision vous permet de mettre en œuvre facilement toute tâche impliquant des détails informatiques. La structure effectue la détection des visages et des points de repère, la reconnaissance des codes-barres, l'enregistrement des images, le suivi des caractéristiques générales et la détection du texte. Vision vous permet également d'utiliser des modèles Core ML personnalisés pour des tâches telles que la classification ou la détection d'objets.

VN DetectTextRectanglesDemande

Les VN DetectTextRectanglesDemande est une requête d'analyse d'image qui trouve des régions de texte visible dans une image; la fonction renvoie des caractères de texte sous la forme d'un cadre de délimitation rectangulaire avec origine et taille.

Si vous avez l'habitude d'utiliser Swift et que vous programmez depuis un certain temps, vous vous demandez probablement à quoi sert Vision lorsqu'il existe d'autres fonctionnalités telles que l'image et AVFoundation. Eh bien, Vision est plus précis et plus simple. La fonctionnalité est également disponible sur une variété de plateformes. Cependant, l'utilisation de Vision peut nécessiter plus de puissance de traitement et de temps de traitement.

Pour utiliser Vision pour la détection de texte, vous aurez besoin de Xcode 9 et d'un appareil exécutant iOS 11.

Créer une caméra avec Avcapture

Tout d'abord, vous devez créer une caméra avec AVCapture; c'est en initialisant un objet AVcapturesession pour effectuer une capture en temps réel ou hors ligne. Après cela, établissez la session sur la connexion de l'appareil.

Pour vous faire gagner du temps lors de la création d'une interface utilisateur de votre application, envisagez d'abord d'avoir un projet de démarrage, cela vous donnera le temps de vous concentrer sur l'apprentissage du framework Vision.

  1. Ouvrez votre projet de démarrage. Les vues dans le storyboard doivent être toutes prêtes et configurées pour vous.
  2. Sur le ViewController.swift, recherchez la section de code avec les fonctions et les points de vente.
  3. Sous la sortie-ImageView, ddéclarer une session pour AVcapturesession - ceci est utilisé chaque fois que vous souhaitez que des actions soient effectuées sur la base d'un flux en direct.
  4. Met le AVcapturesession et le Type de média AV à la vidéo puisque vous effectuerez la prise de vue de la caméra pour lui permettre de fonctionner en continu
  5. Définir le périphérique de sortie et d'entrée
  6. L'entrée est ce que la caméra verra et la sortie est la vidéo à un format de type défini de KCVPixelFormatType_32GRA.
  7. Enfin, ajoutez un sous-couche qui contient des vidéos à imageVoir et démarrez la session. La fonction est connue sous le nom inViewdidload. Vous devez également définir le cadre du calque.

Appelez la fonction dans le voirApparaît méthode.

Comme les limites ne sont pas encore finalisées, remplacez le viewDidLayoutSubviews ( ) méthode pour mettre à jour les couches liées.

Après la sortie d'iOS 10, une entrée supplémentaire dans Info.plist est nécessaire, cela fournit une raison d'utiliser l'appareil photo. Vous devez également définir Privacy-Camera Usage Description.

Détection de texte; Comment fonctionne le cadre de vision

Il y a trois étapes pour implémenter Vision sur l'application.

  1. Manipulateurs – c'est à ce moment que vous voulez que le framework fasse quelque chose après l'appel de la requête.
  2. Observations – c'est ce que vous voulez faire avec les données que vous fournissez en commençant par une demande
  3. Demandes – c'est à ce moment que vous demandez le framework Detect

Idéalement, vous créez une demande de texte comme VNdetectextrectanglesrequest. C'est une sorte de VNrequête qui borde le texte. Une fois que le framework a terminé l'application, vous continuez à appeler le Dettexthandler fonction. Vous voudrez également connaître la trame exacte qui a été reconnue, réglez-la sur Boîtes de caractères de rapport= Vrai.

Après cela, définissez les observations qui contiennent tous les résultats de VNdetectextrectanglesrequest, n'oubliez pas d'ajouter Vision à la caméra de sortie. Étant donné que Vision expose des API de haut niveau, son utilisation est sécurisée.

La fonction vérifie si le Cmsamplebuffer existe et PutOut Avcaptureoutput. Vous devez ensuite créer une variable Demander des options comme 1 Type de dictionnaire VNimageoption. Les VNmage option est un type de structure qui contient les propriétés et les données de la caméra. Vous devez ensuite créer le VNimagerequesthandler et exécutez la requête de texte.

Dessiner des bordures autour du texte détecté

Vous pouvez commencer par avoir le framework pour dessiner deux cases, une pour chaque lettre qu'il détecte et l'autre pour chaque mot. Les tableaux sont la combinaison de toutes les cases de caractères que votre demande trouvera.

  • Définissez les points sur votre vue pour vous aider à positionner les cases.
  • Après cela, créez un CALayer; utilisation VNrectangleobservation pour définir vos contraintes, facilitant le processus de contour de la boîte.

Vous avez maintenant toutes vos fonctions définies.

Pour relier vos points, commencez par exécuter votre code de manière asynchrone. Vous devez ensuite vérifier si une région existe dans vos résultats à partir de votre VNTextObservation.

Vous pouvez maintenant appeler votre fonction, qui dessinera une boîte dans la zone. Vérifiez s'il y a des boîtes de caractères dans la région, puis appelez le service qui apporte une boîte autour de chaque lettre.

Après cela, créez une variable Demande d'options. Vous pouvez maintenant créer un VNImageRequestHandler objet et exécutez la demande de texte que vous avez créée.

Enfin, la dernière étape consiste à exécuter votre code de vision avec le flux en direct. Vous devrez prendre la sortie vidéo et la convertir en Cmsamplebuffer.

Conseils supplémentaires

  1. Essayez toujours de recadrer l'image et de ne traiter que la section dont vous avez besoin. Cela réduira le temps de traitement et l'empreinte mémoire
  2. Activez la correction de la langue lorsque vous traitez des caractères non numériques, puis désactivez-la lorsque vous traitez un caractère numérique
  3. Incluez la validation des chaînes numériques reconnues pour confirmer l'exactitude et éliminer l'affichage d'une fausse valeur à l'utilisateur.
  4. Le contrôleur de caméra de documents est le meilleur compagnon pour la reconnaissance de texte puisque la qualité d'image joue un rôle important dans la reconnaissance de texte.
  5. Envisagez de définir une hauteur de texte minimale pour augmenter les performances.

Avec Vision, vous avez tout ce dont vous avez besoin pour la reconnaissance de texte. Étant donné que Vision est facile à utiliser et prend peu de temps à mettre en œuvre, son utilisation équivaut presque à jouer avec des Legos. Essayez de tester votre application sur différents objets, polices, éclairages et tailles. Vous pouvez également vous impressionner en combinant Vision avec Core ML.