NCC(정규화 교차상관)로 워터마크 찾는 원리
워터마크 제거 도구는 워터마크를 제거하기 전에 먼저 정확한 위치를 찾아야 합니다. 이때 핵심적으로 사용되는 기술이 NCC(정규화 교차상관, Normalized Cross-Correlation)입니다. 알려진 패턴을 이미지에서 찾는 템플릿 매칭 기술의 한 종류인데,...
워터마크 제거 도구는 워터마크를 제거하기 전에 먼저 정확한 위치를 찾아야 합니다. 이때 핵심적으로 사용되는 기술이 NCC(정규화 교차상관, Normalized Cross-Correlation)입니다. 알려진 패턴을 이미지에서 찾는 템플릿 매칭 기술의 한 종류인데, 어떻게 동작하는지 알기 쉽게 정리했습니다.
1. NCC가 뭔가요?
NCC는 두 이미지 영역이 얼마나 비슷한지를 -1부터 1 사이의 점수로 측정하는 방법입니다. 1이면 완벽한 일치, 0이면 관련 없음, -1이면 완전히 반대를 의미합니다.
쉽게 말하면, "이 부분이 워터마크 모양과 얼마나 비슷한가?"를 숫자로 나타내는 방법입니다.
NCC가 유용한 이유:
- 밝기 독립: 어두운 배경이든 밝은 배경이든 같은 점수가 나옴 (평균을 빼기 때문)
- 대비 독립: 새 콘트라스트 높은 영역이든 낮은 영역이든 동일하게 평가 (표준편차로 나누기 때문)
- 범위 제한: 출력이 -1~1이라 임계값 설정이 쉼움
2. 워터마크를 찾는 과정
제미나이 워터마크 제거 도구는 사전에 캘리브레이션된 알파 맵(워터마크 패턴)을 기준으로 이미지의 특정 영역을 검사합니다.
과정:
- 도구에 48×48, 96×96 두 가지 워터마크 패턴이 내장되어 있음
- 이미지 해상도에 따라 적절한 패턴 선택 (1024px 기준)
- 우하단 고정 위치의 영역을 추출
- 이 영역과 패턴 사이의 NCC 점수 계산
- 점수가 임계값(0.35) 이상이면 "워터마크 있음"으로 판단
제미나이 워터마크는 위치가 고정(우하단, 32px 또는 64px 여백)되어 있으므로 이미지 전체를 검색할 필요 없이 한 지점만 확인하면 됩니다. 이 덕분에 처리가 매우 빠릅니다.
3. 3단계 앙상블: 더 정확한 탐지
고급 구현체는 단순 NCC만 쓰지 않고 세 가지 지표를 조합하여 정확도를 높입니다.
| 단계 | 방법 | 가중치 | 측정 대상 |
|---|---|---|---|
| 1. 공간 NCC | 밝기 패턴 상관관계 | 50% | 워터마크 모양이 이미지에 있는가? |
| 2. 그라디언트 NCC | Sobel 엣지 정렬 | 30% | 워터마크 경계선이 일치하는가? |
| 3. 분산 분석 | 텍스쳀 감쇠 측정 | 20% | 워터마크가 로컬 텍스쳀를 낮추는가? |
각 단계를 쉽게 설명하면:
공간 NCC: 이미지를 회색으로 변환한 뒤 픽셀 밝기 패턴이 워터마크 모양과 일치하는지 확인. 가장 기본적인 검사.
그라디언트 NCC: Sobel 연산자로 엣지(경계선)를 추출한 뒤 비교. 워터마크는 날카로운 가장자리를 만들기 때문에 복잡한 배경에서도 경계선이 들어맞는지 확인.
분산 분석: 워터마크 영역과 바로 위 영역의 표준편차를 비교. 반투명 흰색 오버레이인 워터마크는 지역 텍스쳀를 낮추기 때문에, 주변보다 분산이 낮으면 워터마크가 있을 가능성이 높습니다.
이 사이트의 도구를 만들면서 다양한 탐지 방식을 테스트해봤는데, 단순 NCC만으로는 복잡한 배경(그라데이션, 패턴)에서 오탐이 생기는 경우가 있었습니다. 여러 지표를 조합하니까 안정성이 확실히 높아졌습니다.
4. 실패하는 경우
NCC 기반 탐지는 만능이 아니며 몇 가지 한계가 있습니다.
- 이미지가 변형된 경우: 크롭/리사이즈로 워터마크 위치가 달라지면 고정 위치 검색이 실패
- 심한 JPEG 압축: 픽셀 값이 변형되어 NCC 점수가 낮아짐
- 단색 배경: 워터마크와 배경 모두 분산이 낮으면 NCC가 불안정해질 수 있음
- SynthID 탐지 불가: NCC는 보이는 패턴만 탐지. 비가시적 워터마크는 주파수 영역 분석이 필요
- 새로운 패턴: Google이 워터마크 디자인을 바꾸면 새로운 템플릿이 필요
5. 워터마크 제거와의 관계
NCC는 워터마크 제거 파이프라인의 첫 단계입니다. 위치를 찾은 후에 역알파 블렌딩으로 실제 제거가 이루어집니다.
전체 파이프라인:
- NCC로 워터마크 탐지 → 위치와 신뢰도 확인
- 역알파 블렌딩 → 수학으로 원본 픽셀 복원
- 결과 클램핑 → 픽셀 값을 0~255 범위로 제한
NCC가 없어도 제미나이 워터마크는 고정 위치이라 제거 자체는 가능합니다. NCC는 "정말 여기에 워터마크가 있는가?"를 확인하는 검증 단계로, 오탐을 줄여줍니다.
6. NCC의 다른 활용 분야
NCC 기반 템플릿 매칭은 워터마크 탐지 외에도 많은 분야에서 사용됩니다.
- 의료 영상: CT/MRI 슬라이스 정렬, 구조물 추적
- 제조 품질 관리: 정상 템플릿과 비교하여 결함 탐지
- 스테레오 비전: 좌/우 카메라 이미지 간 대응점 매칭
- 동영상 객체 추적: 프레임 간 패치 상관관계로 객체 위치 추적
- 위성 영상 정렬: 다른 시간대에 촬영된 영상 정렬
- 포렌식 이미지 분석: 복사-이동 위조 탐지
함께 보면 좋은글
- 역알파 블렌딩 vs AI 인페인팅: 기술 원리 비교 — NCC로 찾은 뒤 어떻게 제거하는지
- 나노바나나 워터마크 제거 안 될 때 해결법 — 탐지가 실패하는 원인과 해결방법
- 제미나이 워터마크 크기와 위치 — 48×48 vs 96×96 규격과 NCC가 검색하는 위치
Q&A
NCC 없이도 워터마크를 제거할 수 있나요?
네. 제미나이 워터마크는 위치가 고정되어 있으므로 NCC 없이 고정 좌표로 바로 제거할 수 있습니다. NCC는 "정말 여기에 워터마크가 있는가?"를 확인하는 검증 단계로, 오탐을 방지하는 역할입니다.
NCC로 SynthID도 찾을 수 있나요?
없습니다. NCC는 보이는 픽셀 패턴을 찾는 방법입니다. SynthID 같은 비가시적 워터마크는 주파수 영역 분석이나 전용 딥러닝 디텍터가 필요합니다.
3단계 앙상블은 왜 필요한가요?
단순 NCC만으로는 복잡한 배경(그라데이션, 반복 패턴)에서 오탐이 날 수 있습니다. 그라디언트와 분산 분석을 추가하면 서로 다른 관점에서 교차 확인하므로 정확도가 높아집니다.
임계값 0.35는 어떻게 정해진 건가요?
다양한 이미지로 테스트하여 오탐(워터마크 없는 이미지를 있다고 판단)과 미탐(워터마크 있는 이미지를 없다고 판단)을 최소화하는 값으로 결정된 것입니다. 사용자가 조정할 수도 있습니다.