feat(bv): METHOD_D_P legacy fork · phantom 시연용 (bcbc7b4 시점 로직 격리)
배경:
· 8/4 default 스위치 (bvMethod V41 → METHOD_D) 순간 · 7/20 도입돼 있던
Python parity fix 4종 (Halir-Flusser ellipse fit · adaptive_large_bladder_relax ·
b_si_floor · subsample refined wall) 이 처음 활성화됨.
· 사용자 관찰 "이전 시연 대비 volume 값이 조금 작음" 은 이 fix 들의 정확도
개선 (실제값에 가까워짐) 효과. 인체엔 좋으나 phantom (구 형태 방광 모형)
시연 재현성이 손상됨.
해결:
· BvMethod 에 METHOD_D_P 추가 (P = phantom · 구 가정) · demo-final default 로.
· bcbc7b4 (2026-07-02) 시점 PiezoBVEstimator 를 legacydp 서브패키지에 격리.
· BVResult · WallWithSpan · GreenZoneConstants 등 최상위 shared 심볼은 최신 참조
(BVResult 신규 optional 필드는 default 로 자동 채워짐).
· PiezoHW 는 legacy 파일 내부에 격리 (bcbc7b4 시점 V0/V1/V2 preset · 최신
R100/R200/R300 preset 변경과 무관하게 phantom 재현성 유지).
파일:
· [신규] managers/legacydp/PiezoBVEstimatorLegacyDP.kt (821 lines)
- bcbc7b4 원본 855 lines 에서 BVResult 정의 (40 lines) 제거 · import 로 대체
- package = com.medithings.vesiscan.managers.legacydp
· [수정] managers/GreenZoneConstants.kt — BvMethod 확장 · demo default 변경
· [수정] ui/views/monitoring/PiezoMonitoringView.kt — dispatcher 분기
(WallWithSpan → Pair<Int,Int> 변환 · legacy estimateBladderVolume6ch 호출)
효과:
· demo-final default = METHOD_D_P → phantom 값 재현
· 인체용/개발용은 dev-mode 토글로 METHOD_D 선택 가능 (기존 로직 무손상)
· cloud-mvp 브랜치의 METHOD_D 개선사항은 계속 원본 코드로 흘러올 수 있음
(legacy 는 완전 격리 · touch 안 됨).
빌드: BUILD SUCCESSFUL 8s (첫 시도 통과).
This commit is contained in:
@@ -30,7 +30,11 @@ enum class PlacementGuideMode { SIMPLE, BOUNDARY, SWEEP }
|
||||
* - METHOD_D 에 phantom-style lr floor (1.0) 를 추가하지 말 것. 사용자 결정
|
||||
* 2026-06-30: "phantom QC 는 V41 로, 인체는 Python 1:1".
|
||||
*/
|
||||
enum class BvMethod { FRUSTUM, V41, METHOD_D }
|
||||
// METHOD_D_P: 2026-08-11 신설. Python parity fix (Halir-Flusser ellipse fit ·
|
||||
// adaptive_large_bladder_relax · b_si_floor · subsample refined 등) 도입 이전
|
||||
// (bcbc7b4 · 2026-07-02) 시점 BV 로직 격리 fork. phantom (구 가정) 시연 재현용.
|
||||
// demo-final default. 인체 (타원 방광) 정확도 필요 시 METHOD_D 사용.
|
||||
enum class BvMethod { FRUSTUM, V41, METHOD_D, METHOD_D_P }
|
||||
|
||||
/** Sensor alignment 알고리즘 — V1=기존 (computePlacementGuide), V2=신규 (alignment.py 포팅). */
|
||||
enum class AlignmentAlgo { V1, V2 }
|
||||
@@ -48,7 +52,10 @@ object GreenZoneConstants {
|
||||
// detectionMethod = METHOD_C (walls 검출 · phantom-검증 파이프라인)
|
||||
// bvMethod = METHOD_D (BV 계산 · Python parity + adaptive_large_bladder_relax + b_si_floor)
|
||||
// Method D BV 는 estimateBv(walls) wrapper 로 라우팅 (PiezoMonitoringView).
|
||||
@Volatile var bvMethod: BvMethod = BvMethod.METHOD_D
|
||||
// 2026-08-11: demo-final default = METHOD_D_P (phantom · 구 가정 · bcbc7b4 로직).
|
||||
// 사용자 관찰 "이전 시연 대비 volume 값이 조금 작음" 은 7/20 Python parity fix 들이
|
||||
// 8/4 default 스위치 순간 활성화된 결과. 시연 재현성 위해 legacy fork 격리.
|
||||
@Volatile var bvMethod: BvMethod = BvMethod.METHOD_D_P
|
||||
|
||||
/**
|
||||
* lr_ratio 강제 override (algorithm 팀 최신 표준: piezophantomtest 4830e7c).
|
||||
|
||||
Reference in New Issue
Block a user