El libre pensamiento para un internet libre

No estas registrado.  

Anuncio

Wifi-highpower.es es distribuidor oficial de Alfa Network

#1 25-10-2021 19:26:15

kcdtv
Administrator

Registrado: 14-11-2014
Mensajes: 5,477

Deface, potente herramienta para censurar rostros en videos y fotos

Deface, potente herramienta para censurar rostros en videos y fotos

¡Muy buenas a [email protected]!

  Hoy les voy a hablar de deface, una herramienta escrita en python, que difumina automáticamente las caras en las imágenes y los videos .
  No estoy al tanto de los detalles legales pero sé cómo todo el mundo que cada uno tiene "derecho de autores" sobre su imagen y que la recién legislación europea para la protección de los datos privados reafirma este principio en la via publica y en la web. 
El uso de filtros para desenfocar automáticamente las caras de las personas en las fotos de google streets confirma que no hacerlo supone un riesgo jurídico. 
   
Más allá de las consideraciones legales hay miles de situaciones que generan dilemas  éticos,
Tomando un ejemplo muy concreto, personalmente no pondría en mi Facebook. Instagram etc... fotos o videos con las caras de mis [email protected]
Consideraría que son [email protected] quienes deben elegir cuándo y cómo se expondrán en la redes (si quieren).
Cuál sea nuestro motivo, Deface está aquí para sacar sencillamente la espina que tenemos clavada.

Instalación

Siguiendo la instrucciones del repositorio github de deface se recomienda emplear el gestor de paquetes de pỳthon: pip.

python3 -m pip install deface

Tendremos en un sistema "vanilla" a esta advertencia

WARNING: The scripts imageio_download_bin and imageio_remove_bin are installed in '/home/kcdtv/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The scripts lsm2bin, tiff2fsspec, tiffcomment and tifffile are installed in '/home/kcdtv/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The script skivi is installed in '/home/kcdtv/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The script tqdm is installed in '/home/kcdtv/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
  WARNING: The script deface is installed in '/home/kcdtv/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.

Para probar el programa sin tocar la configuración del sistema debemos simplemente situar la consola en la ruta indicada.

cd /home/kcdtv/.local/bin

   

Uso

Para mirar las opciones hacemos

deface -h
usage: deface [--output O] [--thresh T] [--scale WxH] [--preview] [--boxes]
              [--draw-scores] [--mask-scale M]
              [--replacewith {blur,solid,none}]
              [--ffmpeg-config FFMPEG_CONFIG] [--backend {auto,onnxrt,opencv}]
              [--version] [--help]
              [input [input ...]]

Video anonymization by face detection

positional arguments:
  input                 File path(s) or camera device name. It is possible to
                        pass multiple paths by separating them by spaces or by
                        using shell expansion (e.g. `$ deface vids/*.mp4`). If
                        a camera is installed, a live webcam demo can be
                        started by running `$ deface cam` (which is a shortcut
                        for `$ deface -p '<video0>'`.

optional arguments:
  --output O, -o O      Output file name. Defaults to input path + postfix
                        "_anonymized".
  --thresh T, -t T      Detection threshold (tune this to trade off between
                        false positive and false negative rate). Default: 0.2.
  --scale WxH, -s WxH   Downscale images for network inference to this size
                        (format: WxH, example: --scale 640x360).
  --preview, -p         Enable live preview GUI (can decrease performance).
  --boxes               Use boxes instead of ellipse masks.
  --draw-scores         Draw detection scores onto outputs.
  --mask-scale M        Scale factor for face masks, to make sure that masks
                        cover the complete face. Default: 1.3.
  --replacewith {blur,solid,none}
                        Anonymization filter mode for face regions. "blur"
                        applies a strong gaussian blurring, "solid" draws a
                        solid black box and "none" does leaves the input
                        unchanged. Default: "blur".
  --ffmpeg-config FFMPEG_CONFIG
                        FFMPEG config arguments for encoding output videos.
                        This argument is expected in JSON notation. For a list
                        of possible options, refer to the ffmpeg-imageio docs.
                        Default: '{"codec": "libx264"}'.
  --backend {auto,onnxrt,opencv}
                        Backend for ONNX model execution. Default: "auto"
                        (prefer onnxrt if available).
  --version             Print version number and exit.
  --help, -h            Show this help message and exit.

Tenemos a una opción "preview" que viene bien para probar las opciones.
Me saco un selfi para probar deface a palos secos:

./deface --preview '/ruta/selfi.jpg'

Se  abre una ventana emergente con el resultado:

deface_1.jpg

Cerramos  con  la tecla Q o Esc
Para hacer por ejemplo cuadrados negros en lugar de círculos difuminados sería así:

 ./deface --preview --boxes --replacewith solid '/ruta/Imágen.jpg'

   

deface_2.jpg

El algoritmo para reconocer los rosotros funciona de maravilla.:plus_un:
Además podemos parametrizar el algoritmo de detección mirando el indice de cada zona censurada haciendo uso de la opción --thresh (valor por defecto 0.2).

./deface --preview --draw-scores '/ruta/foto.jpg' 

deface_3.jpg

En este caso se han detectado correctamente todas las caras, la zona censurada es un poco gorda,podemos reducirla con la opción  --mask-scale
El valor por defecto es 1.3, a mi me basta con 0.9 y prefiero la forma cuadrada

 ./deface --preview --mask-scale 0.9  --boxes  '/home/kcdtv/Imágenes/índice2.jpeg' 

deface_4.jpg

Censurar videos

  Si no estás familiarizado con la edición de videos debes saber que consume recursos por un tubo.
Con lo cuál es interesante destacar que deface permite el uso de la aceleración mediante hardware GPU compatbiles con CUDA
Hay que instalar (mediante pip) onnx y deface usará estos recursos extras de forma automática.

 python3 -m pip install onnx onnxruntime-gpu

  Otro punto a tomar en cuenta es la calidad del video.
Si es superior a 720p el algoritmo de detección puede fallar y el gasto de recursos será máximo. 
Para obtener un buen resultado y reducir el consumo de recursos tenemos a la opción --scale
Para un video en ratio 16:9 con alta definición podríamos probar en resolución 360p con

--scale 640x360

 
La bueno es que no afectará la cualidad, se trabaja en 360p para censurar y se vuelve a 720p o más para el resultado final.

  La precisión de la detección de rostros es bastante impresionante con los parámetros por defecto.   
Podéis ver a continuación el resultado puesto en formato gif de un video de alta definición en una manifestación

whfz.gif

  ¡No deja pasar ni un solo rostro! cool
 
fuentes

Desconectado

Anuncio

Wifi-libre.com: El libre pensamiento para un internet libre / Regístrese ahora

Pie de página

Información del usuario

Ultimo usuario registrado: posgrau
Usuarios registrados conectados: 0
Invitados conectados: 5

Estadisticas de los foros

Número total de usuarios registrados: 2,256
Número total de temas: 1,565
Número total de mensajes: 14,962

Máx. usuarios conectados: 373 el 30-09-2019 15:04:36