VNRecognizeTextRequest iOS 15 识别文本问题

问题描述 投票:0回答:3

我在使用 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”跳跃:

Example:

enter image description here

ios swift visionkit
3个回答
0
投票

如果我将 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"

0
投票

iOS15.1 Beta 3 后错误消失


0
投票

我通过按

observations
boundingBox.minX

进行排序解决了这个问题
for observation in observations.sorted(by: {$0.boundingBox.minX < $1.boundingBox.minX}) {
     ...
}
© www.soinside.com 2019 - 2024. All rights reserved.