Para los trabajos de segmentación semántica, define la variable name en crowd-semantic-segmentation, como se muestra en el siguiente ejemplo. Para los trabajos de cuadro delimitador, define la variable name en boundingBox. Para obtener una lista completa de los elementos HTML mejorados para plantillas personalizadas, consulta Referencia de elementos HTML de Crowd.
<script src="https://assets.crowd.aws/crowd-html-elements.js"></script>
<crowd-form>
<crowd-semantic-segmentation name="crowd-semantic-segmentation" src="{{ task.input.taskObject | grant_read_access }}" header= "{{ task.input.header }}" labels="{{ task.input.labels | to_json | escape }}">
<full-instructions header= "Segmentation Instructions">
<ol>
<li>Read the task carefully and inspect the image.</li>
<li>Read the options and review the examples provided to understand more about the labels.</li>
<li>Choose the appropriate label that best suits the image.</li>
</ol>
</full-instructions>
<short-instructions>
<p>Use the tools to label the requested items in the image</p>
</short-instructions>
</crowd-semantic-segmentation>
</crowd-form>
Carga los archivos HTML, de manifiesto y JSON en Amazon Simple Storage Service (Amazon S3). Ejemplo:
import boto3import os
bucket = 'awsdoc-example-bucket'
prefix = 'GroundTruthCustomUI'
boto3.Session().resource('s3').Bucket(bucket).Object(os.path.join(prefix, 'customUI.html')).upload_file('customUI.html')
boto3.Session().resource('s3').Bucket(bucket).Object(os.path.join(prefix, 'input.manifest')).upload_file('input.manifest')
boto3.Session().resource('s3').Bucket(bucket).Object(os.path.join(prefix, 'testLabels.json')).upload_file('testLabels.json')
Para crear el trabajo de etiquetado, utiliza un SDK de AWS, como boto3:
import boto3
client = boto3.client("sagemaker")
client.create_labeling_job(
LabelingJobName="SemanticSeg-CustomUI",
LabelAttributeName="output-ref",
InputConfig={
"DataSource": {"S3DataSource": {"ManifestS3Uri": "INPUT_MANIFEST_IN_S3"}},
"DataAttributes": {
"ContentClassifiers": [
"FreeOfPersonallyIdentifiableInformation",
]
},
},
OutputConfig={"S3OutputPath": "S3_OUTPUT_PATH"},
RoleArn="IAM_ROLE_ARN",
LabelCategoryConfigS3Uri="LABELS_JSON_FILE_IN_S3",
StoppingConditions={"MaxPercentageOfInputDatasetLabeled": 100},
HumanTaskConfig={
"WorkteamArn": "WORKTEAM_ARN",
"UiConfig": {"UiTemplateS3Uri": "HTML_TEMPLATE_IN_S3"},
"PreHumanTaskLambdaArn": "arn:aws:lambda:eu-west-1:111122223333:function:PRE-SemanticSegmentation",
"TaskKeywords": [
"SemanticSegmentation",
],
"TaskTitle": "Semantic Segmentation",
"TaskDescription": "Draw around the specified labels using the tools",
"NumberOfHumanWorkersPerDataObject": 1,
"TaskTimeLimitInSeconds": 3600,
"TaskAvailabilityLifetimeInSeconds": 1800,
"MaxConcurrentTaskCount": 1,
"AnnotationConsolidationConfig": {
"AnnotationConsolidationLambdaArn": "arn:aws:lambda:eu-west-1:111122223333:function:ACS-SemanticSegmentation"
},
},
Tags=[{"Key": "reason", "Value": "CustomUI"}],
)