Redact faces by using Azure AI Video Indexer API
K detekci a identifikaci tváří ve videu můžete použít Azure AI Video Indexer. Pokud chcete video upravit tak, aby rozostřily (redact) tváře konkrétních jednotlivců, můžete použít rozhraní API.
Několik minut záběrů, které obsahují více tváří, může trvat několik hodin, než se ručně zpracují, ale použití přednastavení v rozhraní API Video Indexeru vyžaduje proces redakce tváře jen několik jednoduchých kroků.
V tomto článku se dozvíte, jak redigovat tváře pomocí rozhraní API. Rozhraní API Video Indexeru obsahuje přednastavení face Redaction , která nabízí škálovatelné rozpoznávání tváře a redakci (rozostření) v cloudu. Tento článek ukazuje jednotlivé kroky, jak podrobně vyřadit tváře pomocí rozhraní API.
Následující video ukazuje, jak video redigovat pomocí rozhraní API služby Azure AI Video Indexer.
Dodržování předpisů, ochrana osobních údajů a zabezpečení
Jako důležité připomenutí musíte dodržovat všechny platné zákony při používání analýz nebo přehledů, které odvozujete pomocí Video Indexeru.
Přístup ke službě Rozpoznávání tváře je omezený na základě kritérií způsobilosti a používání, která podporují zásady zodpovědné umělé inteligence Microsoftu. Služba Rozpoznávání tváře je dostupná jenom pro zákazníky a partnery spravované Microsoftem. Pro přístup použijte formulář pro příjem rozpoznávání tváře. Další informace najdete na stránce s omezeným přístupem k tváři.
Terminologie a hierarchie redakce tváří
Reakce tváří ve Video Indexeru závisí na výstupu existujících výsledků detekce tváří Video Indexeru, které poskytujeme v předvolbách Video Standard a Advanced Analysis.
Pokud chcete video redigovat, musíte nejprve nahrát video do Video Indexeru a dokončit analýzu pomocí přednastavení standardního nebo rozšířeného videa. Můžete to provést pomocí webu nebo rozhraní API služby Azure AI Video Indexer. Pomocí rozhraní API pro redakci tváře pak můžete na toto video odkazovat pomocí videoId
hodnoty. Vytvoříme nové video, ve kterém jsou označené tváře redakčně upraveny. Analýza videa i redakce tváří jsou samostatné fakturovatelné úlohy. Další informace najdete na naší stránce s cenami.
Typy rozostření
Můžete si vybrat z různých typů rozmazaní v redakci obličeje. Pokud chcete vybrat typ, použijte pro parametr v textu požadavku název nebo reprezentativní číslo blurringKind
:
rozmazané ČísloKindu | rozmazaný NázevKindu | Příklad |
---|---|---|
0 | MediumBlur | |
0 | HighBlur | |
2 | LowBlur | |
3 | Ohraničujícíbox | |
4 | Černá |
Pomocí parametru blurringKind
můžete určit druh rozmazaní v textu požadavku.
Tady je příklad:
{
"faces": {
"blurringKind": "HighBlur"
}
}
Nebo použijte číslo, které představuje typ rozmazaní popsaného v předchozí tabulce:
{
"faces": {
"blurringKind": 1
}
}
Filtry
Filtry můžete použít k nastavení id tváře, která se mají rozostřit. ID tváří můžete zadat v poli odděleném čárkami v těle souboru JSON. Pomocí parametru scope
vyloučíte nebo zahrnete tyto tváře k redakci. Zadáním ID můžete buď redactovat všechny tváře s výjimkou ID, která označujete, nebo redact pouze těchto ID. Příklady najdete v dalších částech.
Vyloučit obor
V následujícím příkladu použijte obor k redakci všech tváří kromě ID tváří 1001 a 1016 Exclude
:
{
"faces": {
"blurringKind": "HighBlur",
"filter": {
"ids": [1001, 1016],
"scope": "Exclude"
}
}
}
Zahrnout obor
Pokud chcete v následujícím příkladu redigovat pouze ID tváří 1001 a 1016, použijte Include
obor:
{
"faces": {
"blurringKind": "HighBlur",
"filter": {
"ids": [1001, 1016],
"scope": "Include"
}
}
}
Redact all faces
Pokud chcete všechny tváře znovu upravit, odeberte filtr oboru:
{
"faces": {
"blurringKind": "HighBlur",
}
}
Pokud chcete načíst ID tváře, můžete přejít na indexované video a načíst soubor artefaktů. Artefakt obsahuje soubor faces.json a miniaturu .zip souboru, který obsahuje všechny tváře zjištěné ve videu. Můžete se shodovat s ID tváře a rozhodnout, která ID tváře se mají znovu provést.
Vytvoření úlohy redakce
Pokud chcete vytvořit úlohu redakce, můžete vyvolat následující volání rozhraní API:
POST https://api.videoindexer.ai/{location}/Accounts/{accountId}/Videos/{videoId}/redact[?name][&priority][&privacy][&externalId][&streamingPreset][&callbackUrl][&accessToken]
Jsou vyžadovány následující hodnoty:
Jméno | Hodnota | Popis |
---|---|---|
Accountid |
{accountId} |
ID vašeho účtu Video Indexeru. |
Location |
{location} |
Oblast Azure, ve které se nachází váš účet Video Indexeru. Například westus. |
AccessToken |
{token} |
Token, který má práva přispěvatele účtu vygenerovaná prostřednictvím rozhraní REST API Azure Resource Manageru. |
Videoid |
{videoId} |
ID videa zdrojového videa, které se má znovu provést. ID videa můžete načíst pomocí rozhraní API seznamu videí . |
Name |
{name} |
Název nového, redaktovaného videa. |
Tady je příklad požadavku:
https://api.videoindexer.ai/westeurope/Accounts/{id}/Videos/{id}/redact?priority=Low&name=testredaction&privacy=Private&streamingPreset=Default
Token můžete zadat jako autorizační hlavičku, která má typ bearertoken:{token}
hodnoty klíče , nebo ho můžete zadat jako parametr dotazu pomocí ?token={token}
.
Musíte také přidat text požadavku ve formátu JSON s možnostmi úlohy redaction, které se mají použít. Tady je příklad:
{
"faces": {
"blurringKind": "HighBlur"
}
}
Po úspěšném dokončení požadavku obdržíte odpověď HTTP 202 ACCEPTED
.
Monitorování stavu úlohy
V odpovědi požadavku na vytvoření úlohy obdržíte hlavičku Location
HTTP, která má adresu URL úlohy. Stejný token můžete použít k vytvoření požadavku GET na tuto adresu URL, abyste viděli stav úlohy redakce.
Tady je příklad adresy URL:
https://api.videoindexer.ai/westeurope/Accounts/<id>/Jobs/<id>
Zde je příklad odpovědi:
{
"creationTime": "2023-05-11T11:22:57.6114155Z",
"lastUpdateTime": "2023-05-11T11:23:01.7993563Z",
"progress": 20,
"jobType": "Redaction",
"state": "Processing"
}
Pokud při dokončení úlohy redakce zavoláte stejnou adresu URL, v Location
hlavičce získáte adresu URL sdíleného přístupového podpisu úložiště (SAS) k redacted videu. Příklad:
https://api.videoindexer.ai/westeurope/Accounts/<id>/Videos/<id>/SourceFile/DownloadUrl
Tato adresa URL se přesměruje na soubor .mp4, který je uložený v účtu azure Storage.
Nejčastější dotazy
Otázka | Odpověď |
---|---|
Můžu nahrát video a redakci v jedné operaci? | Ne. Nejprve je potřeba nahrát a analyzovat video pomocí rozhraní API Video Indexeru. Pak v úloze redakce odkazujte na indexované video. |
Můžu k redakci videa použít web Azure AI Video Indexer? | Ne. V současné době můžete k vytvoření úlohy redakce použít pouze rozhraní API. |
Můžu přehrát redakčně upravená videa pomocí webu Video Indexer? | Ano. Redacted video je viditelné na webu Video Indexer jako jakékoli jiné indexované video, ale neobsahuje žádné přehledy. |
Návody odstranit upravená videa? | Můžete použít rozhraní API pro odstranění videa a zadat Videoid hodnotu pro redactované video. |
Musím předat identifikaci obličeje, aby bylo možné použít redakci obličeje? | Pokud nepředstavíte policejní oddělení v USA, ne. I když jste v bráně, budeme dál nabízet detekci tváří. Pokud jste v bráně, nenabízíme identifikaci obličeje. Všechny tváře ve videu ale můžete redigovat pouze pomocí detekce tváří. |
Přepíše mi původní video redakce? | Ne. Úloha redaction tváře vytvoří nový výstupní soubor videa. |
Ne všechny tváře jsou správně upraveny. Co mám dělat? | Redaction spoléhá na počáteční detekci tváří a výstup detekce kanálu analýzy. Přestože většinu času rozpoznáme všechny tváře, existují okolnosti, ve kterých nemůžeme rozpoznat tvář. Faktory, jako je úhel tváře, počet snímků, které tvář obsahuje, a kvalita zdrojového videa ovlivňuje kvalitu redakce tváře. Další informace najdete v tématu Přehledy tváře. |
Můžu objekty, které jsou jiné než tváře, redigovat? | Ne. V současné době nabízíme pouze redakci tváře. Pokud potřebujete redigovat další objekty, můžete nám poskytnout zpětnou vazbu k našemu produktu v kanálu Azure User Voice . |
Jak dlouho je adresa URL SAS platná pro stažení redactovaného videa? | Pokud chcete po vypršení platnosti adresy URL SAS stáhnout redacted video, musíte zavolat počáteční adresu URL stavu úlohy. Nejlepší je zachovat tyto Jobstatus adresy URL v databázi v back-endu pro budoucí referenci. |
Kódy chyb
Následující části popisují chyby, ke kterým může dojít při použití opakování tváře.
Odpověď: 404 Nenalezena
Účet nebyl nalezen nebo se video nenašlo.
Hlavičky odpovědi
Název | Požadováno | Type | Popis |
---|---|---|---|
x-ms-request-id |
false (nepravda) | string | Server mu přiřadí globálně jedinečný identifikátor (GUID) pro účely instrumentace. Server zajistí, aby všechny protokoly přidružené ke zpracování požadavku mohly být propojeny s ID požadavku serveru. Klient může toto ID žádosti poskytnout v lístku podpory, aby technici podpory mohli najít protokoly, které jsou propojeny s tímto konkrétním požadavkem. Server zajistí, aby ID požadavku bylo pro každou úlohu jedinečné. |
Text odpovědi
Název | Požadováno | Typ |
---|---|---|
ErrorType |
false (nepravda) | ErrorType |
Message |
false (nepravda) | string |
Výchozí JSON
{
"ErrorType": "GENERAL",
"Message": "string"
}
Odpověď: 400 Chybný požadavek
Neplatný vstup nebo video nejde znovu odeslat, protože původní nahrání se nezdařilo. Nahrajte video znovu.
Neplatný vstup nebo video nejde znovu odeslat, protože původní nahrání se nezdařilo. Nahrajte video znovu.
Hlavičky odpovědi
Název | Požadováno | Type | Popis |
---|---|---|---|
x-ms-request-id |
false (nepravda) | string | Pro účely instrumentace je serverem přiřazen identifikátor GUID pro požadavek. Server zajistí, aby všechny protokoly přidružené ke zpracování požadavku mohly být propojeny s ID požadavku serveru. Klient může toto ID žádosti poskytnout v lístku podpory, aby technici podpory mohli najít protokoly, které jsou propojeny s tímto konkrétním požadavkem. Server zajistí, aby ID požadavku bylo pro každou úlohu jedinečné. |
Text odpovědi
Název | Požadováno | Typ |
---|---|---|
ErrorType |
false (nepravda) | ErrorType |
Message |
false (nepravda) | string |
Výchozí JSON
{
"ErrorType": "GENERAL",
"Message": "string"
}
Odpověď: Konflikt 409
Video se už indexuje.
Hlavičky odpovědi
Název | Požadováno | Type | Popis |
---|---|---|---|
x-ms-request-id |
false (nepravda) | string | Pro účely instrumentace je serverem přiřazen identifikátor GUID pro požadavek. Server zajistí, aby všechny protokoly přidružené ke zpracování požadavku mohly být propojeny s ID požadavku serveru. Klient může toto ID žádosti poskytnout v lístku podpory, aby technici podpory mohli najít protokoly, které jsou propojeny s tímto konkrétním požadavkem. Server zajistí, aby ID požadavku bylo pro každou úlohu jedinečné. |
Text odpovědi
Název | Požadováno | Typ |
---|---|---|
ErrorType |
false (nepravda) | ErrorType |
Message |
false (nepravda) | string |
Výchozí JSON
{
"ErrorType": "GENERAL",
"Message": "string"
}
Odpověď: 401 Neautorizováno
Přístupový token nemá oprávnění pro přístup k účtu.
Hlavičky odpovědi
Název | Požadováno | Type | Popis |
---|---|---|---|
x-ms-request-id |
false (nepravda) | string | Pro účely instrumentace je serverem přiřazen identifikátor GUID pro požadavek. Server zajistí, aby všechny protokoly přidružené ke zpracování požadavku mohly být propojeny s ID požadavku serveru. Klient může toto ID žádosti poskytnout v lístku podpory, aby technici podpory mohli najít protokoly, které jsou propojeny s tímto konkrétním požadavkem. Server zajistí, aby ID požadavku bylo pro každou úlohu jedinečné. |
Text odpovědi
Název | Požadováno | Typ |
---|---|---|
ErrorType |
false (nepravda) | ErrorType |
Message |
false (nepravda) | string |
Výchozí JSON
{
"ErrorType": "USER_NOT_ALLOWED",
"Message": "Access token is not authorized to access account 'SampleAccountId'."
}
Odpověď: 500 Vnitřní chyba serveru
Na serveru došlo k chybě.
Hlavičky odpovědi
Název | Požadováno | Type | Popis |
---|---|---|---|
x-ms-request-id |
false (nepravda) | string | Pro účely instrumentace je serverem přiřazen identifikátor GUID pro požadavek. Server zajistí, aby všechny protokoly přidružené ke zpracování požadavku mohly být propojeny s ID požadavku serveru. Klient může toto ID žádosti poskytnout v lístku podpory, aby technici podpory mohli najít protokoly, které jsou propojeny s tímto konkrétním požadavkem. Server zajistí, aby ID požadavku bylo pro každou úlohu jedinečné. |
Text odpovědi
Název | Požadováno | Typ |
---|---|---|
ErrorType |
false (nepravda) | ErrorType |
Message |
false (nepravda) | string |
Výchozí JSON
{
"ErrorType": "GENERAL",
"Message": "There was an error."
}
Odpověď: 429 Příliš mnoho požadavků
Bylo odesláno příliš mnoho požadavků. Pomocí hlavičky Retry-After
odpovědi se můžete rozhodnout, kdy odeslat další požadavek.
Hlavičky odpovědi
Název | Požadováno | Type | Popis |
---|---|---|---|
Retry-After |
false (nepravda) | integer | Nezáporné desetinné číslo označující počet sekund, které se mají odložit po přijetí odpovědi. |
Odpověď: 504 Vypršení časového limitu brány
Server neodpověděl na bránu v očekávaném čase.
Hlavičky odpovědi
Název | Požadováno | Type | Popis |
---|---|---|---|
x-ms-request-id |
false (nepravda) | string | Pro účely instrumentace je serverem přiřazen identifikátor GUID pro požadavek. Server zajistí, aby všechny protokoly přidružené ke zpracování požadavku mohly být propojeny s ID požadavku serveru. Klient může toto ID žádosti poskytnout v lístku podpory, aby technici podpory mohli najít protokoly, které jsou propojeny s tímto konkrétním požadavkem. Server zajistí, aby ID požadavku bylo pro každou úlohu jedinečné. |
Výchozí JSON
{
"ErrorType": "SERVER_TIMEOUT",
"Message": "Server did not respond to gateway within expected time"
}