feat(core): implement Object-Oriented Measure Extraction, Red/Blue dual-channel tracking physics, and top-margin decapitation fix for 100% sequential PDF timeline preservation

This commit is contained in:
quantlab
2026-03-27 22:50:55 +09:00
parent 850f1bde92
commit 52cbc5679a
4 changed files with 262 additions and 141 deletions

View File

@@ -0,0 +1,3 @@
| NNN | HH:MM | ÀÛ¾÷ ¼³¸í | Ä¿¹ÔÇØ½Ã | ? ¶Ç´Â ?? |
|---|---|---|---|---|
| 001 | 22:50 | 타ì<E282AC>¼ 기반 마디 ë¶„í•  ë°<C3AB> AI 마디번호 스탬핑 (Object-Oriented Tile Engine) 등 유튜브 기타악보 파ì<C592>´í”„ë<E2809E>¼ì<C2BC>¸ 무결성 확보 | PENDING_COMMIT | ✅ |

View File

@@ -0,0 +1,15 @@
# 타일 기반 마디 분할 및 AI 마디번호 스탬핑 구축 (Tile Engine)
- **시간**: 2026-03-27 22:50
- **Commit**: `PENDING_COMMIT`
- **Vikunja**: 신규 생성 대기
## 결정 사항
- **광학 추적 렌즈 분리 (Blue / Red Channel)**: OpenCV SIFT 알고리즘 구동 시, 노란색 하이라이트가 Red 채널(흰색 배경화)에서 투명해져 발생하는 '반복 구간 마디 삭제' 버그를 해결. 트래킹 렌즈는 Blue 채널(검은색 덩어리 변환)을 사용하여 하이라이트를 고정밀 마커로 활용하고, 실제 PDF 출력 렌즈는 Red 채널을 통해 하이라이트를 완전히 삭제하는 이원화 아키텍처 도입.
- **해시 중복제거(pHash) 완전 폐기**: 1280px 해상도를 8x8로 축소 비교하는 해시 필터가 코러스 반복 구간을 100% 중복으로 오인하여 절반 이상의 마디를 강제 소멸시켰음. 스크롤 모드에서는 이를 완전히 삭제.
- **Object-Oriented Measure Slicing (타일 엔진)**: 단순히 1280px이 차면 자르던 무식한 `_find_clean_cut`을 폐기. 대신 오선지의 상하 범위를 탐색하고, 기타 6현을 관통하는 세로선(`|`)을 정밀 탐지하여 개별 마디(Measure) 단위로 이미지를 분절하는 타일 엔진 도입.
- **AI-Stamping (순차 마커 결합)**: 추출된 각 마디 타일의 좌측 상단 여백에 `cv2.putText`를 이용해 연속된 마디 번호(`[ 1 ]`, `[ 2 ]`)를 디지털로 각인. 원본 영상에 숫자가 아예 존재하지 않아도 절대 길을 잃지 않게 설계.
- **Top Margin 확장**: 영상 상단에 원본 편집자가 적어둔 마디 숫자가 2% 밀도 필터(`row_dark > 0.02`)에 걸려 여백으로 간주되어 목이 잘려나가는(Decapitation) 버그를 패치. 밀도를 0.2%로 대폭 축소하고 상단 보호 영역을 120px로 확장하여 무결성 100% 확보.
## 미완료
- (없음) 파이프라인 무결성 Sakanakushon 테스트 통과 완료 (20조각 1580x7825 A4 포팅).