docs: explain full-band activity workflow

This commit is contained in:
2026-08-29 14:03:38 +09:00
parent 51e346a477
commit 764cf28cf8
9 changed files with 252 additions and 19 deletions
+49 -4
View File
@@ -1,9 +1,10 @@
# Acoustic Camera
Scene과 마이크 배열로 자유음장 또는 저비용 shoebox microphone signal을 합성하고, STFT와
DAS·DAS-PHAT·GCC-PHAT 위치추정으로 주파수 대역별 acoustic map과 ground-truth 평가 지표를
만드는 브라우저 앱입니다. 정지 장면은 Snapshot, trajectory 장면은 Moving 흐름으로 분리되어
있습니다.
Scene과 마이크 배열로 자유음장 또는 저비용 shoebox microphone signal을 합성하고, 표준
CA/OS-CFAR·Dixon spectral flux로 ADC 대역 후보를 보거나 STFT와
DAS·DAS-PHAT·GCC-PHAT·MUSIC 위치추정으로 주파수 대역별 acoustic map과 ground-truth 평가
지표를 만드는 브라우저 앱입니다. 정지 장면은 Snapshot, trajectory 장면은 Moving 흐름으로
분리되어 있습니다.
## 열기와 Snapshot
@@ -55,6 +56,50 @@ Camera가 SHA-256을 계산해 manifest에 연결합니다. 같은 이름이라
파일은 외부로 업로드되지 않고 브라우저 메모리에서만 처리됩니다.
## 전 대역 활동 후보 찾기
분석 주파수를 미리 모를 때는 분석 대역 아래의 **전 대역 활동 검사**를 펼칩니다.
이 흐름은 위치추정 map과 별도이며 다음 순서로 사용합니다.
1. 실제로 관찰할 물리 마이크 한 채널을 고릅니다.
2. 좁은 spectral outlier에는 OS-CFAR 또는 CA-CFAR, 갑작스러운 onset에는
Dixon spectral flux를 고릅니다.
3. **전 대역 검사**를 누르고 frame별 원시 결과를 확인합니다.
4. CFAR가 표시한 ADC bin에 대응한다고 가정할 아날로그 center를 직접 입력합니다.
5. **이 가설을 대역으로 추가**한 뒤 DAS·PHAT·GCC-PHAT·MUSIC으로 배열 위치응답을 비교합니다.
6. 모든 complete frame과 모든 tested/untested bin은 **Activity JSON**으로 저장합니다.
Activity worker는 Scene과 선택한 마이크의 위치·응답으로 물리 수신 신호를 합성하지만,
음원 위치·주파수·개수 정답은 detector 함수에 전달하지 않습니다. 선택하지 않은 마이크는
합성하거나 평균·투표하지 않습니다. 위치추정 band, algorithm, backend 또는 배경 image 연결이
잘못돼 Snapshot을 실행할 수 없어도, Scene·선택 마이크·STFT·합성 최소 거리와 필요한 audio
asset이 유효하면 Activity는 실행할 수 있습니다.
CFAR는 Hann STFT의 각 complete frame을 독립 검사합니다. DC, Nyquist와 좌우 full
reference window가 없는 edge bin은 reference 수를 줄이거나 wrap하지 않고 untested로 남깁니다.
Pfa는 IID exponential square-law 배경을 가정한 tested CUT 하나당 명목 오경보율이며
위치 확률, confidence, frame 전체 오경보율 또는 실측 보정값이 아닙니다. 화면에는 CUT,
reference, threshold와 ratio를 그대로 표시합니다.
Dixon spectral flux는 Hamming STFT의 연속 frame 사이에서 증가한 linear magnitude의
full-DFT L1 합입니다. 지속 activity가 아니라 onset novelty입니다. Böck–Krebs–Schedl
causal peak picker는 기본으로 꺼져 있고, 켤 때도 delta는 확률이 아닌 사용자 보정값입니다.
Frame start는 설명용 시각이며 **available** 시각이 실제 causal 판정 가능 시각입니다.
Scene의 peak normalization을 선택했다면 선택한 한 채널의 전체 render peak가 detector 전에
적용됩니다. 이 경우 detector 자체는 입력 이후 causal이어도 spectral-flux 절대값과 delta
event를 포함한 end-to-end 전처리는 미래 sample에 의존하며, UI와 JSON에 이를 표시합니다.
물리 scale을 그대로 비교하려면 Scene normalization을 none으로 두세요.
검출기가 관찰하는 주파수는 ADC의 0…Fs/2뿐입니다. 예를 들어 Fs=48 kHz에서 ADC 1,125 Hz로
보인 성분은 1,125 Hz, 46,875 Hz, 49,125 Hz 등 여러 아날로그 carrier와 양립합니다.
Nyquist 초과 가설도 0–1 MHz 검증 범위에서 허용하지만 alias order와 spectral inversion은
자동 선택하지 않습니다. 각 가설을 FFT-grid center의 별도 band로 추가합니다. CFAR와 flux,
서로 다른 band 또는 위치 map을 합의·평균·maximum으로 자동 결합하지 않습니다.
수식, 통계 가정, 문헌과 raw output 계약은
[전 대역 활동 검출 모델](../../docs/activity-detection.md)을 참고하세요.
## 위치 추정 알고리즘과 Backend
**분석 설정 → 위치 추정 알고리즘**에서 다음 네 구현을 선택합니다.