Проект 4. Какой из найденных объектов больше похож на исходный?

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

  1. Создайте проект
  2. Создайте пул
  3. Подготовьте и загрузите TSV-файл с заданиями
  4. Получите результаты

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

Чтобы создать проект, откройте Яндекс.Толоку для заказчика.

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

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

    2. Выберите шаблон Попарное сравнение изображений.

  2. Заполните общую информацию:

    1. В поле Название для исполнителей введите Какой из найденных объектов похож на исходный?.

    2. В поле Описание для исполнителей введите Решите, какая пара обуви больше похожа на исходную..

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

    4. Сохраните изменения.

  3. Отредактируйте интерфейс задания в выбранном редакторе:

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

      Исполнитель не сможет отправить задание, если:

      • не перейдет по кнопкам в интернет-магазин;
      • не выберет один из вариантов ответа.
    2. Чтобы увидеть поля входных и выходных данных, нажмите Показать спецификации.

      • Поля входных данных:

        • image — ссылка для загрузки изображения исходного товара;
        • left_link — ссылка для левой кнопки на товар в интернет-магазине;
        • right_link — ссылка для правой кнопки на товар в интернет-магазине.
      • Поле выходных данных: result — строка, в которую будет записан ответ исполнителя.

    1. В Интерфейсе задания удалите шаблонный код из блока HTML и вставьте следующий код:

      <div class="header">
          <div class="left caption">
              {{button label="Перейдите на сайт" href=uploaded_link_left size="L"}}
              <p class="url">{{uploaded_link_left}}</p>
          </div>
          <div class="right caption">
              <p class="url">{{uploaded_link_right}}</p>
              {{button label="Перейдите на сайт" href=uploaded_link_right  size="L"}}
          </div>
      </div>
      
      {{img src=image}}
      
      <div class="content clearfix">
          <div class="left page">
              {{iframe src=uploaded_link_left width="100%" height="700px" real-size=true screenshot=true}}
          </div>
          <div class="right page">
              {{iframe src=uploaded_link_right width="100%" height="700px" real-size=true screenshot=true}}
          </div>
      </div>
      
      <div class="footer">
          {{field type="radio" name="result" label="Левое изображение лучше" value="result_left" hotkey="1"}}
          {{field type="radio" name="result" label="Правое изображение лучше" value="result_right" hotkey="2"}}
      </div>
      Скопировано
    2. В блоке JS отредактируйте код, добавив следующие строки до строки OnRender.
      Внимание.

      Не удаляйте существующий код.

      getTemplateData: function() {
              var data = TolokaHandlebarsTask.prototype.getTemplateData.apply(this, arguments),
              input = this.getTask().input_values;
              var left_link = input.left_link;
              var right_link = input.right_link;
              var uploaded_link_left = '',
                  uploaded_link_right = ''
              if (Math.floor(Math.random() * 2)) {
                  uploaded_link_left = left_link
                  uploaded_link_right = right_link
              } else {
                  uploaded_link_left = right_link
                  uploaded_link_right = left_link
              }
        data.uploaded_link_left = uploaded_link_left;
              data.uploaded_link_right = uploaded_link_right;
              data.result_left = uploaded_link_left;
              data.result_right = uploaded_link_right;
      
              return data;
      
          },
      Скопировано
    3. В блок CSS вставьте следующий код, отвечающий за установку пропорционального размера изображения.

      .task {
        display: block;
        text-align:center;
      }
      
      .header {
        overflow: hidden;
        background-color: #FFCC00;
      }
      
      .caption {
        width: 50%;
      }
      
      .url {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
      
        max-width: calc(100% - 182px);
      
        display: inline-block;
        vertical-align: bottom;
      }
      
      .button {
        margin: 10px;
        max-width: 182px;
      }
      
      .button__label {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 150px;
      }
      
      .content {
        margin: 10px 0;
      }
      
      .page {
        display: inline-block;
        width: 50%;
      }
      
      .left {
        float: left;
        text-align: left;
      }
      
      .right {
        float: right;
        text-align: right;
      }
      
      .clearfix {
        overflow: hidden;
        width: 100%;
      }
      Скопировано
    4. Отредактируйте входные и выходные данные в блоке Спецификация данных.

      1. Нажмите кнопку , чтобы переключить графический режим на формат JSON.

      2. В поле Входные данные введите:

        {
          "image": {
            "type": "url",
            "hidden": false,
            "required": true
          },
          "left_link": {
            "type": "url",
            "hidden": false,
            "required": true
          },
          "right_link": {
            "type": "url",
            "hidden": false,
            "required": true
          }
        }
        Скопировано
      3. В поле Выходные данные введите:

        {
          "result": {
            "type": "url",
            "hidden": false,
            "required": true
          }
        }
        Скопировано

        Подробнее о параметрах Спецификации читайте в разделе Входные и выходные данные.

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

        Примечание. В предварительном просмотре проекта отображается одно задание со стандартными данными. Количество заданий на странице вы сможете настроить далее.
        1. В открывшемся окне проверьте работу опций задания. В правом нижнем углу нажмите Отправить.

        2. Выйдите из режима предпросмотра.

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

  4. Сохраните изменения.

  5. В поле Инструкция для исполнителей введите инструкцию.

    1. Текст инструкции:
      Посмотрите на две фотографии с разной обувью и решите, какая пара обуви больше похожа на исходную пару. 
      Используйте свое собственное чувство стиля, но помните, что обувь будет выглядеть одинаково, если 
      она похожа по цвету, материалу, длине и стилю.
      Скопировано
    2. Сохраните изменения.

  6. Чтобы выйти на страницу Проекты, нажмите Завершить редактирование.

Подробнее о работе с проектом читайте в разделе Проект.

Создайте пул

Чтобы создать пул:

  1. Откройте страницу проекта с именем Какая обувь выглядит более похоже.

  2. Нажмите кнопку Добавить пул.

  3. Укажите Название пула.

  4. (опционально) Укажите Приватное описание.

    1. Включите опцию Добавить приватное описание.

    2. В поле Приватное описание введите описание пула. Эта информация доступна только вам.

  5. В разделе Цена за страницу заданий в поле Цена в долларах США укажите 0.01. Больше примеров ценообразования можно посмотреть здесь.

  6. В разделе Исполнители отфильтруйте исполнителей.

    1. Нажмите Добавить фильтр.

    2. Найдите в списке блок Профиль исполнителя и выберите навык Языки.

    3. В поле ? укажите =.

    4. Добавьте еще один фильтр. Нажмите Добавить фильтр.

    5. Найдите в списке блок Навыки и выберите навык Выбрать навык.

    6. В поле Выберите навык выберите Found_shoes.

    7. В поле ? укажите =.

    8. Поле Отсутствует оставьте пустым.

  7. В разделе Контроль качества задайте настройки контроля качества для пула:

    1. Нажмите Добавить блок контроля качества.

    2. Найдите в списке блок Правила и выберите пункт Быстрые ответы.

    3. Задайте правило для быстрых ответов: если количество быстрых ответов больше 3, то заблокировать исполнителя на проекте на 10 дней. В качестве причины указать Быстрые ответы.

    Подробнее о контроле качества читайте в разделе Контроль качества.

  8. В разделе Перекрытие в поле Перекрытие укажите 10.

  9. (опционально) В разделе Соотношение скорость/качество укажите какому проценту пользователей с лучшим рейтингом будет доступен указанный пул. Подробнее об это читайте в разделе Соотношение скорости и качества.

  10. В разделе Параметры:

    1. В поле Время на страницу заданий в секундах укажите 300.

    2. Включите опцию Сохранять порядок заданий.

  11. Нажмите кнопку Сохранить.

Подготовьте и загрузите TSV-файл с заданиями

  1. Скачайте TSV-файл, полученный в третьем проекте.

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

    Создавать пары можно вручную с помощью редактора текста или делать это автоматически, например, Python или Jupyter Lab.

    Для примера вы можете использовать наши результаты https://tlk.s3.yandex.net/wsdm2020/SbS_Toloka_prep&aggr_data.ipynb.

  3. Откройте пул Какой объект больше похож?.

  4. Нажмите кнопку Загрузить. В открывшемся окне настройте параметры загрузки файла.

  5. Выберите Указать вручную.

  6. В поле Заданий на странице укажите 1. Вы можете поэкспериментировать с количеством заданий на странице.

  7. Нажмите кнопку Загрузить.

  8. В открывшемся окне выберите TSV-файл с заданиями для загрузки и нажмите кнопку Открыть.

  9. Нажмите кнопку , чтобы запустить пул.

    Внимание.

    Поставленные задачи выполнят настоящие исполнители Яндекс.Толоки. Перепроверьте конфигурацию вашего проекта перед запуском пула.

Получите результаты

Чтобы получить результаты:

  1. Нажмите кнопку Скачать результаты.

    1. В блоке Статус оставьте включенной только опцию Принятые.

    2. В блоке Поля оставьте включенной опции ссылка, ID ответа и ID исполнителя.

  2. Отключите опцию Разделять ответы пустой строкой.

  3. Попробуйте использовать модель Брэдли-Терри на полученных результатах. Для примера используйте наши результаты https://tlk.s3.yandex.net/wsdm2020/SbS_Toloka_prep&aggr_data.ipynb.