Figura 1: Uma ilustração da geração de perturbações adversárias para salvaguardar imagens pessoais. |
Bem-vindo ao repositório oficial do artigo Edit Away and My Face Will not Stay: Personal Biometric Defense against Malicious Generative Editing.
Avanços recentes em modelos de difusão tornaram a edição generativa de imagens mais acessível do que nunca. Embora estes desenvolvimentos permitam aos utilizadores gerar edições criativas com facilidade, também levantam preocupações éticas significativas, particularmente no que diz respeito a edições maliciosas em retratos humanos que ameaçam a privacidade e a segurança da identidade dos indivíduos. Os métodos existentes de proteção de imagem de uso geral concentram-se principalmente na geração de perturbações adversárias para anular os efeitos de edição. No entanto, essas abordagens geralmente apresentam instabilidade para proteção contra diversas solicitações de edição. Neste trabalho, apresentamos uma nova perspectiva para a proteção de retratos humanos contra edições maliciosas. Ao contrário dos métodos tradicionais que visam impedir que as edições tenham efeito, nosso método, FaceLock , otimiza perturbações adversárias para garantir que as informações biométricas originais - como características faciais - sejam destruídas ou substancialmente alteradas após a edição, tornando o sujeito no saída editada biometricamente irreconhecível. Nossa abordagem integra de forma inovadora o reconhecimento facial e fatores de percepção visual no processo de otimização de perturbações, garantindo proteção robusta contra uma variedade de tentativas de edição. Além disso, esclarecemos vários problemas críticos com métricas de avaliação comumente usadas na edição de imagens e revelamos métodos de trapaça pelos quais elas podem ser facilmente manipuladas, levando a avaliações enganosas de proteção. Através de extensos experimentos, demonstramos que o FaceLock supera significativamente todos os padrões de desempenho de defesa contra uma ampla gama de edições maliciosas. Além disso, nosso método também apresenta forte robustez contra técnicas de purificação. Nosso trabalho não apenas avança no que há de mais moderno em defesa biométrica, mas também estabelece as bases para práticas mais seguras e que preservam a privacidade na edição de imagens.
Fornecemos um arquivo conda env para configuração do ambiente.
conda env create -f ambiente.yml conda ativar facelock
Começamos apresentando o código para edição e defesa de imagens aplicado a uma única imagem de entrada.
python edit.py --input_path=${caminho da imagem de entrada} --prompt=${o prompt de instrução usado para editar a imagem} [--num_inference_steps=100 --image_guidance_scale=1.5 --guidance_scale=7.5 --help]
Explicação dos argumentos:
input_path
o caminho para a imagem a ser editada
prompt
o prompt de instruções usado para editar a imagem
configurações num_inference, image_guidance_scale, guidance_scale
usadas para orientar o processo de edição de imagem
help
para ver outros argumentos para edição de imagens
python defender.py --input_path=${caminho da imagem de entrada} --defend_method=${método de defesa selecionado} [--attack_budget=0,03 --step_size=0,01 --num_iters=100 --help]
Explicação do argumento:
input_path
o caminho para a imagem a ser protegida
defend_method
o método de defesa selecionado, oferecemos opções entre [encoder/vae/cw/facelock]
hiperparâmetros attack_budget, step_size, num_iters
para o processo de defesa
help
a visualizar outros argumentos para defender uma imagem única
A seguir, estendemos isso para demonstrar o código para lidar com a edição e defesa de imagens em múltiplas imagens.
python main_edit.py --src_dir=${diretório da imagem de entrada} --edit_dir=${diretório da imagem de saída} [--num_inference_steps=100 --image_guidance_scale=1.5 --guidance_scale=7.5 --help]
Explicação dos argumentos:
src_dir
o caminho para o diretório das imagens de origem a serem editadas
edit_dir
o caminho para o diretório que contém as imagens editadas geradas
outros argumentos são semelhantes à versão de edição de imagem única, use help
para ver mais detalhes
python main_defend.py --image_dir=${diretório da imagem de entrada} --output_dir=${diretório da imagem de saída} --defend_method=${método de defesa selecionado} [--attack_budget=0,03 --step_size=0,01 --num_iters=100 --ajuda]
Explicação dos argumentos:
image_dir
o caminho para o diretório das imagens de origem a serem protegidas
output_dir
o caminho para o diretório que contém as imagens protegidas geradas
outros argumentos são semelhantes à versão de defesa de imagem única, use help
para ver mais detalhes
Fornecemos o código de avaliação para calcular as métricas PSNR, SSIM, LPIPS, CLIP-S, CLIP-I, FR
mencionadas no artigo.
avaliação de cd# PSNR metricpython eval_psnr.py --clean_edit_dir=${caminho para as edições limpas} --defend_edit_dirs ${sequência do caminho para as edições protegidas} --seed=${a semente usada para editar e avaliar em}# SSIM metricpython eval_ssim.py --clean_edit_dir=${caminho para as edições limpas} --defend_edit_dirs ${sequence do caminho para as edições protegidas} --seed=${a semente usada para editar e avaliar}# LPIPS metricpython eval_lpips.py --clean_edit_dir=${caminho para as edições limpas} --defend_edit_dirs ${sequência do caminho para o edições protegidas} --seed=${a semente usada para editar e avaliar em}# CLIP-S metricpython eval_clip_s.py --src_dir=${caminho para as imagens de origem} --defend_edit_dirs ${sequência do caminho para as edições protegidas} --seed=${a semente usada para editar e avaliar em} [--clean_edit_dir=${caminho para o edições limpas}]# CLIP-I metricpython eval_clip_i.py --src_dir=${caminho para as imagens de origem} --defend_edit_dirs ${sequência de caminho para as edições protegidas} --seed=${a semente usada para editar e avaliar} [--clean_edit_dir=${caminho para as edições limpas}]# FR metricpython eval_facial.py --src_dir=${caminho para o imagens de origem} --defend_edit_dirs ${sequência do caminho para as edições protegidas} --seed=${a semente usada para editar e avaliar} [--clean_edit_dir=${caminho para as edições limpas}]
Para PSNR
, SSIM
e LPIPS
, os cálculos são realizados entre as edições nas imagens protegidas e as edições nas imagens limpas. Portanto, as entradas defend_edit_dirs
e clean_edit_dir
são obrigatórias.
Para CLIP-S
, o cálculo envolve a imagem de origem, a imagem editada e o prompt de edição. Para lidar com suas instruções exclusivas, você pode modificar utils.py
. Isso requer entrada adicional para o diretório de imagem de origem src_dir
. Se clean_edit_dir
for fornecido, os resultados CLIP-S
também serão calculados para as edições em imagens desprotegidas.
Para CLIP-I
e FR
, os cálculos usam a imagem de origem e a imagem editada, compartilhando as mesmas configurações de entrada do CLIP-S
.
Se você achar este repositório útil para sua pesquisa, considere citar nosso trabalho:
@article{wang2024editawayfacestay, title={Edite e meu rosto não permanecerá: defesa biométrica pessoal contra edição generativa maliciosa}, autor={Hanhui Wang e Yihua Zhang e Ruizheng Bai e Yue Zhao e Sijia Liu e Zhengzhong Tu}, diário={arXiv pré-impressão arXiv:2411.16832}, }