Распознавание объектов и выделение областей

  1. Создайте проект
  2. Добавьте пул заданий
  3. Загрузите задания
  4. Настройте контроль качества
  5. Запустите пул и получите результаты
Совет.

Сначала запустите проект в Песочнице. Так вы сможете избежать ошибок и потраченных средств, если окажется, что ваше задание не работает.

Для выделения области на картинках в Яндекс.Толоке есть специальный редактор. С его помощью исполнитель сможет выделить область в виде многоугольника или прямоугольника.

Предположим, у вас есть много фотографий с животными и вам нужно выделить собак и определить их породу. Для этого создадим задание: исполнитель видит фотографию, он должен выделить на ней собаку и указать ее породу.

Пример готового задания

Чтобы запустить задания и получить ответы:

Создайте проект

Проект определяет, как будет выглядеть задание у исполнителя.

  1. Выберите шаблон:

    1. Нажмите кнопку + Создать проект.

    2. Выберите шаблон Выделение областей на изображении.
  2. Заполните общую информацию:

    1. Дайте проекту понятное название и краткое описание. Их увидят исполнители в списке доступных заданий.

    2. По желанию добавьте Приватный комментарий.

    3. Нажмите Сохранить.

  3. Отредактируйте интерфейс задания:

    Примечание. В этом туториале показано, как создать интерфейс задания в редакторе HTML/JS/CSS. Вы также можете попробовать создать интерфейс задания в Конструкторе шаблонов.
    1. Определите, какие объекты будете передавать исполнителю и получать от него в ответ. Для этого необходимо создать поля входных и выходных данных в блоке Спецификация данных.

      Что такое входные и выходные данные?

      Входные данные — типы объектов, которые будут подаваться исполнителю для выполнения задания. Например, текст, картинка, географические координаты.

      Выходные данные — типы объектов, которые будут получены после выполнения задания. Например, один из нескольких вариантов ответа, введенный текст или загруженный файл.

      Подробнее о полях входных и выходных данных.

      Шаблон включает в себя поля:

      • Поле входных данных — ссылка image для загрузки картинки.

        Измените тип данных на строку, чтобы использовать ссылки на свои файлы или загружать картинки, хранящиеся на Яндекс.Диске.

      • Поле выходных данных — поле result с типом json, в которое будет записан объект JSON c координатами точек.

      Добавьте поле выходных данных — обязательная строка breed, в которую будет записана порода собаки, указанная исполнителем.

      Создайте интерфейс задания в блоке HTML. Он описывает, как будут расположены элементы задания.

      В HTML-интерфейсе можно использовать стандартные теги HTML и специальные выражения в двойных фигурных скобках для полей входных и выходных данных.

      {{field type="image-annotation" name="result" src=(proxy image)}}
      {{field type="input" name="breed" placeholder="Укажите породу собаки" width="100%"}}

      Эта запись означает, что задание будет выглядеть так:

      • картинка с инструментом для выделения области;
      • поле для ввода текста.

      Блоки CSS и JavaScript оставьте без изменений.

    2. Нажмите кнопку , чтобы увидеть получившееся задание.

      Примечание. В предварительном просмотре проекта отображается одно задание со стандартными данными. Количество заданий на странице вы сможете настроить далее.
    3. Сохраните изменения.

  4. Напишите инструкцию для исполнителей:

    1. Напишите краткую и ясную инструкцию (см. советы). Опишите в ней, что надо сделать, и приведите примеры.

      Вы можете подготовить инструкцию в формате HTML и вставить её в редактор. Чтобы переключиться в режим HTML, нажмите <>.

    2. Нажмите кнопку Завершить.

Добавьте пул заданий

Пул — это набор оплачиваемых заданий, которые одновременно выдаются исполнителям.

  1. Откройте проект и нажмите Добавить пул.
  2. Дайте пулу любое удобное название — оно доступно только вам, исполнитель увидит название проекта.
  3. В блоке Аудитория добавьте Фильтры для отбора исполнителей. Чтобы ваше задание было доступно только исполнителям, владеющим русским языком, выберите готовый набор фильтров Русскоязычные исполнители.
  4. В блоке Цена установите цену за страницу заданий, например, 0.02.
    Что такое страница заданий?

    На одной странице может отображаться одно или несколько заданий. Если задания простые, то можно добавлять 10–20 заданий на одну страницу. Не рекомендуем создавать длинные страницы, поскольку это снизит скорость загрузки данных у исполнителя.

    Исполнитель получит оплату, только если выполнил все задания на странице.

    Количество заданий на странице вы определите при загрузке заданий.

    Как определить справедливую цену?

    Общее правило формирования цены — чем больше времени исполнитель тратит на выполнение, тем выше цена.

    Вы можете зарегистрироваться в Яндекс.Толоке как исполнитель и узнать, сколько платят другие заказчики за задания, а также посмотреть примеры стоимости различных типов задач.

  5. В блоке Контроль качества установите Перекрытие задания — количество исполнителей, которые должны выполнить задание. Для заданий выделения области на картинках, как правило, 1.
  6. Включите опцию Отложенная приемка и укажите количество дней на проверку для параметра Срок проверки. Например, 7.
    Что такое отложенная приемка?

    Отложенная приемка позволяет вам просматривать выполненные страницы заданий перед тем, как принять их и заплатить исполнителю. Задания, выполненные в несоответствии с инструкцией, можно отклонять. Максимальный срок проверки устанавливается в поле Срок проверки.

  7. В блоке Дополнительные настройки укажите Время на страницу заданий. Его должно быть достаточно, в том числе для чтения инструкции и загрузки задания. Например, 1200 секунд.
  8. Нажмите кнопку Создать пул.

Загрузите задания

Подготовьте собственный файл с заданиями. Ознакомьтесь с примером в демонстрационном TSV-файле. В интерфейсе Толоки под названием пула есть ссылки на шаблоны TSV-файлов с обычными, контрольными и обучающими заданиями.

  1. Нажмите кнопку Загрузить. В открывшемся окне также можно скачать пример TSV-файла по ссылке Пример загрузочного файла.
    Что такое TSV?
    TSV-файл — это представление электронной таблицы в виде текстового файла, в котором столбцы разделены знаком табуляции.

    Вы можете работать с ним как в редакторе электронных таблиц, так и в текстовом редакторе, а затем сохранить в нужный формат. Подробнее о работе с TSV-файлом. Существует формат CSV, схожий с TSV, но при загрузке необходимо использовать TSV-файл.

  2. Добавьте в него входные данные. Заголовок столбца с входными данными содержит слово INPUT. Остальные столбцы оставьте пустыми.
  3. Загрузите задания, выбрав Указать вручную и установив, например, 4 задания на странице.

Настройте контроль качества

Блоки контроля качества позволяют отсеивать невнимательных исполнителей. Контроль качества можно настраивать как в проекте, так и в пуле.

Внимание.

Настройки контроля качества в проекте будут действовать во всех пулах проекта, и изменить их настройку в одном из пулов будет невозможно.

    Перейдите к редактированию пула (кнопка Редактировать в верхнем правом углу страницы) и нажмите Добавить блок контроля качества.

    Вы можете скопировать настройки контроля качества из другого пула. Для этого в разделе Исполнители нажмите кнопку Скопировать настройки из....

  1. Добавьте блок Быстрые ответы.

    Значение параметра Минимальное время на страницу зависит от количества заданий на этой странице. Чтобы определить настроение кота, достаточно 2-4 секунды. Значит, на страницу с 10-ю заданиями может хватить 20-30 секунд.

    Один раз можно ошибиться неумышленно, а вот после 2-3 закономерных раз можно и заблокировать исполнителя на какое-то время.

    Укажите следующие значения:

    Это означает, что если исполнитель выполнит 2 страницы заданий быстрее чем за 20 секунд, он будет заблокирован и не сможет больше выполнять ваши задания 10 дней.

    Внимание. Ответы заблокированных пользователей будут учтены, если не отклонить их вручную при помощи отложенной приемки. Чтобы отправить задания этих исполнителей на повторную разметку, настройте правило Повторное выполнение заданий после блокировки.
  2. Добавьте правило контроля качества Результаты проверки и укажите следующие значения:

    Это означает, что если 35% и более ответов исполнителя будут отклонены, он будет заблокирован и не сможет больше выполнять ваши задания 15 дней. Правило начинает действовать после проверки 3 ответов исполнителя.

Запустите пул и получите результаты

  1. Запустите пул, нажав кнопку .
  2. Следите за выполнением в блоке Статистика пула.
  3. Как только получены первые результаты, вы можете начинать проверку. По истечении установленного срока все ответы будут автоматически приняты вне зависимости от их качества.
    Чтобы проверить задания, откройте пул и нажмите Проверить задания.
    Примечание. Координаты точек будут записаны в формате JSON.

Решение проблем

Нужно ли подгонять все изображения для задания под один размер, или они могут быть разные?
Размеры изображений могут быть разные.
Как в image-annotation добавить горячую клавишу для добавления многоугольника?
Чтобы добавить горячую клавишу, в методе onKey пропишите следующее действие:
onKey: function(key) {
    var el = this.getDOMElement().querySelector(".image-annotation-editor__shape-polygon");

    if (key === 'D') {
      el.click();
      el.classList.add('image-annotation-editor__shape_active')
    }
Скопировано
Как размечать треугольники, чтобы они сами замыкались при выставлении последней точки?

Для замыкания используйте горячую клавишу C.

Вы также можете воспользоваться библиотекой, чтобы настроить горячие клавиши под свои задачи.

Как создать задачу с выделением областей на изображении?
Задачу с выделением областей на изображении с помощью Толоки рекомендуем решать в трёх проектах:
  1. Сортировка изображений, на которых есть объект.
    1. Создайте задание, используя шаблон «Классификация изображений».
    2. Отсортируйте изображения, на которых есть искомый объект.
    3. Покажите изображение исполнителю и задайте вопрос: есть объект на картинке? Ответ — Да/Нет.
  2. Выделение объекта на изображениях.
    1. Выделите объект на изображениях, которые отобрали в предыдущем проекте. Такой проект у вас уже есть. Задание запускается с отложенной приемкой.
    2. Используйте правила контроля качества: быстрые ответы, отложенная приемка, дооценка после приёмки. Описание правил и примеры.
  3. Проверка выделения объектов.
    1. Создайте задание, используя шаблон по выделению областей.
    2. Скройте редактор и задайте вопрос: объект выделен верно? Ответ — Да/Нет.
    3. Во входных данных передайте картинки и координаты размеченных областей из предыдущего задания.
    Запустив полученный пул с перекрытием 3-5 или с динамическим перекрытием, вы сможете агрегировать результаты, а затем загрузить данные для проверки в проект 2.

    Чтобы не допускать к проверке тех пользователей, которые работали над вторым проектом, назначайте им навык. Используйте этот навык в качестве фильтра в пулах третьего проекта.

Как добавить валидацию ответа в зависимости от чекбокса?

Добавить валидацию ответа в зависимости от чекбокса можно с помощью JavaScript. Пример доступен в шаблоне «Поиск данных в сети».

Задание по выделению областей на картинке: что делать исполнителю, если на картинке нет предмета, который он должен выделить?
Основные варианты решения:
  • Выделите произвольную область на картинке (например, поставьте квадрат в правый верхний угол). В этом случае в инструкции к проекту для проверяющих это тоже должно быть отражено.
  • Предложите пропустить задание и сообщить о нём в личном сообщении. Сообщения проверяются заказчиком и, если объекта действительно нет, задание удаляется из пула путем обнуления перекрытия.
  • Добавьте в интерфейс дополнительный чекбокс «нет объекта». Настройте в JS проверку, чтобы в задании был выделен объект, либо проставлен чекбокс. В этом случае в интерфейс задания для контроля также нужно добавить информацию о значении этого чекбокса.
Сколько будет стоить 2000 картинок с большим количеством объектов выделения разного типа? Как для такого объема работы создать задание?

Для краудсорсинга такое задание лучше декомпозировать. Чем проще задание, тем оно будет дешевле и качественнее итоговый результат. Стоимость разметки одного класса объектов на фото может составить примерно 0.01$.

Возьмите за основу шаблон «Выделение областей на изображении». Пошаговое руководство по созданию проекта такого типа вы найдёте на этой странице.

Редактор, который используется в шаблоне, позволяет добавлять выпадающий список для маркировки выделенного объекта. Посмотрите как это сделать в описании редактора (вкладка Выпадающий список).

Как реализовать выделение 3-х разных областей на картинке? На скриншоте страницы товара нужно выделить название, изображение, цену.

Можно сделать выделение + выпадающий список с выбором категории. Посмотрите как это сделать в описании редактора (вкладка Выпадающий список).

Какие входные данные при разметке объектов на изображении: координаты объекта относительно изображения или координаты объекта в окне пользователя Толоки?

Координаты относительно самого изображения.

Как в стандартном шаблоне с редактором для выделения областей использовать контрольные задания?

В стандартном шаблоне с редактором для выделения областей не получится использовать контрольные задания, поскольку для того, чтобы ответ засчитался системой верным, объект, выделенный пользователем, должен в точности совпасть с эталоном. А это практически невозможно. Поэтому поле GOLDEN можно оставить пустым в файле с заданиями или просто удалить все столбцы кроме INPUT.

Почему в задании по выделению объектов на изображении не отображаются изображения с Яндекс.Диска?
Проблема в шаблоне задания. Проверьте, что:
  • Для поля входных данных, куда вы передаете ссылку на файл, в проекте указан тип «строка».
  • В компоненте в шаблоне задания используется выражение proxy.
  • Формат относительных ссылок в TSV-файле с заданиями указан верно: <уникальное имя>/<путь и имя файла>.
Подробная инструкция и видео на странице Использование файлов с Яндекс.Диска.
Как в стандартном шаблоне с редактором для выделения областей использовать контрольные и обучающие задания?

В стандартном шаблоне с редактором для выделения областей не получится использовать контрольные задания, поскольку для того, чтобы ответ засчитался системой верным, объект, выделенный пользователем, должен в точности совпасть с эталоном. А это практически невозможно. Поэтому поле GOLDEN можно оставить пустым в файле с заданиями или просто удалить все столбцы кроме INPUT.

Использование обучения и основного пула с типом Тренировка в проекте по выделению областей на картинке не принесет результата, так как для правильного ответа необходимо, чтобы выделение пользователя полностью совпало с эталоном. А это практически невозможно.

Поэтому такие задания обычно запускаются с отложенной приемкой: исполнитель дает ответ, а затем после проверки, задание отклоняется или принимается.

Для предварительного отбора пользователей подойдет так называемое «экзаменационное задание». Проверяйте задания и выставляйте навык по проценту принятых ответов. Для этого добавьте в пул правило «Результаты проверки». Чтобы к разметке основного пула приступили только хорошие исполнители, поставьте в нем фильтр по навыку.

Не загружаются файлы с Яндекс.Диска

Если картинки, аудио или видео с Яндекс.Диска не отображаются в инструкции или на странице задания, убедитесь, что вы правильно подключили Диск и загрузили файлы.

Как сделать задание, в котором исполнитель должен просматривать видео с Яндекс.Диска?

Для создания задания возьмите за основу шаблон для разметки видео.

Чтобы разместить ваши видеоролики на Яндекс.Диске, его нужно подключить и настроить проект.

Подробная видеоинструкция об этом в нашем блоге.

Почему в задании по выделению объектов на изображении не отображаются изображения с Яндекс.Диска?
Проблема в шаблоне задания. Проверьте, что:
  • Для поля входных данных, куда вы передаете ссылку на файл, в проекте указан тип «строка».
  • В компоненте в шаблоне задания используется выражение proxy.
  • Формат относительных ссылок в TSV-файле с заданиями указан верно: <уникальное имя>/<путь и имя файла>.
Подробная инструкцию и видео на странице Использование файлов с Яндекс.Диска.
Частые ошибки при подключении Диска и загрузке файлов
  • В настройках проекта в поле Входные данные указан тип ссылка. Необходимо выбрать тип строка.
  • В TSV-файле указаны абсолютные ссылки на файлы для заданий. Необходимо вставить ссылку вида <уникальное имя>/<путь и имя файла>. Например: yadisk/image1.jpg или yadisk/photos/image1.png.
  • Фото с Яндекс.Диска используются в инструкции к заданию в мобильном приложении. Чтобы фото отобразилось в инструкции, используйте только прямые ссылки.
  • Файлы удалены или находятся не в той папке на Диске, на которую ведет ссылка.
  • OAuth-токен не активен. Обновите токен на странице Интеграция с внешними сервисами.
Чтобы файлы, загруженные на Яндекс.Диск (картинки, аудио, видео), отображались у исполнителя, нужно:
  1. Подключить Яндекс.Диск в профиле.
  2. Установить тип строка для поля входных данных.
  3. Вставлять ссылку на файл при помощи компонента proxy.

Подробная инструкция

Файлы на Яндекс.Диск загружаются слишком медленно. Как ускорить загрузку?

Попробуйте воспользоваться рекомендациями с этой страницы или написать в службу поддержки Яндекс.Диска.