iOS Vision: метод VNRecognizedText boundingBox(for:), возвращающий идентичную ограничивающую рамку для любого диапазона

Я использую платформу iOS Vision для распознавания текста через VNRecognizeTextRequest звонка, и я пытаюсь найти каждого отдельного символа в полученном VNRecognizedTextнаблюдения. Однако когда я звонюboundingBox(for range: Range<String.Index>) метод на любом VNRecognizedTextобъект и для любого допустимого диапазона в распознанном тексте я возвращаю ту же ограничивающую рамку. Эта ограничивающая рамка соответствует ограничительной рамке всей строки.

Я неправильно понимаю boundingBox(for:) метод, или есть другой способ получить дискретную информацию о местоположении для отдельных символов в рамках распознанного текстового наблюдения?

Заранее спасибо!

Редактировать:

Изучив это подробнее, я понял, что есть какая-то связь между группами слов и пробелами. Рассмотрим распознанное текстовое наблюдение со строковым значением "Foo bar". ВызовboundingBox(for:) для каждого символа в "Foo" возвращает точно такой же ограничивающий прямоугольник, который, исходя из размеров, кажется, соответствует всей подстроке "Foo" вместо одного символа, диапазон которого мы передаем в boundingBoxметод. Затем, в еще одном странном поведении,boundingBoxпоскольку пробельный символ - это просто пустая область в начале координат, края которой не соответствуют подстрокам по обе стороны от нее. Наконец, поведение второй подстроки такое же, как и для первой: каждый символ в строке имеет одинаковую ограничивающую рамку.

1 ответ

Решение

После нескольких часов дальнейшего расследования я решил связаться со службой технической поддержки Apple Developer. Конечно же, это ошибка! когдаVNRecognizeTextRequest.recognitionLevel установлен на .accurate, как и у меня, ошибка проявляется. когдаrecognitionLevel установлен на .fast, результаты будут вести себя так, как ожидалось, с отдельными ограничивающими рамками для каждого символа.

Другие вопросы по тегам