Visão geral do modelo de IA BYO (Bring Your Own) do Azure AI Video Indexer
Este artigo é uma visão geral do Azure AI Video Indexer traga seu próprio modelo de IA.
Introdução
Você pode combinar insights de outras fontes, incluindo modelos de classificação e detecção de terceiros, para produzir uma análise detalhada de seus dados de mídia. Você pode usar um ou mais dos modelos oferecidos pela Microsoft, um modelo personalizado externo ou um modelo personalizado de Pessoa, Marca, Fala ou Idioma oferecido pelo Azure Video Indexer.
O recurso também está disponível para VI habilitado pelo Arc.
ISENÇÃO DE RESPONSABILIDADE: O Código de conduta da Microsoft para o Serviço OpenAI do Azure se aplica ao uso do recurso Traga seu próprio modelo, que inclui o direito da Microsoft de descontinuar seu acesso e uso desse recurso por não conformidade.
Preços
Com o modelo BYO do Video Indexer, os usuários podem adicionar insights personalizados a objetos de insight de vídeo sem incorrer em custos adicionais além do custo listado do processo de indexação. No entanto, quaisquer custos relacionados ao ambiente externo e ao modelo não devem ser considerados parte do preço de cobrança do Video Indexer. É altamente recomendável revisar nossa seção de práticas recomendadas para otimizar a lógica externa e reduzir custos.
Fluxo de trabalho geral
- O vídeo é carregado e indexado com o Azure AI Video Indexer.
- Quando o processo de indexação é concluído, um evento é criado.
- Seu código personalizado escuta o evento e inicia o processo de pós-processamento do vídeo.
- Obtenha insights extraídos pelo Video Indexer.
- Obter quadro-chave para uma seção de vídeo.
- Envie o quadro-chave para o modelo de IA personalizado.
- Corrija os insights personalizados de volta para o Video Indexer.
Pré-requisitos
Antes de começar a usar o recurso de modelo BYO com o Azure AI Video Indexer, você deve:
- Treine ou traga um modelo de IA externo que receba ativos de vídeo e retorne um insight.
- Crie um código personalizado que:
- Escuta eventos dos Hubs de Eventos.
- Extrai o
video id
dos eventos. - Recupera os ativos relevantes chamando APIs do VI. Nesse cenário, solicite Obter índice de vídeo e Obter URLs SAS de quadros.
- Envia os ativos para o modelo de IA externo.
- Cria um objeto JSON com base nos insights recuperados do modelo de IA personalizado.
- Solicita o índice de vídeo de atualização de patch.
Esquema
Os valores para preencher os dados personalizados são os seguintes:
Nome | Descrição | Necessário |
---|---|---|
name | Nome do modelo de IA externa | true |
displayName | Nome do grupo de insights a ser exibido no Video Indexer | true |
tipo de exibição | Define o tipo de representação da interface do usuário para esse grupo de insights específico. Valor padrão: Cápsulas Tipos possíveis: Cápsula – Texto de um nível apenas CapsuleAndTags -Dois níveis de texto apenas mais serão adicionados no futuro. |
false |
resultados | Matriz de objetos que representam os insights detectados pelo modelo de IA externo | true |
results.id | ID fornecida pelo usuário do objeto de resultado, deve ser exclusiva dentro do escopo de resultados | true |
resultados.tipo | Esse campo representa o tipo de insight que foi categorizado pelo modelo de IA externo. Ele é usado para representar uma categoria de insight geral, o que significa que pode haver vários insights desse tipo identificados em um quadro específico. Exemplos de tipos de insight incluem: "basquete", "multidão aplaudindo", "camisa branca". | true |
results.subType | Esse campo representa o tipo de insight que foi categorizado pelo modelo de IA externo. Ele é usado para representar uma categoria de insight específica, o que significa que pode haver apenas um único insight desse tipo identificado em um quadro específico. Exemplos de tipos de insight incluem: "basquete #23", "John batendo palmas", "camisa branca de Dana". | false |
resultados.metaDados | Mais dados sobre o insight | false |
results.instances | Matriz que representa as janelas de tempo em que o insight foi detectado. | true |
results.instances.confidence | Defina com a pontuação de confiança retornada do modelo externo | false |
results.instances.start | Hora de início da instância no vídeo. Formato: hh.mm.ss.ff |
false |
resultados.instâncias.end | Hora de término da instância no vídeo. Formato: hh.mm.ss.ff |
false |
results.instances.adjustedStart | Usado quando exibido na interface do usuário, definido com o valor de Iniciar | false |
results.instances.adjustedEnd | Usado quando exibido na interface do usuário, definido com o valor de End | false |
Taxa de quadros
O Azure AI Video Indexer dá suporte a um FPS para o nível de vídeo Básico/Standard e quatro FPS para o nível avançado. Não há suporte para taxas de quadros mais altas. Você pode otimizar a indexação:
- Processar apenas segmentos específicos de interesse, como quadros que incluem um som, objeto ou pessoa detectados, ou
- amostra de um FPS mais baixo, por exemplo, a cada 5 segundos.
Seleção de quadro
Você pode usar os parâmetros de pular quadros e tamanho da página para seleção de tempo. A fórmula é o valor de pular quadros multiplicado pelo FPS mais o valor do tamanho da página multiplicado pelo FPS pode ser usado para determinar o intervalo de tempo.
URL: https://api.videoindexer.ai/{location}/Accounts/{accountId}/Videos/{videoId}/FramesFilePaths[?urlsLifetimeSeconds][&pageSize][&skip][&accessToken]
Parâmetros:
Nome | Descrição | Obrigatório |
---|---|---|
Identificação do vídeo | ID do vídeo | true |
urlsLifetimeSeconds | Vida útil das URLs em segundos | true |
Pagesize | Número máximo de quadros para retornar a cada chamada | false |
skip | Quadros para pular | false |
accessToken | Deve ser fornecido como parâmetro na string de consulta de URL ou no cabeçalho de autorização como token de portador. O escopo do token de acesso deve ser Conta e a permissão deve ser Leitor. | true |
Resposta: FrameFilePathsResult
Nome | Descrição | Obrigatório |
---|---|---|
resultados | Lista de FrameUriData | Falso |
PróximaPágina | Dados de paginação (skip, pageSize, isDone) | Falso |
FrameFilePathData
Nome | Descrição |
---|---|
name | Nome do arquivo de quadro |
índice de quadros | Índice do quadro |
StartTime | Hora de início do quadro no vídeo |
EndTime | Hora de término do quadro no vídeo |
filePath | URI Sas do quadro no ambiente de nuvem ou caminho de arquivo em ambientes de borda |
Dados de amostra enviados de um aplicativo personalizado no formato de esquema
"customInsights": [
{
"Name": "tattoo",
"displayName": "Tattoo’s model",
"displayType": "CapsuleAndTag",
"Results": [
{
"id": 1,
"Type": "Dragon",
"WikiDataId": "57F",
"SubType": "Leg tattoo",
"Metadata": "",
"Instances": [
{
"Confidence": 0.49,
"AdjustedStart": "0:00:32.72",
"AdjustedEnd": "0:00:42.72",
"start": "0:00:32.72",
"end": "0:00:42.72",
}
]
}
]
}...