noise_inconsistency_map — IMGFORENSICS noise op

데이터 종류: image2dimage2d

호출: 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_auditpy -3.11 examples/image_forensics_audit.py

poc_forensics_rocpy -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.