SYSTEM BLUEPRINT

실내 3D 재구성 · 1차 평면도 파이프라인
스캔이 들어와 평면도로 나가기까지의 화면 설계

서버 파이프라인의 결과를 팀이 검토하는 내부 콘솔 화면입니다. 촬영 앱과 사용자용 모바일 웹 뷰어는 후속 과업이라 여기에 없습니다.

스토리보드란?

스토리보드는 아직 만들지 않은 화면을 실제 모습에 가깝게 미리 그려 보는 문서입니다. 역할별로 화면을 담고, 스캔이 들어와 1차 평면도로 나가기까지의 순서대로 배치했습니다.

  1. 스캔 운영자가 들어온 스캔을 걸러 파이프라인에 태우는 흐름
  2. 결과 검토자가 오차를 읽고 평면도를 검토해 내보내는 흐름

마지막까지 보시면 오차가 어디서 생겼는지 화면에서 어떻게 읽히는지 그려지실 것입니다.

스캔 운영자 시나리오

들어온 스캔을 걸러 파이프라인에 태운다

복구할 수 없는 스캔을 붙잡고 있지 않는 것이 이 역할의 목적입니다. 반려는 결론이 아니라 재촬영 구간과 함께 나갑니다.

1. 스캔 번들 인입

ARKit·ARCore 번들 수신
RGB · 포즈 · intrinsic

2. 품질 게이트 판정

통과 · 부분 사용 · 반려
지표 6종을 임계값과 대조

3. 재촬영 구간 회신

어디를 다시 찍어야 하는지
구간 단위로 지목

4. 파이프라인 실행

여섯 단계 순차 실행
단계별 소요시간 기록

5. 중간 산출물 보관

단계마다 파일로 저장
실패해도 그 지점까지 남음

스캔 운영자 | 화면 01

스캔 인입 목록

console.pipeline/scans
재구성 파이프라인
스캔 인입
실행 현황
오차 리포트
1차 평면도
벤치마크
설정
김*연 · 운영 담당
스캔 인입기준 데이터셋 24공간 · 실측 치수 대조 가능
깊이 센서 없는 기기만전체 기기오늘 인입반려만 보기
스캔 번호공간기기 · 깊이 센서프레임촬영 길이게이트 판정
SCAN-2609-0184거실+주방iPhone 13 · 깊이 센서 없음842장3분 12초통과
SCAN-2609-0185복도Galaxy S23 · 깊이 센서 없음517장1분 48초반려
SCAN-2609-0183욕실iPhone 15 Pro · LiDAR 있음394장1분 26초부분 사용
SCAN-2609-0182침실 2Galaxy S22 · 깊이 센서 없음676장2분 41초통과
SCAN-2609-0186다용도실iPhone 13 · 깊이 센서 없음288장1분 09초분석 대기
오늘 게이트 반려율
22%
인입 18건 중 4건 반려
반려 사유 분포
무텍스처 벽면 과다2건
트래킹 소실1건
프레임 중첩 부족1건
깊이 센서 없는 기기가 오늘 인입의 78%입니다. 반려 4건은 모두 이 그룹에서 나왔습니다.

[화면 개요 및 목적]

ARKit·ARCore 번들이 서버로 들어오는 지점입니다(R2). 기기 칸에 깊이 센서 유무를 그대로 적어, 센서 없는 기기도 같은 줄에서 처리된다는 것(R3)이 목록에서 바로 보입니다. 운영자는 여기서 기기 유형과 게이트 판정으로 걸러 상세로 들어갑니다.

[핵심 기능 로직]

게이트 판정은 네 값만 가집니다 — 통과 · 부분 사용 · 반려 · 분석 대기. 반려된 스캔은 파이프라인에 들어가지 않고, 부분 사용은 지정된 구간만 잘라 들어갑니다. 판정을 바꿀 수 있는 사람은 운영자뿐이고 바꾼 이력은 실행 기록에 남습니다. 오른쪽 반려율은 임계값을 손볼 때마다 같이 움직이는 숫자라, 게이트가 너무 빡빡한지 느슨한지를 이 한 칸으로 봅니다.

  • 업로드와 처리 분리
    FastAPI + 작업 큐 · S3 호환 스토리지
  • 기기별 입력 차이 흡수
    캡처 번들 스펙 · ARKit·ARCore 공통 스키마
스캔 운영자 | 화면 02

품질 게이트 판정 근거

console.pipeline/scans/0185/gate
재구성 파이프라인
스캔 인입
실행 현황
오차 리포트
1차 평면도
벤치마크
설정
김*연 · 운영 담당
품질 게이트 판정 근거SCAN-2609-0185 · 복도 · Galaxy S23
촬영 궤적 품질복도 진행 방향 · 총 12.0m
트래킹 소실 3회
무텍스처 벽면
정상 구간
0.0m4.2m7.6m12.0m
재촬영 구간 0.0 – 4.2m
진입부에서 트래킹이 세 번 끊겨 이 구간의 카메라 포즈를 믿을 수 없습니다. 4.2m 지점부터는 살려 쓸 수 있어, 이 스캔은 부분 사용으로 내릴 수 있습니다.
부분 사용으로 내리기
재촬영 구간 회신
부분 사용으로 내리면 실제로 들어가는 것
쓰는 구간4.2 – 12.0m
쓰는 프레임317장 / 517장
나오는 평면도 범위복도 벽 4면 · 전체 6면 중
남은 2면 처리재촬영 전까지 재측정으로 표기
지표 대 임계값반려
지표이 스캔임계값
무텍스처 벽면 면적 비율61%40% 이하초과
트래킹 소실3회 · 누적 8.4초2회 · 3.0초 이하초과
프레임 간 시야 중첩률48%55% 이상초과
평균 블러 지수0.270.35 이하정상
최대 회전 각속도112°/s90°/s 이하경계
루프 클로저 성립없음1회 이상 권장경계
임계값은 코드가 아니라 설정 파일에 있습니다. gate_thresholds.yaml 한 줄을 고치면 기준 데이터셋 24공간이 새 임계값으로 다시 판정됩니다.

[화면 개요 및 목적]

제안서 역제안 3(촬영 품질 게이트)을 증명하는 화면입니다. 반려만 던지면 쓸모가 없으므로 지표별 실측값과 임계값, 그리고 궤적 어느 구간이 나빴는지를 함께 냅니다. 운영자는 여기서 전체 반려와 부분 사용 중 하나를 고릅니다.

[핵심 기능 로직]

지표 6종 중 하나라도 임계를 넘으면 반려입니다. 이 스캔은 무텍스처 벽면 61%(임계 40%), 트래킹 소실 3회·8.4초(임계 2회·3.0초), 시야 중첩률 48%(임계 55%) 세 항목이 걸렸습니다. 궤적 막대의 붉은 구간 0.0–4.2m가 재촬영 대상이고, 그 뒤는 살아 있어 부분 사용으로 내릴 수 있습니다. 임계값은 코드가 아니라 gate_thresholds.yaml에 있습니다.

  • 촬영 실패를 입구에서 차단
    트래킹 상태 · 블러 · 각속도 · 중첩률 계측
  • 임계값을 코드 수정 없이 조정
    YAML 설정 + 전체 재판정 배치
스캔 운영자 | 화면 03

파이프라인 실행 현황

console.pipeline/runs/0043
재구성 파이프라인
스캔 인입
실행 현황
오차 리포트
1차 평면도
벤치마크
설정
김*연 · 운영 담당
파이프라인 실행 현황SCAN-2609-0184 · 거실+주방 · iPhone 13 · 842프레임
여섯 단계 · 중간 산출물이 단계마다 남습니다실행 run-0043
01
촬영 품질 게이트완료
트래킹·블러·중첩률 판정
0분 14초 · gate_report.json · 42KB
02
단일 프레임 기하완료
MoGe-2 프레임별 깊이·법선
6분 38초 · depth_maps.npz · 1.8GB
03
카메라 포즈 정제완료
ARKit 포즈 + 오프라인 기준 대조
3분 05초 · poses_refined.json · 6.1MB
04
정합 · 융합진행 중
MapAnything 다중 뷰 + 스케일 정렬
4분 12초 경과 · fused_cloud.ply 작성 중
05
구조 추출대기
평면 분할 · 벽 가설 · 직각 정규화
실행 전 · 산출 예정
06
1차 평면도대기
폴리곤 · 치수 · 벽별 신뢰도
실행 전 · 산출 예정
총 경과 14분 09초남은 단계 2개 · 예상 6분중간 산출물 1.9GB
이 실행의 입력
RGB 프레임 842장
카메라 포즈 · intrinsic 동봉
깊이 센서 데이터 없음
실행 큐
SCAN-2609-0184
정합 · 융합 진행 중
진행 중
SCAN-2609-0182
GPU 메모리 부족 · 재시도 대기
실패
SCAN-2609-0183
큐 2번째 · 부분 사용 구간만
대기
실패한 실행은 지워지지 않고 그 단계까지의 산출물과 함께 남습니다. 어느 단계에서 멈췄는지가 곧 진단 자료입니다.

[화면 개요 및 목적]

이 제안의 대표 화면입니다. 깊이 센서 없는 842프레임이 3D geometry까지 가는 경로(R1·R3)가 서버에서 여섯 단계로 끊겨 돌아가고(R6), MoGe-2와 MapAnything이 각각 2단계와 4단계에 들어갑니다(R7).

[핵심 기능 로직]

각 단계는 끝날 때 산출물을 파일로 떨굽니다 — 깊이 맵, 정제 포즈, 융합 포인트클라우드까지 전부 남습니다. 남기지 않으면 어느 단계가 틀렸는지 되짚을 수 없습니다. 상태는 완료·진행 중·대기·실패 네 가지이고, 실패한 실행도 그 지점까지의 산출물과 함께 보존됩니다(오른쪽 큐의 GPU 메모리 부족 건). 재시도는 운영자만 걸 수 있습니다.

  • 단계마다 오차를 따로 측정
    6단계 분리 실행 · 중간 산출물 영속화
  • 깊이 센서 없이 기하 복원
    MoGe-2 단안 기하 + MapAnything 다중 뷰
결과 검토자 시나리오

왜 틀렸는지 읽고, 평면도를 검토해 내보낸다

공고가 핵심이라고 적은 오차의 단계별 분리·진단이 이 흐름 전체입니다. 검토자는 숫자를 보고 다음에 어디를 고칠지 정합니다.

1. 오차 분해 확인

최종 오차를 네 조각으로
막대 길이의 합이 총 오차

2. 병목 단계 지목

가장 큰 기여 단계 확인
다음 회차 작업 대상 결정

3. 1차 평면도 검토

벽별 등급으로 도면 읽기
치수와 근거를 함께 확인

4. 재측정 벽 표시

믿을 수 없는 벽만 표시
현장 재측정 대상으로 회신

5. 다음 실행과 비교

공간별 개선 · 후퇴 확인
무엇을 바꿔 그리 됐는지

결과 검토자 | 화면 01

단계별 오차 분해 리포트

console.pipeline/reports/0043
재구성 파이프라인
스캔 인입
실행 현황
오차 리포트
1차 평면도
벤치마크
설정
김*연 · 운영 담당
단계별 오차 분해run-0043 · 기준 데이터셋 24공간 · 실측 치수 대조
벽 길이 오차 중앙값 · 24공간
11.4cm(2.1%)
최장 벽 실측 5.420m · 산출 5.306m
3.1cm
6.2cm
1.7cm
0.4cm
막대 길이의 합이 최종 오차입니다. 네 조각은 서로 다른 기준으로 독립 측정됩니다.
단일 프레임 기하깊이 상대오차 0.061 · 평면 법선 오차 4.8°양호
카메라 포즈궤적 오차 8.7cm · 스케일 드리프트 1.9%/10m병목
정합 · 융합정렬 후 잔차 2.4cm · 중첩 영역 불일치 3.1cm양호
구조 추출벽 평면 적합 RMS 1.6cm · 직각 편차 중앙값 1.1°양호
단계별 기여
단일 프레임 기하27%
카메라 포즈 드리프트54%
정합 · 융합15%
구조 추출4%
가장 큰 항목: 카메라 포즈
전체 오차의 54%가 포즈 드리프트입니다. 단안 기하 모델을 더 좋은 것으로 바꿔도 이 비중은 줄지 않습니다. 다음 회차는 여기부터 손댑니다.

[화면 개요 및 목적]

공고가 핵심이라고 적은 그것입니다 — 단일 프레임 geometry 오차(R8)와 multi-frame alignment·fusion 오차(R9)를 따로 재서 보여 줍니다. 24공간의 벽 길이 오차 중앙값 11.4cm가 네 조각으로 갈라집니다.

[핵심 기능 로직]

네 조각은 서로 다른 기준으로 독립 측정됩니다. 단일 프레임은 기준 깊이 대비 상대오차와 평면 법선 각도, 포즈는 오프라인 기준 궤적 대비 궤적 오차와 스케일 드리프트, 정합·융합은 정렬 후 잔차와 중첩 영역 불일치, 구조 추출은 평면 적합 RMS와 직각 편차입니다. 결론은 하나입니다 — 포즈가 54%라 단안 모델을 바꿔도 총 오차는 별로 줄지 않습니다.

  • 고칠 단계를 숫자로 지목
    단계별 지표 산출 + 누적 오차 환산
  • 기준 대비로 재는 자
    레이저 실측 치수 · 오프라인 기준 궤적
결과 검토자 | 화면 02

1차 평면도 검토와 내보내기

console.pipeline/floorplan/0184
재구성 파이프라인
스캔 인입
실행 현황
오차 리포트
1차 평면도
벤치마크
설정
김*연 · 운영 담당
1차 평면도 검토SCAN-2609-0184 · 벽 12면 · 층고 2.38m(참고값)
W1
5.31m
W2 3.55m
W8 4.30m
W7
3.36m
거실 + 주방 · 36.09㎡
이 도면이 보장하는 것 — 벽 중심선 배치와 길이, 바닥 면적, 벽별 신뢰 등급. 견적 검토를 시작하기 위한 1차 도면입니다.
보장하지 않는 것 — 자재 재단용 시공 치수, 문·창 정확 위치, 3D CAD 정합, 사용자 보정 화면. 후속 과업 범위입니다.
벽별 등급
신뢰9면
주의2면
재측정1면
W1 · 거실 서측 벽신뢰
산출 5.306m · 실측 5.420m · 오차 11.4cm
이 벽을 본 프레임118장
평면 적합 잔차1.4cm
프레임 간 관측 일치도0.93
직각 정규화적용 · 잔차 1.4°
이 벽 오차의 출처
단일 프레임 기하3.1cm
카메라 포즈6.2cm
정합 · 융합1.7cm
구조 추출0.4cm
W7 재측정 권장 — 직각 잔차 6.8°로 정규화 임계 2.0°를 넘어 보정하지 않고 비직각 그대로 뒀습니다. 현장에서 한 번 재 주십시오.
평면도 JSON검토용 SVG2D DXF

[화면 개요 및 목적]

주요 벽 구조와 치수를 뽑아(R4) 검토 가능한 1차 평면도로 내보내는(R5) 화면입니다. 벽마다 신뢰·주의·재측정 등급이 붙어, 치수 12개를 전부 의심하는 대신 한 개만 다시 재면 됩니다. 하단 박스가 1차 과업 범위(R11)를 도면 옆에 못 박습니다.

[핵심 기능 로직]

등급은 네 근거의 조합입니다 — 그 벽을 본 프레임 수, 평면 적합 잔차, 프레임 간 관측 일치도, 구간 포즈 불확실도. W1은 118프레임·잔차 1.4cm·일치도 0.93으로 신뢰, W7은 직각 잔차 6.8°가 정규화 임계 2.0°를 넘어 보정하지 않고 비직각 그대로 두어 재측정입니다. 강제로 직각을 만들면 오차가 도면에서 사라진 것처럼 보이기 때문입니다.

  • 믿을 치수와 다시 잴 치수 구분
    관측 수 · 적합 잔차 · 포즈 불확실도 결합
  • 오차를 감추지 않는 보정
    조건부 Manhattan 정규화 · 잔차 임계 2.0도
결과 검토자 | 화면 03

벤치마크 회귀 비교

console.pipeline/benchmark
재구성 파이프라인
스캔 인입
실행 현황
오차 리포트
1차 평면도
벤치마크
설정
김*연 · 운영 담당
벤치마크 회귀 비교run-0042 → run-0043 · 기준 데이터셋 24공간
개선
14
후퇴
3
동일
6
비교 불가
1
공간run-0042run-0043변화
거실+주방 84A 타입13.8cm11.4cm−2.4cm개선
침실 2 · 직사각6.2cm5.1cm−1.1cm개선
복도 · 좁은 통로24.6cm27.9cm+3.3cm후퇴
발코니 확장부18.1cm18.1cm변화 없음동일
다용도실 84B 타입기록 없음9.6cm이전 실행 없음비교 불가
공간 유형별 벽 길이 오차 중앙값
같은 파이프라인이라도 공간 유형에 따라 다섯 배까지 벌어집니다.
직사각 단일 방
5.1cm
개방형 거실+주방
11.4cm
비직각 코너 포함
18.1cm
좁은 복도
27.9cm
이번에 바꾼 것
키프레임 선택 임계 0.35 → 0.28
포즈 그래프 루프 제약 추가
커밋 a41f9c2
리포트 회차
Step 02 베이스라인 리포트 제출
Step 03 개선 회차 3회차 진행 중
Step 04 최종 리포트 예정
다용도실 84B 타입은 이번에 기준 데이터셋에 들어온 공간이라 비교할 이전 실행이 없습니다. 빈 칸을 0으로 채우지 않고 비교 불가로 둡니다.

[화면 개요 및 목적]

역제안 5를 증명합니다. 파라미터를 바꾸면 기준 데이터셋 전체가 자동으로 다시 측정되고 공간별 개선·후퇴가 표에 남습니다(R10). 45일을 네 구간으로 끊은 리포트 회차(R12)도 여기서 보입니다.

[핵심 기능 로직]

비교는 두 실행 사이에서만 성립합니다. 이번 회차는 키프레임 선택 임계를 0.35에서 0.28로 내리고 포즈 그래프에 루프 제약을 추가한 결과입니다. 24공간 중 14개 개선, 3개 후퇴 — 후퇴한 복도는 임계를 내리며 키프레임이 늘어 무텍스처 구간의 나쁜 프레임까지 들어온 탓입니다. 새 공간은 비교 불가로 두고 0으로 채우지 않습니다.

  • 개선인지 후퇴인지 숫자로
    run 단위 회귀 실행 · 공간별 변화 표
  • 인계 후에도 이어서 측정
    Docker 이미지 · 재현 절차 문서
시나리오

| 화면 01

[화면 개요 및 목적]

[핵심 기능 로직]

    | 화면 02

    [화면 개요 및 목적]

    [핵심 기능 로직]

      | 화면 03

      [화면 개요 및 목적]

      [핵심 기능 로직]