Freigeben über


Redact-Gesichter mithilfe der Azure AI Video Indexer-API

Warnung

Im laufe des vergangenen Jahres kündigte Azure AI Video Indexer (VI) die Entfernung ihrer Abhängigkeit von Azure Media Services (AMS) aufgrund seiner Einstellung an. Featuresanpassungen und Änderungen wurden angekündigt, und es wurde ein Migrationshandbuch bereitgestellt.

Der Stichtag für die Migration war der 30. Juni 2024. VI hat den Update-/Migrationszeitraum verlängert, sodass Sie Ihr VI-Konto aktualisieren und sich für die AMS VI-Assetmigration bis zum 15. Juli 2024 anmelden können. Um die AMS VI-Bestandsmigration zu verwenden, müssen Sie Ihr AMS-Konto auch bis Juli verlängern. Navigieren Sie im Azure-Portal zu Ihrem AMS-Konto, und wählen Sie "Hier klicken" aus, um das Konto zu erweitern.

Wenn Sie Ihr VI-Konto nicht aktualisiert haben, können Sie jedoch nach dem 30. Juni keine neuen Videos indizieren, noch können Sie keine Videos wiedergeben, die nicht migriert wurden. Wenn Sie Ihr Konto nach dem 30. Juni aktualisieren, können Sie die Indizierung sofort fortsetzen, aber Sie können keine Videos wiedergeben, die vor der Kontoaktualisierung indiziert wurden, bis sie über die AMS VI-Migration migriert werden.

Sie können azure AI Video Indexer verwenden, um Gesichter im Video zu erkennen und zu identifizieren. Um Ihr Video so zu ändern, dass Gesichter bestimmter Personen weichzeichnen (redact) werden, können Sie die API verwenden.

Ein paar Minuten Filmmaterial, das mehrere Gesichter enthält, kann Stunden dauern, um manuell zu redagieren, aber durch Die Verwendung von Voreinstellungen in der Videoindexer-API erfordert der Gesichts redaction-Prozess nur einige einfache Schritte.

In diesem Artikel erfahren Sie, wie Sie Gesichter mithilfe einer API rotieren. Die Videoindexer-API enthält eine Face Redaction-Voreinstellung , die skalierbare Gesichtserkennung und -redaction (verschwommen) in der Cloud bietet. Der Artikel veranschaulicht jeden Schritt, wie Gesichter mithilfe der API detailliert gerotiert werden.

Das folgende Video zeigt, wie Sie ein Video mithilfe der Azure AI Video Indexer-API redigieren.

Compliance, Datenschutz und Sicherheit

Als wichtige Erinnerung müssen Sie alle anwendbaren Gesetze in Ihrer Nutzung von Analysen oder Erkenntnissen einhalten, die Sie mithilfe von VideoIndexer ableiten.

Der Gesichtsdienstzugriff ist auf der Grundlage von Berechtigungs- und Nutzungskriterien beschränkt, um die Microsoft Responsible AI-Prinzipien zu unterstützen. Der Gesichtsdienst ist nur für von Microsoft verwaltete Kunden und Partner verfügbar. Verwenden Sie das Aufnahmeformular für die Gesichtserkennung, um sich für den Zugriff zu bewerben. Weitere Informationen finden Sie auf der Seite Eingeschränkter Zugriff auf die Gesichtserkennung.

Terminologie und Hierarchie der Redaction

Gesichts redaction in Video Indexer basiert auf der Ausgabe vorhandener VideoIndexer Gesichtserkennungsergebnisse, die wir in unseren Video Standard- und Advanced Analysis-Voreinstellungen bereitstellen.

Um ein Video zu redactieren, müssen Sie zuerst ein Video in den Videoindexer hochladen und eine Analyse mithilfe der Standard- oder Advanced-Videovoreinstellungen durchführen. Dazu können Sie die Azure AI Video Indexer-Website oder API verwenden. Anschließend können Sie mithilfe des videoId Werts die Face Redaction-API verwenden, um auf dieses Video zu verweisen. Wir erstellen ein neues Video, in dem die angegebenen Gesichter redigiert sind. Sowohl die Videoanalyse als auch die Gesichtsrotaktion sind separate abrechnende Aufträge. Weitere Informationen finden Sie auf unserer Preisseite.

Verschwommene Typen

Sie können aus verschiedenen Arten von Verschwommenen in Gesichtsrotierung wählen. Verwenden Sie zum Auswählen eines Typs einen Namen oder eine repräsentative Nummer für den blurringKind Parameter im Anforderungstext:

blurringKind-Zahl verschwommenerKind-Name Beispiel
0 MediumBlur Foto des Azure AI Video Indexer Medium Weichzeichners.
1 HighBlur Foto des Azure AI Video Indexer high blur.
2 LowBlur Foto des Azure AI Video Indexer low blur.
3 BoundingBox Foto der umgebenden Felder des Azure AI Video Indexer.
4 Schwarz Foto von Azure AI Video Indexer black boxes kind.

Sie können die Art der Verschwommenkeit im Anforderungstext mithilfe des blurringKind Parameters angeben.

Ein Beispiel:

{
    "faces": {
        "blurringKind": "HighBlur"
    }
}

Oder verwenden Sie eine Zahl, die den Typ der Unscharfung darstellt, die in der vorherigen Tabelle beschrieben wird:

{
    "faces": {
        "blurringKind": 1
    }
}

Filter

Sie können Filter anwenden, um festzulegen, welche Gesichts-IDs weichzeichnen. Sie können die IDs der Gesichter in einem durch Trennzeichen getrennten Array im Textkörper der JSON-Datei angeben. Verwenden Sie den scope Parameter, um diese Gesichter für Die Redaction auszuschließen oder einzuschließen. Durch Angeben von IDs können Sie entweder alle Gesichter mit Ausnahme der IDs, die Sie angeben, oder nur diese IDs redigieren. Beispiele finden Sie in den nächsten Abschnitten.

Bereich ausschließen

Wenn Sie im folgenden Beispiel alle Gesichter mit Ausnahme von Gesichts-IDs 1001 und 1016 rotieren möchten, verwenden Sie den Exclude Bereich:

{
    "faces": {
        "blurringKind": "HighBlur",
        "filter": {
            "ids": [1001, 1016],
            "scope": "Exclude"
        }
    }
}

Bereich einschließen

Verwenden Sie Include im folgenden Beispiel den Bereich, um nur die IDs 1001 und 1016 zu rotieren:

{
    "faces": {
        "blurringKind": "HighBlur",
        "filter": {
            "ids": [1001, 1016],
            "scope": "Include"
        }
    }
}

Alle Gesichter rotieren

Um alle Gesichter zu rotieren, entfernen Sie den Bereichsfilter:

{
    "faces": {
        "blurringKind": "HighBlur",
    }
}

Um eine Gesichts-ID abzurufen, können Sie zum indizierten Video wechseln und die Artefaktdatei abrufen. Das Artefakt enthält eine faces.json Datei und eine Miniaturansicht .zip Datei mit allen Gesichtern, die im Video erkannt wurden. Sie können das Gesicht mit der ID abgleichen und entscheiden, welche Gesichts-IDs redigiert werden sollen.

Erstellen eines Redaction-Auftrags

Um einen Redaction-Auftrag zu erstellen, können Sie den folgenden API-Aufruf aufrufen:

POST https://api.videoindexer.ai/{location}/Accounts/{accountId}/Videos/{videoId}/redact[?name][&priority][&privacy][&externalId][&streamingPreset][&callbackUrl][&accessToken]

Die folgenden Werte sind erforderlich:

Name Wert Beschreibung
Accountid {accountId} Die ID Ihres Videoindexer-Kontos.
Location {location} Die Azure-Region, in der sich Ihr Videoindexer-Konto befindet. Beispiel: Westus.
AccessToken {token} Das Token, das über die Rest-API des Azure Resource Manager generiert wurde, über die Rechte von Kontomitwirkenden verfügt.
Videoid {videoId} Die Video-ID des Quellvideos, um zu redact. Sie können die Video-ID mithilfe der Listenvideo-API abrufen.
Name {name} Der Name des neuen, redacted-Videos.

Hier ist ein Beispiel für eine Anforderung:

https://api.videoindexer.ai/westeurope/Accounts/{id}/Videos/{id}/redact?priority=Low&name=testredaction&privacy=Private&streamingPreset=Default 

Sie können das Token als Autorisierungsheader angeben, der über einen Schlüsselwerttyp verfügt bearertoken:{token}, oder Sie können es als Abfrageparameter mithilfe von ?token={token}.

Außerdem müssen Sie einen Anforderungstext im JSON-Format mit den anzuwendenden Redaction-Auftragsoptionen hinzufügen. Ein Beispiel:

{
    "faces": {
        "blurringKind": "HighBlur"
    }
}

Wenn die Anforderung erfolgreich ist, erhalten Sie die Antwort HTTP 202 ACCEPTED.

Auftragsstatus überwachen

In der Antwort der Auftragserstellungsanforderung erhalten Sie einen HTTP-Header Location mit einer URL zum Auftrag. Sie können dasselbe Token verwenden, um eine GET-Anforderung an diese URL zu stellen, um den Status des Redaction-Auftrags anzuzeigen.

Hier ist eine Beispiel-URL:

https://api.videoindexer.ai/westeurope/Accounts/<id>/Jobs/<id>

Hier sehen Sie eine Beispielantwort:

{
    "creationTime": "2023-05-11T11:22:57.6114155Z",
    "lastUpdateTime": "2023-05-11T11:23:01.7993563Z",
    "progress": 20,
    "jobType": "Redaction",
    "state": "Processing"
}

Wenn Sie dieselbe URL aufrufen, wenn der Redaction-Auftrag abgeschlossen ist, erhalten Sie in der Location Kopfzeile eine SAS-URL (Storage Shared Access Signature) zum redacted Video. Zum Beispiel:

https://api.videoindexer.ai/westeurope/Accounts/<id>/Videos/<id>/SourceFile/DownloadUrl 

Diese URL leitet an die .mp4 Datei weiter, die im Azure Storage-Konto gespeichert ist.

Häufig gestellte Fragen

Frage Antwort
Kann ich ein Video hochladen und in einem Vorgang redact? Nein Sie müssen ein Video zuerst mithilfe der Videoindexer-API hochladen und analysieren. Verweisen Sie dann in Ihrem Redaction-Auftrag auf das indizierte Video.
Kann ich die Azure AI Video Indexer-Website verwenden, um ein Video zu redactieren? Nein Derzeit können Sie nur die API verwenden, um einen Redaction-Auftrag zu erstellen.
Kann ich das bearbeitete Video mithilfe der Videoindexer-Website wiedergeben? Ja. Das abgeblendete Video ist auf der Videoindexer-Website wie jedes andere indizierte Video sichtbar, enthält jedoch keine Einblicke.
Gewusst wie ein geschwenktes Video löschen? Sie können die Löschvideo-API verwenden und den Videoid Wert für das bearbeitete Video bereitstellen.
Muss ich gesichtsidentifikationsgating übergeben, um Gesichtsrotaktionen zu verwenden? Sofern Sie keine Polizeiabteilung im USA vertreten, nein. Auch wenn Sie gated sind, bieten wir weiterhin Gesichtserkennung an. Wir bieten keine Gesichtsidentifikation an, wenn Sie gated sind. Sie können jedoch alle Gesichter in einem Video rotieren, indem Sie nur die Gesichtserkennung verwenden.
Wird mein originales Video überschrieben? Nein Der Auftrag zur Gesichtsausrichtung erstellt eine neue Videoausgabedatei.
Nicht alle Gesichter sind richtig gerotet. Was kann ich tun? Redaction basiert auf der anfänglichen Gesichtserkennung und der Nachverfolgungsausgabe der Analysepipeline. Obwohl wir alle Gesichter meistens erkennen, gibt es Situationen, in denen wir kein Gesicht erkennen können. Faktoren wie Gesichtswinkel, die Anzahl der Frames, die das Gesicht vorhanden ist, und die Qualität des Quellvideos wirkt sich auf die Qualität der Gesichtsrotaktion aus. Weitere Informationen finden Sie unter Face Insights.
Kann ich andere Objekte als Gesichter rotieren? Nein Derzeit bieten wir nur Eine redaction an. Wenn Sie andere Objekte redigieren müssen, können Sie Feedback zu unserem Produkt im Azure User Voice-Kanal geben.
Wie lange ist eine SAS-URL gültig, um das bearbeitete Video herunterzuladen? Um das bearbeitete Video herunterzuladen, nachdem die SAS-URL abgelaufen ist, müssen Sie die URL für den anfänglichen Auftragsstatus aufrufen. Es ist am besten, diese Jobstatus URLs in einer Datenbank in Ihrem Back-End für zukünftige Verweise zu speichern.

Fehlercodes

In den folgenden Abschnitten werden Fehler beschrieben, die auftreten können, wenn Sie gesichtsrote Aktionen verwenden.

Antwort: 404 nicht gefunden

Das Konto wurde nicht gefunden, oder das Video wurde nicht gefunden.

Antwortheader

Name Erforderlich Type Beschreibung
x-ms-request-id false Zeichenfolge Eine GUID (Globally Unique Identifier) für die Anforderung wird vom Server zu Instrumentierungszwecken zugewiesen. Der Server stellt sicher, dass alle Protokolle, die der Verarbeitung der Anforderung zugeordnet sind, mit der Serveranforderungs-ID verknüpft werden können. Ein Client kann diese Anforderungs-ID in einem Supportticket bereitstellen, sodass Supporttechniker die Protokolle finden können, die mit dieser spezifischen Anforderung verknüpft sind. Der Server stellt sicher, dass die Anforderungs-ID für jeden Auftrag eindeutig ist.

Antworttext

Name Erforderlich type
ErrorType false ErrorType
Message false Zeichenfolge

Standard-JSON

{
    "ErrorType": "GENERAL",
    "Message": "string"
}

Antwort: 400 Ungültige Anforderung

Ungültige Eingaben oder können das Video nicht redigieren, da der ursprüngliche Upload fehlgeschlagen ist. Bitte laden Sie das Video erneut hoch.

Ungültige Eingabe oder kann das Video nicht redigieren, da der ursprüngliche Upload fehlgeschlagen ist. Laden Sie das Video erneut hoch.

Antwortheader

Name Erforderlich Type Beschreibung
x-ms-request-id false Zeichenfolge Eine GUID für die Anforderung wird vom Server für Instrumentierungszwecke zugewiesen. Der Server stellt sicher, dass alle Protokolle, die der Verarbeitung der Anforderung zugeordnet sind, mit der Serveranforderungs-ID verknüpft werden können. Ein Client kann diese Anforderungs-ID in einem Supportticket bereitstellen, sodass Supporttechniker die Protokolle finden können, die mit dieser spezifischen Anforderung verknüpft sind. Der Server stellt sicher, dass die Anforderungs-ID für jeden Auftrag eindeutig ist.

Antworttext

Name Erforderlich type
ErrorType false ErrorType
Message false Zeichenfolge

Standard-JSON

{
    "ErrorType": "GENERAL",
    "Message": "string"
}

Antwort: 409 Konflikt

Das Video wird bereits indiziert.

Antwortheader

Name Erforderlich Type Beschreibung
x-ms-request-id false Zeichenfolge Eine GUID für die Anforderung wird vom Server für Instrumentierungszwecke zugewiesen. Der Server stellt sicher, dass alle Protokolle, die der Verarbeitung der Anforderung zugeordnet sind, mit der Serveranforderungs-ID verknüpft werden können. Ein Client kann diese Anforderungs-ID in einem Supportticket bereitstellen, sodass Supporttechniker die Protokolle finden können, die mit dieser spezifischen Anforderung verknüpft sind. Der Server stellt sicher, dass die Anforderungs-ID für jeden Auftrag eindeutig ist.

Antworttext

Name Erforderlich type
ErrorType false ErrorType
Message false Zeichenfolge

Standard-JSON

{
    "ErrorType": "GENERAL",
    "Message": "string"
}

Antwort: 401 Nicht autorisiert

Das Zugriffstoken ist nicht für den Zugriff auf das Konto autorisiert.

Antwortheader

Name Erforderlich Type Beschreibung
x-ms-request-id false Zeichenfolge Eine GUID für die Anforderung wird vom Server für Instrumentierungszwecke zugewiesen. Der Server stellt sicher, dass alle Protokolle, die der Verarbeitung der Anforderung zugeordnet sind, mit der Serveranforderungs-ID verknüpft werden können. Ein Client kann diese Anforderungs-ID in einem Supportticket bereitstellen, sodass Supporttechniker die Protokolle finden können, die mit dieser spezifischen Anforderung verknüpft sind. Der Server stellt sicher, dass die Anforderungs-ID für jeden Auftrag eindeutig ist.

Antworttext

Name Erforderlich type
ErrorType false ErrorType
Message false Zeichenfolge

Standard-JSON

{
    "ErrorType": "USER_NOT_ALLOWED",
    "Message": "Access token is not authorized to access account 'SampleAccountId'."
}

Antwort: 500 Interner Serverfehler

Fehler auf dem Server.

Antwortheader

Name Erforderlich Type Beschreibung
x-ms-request-id false Zeichenfolge Eine GUID für die Anforderung wird vom Server für Instrumentierungszwecke zugewiesen. Der Server stellt sicher, dass alle Protokolle, die der Verarbeitung der Anforderung zugeordnet sind, mit der Serveranforderungs-ID verknüpft werden können. Ein Client kann diese Anforderungs-ID in einem Supportticket bereitstellen, sodass Supporttechniker die Protokolle finden können, die mit dieser spezifischen Anforderung verknüpft sind. Der Server stellt sicher, dass die Anforderungs-ID für jeden Auftrag eindeutig ist.

Antworttext

Name Erforderlich type
ErrorType false ErrorType
Message false Zeichenfolge

Standard-JSON

{
    "ErrorType": "GENERAL",
    "Message": "There was an error."
}

Antwort: 429 Zu viele Anforderungen

Zu viele Anforderungen wurden gesendet. Verwenden Sie den Retry-After Antwortheader, um zu entscheiden, wann die nächste Anforderung gesendet werden soll.

Antwortheader

Name Erforderlich Type Beschreibung
Retry-After false integer Eine nicht negative Dezimalzahl, die die Anzahl der Sekunden angibt, die nach dem Empfang der Antwort verzögert werden sollen.

Antwort: 504 GatewayTimeout

Der Server reagierte nicht innerhalb der erwarteten Zeit auf das Gateway.

Antwortheader

Name Erforderlich Type Beschreibung
x-ms-request-id false Zeichenfolge Eine GUID für die Anforderung wird vom Server für Instrumentierungszwecke zugewiesen. Der Server stellt sicher, dass alle Protokolle, die der Verarbeitung der Anforderung zugeordnet sind, mit der Serveranforderungs-ID verknüpft werden können. Ein Client kann diese Anforderungs-ID in einem Supportticket bereitstellen, sodass Supporttechniker die Protokolle finden können, die mit dieser spezifischen Anforderung verknüpft sind. Der Server stellt sicher, dass die Anforderungs-ID für jeden Auftrag eindeutig ist.

Standard-JSON

{
    "ErrorType": "SERVER_TIMEOUT",
    "Message": "Server did not respond to gateway within expected time"
}