Найти текст рядом с полем
(Доступно с версии Primo.AI.Server 1.0.13)
Элемент анализирует результат распознавания документа и находит текстовые блоки, расположенные вблизи указанного поля. Это позволяет автоматически извлекать связанные данные, например:
- Даты рядом с подписью
- Номера документов возле заголовков
- Комментарии рядом с полями ввода
Свойства
Символ *
указывает на обязательность заполнения свойства. Описание общих свойств см. в разделе Свойства элемента.
Группа | Свойство | Тип | Описание |
---|---|---|---|
Вывод | Результат | 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
.
- Для табличных документов –
- Проверка
IsFound
: