首页 > 解决方案 > VNRecognizeTextRequest 无法识别丹麦语“da-DK”

问题描述

VNRecognizeTextRequest 无法识别丹麦语的特殊字符,如 Æ、æ、Ø、ø、Å 、å 、ß

它将这些词替换为 Æ 到 AE、Ø 到 0、O、Å 到 A 等等。

下面是我的 OCR 实现代码。

private func configureOCR() {
    
    ocrRequest.recognitionLevel = .accurate
  
    ocrRequest.recognitionLanguages = ["da-DK", "nl-NL", "de-DE", "en-US","en-AU"]
    ocrRequest.usesLanguageCorrection = true
    
    ocrRequest = VNRecognizeTextRequest { (request, error) in
        guard let observations = request.results as? [VNRecognizedTextObservation] else { return }
        
        var ocrText = ""
        for observation in observations {
            guard let topCandidate = observation.topCandidates(1).first else { return }
            
            ocrText += topCandidate.string + "\n"
        }
        
        
        DispatchQueue.main.async {
            self.ocrTextView.text = ocrText
            self.scanButton.isEnabled = true
        }
    }
    
}

视觉或视觉套件是否支持丹麦语?

标签: iosswiftvisioncoremltoolsvisionkit

解决方案


我不这么认为。如果您查看文档

 @brief VNRecognizeTextRequestRevision1 only supports English

 @brief VNRecognizeTextRequestRevision2 supports English, Chinese, 
Portuguese, French, Italian, German and Spanish in the accurate 
recognition level. The fast recognition level supports English,
 Portuguese, French, Italian, German and Spanish. Best practice 
is to use supportedRecognitionLanguagesForTextRecognitionLevel 
to check for supported languages. As the underlying engine has 
changed from VNRecognizeTextRequestRevision1, results can differ 
but are generally more accurate. 


推荐阅读