2

我正在使用 iOS Vision 框架通过VNRecognizeTextRequest调用执行 OCR,并且我试图在结果VNRecognizedText观察中找到每个单独的字符。但是,当我boundingBox(for range: Range<String.Index>)在任何对象上调用该方法时,VNRecognizedText并且对于已识别文本内的任何有效范围,我都会返回相同的边界框。这个边界框对应于整个字符串的边界框。

我是否误解了该boundingBox(for:)方法,或者是否有其他方法可以在已识别的文本观察中获取单个字符的离散位置信息?

提前致谢!

编辑:

在进一步研究之后,我意识到单词组和空格之间存在某种联系。考虑具有字符串值“Foo bar”的已识别文本观察。调用boundingBox(for:)“Foo”中的每个字符返回完全相同的边界框,根据尺寸,该边界框似乎对应于整个子字符串“Foo”,而不是我们传递给boundingBox方法的范围的单个字符。然后,在另一个奇怪的行为中,boundingBox空白字符的 for 只是原点处的一个空白区域,其边缘与它两侧的子字符串不对应。最后,第二个子字符串的行为与第一个相同:“bar”中的每个字符都有相同的边界框。

4

1 回答 1

4

经过数小时的进一步调查,我决定与 Apple Developer Tech Support 取得联系。果然,这是个bug!当VNRecognizeTextRequest.recognitionLevel设置为 时.accurate,正如我所拥有的那样,错误就会显现出来。当recognitionLevel设置为.fast时,结果表现如预期,每个字符具有离散的边界框。

于 2020-04-16T23:20:40.550 回答