— Monocular Depth Estimation에서 Geometry-aware 3D Reconstruction까지 (연구 + 산업 적용 관점 통합) —
단일 RGB 카메라만으로 객체의 깊이(Depth)를 추정하는 기술은 비용·설치·유지보수 측면에서 강력한 장점이 있다. 다만 “깊이 추정”이 실제로는 센서 기반 거리 측정과 동일한 문제가 아니며, 그 성격은 확률적 추론에 가깝다. 따라서 본 보고서는 단안 깊이 추정(모노큘러) 기술을 도입할 때 흔히 발생하는 오해(절대거리/정밀계측 가능하다는 전제)를 제거하고, 실제 시스템 설계에서 무엇을 기대할 수 있는지, 어떤 조건에서 실패하는지를 명확히 한다.
| 현업 요구 | 단안 Depth 기술이 제공할 수 있는 가치 | 주의/조건 |
|---|---|---|
| 검사 대상 돌출/함몰 여부 판단 | ROI 내 상대 깊이/기울기 변화로 ‘형상 변화’ 감지 | 절대 높이(mm) 환산은 별도 기준 필요 |
| 로봇 충돌 회피/거리 기반 접근 | 근접/원거리 구분, 위험 영역 마스크 등 보조 지표 | 안전 기능은 보조 센서/규격 기반 이중화 권장 |
| 3D 시각화(점군/메쉬/가상 시점) | Point cloud, novel view rendering의 입력으로 활용 | Pose/광선 모델(Ray) 포함 시 일관성 향상 |
핀홀 카메라 모델에서 3D 점 (X, Y, Z)는 이미지 평면의 (x, y)로 투영된다. 동일한 (x, y)를 만드는 (X, Y, Z) 조합은 무수히 많으므로, 단일 이미지로부터 Z를 유일하게 역추정할 수 없다. 즉, 단안 Depth는 관측치만으로는 결정되지 않으며, 추가 가정(prior)이 필수다.
단안 Depth 모델은 대개 “가까움/멀어짐”의 상대 관계에는 강하지만, 절대 거리(m, mm)로 환산하려면 기준이 필요하다. 실무에서는 다음 중 하나가 필요하다.
연구 논문에서 흔히 사용하는 AbsRel, RMSE 등 지표는 데이터셋 조건이 통제된 경우가 많다. 산업 적용에서는 장면 분포 변화와 표면 특성(반사/투명/저조도)이 성능을 좌우한다. 따라서 “벤치마크 상위”가 곧 “현업 안정”을 의미하지 않는다.
| 구분 | 핵심 특징 | 실무 체크 포인트 |
|---|---|---|
| CNN Encoder-Decoder | 지역 특징 기반, 빠르고 단순 | 텍스처/조명 변화에 민감, 장면 일관성 취약 |
| Transformer 기반 | 전역 관계(Self-Attention), 구조 일관성 강화 | 연산량/지연시간, 경량화(ONNX/TRT) 가능 여부 |
| Geometry-aware(Depth+Ray+Pose) | 깊이를 “공간 복원”의 중간 표현으로 취급 | Pose 추정 품질, 멀티뷰/비디오에서의 시간 일관성 |
현업에서 가장 흔한 혼선은 “모델이 내놓는 depth map이 실제 거리인가?”이다. 일반적으로:
| 출력 성격 | 의미 | 권장 사용 |
|---|---|---|
| Relative Depth | 픽셀 간 상대적 깊이 순서/비율 | 형상 변화 감지, 구간 분리(near/far) |
| Scale-aligned Depth | 외부 기준으로 스케일 보정된 깊이 | 간이 거리 추정(보조 센서/기준면 보정) |
| Metric Depth | 절대 거리(단위) 추정 | 제한적 환경에서만 신뢰(캘리브레이션/보정 필수) |
최근 연구 흐름 중 주목할 지점은 “복잡한 헤드/멀티태스크”보다, 표준 Transformer 백본과 학습 타겟의 정교화로 범용성을 확보하려는 방향이다. 예컨대 Depth Anything 3(DA3)는 depth-ray 표현을 통해, 단일/다중 뷰 입력에서 공간 일관성을 강화한다 (논문/프로젝트 페이지 참고).
현장 적용에서 핵심은 “모델이 평균적으로 맞는가”가 아니라, 우리 라인에서 반복 재현되는 조건에서 안정적으로 같은 분포를 내는가이다. 단안 depth는 입력(조명, 표면, 시점)의 작은 변화에도 출력 분포가 흔들릴 수 있으므로, 도입 전 신뢰 구간(usable envelope)을 문서로 정의해야 한다.
| 항목 | 신뢰 구간(권장) | 붕괴 징후(검출 포인트) |
|---|---|---|
| 조명 | 고정 광원/광량, 그림자 패턴 반복 | ROI 평균 depth는 유사한데 분산이 급증, 경계부에 얼룩(밴딩) 발생 |
| 텍스처 | 표면 패턴/에지 존재(마킹, 가공 흔적 등) | 저텍스처 영역에서 depth가 평탄화되거나, 랜덤 노이즈처럼 흔들림 |
| 표면 특성 | 무광/난반사 위주, 반사율 변화 낮음 | 하이라이트가 depth 경계로 오인되어 “가짜 돌출/함몰”이 생성 |
| 시점/자세 | 카메라-대상 상대 자세 고정(각도/거리 허용 범위 명시) | 특정 각도에서 depth 누수(bleeding), 얇은 구조물 주변에 역전 현상 |
모델의 “정답률” 대신, 검사 시스템 관점에서 다음 KPI를 먼저 잡는 편이 운영에 유리하다. 아래 지표는 라인 샘플(OK/NG/경계 케이스)에서 분포 안정성을 평가하기 위한 최소 구성이다.
| 지표 | 정의 | 사용 목적 |
|---|---|---|
| ROI 평균/분산(μ, σ²) | 고정 ROI에서 depth의 평균과 분산 | 재현성 확인, 조명 드리프트 감지 |
| Δdepth(기준 대비 차분) | 기준 샘플(depth_ref)과의 차분 통계 | 형상 변화(돌출/함몰/변형) 판정 |
| Edge leakage score | 경계 주변에서 depth 급변/누수 정도 | 가려짐/반사 실패 모드 탐지, 마스크 보정 기준 |
| Confidence/Mask ratio | 신뢰 마스크(후술) 통과 픽셀 비율 | “판정 보류/재촬영” 트리거로 활용 |
검사 적용에서는 depth map 전체를 믿지 않는다. 먼저 “깊이를 쓰면 안 되는 픽셀”을 제외하는 마스크가 필요하다. 아래 규칙은 현장 조건이 바뀌었을 때에도 판정이 급격히 흔들리는 것을 줄이기 위한 최소 구성이다. (구현은 단순 임계치 조합으로 시작하고, 운영 데이터가 쌓이면 규칙을 조정한다.)
| 마스크 규칙 | 예시 기준(초기) | 의도 |
|---|---|---|
| 저텍스처 제외 | 로컬 그래디언트/라플라시안 에너지 < T₁ | 텍스처 단서 부족 구간에서 depth 노이즈 급증을 차단 |
| 하이라이트(과노출) 제외 | 밝기 상위 p% 또는 Saturation 픽셀 | 반사 하이라이트가 가짜 경계/돌출로 오인되는 현상 완화 |
| 경계 버퍼 제외 | 세그멘트/검출 박스 경계로부터 d px 확장 | 가려짐/배경 누수(depth bleeding) 영향을 판정에서 제거 |
| 시간 일관성 체크(선택) | 연속 프레임에서 ROI μ 변화량 > T₂면 제외 | 조명 플리커/노출 변화 등 외란을 조기 감지 |
현장 이미지(금속 표면, 반복 패턴, 얇은 라인/비드 등)에서는 CNN 기반 depth가 다음 형태로 무너지는 경우가 많다. 이는 “모델이 못 배웠다”기보다 국소 receptive field가 만드는 구조적 한계가 원인인 경우가 많다.
| 실패 모드 | 관측 징후 | 검사 리스크 |
|---|---|---|
| 경계 누수(depth bleeding) | 객체 경계에서 배경 depth가 침투 | 얇은 결함/비드 가장자리에서 오검출 증가 |
| 반복 패턴 모호성 | 동일 텍스처 반복 → 깊이 평탄화 | 표면 요철/미세 결함이 ‘평평’으로 소거 |
| 스케일 드리프트 | 샘플마다 depth 범위가 들쭉날쭉 | 임계치 기반 판정이 흔들림 |
Transformer의 Self-Attention은 픽셀을 장면 전체 문맥에서 재가중치한다. 검사 관점에서는 “같은 객체(또는 같은 공정 흔적)”로 묶이는 영역의 깊이 추정이 상대적으로 안정화되는 편이다. 특히 경계/가려짐 주변에서 완전한 해결은 아니더라도, 오염된 국소 단서 하나에 전체가 끌려가는 현상을 줄이는 경향이 있다.
| 항목 | 실무 이슈 | 권장 대응 |
|---|---|---|
| 노이즈/홀(hole) 발생 | 텍스처 부족, 역광, 반사로 depth 불연속 | bilateral/median + confidence mask, ROI 제한 |
| 스케일 불일치 | 프레임 간 scale drift | 기준면(평면) 피팅 또는 보조 센서 1점 보정 |
| 실시간성 | Transformer 연산량, GPU/Edge 제약 | 입력 해상도/ROI 축소, TRT/ONNX 최적화 |
| 표현 | 장점 | 적합 시나리오 |
|---|---|---|
| Point Cloud | 생성 간단, 직접 시각화 가능 | 검사 디버깅, 근접/원거리 마스크, 간이 형상 비교 |
| Mesh | 표면 연속성, 후처리/측정 용이 | 형상 모델링, 표면 결함(굴곡) 분석 |
| 3D Gaussian Splatting | 렌더링/신규 시점 합성에 강함 | AR/시각화, 데이터 수집 환경에서 빠른 3D 보기 |
산업 검사에서는 “3D 복원”이 목적이 아니라, 판정 로직이 목적이다. 단안 Depth는 다음 두 가지 패턴으로 쓰는 것이 현실적이다.
| 체크 항목 | 질문 | 판단 기준(예시) |
|---|---|---|
| 요구가 절대거리인가? | mm 단위 치수 판정이 필요한가? | 필요하면 단안 단독은 비권장(보조 센서/기준면 필요) |
| ROI가 통제되는가? | 배경/조명/각도가 반복 가능한가? | 반복 가능하면 상대 Depth로도 충분한 경우가 많음 |
| 표면 특성 | 반사/투명/젖은 표면이 있는가? | 있으면 실패 모드 테스트 선행(마스크/편광/조명 설계) |
| 실시간 제약 | cycle time이 몇 ms인가? | Edge GPU 가능 여부, 입력 축소/프레임 샘플링 계획 |
로봇 접근/회피를 단안 Depth로만 구현하는 것은 안전 기능으로 부적절할 수 있다. 단안 Depth는 “보조 인지”로 사용하고, 안전 기능은 규격 기반의 별도 센서/인터록과 이중화하는 구성이 합리적이다.
단안 Depth를 검사 공정에 넣을지 여부는 “모델이 좋아 보이는가”가 아니라, 아래 질문에 예/아니오로 답하면 대부분 결정된다. 본 절은 실제 설계 회의에서 빠르게 합의할 수 있도록 의사결정 흐름을 정리한다.
구현 단위는 “3D 복원”까지 가지 않고, 판정에 필요한 지표를 안정적으로 추출하는 쪽이 운영에 유리한 경우가 많다. 아래는 현장 적용에서 흔히 쓰는 최소 파이프라인이다.
[1] 입력 이미지 수집(고정 노출/고정 조명) →
[2] Depth 추정(상대 depth) →
[3] 유효 마스크 생성(저텍스처/하이라이트 제외) →
[4] ROI 통계(μ, σ², Δdepth) 산출 →
[5] NG 정책 적용(임계치/복합 조건) →
[6] 붕괴 징후면 재촬영 또는 규칙 기반 fallback
단안 depth를 검사에 넣을 때 가장 흔한 실패는 “단일 지표 하나로 NG를 내는 설계”다. 운영에서는 (1) 신뢰성 게이트를 먼저 통과시키고, (2) 그 다음 복합 조건으로 판정하는 편이 안정적이다. 아래는 실제 구현에서 바로 가져다 쓸 수 있는 형태의 예시다(수치는 공정에 맞게 보정).
| 단계 | 조건(예시) | 의도 |
|---|---|---|
| Gate 0: 입력 품질 | 노출/블러/포커스 점검, 실패 시 재촬영 | Depth 이전 단계에서 흔들림 차단 |
| Gate 1: Depth 신뢰성 | mask ratio ≥ R, ROI σ² ≤ V, leakage score ≤ L | 붕괴 구간에서 “판정 보류”로 전환 |
| Rule A: 돌출(+) 계열 | Δdepth_mean ≥ A₁ AND Δdepth_p95 ≥ A₂ | 평균 + 상위 꼬리값으로 실제 돌출 반영 |
| Rule B: 함몰(-) 계열 | Δdepth_mean ≤ -B₁ AND area(Δdepth<-B₂) ≥ S | 면적 조건을 붙여 잡음성 음수 스파이크 제거 |
| Rule C: 분포 이상 | ROI 히스토그램 2-모드화/왜도 급변 | 반사/오염/각도 변화 등 외란 징후 탐지 |
depth 붕괴는 결함이 아니라 “측정 불가 상태”에 가깝다. 이를 NG로 처리하면 라인에서 불필요한 재검/폐기가 늘어난다. 따라서 운영에서는 OK / NG / HOLD(판정 보류)를 분리하고, HOLD는 재촬영 또는 대체 규칙(2D 특징 기반 등)으로 처리하는 방식이 실용적이다.
반사 표면에서는 하이라이트가 광원 위치/시점에 따라 크게 변하며, 픽셀 밝기와 실제 형상(거리)이 분리되지 않는다. 단안 depth 모델은 학습된 통계 패턴으로 이를 해석하려 하지만, 현장에서는 하이라이트가 가짜 경계로 작동하여 돌출/함몰이 존재하지 않는 위치에 깊이 변화가 생성될 수 있다.
| 관측 징후 | 원인 | 대응(우선순위) |
|---|---|---|
| 하이라이트 주변의 depth 급변 | 밝기 단서가 geometry로 오인 | ① 조명 각/광량 조정 ② 편광 필터 ③ 하이라이트 마스크 |
| 프레임/샘플 간 depth 분포 흔들림 | 하이라이트 위치 이동 | 고정 광학/고정 노출, 분포 기반 모니터링 |
투명체는 배경이 그대로 관측되거나 굴절로 왜곡되어 관측된다. 이 경우 “대상 표면의 깊이”가 아니라 배경/굴절 혼합 신호가 입력되며, depth는 대상과 배경 사이에서 불안정하게 흔들린다. 투명 부품 검사는 단안 depth에 기대기보다, 광학 설계(백라이트, 편광, 다중 조명)로 관측을 먼저 안정화해야 한다.
텍스처가 거의 없거나 SNR이 낮은 조건에서는 단안 depth의 근거가 약해져 출력이 평탄화되거나 노이즈처럼 변한다. 이때는 모델 변경보다 조명/노출 개선이 효과가 큰 경우가 많다. 또한 ROI 내 “유효 픽셀 비율(confidence/mask ratio)”이 임계치 미만이면 판정을 중단/보류하는 운영 규칙이 필요하다.
단안 depth는 실패 모드가 ‘부분적’으로 나타난다(ROI 일부만 붕괴). 따라서 전체 공정을 멈추기보다, 아래처럼 단계적 fallback을 설계하는 편이 운영 안정성에 유리하다.
| 상황 | 트리거 | Fallback |
|---|---|---|
| 신뢰 마스크 비율 저하 | mask ratio < 임계치 | 재촬영(조명/노출 재설정) 또는 “판정 보류” |
| ROI 분산 급증 | σ² 급증(드리프트) | 조명 이상/오염 점검 알람, 기준 샘플 재보정 |
| 경계 누수 증가 | edge leakage score 상승 | 경계 마스크 확대, 판정 로직에서 경계 제외 |
학습 데이터의 분포(실내/실외, 조명, 카메라 FOV, 텍스처)가 실제 현장과 다르면, 특정 상황에서 오차가 급격히 증가한다. 실무에서는 “전체 평균 성능”보다 “최악 상황 실패”가 더 중요하다.
단안 Depth는 시각적 단서를 기반으로 추론하므로, 반사/투명 표면은 깊이 단서 자체가 왜곡되기 쉽다. 실제 도입 시 아래 항목을 사전에 검증해야 한다.
모델 교체(버전 업데이트) 시 출력 분포가 변할 수 있다. 검사 시스템에서는 다음이 필요하다.
| 항목 | 권장 운영 |
|---|---|
| 모델 버전 고정 | 라인 적용 시점에 해시/가중치 고정, 변경 시 검증 프로토콜 수행 |
| 골든 데이터셋 | 대표 케이스 + 최악 케이스 포함한 회귀 테스트 세트 운영 |
| 모니터링 지표 | ROI depth 통계의 drift(평균/분산) 모니터링, 임계치 초과 시 알람 |
단일 카메라 기반 Depth는 “거리 측정 장치”로 접근하면 실패한다. 반대로, 공간 구조에 대한 보조 신호로 설계하면 비용 대비 높은 효과를 낼 수 있다. 특히 (1) ROI가 통제되고 (2) 절대 mm가 아닌 상대 형상 변화가 중요하며 (3) 표면 특성이 극단적이지 않은 환경에서 효과적이다.
| 목표 | 권고 접근 | 비고 |
|---|---|---|
| 형상 변화 감지(검사) | Relative depth + ROI 통계/차분 기반 NG | 가장 현실적. 기준 샘플 운영 권장 |
| 절대 높이/거리(mm) | 기준면/보조센서로 스케일 보정 후 제한적 사용 | 단안 단독 요구는 비권장 |
| 3D 시각화/디버깅 | Point cloud 생성 후 필터링, 필요 시 mesh/3DGS | 조명/표면 실패 모드 우선 확보 |