As seções a seguir fornecem informações sobre requisitos de dados, arquivos de esquema e o formato dos arquivos de importação de dados (JSONL e CSV) definidos pelo esquema.
Como alternativa, é possível importar vídeos que não foram anotados e anotados posteriormente usando o console (consulte Como rotular usando o Console do Google Cloud).
Requisitos de dados
Os requisitos a seguir se aplicam a conjuntos de dados usados para treinar o AutoML ou modelos personalizados treinados.
A Vertex AI é compatível com os formatos de vídeo a seguir para treinar o modelo ou solicitar uma previsão (anotação de um vídeo).
- .MOV
- .MPEG4
- .MP4
- .AVI
Para ver o conteúdo de vídeo no console da Web ou fazer anotações em um vídeo, ele precisa estar em um formato compatível com o seu navegador. Como nem todos os navegadores processam nativamente o conteúdo .MOV ou .AVI, a recomendação é usar o formato de vídeo .MPEG4 ou .MP4.
O tamanho máximo do arquivo é de 50 GB (até 3 horas de duração). Arquivos de vídeo individuais com registros de data e hora inválidos ou vazios no contêiner não são aceitos.
O número máximo de rótulos em cada conjunto de dados é limitado a 1.000.
É possível atribuir rótulos "ML_USE" aos vídeos nos arquivos importados. No momento do treinamento, é possível usar esses rótulos para dividir os vídeos e as respectivas anotações em conjuntos de "treinamento" ou "teste". Para classificação de vídeo, observe o seguinte:
- Pelo menos duas classes diferentes são necessárias para o treinamento do modelo. Por exemplo, "notícias" e "MTV" ou "jogo" e "outros".
- Pense em incluir uma classe "None_of_the_above" e segmentos de vídeo que não correspondam a nenhuma das classes definidas.
Práticas recomendadas para dados de vídeo usados para treinar modelos do AutoML
As práticas a seguir se aplicam a conjuntos de dados usados para treinar modelos do AutoML.
Os dados de treinamento precisam estar o mais próximo possível dos dados que serão previstos. Por exemplo, se o caso de uso incluir vídeos desfocados e de baixa resolução (como de uma câmera de segurança), seus dados de treinamento precisarão ser compostos por vídeos desfocados e de baixa resolução. Em geral, pense também em fornecer vários ângulos, resoluções e planos de fundo nos vídeos de treinamento.
Os modelos da Vertex AI geralmente não podem prever rótulos que pessoas não possam atribuir. Se uma pessoa não puder ser treinada para atribuir rótulos olhando o vídeo por 1 ou 2 segundos, o modelo provavelmente não poderá ser treinado para fazer isso também.
O modelo funciona melhor quando há no máximo 100 vezes mais vídeos para o rótulo mais comum do que para o menos comum. Recomendamos remover os rótulos de baixa frequência. Para classificação de vídeo, o número recomendado de vídeos de treinamento por rótulo é de aproximadamente 1.000. O mínimo por rótulo é 10 ou 50 para modelos avançados. Em geral, são necessários mais exemplos por rótulo para treinar modelos com vários rótulos por vídeo, e os resultados são mais difíceis de interpretar.
Arquivos de esquema
Use o seguinte arquivo de esquema de acesso público ao criar o arquivo jsonl para importar anotações. Esse arquivo de esquema determina o formato dos arquivos de entrada de dados. A estrutura do arquivo segue o teste OpenAPI Schema.
Arquivo de esquema de classificação de vídeo:
gs://google-cloud-aiplatform/schema/dataset/ioformat/video_classification_io_format_1.0.0.yaml
Arquivo de esquema completo
title: VideoClassification description: > Import and export format for importing/exporting videos together with classification annotations with time segment. Can be used in Dataset.import_schema_uri field. type: object required: - videoGcsUri properties: videoGcsUri: type: string description: > A Cloud Storage URI pointing to a video. Up to 50 GB in size and up to 3 hours in duration. Supported file mime types: `video/mp4`, `video/avi`, `video/quicktime`. timeSegmentAnnotations: type: array description: > Multiple classification annotations. Each on a time segment of the video. items: type: object description: Annotation with a time segment on media (e.g., video). properties: displayName: type: string description: > It will be imported as/exported from AnnotationSpec's display name. startTime: type: string description: > The start of the time segment. Expressed as a number of seconds as measured from the start of the video, with "s" appended at the end. Fractions are allowed, up to a microsecond precision. default: 0s endTime: type: string description: > The end of the time segment. Expressed as a number of seconds as measured from the start of the video, with "s" appended at the end. Fractions are allowed, up to a microsecond precision, and "Infinity" is allowed, which corresponds to the end of the video. default: Infinity annotationResourceLabels: description: Resource labels on the Annotation. type: object additionalProperties: type: string dataItemResourceLabels: description: Resource labels on the DataItem. type: object additionalProperties: type: string
Arquivos de entrada
Veja a seguir o formato dos dados de treinamento para classificação de vídeos.
Para importar os dados, crie um arquivo JSONL ou CSV.
JSONL
JSON em cada linha:
Consulte o arquivo de esquema de classificação (global) para mais detalhes.
{ "videoGcsUri": "gs://bucket/filename.ext", "timeSegmentAnnotations": [{ "displayName": "LABEL", "startTime": "start_time_of_segment", "endTime": "end_time_of_segment" }], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "train|test" } }
Exemplo de JSONL: classificação de vídeo:
{"videoGcsUri": "gs://demo/video1.mp4", "timeSegmentAnnotations": [{"displayName": "cartwheel", "startTime": "1.0s", "endTime": "12.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"videoGcsUri": "gs://demo/video2.mp4", "timeSegmentAnnotations": [{"displayName": "swing", "startTime": "4.0s", "endTime": "9.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} ...
CSV
Formato de uma linha no CSV:
[ML_USE,]VIDEO_URI,LABEL,START,END
Lista de colunas
-
ML_USE
(Opcional). Para fins de divisão de dados ao treinar um modelo. Use TREINAMENTO ou TESTE. VIDEO_URI
Esse campo contém o URI do Cloud Storage para o vídeo Esses URIs diferenciam maiúsculas de minúsculas.LABEL
Os rótulos precisam começar com uma letra e conter apenas letras, números e sublinhado (opcional). É possível especificar vários rótulos para um vídeo adicionando muitas linhas no arquivo CSV que identificam o mesmo trecho de vídeo, com um rótulo diferente para cada linha.START,END
Essas duas colunas, START e END, respectivamente, identificam os horários de início e término do trecho de vídeo para análise, em segundos. O horário de início precisa ser menor que o de término. Os dois valores não podem ser negativos e precisam estar dentro do período do vídeo. Por exemplo,0.09845,1.36005
. Para usar o conteúdo inteiro do vídeo, especifique o horário de início como0
e o horário de término da duração total do vídeo ou "inf". Por exemplo,0,inf
.
Exemplo de CSV: classificação usando um único rótulo
Rótulo único no mesmo trecho de vídeo:
TRAINING,gs://YOUR_VIDEO_PATH/vehicle.mp4,mustang,0,5.4 ...
Exemplo de CSV com vários rótulos:
Vários rótulos no mesmo trecho de vídeo:
gs://YOUR_VIDEO_PATH/vehicle.mp4,fiesta,0,8.285 gs://YOUR_VIDEO_PATH/vehicle.mp4,ranger,0,8.285 gs://YOUR_VIDEO_PATH/vehicle.mp4,explorer,0,8.285 ...
Exemplo de CSV sem rótulos:
Também é possível fornecer vídeos no arquivo de dados CSV sem especificar rótulos. Em seguida, use o Console do Google Cloud para aplicar rótulos aos dados antes de treinar o modelo. Para fazer isso, basta fornecer o URI do Cloud Storage para o vídeo seguido por três vírgulas, conforme mostrado no exemplo a seguir.
gs://YOUR_VIDEO_PATH/vehicle.mp4,,, ...