Effectuez la reconnaissance de texte avec FirebaseML! [SwiftUI]

introduction

Salut, je m'appelle @RyosukeKamimura et je suis un développeur récent d'applications iOS! Cette fois, nous effectuerons la reconnaissance de texte avec SwiftUI!

Pour ceux qui sont occupés, je vais commencer par la conclusion! !!

Conclusion

Il y a trois conclusions.

  1. Firebase ML a de bonnes performances pour reconnaître le japonais
  2. Reconnaître les caractères manuscrits est un peu difficile.
  3. Gratuit jusqu'à 1000 demandes!

Ce qui suit est un tutoriel!

Paramètres du projet Firebase

** ① Lien avec Firebase **

Veuillez consulter Firebase Setup. Puisqu'il s'agit d'une partie commune de l'enregistrement avec Firebase, je l'omettrai ici.

** ② Veuillez activer l'API cloud sur la console Firebase **

Activez le bouton à côté de Afficher l'utilisation de l'API Cloud.

drawing

** ③ Effectuez la reconnaissance de texte en consultant le document officiel Firebase ** IOS qui reconnaît le texte dans les images à l'aide de MLKit

Je voulais écrire en SwiftUI, donc je l'ai écrit pour bien mailler Coordinator et envelopper UILable! (Nous attendons avec impatience vos commentaires indiquant que vous devriez écrire plus comme ça!)

Dans cet article, j'aimerais que vous prêtiez attention aux fonctions qui effectuent réellement la reconnaissance de texte. (Parce qu'il y en a peu dans la documentation officielle de Firebase)

  1. Créer une fonction

RecognizedText.swift


func recognizedTextFunc() -> String {
  //Écrivez à l'intérieur de cette fonction
}
  1. Initialisation de l'instance Vision

RecogniedText.swift


func recognizedTextFunc() -> String {

  //Initialisation de l'instance de vision
  let vision = Vision.vision()
  let options = VisionCloudTextRecognizer(options: options)
  
  //Ajouter une priorité de langue
  options.languageHints = ["en", "ja"]
  let textRecognizer = vision.cloud
  vision.cloudTextRecognizer(options: options)
  
  //"logo"Insérer une image
  let visionImage = VisionImage(image: UIImage(named: "logo")!)
}
  1. Créez une fermeture pour obtenir le résultat

RecognizedText.swift



textRecognizer.process(visionImage) { result, error in
    guard error == nil, let result = result else {
        return
    }
    //let resultText = result.text
    for block in result.blocks {
        //let blockText = block.text
        //let blockConfidence = block.confidence
        //let blockLanguages = block.recognizedLanguages
        //let blockCornerPoints = block.cornerPoints
        //let blockFrame = block.frame
        for line in block.lines {
            //let lineText = line.text
            //let lineConfidence = line.confidence
            //let lineLanguages = line.recognizedLanguages
            //let lineCornerPoints = line.cornerPoints
            //let lineFrame = line.frame
            for element in line.elements {
                let elementText = element.text
                //let elementConfidence = element.confidence
                //let elementLanguages = element.recognizedLanguages
                //let elementCornerPoints = element.cornerPoints
                //let elementFrame = element.frame   
                //self.recognizedText.wrappedValue = elementText
                //self.text = elementText
                //Stocker le texte résultant dans une liste
                getTexts.append(elementText)
            }
        }
    }
    //Combinez le texte de sortie en une seule chaîne de caractères
    self.recognizedText = getTexts.joined(separator: "")
}       

Vous avez maintenant une fonction et vous pouvez récupérer les personnages! Créons une interface utilisateur et exécutons-la!

J'ai pu le reconnaître comme ça!

Nous avons annoncé les grandes lignes et les détails des résultats à Severless LT # 3, alors j'aimerais les voir en détail! Si vous aimez, s'il vous plaît! Diapositive: https://slidelive.jp/slide/17468048a2f1b6ed57c?event_id=17394b601591bcf3f06

Vous pouvez également trouver votre propre code sur Github, alors consultez Github / RyosukeKamimura!

Merci d'avoir lu jusqu'au bout!

référence Tutoriel officiel Firebase [Introduction à Swift Practice](https://www.amazon.co.jp/%E5%A2%97%E8%A3%9C%E6%94%B9%E8%A8%82%E7%AC%AC3%E7 % 89% 88-Swift% E5% AE% 9F% E8% B7% B5% E5% 85% A5% E9% 96% 80-% E7% 9B% B4% E6% 84% 9F% E7% 9A% 84% E3% 81% AA% E6% 96% 87% E6% B3% 95% E3% 81% A8% E5% AE% 89% E5% 85% A8% E6% 80% A7% E3% 82% 92% E5% 85% BC% E3% 81% AD% E5% 82% 99% E3% 81% 88% E3% 81% 9F% E8% A8% 80% E8% AA% 9E-PRESS-plus% E3% 82% B7% E3% 83% AA% E3% 83% BC% E3% 82% BA / dp / 4297112132 / ref = pd_lpo_14_t_0 / 358-5779533-7748008? _Encoding = UTF8 & pd_rd_i = 4297112132 & pd_rd_r = b18a5a-47f- Yuq8X & pf_rd_p = 4b55d259-ebf0-4306-905a-7762d1b93740 & pf_rd_r = TA0VPVCKS9G2B2JVWCYN & psc = 1 & refRID = TA0VPVCKS9G2B2JVWCYN)

Recommended Posts

Effectuez la reconnaissance de texte avec FirebaseML! [SwiftUI]