Настройка шаблонов сегментации

Параметры сегментации
Шаблоны настраиваются в проекте на вкладке Интерфейс. Общие параметры настройки интерфейса описаны в разделе Блок Config. Также в блоке Config есть специфические параметры для шаблонов сегментации:
Параметр | Обязательность | Тип | Описание |
---|---|---|---|
groupsEnabled |
Нет |
boolean |
Возможность разметчикам группировать фрагменты. Значение по умолчанию — false |
rotationEnabled |
Нет |
boolean |
Возможность поворота изображения во время разметки. Доступно для сегментации изображений и PDF. Значение по умолчанию — false |
expandWord |
Нет |
boolean |
Если true, то выделяется все слово. Доступно для сегментации текста. Значение по умолчанию — false |
expandWordRegExp |
Нет |
string |
Регулярное выражение для определения границы слова. Доступно для сегментации текста. Значение по умолчанию — "[^\\s.,] |
entities |
Да |
object |
Классы для сегментации |
onthologyStructure |
Нет |
object |
Структура онтологии |
customEntitiesEnabled |
Нет |
boolean |
Возможность разметчикам добавлять новые классы. Доступно для сегментации текста и изображений. Значение по умолчанию — false |
stepSize |
Нет |
number |
Размер шага перемотки для сегментаций видео и аудио. Значение по умолчанию для сегментации аудио — 0.01, для сегментации видео — 0.0333 |
searchAutoFocus |
Нет |
boolean |
Возможность автофокусировки на поле поиска классов при загрузке задания |
annotationAutoOpen |
Нет |
boolean |
Возможность автоматического отображения аннотаций при выделении фрагмента или выборе класса |
entityChangeIcon |
Нет |
boolean |
Возможность разметчикам изменить класс фрагмента на другой с таким же инструемнтом |
Настройка классов
Классы настраиваются в объекте entities
:
Параметр | Обязательность | Тип | Описание |
---|---|---|---|
id |
Да |
string |
Идентификатор класса |
name |
Да |
string |
Название класса |
tooltip |
Нет |
string |
Подсказка к классу. Можно использовать HTML-разметку для оформления текста |
color |
Нет |
string |
Цвет класса |
type |
Да |
string |
Тип инструмента выделения фрагментов. Используется для сегментации изображений, аудио и видео |
hotKey |
Нет |
string |
Горячая клавиша для класса. Можно использовать цифры и буквы |
maxAmount |
Нет |
number |
Максимальное количество фрагментов данного класса. Используется во вложенных классах. |
options |
Нет |
object |
Объект, в котором можно указать дополнительные настройки. Используется в сегментации изображений для настройки инструмента Прямоугольник. Подробнее — в пункте Поворот фрагмента. |
fields |
Нет |
array |
Массив для настройки аннотации класса |
{
"id": "entity-1",
"name": "Первый класс",
"tooltip": "Подсказка к классу",
"type": "polygon",
"hotKey": "1"
}
Результат разметки
Параметр | Обязательность | Тип | Описание |
---|---|---|---|
marks |
Да |
array |
Массив размеченных фрагментов |
meta |
Нет |
object |
Метаинформация об объектах разметки. Например в сегментации изображений imageWidth и imageHeight |
Аннотация
Аннотация — это раздел, в котором разметчик может внести дополнительную информацию о фрагменте или ответить на вопросы о нем.
Чтобы аннотация автоматически отображалась разметчикам, используйте параметр annotationAutoOpen
в блоке Config.
Аннотация для каждого класса настраивается в объекте fields
.

Параметр | Обязательность | Тип | Описание |
---|---|---|---|
type |
Да |
string |
Тип элемента. Возможные значения: — — — — — |
name |
Да |
string |
Ключ элемента, должен быть уникальным в рамках класса. Отображается в результатах разметки |
title |
Нет |
string |
Заголовок элемента |
placeholder |
Нет |
string |
Подсказка в полях для ввода текста |
options |
Нет |
array |
Массив с вариантами ответов для типов — |
"entities": [
{
"id": "entity-1",
"name": "1. Первый класс",
"tooltip": "Подсказка к классу",
"hotKey": "1",
"entities": [
{
"id": "entity-12",
"name": "Подкласс",
"tooltip": "Подсказка к классу",
"color": "red",
"hotKey": "A"
}
],
"fields": [
{
"type": "input",
"name": "input",
"title": "Название объекта",
"placeholder": "Объект"
},
{
"type": "textarea",
"name": "textarea",
"title": "Описание",
"placeholder": "Одно или два предложения об объекте"
},
{
"type": "checkbox",
"name": "checkbox",
"title": "Объект правильный",
"options": [
{
"title": "Да",
"value": "yes"
},
{
"title": "Нет",
"value": "no"
}
]
},
{
"type": "radio",
"name": "radio",
"title": "Объект правильный",
"options": [
{
"title": "Да",
"value": "yes"
},
{
"title": "Нет",
"value": "no"
}
]
},
{
"type": "select",
"name": "select",
"title": "Цвет объекта",
"options": [
{
"title": "Красный",
"value": "red"
},
{
"title": "Желтый",
"value": "yellow"
},
{
"title": "Зеленый",
"value": "green"
}
]
}
]
}
]
Подсказки
Чтобы разметчики не запутались в классах сегментации, добавьте всплывающие подсказки в параметре tooltip
в блоке Config.
При верстке подсказки вы можете использовать основные инструменты оформления текста:
-
\n
— перенос на новую строку. -
\t
— табуляция. -
<b>
— жирный текст. -
<i>
— курсив. -
<u>
— подчеркнутый текст.
Вы также можете настроить ширину окна всплывающей подсказки в блоке CSS. Например:
.tooltip-container {
max-width: 500px;
width: 500px;
}
Группировка фрагментов
Если нужно, чтобы разметчики дополнительно группировали фрагменты размеченных объектов, добавьте в блоке Config параметр "groupsEnabled": true
.
Функция доступна в следующих шаблонах:
-
Сегментация текста.
-
Сегментация изображений.
-
Шаблоны раздела Диалоги.
-
Шаблоны раздела Дополнительные.
Режим Read only
Шаблоны сегментации аудио
, видео
, изображений
поддерживают режим "read only". В этом режиме будут отключены любые действия, направленные на редактирование результатов разметки или создание новых элементов. Интерактивность и вся функциональность, нужная для просмотра и валидации разметки, сохранится.
Панель онтологии в режиме "read only" продолжает быть доступной для редактирования. |
Для включения режима "read only" необходимо в теге нужного компонента указать атрибут readOnly="true"
.
Пример. Блок HTML
----
<tm-forms-audio src="{{audio}}" readOnly="true"></tm-forms-audio>
----
Сегментация текста
Онтология
Онтология — это вкладка в задачах сегментации текста, где разметчики могут указать дополнительную информацию о тексте.
Например, если объект разметки — юридический документ, то для него можно указать тип документа, реквизиты заказчика и исполнителя и т. д. Также можно добавить в онтологию выделенный фрагмент текста, например, дату или сумму договора.
Онтология настраивается в блоке Config в параметре onthologyStructure
. Здесь вы можете добавлять элементы онтологии и настраивать их формат с помощью параметра type
. Возможные значения параметра:
-
node
— раздел; -
dynamicNode
— раздел с возможностью удаления. ДляdynamicNode
можно задать количество дублирующих разделов с помощью атрибутовmin
иmax
; -
textField
— поле для ввода однострочного текста; -
textArea
— поле для ввода многострочного текста; -
checkbox
— чекбокс; -
radio
— радиокнопка; -
select
— поле с выбором значения; -
fragment
— добавление фрагмента текста с классом.
Параметры:
Параметр | Обязательность | Тип | Описание |
---|---|---|---|
name |
Да |
string |
Заголовок раздела или элемента |
type |
Да |
string |
Тип элемента. Возможные значения см. выше |
fields |
Нет |
array |
Массив с вложенными элементами. Используется в элементах: |
required |
Нет |
boolean |
Признак обязательности элемента |
availableClasses |
Нет |
string[] |
Доступные для выбора id классов. При отсутствии этой опции разрешается выбирать любой. Используется в элементах: |
min |
Да — для |
number |
Минимальное количество фрагментов, которые пользователь может выделить в тексте. Если значение 0 — элемент необязательный, если больше нуля — обязательный. Используется в элементах: |
max |
Да — для |
number |
Максимальное количество фрагментов, которые пользователь может выделить в тексте. Используется в элементах: |
values |
Да — для |
array |
Массив с вариантами ответа. Содержит параметры: * key — ключ варианта; * value — название варианта. Используется в элементах: |
Пример:
"onthologyStructure": {
"name": "Реквизиты документа",
"type": "node",
"fields": [
{
"name": "Общие реквизиты",
"type": "node",
"fields": [
{
"name": "Номер и дата",
"type": "textField",
"required": false
},
{
"name": "Тип документа",
"type": "select",
"values": [
{
"key": "1",
"value": "Договор"
},
{
"key": "2",
"value": "Соглашение"
},
{
"key": "3",
"value": "Уведомление"
}
]
}
]
},
{
"name": "Заказчик",
"type": "dynamicNode",
"min": 1,
"max": 7,
"fields": [
{
"name": "Название организации",
"type": "textField",
"required": true
},
{
"name": "Реквизиты организации",
"type": "fragment",
"availableClasses": ["entity-1", "entity-2"]
"min": 0,
"max": 7
}
]
},
{
"name": "Исполнитель",
"type": "dynamicNode",
"min": 1,
"max": 7,
"fields": [
{
"name": "Название организации",
"type": "textField",
"required": true
},
{
"name": "Реквизиты организации",
"type": "fragment",
"min": 1,
"max": 7
}
]
}
]
}
Вложенность классов
Вы можете настроить связь между классами типа «родитель-ребенок». Например, разметчик должен выделить в тексте фрагмент с классом «Адрес», и только после этого ему станут доступны дочерние классы «Город» и «Улица».
Чтобы вложить один класс в другой, добавьте в родительский класс массив entities
. Например:
"entities": [
{
"id": "entity-1",
"name": "1. Первый класс",
"tooltip": "Подсказка к классу",
"hotKey": "1",
"entities": [
{
"id": "entity-12",
"name": "Подкласс",
"tooltip": "Подсказка к классу",
"color": "red",
"hotKey": "A"
}
]
}
]
Сегментация изображений
Вы также можете загрузить отдельные классы для каждой задачи, используя SDK. Пример смотрите в разделе Примеры запросов. |
Инструменты выделения
Если вы выбрали шаблон Сегментация изображений, настройте в каждом классе инструмент выделения фрагментов. Для этого укажите название инструмента в параметре type
в блоке Config:
-
polygon — многоугольник.
-
bbox — прямоугольник.
-
ellipse — эллипс.
-
brush — кисть.
-
smart_brush - умная кисть
-
keypoint — ключевые точки.
Поворот изображения
Что бы включить возможность поворота изображения во время разметки, укажите параметр "rotationEnabled": true
в CONFIG
секции настройки интерфейса.
Поворот изображения осуществляется на 90, 180 и 270 градусов. Угол поворота не влияет на результат разметки и применяется только к отображению в интерфейсе.
Результат поворота попадает в результат разметки. На расчет качества и согласованности это не влияет. Если нужно учитывать угол поворота при расчете качества, добавьте это поле в секцию SPECIFICATION
в настройках интерфейса.
Пример ответа разметчика:
{
"marks": [],
"rotation": 90,
"imageMeta": {
"width": 654,
"height": 846
}
}
Поворот фрагмента
Чтобы настроить возможность поворота выделенного фрагмента для инструмента Прямоугольник, укажите в нужном классе параметр "rotated": true
в объекте options
. Например:
{
"id": "entity-2",
"name": "Второй класс",
"color": "green",
"type": "bbox",
"options": {"rotated": true}
},
Штриховка и заливка фрагментов
Чтобы сделать фрагменты более заметными на изображении, настройте штриховку и заливку. Для этого добавьте в класс объект fill
с параметрами:
-
stripesSize
— толщина линий штриховки. -
backgroundEnabled
— признак того, требуется ли заливка фрагмента.
Пример:
"fill": {
"stripesSize": 4,
"backgroundEnabled": true
},
Функция доступна для инструментов:
-
многоугольник (polygon),
-
прямоугольник (bbox),
-
эллипс (ellipse).
Ограничение количества keypoint
У инструмента keypoint есть возможность ограничить количество точек, которые сможет проставить разметчик в одном классе Для этого в конфигурации класса необходимо добавить аттрибут "max":
Пример:
{
"id": "keypoint-entity-id",
"name": "Углы треугольника",
"max": 3,
"color": "red",
"type": "keypoint"
}