Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Anti-Tamper-Perturbation — [ICCV 2025] 허가되지 않은 개인 이미지 생성을 위한 변조 방지 보호 | Kitploit
도구/GitHubGitHub/seeyn/anti-tamper-perturbation
SteganographyPapers & ResearchLearning & EducationAI SecurityAdversarial Attack
GitHubseeyn/anti-tamper-perturbation

Anti-Tamper-Perturbation

[ICCV 2025] 허가되지 않은 개인 이미지 생성을 위한 변조 방지 보호

저장소 보기
619개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🛡️ 무단 개인 이미지 생성을 위한 변조 방지 보호

ICCV 2025 논문 공식 코드
📄 무단 개인 이미지 생성을 위한 변조 방지 보호

Page 1 of PDF

⚙️ 환경 설정

root@kitploit:~
conda create --name ATP --file requirements.txt
conda activate ATP

🔐 ATP 실행

  1. CelebA-HQ 및 VGGFace2 데이터셋을 다운로드합니다. 데이터셋 링크는 CelebA-HQ, VGGFace2에서 확인할 수 있습니다. 인증 모델 학습을 위해 FFHQ도 다운로드해야 합니다.

  2. 인증 모델 가중치 및 가이딩 마스크를 다운로드합니다.

  3. configs/authorization.yaml에서 weights 경로를 설정하고 configs/protection.yaml에서 mask 경로를 설정합니다.

  4. 실행

root@kitploit:~
python perturb.py --device cuda:0 --input_dir path_to_cleanData --output_dir path_to_perturbedData --method CAAT --input-mask path_to_mask

생성 효율과 보호 성능 사이의 좋은 균형을 제공하는 CAAT와 ATP의 통합을 권장합니다. 또한 MetaCloak, Anti-DreamBooth 및 AdvDM 통합을 위한 코드도 제공합니다.

📁 출력 디렉터리 구조

root@kitploit:~
output_dir/
├── Authorized/  # Authorized images
|       ├ {id}/ # Authorized images separated by id
|       ├ Authorization_messages/ # Authorization messages for each image
└── ATP_{method}/     # Protected Images by ATP+{method}
         ├ {id}/ # ATP Perturbed images separated by id

🔍 검증

  1. configs/verification.yaml에서 weights 경로를 설정합니다.

  2. ✅ 정제 없이: 실행

root@kitploit:~
cd authorization
python verify.py --message_dir path_to_authorization_messages  --input_dir path_to_atp_protected_image --method CAAT
  1. 🔓 정제 상태에서
  • 기본 변환(Naive Transformation): 실행
root@kitploit:~
cd authorization
python verify.py --message_dir path_to_authorization_messages  --input_dir path_to_atp_protected_image --method CAAT --noise-args 2 --noise-type Resize
root@kitploit:~
cd authorization
python verify.py --message_dir path_to_authorization_messages  --input_dir path_to_atp_protected_image --method CAAT --noise-args 70 --noise-type JPEG
  • 고급 정제: GridPure
  1. 먼저 GridPure를 실행합니다.
  2. 실행
root@kitploit:~
cd authorization
python verify.py --message_dir path_to_authorization_messages  --input_dir path_to_atp_protected_image --method GridPure

예제 출력:

root@kitploit:~
Average Bit-Error: 0.44984375 Unauthorized image Ratio: 1.0 Pass Verification Identity Num: 0

"Pass Verification Identity Num"은 보호 성공률(PSR) 계산에 사용할 수 있습니다. 정제가 발생하고 해당 신원이 검증을 통과하지 못하면, 이를 성공적인 보호로 간주합니다.

🧑‍🎨 생성

이미지가 검증을 통과하면 생성에 사용할 수 있습니다.

  1. ✅ 정제 없이: 실행
root@kitploit:~
 cd generation
 python generate.py --input_dir path_to_image_for_generation --method CAAT --device cuda:0

결과는 "DREAMBOOTH" 디렉터리에 저장됩니다.

  1. 🔓 정제 상태에서

정제된 이미지는 검증 통과에 완전히 실패하여 실험에서 생성에 사용되지 않았지만, 비교를 위해 기준(baseline) 알고리즘 코드도 포함했습니다.

JPEG 및 Resize의 경우 실행:

root@kitploit:~
 cd generation
 python generate.py --input_dir path_to_image_for_generation --method CAAT --device cuda:0 --purification naive

GridPure의 경우 먼저 GridPure를 실행한 다음, 정제된 이미지를 사용하여 실행해야 합니다:

root@kitploit:~
 cd generation
 python generate.py --input_dir path_to_image_for_generation --method CAAT --device cuda:0 --purification gridpure

🧾 지표 계산

  1. celebahq, vggface에서 ID 임베딩을 다운로드합니다.

  2. ./configs/metrics.yaml에 정의된 설정을 수정합니다. 평가할 이미지 경로(instance_dir), 평가 결과 기록 파일을 저장할 디렉터리 경로(output_dir), 생성에 사용할 프롬프트, ID 임베딩 경로(id_emb_path)를 정의해야 합니다.

  3. url에서 LIQE.pt를 다운로드합니다. ./metrics/LIQE/checkpoints에 배치합니다.

root@kitploit:~
 cd metrics
 python eval_dir.py --dataset CelebA-HQ --method CAAT

평가 결과는 metrics.yaml에 정의한 output_dir에 저장됩니다.

root@kitploit:~
 python show.py --path evaluation_results

예제 출력:

root@kitploit:~
CLIP-IQAC       LIQE            ISM             FDFR             PSR
-0.176525       1.033371        0.489084        0.406250        0.859375

(eval_dir.py 코드의 67~68행(주석 처리됨)을 수정하면 기본 변환(naive transformation)에서 생성된 정제 결과도 평가할 수 있습니다.)

📈 학습

자체 인증 모델을 학습할 수도 있습니다.

./configs/authorization.yaml의 설정을 수정합니다.

root@kitploit:~
cd authorization

bash scripts/train.sh 

📚 감사의 글

이 프로젝트를 구축하기 위해 다음 프로젝트의 코드를 활용했습니다: LIQE, GridPure, ANTIDB, METACLOAK, CAAT, HiDDeN, BasicSR.

훌륭한 작업에 감사드립니다!

📌 이 프로젝트가 연구에 유용하다면, 저희 논문을 인용해 주시기 바랍니다.

© 2025 일리노이 대학교 이사회. 모든 권리 보유.

도구 다운로드
ArgumentDescriptionExample
--device모델을 실행할 GPU 결정cuda:0, cuda:1
--input_dir깨끗한 입력 이미지 경로./data/clean/
--output_dir변조된 이미지를 저장할 경로./data/perturbed/
--method보호 변조 방법CAAT, ANTIDB, ADVDM,METACLOAK
--input-mask마스크 경로./mask/050_mask.pt
ArgumentDescriptionExample
--message_dir_dir인증 메시지 디렉터리 경로./data/Authorization_messages
--input_dir검증할 이미지 경로./data/perturbed/
--method보호 변조 방법CAAT, ANTIDB, ADVDM,METACLOAK
--noise-args보호 변조 방법2, 50
--noise-type보호 변조 방법JPEG, Resize
ArgumentDescriptionExample
--dataset평가할 데이터셋CelebA-HQ, VGGFace2
--method보호 변조 방법CAAT, ANTIDB, ADVDM,METACLOAK