Búsqueda y censura (desenfoque) de caras con el valor preestablecido de Face Detector
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
Medio
Alto
Cuadro
Negro
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:
- PREGUNTAS Y RESPUESTAS
- Stack Overflow. Etiquete las preguntas con
azure-media-services
. - @MSFTAzureMedia o use @AzureSupport para solicitar soporte técnico.
- Abra una incidencia de soporte técnico a través del Azure Portal.