Найти текст рядом с полем
Элемент анализирует результат распознавания документа и находит текстовые блоки, расположенные вблизи указанного поля. Это позволяет автоматически извлекать связанные данные, например:
- Даты рядом с подписью
- Номера документов возле заголовков
- Комментарии рядом с полями ввода
Свойства
Символ *
указывает на обязательность заполнения свойства. Описание общих свойств см. в разделе Свойства элемента.
Вывод
- Результат [
Primo.AI.Server.Tools.SmartOcr.TextNearToFieldSearcherResult
] - Результат поиска текста рядом с полем.
Обработка
- Наименование поля* [
String
] - Название поля, относительно которого выполняется поиск текста. - Расстояние по горизонтали* [
int
] - Максимальное расстояние по горизонтали (в пикселях) от поля для поиска текста. - Расстояние по вертикали* [
int
] - Максимальное расстояние по вертикали (в пикселях) от поля для поиска текста. - Результат распознавания* [
Primo.AI.Server.Model.InferenceResultContent
] - Результат распознавания изображения.
Primo.AI.Server.Tools.SmartOcr.TextNearToFieldSearcherResult
Содержит результаты поиска текста:
- IsFound [
Boolean
] - Флаг наличия найденных элементов.True
– если найдены текстовые блоки,False
– если ничего не обнаружено. - Items [
System.Collections.Generic.IReadOnlyCollection<Primo.AI.Server.Tools.SmartOcr.TextNearToField>
] - Коллекция найденных текстовых элементов.
Primo.AI.Server.Tools.SmartOcr.TextNearToField
Описание найденного текстового элемента:
- IsFound [
Boolean
] - Флаг успешности поиска. - SourceField [
Primo.AI.Server.Model.InferenceResultItem
] - Исходное поле для поиска. - UnifiedText [
String
] - Объединенный текст элементов. - Items [
System.Collections.Generic.IReadOnlyCollection<Primo.AI.Server.Model.InferenceResultItem>
] - Элементы распознавания. - CropArea [
System.Drawing.Rectangle
] - Границы области с найденным текстом.
Как это работает?
-
Определение границ поля
- Система находит указанное поле в результатах распознавания.
-
Расширение зоны поиска
- Вокруг поля формируется область с учетом
Расстояния по горизонтали
иРасстояния по вертикали
.
- Вокруг поля формируется область с учетом
-
Поиск текста
- Все текстовые блоки, попадающие в расширенную зону, сохраняются.
-
Формирование результата
- Тексты объединяются в
UnifiedText
, а координаты сохраняются вCropArea
.
Пример использования
- Тексты объединяются в
Вход:
- Поле:
"Подпись"
- Расстояние по X:
200
- Расстояние по Y:
50
Результат:
{
"IsFound": true,
"Items": [
{
"IsFound": true,
"SourceField": { "Text": "Подпись", "BoundingBox": [100, 200, 180, 220] },
"UnifiedText": "Дата: 15.05.2024",
"Items": [
{ "Text": "Дата:", "BoundingBox": [80, 180, 120, 200] },
{ "Text": "15.05.2024", "BoundingBox": [130, 180, 220, 200] }
],
"CropArea": { "X": 80, "Y": 180, "Width": 140, "Height": 20 }
}
]
}
Рекомендации
- Оптимальные расстояния:
- Для табличных документов –
dist_x = 100-200
,dist_y = 30-50
. - Для текстовых документов (письма, договоры) –
dist_x = 200-300
,dist_y = 50-100
.
- Для табличных документов –