【问题标题】:VNRecognizeTextRequest iOS 15 problem recognizing textVNRecognizeTextRequest iOS 15 识别文本问题
【发布时间】:2021-11-19 01:34:18
【问题描述】:

我在使用 iOS 15 的应用中发现 Vision 框架存在问题。我在字符串中写入已识别的文本,但在 iOS 15 下,结果的顺序不正确。

也许一个例子会更好地解释它:-)

要扫描的文本:

你好,我叫迈克尔,我是一个应用程序的程序员
命名为 Scan2Clipboard。
现在我把一个问题集中在
VNRecognizeTextRequest 和 iOS 15。

iOS 14 下的结果:

你好,我叫迈克尔,我是一个应用程序的程序员
命名为 Scan2Clipboard。
现在我把一个问题集中在
VNRecognizeTextRequest 和 iOS 15。

iOS 15 下的结果:

你好,我叫迈克尔,我是一个应用程序的程序员
现在我把一个问题集中在
命名为 Scan2Clipboard。
VNRecognizeTextRequest 和 iOS 15。

我尝试了 App Store 中的其他一些应用程序(扫描和复印、快速扫描)。他们表现出相同的行为。他们也在使用 Vision 框架。其他人也有这个问题吗?

下面的第一张图片是源,第二张是结果。请注意结果中间的“Für den Mürbteig”跳转:

【问题讨论】:

  • 如果我将“recognizeTextRequest.recognitionLevel = .fast”从 .accurate 更改为 .fast,错误就会消失。可能是 VisionKit 中的错误?
  • 你能显示输入文本的图像吗?可能与文本换行有关
  • 我尝试了不同的文本示例,来自新闻报纸、屏幕截图等。
  • 附上截图。
  • 我发现另外两个使用 VisionKit 框架的扫描应用程序存在同样的问题:快速扫描和扫描和复印

标签: ios swift visionkit


【解决方案1】:

如果我将 maximumRecognitionCandidates 从 1 更改为更高的数字,结果会变得更好。如果 maximumRecognitionCandidates 为 3 或更高,则结果的顺序正确,并且该值在 9 之前没有任何区别。如果值为 10,则结果与值 1 相同。

所以目前这只是一种解决方法。

let maximumRecognitionCandidates = 9
            for observation in observations {
                guard let candidate = observation.topCandidates(maximumRecognitionCandidates).first else { continue }
                entireRecognizedText += "\(candidate.string)\n"

【讨论】:

  • 请使用您问题上的编辑链接添加更多信息。 Post Answer 按钮应仅用于问题的完整答案。 - From Review
  • 将 maximumRecongitionCandidates 更改为更高的值可以解决问题。但我不知道这是否是正确的解决方案
  • 这是同样的问题。我的回答只是一种解决方法,我希望有人知道我的问题的更好解决方案。
  • @Michael 您的答案还包含一个(新的?)问题,这并不是一个好的答案。如果您找到的解决方法解决了您的问题,则让答案仅包含该部分,并在答案的其余部分提出一个新问题,如果它确实值得一个新问题。
  • 好的,谢谢。更改了我的答案并删除了附加问题。但请帮助我:在我看来,我不想问一个新问题,只是要明确我的答案只是一种解决方法。我不能那样做吗? (对不起,如果这是使用堆栈溢出的初学者问题);-)
【解决方案2】:

iOS15.1 的 Beta 3 后错误消失

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2021-11-14
    • 2023-04-09
    相关资源
    最近更新 更多