A secção de objetivos seguinte inclui informações sobre os requisitos de dados, o ficheiro de esquema de entrada/saída e o formato dos ficheiros de importação de dados (linhas JSON e CSV) definidos pelo esquema.
Autorizações
Para usar imagens de um contentor do Cloud Storage, tem de conceder ao agente de serviço do Vertex AI a função Storage Object Viewer
para o contentor. O agente de serviço é uma conta de serviço gerida pela Google que a Vertex AI usa para aceder aos seus dados em seu nome. Para uma explicação mais detalhada, consulte o artigo Agentes de serviços.
Deteção de objetos
Requisitos de dados
Requisitos gerais de imagens | |
---|---|
Tipos de ficheiros suportados |
|
Tipos de imagens | Os modelos do AutoML estão otimizados para fotografias de objetos no mundo real. |
Tamanho do ficheiro de imagem de preparação (MB) | Tamanho máximo de 30 MB. |
Tamanho do ficheiro de imagem de previsão* (MB) | Tamanho máximo de 1,5 MB. |
Tamanho da imagem (píxeis) | Máximo sugerido de 1024 píxeis por 1024 píxeis. Para imagens muito maiores do que 1024 píxeis por 1024 píxeis, pode perder alguma qualidade de imagem durante o processo de normalização de imagens da Vertex AI. |
Requisitos de etiquetas e caixas delimitadoras | |
---|---|
Os seguintes requisitos aplicam-se aos conjuntos de dados usados para preparar modelos do AutoML. | |
Etiquete instâncias para preparação | Mínimo de 10 anotações (instâncias). |
Requisitos de anotações | Para cada etiqueta, tem de ter pelo menos 10 imagens, cada uma com pelo menos uma anotação (caixa delimitadora e a etiqueta). No entanto, para fins de preparação do modelo, é recomendado que use cerca de 1000 anotações por etiqueta. Em geral, quanto mais imagens por etiqueta tiver, melhor será o desempenho do modelo. |
Rácio de etiquetas (etiqueta mais comum para etiqueta menos comum): | O modelo funciona melhor quando existem, no máximo, 100 vezes mais imagens para a etiqueta mais comum do que para a etiqueta menos comum. Para o desempenho do modelo, é recomendável que remova as etiquetas de frequência muito baixa. |
Comprimento da aresta da caixa limitadora | Pelo menos 0,01 * comprimento de um lado de uma imagem. Por exemplo, uma imagem de 1000 * 900 píxeis requer caixas delimitadoras de, pelo menos, 10 * 9 píxeis. Tamanho mínimo da caixa delimitadora: 8 píxeis por 8 píxeis. |
Os seguintes requisitos aplicam-se aos conjuntos de dados usados para preparar modelos do AutoML ou preparados de forma personalizada. | |
Caixas limitadoras por imagem distinta | Máximo de 500. |
Caixas delimitadoras devolvidas de um pedido de previsão | 100 (predefinição), 500 máximo. |
Requisitos dos dados de preparação e do conjunto de dados | |
---|---|
Os seguintes requisitos aplicam-se aos conjuntos de dados usados para preparar modelos do AutoML. | |
Caraterísticas das imagens de preparação | Os dados de preparação devem estar o mais próximos possível dos dados com base nos quais as previsões vão ser feitas. Por exemplo, se o seu exemplo de utilização envolver imagens desfocadas e de baixa resolução (como as de uma câmara de segurança), os seus dados de preparação devem ser compostos por imagens desfocadas e de baixa resolução. Em geral, também deve considerar fornecer vários ângulos, resoluções e fundos para as suas imagens de preparação. Geralmente, os modelos da Vertex AI não conseguem prever etiquetas que os humanos não conseguem atribuir. Assim, se não for possível preparar um humano para atribuir etiquetas observando a imagem durante 1 a 2 segundos, é provável que também não seja possível preparar o modelo para o fazer. |
Pré-processamento interno de imagens | Depois de as imagens serem importadas, o Vertex AI realiza o pré-processamento dos dados. As imagens pré-processadas são os dados reais usados para preparar o modelo. O pré-processamento de imagens (redimensionamento) ocorre quando o lado mais pequeno da imagem é superior a 1024 píxeis. No caso em que o lado mais pequeno da imagem for superior a 1024 píxeis, esse lado mais pequeno é reduzido para 1024 píxeis. O lado maior e as caixas delimitadoras especificadas são reduzidas na mesma proporção que o lado menor. Consequentemente, todas as anotações reduzidas (caixas delimitadoras e etiquetas) são removidas se tiverem menos de 8 píxeis por 8 píxeis. As imagens com um lado inferior ou igual a 1024 píxeis não estão sujeitas ao redimensionamento de pré-processamento. |
Os seguintes requisitos aplicam-se aos conjuntos de dados usados para preparar modelos do AutoML ou preparados de forma personalizada. | |
Imagens em cada conjunto de dados | Máximo de 150 000 |
Total de caixas delimitadoras anotadas em cada conjunto de dados | Máximo de 1 000 000 |
Número de etiquetas em cada conjunto de dados | Mínimo de 1, máximo de 1000 |
Ficheiro de esquema YAML
Use o seguinte ficheiro de esquema acessível publicamente para importar anotações de deteção de objetos de imagem (caixas de limite e etiquetas). Este ficheiro de esquema determina o formato dos ficheiros de entrada de dados. A estrutura deste ficheiro segue o esquema OpenAPI.
gs://google-cloud-aiplatform/schema/dataset/ioformat/image_bounding_box_io_format_1.0.0.yaml
Ficheiro de esquema completo
title: ImageBoundingBox description: > Import and export format for importing/exporting images together with bounding box annotations. Can be used in Dataset.import_schema_uri field. type: object required: - imageGcsUri properties: imageGcsUri: type: string description: > A Cloud Storage URI pointing to an image. Up to 30MB in size. Supported file mime types: `image/jpeg`, `image/gif`, `image/png`, `image/webp`, `image/bmp`, `image/tiff`, `image/vnd.microsoft.icon`. boundingBoxAnnotations: type: array description: Multiple bounding box Annotations on the image. items: type: object description: > Bounding box anntoation. `xMin`, `xMax`, `yMin`, and `yMax` are relative to the image size, and the point 0,0 is in the top left of the image. properties: displayName: type: string description: > It will be imported as/exported from AnnotationSpec's display name, i.e. the name of the label/class. xMin: description: The leftmost coordinate of the bounding box. type: number format: double xMax: description: The rightmost coordinate of the bounding box. type: number format: double yMin: description: The topmost coordinate of the bounding box. type: number format: double yMax: description: The bottommost coordinate of the bounding box. type: number format: double annotationResourceLabels: description: Resource labels on the Annotation. type: object additionalProperties: type: string dataItemResourceLabels: description: Resource labels on the DataItem. type: object additionalProperties: type: string
Ficheiros de entrada
JSON Lines
JSON em cada linha:
{ "imageGcsUri": "gs://bucket/filename.ext", "boundingBoxAnnotations": [ { "displayName": "OBJECT1_LABEL", "xMin": "X_MIN", "yMin": "Y_MIN", "xMax": "X_MAX", "yMax": "Y_MAX", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name": "displayName", "env": "prod" } }, { "displayName": "OBJECT2_LABEL", "xMin": "X_MIN", "yMin": "Y_MIN", "xMax": "X_MAX", "yMax": "Y_MAX" } ], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "test/train/validation" } }
Notas de campo:
imageGcsUri
: o único campo obrigatório.annotationResourceLabels
- Pode conter qualquer número de pares de strings de chave-valor. O único par de chave-valor reservado pelo sistema é o seguinte:- "aiplatform.googleapis.com/annotation_set_name" : "value"
Onde value é um dos nomes a apresentar dos conjuntos de anotações existentes no conjunto de dados.
dataItemResourceLabels
- Pode conter qualquer número de pares de strings de chave-valor. O único par de chave-valor reservado pelo sistema é o seguinte, que especifica o conjunto de utilização de aprendizagem automática do item de dados:- "aiplatform.googleapis.com/ml_use" : "training/test/validation"
Exemplo de linhas JSON – object_detection.jsonl
:
{"imageGcsUri": "gs://bucket/filename1.jpeg", "boundingBoxAnnotations": [{"displayName": "Tomato", "xMin": "0.3", "yMin": "0.3", "xMax": "0.7", "yMax": "0.6"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} {"imageGcsUri": "gs://bucket/filename2.gif", "boundingBoxAnnotations": [{"displayName": "Tomato", "xMin": "0.8", "yMin": "0.2", "xMax": "1.0", "yMax": "0.4"},{"displayName": "Salad", "xMin": "0.0", "yMin": "0.0", "xMax": "1.0", "yMax": "1.0"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename3.png", "boundingBoxAnnotations": [{"displayName": "Baked goods", "xMin": "0.5", "yMin": "0.7", "xMax": "0.8", "yMax": "0.8"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename4.tiff", "boundingBoxAnnotations": [{"displayName": "Salad", "xMin": "0.1", "yMin": "0.2", "xMax": "0.8", "yMax": "0.9"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}} ...
CSV
Formato CSV:
[ML_USE],GCS_FILE_PATH,[LABEL],[BOUNDING_BOX]*
ML_USE
(Opcional). Para fins de divisão de dados ao preparar um modelo. Use TRAINING, TEST ou VALIDATION. Para mais informações sobre a divisão manual de dados, consulte o artigo Acerca das divisões de dados para modelos do AutoML.GCS_FILE_PATH
. Este campo contém o URI do Cloud Storage para a imagem. Os URIs do Cloud Storage são sensíveis a maiúsculas e minúsculas.LABEL
. As etiquetas têm de começar por uma letra e só podem conter letras, números e sublinhados.BOUNDING_BOX
. Uma caixa limitadora para um objeto na imagem. A especificação de uma caixa delimitadora envolve mais do que uma coluna.
A.X_MIN
,Y_MIN
B.X_MAX
,Y_MIN
C.X_MAX
,Y_MAX
D.X_MIN
,Y_MAX
Cada vértice é especificado por valores de coordenadas x e y. As coordenadas são valores de ponto flutuante normalizados [0,1]; 0,0 é X_MIN ou Y_MIN, 1,0 é X_MAX ou Y_MAX.
Por exemplo, uma caixa delimitadora para toda a imagem é expressa como (0.0,0.0,,,1.0,1.0,,) ou (0.0,0.0,1.0,0.0,1.0,1.0,0.0,1.0).
A caixa delimitadora de um objeto pode ser especificada de uma de duas formas:
- Dois vértices (dois conjuntos de coordenadas x,y) que são pontos diagonalmente opostos do retângulo:
A.X_MIN
,Y_MIN
C.X_MAX
,Y_MAX
conforme mostrado neste exemplo:
A,,C,
X_MIN,Y_MIN,,,X_MAX,Y_MAX,,
- Todos os quatro vértices especificados, conforme mostrado em:
X_MIN,Y_MIN,X_MAX,Y_MIN, X_MAX,Y_MAX,X_MIN,Y_MAX,
Se os quatro vértices especificados não formarem um retângulo paralelo aos limites da imagem, o Vertex AI especifica vértices que formam esse retângulo.
- Dois vértices (dois conjuntos de coordenadas x,y) que são pontos diagonalmente opostos do retângulo:
Exemplo de CSV – object_detection.csv
:
test,gs://bucket/filename1.jpeg,Tomato,0.3,0.3,,,0.7,0.6,, training,gs://bucket/filename2.gif,Tomato,0.8,0.2,,,1.0,0.4,, gs://bucket/filename2.gif gs://bucket/filename3.png,Baked goods,0.5,0.7,0.8,0.7,0.8,0.8,0.5,0.8 validation,gs://bucket/filename4.tiff,Salad,0.1,0.2,,,0.8,0.9,, ...