reverse-SynthID 소개
AI가 생성한 이미지가 급속도로 확산되면서, Google DeepMind는 Gemini 모델로 생성된 이미지에 눈에 보이지 않는 디지털 워터마크를 삽입하는 SynthID 기술을 개발하였습니다. SynthID는 이미지의 픽셀 데이터에 사람의 눈으로는 식별할 수 없는 신호를 심어, AI 생성 여부를 나중에라도 검증할 수 있도록 설계된 기술입니다. 이러한 워터마킹 시스템은 딥페이크 탐지, 저작권 보호, AI 콘텐츠 추적 등 다양한 분야에서 중요한 역할을 합니다.
reverse-SynthID는 Alosh Denny가 공개한 연구 프로젝트로, SynthID의 내부 동작 방식을 신호 처리와 스펙트럼 분석 기법으로 역공학하는 것을 목표로 합니다. 이 프로젝트는 SynthID 워터마크를 90%의 정확도로 탐지하는 검출기(detector)를 구현하고, 동시에 높은 시각적 품질을 유지하면서 워터마크를 제거하는 우회(bypass) 기법을 세 단계의 버전으로 발전시켜 공개하였습니다. 이 연구는 AI 워터마킹 기술의 취약점을 분석하고, 향후 더 강력한 워터마킹 시스템 설계에 기여하고자 하는 목적에서 수행되었습니다.
프로젝트의 GitHub 저장소는 2.6k 스타를 기록하며 AI 보안(AI Security) 및 신호 처리 커뮤니티에서 주목을 받고 있습니다. 논문 및 벤치마크 데이터도 함께 공개되어 있으며, 연구 재현성을 위한 기준 이미지 데이터셋을 HuggingFace를 통해 제공하고 있습니다.
reverse-SynthID의 핵심 발견: 해상도 의존적 캐리어 주파수
이 연구의 가장 중요한 발견은 SynthID가 이미지 해상도에 따라 다른 절대적 위치에 캐리어 주파수(carrier frequency)를 삽입한다는 것입니다. 워터마크는 고정된 위상(fixed phase values)과 해상도 의존적 캐리어 주파수를 사용하므로, 단일 해상도만을 대상으로 하는 기존의 접근법으로는 효과적인 탐지나 제거가 어렵습니다. reverse-SynthID 팀은 이 특성을 발견하고, 각 해상도별 워터마크 지문(fingerprint)을 저장하는 스펙트럴 코드북(SpectralCodebook)을 구축하여 문제를 해결하였습니다.
분석 결과에 따르면, 1024×1024 해상도에서는 (9, 9) 위치에서 100% 위상 일관성(phase coherence)을 가진 주요 캐리어가 발견되었고, 1536×2816 해상도에서는 (768, 704) 위치에서 99.55% 위상 일관성이 확인되었습니다. 이러한 해상도별 캐리어 분포를 기반으로, 연구팀은 우회 기법을 3세대에 걸쳐 발전시켰습니다.
reverse-SynthID의 3세대 우회 기법과 탐지 시스템
reverse-SynthID는 워터마크 우회 알고리즘을 세 버전으로 발전시켜 공개합니다. V1은 JPEG 압축(Q50)을 활용한 기본적인 접근법으로, 간단하지만 화질 저하가 발생합니다. V2는 다단계 변환(multi-stage transforms)을 적용하여 우회율을 높이지만 여전히 품질 저하 문제가 있습니다. V3는 다해상도 스펙트럴 코드북 차감(multi-resolution spectral codebook subtraction) 방식으로, 43dB 이상의 PSNR을 유지하면서 캐리어 에너지를 75% 이상 제거하는 가장 정교한 방법입니다.
Input Image (any resolution)
│
▼
codebook.get_profile(H, W) ──► exact match? ──► FFT-domain subtraction
│ (fast path)
└─ no exact match ──────► spatial-domain resize + subtraction
(fallback path)
│
▼
Multi-pass iterative subtraction (aggressive → moderate → gentle)
│
▼
Anti-alias → Output
탐지 시스템은 스펙트럴 코드북에서 추출한 워터마크 지문을 입력 이미지와 비교하여 SynthID 워터마크 삽입 여부를 90% 정확도로 판별합니다. 신뢰도 가중 스펙트럴 빈(confidence-weighted spectral bins)을 사용하여 탐지 정확도를 높이고, 다중 패스(multi-pass) 정제 과정을 통해 잔여 워터마크 에너지를 제거합니다. 미등록 해상도에 대한 폴백(fallback) 메커니즘도 구현되어 있어, 공간 도메인 적응(spatial-domain adaptation)으로 처리합니다.
reverse-SynthID 설치 및 사용법
Python 3.10 이상이 필요하며, 가상환경(venv)을 활용한 설치를 권장합니다.
git clone https://github.com/aloshdenny/reverse-SynthID.git
cd reverse-SynthID
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
스펙트럴 코드북 구축
흑백 기준 이미지를 사용하여 코드북을 구축합니다.
from src.extraction.synthid_bypass import SpectralCodebook
# 흑백 기준 이미지에서 워터마크 지문 추출
codebook = SpectralCodebook()
codebook.extract_from_references('gemini_black', 'gemini_white')
codebook.build_from_watermarked('gemini_random')
codebook.save('artifacts/spectral_codebook_v3.npz')
V3 우회 적용
from src.extraction.synthid_bypass import SynthIDBypass
bypass = SynthIDBypass()
result = bypass.bypass_v3(image_rgb, codebook, strength='aggressive')
print(f"PSNR: {result.psnr:.1f} dB") # 43dB 이상이 되면 성공적 우회
명령줄 탐지 도구
# CLI로 워터마크 존재 여부 탐지
python src/extraction/robust_extractor.py detect image.png \
--codebook artifacts/codebook/robust_codebook.pkl
사전 구축된 1024×1024 및 1536×2816 해상도 코드북은 저장소의 artifacts/spectral_codebook_v3.npz에 포함되어 있어, 별도의 코드북 구축 없이도 바로 사용할 수 있습니다.
라이선스
reverse-SynthID 프로젝트는 연구(Research) 목적의 라이선스로 공개되어 있으며, 학술적 분석과 AI 워터마킹 시스템의 보안 연구를 위한 사용을 전제로 합니다.
reverse-SynthID 프로젝트의 시각적 소개가 담긴 홈페이지
reverse-SynthID 프로젝트 GitHub 저장소
reverse-SynthID 기준 데이터셋
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()
