Pour les tâches de segmentation sémantique, définissez la variable name sur crowd-semantic-segmentation, comme illustré dans l'exemple suivant. Pour les tâches de cadre de délimitation, définissez la variable name sur boundingBox. Pour une liste complète des éléments HTML améliorés pour les modèles personnalisés, consultez la section Référence des éléments HTML 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>
Chargez les fichiers HTML, manifeste et JSON sur Amazon Simple Storage Service (Amazon S3). Exemple :
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')
Pour créer la tâche d'étiquetage, utilisez un kit SDK AWS, tel que 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"}],
)