Vue d’ensemble d’Azure AI Video Indexer Bring Your Own (BYO) AI Model
Cet article est une vue d’ensemble d’Azure AI Video Indexer qui apporte votre propre modèle IA.
Introduction
Vous pouvez combiner des insights provenant d’autres sources, notamment des modèles tiers, de classification et de détection, pour produire une analyse détaillée de vos données multimédias. Vous pouvez utiliser un ou plusieurs modèles proposés par Microsoft, un modèle personnalisé externe ou une personne personnalisée, une marque, une reconnaissance vocale ou un modèle de langage proposé par Azure Video Indexer.
La fonctionnalité est également disponible pour VI activée par Arc.
AVERTISSEMENT : Le code de conduite de Microsoft pour Azure OpenAI Service s’applique à votre utilisation de la fonctionnalité Bring Your Own Model, qui inclut le droit de Microsoft d’interrompre votre accès et l’utilisation de cette fonctionnalité pour une non-conformité.
Tarification
Avec le modèle BYO Video Indexer, les utilisateurs peuvent ajouter des insights personnalisés aux objets d’insight vidéo sans entraîner de coûts supplémentaires au-delà du coût répertorié du processus d’indexation. Toutefois, les coûts liés à l’environnement externe et au modèle ne doivent pas être considérés comme faisant partie du prix de facturation de Video Indexer. Nous vous recommandons vivement de consulter notre section bonnes pratiques pour optimiser la logique externe et réduire les coûts.
Workflow général
- La vidéo est chargée et indexée avec Azure AI Video Indexer.
- Une fois le processus d’indexation terminé, un événement est créé.
- Votre code personnalisé écoute l’événement et démarre le processus de post-traitement vidéo.
- Obtenez des insights extraits par Video Indexer.
- Obtenir une image clé pour une section vidéo.
- Envoyez l’image clé au modèle IA personnalisé.
- Corrigez les insights personnalisés sur Video Indexer.
Prérequis
Avant de commencer à utiliser la fonctionnalité de modèle BYO avec Azure AI Video Indexer, vous devez :
- Entraînez ou apportez un modèle IA externe qui reçoit des ressources vidéo et retournez un insight.
- Créez du code personnalisé qui :
- Écoute les événements Event Hubss.
- Extrait les
video id
événements. - Récupère les ressources pertinentes en appelant des API VI. Dans ce scénario, demandez Obtenir l’index vidéo et obtenir des URL SAP d’images.
- Envoie les ressources au modèle IA externe.
- Crée un objet JSON basé sur les insights récupérés à partir du modèle IA personnalisé.
- Demandes d’index vidéo de mise à jour corrective.
schéma
Les valeurs de remplissage des données personnalisées sont les suivantes :
Nom | Description | Obligatoire |
---|---|---|
nom | Nom du modèle IA externe | true |
displayName | Nom du groupe Insight à afficher dans Video Indexer | true |
displayType | Définit le type de représentation de l’interface utilisateur pour ce groupe d’insights spécifique. Valeur par défaut : Capsules Types possibles : Capsule – Un seul texte de niveau CapsuleAndTags -Deux niveaux de texte seulement seront ajoutés à l’avenir. |
false |
results | Tableau d’objets qui représentent les insights détectés par le modèle IA externe | true |
results.id | L’ID fourni par l’utilisateur de l’objet de résultat doit être unique dans l’étendue des résultats | true |
results.type | Ce champ représente le type d’insight qui a été classé par le modèle IA externe. Il est utilisé pour représenter une catégorie d’insight général, ce qui signifie qu’il peut y avoir plusieurs insights de ce type identifiés dans une trame spécifique. Voici quelques exemples de types d’insights : « basket », « clapping de foule », « chemise blanche ». | true |
results.subType | Ce champ représente le type d’insight qui a été classé par le modèle IA externe. Il est utilisé pour représenter une catégorie d’insight spécifique, ce qui signifie qu’il n’y a qu’un seul insight de ce type identifié dans une trame spécifique. Voici quelques exemples de types d’insights : « basket #23 », « John clapping », « chemise blanche de Dana ». | false |
results.metaData | Plus de données sur l’insight | false |
results.instances | Tableau qui représente les fenêtres de temps dans laquelle l’insight a été détecté. | true |
results.instances.confidence | Définir avec le score de confiance retourné par le modèle externe | false |
results.instances.start | Heure de début de l’instance dans la vidéo. Format : hh.mm.ss.ff |
false |
results.instances.end | Heure de fin de l’instance dans la vidéo. Format : hh.mm.ss.ff |
false |
results.instances.adjustedStart | Utilisé lors de l’affichage dans l’interface utilisateur, défini avec la valeur à partir de Start | false |
results.instances.adjustedEnd | Utilisé lors de l’affichage dans l’interface utilisateur, défini avec la valeur de End | false |
Framerate
Azure AI Video Indexer prend en charge un FPS pour le niveau vidéo De base/Standard et quatre FPS pour le niveau avancé. Les taux d’images plus élevés ne sont pas pris en charge. Vous pouvez optimiser l’indexation en :
- Traitement uniquement de segments spécifiques qui sont intéressants, tels que des images qui incluent un son, un objet ou une personne détectés, ou
- échantillonner un FPS inférieur, par exemple toutes les 5 secondes.
Sélection d’images
Vous pouvez utiliser les paramètres ignorer les cadres et la taille de page pour la sélection du temps. La formule est la valeur ignorer les images multipliée par le FPS et la valeur de taille de page multipliée par le FPS peut être utilisée pour déterminer l’intervalle de temps.
URL : https://api.videoindexer.ai/{location}/Accounts/{accountId}/Videos/{videoId}/FramesFilePaths[?urlsLifetimeSeconds][&pageSize][&skip][&accessToken]
Paramètres :
Nom | Description | Obligatoire |
---|---|---|
videoId | ID de la vidéo | true |
urlsLifetimeSeconds | durée de vie des URL en secondes | true |
Pagesize | Nombre maximal d’images à retourner chaque appel | false |
skip | Trames à ignorer | false |
accessToken | Doit être donné comme paramètre dans la chaîne de requête d’URL ou dans l’en-tête d’autorisation en tant que jeton du porteur. L’étendue du jeton d’accès doit être Compte et autorisation doit être Lecteur. | true |
Réponse: FrameFilePathsResult
Nom | Description | Obligatoire |
---|---|---|
results | Liste de FrameUriData | False |
NextPage | Pagination des données (skip, pageSize, isDone) | False |
FrameFilePathData
Nom | Description |
---|---|
nom | Nom du fichier frame |
frameIndex | Index du frame |
StartTime | Heure de début de l’image dans la vidéo |
EndTime | Heure de fin de l’image dans la vidéo |
filePath | URI sas de l’image dans l’environnement cloud ou chemin d’accès de fichier dans les environnements de périphérie |
Exemples de données envoyées à partir d’une application personnalisée au format de schéma
"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",
}
]
}
]
}...