fix(pipeline): 스티칭 버그 3종 수정 + AI 마디번호 스탬프 제거
- [BUG1] _merge_scroll_candidates: 씬전환 가속도 조건 제거 (9→1 세그먼트) - [BUG2] merge_panoramas_list: 매칭 임계치 0.60→0.50 (파노라마 3→1 병합) - [BUG3] _detect_measure_bars: 마디선 최소간격 100px 필터 추가 (17px 오탐 제거) - remove: _stamp_measure_number 호출 제거 (AI 임의 [1][2][3] 스탬프 삭제) - add: sim_stitch.py, simulate_ocr_pipeline.py, verify_fixes.py (진단/검증 스크립트)
This commit is contained in:
@@ -27,18 +27,17 @@ Raw Frames → HSV Strip 검출 → Median Crop → MSE 1차 → 파노라마
|
||||
|
||||
| 날짜 | 변경 내용 |
|
||||
|------|-----------|
|
||||
| 2026-03-27 | **[BUG1]** `_merge_scroll_candidates` 씬전환 가속도 조건 제거 → 씬전환 오탐 9→1 |
|
||||
| 2026-03-27 | **[BUG2]** `merge_panoramas_list` 매칭 임계치 0.60→0.50 → 파노라마 분리 3→1 |
|
||||
| 2026-03-27 | **[BUG3]** `_detect_measure_bars` 마디선 최소간격 필터 100px 추가 → 오탐(17px) 제거 |
|
||||
| 2026-03-25 | 마디번호 기반 중복 검색 기능(OCR) 파이프라인 적용 |
|
||||
| 2026-03-25 | 1080p 에러 방지용 720p 폴백(다운스케일링 부하 원천 차단) 도입 |
|
||||
| 2026-03-25 | 1080p 우선 다운로드 + MAX_FRAME_WIDTH=1280 캡 (OOM 방지) |
|
||||
| 2026-03-25 | dHash 32×32 + max_hamming=20으로 pHash 정밀도 향상 |
|
||||
| 2026-03-25 | 파노라마 스티칭: 템플릿 매칭 스크롤 오프셋 검출 + 연속 프레임 합성 |
|
||||
| 2026-03-25 | HSV 트림: 연속된 흰색 행 영역 찾기 (검은색 끊김 허용) 개선 |
|
||||
| 2026-03-25 | overlay 프레임 수 최적화: 858→51프레임 (OVERLAY_SIMILARITY_THRESHOLD=0.55) |
|
||||
| 2026-03-24 | 패턴 감지 고도화: overlay→split→scroll 우선순위 |
|
||||
| 2026-03-24 | 히스토그램 비교 → MSE 픽셀 비교로 전환 |
|
||||
|
||||
## 알려진 제한사항
|
||||
|
||||
- 1080p 처리 시 여전히 중복 프레임 존재 가능 (마디번호 기반 추가 검증 필요)
|
||||
- 프레임 하단 기타리스트 영상이 탭 행 아래에 소량 노출됨 (`_trim_to_content` 개선 필요)
|
||||
- 순차 영상 처리 시 메모리 누적 주의 (gc.collect 필수)
|
||||
- test_pipeline.py 아직 메인 코드와 완전 통합 안 됨
|
||||
|
||||
@@ -85,8 +85,27 @@
|
||||
- **해결**: 스크롤 방식에서는 오직 물리적 마디 구분선(|)을 기준으로 분절 후 재배치하는 타일 엔진 도입
|
||||
- **주의**: Scroll 파노라마 같은 선형 시계열 구조에서는 지엽적 Hash 기반 중복제거를 적용하면 안 됨
|
||||
|
||||
### [2026-03-27] Crop 마진 — 마디 번호 소실 (Decapitation)
|
||||
### [2026-03-28] Crop 마진 — 마디 번호 소실 (Decapitation)
|
||||
- **증상**: 입력 영상 최상단에 존재하는 숫자(마디 번호)가 출력물에서 무차별적으로 잘려나감
|
||||
- **원인**: 밀도 필터(row_dark > 0.02)에서 숫자 픽셀이 차지하는 비율이 가로폭 대비 0.4%에 불과하여 여백으로 간주됨
|
||||
- **해결**: 필터링 임계점을 0.002로 대폭 완화 및 Top Clearance Margin을 120px로 확장
|
||||
- **주의**: 심볼 밀도가 극히 낮은 구역 통과 시 % 기반의 밀도 크롭 알고리즘은 치명적으로 작용함
|
||||
|
||||
### [2026-03-28] 씬전환 오탐 — 스크롤 가속도 조건
|
||||
- **증상**: 스크롤 속도가 급격히 변하는 구간(예: 빠른 이동)에서 씬전환으로 오탐 → 세그먼트 9개로 과다 분리
|
||||
- **원인**: `_merge_scroll_candidates`의 `abs(s_px - prev_s_px) > 100` 조건이 스크롤 가속을 씬전환으로 오인
|
||||
- **해결**: 해당 조건 제거. confidence 기반 조건(`conf <= 0.15`, `prev_conf - conf > 0.4`)만 유지
|
||||
- **주의**: 스크롤 속도는 영상마다 다르므로 절댓값 기반 조건은 신뢰할 수 없음
|
||||
|
||||
### [2026-03-28] 파노라마 병합 임계치 — 반복 구간 분리
|
||||
- **증상**: 코러스처럼 유사한 구간에서 `merge_panoramas_list` 매칭 스코어가 0.56~0.59에 머물러 파노라마가 3개로 분리됨
|
||||
- **원인**: `max_val > 0.60` 임계치가 반복성 악보의 픽셀 유사도를 커버하지 못함
|
||||
- **해결**: 임계치 0.60 → 0.50으로 완화
|
||||
- **주의**: 임계치를 낮추면 오매핑 위험이 있으므로 0.50 이하로는 내리지 말 것
|
||||
|
||||
### [2026-03-28] OCR-First 방식 — 스크롤 영상 적용 불가
|
||||
- **증상**: 각 프레임에서 마디번호 OCR 시도 시 인식률 4.8% (126프레임 중 6개만 인식)
|
||||
- **원인**: 스크롤 영상에서 마디번호는 화면 왼쪽 고정이 아닌 악보와 함께 이동 → 프레임마다 위치 다름. 오인식 결과(7→10→71→101→710)도 다수
|
||||
- **해결**: OCR-First 방식 폐기. 파노라마 스티칭 후 물리적 마디구분선(|) 탐지 방식 유지
|
||||
- **주의**: 스크롤 영상에서 마디번호 기반 중복제거는 파노라마를 완성한 뒤 적용해야 의미가 있음
|
||||
|
||||
|
||||
Reference in New Issue
Block a user