Visão geral do Azure AI Video Indexer Bring Your Own (BYO) AI Model
Este artigo é uma visão geral do Azure AI Video Indexer traz seu próprio modelo de IA.
Introdução
Você pode combinar informações de outras fontes, incluindo modelos de classificação e deteção de terceiros, para produzir uma análise detalhada de seus dados de mídia. Você pode usar um ou mais modelos oferecidos pela Microsoft, um modelo personalizado externo ou um modelo personalizado de Pessoa, Marca, Fala ou Linguagem oferecido pelo Indexador de Vídeo do Azure.
O recurso também está disponível para VI habilitado pela Arc.
AVISO LEGAL: O Código de Conduta da Microsoft para o Serviço OpenAI do Azure aplica-se ao seu uso do recurso Bring Your Own Model, que inclui o direito da Microsoft de interromper 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 faturamento do Video Indexer. Recomendamos vivamente que reveja a nossa secção de melhores práticas 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 ouve o evento e inicia o processo de pós-processamento de vídeo.
- Obtenha informações extraídas pelo Video Indexer.
- Obter quadro-chave para uma seção de vídeo.
- Envie o quadro-chave para o modelo de IA personalizado.
- Corrija as informações personalizadas 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 devolva uma perceção.
- Crie um código personalizado que:
- Escuta eventos de Hubss de Eventos.
- Extrai o
video id
dos eventos. - Recupera os ativos relevantes chamando VI APIs. Nesse cenário, solicite Obter índice de vídeo e Obter quadros SAS URLs.
- Envia os ativos para o modelo de IA externo.
- Cria um objeto JSON com base nos insights recuperados do modelo de IA personalizado.
- Solicita Patch Update Video Index.
Esquema
Os valores para preencher os dados personalizados são os seguintes:
Nome | Descrição | Obrigatório |
---|---|---|
Designação | Nome do modelo de IA externo | verdadeiro |
displayName | Nome do grupo Insight a ser exibido no Video Indexer | verdadeiro |
displayType | 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 – Apenas texto de um nível CapsuleAndTags -Dois níveis de texto apenas mais será adicionado no futuro. |
false |
Resultados | Matriz de objetos que representam os insights detetados pelo modelo de IA externo | verdadeiro |
results.id | ID fornecido pelo usuário do objeto de resultado, deve ser exclusivo dentro do escopo de resultados | verdadeiro |
resultados.tipo | Este 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", "palmas da multidão", "camisa branca". | verdadeiro |
results.subType | Este 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 uma única perceção desse tipo identificada em um quadro específico. Exemplos de tipos de insight incluem: "basquete #23", "John batendo palmas", "camisa branca de Dana". | false |
results.metaData | Mais dados sobre o insight | false |
resultados.instâncias | Matriz que representa as janelas de tempo em que o insight foi detetado. | verdadeiro |
resultados.instâncias.confiança | Definido com a pontuação de confiança retornada do modelo externo | false |
results.instances.start | Hora de início da ocorrência no vídeo. Formato: hh.mm.ss.ff |
false |
results.instances.end | Hora de término da ocorrê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 fotogramas
O Azure AI Video Indexer suporta 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 ao:
- Processar apenas segmentos específicos que são de interesse, como quadros que incluem um som, objeto ou pessoa detetados, ou
- amostra de um FPS mais baixo, por exemplo, a cada 5 segundos.
Seleção de quadros
Você pode usar os parâmetros de pular quadros e tamanho de 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.
Endereço URL: https://api.videoindexer.ai/{location}/Accounts/{accountId}/Videos/{videoId}/FramesFilePaths[?urlsLifetimeSeconds][&pageSize][&skip][&accessToken]
Parâmetros:
Nome | Descrição | Obrigatório |
---|---|---|
Identificação de vídeo | ID do vídeo | verdadeiro |
urlsLifetimeSeconds | Tempo de vida dos URLs em segundos | verdadeiro |
pageSize | Número máximo de quadros para retornar cada chamada | false |
pular | Quadros a serem ignorados | false |
accessToken | Deve ser fornecido como parâmetro na cadeia de caracteres 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. | verdadeiro |
Resposta: FrameFilePathsResult
Nome | Descrição | Obrigatório |
---|---|---|
Resultados | Lista de FrameUriData | False |
Próxima Página | Dados de paginação (skip, pageSize, isDone) | False |
FrameFilePathData
Nome | Descrição |
---|---|
Designação | Nome do arquivo de quadro |
frameIndex | Índice do quadro |
Horário de Início | Hora de início do quadro no vídeo |
Tempo de Fim | 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 exemplo enviados de aplicativo personalizado em 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",
}
]
}
]
}...