Delen via


Gezichten redact by using Azure AI Video Indexer API

U kunt Azure AI Video Indexer gebruiken om gezichten in video te detecteren en te identificeren. Als u uw video wilt wijzigen om gezichten van specifieke personen te vervagen (redact), kunt u API gebruiken.

Een paar minuten aan beelden die meerdere gezichten bevatten, kunnen uren duren om handmatig te redacteren, maar door vooraf ingestelde instellingen in de Video Indexer-API te gebruiken, zijn slechts enkele eenvoudige stappen vereist voor het proces voor gezichtsbewerking.

In dit artikel leest u hoe u gezichten kunt redacteren met behulp van een API. Video Indexer-API bevat een vooraf ingestelde Face Redaction die schaalbare gezichtsdetectie en -redaction (wazig) in de cloud biedt. In het artikel wordt elke stap gedemonstreerd hoe u gezichten kunt redacteren met behulp van de API in detail.

In de volgende video ziet u hoe u een video kunt redacteren met behulp van de Azure AI Video Indexer-API.

Naleving, privacy en beveiliging

Als belangrijke herinnering moet u voldoen aan alle toepasselijke wetten in uw gebruik van analyses of inzichten die u hebt afgeleid met behulp van Video Indexer.

Toegang tot face-services is beperkt op basis van geschiktheids- en gebruikscriteria ter ondersteuning van de Principes van Microsoft Responsible AI. Face-service is alleen beschikbaar voor door Microsoft beheerde klanten en partners. Gebruik het intakeformulier voor gezichtsherkenning om toegang aan te vragen. Zie de pagina beperkte toegang van Face voor meer informatie.

Gezichtsredactieterminologie en -hiërarchie

Gezichtsredactie in Video Indexer is afhankelijk van de uitvoer van bestaande Video Indexer gezichtsdetectieresultaten die we bieden in onze vooraf ingestelde videostandaard en geavanceerde analyse.

Als u een video wilt redactioneel maken, moet u eerst een video uploaden naar Video Indexer en een analyse voltooien met behulp van de standaard- of geavanceerde videovoorinstellingen. U kunt dit doen met behulp van de Website of API van Azure AI Video Indexer. Vervolgens kunt u de API voor gezichtsredactie gebruiken om naar deze video te verwijzen met behulp van de videoId waarde. We maken een nieuwe video waarin de aangegeven gezichten worden bewerkt. Zowel de videoanalyse als de gezichtsredactie zijn afzonderlijke factureerbare taken. Zie onze pagina met prijzen voor meer informatie.

Typen vervaging

U kunt kiezen uit verschillende soorten waziging in gezichtsheractie. Als u een type wilt selecteren, gebruikt u een naam of een representatief nummer voor de blurringKind parameter in de aanvraagbody:

wazigKind-nummer wazigKind-naam Opmerking
0 MediumBlur Foto van de Gemiddelde vervaaging van Azure AI Video Indexer.
1 HighBlur Foto van de hoge vervaging van Azure AI Video Indexer.
2 LowBlur Foto van de Azure AI Video Indexer laag vervagen.
3 Begrenzingsvak Foto van begrenzingsvakken van Azure AI Video Indexer.
4 Zwart Foto van zwarte dozen van Azure AI Video Indexer.

U kunt het soort vervaging in de aanvraagtekst opgeven met behulp van de blurringKind parameter.

Hier volgt een voorbeeld:

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

U kunt ook een getal gebruiken dat het type waziging aangeeft dat in de voorgaande tabel wordt beschreven:

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

Filters

U kunt filters toepassen om in te stellen welke gezichts-id's worden vervaagd. U kunt de id's van de gezichten opgeven in een door komma's gescheiden matrix in de hoofdtekst van het JSON-bestand. Gebruik de scope parameter om deze gezichten uit te sluiten of op te nemen voor redaction. Door id's op te geven, kunt u alle gezichten redacteren, behalve de id's die u aangeeft of alleen die id's redact. Zie voorbeelden in de volgende secties.

Bereik uitsluiten

In het volgende voorbeeld gebruikt u het Exclude bereik om alle gezichten te redacteren, met uitzondering van gezichts-id's 1001 en 1016:

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

Bereik opnemen

In het volgende voorbeeld gebruikt u het Include bereik om alleen gezichts-id's 1001 en 1016 te redacteren:

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

Alle gezichten redacteren

Als u alle gezichten wilt redacteren, verwijdert u het bereikfilter:

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

Als u een face-id wilt ophalen, gaat u naar de geïndexeerde video en haalt u het artefactbestand op. Het artefact bevat een faces.json-bestand en een miniatuur .zip bestand met alle gezichten die in de video zijn gedetecteerd. U kunt het gezicht vergelijken met de id en bepalen welke gezichts-id's moeten worden bewerkt.

Een redaction-taak maken

Als u een redaction-taak wilt maken, kunt u de volgende API-aanroep aanroepen:

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

De volgende waarden zijn vereist:

Naam Weergegeven als Beschrijving
Accountid {accountId} De id van uw Video Indexer-account.
Location {location} De Azure-regio waar uw Video Indexer-account zich bevindt. Bijvoorbeeld westus.
AccessToken {token} Het token met rechten voor inzender voor accounts die zijn gegenereerd via de Rest API van Azure Resource Manager .
Videoid {videoId} De video-id van de bronvideo die moet worden bewerkt. U kunt de video-id ophalen met behulp van de Lijstvideo-API .
Name {name} De naam van de nieuwe, redacted video.

Hier volgt een voorbeeld van een aanvraag:

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

U kunt het token opgeven als een autorisatieheader met een sleutelwaardetype bearertoken:{token}of u kunt het als queryparameter opgeven met behulp van ?token={token}.

U moet ook een aanvraagbody toevoegen in JSON-indeling met de opties voor redaction-taken die moeten worden toegepast. Hier volgt een voorbeeld:

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

Wanneer de aanvraag is geslaagd, ontvangt u het antwoord HTTP 202 ACCEPTED.

Taakstatus bewaken

In het antwoord van de aanvraag voor het maken van de taak ontvangt u een HTTP-header Location met een URL naar de taak. U kunt hetzelfde token gebruiken om een GET-aanvraag naar deze URL te verzenden om de status van de redaction-taak te bekijken.

Hier volgt een voorbeeld-URL:

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

Hieronder volgt een voorbeeld van een antwoord:

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

Als u dezelfde URL aanroept wanneer de redaction-taak is voltooid, krijgt u in de Location koptekst een SAS-URL (Shared Access Signature) voor opslag voor de bewerkte video. Voorbeeld:

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

Deze URL wordt omgeleid naar het .mp4-bestand dat is opgeslagen in het Azure Storage-account.

Veelgestelde vragen

Vraag Antwoord
Kan ik een video uploaden en een bewerking in één bewerking uitvoeren? Nee U moet eerst een video uploaden en analyseren met behulp van de Video Indexer-API. Verwijs vervolgens naar de geïndexeerde video in uw redaction-taak.
Kan ik de Website van Azure AI Video Indexer gebruiken om een video te redacteren? Nee Op dit moment kunt u alleen de API gebruiken om een redaction-taak te maken.
Kan ik de bewerkte video afspelen met behulp van de Video Indexer-website? Ja. De bewerkte video is zichtbaar op de Video Indexer-website, net als andere geïndexeerde video's, maar bevat geen inzichten.
Hoe kan ik een bewerkte video verwijderen? U kunt de Video-API verwijderen gebruiken en de Videoid waarde voor de bewerkte video opgeven.
Moet ik gezichtsidentificatie beperken om gezichtsheractie te kunnen gebruiken? Tenzij u een politieafdeling in de Verenigde Staten vertegenwoordigt, nee. Zelfs als u wordt beveiligd, blijven we gezichtsdetectie aanbieden. We bieden geen gezichtsidentificatie als je wordt gepoort. U kunt echter alle gezichten in een video redacteren door alleen gezichtsdetectie te gebruiken.
Wordt mijn oorspronkelijke video overschreven door redaction? Nee Met de taak voor gezichtsredactie wordt een nieuw video-uitvoerbestand gemaakt.
Niet alle gezichten worden correct bewerkt. Wat kan ik doen? Redaction is afhankelijk van de eerste gezichtsdetectie en detectie-uitvoer van de analysepijplijn. Hoewel we alle gezichten de meeste tijd detecteren, zijn er omstandigheden waarin we geen gezicht kunnen detecteren. Factoren zoals gezichtshoek, het aantal frames dat het gezicht aanwezig is en de kwaliteit van de bronvideo is van invloed op de kwaliteit van gezichtsredactie. Zie Face-inzichten voor meer informatie.
Kan ik andere objecten dan gezichten redacteer? Nee Momenteel bieden we alleen gezichtsredactie. Als u andere objecten moet redacteren, kunt u feedback geven over ons product in het Azure User Voice-kanaal .
Hoe lang is een SAS-URL geldig om de bewerkte video te downloaden? Als u de bewerkte video wilt downloaden nadat de SAS-URL is verlopen, moet u de oorspronkelijke taakstatus-URL aanroepen. Het is raadzaam om deze Jobstatus URL's in een database in uw back-end te bewaren voor toekomstige naslaginformatie.

Foutcodes

In de volgende secties worden fouten beschreven die kunnen optreden wanneer u gezichtsredactie gebruikt.

Antwoord: 404 niet gevonden

Het account is niet gevonden of de video is niet gevonden.

Responsheaders

Naam Vereist Type Description
x-ms-request-id false tekenreeks Een GUID (Globally Unique Identifier) voor de aanvraag wordt toegewezen door de server voor instrumentatiedoeleinden. De server zorgt ervoor dat alle logboeken die zijn gekoppeld aan het verwerken van de aanvraag, kunnen worden gekoppeld aan de serveraanvraag-id. Een client kan deze aanvraag-id opgeven in een ondersteuningsticket, zodat ondersteuningstechnici de logboeken kunnen vinden die aan deze specifieke aanvraag zijn gekoppeld. De server zorgt ervoor dat de aanvraag-id uniek is voor elke taak.

Hoofdtekst van de reactie

Naam Vereist Type
ErrorType false ErrorType
Message false tekenreeks

Standaard-JSON

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

Antwoord: 400 Ongeldige aanvraag

Ongeldige invoer of kan de video niet opnieuw uitvoeren omdat het oorspronkelijke uploaden is mislukt. Upload de video opnieuw.

Ongeldige invoer of kan de video niet opnieuw uitvoeren omdat het oorspronkelijke uploaden is mislukt. Upload de video opnieuw.

Responsheaders

Naam Vereist Type Description
x-ms-request-id false tekenreeks Een GUID voor de aanvraag wordt toegewezen door de server voor instrumentatiedoeleinden. De server zorgt ervoor dat alle logboeken die zijn gekoppeld aan het verwerken van de aanvraag, kunnen worden gekoppeld aan de serveraanvraag-id. Een client kan deze aanvraag-id opgeven in een ondersteuningsticket, zodat ondersteuningstechnici de logboeken kunnen vinden die aan deze specifieke aanvraag zijn gekoppeld. De server zorgt ervoor dat de aanvraag-id uniek is voor elke taak.

Hoofdtekst van de reactie

Naam Vereist Type
ErrorType false ErrorType
Message false tekenreeks

Standaard-JSON

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

Antwoord: 409-conflict

De video wordt al geïndexeerd.

Responsheaders

Naam Vereist Type Description
x-ms-request-id false tekenreeks Een GUID voor de aanvraag wordt toegewezen door de server voor instrumentatiedoeleinden. De server zorgt ervoor dat alle logboeken die zijn gekoppeld aan het verwerken van de aanvraag, kunnen worden gekoppeld aan de serveraanvraag-id. Een client kan deze aanvraag-id opgeven in een ondersteuningsticket, zodat ondersteuningstechnici de logboeken kunnen vinden die aan deze specifieke aanvraag zijn gekoppeld. De server zorgt ervoor dat de aanvraag-id uniek is voor elke taak.

Hoofdtekst van de reactie

Naam Vereist Type
ErrorType false ErrorType
Message false tekenreeks

Standaard-JSON

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

Antwoord: 401 Niet geautoriseerd

Het toegangstoken is niet gemachtigd voor toegang tot het account.

Responsheaders

Naam Vereist Type Description
x-ms-request-id false tekenreeks Een GUID voor de aanvraag wordt toegewezen door de server voor instrumentatiedoeleinden. De server zorgt ervoor dat alle logboeken die zijn gekoppeld aan het verwerken van de aanvraag, kunnen worden gekoppeld aan de serveraanvraag-id. Een client kan deze aanvraag-id opgeven in een ondersteuningsticket, zodat ondersteuningstechnici de logboeken kunnen vinden die aan deze specifieke aanvraag zijn gekoppeld. De server zorgt ervoor dat de aanvraag-id uniek is voor elke taak.

Hoofdtekst van de reactie

Naam Vereist Type
ErrorType false ErrorType
Message false tekenreeks

Standaard-JSON

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

Antwoord: 500 Interne serverfout

Er is een fout opgetreden op de server.

Responsheaders

Naam Vereist Type Description
x-ms-request-id false tekenreeks Een GUID voor de aanvraag wordt toegewezen door de server voor instrumentatiedoeleinden. De server zorgt ervoor dat alle logboeken die zijn gekoppeld aan het verwerken van de aanvraag, kunnen worden gekoppeld aan de serveraanvraag-id. Een client kan deze aanvraag-id opgeven in een ondersteuningsticket, zodat ondersteuningstechnici de logboeken kunnen vinden die aan deze specifieke aanvraag zijn gekoppeld. De server zorgt ervoor dat de aanvraag-id uniek is voor elke taak.

Hoofdtekst van de reactie

Naam Vereist Type
ErrorType false ErrorType
Message false tekenreeks

Standaard-JSON

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

Antwoord: 429 Te veel aanvragen

Er zijn te veel aanvragen verzonden. Gebruik de Retry-After antwoordheader om te bepalen wanneer de volgende aanvraag moet worden verzonden.

Responsheaders

Naam Vereist Type Description
Retry-After false geheel getal Een niet-negatief decimaal geheel getal dat het aantal seconden aangeeft dat moet worden vertraagd nadat het antwoord is ontvangen.

Antwoord: time-out van 504 gateway

De server heeft niet binnen de verwachte tijd op de gateway gereageerd.

Responsheaders

Naam Vereist Type Description
x-ms-request-id false tekenreeks Een GUID voor de aanvraag wordt toegewezen door de server voor instrumentatiedoeleinden. De server zorgt ervoor dat alle logboeken die zijn gekoppeld aan het verwerken van de aanvraag, kunnen worden gekoppeld aan de serveraanvraag-id. Een client kan deze aanvraag-id opgeven in een ondersteuningsticket, zodat ondersteuningstechnici de logboeken kunnen vinden die aan deze specifieke aanvraag zijn gekoppeld. De server zorgt ervoor dat de aanvraag-id uniek is voor elke taak.

Standaard-JSON

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