Hledání a redigování (rozostření) pomocí přednastavení Face detektor

logo Media Services verze 3


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á

Příklad nastavení rozostření s nízkým rozlišením

Tahač

Příklad nastavení rozostření středního rozlišení

Vysoká

Příklad nastavení rozostření s vysokým rozlišením

Box

Režim box pro použití při ladění výstupu.

Black

Režim černého pole pokrývá všechny plošky s černými poli.

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í: