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
, результаты будут вести себя так, как ожидалось, с отдельными ограничивающими рамками для каждого символа.