Качество и согласованность
Качество разметки — показатель качества ответов в обучающих и контрольных заданиях, а также в заданиях с отложенной приемкой.
Согласованность разметки — показатель качества ответов в основных заданиях. При расчете согласованности ответ разметчика сравнивается с ответами других разметчиков. Согласованность рассчитывается только для заданий, в которых достигнут заданный показатель перекрытия.
Качество и согласованность результатов разметки можно посмотреть в задаче на вкладке Обзор, а также в выгрузке статистики и результатов разметки. Возможные значения — числа от 0 до 1.
Для каждого вопроса в задании вы можете настроить вес и алгоритм расчета.
Вес
Вес вопроса — это уровень влияния вопроса на итоговое качество или согласованность задания. Возможные значения — любые целые числа.
Качество и согласованность рассчитываются по тем вопросам, для которых указан вес. Если вес не указан ни для одного вопроса, то качество и согласованность рассчитываются по всем вопросам, как будто у них одинаковый вес.
Алгоритмы расчета
Вы можете выбрать один из трех алгоритмов расчета качества и согласованности:
-
binary — алгоритм для вопросов, где требуется полное совпадение ответов. Если ответ разметчика в точности совпадает с контрольным ответом или ответом другого разметчика, то показатель 1. Если ответы хоть в чем-то различаются — 0. Подходит для всех типов заданий.
-
levenshtein — алгоритм для вопросов с текстовыми ответами. При расчете используется вычисление редакционного расстояния, без учета регистра. Подробнее — по ссылке. При использовании этого алгоритма в заданиях не с текстовыми ответами, например, сегментация изображений, показатель будет равен 0.
-
iou — алгоритм для заданий сегментации изображений, видео и аудио. При использовании этого алгоритма в других заданиях, показатель будет равен 0.
-
oneOf — алгоритм для контрольных заданий с несколькими допустимыми ответами. Контрольный ответ задаётся массивом вариантов; ответ разметчика считается верным (показатель 1), если он точно совпадает с любым элементом этого массива. В основных заданиях (согласованность) работает как binary.
Как настроить параметры
Вы можете настроить расчет качества и согласованности в проекте на вкладке Интерфейс. Для этого добавьте в блок Specification параметр quality_config, а в него — параметр fields с вопросами, по которым нужно делать расчет. Убедитесь, что названия полей вопросов совпадают с названиями в блоке Config. Для каждого вопроса вы можете задать вес и выбрать алгоритм расчета. Например:
"quality_config": {
"fields": {
"type_speaker": {
"type": "levenshtein",
"weight": 1
},
"number": {
"type": "binary",
"weight": 2
}
}
}
Алгоритм oneOf
Используется для контрольных заданий, в которых правильным считается любой ответ из заранее заданного множества. Эталон задаётся как массив допустимых вариантов - элементами могут быть строки, числа, булевы значения, объекты и даже вложенные массивы.
Как сравнивается ответ
-
Сначала эталон и ответ разметчика сравниваются целиком по правилам binary. Если совпало - 1.
-
Если нет и задание контрольное, а эталон - массив, каждый его элемент по очереди сравнивается с ответом разметчика по правилам binary. При первом совпадении - 1.
-
Если ни один элемент не подошёл - 0.
В основных заданиях (расчёт согласованности) массив вариантов не раскрывается - алгоритм ведёт себя как binary и сравнивает ответы разметчиков целиком.
Нюансы
-
Сравнение строгое и регистрозависимое:
"green"≠"Green". -
Числа нормализуются между
intиfloat(2совпадёт с2.0), но строки и числа - разные типы:"2"≠2. Булевы значения не равны числам:true≠1. -
Элементом массива может быть объект или массив - сравнение идёт целиком, частичных совпадений нет (
{"a": 1},{"c": 3}) не совпадёт с ({"a": 1, "b": 2},{"d": 4}). -
Если эталон - не массив, алгоритм работает как binary.
-
Пустой массив эталона (
[]) всегда даёт 0 - допустимых вариантов нет.
Пример расчёта качества
Задание: «Выберите категорию товара».
Контрольный ответ: ["electronics", "books", "clothes"]
| Разметчик | Ответ разметчика | Качество ответа разметчика |
|---|---|---|
Разметчик 1 |
«books» |
1 |
Разметчик 2 |
«electronics» |
1 |
Разметчик 3 |
«food» |
0 |
Как задать в конфигурации
У алгоритма нет дополнительных параметров, кроме weight:
"quality_config": {
"fields": {
"category": {
"type": "oneOf",
"weight": 2
}
}
}
Контрольный ответ для такого поля в задании указывается массивом допустимых вариантов:
{
"category": ["electronics", "books", "clothes"]
}
Алгоритм levenshtein
Используется для текстов размером до 5000 символов. При превышении этого ограничения используется binary.
Пример расчета согласованности
Задание: «Напишите, что вы слышите на аудио».
Ответы разметчиков:
-
Разметчик 1: «Наполеон сеял рожь».
-
Разметчик 2: «На поле он сеял рожь».
-
Разметчик 3: «На поле он посеял рожь».
Расчет согласованности:
-
Согласованность ответов разметчиков 1 и 2: 0,89.
-
Согласованность ответов разметчиков 1 и 3: 0,78.
-
Согласованность ответов разметчика 2 и 3: 0,9.
Средняя согласованность по заданию: 0,86.
Пример расчета качества
Задание: «Напишите, что вы слышите на аудио».
Контрольный ответ: «На поле он сеял рожь».
| Разметчик | Ответ разметчика | Качество ответа разметчика |
|---|---|---|
Разметчик 1 |
«Наполеон сеял рожь» |
0,9 |
Разметчик 2 |
«На поле он сеял рожь» |
1 |
Разметчик 3 |
«На поле он посеял рожь» |
0,9 |
Среднее качество по заданию: 0,93.
Алгоритм IOU
IOU (intersection over union) — метрика, оценивающая схожесть объектов. Рассчитывается путем деления размера пересечения объектов на их суммарный размер.
В заданиях сегментации изображений, аудио и видео есть нюансы расчета — в зависимости от используемого инструмента разметки.
Если при сегментации использовалось несколько инструментов, то сначала рассчитывается IOU для каждого инструмента, а затем вычисляется среднее арифметическое значение. Все размеченные объекты считаются равноправными, независимо от уровня их группировки.
Сегментация изображений
Кисть (brush и smart_brush)
Если в классе есть несколько объектов типа «кисть», то перед началом расчета IOU они объединяются в один объект. В результате в каждом из сравниваемых ответов будет по одному объекту этого класса.
Чтобы сравнить пару объектов, мы делим количество пикселей, которые выделены в обоих объектах, на общее количество пикселей, которые выделены хотя бы в одном объекте.
Эллипс (ellipse)
IOU рассчитывается аналогично кисти.
| При расчете также учитываются пиксели, которые находятся за правой и нижней границами изображения. |
Прямоугольник (bbox)
Чтобы сравнить пару объектов, мы делим площадь пересечения объектов на общую выделенную площадь.
Для расчета IOU группы объектов типа «прямоугольник»:
-
Проверяем, совпадает ли количество объектов в двух ответах. Если не совпадает, то общий IOU задания равен 0.
-
Каждому прямоугольнику из одного ответа ищем пару в другом ответе. Для этого проверяем соответствие центра прямоугольника в одном ответе прямоугольнику в другом ответе. Если хотя бы одна пара не сложилась, то общий IOU задания равен 0.
-
Рассчитываем IOU для каждой пары — математически вычисляем площадь их пересечения и объединения.
-
Итоговое IOU по этому классу — среднее арифметическое значение всех пар.
Ключевые точки (keypoint)
IOU пары точек считаем по формуле:
IOU = 1 - расстояние между точками / длина диагонали
Для расчета IOU группы объектов типа «ключевые точки»:
-
Проверяем, совпадает ли количество объектов в двух ответах. Если не совпадает, то общий IOU задания равен 0.
-
Рассчитываем IOU для каждой пары.
-
Итоговое IOU по этому классу — среднее арифметическое значение всех пар.