Znajdź i zredaguj (rozmycie) twarze z wstępnie ustawionym detektorem twarzy

Logo usługi Media Services w wersji 3


Ostrzeżenie

Usługa Azure Media Services zostanie wycofana 30 czerwca 2024 r. Aby uzyskać więcej informacji, zobacz Przewodnik po wycofaniu usługi AMS.

Ważne

Zgodnie ze standardami odpowiedzialnej sztucznej inteligencji firmy Microsoft firma Microsoft jest zaangażowana w sprawiedliwość, prywatność, bezpieczeństwo i przejrzystość w odniesieniu do systemów sztucznej inteligencji. Aby dostosować się do tych standardów, usługa Azure Media Services wycofa ustawienie wstępne analizatora wideo 14 września 2023 r. To ustawienie wstępne umożliwia obecnie wyodrębnianie wielu szczegółowych informacji wideo i audio z pliku wideo. Klienci mogą zastąpić bieżące przepływy pracy przy użyciu bardziej zaawansowanego zestawu funkcji oferowanego przez usługę Azure Video Indexer.

Interfejs API usługi Azure Media Services w wersji 3 zawiera ustawienie wstępne narzędzia do wykrywania twarzy, które oferuje skalowalne wykrywanie twarzy i redaction (rozmycie) w chmurze. Redaction twarzy umożliwia modyfikowanie wideo w celu rozmycia twarzy wybranych osób. Możesz użyć usługi redaction twarzy w scenariuszach bezpieczeństwa publicznego i mediów informacyjnych. Kilka minut materiału zawierającego wiele twarzy może potrwać kilka godzin, ale w tym ustawieniu proces redagowania twarzy będzie wymagał zaledwie kilku prostych kroków.

Zgodność, prywatność i zabezpieczenia

Jako ważne przypomnienie, musisz przestrzegać wszystkich obowiązujących przepisów dotyczących korzystania z analizy w usłudze Azure Media Services. Nie można używać usługi Azure Media Services ani żadnej innej usługi platformy Azure w sposób naruszający prawa innych osób. Przed przekazaniem jakichkolwiek filmów wideo, w tym wszelkich danych biometrycznych, do usługi Azure Media Services na potrzeby przetwarzania i przechowywania, musisz mieć wszystkie odpowiednie prawa, w tym wszystkie odpowiednie zgody, od osób fizycznych w filmie wideo. Aby dowiedzieć się więcej na temat zgodności, prywatności i zabezpieczeń w usłudze Azure Media Services, postanowienia dotyczące usług Azure Cognitive Services. W przypadku zobowiązań firmy Microsoft dotyczących prywatności i obsługi Twoich danych zapoznaj się z oświadczeniem o ochronie prywatności firmy Microsoft, postanowieniami dotyczącymi usług online (OST) i dodatkiem do przetwarzania danych ("DPA"). Więcej informacji o ochronie prywatności, w tym na temat przechowywania danych, usuwania/niszczenia, jest dostępnych w ost. Korzystając z usługi Azure Media Services, wyrażasz zgodę na powiązanie warunków usług Cognitive Services, OST, DPA i zasad zachowania poufności informacji

Tryby ponownego rozpoznawania twarzy

Redakcja twarzy działa przez wykrywanie twarzy w każdej ramce wideo i śledzenie obiektu twarzy zarówno do przodu, jak i do tyłu w czasie, dzięki czemu ta sama osoba może być rozmyta z innych kątów, jak również. Zautomatyzowany proces redaction jest złożony i nie zawsze rozmywa każdą twarz 100% gwarantowaną. Z tego powodu ustawienie wstępne może być używane w trybie dwuprzepustowym, aby poprawić jakość i dokładność rozmycia przez etap edycji przed przesłaniem pliku do ostatniego przemycia.

Oprócz w pełni automatycznego trybu połączonego przepływ pracy dwuprzepustowy umożliwia wybranie twarzy, które mają zostać rozmyte (lub nie rozmyte) za pośrednictwem listy identyfikatorów twarzy. Aby ustawić dowolną korektę dla ramki, ustawienie wstępne używa pliku metadanych w formacie JSON jako danych wejściowych do drugiego przebiegu. Ten przepływ pracy jest podzielony na tryby Analizowanie i Redact .

Można również łatwo połączyć dwa tryby w jednym przekazaniu, które uruchamia oba zadania w jednym zadaniu; ten tryb jest nazywany połączonym. W tym artykule przykładowy kod pokaże, jak używać uproszczonego trybu połączonego pojedynczego przekazywania w przykładowym pliku źródłowym.

Tryb połączony

Spowoduje to utworzenie zredagowanego pliku wideo MP4 w jednym przekazaniu bez konieczności ręcznego edytowania pliku JSON. Dane wyjściowe w folderze zasobów zadania będą pojedynczym plikiem .mp4 zawierającym rozmyte twarze przy użyciu wybranego efektu rozmycia. Użyj właściwości rozpoznawania ustawionej na Wartość SourceResolution , aby uzyskać najlepsze wyniki w celu ponownego utworzenia.

Etap Nazwa pliku Uwagi
Zasób wejściowy "ignite-sample.mp4" Wideo w formacie MOV, MOV lub MP4
Konfiguracja ustawień wstępnych Konfiguracja narzędzia do wykrywania twarzy mode: FaceRedactorMode.Combined, blurType: BlurType.Med, resolution: AnalysisResolution.SourceResolution
Zasób wyjściowy "ignite-redacted.mp4 Wideo z efektem rozmycia zastosowanym do twarzy

Tryb analizowania

Przekazywanie analizy dwuprzepustowego przepływu pracy pobiera dane wejściowe wideo i tworzy plik JSON z listą lokalizacji twarzy, obrazami face ID i jpg każdej wykrytej twarzy. Należy pamiętać, że identyfikator twarzy nie ma gwarancji, że są identyczne w kolejnych przebiegach przebiegu analizy.

Etap Nazwa pliku Uwagi
Zasób wejściowy "ignite-sample.mp4" Wideo w formacie PDF, MPV lub MP4
Konfiguracja ustawień wstępnych Konfiguracja narzędzia do wykrywania twarzy mode: FaceRedactorMode.Analyze, rozdzielczość: AnalysisResolution.SourceResolution
Zasób wyjściowy ignite-sample_annotations.json Dane adnotacji lokalizacji twarzy w formacie JSON. Nie ma gwarancji, że identyfikator rozpoznawania twarzy jest identyczny w kolejnych przebiegach przebiegu analizy. Można to edytować przez użytkownika, aby zmodyfikować rozmyte pola ograniczenia. Zobacz przykład poniżej.
Zasób wyjściowy foo_thumb%06d.jpg [foo_thumb000001.jpg, foo_thumb000002.jpg] Przycięty jpg każdej wykrytej twarzy, gdzie liczba wskazuje identyfikator labelId twarzy

Przykład danych wyjściowych

{
  "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

Tryb redact (rozmycie)

Drugie przekazanie przepływu pracy przyjmuje większą liczbę danych wejściowych, które muszą zostać połączone w jeden zasób.

Obejmuje to listę identyfikatorów do rozmycia, oryginalnego wideo i adnotacji JSON. Ten tryb używa adnotacji do zastosowania rozmycia na wejściowym filmie wideo.

Dane wyjściowe z przebiegu analizy nie zawierają oryginalnego filmu wideo. Wideo musi zostać przekazane do zasobu wejściowego dla zadania trybu redact i wybrane jako plik podstawowy.

Etap Nazwa pliku Uwagi
Zasób wejściowy "ignite-sample.mp4" Wideo w formacie PDF, MPV lub MP4. To samo wideo jak w kroku 1.
Zasób wejściowy "ignite-sample_annotations.json" Plik metadanych adnotacji z fazy 1 z opcjonalnymi modyfikacjami, jeśli chcesz zmienić rozmyte twarze. Należy to edytować w zewnętrznej aplikacji, kodzie lub edytorze tekstów.
Zasób wejściowy "ignite-sample_IDList.txt" (opcjonalnie) Opcjonalna nowa linia rozdzielona listą identyfikatorów twarzy do redagowania. W przypadku pozostawienia pustego wszystkie twarze w źródle zostaną zastosowane rozmycie. Możesz użyć listy, aby selektywnie nie rozmyć określonych twarzy.
Ustawienie wstępne narzędzia do wykrywania twarzy Konfiguracja ustawień wstępnych mode: FaceRedactorMode.Redact, blurType: BlurType.Med
Zasób wyjściowy "ignite-sample-redacted.mp4" Wideo z rozmyciem zastosowanym na podstawie adnotacji

Przykładowe dane wyjściowe

Jest to dane wyjściowe z listy IDList z wybranym jednym identyfikatorem. Identyfikator twarzy nie ma gwarancji, że są identyczne w kolejnych przebiegach przebiegu analizy.

Przykład foo_IDList.txt

1
2
3

Typy rozmycia

W trybie Połączony lub Redact istnieją pięć różnych trybów rozmycia, które można wybrać za pośrednictwem konfiguracji danych wejściowych JSON: Low, Med, High, Box i Black. Domyślnie jest używany med .

Poniżej można znaleźć przykłady typów rozmycia.

Niski

Przykład ustawienia rozmycia o niskiej rozdzielczości.

Med

Przykład ustawienia rozmycia o średniej rozdzielczości.

Wys.

Przykład ustawienia rozmycia o wysokiej rozdzielczości.

Box

Tryb box do użycia podczas debugowania danych wyjściowych.

Czarnoskórzy

Tryb czarnej skrzynki obejmuje wszystkie twarze z czarnymi polami.

Elementy wyjściowego pliku JSON

Narzędzie Redaction MP zapewnia precyzyjne wykrywanie i śledzenie lokalizacji twarzy, które mogą wykrywać maksymalnie 64 ludzkie twarze w ramce wideo. Twarze z przodu zapewniają najlepsze wyniki, podczas gdy twarze boczne i małe twarze (mniejsze lub równe 24x24 pikseli) są trudne.

Zadanie tworzy plik wyjściowy JSON zawierający metadane dotyczące wykrytych i śledzonych twarzy. Metadane zawierają współrzędne wskazujące lokalizację twarzy, a także numer face ID wskazujący śledzenie tej osoby. Numery face ID są podatne na resetowanie w okolicznościach, gdy twarz frontalna zostanie utracona lub nakłada się na ramkę, co powoduje, że niektóre osoby otrzymują przypisane wiele identyfikatorów.

Dane wyjściowe JSON zawierają następujące elementy:

Główne elementy JSON

Element Opis
Wersja Dotyczy to wersji interfejsu API wideo.
skala czasu "Ticks" na sekundę filmu.
przesunięcie Jest to przesunięcie czasu dla sygnatur czasowych. W wersji 1.0 interfejsów API wideo zawsze będzie to 0. W przyszłych scenariuszach, które obsługujemy, ta wartość może ulec zmianie.
szerokość, wysoka Szerokość i wysokość wyjściowej ramki wideo w pikselach.
Ilość klatek Liczba klatek na sekundę w wideo.

Fragmenty elementów JSON

Element Opis
start Godzina rozpoczęcia pierwszego zdarzenia w "kleszczach".
czas trwania Długość fragmentu w "kleszczach".
index (Dotyczy tylko usługi Azure Media Redactor) definiuje indeks ramki bieżącego zdarzenia.
interval Interwał każdego wpisu zdarzenia w ramach fragmentu w "znacznikach".
zdarzenia Każde zdarzenie zawiera wykryte twarze i śledzone w tym czasie. Jest to tablica zdarzeń. Zewnętrzna tablica reprezentuje jeden interwał czasu. Wewnętrzna tablica składa się z 0 lub większej liczby zdarzeń, które wystąpiły w danym momencie. Pusty nawias [] oznacza, że nie wykryto twarzy.
identyfikator Identyfikator śledzonej twarzy. Ta liczba może przypadkowo ulec zmianie, jeśli twarz stanie się niewykryta. Dana osoba powinna mieć ten sam identyfikator w całym filmie wideo, ale nie może to być gwarantowane z powodu ograniczeń algorytmu wykrywania (okluzji itp.).
x, y Lewe górne współrzędne X i Y pola ograniczenia twarzy w znormalizowanej skali od 0,0 do 1,0.
-Współrzędne X i Y są zawsze względne względem poziomego, więc jeśli masz pionowy film (lub do góry nogami, w przypadku systemu iOS), musisz odpowiednio transponować współrzędne.
szerokość, wysokość Szerokość i wysokość pola ograniczenia twarzy w znormalizowanej skali od 0,0 do 1,0.
facesDetected Znajduje się to na końcu wyników JSON i podsumowuje liczbę twarzy wykrytych podczas wideo. Ponieważ identyfikatory można zresetować przypadkowo, jeśli twarz staje się niewykryta (np. twarz odchodzi od ekranu, patrzy), ta liczba może nie zawsze być równa prawdziwej liczbie twarzy w filmie.

Uzyskiwanie pomocy i obsługi technicznej

Możesz skontaktować się z usługą Media Services z pytaniami lub postępować zgodnie z naszymi aktualizacjami przy użyciu jednej z następujących metod: