Ошибка неверного идентификатора с атрибутом начального значения виджета Crowd-semanti c -segmentation в Amazon Mechanical Turk - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь создать задачу человеческого интеллекта (HIT) на платформе Amazon Mechanical Turk (MTurk), где я хотел бы, чтобы рабочие обновляли semanti c маску сегментации, созданную алгоритмом.

Здесь вы можете увидеть пример автоматически сгенерированной маски: Образец изображения

Как видите, в маске есть небольшой «шум», который можно легко исправить. рабочими в течение нескольких минут. Я настроил semanti c segmentation HIT с помощью виджета Crowd-semanti c -segmentation раньше на MTurk, который отлично работает. В документации (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-dg.pdf#sms -ui-template-толпа-semanti c -segmentation ) я вижу, что есть необязательный аргумент начальное значение , указанный как:

Объект JSON, содержащий сопоставления цветов предыдущего задания semanti c сегментации и ссылку на изображение наложения, выводимое предыдущим заданием. Включите это, если вы хотите, чтобы рабочий проверил результаты предыдущей работы по маркировке и при необходимости скорректировал их.

Это именно то, что я ищу. Когда я помещаю пример кода в свой html файл для проверки синтаксиса этой опции,

  initial-value='{
"labelMappings": {
    "Bird": {
      "color": "#ff7f0e"
    },
    "Cat": {
      "color": "#2ca02c"
    },
    "Cow": {
      "color": "#d62728"
    },
    "Dog": {
      "color": "#1f77b4"
    }
  },
"src": {{ "S3 file URL for image" | grant_read_access }}

} '

, я получаю следующую ошибку неверного идентификатора:

ошибка

Я хотел бы указать атрибут sr c на переменную, которая ссылается на все автоматически сгенерированные изображения масок в моем сегменте S3. С переменной "${image_url}" я могу использовать входной файл CSV, содержащий несколько URL-адресов файлов изображений. Теперь я пытаюсь заменить "S3 file URL for image" переменной "${mask_url}", которая указывает на все «шумные автоматически сгенерированные маски» в моем ведре S3. Я получаю одно и то же сообщение об ошибке для этого кода:

Мой HTML код для HIT можно найти ниже. Может ли кто-нибудь помочь мне правильно настроить параметр начальное значение виджета Crowd-semanti c -segmentation с переменной, указывающей на «предыдущие задания по маркировке», которые являются автоматически сгенерировано моим алгоритмом?

Заранее спасибо!

РЕДАКТИРОВАТЬ 23/07 На основании ответа Amazon Mechanical Turk я изменил свой код HTML на следующее:

  <crowd-semantic-segmentation
    src="${image_url}"
    labels="['Background', 'Face', 'Hair', 'Beard', 'Brows', 'Eyes', 'Nose', 'Upper Lip', 'Lower Lip', 'Mouth', 'Body Skin', 'Ears', 'Ear Rings', 'Hat', 'Clothes' ]"
    name="annotatedResult"
    header="Color all facial features, clothes and background in the image"
    initial-value='{
    "labelMappings": {
        "Background": {
          "color": "#000000"
        },
        "Clothes": {
          "color": "#00ff00"
        },
      },
    "src" = "${mask_url}" 
    }'
  >

Теперь я получаю другую ошибку:

ошибка

Я, вероятно, путаю использование : и =, " .. " и '{ .. }'. На данный момент я совершенно не понимаю, как правильно использовать атрибут начального значения. Не могли бы вы еще раз взглянуть на правильный код и быть очень точными в использовании кавычек, скобок, двоеточий и знака равенства?

1 Ответ

0 голосов
/ 21 июля 2020

Шаблоны Mechanical Turk используют синтаксис $ {variableName} для синтаксического анализа переменных, поэтому ваша ссылка на {{ "${mask_url}" | grant_read_access }} не анализируется правильно.

Подобно тому, как вы вводите сам URL-адрес изображения,

<crowd-semantic-segmentation
 src="${image_url}"
…>

Вам нужно сделать то же самое с URL-адресом маски в атрибуте начального значения:

<crowd-semantic-segmentation
…
initial-value=“
labelMappings: […],
src=“${mask_url}”
…>

Обратите внимание, что фильтр grant_read_access теперь отсутствует. Фильтр grant_read_access используется в Amazon SageMaker Ground Truth для предоставления доступа к сегментам S3, отличным от publi c, но эта функция не поддерживается в шаблонах MTurk, это означает, что ваше изображение маски должно быть общедоступным. S3 bucket, чтобы оставаться частным, тогда я бы посоветовал вам использовать SageMaker Ground Truth.

...