Swift 有没有办法使MLVision文本识别更快?

Swift 有没有办法使MLVision文本识别更快?,swift,firebase,firebase-mlkit,text-recognition,Swift,Firebase,Firebase Mlkit,Text Recognition,我正在为我的应用程序使用MLVision云文本识别。我拍摄/上传一张照片,然后开始这个过程。当它识别图像并提取文本时,我将其分离并将每个分离的块附加到一个数组中 下面的代码用于整个过程 lazy var vision = Vision.vision() var textRecognizer: VisionTextRecognizer! var test = [] as Array<String> override func viewDidLoad() {

我正在为我的应用程序使用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)
    }
lazy var vision=vision.vision()
var文本识别器:VisionText识别器!
var test=[]作为数组
重写func viewDidLoad(){
super.viewDidLoad()
让选项=VisionCloudTextRecognitionsZeroptions()
options.languageHits=[“en”,“hi”]
textRecognizer=vision.cloudTextRecognizer(选项:选项)
}
//其中PickeImage是用户捕获的图像。
让visionImage=visionImage(图像:pickedImage)
文本识别器。进程(visionImage,完成:{(功能,错误)在
保护错误==零,让功能=其他功能{
self.resultView.text=“无法识别任何文本”
self.disclose(动画:true,完成:nil)
返回
}
用于功能中的块。块{
用于块中的行。行{
//对于line.elements中的元素{
self.resultView.text=self.resultView.text+“\(line.text)”
}
}
self.separate()
})
func separate(){
设分隔符=字符集(字符sin:(“:)(,•/·][”)
let ofWordsArray=self.resultView.text.components(分隔符:分隔符)
为了Wordsarray的话{
let low=word.trimmingCharacters(在:。空格和换行符中)。小写()
如果低!“”{
test.append(低)
}
}
打印(测试)
}
一切都很好,我得到了我想要的结果。问题是我觉得速度太慢了。整个过程大约需要20秒。有没有办法让它更快?
提前感谢。

您正在使用VisionCloudTextRecognitor。速度将取决于您的连接,在我的情况下,这只需要几秒钟。您的另一个选择是使用设备上的文本识别或使用混合方法,首先在设备上检测,然后使用云API更正