Figura 1: Una ilustración de la generación de perturbaciones adversas para salvaguardar imágenes personales. |
Bienvenido al repositorio oficial del artículo Edit Away and My Face Will not Stay: Personal Biometric Defense Against Malicious Generative Editing.
Los avances recientes en los modelos de difusión han hecho que la edición generativa de imágenes sea más accesible que nunca. Si bien estos desarrollos permiten a los usuarios generar ediciones creativas con facilidad, también plantean importantes preocupaciones éticas, particularmente en relación con las ediciones maliciosas de retratos humanos que amenazan la privacidad y la seguridad de la identidad de las personas. Los métodos de protección de imágenes de uso general existentes se centran principalmente en generar perturbaciones adversas para anular los efectos de edición. Sin embargo, estos enfoques a menudo presentan inestabilidad para protegerse contra diversas solicitudes de edición. En este trabajo, presentamos una perspectiva novedosa para la protección de retratos humanos personales contra la edición maliciosa. A diferencia de los métodos tradicionales que tienen como objetivo evitar que las ediciones surtan efecto, nuestro método, FaceLock , optimiza las perturbaciones adversas para garantizar que la información biométrica original, como los rasgos faciales, se destruya o se altere sustancialmente después de la edición, lo que convierte al sujeto en el salida editada biométricamente irreconocible. Nuestro enfoque integra de manera innovadora el reconocimiento facial y los factores de percepción visual en el proceso de optimización de perturbaciones, lo que garantiza una protección sólida contra una variedad de intentos de edición. Además, arrojamos luz sobre varios problemas críticos con las métricas de evaluación comúnmente utilizadas en la edición de imágenes y revelamos métodos de trampa mediante los cuales pueden manipularse fácilmente, lo que lleva a evaluaciones engañosas de protección. A través de extensos experimentos, demostramos que FaceLock supera significativamente todas las líneas base en el rendimiento de defensa contra una amplia gama de ediciones maliciosas. Además, nuestro método también muestra una gran solidez frente a las técnicas de purificación. Nuestro trabajo no solo avanza en lo último en defensa biométrica, sino que también sienta las bases para prácticas más seguras y que preserven la privacidad en la edición de imágenes.
Proporcionamos un archivo conda env para la configuración del entorno.
conda env crear -f entorno.yml conda activar facelock
Comenzamos presentando el código para la edición y defensa de imágenes aplicado a una única imagen de entrada.
python edit.py --input_path=${ruta de entrada de la imagen} --prompt=${el mensaje de instrucción utilizado para editar la imagen} [--num_inference_steps=100 --image_guidance_scale=1.5 --guidance_scale=7.5 --help]
Explicación de argumentos:
input_path
la ruta a la imagen a editar
prompt
el mensaje de instrucción utilizado para editar la imagen
Configuraciones num_inference, image_guidance_scale, guidance_scale
utilizadas para guiar el proceso de edición de imágenes
help
para ver otros argumentos para la edición de imágenes
python defender.py --input_path=${ruta de la imagen de entrada} --defend_method=${método de defensa seleccionado} [--attack_budget=0.03 --step_size=0.01 --num_iters=100 --help]
Explicación del argumento:
input_path
la ruta a la imagen a proteger
defend_method
el método de defensa seleccionado, proporcionamos opciones entre [encoder/vae/cw/facelock]
attack_budget, step_size, num_iters
hiperparámetros para el proceso de defensa
help
para ver otros argumentos para defender una sola imagen
A continuación, ampliamos esto para demostrar el código para manejar la edición y defensa de imágenes en múltiples imágenes.
python main_edit.py --src_dir=${directorio de imagen de entrada} --edit_dir=${directorio de imagen de salida} [--num_inference_steps=100 --image_guidance_scale=1.5 --guidance_scale=7.5 --help]
Explicación de argumentos:
src_dir
la ruta al directorio de las imágenes de origen que se editarán
edit_dir
la ruta al directorio que contiene las imágenes editadas generadas
Otros argumentos son similares a la versión de edición de una sola imagen, use help
para ver más detalles.
python main_defend.py --image_dir=${directorio de imagen de entrada} --output_dir=${directorio de imagen de salida} --defend_method=${método de defensa seleccionado} [--attack_budget=0.03 --step_size=0.01 --num_iters=100 --ayuda]
Explicación de argumentos:
image_dir
la ruta al directorio de las imágenes de origen que se protegerán
output_dir
la ruta al directorio que contiene las imágenes protegidas generadas
Otros argumentos son similares a la versión que defiende una sola imagen. Utilice help
para ver más detalles.
Proporcionamos el código de evaluación para calcular las métricas PSNR, SSIM, LPIPS, CLIP-S, CLIP-I, FR
mencionadas en el documento.
cd evaluación# PSNR metricpython eval_psnr.py --clean_edit_dir=${ruta a las ediciones limpias} --defend_edit_dirs ${secuencia de ruta a las ediciones protegidas} --seed=${la semilla utilizada para editar y evaluar}# SSIM metricpython eval_ssim.py --clean_edit_dir=${ruta a las ediciones limpias} --defend_edit_dirs ${secuencia de ruta a las ediciones protegidas} --seed=${la semilla utilizada para editar y evaluar}# LPIPS metricpython eval_lpips.py --clean_edit_dir=${ruta a las ediciones limpias} --defend_edit_dirs ${secuencia de ruta a las ediciones protegidas} --seed=${la semilla utilizada para editar y evaluar}# CLIP-S metricpython eval_clip_s.py --src_dir=${ruta a las imágenes de origen} --defend_edit_dirs ${secuencia de ruta a las ediciones protegidas} --seed=${la semilla utilizada para editar y evaluar} [--clean_edit_dir=${ruta a las ediciones limpias}]# CLIP-I metricpython eval_clip_i.py --src_dir=${ruta a las imágenes de origen} --defend_edit_dirs ${secuencia de ruta a las ediciones protegidas} --seed=${la semilla utilizada para editar y evaluar} [--clean_edit_dir=${ruta a las ediciones limpias}]# FR metricpython eval_facial.py --src_dir=${ruta a las imágenes de origen} --defend_edit_dirs ${secuencia de ruta a las ediciones protegidas} --seed=${la semilla utilizada para editar y evaluar} [--clean_edit_dir=${ruta a las ediciones limpias}]
Para PSNR
, SSIM
y LPIPS
, los cálculos se realizan entre las ediciones de las imágenes protegidas y las ediciones de las imágenes limpias. Por lo tanto, se requieren las entradas defend_edit_dirs
y clean_edit_dir
.
Para CLIP-S
, el cálculo involucra la imagen de origen, la imagen editada y el mensaje de edición. Para manejar sus instrucciones únicas, puede modificar utils.py
. Esto requiere entrada adicional para el directorio de la imagen de origen src_dir
. Si se proporciona clean_edit_dir
, los resultados CLIP-S
también se calcularán para las ediciones en imágenes desprotegidas.
Para CLIP-I
y FR
, los cálculos utilizan la imagen de origen y la imagen editada, compartiendo la misma configuración de entrada que CLIP-S
.
Si encuentra útil este repositorio para su investigación, considere citar nuestro trabajo:
@article{wang2024editawayfacestay, title={Edite lejos y mi cara no permanecerá: defensa biométrica personal contra la edición generativa maliciosa}, autor = {Hanhui Wang y Yihua Zhang y Ruizheng Bai y Yue Zhao y Sijia Liu y Zhengzhong Tu}, diario = {arXiv preprint arXiv:2411.16832}, }