Búsqueda y censura (desenfoque) de caras con el valor preestablecido de Face Detector

Logotipo de Media Services v3


Advertencia

Azure Media Services se retirará el 30 de junio de 2024. Para obtener más información, consulte la Guía de retirada de AMS.

Importante

Como se describe en los estándares de IAl responsable de Microsoft, Microsoft está comprometido con la equidad, la privacidad, la seguridad y la transparencia con respecto a los sistemas de inteligencia artificial. Para alinearse con estos estándares, Azure Media Services retira el valor preestablecido de Video Analyzer el 14 de septiembre de 2023. Actualmente, este preajuste permite extraer varios puntos de vista de vídeo y audio de un archivo de vídeo. Los clientes pueden reemplazar sus flujos de trabajo actuales mediante el conjunto de características más avanzado que ofrece Azure Video Indexer.

La API de Azure Media Services v3 incluye un valor preestablecido de Face Detector que ofrece la detección de caras escalable y la censura (desenfoque) en la nube. La censura de rostros le permite modificar un vídeo con el fin de difuminar las caras de personas seleccionadas. Puede usar el servicio de censura de rostros en escenarios de seguridad pública y de noticias en los medios de comunicación. Se puede tardar horas en censurar manualmente unos minutos de imágenes que contengan varias caras, pero con este valor preestablecido, el proceso de censura de caras requiere solamente unos pocos pasos sencillos.

Cumplimiento, privacidad y seguridad

Como recordatorio importante, debe cumplir todas las leyes aplicables en el uso del análisis en Azure Media Services. No debe usar Azure Media Services ni ningún otro servicio de Azure de forma que infrinja los derechos de los demás. Antes de cargar vídeos que incluyan datos biométricos en el servicio Azure Media Services para procesarlos y almacenarlos, debe tener todos los derechos apropiados (por ejemplo, todos los consentimientos adecuados) de las personas del vídeo. Para información sobre el cumplimiento, la privacidad y la seguridad de Azure Media Services, consulte Términos de Azure Cognitive Services. En lo que respecta a las obligaciones de privacidad de Microsoft y al control de los datos, consulte la declaración de privacidad, los Términos de los Servicios en Línea (OST) y el anexo de procesamiento de datos ("DPA") de Microsoft. Hay más información de privacidad, incluida la retención de datos, la eliminación o destrucción, en el OST. Al usar Azure Media Services, acepta las obligaciones de los Términos de Cognitive Services, OST, DPA y la declaración de privacidad.

Modos de censura de rostros

La censura facial funciona detectando caras en cada fotograma de vídeo y realizando un seguimiento del objeto de cara tanto hacia delante como hacia atrás en el tiempo, para que la imagen de la misma persona pueda difuminarse también desde otros ángulos. El proceso de redacción automatizado es complejo y no siempre desenfoca todos los rostros al 100 %. Por este motivo, el valor preestablecido se puede usar en modo de dos pasos para mejorar la calidad y la precisión del desenfoque a través de una fase de edición antes de enviar el archivo para el último paso de desenfoque.

Además de un modo Combinado totalmente automático, el flujo de trabajo de dos pasos le permite elegir las caras que quiere desenfocar (o no desenfocar) mediante una lista de id. de caras. Para realizar ajustes arbitrarios por fotograma, el valor preestablecido usa un archivo de metadatos en formato JSON como entrada para el segundo paso. Este flujo de trabajo se divide en los modos Analyze (Analizar) y Redact (Censurar).

Puede combinar los dos modos en un único paso que ejecuta ambas tareas en un trabajo; este modo se denomina Combinado. En este artículo, el código de ejemplo mostrará cómo usar el modo Combinado de paso único simplificado en un archivo de código fuente de ejemplo.

Modo combinado

Esto genera un archivo de vídeo MP4 censurado en un solo paso sin que sea necesario editar manualmente el archivo JSON. La salida de la carpeta de recursos para el trabajo será un único archivo .mp4 que contendrá caras desenfocadas con el efecto de desenfoque seleccionado. Use la propiedad de resolution establecida en SourceResolution para obtener los mejores resultados de censura.

Fase Nombre de archivo Notas
Recurso de entrada "ignite-sample.mp4" Vídeo en formato WMV, MOV o MP4
Configuración de valor preestablecido Configuración de Face Detector modo: FaceRedactorMode.Combined, blurType: BlurType.Med, resolución: AnalysisResolution.SourceResolution
Recurso de salida "ignite-redacted.mp4 Vídeo con efecto de desenfoque aplicado a caras

Modo Analyze (Análisis)

El paso Analizar del flujo de trabajo de dos pasos toma una entrada de vídeo y genera un archivo JSON con una lista de ubicaciones de caras, id. de caras e imágenes jpg de cada cara detectada. Tenga en cuenta que no está garantizado que los identificadores de las caras sean los mismos en las ejecuciones posteriores del paso de análisis.

Fase Nombre de archivo Notas
Recurso de entrada "ignite-sample.mp4" Vídeo en formato WMV, MOV o MP4
Configuración de valor preestablecido Configuración de Face Detector modo: FaceRedactorMode.Analyze, resolución: AnalysisResolution.SourceResolution
Recurso de salida ignite-sample_annotations.json Datos de anotación de ubicaciones de rostros en formato JSON. No está garantizado que los identificadores de las caras sean los mismos en las ejecuciones posteriores del paso de análisis. El usuario puede editarlo para modificar los rectángulos de selección para el difuminado. Vea el ejemplo a continuación.
Recurso de salida foo_thumb%06d.jpg [foo_thumb000001.jpg, foo_thumb000002.jpg] Un jpg recortado de cada rostro detectado, donde el número indica el identificador (labelId) de la cara

Ejemplo de salida

{
  "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 de censura (desenfoque)

El segundo paso del flujo de trabajo tiene un mayor número de entradas que tienen que combinarse en un solo recurso.

Esto incluye una lista de identificadores para difuminar, el vídeo original y las anotaciones JSON. Este modo usa las anotaciones para aplicar difuminado en el vídeo de entrada.

El resultado de la fase de análisis no incluye el vídeo original. El vídeo tiene que estar cargado en el recurso de entrada para la tarea de modo Redact (Censurar) y seleccionado como el archivo principal.

Fase Nombre de archivo Notas
Recurso de entrada "ignite-sample.mp4" Vídeo en formato WMV, MOV o MP4. El mismo vídeo que en el paso 1.
Recurso de entrada "ignite-sample_annotations.json" Archivo de metadatos de anotaciones de la fase uno, con modificaciones opcionales si desea cambiar las caras desenfocadas. Debe editarse en una aplicación externa, código o editor de texto.
Recurso de entrada "ignite-sample_IDList.txt" (opcional) Nueva lista opcional separada por líneas de identificadores de rostro para censurar. Si se deja en blanco, se aplicará el desenfoque a todas las caras del origen. Puede usar la lista para elegir de manera selectiva no desenfocar caras específicas.
Valor preestablecido de Face Detector Configuración de valor preestablecido modo: FaceRedactorMode.Redact, blurType: BlurType.Med
Recurso de salida "ignite-sample-redacted.mp4" Vídeo con difuminado aplicado en base a las anotaciones

Salida de ejemplo

Este es el resultado de una lista de identificadores con un identificador seleccionado. No está garantizado que los identificadores de las caras sean los mismos en las ejecuciones posteriores del paso de análisis.

foo_IDList.txt de ejemplo

1
2
3

Tipos de desenfoque

En los modos Combinado o Redact (Censurar), hay cinco modos de desenfoque diferentes entre los que puede elegir en la configuración de la entrada JSON: Bajo, Medio, Alto, Box y Negro. Se usa Medio de forma predeterminada.

Puede encontrar ejemplos de los tipos de desenfoque a continuación.

Bajo

Ejemplo de configuración de desenfoque de resolución baja.

Medio

Ejemplo de configuración de desenfoque de resolución media.

Alto

Ejemplo de configuración de desenfoque de resolución alta.

Cuadro

Modo Box para usar en la depuración de la salida.

Negro

El modo de caja negra cubre todas las caras con cajas negras.

Elementos del archivo JSON de salida

El procesador multimedia de censura proporciona detección de ubicación y seguimiento de rostros de alta precisión que puede detectar hasta 64 caras humanas en un fotograma de vídeo. Las caras de frente ofrecen los mejores resultados, mientras que las que se encuentran de lado y las caras pequeñas (inferiores o iguales a 24x24 píxeles) podrían no ser tan precisas.

El trabajo genera un archivo de salida JSON que contiene metadatos de los rostros detectados y de los que se ha realizado seguimiento. Los metadatos incluyen coordenadas que indican tanto la ubicación de los rostros como un número de identificación de rostro, que indica que se realiza un seguimiento de dicha persona. Los números de identificación de cara son propensos a restablecerse en circunstancias en las que la cara de frente se pierde o se superpone en el fotograma, lo que provoca que a algunas personas se les asigne varios identificadores.

La salida JSON incluye los siguientes elementos:

Elementos raíz JSON

Elemento Descripción
version Esto se refiere a la versión de la API de vídeo.
timescale "Tics" por segundo del vídeo.
offset Se trata de la diferencia de tiempo para las marcas de tiempo. En la versión 1.0 de las API de vídeo, será siempre 0. En los escenarios futuros que se admitan, este valor puede cambiar.
width, hight El alto y ancho del fotograma de vídeo de salida, en píxeles.
framerate Fotogramas por segundo del vídeo.

Elementos JSON de fragmentos

Elemento Descripción
start La hora de inicio del primer evento, en "tics".
duration La longitud del fragmento, en "tics".
índice (Se aplica solo a Azure Media Redactor) define el índice del marco del evento actual.
interval El intervalo de cada entrada de evento dentro del fragmento, en "tics".
events Cada evento contiene las caras detectadas y seguidas dentro de esa duración de tiempo. Es una matriz de eventos. La matriz externa representa un intervalo de tiempo. La matriz interna consta de 0 o más eventos que ocurrieron en ese momento en el tiempo. Un corchete vacío significa que no se detectaron caras.
id El identificador de la cara que se sigue. Este número puede cambiar inadvertidamente si una cara deja de detectarse. Una persona determinada debe tener el mismo identificador durante todo el vídeo, pero esto no se puede garantizar debido a las limitaciones en el algoritmo de detección (oclusión, etc.).
x, y Las coordenadas X e Y de la parte superior izquierda del cuadro de límite en una escala normalizada de 0,0 a 1,0.
-Las coordenadas X e Y son relativas siempre a la posición horizontal, por lo que si tiene un vídeo en vertical (o boca a abajo, en el caso de iOS), tendrá que transponer las coordenadas en consecuencia.
width, height El ancho y alto del cuadro de límite de la cara en una escala normalizada de 0,0 a 1,0.
facesDetected Este atributo se encuentra al final de los resultados JSON y resume el número de caras que el algoritmo detectó durante el vídeo. Dado que los identificadores pueden restablecerse inadvertidamente si una cara deja de detectarse (por ejemplo, la cara sale de la pantalla o aparta la vista), este número puede no ser siempre el número real de caras en el vídeo.

Obtener ayuda y soporte técnico

Puede ponerse en contacto con Media Services con preguntas o seguir nuestras actualizaciones mediante uno de los métodos siguientes: