fix: LR 방향 수정 + Almost there 제거 + postMaxIdx 슬라이더

- 좌우 방향 전면 수정: ch4(왼쪽)길다→←, ch5(오른쪽)길다→→
  ch4만 감지→← (기기 오른쪽 치우침), ch5만→→
- Almost there 제거: 방향OK+CV미달 → 그냥 GREEN 통과
- postMaxIdx 런타임 슬라이더 (개발자 설정, 기본 80, 범위 50-95)
  Method A/B 공통 적용 — 바닥반사 peak 무시

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-08 09:41:44 +09:00
parent b1ca5bfd66
commit c819d615d0
5 changed files with 62 additions and 48 deletions
@@ -18,6 +18,8 @@ enum class BvMethod { FRUSTUM, V41 }
object GreenZoneConstants {
var postMaxIdx: Int = 80 // 후벽 탐색 최대 sample index (이 이상 peak 무시)
var detectionMethod: DetectionMethod = DetectionMethod.METHOD_C
var bvMethod: BvMethod = BvMethod.V41
var placementGuideMode: PlacementGuideMode = PlacementGuideMode.SIMPLE
@@ -132,7 +132,7 @@ class PiezoEchoAnalyzer private constructor() {
val lowMinLen: Int = 3
val mergeGapMax: Int = 3
val peakSearchWin: Int = 20
val postMaxIdx: Int = 80
val postMaxIdx: Int get() = GreenZoneConstants.postMaxIdx
val minPeakMargin: Double = 30.0
val minUrineLen: Int = 3
val postRefineTolRatio: Double = 0.05
@@ -27,7 +27,7 @@ class PiezoEchoAnalyzerA private constructor() {
val tvLambda: Double = 3.0
val alpha: Double = 1.0
val beta: Double = 1.0
val postMaxIdx: Int = 80
val postMaxIdx: Int get() = GreenZoneConstants.postMaxIdx
val plateauMinLen: Int = 3
val plateauMergeGap: Int = 5
val scoreWin: Int = 7