Localizar e redigir (desfocar) rostos com a predefinição do Detetor de Rostos

Logótipo dos Serviços de Multimédia v3


Aviso

Os Serviços de Multimédia do Azure serão descontinuados a 30 de junho de 2024. Para obter mais informações, consulte o Guia de Descontinuação do AMS.

Importante

Como descreve as Normas Responsáveis de IA da Microsoft, a Microsoft está empenhada na equidade, privacidade, segurança e transparência em relação aos sistemas de IA. Para alinhar com estas normas, os Serviços de Multimédia do Azure estão a descontinuar a predefinição do Video Analyzer a 14 de setembro de 2023. Atualmente, esta predefinição permite-lhe extrair várias informações de vídeo e áudio de um ficheiro de vídeo. Os clientes podem substituir os fluxos de trabalho atuais com o conjunto de funcionalidades mais avançado oferecido pelo Azure Video Indexer.

A API dos Serviços de Multimédia do Azure v3 inclui um predefinido do Detetor de Rostos que oferece deteção e redação facial dimensionáveis (desfocagem) na cloud. A redação de rostos permite-lhe modificar o vídeo para desfocar rostos de indivíduos selecionados. Poderá querer utilizar o serviço de redação facial em cenários de segurança pública e multimédia de notícias. Alguns minutos de imagens que contêm vários rostos podem demorar horas a ser redigidas manualmente, mas com este predefinido o processo de redação facial irá exigir apenas alguns passos simples.

Conformidade, privacidade e segurança

Como lembrete importante, tem de cumprir todas as leis aplicáveis na utilização da análise nos Serviços de Multimédia do Azure. Não pode utilizar os Serviços de Multimédia do Azure ou qualquer outro serviço do Azure de forma a violar os direitos das outras pessoas. Antes de carregar quaisquer vídeos, incluindo quaisquer dados biométricos, para o serviço dos Serviços de Multimédia do Azure para processamento e armazenamento, tem de ter todos os direitos adequados, incluindo todos os consentimentos adequados, dos indivíduos no vídeo. Para saber mais sobre conformidade, privacidade e segurança nos Serviços de Multimédia do Azure, os Termos dos Serviços Cognitivos do Azure. Para obter as obrigações de privacidade da Microsoft e o tratamento dos seus dados, reveja a Declaração de Privacidade da Microsoft, os Termos de Serviços Online (OST) e a Adenda de Processamento de Dados ("DPA"). Estão disponíveis mais informações de privacidade, incluindo sobre retenção de dados, eliminação/destruição no OST. Ao utilizar os Serviços de Multimédia do Azure, concorda em estar vinculado aos Termos dos Serviços Cognitivos, ao OST, ao DPA e à Declaração de Privacidade

Modos de redação de rostos

A redação facial funciona ao detetar rostos em cada fotograma de vídeo e controlar o objeto facial tanto para a frente como para trás no tempo, para que o mesmo indivíduo também possa ser desfocado de outros ângulos. O processo de redação automatizada é complexo e nem sempre desfoca todos os rostos 100% garantidos. Por este motivo, a predefinição pode ser utilizada num modo de dois passes para melhorar a qualidade e a precisão do desfocado através de uma fase de edição antes de submeter o ficheiro para o passe de desfocado final.

Além de um modo Combinado totalmente automático, o fluxo de trabalho de dois passes permite-lhe escolher os rostos que pretende desfocar (ou não desfocar) através de uma lista de IDs faciais. Para fazer ajustes arbitrários por frame, a predefinição utiliza um ficheiro de metadados no formato JSON como entrada para o segundo passe. Este fluxo de trabalho é dividido nos modos Analisar e Redigir .

Também pode combinar facilmente os dois modos num único passe que executa ambas as tarefas numa só tarefa; este modo chama-se Combinado. Neste artigo, o código de exemplo irá mostrar como utilizar o modo combinado de passe único simplificado num ficheiro de origem de exemplo.

Modo combinado

Isto produz um ficheiro de vídeo MP4 redigido num único passe sem qualquer edição manual do ficheiro JSON necessário. O resultado na pasta de recursos da tarefa será um único ficheiro .mp4 que contém rostos desfocados com o efeito desfocado selecionado. Utilize a propriedade de resolução definida como SourceResolution para obter os melhores resultados para a redação.

Fase Nome de Ficheiro Notas
Recurso de entrada "ignite-sample.mp4" Vídeo no formato WMV, MOV ou MP4
Configuração predefinida Configuração do Detetor facial modo: FaceRedactorMode.Combined, blurType: BlurType.Med, resolução: AnalysisResolution.SourceResolution
Recurso de saída "ignite-redacted.mp4 Vídeo com efeito desfocado aplicado aos rostos

Modo de análise

O passe Analisar do fluxo de trabalho de dois passes utiliza uma entrada de vídeo e produz um ficheiro JSON com uma lista das localizações faciais, do Face ID e das imagens jpg de cada rosto detetado. Tenha em atenção que os IDs do rosto não são garantidos como idênticos nas execuções subsequentes do analysis pass.

Fase Nome de Ficheiro Notas
Recurso de entrada "ignite-sample.mp4" Vídeo no formato WMV, MPV ou MP4
Configuração predefinida Configuração do Detetor facial modo: FaceRedactorMode.Analyze, resolução: AnalysisResolution.SourceResolution
Recurso de saída ignite-sample_annotations.json Dados de anotação de localizações faciais no formato JSON. Não é garantido que os IDs de rosto sejam idênticos nas execuções subsequentes do analysis pass. Isto pode ser editado pelo utilizador para modificar as caixas delimitadoras desfocadas. Veja o exemplo abaixo.
Recurso de saída foo_thumb%06d.jpg [foo_thumb000001.jpg, foo_thumb000002.jpg] Um jpg recortado de cada rosto detetado, onde o número indica o labelId do rosto

Exemplo de saída

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

Modo Desfocado (desfocado)

A segunda passagem do fluxo de trabalho requer um maior número de entradas que têm de ser combinadas num único recurso.

Isto inclui uma lista de IDs a desfocar, o vídeo original e o JSON de anotações. Este modo utiliza as anotações para aplicar desfocado no vídeo de entrada.

O resultado do passe Analisar não inclui o vídeo original. O vídeo tem de ser carregado para o recurso de entrada da tarefa Modo de redação e selecionado como o ficheiro principal.

Fase Nome de Ficheiro Notas
Recurso de entrada "ignite-sample.mp4" Vídeo no formato WMV, MPV ou MP4. O mesmo vídeo do passo 1.
Recurso de entrada "ignite-sample_annotations.json" Ficheiro de metadados de anotações da primeira fase, com modificações opcionais se quiser alterar os rostos desfocados. Esta ação tem de ser editada numa aplicação externa, código ou editor de texto.
Recurso de entrada "ignite-sample_IDList.txt" (Opcional) Nova lista opcional separada por linhas de IDs faciais para redigir. Se ficar em branco, todos os rostos na origem terão desfocado aplicado. Pode utilizar a lista para optar seletivamente por não desfocar rostos específicos.
Predefinição do Detetor de Rostos Configuração predefinida mode: FaceRedactorMode.Redact, blurType: BlurType.Med
Recurso de saída "ignite-sample-redacted.mp4" Vídeo com desfocado aplicado com base em anotações

Saída de exemplo

Este é o resultado de uma IDList com um ID selecionado. Não é garantido que os IDs do rosto sejam idênticos nas execuções subsequentes do analysis pass.

Exemplo foo_IDList.txt

1
2
3

Tipos de desfocagem

No modo Combinado ou Redação , existem cinco modos de desfocagem diferentes que pode escolher através da configuração de entrada JSON: Baixa, Med, Alta, Caixa e Preto. Por predefinição, é utilizado o Med .

Pode encontrar exemplos dos tipos de desfocagem abaixo.

Baixo

Exemplo de definição de desfocagem de baixa resolução.

Med

Exemplo de definição de desfocagem de resolução média.

Alto

Exemplo de definição de desfocagem de alta resolução.

Box

Modo box para utilizar na depuração da saída.

Negra

O modo de caixa preta abrange todos os rostos com caixas pretas.

Elementos do ficheiro JSON de saída

O MP de Redaction fornece deteção e controlo de localização facial de alta precisão que pode detetar até 64 rostos humanos num fotograma de vídeo. Os rostos frontais proporcionam os melhores resultados, enquanto rostos laterais e rostos pequenos (menores ou iguais a 24x24 píxeis) são desafiantes.

A tarefa produz um ficheiro de saída JSON que contém metadados sobre rostos detetados e controlados. Os metadados incluem coordenadas que indicam a localização dos rostos, bem como um número de ID facial que indica o controlo desse indivíduo. Os números de ID facial são propensos a repor em circunstâncias em que o rosto frontal é perdido ou sobreposto na moldura, o que resulta na atribuição de vários IDs a alguns indivíduos.

O JSON de saída inclui os seguintes elementos:

Elementos JSON de raiz

Elemento Descrição
versão Isto refere-se à versão da API de Vídeo.
escala temporal "Tiques" por segundo do vídeo.
offset Este é o desvio de tempo dos carimbos de data/hora. Na versão 1.0 das APIs de Vídeo, será sempre 0. Em cenários futuros que suportamos, este valor pode mudar.
largura, mais alto A largura e a altura da moldura de vídeo de saída, em píxeis.
framerate Fotogramas por segundo do vídeo.

Fragmenta elementos JSON

Elemento Descrição
iniciar A hora de início do primeiro evento em "tiques".
duration O comprimento do fragmento, em "tiques".
índice (Aplica-se apenas ao Azure Media Redactor) define o índice de frames do evento atual.
interval O intervalo de cada entrada de evento no fragmento, em "tiques".
eventos Cada evento contém os rostos detetados e controlados durante esse período de tempo. É uma matriz de eventos. A matriz externa representa um intervalo de tempo. A matriz interna é constituída por 0 ou mais eventos que ocorreram nesse ponto no tempo. Um parêntese reto vazio [] significa que não foram detetados rostos.
ID O ID do rosto que está a ser controlado. Este número poderá ser alterado inadvertidamente se um rosto não for detetado. Um determinado indivíduo deve ter o mesmo ID ao longo do vídeo geral, mas tal não pode ser garantido devido a limitações no algoritmo de deteção (oclusão, etc.).
x, y As coordenadas X e Y superiores esquerdas da caixa delimitadora face numa escala normalizada de 0,0 a 1,0.
As coordenadas -X e Y são relativas sempre à paisagem, por isso, se tiver um vídeo vertical (ou de cabeça para baixo, no caso do iOS), terá de transpor as coordenadas em conformidade.
largura, altura A largura e altura da caixa delimitadora face numa escala normalizada de 0,0 a 1,0.
facesDetected Isto encontra-se no final dos resultados JSON e resume o número de rostos que o algoritmo detetou durante o vídeo. Uma vez que os IDs podem ser repostos inadvertidamente se um rosto não for detetado (por exemplo, o rosto sai do ecrã, desvia o olhar), este número pode nem sempre ser igual ao número verdadeiro de rostos no vídeo.

Obter ajuda e suporte

Pode contactar os Serviços de Multimédia com perguntas ou seguir as nossas atualizações através de um dos seguintes métodos: