Skip to content

Add viewer dependencies to pyproject.toml - #19

Open
HenkPoley wants to merge 1 commit into
Robbyant:mainfrom
HenkPoley:codex/default-viewer-deps
Open

Add viewer dependencies to pyproject.toml#19
HenkPoley wants to merge 1 commit into
Robbyant:mainfrom
HenkPoley:codex/default-viewer-deps

Conversation

@HenkPoley

Copy link
Copy Markdown

No description provided.

HAA02 added a commit to HAA02/lingbot-map that referenced this pull request Jul 31, 2026
…— 제품 스펙 확정)

목표: 현장이 변경돼 BIM 에 반영 안 된 조건에서도 경로/위치/회전/스케일을 강건하게 추적.

## 제품 스펙 (측정으로 확정)
실측 총변경비율 T ≈ 25%(랜드마크 12개 중 8개 이상 생존)까지 자동 정합에 쓸 수 있다.
그 이상에서는 성공률이 급락하지만 확정오답 0 을 유지하며 HOLD 로 안전하게 빠진다.
근거: 420건(7 T지점 × 3 seed × 20건) 전체에서 확정오답(ok_outside_d2) 0건.

## 신규 모듈
- scan2bim/plan_skeleton.py   DXF 평면 스켈레톤(복도중심선·코너·문) + PLAN_MATCH_SCHEMA 계약
- scan2bim/coarse_match.py    trimmed/RANSAC outlier-허용 부분매처 + span 변경스캔
- scan2bim/door_detect.py     문 통과 자동검출(점군 측방 자유공간 수축)
- scan2bim/door_detect_rgb.py 문 통과 자동검출(영상, OpenCV 고전 CV)
- tools/check_plan_match_robust.py  D2 강건성 게이트(①~⑤ + 오라클 상한 + FLOOD 회귀)
- tools/build_coplay.py       --plan-match / --accept-plan-match / --door-times opt-in 배선

## 설계 불변식 (코드로 강제)
- 모호(점수차<margin_min) 시 자동확정 금지 → hold + best=None, 후보는 노출(동점 은닉 금지)
- 거부 시 transform 밀반출 0 (6경로 일괄 테스트)
- 명시 수락(--accept-plan-match) 없이는 확정 누출 0 — 변이검증으로 강도 입증
  (M1 auto자동확정→4 failed, M2 저장시점 이동→2 failed, M3 ok게이트 제거→1 failed)
- --plan-match off(기본) 시 기존 place_rigid 출력과 byte-identical (QA 독립 sha256 재현)

## D2① 은 매처 한계가 아니라 게이트 결함 (오라클 실험으로 증명)
매처에게 정답 변환을 그냥 건네줘도 하드게이트 통과율이 legacy 설정에서 4/20=20.0% —
게이트는 90% 를 요구한다. 케이스Robbyant#19: 생존 plan event 7개를 전부 맞춰도 7/12=0.583<0.60 reject.
헤드룸 측정: 실측 T≤35% 에서 매처/오라클 = 100%(매처가 이미 도달 가능 상한 달성).
격자 전수탐색: 모든 실패 케이스에서 정답이 유일한 전역최대인데 하드게이트 통과 격자점 0개
→ 정보 파괴가 아니라 확정 근거(랜드마크 수) 부족.

사용자 결정으로 게이트를 T축으로 재정의(임계 90%/80%·섭동크기 유지). 그 결과 병목이
T 가 아니라 하네스 크기임이 드러남 — T=20%(실측 26.3%)에서도 오라클 상한이 85%.
STAIR 합성 하네스는 벽 10개·랜드마크 12개뿐이라 짧은 벽 하나가 사라져도 코너가 전멸한다.
실도면 규모 하네스가 다음 단계이며 실도면 DXF 확보가 전제(전 사이클 공통 한계).
legacy 게이트는 삭제하지 않고 --legacy-gate 로 보존하되 경고 배너를 붙였다.

## 부수 성과
- 이 업로드에는 문이 물리적으로 없음을 확정: RGB 42후보 전원 shape≤0.002
  (합성 진짜 문 0.922~0.939, 막다른길 0.910과 자릿수 차이). 프레임 육안=개방형 오피스.
  카메라 천장지향(점군 82%가 카메라 위) — 배관 커버리지 목적 촬영이라 정상이나
  평면매칭이 필요로 하는 벽·문 증거는 담기지 않는다
- D6(s_f 문통과타이밍 2소스 교차검증, fwdscale 이월)를 "이 데이터로는 불가"로 종결.
  s_f 는 단일소스(DXF 복도끝) 유지
- 게이트② 범람 취약점(span 전부 발화 시 recall 100%)을 ④⑤ 정밀도 지표 + FLOOD 회귀로 차단.
  flood 하에서 recall 이 오히려 98.75%로 상승함을 실측해 ②만으로는 못 잡음을 증명

## 검증
pytest 369 passed (기준선 168 → +201). D1/D3/D4/D5/D7 PASS, D2 FAIL(①만), D6 불가종결.
모든 커밋이 메인 세션의 독립 재실행 검증을 거침.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant