Hledání a redigování (rozostření) pomocí přednastavení Face detektor
hledáte dokumentaci k Media Services v2?
rozhraní Azure Media Services v3 API obsahuje přednastavený detektor pro rozpoznávání tváře, který nabízí škálovatelnou detekci obličeje a redigování (rozostření) v cloudu. Naredigování obličeje umožňuje upravit vaše video, aby se rozostří plošky vybraných jednotlivců. Je možné, že budete chtít použít službu redigování obličeje ve scénářích veřejného zabezpečení a média pro příspěvky. Několik minut záběrů, které obsahují více plošek, může trvat hodiny na redigování ručně, ale s tímto předplatným proces redigování obličeje bude vyžadovat pouze několik jednoduchých kroků.
tento článek obsahuje podrobné informace o přednastaveném rozpoznávání obličeje a ukazuje, jak ho použít s Azure Media Services SDK pro .net.
Dodržování předpisů, ochrana osobních údajů a zabezpečení
Jako důležité připomenutí musíte dodržovat všechny použitelné zákony při používání analýz v Azure Media Services. nemusíte používat Azure Media Services ani žádnou jinou službu Azure způsobem, který porušuje práva ostatních. před nahráním videí, včetně jakýchkoli biometrických dat, do služby Azure Media Services pro zpracování a ukládání, musíte mít všechna patřičná práva, včetně všech příslušných souhlasů, od jednotlivců ve videu. pokud se chcete dozvědět o dodržování předpisů, ochraně osobních údajů a zabezpečení v Azure Media Services, podmínky Azure Cognitive Services. Zásady ochrany osobních údajů od Microsoftu a jejich zpracování najdete v prohlášení o zásadách ochrany osobních údajůod Microsoftu, na základě podmínek pro online služby (OST) a v dodatku pro zpracování dat (DPA). Další informace o ochraně osobních údajů, včetně uchovávání, odstranění nebo zničení dat, jsou k dispozici v OST a zde. pomocí Azure Media Services souhlasíte s tím, že jste vázáni Cognitive Services podmínky, OST, DPA a prohlášení o zásadách ochrany osobních údajů.
Režimy redigování obličeje
Redigování obličeje funguje tak, že detekuje obličeje v každém snímku videa a sleduje objekt Face v čase dopředu a dozadu, aby se stejná osoba mohla rozmazaný i z jiných úhlů. Automatizovaný proces redigování je složitý a neprovádí vždy rozostření každého obličeje 100% garantuje. Z tohoto důvodu může být předvolba použita pro oboustranný režim ke zlepšení kvality a přesnosti rozostření přes fázi úprav před odesláním souboru pro poslední úspěšnost rozostření.
Kromě plně automatického kombinovaného režimu vám pracovní postup pro oboustranný režim umožňuje zvolit plošky, které chcete Rozostřit (nebo ne Rozostřit) prostřednictvím seznamu ID obličeje. Chcete-li provést úpravy v libovolném snímku, použije přednastavení ve formátu JSON soubor metadat jako vstup druhého průchodu. Tento pracovní postup je rozdělen na režimy analyzování a redigování .
Můžete také jednoduše kombinovat dva režimy v jednom průchodu, který spouští obě úlohy v jedné úloze. Tento režim se nazývá Kombinovaná. V tomto článku ukázkový kód ukazuje, jak použít zjednodušený kombinovaný režim single Pass pro ukázkový zdrojový soubor.
Kombinovaný režim
Tím se v jednom průchodu vytvoří videosoubor v souboru MP4, aniž by bylo potřeba provádět ruční úpravy souboru JSON. Výstupem ve složce assets pro úlohu bude jeden .mp4 soubor, který obsahuje rozmazaných ploch pomocí vybraného efektu rozostření. Použijte vlastnost rozlišení nastavenou na SourceResolution , abyste dosáhli nejlepších výsledků pro redigování.
| Fáze | Název souboru | Poznámky |
|---|---|---|
| Vstupní Asset | "ignite-sample.mp4" | Video ve formátu WMV, MOV nebo MP4 |
| Předvolba konfigurace | Konfigurace faceho detektoru | režim: FaceRedactorMode. kombined, blurType: blurType. med, Resolution: AnalysisResolution. SourceResolution |
| Výstupní Asset | "ignite-redacted.mp4 | Video s rozmazaným efektem použitým pro obličeje |
Režim analýzy
Úspěšnost analýzy obousměrného pracovního postupu provede vstup videa a vytvoří soubor JSON se seznamem umístění obličeje, obrázku ID obličeje a obrázků jpg každé zjištěné plochy. Doporučujeme, aby ID obličeje nebylo zaručené při dalších spuštěních analytického průchodu stejné.
| Fáze | Název souboru | Poznámky |
|---|---|---|
| Vstupní Asset | "ignite-sample.mp4" | Video ve formátu WMV, MPV nebo MP4 |
| Předvolba konfigurace | Konfigurace faceho detektoru | režim: FaceRedactorMode. analyze, Resolution: AnalysisResolution. SourceResolution |
| Výstupní Asset | Ignite-sample_annotations. JSON | Data poznámek pro umístění obličeje ve formátu JSON. V následných spuštěních analýzy není zaručeno, že ID obličeje je stejné. Tuto možnost může upravit uživatel, aby bylo možné upravovat rozmazaný ohraničovací rámečky. Viz ukázka níže. |
| Výstupní Asset | foo_thumb% 06d.jpg [foo_thumb000001.jpg, foo_thumb000002.jpg] | Oříznutý jpg každé zjištěné plochy, kde číslo označuje labelId obličej |
Příklad výstupu
{
"version": 1,
"timescale": 24000,
"offset": 0,
"framerate": 23.976,
"width": 1280,
"height": 720,
"fragments": [
{
"start": 0,
"duration": 48048,
"interval": 1001,
"events": [
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[
{
"index": 13,
"id": 1138,
"x": 0.29537,
"y": -0.18987,
"width": 0.36239,
"height": 0.80335
},
{
"index": 13,
"id": 2028,
"x": 0.60427,
"y": 0.16098,
"width": 0.26958,
"height": 0.57943
}
],
... truncated
Režim redigování (rozostření)
Druhý průchod pracovního postupu přebírá větší počet vstupů, které musí být sloučeny do jediného assetu.
To zahrnuje seznam ID, která se mají Rozostřit, původní video a poznámky JSON. Tento režim používá poznámky pro použití rozostření na vstupním videu.
Výstup z průchodu Analyze nezahrnuje původní video. Video se musí nahrát do vstupního assetu pro úlohu režimu redigování a vybrané jako primární soubor.
| Fáze | Název souboru | Poznámky |
|---|---|---|
| Vstupní Asset | "ignite-sample.mp4" | Video ve formátu WMV, MPV nebo MP4. Stejné video jako v kroku 1. |
| Vstupní Asset | "Ignite-sample_annotations. JSON" | poznámky soubor metadat ze fáze One s volitelnými úpravami, pokud chcete změnit rozostřené plošky. To je nutné upravit v externí aplikaci, kódu nebo textovém editoru. |
| Vstupní Asset | "ignite-sample_IDList.txt" (volitelné) | Nepovinný nový řádek oddělený seznam ID tváře k redigování Pokud je ponecháno prázdné, všechny plošky ve zdroji budou aplikovány rozostření. Seznam můžete použít k selektivnímu výběru možnosti Rozostřit konkrétní plošky. |
| Přednastavení obličejového detektoru | Předvolba konfigurace | režim: FaceRedactorMode. redigován, blurType: blurType. med |
| Výstupní Asset | "ignite-sample-redacted.mp4" | Video s rozostřením aplikovaným na základě poznámek |
Příklad výstupu
Toto je výstup z IDList s jedním vybraným ID. V následných spuštěních analytického průchodu není zaručeno, že ID obličeje není stejné.
Příklad foo_IDList.txt
1
2
3
Typy rozostření
V kombinovaném režimu nebo v režimu redigování existuje pět různých režimů rozostření, ze kterých můžete vybírat prostřednictvím vstupní konfigurace JSON: Nízká, med, High, box a Black. Ve výchozím nastavení se používá med .
Můžete najít ukázky níže uvedených typů rozostření.
Nízká

Tahač

Vysoká

Box

Black

Prvky výstupního souboru JSON
MP pro redigování poskytuje detekci a sledování polohy s vysokou přesností, které dokáže detekovat až 64 lidských plošek ve snímku videa. Přední plošky poskytují nejlepší výsledky, zatímco strany a malé plošky (menší nebo rovny 24x24 pixelů) jsou náročné.
Úloha vytvoří výstupní soubor JSON obsahující metadata o zjištěných a sledovaných plochách. Metadata obsahují souřadnice označující umístění obličeje a také číslo ID obličeje, které signalizuje sledování daného jednotlivce. Pokud dojde ke ztrátě nebo překrytí čelní plochy v rámci tohoto rámce, je pro ně možné resetovat čísla ID obličeje. Výsledkem je, že někteří jednotlivci mají přiřazené více ID.
Výstupní JSON obsahuje následující prvky:
Kořenové elementy JSON
| Element | Popis |
|---|---|
| verze | To odkazuje na verzi rozhraní API pro video. |
| měřítk | "Takty" za sekundu videa. |
| posun | Toto je časový posun pro časová razítka. Ve verzi 1,0 rozhraní API pro video bude tato hodnota vždycky 0. V budoucích scénářích, které podporujeme, se tato hodnota může změnit. |
| Šířka, vysoká | Šířka a výška výstupního snímku videa v pixelech. |
| snímků | Počet snímků ve videu za sekundu. |
| svalovin | Metadata jsou rozdělená do různých segmentů s názvem fragmenty. Každý fragment obsahuje začátek, dobu trvání, číslo intervalu a události. |
Fragmenty – elementy JSON
| Element | Popis |
|---|---|
| start | Čas zahájení první události v "taktech". |
| doba trvání | Délka fragmentu v "taktech". |
| index | (Platí pouze pro Azure Media Redactor) definuje index rámce aktuální události. |
| interval | Interval každé položky události v rámci fragmentu v části "osové". |
| stránka events | Každá událost obsahuje plošky zjištěné a sledované během této doby trvání. Jedná se o pole událostí. Vnější pole představuje jeden časový interval. Vnitřní pole se skládá z 0 nebo více událostí, které se v tomto bodu v čase odehrály. Prázdná hranatá závorka [] znamená, že nebyly zjištěny žádné plošky. |
| id | ID plochy, která je sledována. Toto číslo se může nechtěně změnit, pokud se obličej nerozpozná. Daný jednotlivec by měl mít stejné ID v celém obrazovém videu, ale nelze ho zaručit v důsledku omezení algoritmu detekce (překrytí atd.). |
| x, y | Horní levý souřadnici X a Y ohraničovacího rámečku plochy v normalizovaném rozsahu od 0,0 do 1,0. – Souřadnice X a Y jsou relativní vzhledem k krajině na šířku, takže pokud máte video na výšku (nebo je v případě iOS mimo provoz), budete muset souřadnice odpovídajícím způsobem transponovat. |
| Šířka, Výška | Šířka a výška ohraničovacího rámečku obličeje v normalizovaném rozsahu od 0,0 do 1,0. |
| facesDetected | Tato funkce se nachází na konci výsledků JSON a shrnuje počet ploch, které algoritmus zjistil během videa. Vzhledem k tomu, že ID se dají nechtěně resetovat, pokud se obličej přestane detekovat (například tvář se zobrazí mimo obrazovku), toto číslo se nemusí vždy rovnat skutečnému počtu ploch ve videu. |
Vzorový kód .NET
Následující program ukazuje použití kombinovaného režimu redigování s jedním průchodem:
- Vytvořte Asset a nahrajte do něj mediální soubor.
- Nakonfigurujte přednastavený detektor pro rozpoznávání tváře, který používá nastavení Mode a blurType.
- Vytvoří novou transformaci pomocí přednastavení Face snímače.
- Stáhněte si výstupní videosoubor ve formátu redigování.
Stažení a konfigurace ukázky
Do svého počítače naklonujte pomocí následujícího příkazu úložiště GitHub obsahující ukázku .NET:
git clone https://github.com/Azure-Samples/media-services-v3-dotnet.git
Ukázka se nachází ve složce FaceRedactor . Ve staženém projektu otevřete appSettings. JSON . Nahraďte hodnoty přihlašovacími údaji, které jste získali při přístupu k rozhraním API.
Volitelně můžete zkopírovat ukázkový soubor . env v kořenovém adresáři úložiště a v něm vyplnit podrobnosti a přejmenovat tento soubor na . env (Všimněte si tečky na přední straně!), aby se mohla používat ve všech ukázkových projektech v úložišti. Tím se eliminuje nutnost mít v každé ukázce naplněný soubor appSettings. JSON a zároveň vás chrání před kontrolou libovolného nastavení do vašich vlastních klonovaných úložišť ve službě Git hub.
Příklady
Tento kód ukazuje, jak nastavit FaceDetectorPreset pro rozostření kombinovaného režimu.
// Create a Face Detector preset and enable redaction/blurring of the faces.
Preset faceRedactionPreset = new FaceDetectorPreset(
resolution: AnalysisResolution.SourceResolution,
mode: FaceRedactorMode.Combined, // Use the Combined mode here. This is the single pass mode where detection and blurring happens as one pass - if you want to analyze and get JSON results first before blur, use Analyze mode, followed by Redact mode.
blurType: BlurType.Med // Sets the amount of blur. For debugging purposes you can set this to Box to just see the outlines of the faces.
);
// Ensure that you have the desired encoding Transform. This is really a one time setup operation.
// Once it is created, we won't delete it.
Transform videoAnalyzerTransform = await GetOrCreateTransformAsync(client, config.ResourceGroup, config.AccountName, FaceRedactorTransformName, faceRedactionPreset);
Tento ukázka kódu ukazuje, jak je předvolba předána do objektu transformace během vytváření. Po vytvoření transformace může být úloha odeslána přímo na ni.
// Start by defining the desired outputs.
TransformOutput[] outputs = new TransformOutput[]
{
new TransformOutput(preset),
};
// Create the Transform with the output defined above
// Does a Transform already exist with the desired name? This method will just overwrite (update) the Transform if it exists already.
// In production code, you may want to be cautious and try to avoid updates. It really depends on your scenario.
Transform transform = await client.Transforms.CreateOrUpdateAsync(resourceGroupName, accountName, transformName, outputs);
return transform;
Další kroky
Media Services v3 (nejnovější)
Podívejte se na nejnovější verzi Azure Media Services.
Media Services v2 (starší verze)
Poskytnutí zpětné vazby
Pomocí fóra User Voice můžete poskytnout zpětnou vazbu a zaslat návrhy pro zlepšení služeb Azure Media Services. Můžete také přejít přímo na jednu z následujících kategorií: