Swift 的 Vision 框架无法识别日文字符

Posted

技术标签:

【中文标题】Swift 的 Vision 框架无法识别日文字符【英文标题】:Swift's Vision framework not recognizing Japanese characters 【发布时间】:2021-12-01 10:21:33 【问题描述】:

我想使用 swift 的 Vision 框架从扫描的图像中读取日文字符。但是,当我尝试将VNRecognizeTextRequest 的识别语言设置为日语时,使用

request.recognitionLanguages = ["ja", "en"]

我的程序的输出变成了无意义的罗马字母。对于每个image of japanese text,都有unexpected recognized text 输出。但是,当设置为其他语言(例如中文或德语)时,文本输出与预期相同。是什么导致了看似日本特有的意外输出?

我正在从 github 项目 here 构建。

【问题讨论】:

【参考方案1】:

正如他们在 WWDC 2019 视频中所说,Text Recognition in Vision Framework:

首先,一个前提,你需要检查基于语言的校正所支持的语言...

查看supportedRecognitionLanguages for VNRecognizeTextRequestRevision2 以获得“准确”识别,看起来支持的语言是:

["en-US", "fr-FR", "it-IT", "de-DE", "es-ES", "pt-BR", "zh-Hans", "zh-Hant"]

如果你使用“快速”识别,列表会更短:

["en-US", "fr-FR", "it-IT", "de-DE", "es-ES", "pt-BR"]

如果你回退到VNRecognizeTextRequestRevision1,它会更短(笑):

["en-US"]

目前看来日语不是受支持的语言。

【讨论】:

以上是关于Swift 的 Vision 框架无法识别日文字符的主要内容,如果未能解决你的问题,请参考以下文章

Swift中Vision / CoreML对象识别器的精度

Apple Vision 框架:LCD/LED 数字识别

在 Apple 的 Vision 框架中,我如何判断哪些语言可用于文本识别?

在 Swift 4 上为 Google ML Vision 框架旋转 UIImage

Objective-C 框架中的 Swift 类别在运行时无法识别

Google Vision API 无法识别个位数