有没有一种方法可以使MLVision文本识别更快?

时间:2019-06-09 15:35:03

标签: swift firebase firebase-mlkit text-recognition

我正在为我的应用程序使用MLVision云文本识别。我捕获/上传照片,然后开始该过程。当它识别出图像并提取文本时,我将其分离并将每个分离的块附加到数组中。

下面的代码用于整个过程。

    lazy var vision = Vision.vision()
    var textRecognizer: VisionTextRecognizer!
    var test = [] as Array<String>



override func viewDidLoad() {
        super.viewDidLoad()

        let options = VisionCloudTextRecognizerOptions()
        options.languageHints = ["en","hi"]
        textRecognizer = vision.cloudTextRecognizer(options: options)
    }


//where pickedImage is the image that user captures.
let visionImage = VisionImage(image: pickedImage)
            textRecognizer.process(visionImage, completion: { (features, error) in
                guard error == nil, let features = features else {
                    self.resultView.text = "Could not recognize any text"
                    self.dismiss(animated: true, completion: nil)
                    return
                }

                for block in features.blocks {
                    for line in block.lines{

                        //for element in line.elements{
                        self.resultView.text = self.resultView.text + "\(line.text)"

                    }
                }
                self.separate()

            })

func separate(){
        let separators = CharacterSet(charactersIn: (":)(,•/·]["))
        let ofWordsArray = self.resultView.text.components(separatedBy: separators)

        for word in ofWordsArray{

            let low = word.trimmingCharacters(in: .whitespacesAndNewlines).lowercased()
            if low != ""{
            test.append(low)
            }


        }
        print(test)
    }

一切正常,我得到了想要的结果,问题是我认为真的很慢。整个过程大约需要20秒。是否有办法使其更快? 预先感谢。

1 个答案:

答案 0 :(得分:1)

您正在使用VisionCloudTextRecognizer。速度取决于您的连接,在我的情况下只有几秒钟。您的另一种选择是使用设备上的文本识别或使用混合方法,先检测设备上,然后再使用Cloud API进行纠正。

相关问题