딥러닝 기반 스테레오 Depth Estimation의 전체 흐름과 산업용 비전 적용
— A Survey on Deep Learning Techniques for Stereo-based Depth Estimation 정리
사람은 두 눈의 미세한 시차를 이용해 거리와 깊이를 자연스럽게 인지합니다. 컴퓨터 비전의 Stereo Depth Estimation도 비슷한 원리를 사용합니다. 왼쪽과 오른쪽 카메라에서 같은 장면을 촬영하고, 두 영상에서 같은 지점을 찾아 그 위치 차이인 disparity를 계산한 뒤 삼각측량으로 깊이를 추정합니다.
하지만 실제 산업 현장에서는 문제가 단순하지 않습니다. 표면이 반사되거나, 무늬가 반복되거나, 텍스처가 거의 없는 영역이 존재하고, 가려짐(occlusion)도 빈번합니다. 이 때문에 전통적인 스테레오 매칭은 오랫동안 정밀도와 안정성의 한계를 가지고 있었습니다. 논문은 2014년부터 2019년 사이 발표된 150편 이상의 연구를 분석하며, 딥러닝이 이 문제를 어떻게 바꾸었는지를 체계적으로 정리합니다.
스테레오 카메라에서는 왼쪽 영상의 한 픽셀과 동일한 실제 3차원 점을 나타내는 오른쪽 영상의 픽셀을 찾아야 합니다. 두 점 사이의 수평 위치 차이가 disparity입니다. 일반적으로 disparity가 크면 카메라에 가깝고, disparity가 작으면 멉니다.
전통적인 스테레오 알고리즘은 대체로 다음 네 단계로 구성됩니다.
Feature Extraction → Feature Matching → Cost Volume / Disparity Estimation → Refinement
딥러닝의 핵심 역할은 바로 이 단계들을 사람이 설계한 규칙에서 데이터 기반 학습으로 바꾸는 것입니다.
초기의 스테레오 방식은 SAD, Census, NCC처럼 사람이 설계한 특징과 유사도 함수를 사용했습니다. 딥러닝 기반 방법은 왼쪽과 오른쪽 영상의 작은 패치를 CNN에 넣고, 서로 같은 지점을 표현하는지 직접 학습합니다.
이 과정에서 Siamese Network, ResNet, Spatial Pyramid Pooling(SPP), Multi-scale Feature와 같은 구조가 활용되었습니다. 중요한 변화는 단순합니다. ‘어떤 특징이 좋은가?’를 사람이 정하는 대신, 데이터가 특징을 학습하게 된 것입니다.
다만 높은 정확도를 얻기 위해 네트워크가 커지면서 연산량도 함께 증가했습니다. 이후 연구는 더 넓은 receptive field를 확보하면서도 해상도 손실과 연산 증가를 줄이는 방향으로 발전했습니다.
딥 스테레오에서 가장 중요한 개념 중 하나가 Cost Volume입니다. 특정 픽셀에 대해 가능한 여러 disparity 후보를 놓고 ‘이 깊이가 맞을 가능성’을 쌓아놓은 공간이라고 생각하면 됩니다.
논문은 크게 3D Cost Volume, 4D Cost Volume, Hybrid 3D–4D Cost Volume으로 분류합니다.
3D Cost Volume은 비교적 단순하고 빠르며 메모리 사용량이 적습니다. 반면 4D Cost Volume은 feature 차원까지 보존하기 때문에 더 많은 정보를 담을 수 있지만, 3D convolution을 사용하면서 GPU 메모리와 계산량이 급격히 증가합니다.
그래서 최근 구조들은 ‘정확도를 위해 정보를 많이 보존할 것인가, 실시간성과 메모리를 위해 압축할 것인가’ 사이에서 절충점을 찾습니다. 산업용 비전에서 매우 중요한 부분입니다.
Raw Cost Volume은 그대로 사용하기 어렵습니다. 반복 패턴, 반사, 가려짐, 낮은 텍스처 때문에 잘못된 깊이 후보가 많이 포함될 수 있기 때문입니다. 따라서 공간적으로 말이 되는 깊이 구조를 만들기 위한 regularization이 필요합니다.
전통적인 MRF, CRF, SGM을 사용할 수도 있고, 2D CNN 또는 3D CNN으로 cost volume을 정제할 수도 있습니다. 3D CNN은 spatial dimension과 disparity dimension을 동시에 보며 문맥을 학습할 수 있지만, 메모리 사용량이 큽니다.
논문에 소개된 연구 중에서는 recurrent regularization을 사용해 메모리를 약 15.4GB 수준에서 약 5GB 수준으로 줄인 사례도 정리되어 있습니다. 즉 정확도뿐 아니라 메모리 최적화 자체가 핵심 연구 주제임을 알 수 있습니다.
초기에는 Feature Extraction, Matching, Regularization을 각각 따로 설계했습니다. 이후에는 이 모든 단계를 differentiable block으로 연결해 end-to-end로 학습하는 방식이 주류가 되었습니다.
대표적인 구조로 DispNet, PSMNet, GANet, AnyNet, DeepPruner, HighResNet 등이 소개됩니다. 각 방법은 대체로 다음 중 하나를 개선하려고 합니다.
- 정확도 향상
- Cost Volume 메모리 감소
- High-resolution 처리
- 실시간 처리
- Occlusion과 Boundary 보존
- 다른 환경에서도 성능이 유지되는 Generalization
논문은 정확도뿐 아니라 실행시간과 GPU 메모리 사용량도 비교합니다. 640×480 이미지 기준으로 일부 방법은 한 장 처리에 수 초가 걸리며 3GB~10GB 이상의 GPU 메모리를 요구합니다.
반면 HighResNet은 논문 평가에서 약 37 ms 수준으로 disparity map을 생성했고, AnyNet은 메모리 효율성이 높아 모바일 장치 적용 가능성이 언급됩니다. DeepPruner는 PatchMatch를 결합해 검색 공간을 줄여 600ms 수준의 계산을 약 60ms까지 줄이는 방향을 보여줍니다.
이 점은 산업용 장비에서 매우 중요합니다. 검사 정확도가 0.5% 좋아져도 Cycle Time이 두 배가 되거나 GPU를 고가 제품으로 바꿔야 한다면 실제 장비에는 적용하기 어렵습니다.
산업용 검사에서 더 중요한 질문은 ‘이 깊이 값이 맞는가?’입니다. 논문은 단순한 depth map뿐 아니라 confidence 또는 uncertainty map을 함께 추정하는 연구 흐름을 상세히 설명합니다.
대표적인 방법은 Left-Right Consistency입니다. 왼쪽에서 계산한 disparity와 오른쪽에서 계산한 disparity를 다시 좌표 변환해 비교하여, 서로 일치하지 않는 위치를 낮은 신뢰도로 판단합니다.
이런 신뢰도 정보는 잘못된 깊이 값을 제거하거나 주변의 신뢰 높은 값으로 보정하고, refinement 단계에서 중요한 영역을 선택적으로 처리하는 데 사용할 수 있습니다.
산업용 검사에서는 Depth 값 자체만큼 Confidence Map이 중요합니다. 예를 들어 Tray 높이 검사에서 특정 pixel의 높이가 0.5mm라고 하더라도 confidence가 낮다면 불량 판정을 바로 내리는 대신 재촬영이나 다른 센서와의 교차 검증을 수행할 수 있습니다.
카메라가 두 대가 아니라 여러 대라면 Multi-View Stereo(MVS)가 됩니다. 논문은 Volumetric 방식과 Plane-Sweep Volume(PSV) 방식으로 크게 분류합니다.
MVS에서는 단순 rectification만으로 해결하기 어렵기 때문에 카메라 intrinsic/extrinsic parameter를 이용한 projection과 warping이 중요해집니다. MVSNet과 같은 구조는 여러 카메라의 feature를 depth plane에 back-projection하고, 여러 view의 정보를 통합해 cost volume을 만든 뒤 depth를 추정합니다.
장점은 시야가 더 넓고 occlusion에 강해질 수 있다는 점입니다. 반면 카메라 calibration 정확도, 동기화, 메모리 사용량, 연산량 문제가 더 중요해집니다.
정확한 depth ground truth를 얻기는 매우 어렵습니다. LiDAR나 정밀 3D 측정 장비를 이용하면 가능하지만 비용이 크고, ground truth에도 노이즈가 존재합니다.
그래서 논문은 세 가지 학습 방향을 정리합니다.
- Supervised: 정답 disparity/depth를 직접 사용
- Self-supervised: 오른쪽 영상을 예측 depth로 warp했을 때 왼쪽 영상과 얼마나 잘 일치하는지를 loss로 사용
- Weakly supervised: 기존 stereo 결과나 일부 sparse depth처럼 불완전한 신호를 활용
산업 현장에서는 완벽한 정답 데이터를 수천~수만 장 만드는 것이 어렵기 때문에 Self-supervised와 Weakly supervised 방식이 특히 현실적입니다.
논문에서 매우 중요하게 다루는 주제가 Domain Shift입니다. Synthetic data로 학습한 네트워크를 실제 카메라 영상에 적용하면 성능이 떨어질 수 있습니다. 카메라 모델, 렌즈, 조명, 재질, 노이즈, 배경이 달라지기 때문입니다.
특히 반사성 금속, 유리, 검은 플라스틱, 반복 패턴, 저조도 환경은 스테레오에게 매우 어려운 조건입니다. 산업용 머신비전에서는 바로 이런 대상이 많습니다.
연구에서는 Fine-tuning, Unsupervised Domain Adaptation, Online Adaptation, Synthetic↔Real Image Translation 등을 해결책으로 제안합니다. 장비가 설치된 현장에서 새로 수집되는 영상으로 조금씩 모델을 적응시키는 방식도 중요한 연구 방향입니다.
이 Survey는 향후 과제로 다음 문제들을 강조합니다.
- 카메라 파라미터와 Calibration 문제
- 조명 변화와 복잡한 재질
- High-resolution depth map 생성
- Thin structure 및 object boundary 보존
- 실시간 처리와 메모리 사용량
- 고정된 disparity range 문제
- 대규모 정답 데이터 부족
- 새로운 환경에서의 Generalization
- AutoML을 이용한 Network Architecture 자동 최적화
흥미로운 점은 2020년 당시에도 이미 단순히 정확도 경쟁을 넘어 ‘실제로 사용할 수 있는 Depth Network’가 중요한 연구 방향으로 제시되고 있었다는 것입니다.
자율주행용 Stereo 연구를 산업용 검사에 그대로 적용할 필요는 없습니다. 오히려 산업 현장의 조건을 활용하면 더 단순하고 안정적인 구조를 만들 수 있습니다.
예를 들어 다음과 같은 응용을 생각할 수 있습니다.
- JEDEC Tray의 높이 및 뒤틀림 검사
- Wafer 또는 Glass의 평탄도 및 Warpage 측정
- Robot Pick Position의 Z 보정
- 부품 조립 높이 검사
- 반도체 패키지 Coplanarity 검사
- 복수 카메라 기반 3D Alignment
- 설비 내부 간섭 및 거리 측정
산업용에서는 대상 물체의 위치와 촬영 거리가 제한되어 있기 때문에 disparity search range를 좁힐 수 있고, 카메라와 조명을 고정할 수 있습니다. 이는 자율주행보다 훨씬 유리한 조건입니다.
실제 산업용 Depth Inspection Engine이라면 다음과 같은 구조가 현실적입니다.
Stereo Camera → Rectification → CNN Feature → Restricted Cost Volume → Confidence Estimation → Depth Refinement → Plane Calibration → Height / Warpage / Pose Measurement
여기서 중요한 것은 무조건 가장 큰 Network를 사용하는 것이 아닙니다. 검사 범위가 200~300mm처럼 제한되어 있다면 disparity search range를 줄이고, ROI만 고해상도로 계산하고, 낮은 confidence 영역만 재처리하는 방식이 훨씬 효율적입니다.
또한 품질 평가 단계에서는 Depth RMSE뿐 아니라 다음을 함께 봐야 합니다.
- 반복 정밀도
- Z 방향 Bias
- 평면 기울기 오차
- Edge 영역 오차
- 검정/반사/투명 재질별 성능
- 조명 변화에 따른 Drift
- GPU 사용량과 Latency
- Confidence 기반 오검출률
딥러닝 기반 Stereo Depth Estimation의 발전 과정은 매우 분명합니다. 처음에는 CNN으로 ‘좋은 특징’을 학습하는 데서 시작했고, 이후 Cost Volume, 3D CNN, End-to-End 학습, Confidence Estimation, Multi-View Stereo, Domain Adaptation으로 계속 확장되었습니다.
하지만 산업용으로 가져올 때 가장 중요한 질문은 ‘최신 모델인가?’가 아닙니다. 원하는 측정 범위에서 필요한 정밀도를 안정적으로, 제한된 GPU 자원과 Cycle Time 안에서 낼 수 있는가?가 핵심입니다.
따라서 산업용 Stereo는 정확도·속도·메모리·Calibration·재질·조명·Confidence까지 함께 설계해야 합니다. 이 관점에서 보면 Stereo Depth Estimation은 단순한 3D 카메라 기술이 아니라, 향후 반도체 검사와 로봇 비전의 중요한 기반 기술이 될 수 있습니다.
#StereoVision #DepthEstimation #DeepLearning #MachineVision #IndustrialVision #3DVision #Disparity #CostVolume #StereoMatching #MultiViewStereo #MVS #PSMNet #GANet #AnyNet #DeepPruner #ConfidenceMap #DomainAdaptation #WaferInspection #TrayInspection #Warpage #RobotVision #SemiconductorEquipment
'시스템' 카테고리의 다른 글
| BEVStereo로 이해하는 멀티뷰 3D 깊이 추정과 산업용 비전 응용 (4) | 2026.09.12 |
|---|---|
| 반도체 웨이퍼 표면 결함을 CNN으로 분류하는 방법 (0) | 2026.09.11 |
| 반도체 웨이퍼 미세 결함을 잡는 하이브리드 딥러닝 검사 기술 (0) | 2026.09.11 |
| 천체망원경 연재 1 — 천체망원경은 어떻게 멀리 있는 별을 보여줄까? (0) | 2026.09.06 |
| [BlogPost] 엑시덴탈 디그니티와 에센셜 디그니티의 차이 (0) | 2026.09.05 |