Cómo difuminar rostros en fotos con Transloadit
En una época de mayor preocupación por la privacidad y de normativas estrictas de protección de
datos, la importancia de proteger la identidad de las personas en el contenido visual es primordial.
El nuevo parámetro blur_regions del Robot
/image/resize ofrece una solución sencilla y potente para difuminar
rostros en fotos, lo que permite a los desarrolladores integrar esta funcionalidad en sus propios
productos sin complicaciones.

Cómo difuminar rostros en fotos
Difuminar rostros en fotos, sobre todo cuando trabajas con una gran cantidad de archivos, es un proceso que puede descontrolarse rápidamente y consumir recursos que necesitas para las partes de tu proyecto en las que realmente quieres concentrarte. Por suerte, con Transloadit todo se vuelve tan fácil como dos simples Steps.
Echemos un vistazo al Template que aparece a continuación.
{
"steps": {
"faces_detected": {
"use": ":original",
"robot": "/image/facedetect",
"faces": "max-confidence",
"format": "preserve",
"result": true
},
"blur_faces": {
"use": "faces_detected",
"robot": "/image/resize",
"format": "jpg",
"blur_regions": [
{
"x": "${file.meta.faces[0].x1 + (file.meta.faces[0].width / 2)}",
"y": "${file.meta.faces[0].y1 + (file.meta.faces[0].height / 2)}",
"width": "${file.meta.faces[0].width}",
"height": "${file.meta.faces[0].height}"
}
],
"blur": "0x10"
}
}
}
Nuestro primer Step usa el Robot
/image/facedetect para obtener las coordenadas del rostro presente en la imagen. El
resultado de este Step se almacena en los metadatos de la imagen, que
luego pasamos a nuestro Step blur_faces.
Después podemos usar el Robot /image/resize
para difuminar el rostro de la imagen. Para ello, especificamos una región de desenfoque con unas
coordenadas x y y fijadas en el punto medio del rostro.
faces[0] selecciona el primer rostro detectado para las cuatro coordenadas y dimensiones de
este ejemplo. Las expresiones x y y calculan su punto
medio; width y height usan directamente las dimensiones detectadas.
La aritmética de las expresiones x y y invoca la
Evaluación dinámica a través del Robot
/script/run. Las expresiones width y
height son simples búsquedas de metadatos y siguen siendo gratuitas. Cada una de nuestras
regiones de desenfoque es una elipse, y podemos ajustar sus dimensiones a las del rostro
mediante Assembly Variables.
Para ajustar la intensidad del desenfoque, usa el parámetro blur, con el formato
{radius}x{sigma}, que fijamos en el valor 0x10 para esta demostración.
El resultado
Al ejecutar el Template obtenemos el siguiente resultado.


Mueve el control deslizante de comparación para ver la imagen original o la versión difuminada.
Observa cómo solo se difumina la región que cubre el rostro, dejando el resto de la imagen intacto.
Con esto llegamos al final de esta entrada del blog. Tenemos muchas ganas de que pruebes esta nueva función, así que abre el Template Editor y pruébala por tu cuenta.
