Amazon Mechanical Turk 中人群语义分割小部件的初始值属性出现错误标识符错误

Posted

技术标签:

【中文标题】Amazon Mechanical Turk 中人群语义分割小部件的初始值属性出现错误标识符错误【英文标题】:Bad Identifier error with the initial-value attribute of the crowd-semantic-segmentation widget in Amazon Mechanical Turk 【发布时间】:2020-10-30 06:35:06 【问题描述】:

我正在尝试在 Amazon Mechanical Turk (MTurk) 平台上创建人类智能任务 (HIT),我希望工作人员在该平台上更新由算法创建的语义分割掩码。

您可以在此处查看自动生成掩码的示例: Sample Image

如您所见,面罩中有一点“噪音”,工人可以在几分钟内轻松修复。我之前在 MTurk 上使用 crowd-semantic-segmentation 小部件设置了语义分割 HIT,效果非常好。在文档 (https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-dg.pdf#sms-ui-template-crowd-semantic-segmentation) 中,我看到有一个可选参数 initial-value,指定为:

一个 JSON 对象,包含先前语义分割作业的颜色映射和指向 上一个作业输出的叠加图像。当您希望人工验证结果时包括此内容 之前的标签作业,并在必要时进行调整。

这正是我正在寻找的。当我将示例代码放在我的 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 

'

我收到以下错误标识符错误:

我想将 src 属性指向一个变量,该变量链接到我的 S3 存储桶中的所有自动生成的蒙版图像。使用 "$image_url" 变量,我可以使用包含多个图像文件 URL 的 CSV 输入文件。现在,我尝试将"S3 file URL for image" 替换为"$mask_url" 变量,该变量指向我的S3 存储桶中的所有“嘈杂的自动生成掩码”。我不断收到此代码的相同错误消息:

我的 HIT 的 HTML 代码可以在下面找到。有人可以帮我正确设置 crowd-semantic-segmentation 小部件的 initial-value 选项,其中的变量指向自动的“先前标记作业” - 由我的算法生成?

提前致谢!

编辑 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】:

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 存储桶的访问,但 MTurk 模板不支持此功能,这意味着您的掩码图像需要可公开访问。如果您需要 S3 存储桶保持私密,然后我会指导您使用 SageMaker Ground Truth。

【讨论】:

感谢您的回复!我已经用我的代码的最新版本更新了我的问题,但我仍然得到一个错误。你能再看看它,并且非常精确地正确使用引号、括号、冒号和等号吗?这可能是一个小错误,但在这一点上我看不出我使用的是哪个错误..

以上是关于Amazon Mechanical Turk 中人群语义分割小部件的初始值属性出现错误标识符错误的主要内容,如果未能解决你的问题,请参考以下文章

你有没有有趣地使用 Mechanical Turk? [关闭]

Amazon Turk 命令行工具:端口错误的无效配置

基于Amazon KVS 与 Amazon Rekognition Streaming Video Events实时视频检测方案

PCA学习一M. Turk, A. Pentland, Eigenfaces for Recognition, Journal of Cognitive Neurosicence, Vol. 3, N

Mechanical中如何快速开发自动化脚本

Altium designer 16 Mechanical1层之PCB 打样说明