noise_inconsistency_map — IMGFORENSICS noise op

• 데이터 종류: image2d → image2d

• 호출: import fullseye as fs; fs.ledger.noise_inconsistency_map(image, block: 'int' = 16) -> 'np.ndarray'(구현을 직접 호출하려면 import imgforensics; imgforensics.noise_inconsistency_map(image, block: 'int' = 16) -> 'np.ndarray', 원장에서 가져오려면 opsimgforensics.get("noise_inconsistency_map"))

사용법

블록별 잡음 표준편차를 늘어놓은 지도. image2d.

Immerkær 1996의 3x3 마스크로 고주파 성분을 구하고, block 정사각의 비중첩 블록마다 sigma = sqrt(pi/2) / 6 * mean(|conv|)를 내어 블록 상수로 되돌린다. 붙인 영역이 다른 노출·다른 압축률·다른 카메라에서 왔다면, 이 값이주위와 단차가 된다.

정확도는 좋다(tests/test_imgforensics.py가 고정). 참 σ가 위쪽 절반 0.01· 아래쪽 절반 0.04(8 bit로 2.55와 10.20, 비 4.0)인 합성 화상에서 추정은 2.533과 10.214, 비 4.033 —— 절댓값도 비도 1% 이내.

이 지도가 말할 수 없는 것:

• 텍스처는 잡음으로 세어진다. Immerkær의 마스크는 라플라시안 같은 것이므로, 세밀한 무늬의 영역은 σ가 높게 나온다. 실측: 잡음은 위아래 모두 같은 σ=0.01이고, 아래쪽 절반에만 체크무늬를 더한 화상에서는 무늬 쪽 15.97 / 평탄 쪽 2.58 = 6.2배. 단차가 있어도 "변조"가 아니라 "무늬"일지도 모른다.

• 반대로 평활화된 변조는 σ가 내려가므로 보이지만, 평탄한 배경에 평탄한 물체를붙인 경우에는 차이가 나오지 않는다.

• JPEG는 잡음을 블록마다 깎으므로, 압축된 화상에서는 block을 8의 배수로하지 않으면 블록 격자와 간섭하여 줄무늬가 나온다(기본값 16은 8의 배수).

• ★ 화상의 가장자리에 변조와 무관한 단차가 반드시 나온다(2026-09-06 실측). 합성곱이 mode="reflect"로 되접기 때문에 바깥 둘레의 블록에서는 고주파가줄어 σ가 낮게 나온다. 변조 제로·균일 잡음의 256x256에서 최외곽 블록 띠 8.815에 대해 중심 9.537(-7.6 %). 같은 화상의 생 국소 std는 0.03491과 0.03563(-2.0 %)밖에 다르지 않으므로, 차이의 대부분은 추정기가 만들고 있다. 중앙값으로부터의 떨어짐으로 보면 최외곽 0.7173 / 중심 0.5948 = 1.21배. 화소별 ROC를 구하면 이것만으로 제로점 AUC가 0.5에서 벗어난다(examples/poc_forensics_roc.py의 실측으로 0.447). 바깥 둘레 1블록을판정에서 제외하거나, 중앙값을 위치별로 구할 것.

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• image_forensics_audit — py -3.11 examples/image_forensics_audit.py

• poc_forensics_roc — py -3.11 examples/poc_forensics_roc.py

타입이 이어지는 다음 연산자(image2d 를 입력으로 받는 것)

perceptual_hash · fingerprint_correlate · error_level_map · jpeg_quality_estimate · jpeg_ghost_map · copy_move_regions · watermark_embed · watermark_extract

같은 카테고리(noise)

—


*Provenance: imgforensics.py — IMGFORENSICS 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.