

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Classifique objetos de imagem usando uma caixa delimitadora
<a name="sms-bounding-box"></a>

As imagens usadas para treinar um modelo de machine learning geralmente contêm mais de um objeto. Para classificar e localizar um ou mais objetos em imagens, use a caixa delimitadora Amazon SageMaker Ground Truth rotulando o tipo de tarefa de trabalho. Nesse contexto, a localização significa a localização de pixel na caixa delimitadora. Você cria um trabalho de rotulagem de caixa delimitadora usando a seção Ground Truth do console Amazon SageMaker AI ou a [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html)operação.

**Importante**  
Para esse tipo de tarefa, se você criar seu próprio arquivo de manifesto, use `"source-ref"` para identificar o local de cada arquivo de imagem no Amazon S3 que deseja rotular. Para obter mais informações, consulte [Dados de entrada](sms-data-input.md).

## Criar um trabalho de rotulagem da caixa delimitadora (console)
<a name="sms-creating-bounding-box-labeling-job-console"></a>

Você pode seguir as instruções [Criar um trabalho de rotulagem (console)](sms-create-labeling-job-console.md) para aprender como criar um trabalho de rotulagem de caixa delimitadora no console de SageMaker IA. Na Etapa 10, escolha **Imagem**, no menu suspenso **Categoria de tarefa**, e **Caixa delimitadora** como o tipo de tarefa. 

O Ground Truth fornece uma interface de usuário do operador que se parece com a seguinte para tarefas de rotulagem: Ao criar o trabalho de rotulagem com o console, você especifica instruções para ajudar os operadores a concluírem o trabalho e até 50 rótulos que eles podem escolher. 

![O GIF mostra como desenhar uma caixa ao redor de um objeto para uma categoria.](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/sms/gifs/bb-sample.gif)


## Criar um trabalho de rotulagem da caixa delimitadora (API)
<a name="sms-creating-bounding-box-labeling-job-api"></a>

Para criar um trabalho de rotulagem de caixa delimitadora, use a operação de SageMaker API. `CreateLabelingJob` Essa API define essa operação para todos os AWS SDKs. Para ver uma lista de SDKs específicos de linguagem compatíveis com essa operação, consulte a seção **Veja também** do [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html).

Siga as instruções em [Criar um trabalho de rotulagem (API)](sms-create-labeling-job-api.md) e faça o seguinte enquanto você configura a solicitação: 
+ Pre-annotation As funções Lambda para esse tipo de tarefa terminam com. `PRE-BoundingBox` Para encontrar a pré-anotação Lambda ARN para sua região, consulte. [PreHumanTaskLambdaArn](https://docs.aws.amazon.com/sagemaker/latest/dg/API_HumanTaskConfig.html#SageMaker-Type-HumanTaskConfig-PreHumanTaskLambdaArn) 
+ Annotation-consolidation As funções Lambda para esse tipo de tarefa terminam com. `ACS-BoundingBox` Para encontrar o ARN Lambda de consolidação de anotações para sua região, consulte. [AnnotationConsolidationLambdaArn](https://docs.aws.amazon.com/sagemaker/latest/dg/API_AnnotationConsolidationConfig.html#SageMaker-Type-AnnotationConsolidationConfig-AnnotationConsolidationLambdaArn) 

Veja a seguir um exemplo de uma [solicitação do SDK Python (Boto3) da AWS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_labeling_job) para criar um trabalho de rotulagem de dados automatizada na região Leste dos EUA (Norte da Virgínia). Todos os parâmetros em vermelho devem ser substituídos por suas especificações e recursos. 

```
response = client.create_labeling_job(
    LabelingJobName={{'example-bounding-box-labeling-job}},
    LabelAttributeName={{'label'}},
    InputConfig={
        'DataSource': {
            'S3DataSource': {
                'ManifestS3Uri': {{'s3://bucket/path/manifest-with-input-data.json'}}
            }
        },
        'DataAttributes': {
            'ContentClassifiers': [
                {{'FreeOfPersonallyIdentifiableInformation'|'FreeOfAdultContent'}},
            ]
        }
    },
    OutputConfig={
        'S3OutputPath': {{'s3://bucket/path/file-to-store-output-data'}},
        'KmsKeyId': {{'string'}}
    },
    RoleArn={{'arn:aws:iam::*:role/*}},
    LabelCategoryConfigS3Uri={{'s3://bucket/path/label-categories.json'}},
    StoppingConditions={
        'MaxHumanLabeledObjectCount': {{123}},
        'MaxPercentageOfInputDatasetLabeled': {{123}}
    },
    HumanTaskConfig={
        'WorkteamArn': {{'arn:aws:sagemaker:region:*:workteam/private-crowd/*'}},
        'UiConfig': {
            'UiTemplateS3Uri': {{'s3://bucket/path/worker-task-template.html'}}
        },
        'PreHumanTaskLambdaArn': 'arn:aws:lambda:{{us-east-1:432418664414}}:function:PRE-BoundingBox',
        'TaskKeywords': [
            {{'Bounding Box'}},
        ],
        'TaskTitle': {{'Bounding Box task'}},
        'TaskDescription': {{'Draw bounding boxes around objects in an image'}},
        'NumberOfHumanWorkersPerDataObject': {{123}},
        'TaskTimeLimitInSeconds': {{123}},
        'TaskAvailabilityLifetimeInSeconds': {{123}},
        'MaxConcurrentTaskCount': {{123}},
        'AnnotationConsolidationConfig': {
            'AnnotationConsolidationLambdaArn': 'arn:aws:lambda:{{us-east-1:432418664414}}:function:ACS-BoundingBox'
          }
        },
    Tags=[
        {
            'Key': {{'string'}},
            'Value': {{'string'
}}        },
    ]
)
```

### Fornecer um modelo para trabalhos de rotulagem da caixa delimitadora
<a name="sms-create-labeling-job-bounding-box-api-template"></a>

Se você criar um trabalho de rotulagem usando a API, será necessário fornecer um modelo de tarefas de operador em `UiTemplateS3Uri`. Copie e modifique o modelo a seguir. Modifique somente [https://docs.aws.amazon.com/sagemaker/latest/dg/sms-creating-instruction-pages.html#sms-creating-quick-instructions](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-creating-instruction-pages.html#sms-creating-quick-instructions), [https://docs.aws.amazon.com/sagemaker/latest/dg/sms-creating-instruction-pages.html#sms-creating-full-instructions](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-creating-instruction-pages.html#sms-creating-full-instructions) e `header`. Faça upload deste modelo para o S3 e forneça o URI do S3 para este arquivo em `UiTemplateS3Uri`.

```
<script src="https://assets.crowd.aws/crowd-html-elements.js"></script>
<crowd-form>
  <crowd-bounding-box
    name="boundingBox"
    src="{{ task.input.taskObject | grant_read_access }}"
    header="please draw box"
    labels="{{ task.input.labels | to_json | escape }}"
  >

    <full-instructions header="Bounding box instructions">
      <ol><li><strong>Inspect</strong> the image</li><li><strong>Determine</strong> 
      if the specified label is/are visible in the picture.</li>
      <li><strong>Outline</strong> each instance of the specified label in the image using the provided “Box” tool.</li></ol>
      <ul><li>Boxes should fit tight around each object</li>
      <li>Do not include parts of the object are overlapping or that cannot be seen, even though you think you can interpolate the whole shape.</li>
      <li>Avoid including shadows.</li>
      <li>If the target is off screen, draw the box up to the edge of the image.</li>    
    </full-instructions>
  
    <short-instructions>
      <h3><span style="color: rgb(0, 138, 0);">Good example</span></h3>
      <p>Enter description of a correct bounding box label and add images</p>
      <h3><span style="color: rgb(230, 0, 0);">Bad example</span></h3>
      <p>Enter description of an incorrect bounding box label and add images</p>
    </short-instructions>
  
  </crowd-bounding-box>
</crowd-form>
```

## Dados de saída da caixa delimitadora
<a name="sms-bounding-box-output-data"></a>

Depois de criar um trabalho de rotulagem de uma caixa delimitadora, seus dados de saída serão localizados no bucket do Amazon S3 especificado no parâmetro `S3OutputPath` ao usar a API ou no campo **Local do conjunto de dados** de saída da seção **Visão geral do trabalho** do console. 

Por exemplo, o arquivo manifesto de saída de uma tarefa de caixa delimitadora de classe única concluída com êxito conterá o seguinte: 

```
[
  {
    "boundingBox": {
      "boundingBoxes": [
        {
          "height": 2832,
          "label": "bird",
          "left": 681,
          "top": 599,
          "width": 1364
        }
      ],
      "inputImageProperties": {
        "height": 3726,
        "width": 2662
      }
    }
  }
]
```

O parâmetro `boundingBoxes` identifica o local da caixa delimitadora desenhada em volta de um objeto identificado como um “pássaro” em relação ao canto superior esquerdo da imagem que é considerada como a coordenada de pixel (0,0). No exemplo anterior, **`left`** e **`top`** identificam o local do pixel no canto superior esquerdo da caixa delimitadora em relação ao canto superior esquerdo da imagem. As dimensões da caixa delimitadora são identificadas por **`height`** e **`width`**. O parâmetro `inputImageProperties` fornece as dimensões do pixel da imagem de entrada original.

Ao usar o tipo de tarefa da caixa delimitadora, é possível criar trabalhos de rotulagem de caixa delimitadora de classe única e múltipla. O arquivo manifesto de saída de uma caixa delimitadora de várias classes concluída com êxito conterá o seguinte: 

```
[
  {
    "boundingBox": {
      "boundingBoxes": [
        {
          "height": 938,
          "label": "squirrel",
          "left": 316,
          "top": 218,
          "width": 785
        },
        {
          "height": 825,
          "label": "rabbit",
          "left": 1930,
          "top": 2265,
          "width": 540
        },
        {
          "height": 1174,
          "label": "bird",
          "left": 748,
          "top": 2113,
          "width": 927
        },
        {
          "height": 893,
          "label": "bird",
          "left": 1333,
          "top": 847,
          "width": 736
        }
      ],
      "inputImageProperties": {
        "height": 3726,
        "width": 2662
      }
    }
  }
]
```

Para saber mais sobre o arquivo manifesto de saída resultante de um trabalho de rotulagem de caixa delimitadora, consulte [Saída do trabalho de caixa delimitadora](sms-data-output.md#sms-output-box).

Para saber mais sobre o arquivo manifesto de saída gerado pelo Ground Truth, e sobre a estrutura do arquivo que o Ground Truth usa para armazenar os dados de saída, consulte [Rotulando dados de saída do trabalho](sms-data-output.md). 