Azure AI Video Indexer Bring Your Own (BYO) AI Model Overview
Dieser Artikel enthält eine Übersicht über azure AI Video Indexer, die Ihr eigenes KI-Modell mitbringen.
Einführung
Sie können Erkenntnisse aus anderen Quellen, einschließlich Drittanbieter-, Klassifizierungs- und Erkennungsmodellen, kombinieren, um eine detaillierte Analyse Ihrer Mediendaten zu erstellen. Sie können eines oder mehrere von Microsoft angebotene Modelle, ein externes benutzerdefiniertes Modell oder ein angepasstes Person-, Marken-, Sprach- oder Sprachmodell verwenden, das von Azure Video Indexer angeboten wird.
Das Feature ist auch für VI verfügbar, das von Arc aktiviert ist.
HAFTUNGSAUSSCHLUSS: Der Verhaltenskodex von Microsoft für Azure OpenAI-Dienst gilt für Ihre Verwendung des Features "Eigenes Modell bringen", das das Recht von Microsoft umfasst, Ihren Zugriff und die Nutzung dieses Features für Nichtkompatibilität einzustellen.
Preise
Mit dem VideoIndexer BYO-Modell können Benutzer benutzerdefinierte Einblicke zu Video-Insight-Objekten hinzufügen, ohne dass zusätzliche Kosten entstehen, die über die aufgeführten Kosten des Indizierungsprozesses hinausgehen. Alle Kosten im Zusammenhang mit der externen Umgebung und dem Modell sollten jedoch nicht als Teil des Abrechnungspreises von Video Indexer betrachtet werden. Es wird dringend empfohlen, unseren Abschnitt "Best Practices" zu überprüfen, um die externe Logik zu optimieren und Kosten zu senken.
Allgemeiner Workflow
- Video wird hochgeladen und mit Azure AI Video Indexer indiziert.
- Nach Abschluss des Indizierungsprozesses wird ein Ereignis erstellt.
- Ihr benutzerdefinierter Code lauscht auf das Ereignis und startet den Video-Nachbearbeitungsprozess.
- Abrufen von Erkenntnissen, die von VideoIndexer extrahiert wurden.
- Abrufen des Keyframes für einen Videoabschnitt.
- Senden Sie den Keyframe an das benutzerdefinierte KI-Modell.
- Patchen Sie die benutzerdefinierten Einblicke wieder auf den Videoindexer.
Voraussetzungen
Bevor Sie mit der Verwendung des BYO-Modellfeatures mit azure AI Video Indexer beginnen können, müssen Sie:
- Trainieren oder bringen Sie ein externes KI-Modell, das Videoressourcen empfängt und einen Einblick zurückgibt.
- Erstellen Sie benutzerdefinierten Code, der:
- Lauscht auf Event Hubss-Ereignisse.
- Extrahiert die
video id
Ereignisse. - Ruft die relevanten Ressourcen durch Aufrufen von VI-APIs ab. Fordern Sie in diesem Szenario "Videoindex abrufen" und "Frames-SAS-URLs abrufen" an.
- Sendet die Ressourcen an das externe KI-Modell.
- Erstellt ein JSON-Objekt basierend auf den Erkenntnissen, die aus dem benutzerdefinierten KI-Modell abgerufen wurden.
- Fordert Patchupdate-Videoindex an.
Schema
Die Werte zum Auffüllen der benutzerdefinierten Daten sind wie folgt:
Name | Beschreibung | Erforderlich |
---|---|---|
name | Name des externen KI-Modells | true |
displayName | Insight-Gruppenname, der im Videoindexer angezeigt werden soll | true |
displayType | Definiert den Typ der UI-Darstellung für diese bestimmte Einblicksgruppe. Standardwert: Kapseln Mögliche Typen: Kapsel – Nur Text mit einer Ebene CapsuleAndTags -Zwei Ebenen Text wird in Zukunft nur noch mehr hinzugefügt. |
false |
Ergebnisse | Array von Objekten, die die vom externen KI-Modell erkannten Erkenntnisse darstellen | true |
results.id | Die vom Benutzer bereitgestellte ID des Ergebnisobjekts sollte innerhalb des Ergebnisbereichs eindeutig sein. | true |
results.type | Dieses Feld stellt den Typ des Einblicks dar, der vom externen KI-Modell kategorisiert wurde. Es wird verwendet, um eine allgemeine Erkenntniskategorie darzustellen, was bedeutet, dass mehrere Einblicke dieses Typs in einem bestimmten Frame identifiziert werden können. Beispiele für Erkenntnistypen sind: "Basketball", "Crowd Clapping", "white shirt". | true |
results.subType | Dieses Feld stellt den Typ des Einblicks dar, der vom externen KI-Modell kategorisiert wurde. Es wird verwendet, um eine bestimmte Erkenntniskategorie darzustellen, was bedeutet, dass nur ein einzelner Einblick dieses Typs in einem bestimmten Frame identifiziert werden konnte. Beispiele für Einblickstypen sind: "Basketball #23", "John clapping", "Dana es white shirt". | false |
results.metaData | Weitere Daten zu den Erkenntnissen | false |
results.instances | Array, das die Zeitfenster darstellt, in denen der Einblick erkannt wurde. | true |
results.instances.confidence | Festgelegt mit dem Konfidenzergebnis, das vom externen Modell zurückgegeben wird | false |
results.instances.start | Startzeit der Instanz im Video. Format: hh.mm.ss.ff |
false |
results.instances.end | Endzeit der Instanz im Video. Format: hh.mm.ss.ff |
false |
results.instances.adjustedStart | Wird verwendet, wenn sie in der Benutzeroberfläche angezeigt wird, legen Sie den Wert von "Start" fest. | false |
results.instances.adjustedEnd | Wird verwendet, wenn sie in der Benutzeroberfläche angezeigt wird, legen Sie den Wert von "End" fest. | false |
Framerate
Azure AI Video Indexer unterstützt einen FPS für die Standard-Videoebene und vier FPS für die erweiterte Ebene. Höhere Bildfrequenzen werden nicht unterstützt. Sie können die Indizierung optimieren, indem Sie:
- Verarbeitung nur bestimmter Segmente, die von Interesse sind, z. B. Frames, die einen erkannten Sound, ein Objekt oder eine Person enthalten, oder
- Beispiel für einen niedrigeren FPS, z. B. alle 5 Sekunden.
Rahmenauswahl
Sie können die Parameter "Frames überspringen" und "Seitengröße" für die Zeitauswahl verwenden. Bei der Formel handelt es sich um den Wert für übersprungene Frames, der mit dem FPS multipliziert wird, und dem Seitengrößeswert, der mit dem FPS multipliziert wird, kann verwendet werden, um den Zeitraum zu bestimmen.
URL: https://api.videoindexer.ai/{location}/Accounts/{accountId}/Videos/{videoId}/FramesFilePaths[?urlsLifetimeSeconds][&pageSize][&skip][&accessToken]
Parameter:
Name | Beschreibung | Erforderlich |
---|---|---|
videoId | ID des Videos | true |
urlsLifetimeSeconds | Lebensdauer der URLs in Sekunden | true |
Pagesize | Maximale Anzahl von Frames, um jeden Anruf zurückzugeben | false |
skip | Zu überspringende Frames | false |
accessToken | Sollte als Parameter in der URL-Abfragezeichenfolge oder im Autorisierungsheader als Bearer-Token angegeben werden. Der Zugriffstokenbereich sollte "Konto" sein und die Berechtigung "Reader" sein. | true |
Antwort: FrameFilePathsResult
Name | Beschreibung | Erforderlich |
---|---|---|
Ergebnisse | Liste der FrameUriData | False |
NextPage | Auslagerungsdaten (überspringen, pageSize, isDone) | False |
FrameFilePathData
Name | Beschreibung |
---|---|
name | Name der Framedatei |
frameIndex | Index des Frames |
StartTime | Startzeit des Frames im Video |
EndTime | Endzeit des Frames im Video |
filePath | Sas-URI des Frames in der Cloudumgebung oder dateipfad in Edgeumgebungen |
Beispieldaten, die von einer benutzerdefinierten Anwendung im Schemaformat gesendet werden
"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",
}
]
}
]
}...