쌍안 스테레오 비전으로 선박을 인식하고 300m 거리까지 측정하는 방법
— MobileNetV1-YOLOv4, FSRCNN, ORB를 결합한 장거리 비전 인식·거리 측정 시스템
산업용 비전이나 로봇 시스템을 설계하다 보면 두 가지 질문을 동시에 해결해야 할 때가 많습니다. 첫 번째는 “앞에 무엇이 있는가?”이고, 두 번째는 “그 물체가 얼마나 멀리 있는가?”입니다.
첫 번째 문제는 최근 YOLO 계열의 객체 검출 기술로 상당히 잘 해결할 수 있습니다. 하지만 두 번째 문제인 거리, 즉 Depth를 얻는 것은 훨씬 까다롭습니다. LiDAR나 ToF 카메라를 사용하면 비교적 쉽게 거리를 얻을 수 있지만, 측정 거리와 반사율, 가격, 해상도, 설치 공간 등의 제약이 따라옵니다.
이번에 살펴볼 논문은 이러한 문제를 두 대의 일반 RGB 카메라를 이용하는 Binocular Stereo Vision(BSV)으로 해결합니다. 연구 대상은 내륙 하천을 운항하는 선박이지만, 시스템의 구조를 살펴보면 로봇, 산업용 머신비전, 장거리 물체 측정, 물류 자동화 등에도 충분히 응용할 수 있는 아이디어가 많습니다.
논문의 핵심 구조는 의외로 명확합니다.
선박 검출 → 관심영역 추출 → 초해상도 복원 → 특징점 검출·매칭 → 시차 계산 → 삼각측량 → 거리 산출
즉, 딥러닝 하나로 모든 문제를 해결하려 하지 않고, 딥러닝 객체검출 + 영상복원 + 전통 특징점 매칭 + 기하학을 결합했습니다. 바로 이 점이 산업 현장에서 참고할 가치가 큽니다.
쌍안 스테레오 비전은 말 그대로 두 대의 카메라로 같은 대상을 동시에 촬영합니다. 사람도 왼쪽 눈과 오른쪽 눈에서 약간씩 다른 영상을 보고, 두 영상의 차이를 이용해 거리를 느낍니다.
카메라에서도 동일한 개념을 사용합니다. 왼쪽 카메라 영상에서 어떤 특징점이 xL 위치에 있고, 오른쪽 영상에서 같은 특징점이 xR 위치에 있다면 두 위치의 차이가 Disparity, 즉 시차 d가 됩니다.
Z = f × B / d
여기서 Z는 물체까지의 거리, f는 초점거리, B는 두 카메라 사이의 Baseline, d는 좌우 영상에서 측정한 시차입니다. 이 식은 스테레오 비전을 이해할 때 가장 중요한 식입니다.
가까운 물체는 좌우 영상의 위치 차이가 크게 나타나므로 d가 커지고, 결과적으로 Z는 작아집니다. 반대로 먼 물체는 두 영상에서 거의 같은 위치에 보이기 때문에 d가 작아지고, 계산된 Z는 커집니다.
문제는 물체가 멀어질수록 시차가 몇 픽셀 또는 그 이하로 작아진다는 점입니다. 따라서 장거리 스테레오 측정에서 핵심은 단순히 카메라 두 대를 설치하는 것이 아니라 얼마나 정밀하게 같은 특징점을 찾아 시차를 계산하느냐입니다.
스테레오 카메라를 설치했다고 곧바로 정확한 거리를 얻을 수 있는 것은 아닙니다. 두 카메라의 렌즈 특성, 이미지 센서의 중심 위치, 초점거리, 카메라 간 회전 및 이동량을 정확하게 알아야 합니다.
논문에서는 MATLAB의 Stereo Camera Calibration 기능과 Zhang의 체커보드 보정법을 사용했습니다. 16×9 체커보드를 사용했고, 한 칸의 크기는 60 mm입니다. 서로 다른 방향에서 30세트의 이미지를 촬영한 뒤 품질이 좋은 18세트를 선별해 Calibration에 사용했습니다.
실험 시 두 카메라 사이의 수평 거리는 약 50 cm로 설정했습니다. Calibration 결과 평균 Reprojection Error는 0.24 pixel, 최대값은 0.40 pixel이었습니다. 모두 1 pixel 미만이어서 이후 Stereo Rectification 및 Depth 계산에 사용할 수 있는 수준이라고 평가했습니다.
산업용 비전에서 이 수치가 중요한 이유는 Depth 오차가 결국 Calibration 오차와 Feature Matching 오차를 함께 포함하기 때문입니다. 특히 수백 미터처럼 시차가 매우 작아지는 장거리에서는 0.1 pixel 수준의 변화도 거리 값에 상당한 영향을 줄 수 있습니다.
두 영상 전체에서 무작정 특징점을 찾으면 배경의 건물, 물결, 강변 시설물, 하늘 등 불필요한 정보가 모두 들어옵니다. 따라서 이 논문은 먼저 딥러닝으로 선박을 검출하고, 검출된 Bounding Box 내부만 Depth 계산 대상으로 사용합니다.
기본 모델은 YOLOv4입니다. YOLOv4는 CSPDarknet53 Backbone, SPP, PANet, YOLO Head로 구성되며 정확도가 높지만 모델 크기와 연산량이 큽니다. 선박이나 이동형 장비에 탑재하기에는 계산 부담이 문제가 될 수 있습니다.
연구진은 이를 해결하기 위해 CSPDarknet53을 MobileNetV1으로 교체합니다. MobileNetV1의 핵심은 Depthwise Separable Convolution입니다. 표준 Convolution을 각 채널별 Depthwise Convolution과 1×1 Pointwise Convolution으로 나눔으로써 파라미터와 연산량을 크게 줄입니다.
논문은 MobileNetV1의 이러한 구조를 이용해 YOLOv4의 SPP와 PANet, Detection Head는 유지하면서 Backbone만 경량화했습니다. 결과적으로 임베디드 또는 제한된 GPU 환경에서 더 현실적인 객체 검출기를 만들었습니다.
실험에는 1280×720 해상도의 내륙 선박 이미지 2,000장을 사용했습니다. 대상은 Container Ship, Passenger Ship, Ore Carrier의 세 종류이며, 학습과 시험 데이터는 9:1로 분할했습니다. 또한 Mosaic Augmentation을 사용하여 촬영 방향과 배경의 다양성을 높였습니다.
학습 조건은 Learning Rate 0.001, Batch Size 4, SGD Optimizer, 300 Epoch입니다. 약 4.8시간 학습 후 Loss는 약 0.1 수준으로 수렴했습니다.
| 모델 | mAP | Backbone Weight | FPS |
|---|---|---|---|
| YOLOv4 | 90.70% | 244 M | 26.11 |
| MobileNetV1-YOLOv4 | 89.25% | 47.6 M | 66.23 |
mAP는 약 1.45%p 낮아졌지만, Backbone의 Weight는 약 20% 수준으로 줄었고 FPS는 26.11에서 66.23으로 크게 증가했습니다. 즉, 약간의 정확도 손실을 감수하고 2.5배 이상 빠른 처리 속도와 대폭 줄어든 모델 크기를 얻었습니다.
산업용 비전에서는 최고 정확도만큼이나 처리시간과 GPU 요구량이 중요합니다. 장비 한 대에 여러 카메라가 연결되거나, 제어 프로그램과 동시에 GPU를 사용해야 하는 경우에는 이런 경량화가 제품화를 좌우할 수 있습니다.
객체 검출에 성공했다고 거리 측정까지 자동으로 해결되는 것은 아닙니다. 거리 계산에는 좌우 영상에서 같은 위치를 나타내는 특징점 쌍이 필요합니다.
선박이 멀어질수록 영상 속 크기가 작아지고, 선체의 창문이나 모서리, 글자, 구조물 같은 특징들이 몇 픽셀 수준으로 축소됩니다. 특징점이 줄어들면 ORB 같은 Feature Matcher가 안정적으로 대응점을 찾기 어려워지고, 이는 곧 Disparity 오차와 거리 오차로 연결됩니다.
논문은 이 문제를 해결하기 위해 객체 검출 Bounding Box로 추출한 선박 영역에 FSRCNN(Fast Super-Resolution CNN)을 적용했습니다.
FSRCNN은 Feature Extraction → Shrinking → Mapping → Expanding → Deconvolution의 다섯 단계로 구성됩니다. 저해상도 이미지를 직접 입력하고, 마지막 단계에서 Deconvolution을 통해 고해상도 이미지를 생성합니다. 단순 확대가 아니라 특징을 학습하여 복원하므로 윤곽과 Edge 정보가 강화됩니다.
실험에서는 ImageNet-91을 학습 데이터로 사용하고, 자체 제작한 Set14를 Test Set으로 사용했습니다. Learning Rate는 1×10-5, Optimizer는 Adam, 학습은 60K Epoch 조건으로 수행했습니다.
FSRCNN 적용 후 선박의 경계와 국부적인 특징이 더 선명해졌고, 논문에서는 PSNR 비교에서도 여러 테스트 이미지에서 ESPCNN보다 좋은 결과를 보였습니다. 핵심은 “보기 좋은 이미지”를 만드는 것보다 매칭 가능한 특징점을 늘린다는 데 있습니다.
Super-Resolution을 거친 다음 단계는 좌우 영상에서 같은 물리적 위치를 찾아내는 Stereo Matching입니다. 이 논문에서는 ORB(Oriented FAST and Rotated BRIEF)를 사용합니다.
ORB는 크게 세 단계로 이해하면 쉽습니다. 먼저 FAST 알고리즘을 이용해 Corner 성격이 강한 특징점을 검출합니다. 이어서 BRIEF 방식으로 각 특징점 주변을 Binary Descriptor로 표현합니다. 마지막으로 좌우 영상의 Descriptor 사이에서 Hamming Distance를 계산해 유사한 특징점을 서로 연결합니다.
ORB의 장점은 SIFT나 SURF에 비해 가볍고 빠르며, Binary Descriptor이기 때문에 Hamming Distance로 매우 빠른 매칭이 가능하다는 점입니다. 또한 방향 정보를 고려하기 때문에 영상 회전에 대해서도 비교적 강합니다.
논문에서는 Super-Resolution을 먼저 수행했기 때문에 선박의 Edge와 Contour를 따라 더 많은 특징점이 검출되었고, 좌우 영상에서 대응되는 Matching Pair가 비교적 고르게 분포했습니다. 이렇게 얻은 여러 대응점의 Disparity를 이용하여 최종 거리 값을 계산합니다.
하나의 선박에서는 ORB 특징점이 여러 개 검출되므로 여러 Disparity 값이 발생합니다. 논문에서는 단일 Target에 속한 모든 특징점의 Disparity 평균값을 이용해 대상 선박의 Depth를 계산했습니다.
구조는 다음과 같이 정리할 수 있습니다.
MobileNetV1-YOLOv4 → Ship ROI → FSRCNN → ORB Feature → Stereo Matching → 평균 Disparity → Z = fB/d
이 방식의 장점은 한 개의 특징점에 의존하지 않는다는 것입니다. 일부 매칭점에서 작은 오차가 발생하더라도 여러 점을 평균하면 결과가 안정될 수 있습니다.
다만 실제 산업 시스템을 만든다면 단순 평균보다 Median, RANSAC, Matching Confidence, Epipolar Error, Left-Right Consistency 등을 적용하여 Outlier를 제거한 뒤 Depth를 계산하는 방식이 더 안정적일 가능성이 큽니다. 이 부분은 논문의 직접 결과가 아니라 산업 적용을 위한 확장 아이디어입니다.
거리 측정 정확도를 검증하기 위해 연구진은 SNDWAY-1000A Laser Rangefinder를 기준 장비로 사용했습니다. 이 장비는 1000 m 범위에서 ±0.5 m 수준의 측정 오차를 갖는 것으로 설명됩니다.
| BSV 측정값 | Laser 기준값 | 오차율 |
|---|---|---|
| 105.10 m | 103.80 m | +1.25% |
| 198.21 m | 195.30 m | +1.49% |
| 285.76 m | 290.20 m | -1.53% |
| 311.26 m | 305.80 m | +1.97% |
| 348.08 m | 355.30 m | -2.03% |
전체적으로 약 100~350 m 구간에서 오차가 약 ±3% 안에 들어왔습니다. 논문은 특히 약 300 m 거리에서 3% 이내의 정확도를 확보했다고 결론내립니다.
거리 증가에 따라 오차가 커지는 이유도 스테레오의 기본 원리로 설명할 수 있습니다. 거리가 멀어지면 Disparity가 작아져 동일한 1 pixel 오차가 훨씬 큰 Depth 오차로 증폭됩니다. 따라서 장거리 Stereo에서는 Baseline 확대, 초점거리 증가, 고해상도 센서, Sub-pixel Matching, 정밀 Calibration이 점점 중요해집니다.
최근에는 모든 문제를 End-to-End Deep Learning으로 해결하려는 접근이 많습니다. 그러나 이 연구는 역할을 비교적 명확하게 나눕니다.
AI가 잘하는 부분은 선박이 어디에 있는지 찾고, 저해상도 영역의 시각적 특징을 복원하는 일입니다. 반면 기하학이 잘하는 부분인 거리 계산은 삼각측량 공식을 그대로 사용합니다. 그리고 두 영역을 ORB Feature Matching이 연결합니다.
이런 Hybrid 구조는 산업 장비에서 매우 유용합니다. 왜냐하면 결과의 의미를 설명하기 쉽고, Calibration과 Feature Matching 결과를 단계별로 확인할 수 있으며, 문제가 발생했을 때 Root Cause를 추적하기도 쉽기 때문입니다.
논문의 대상은 선박이지만 구조 자체는 산업용 장비에 매우 잘 맞습니다.
예를 들어 로봇 Pick & Place 장비에서는 카메라가 먼저 부품을 검출하고, Stereo Matching을 통해 X·Y뿐 아니라 Z까지 계산할 수 있습니다. Tray 검사에서는 Package가 들어 있는지만 보는 것을 넘어 Package 상면 높이나 기울기를 측정할 수 있습니다. 대형 Glass나 Wafer에서는 복수 카메라 또는 Stereo Camera로 Height Map을 만들고 Warpage나 Tilt를 분석하는 구조로 발전시킬 수 있습니다.
또한 로봇 End Effector와 대상 물체 간 거리를 비접촉으로 측정하거나, 장비 내부의 큰 구조물 위치를 Calibration할 때도 활용 가능합니다.
특히 이 논문에서 주목할 부분은 “ROI를 먼저 좁히고, 필요한 곳에만 고해상도 복원과 정밀 Matching을 수행한다”는 것입니다. 전체 이미지를 항상 최고 해상도로 처리하는 것보다 GPU 부하와 처리시간을 크게 줄일 수 있기 때문입니다.
논문 자체도 몇 가지 한계를 인정합니다. 실험 환경의 선박 종류가 많지 않고, 비교적 단순한 강변 환경에서 데이터를 얻었습니다. 실제 환경에서는 날씨, 안개, 역광, 수면 반사, 야간, 진동, 카메라 오염, 렌즈 온도 변화 등이 Feature Matching 품질을 떨어뜨릴 수 있습니다.
산업용으로 가져갈 경우에도 같은 문제가 발생합니다. 금속 반사면, 검정 플라스틱, 투명 Glass, 반복 패턴, 저대비 표면 등은 Stereo Matching에서 어려운 대상입니다.
따라서 실제 장비 개발에서는 Calibration Reprojection Error, Feature Match 개수, Inlier Ratio, Disparity 표준편차, Depth Repeatability, 온도 Drift, 진동 영향, 조명 변화, 처리시간, 장시간 Burn-in 등을 별도 품질지표로 관리할 필요가 있습니다.
이 논문의 ORB 기반 Stereo Matching 구조는 비교적 가볍고 설명 가능성이 높습니다. 하지만 최근 기술을 접목하면 더 발전시킬 여지도 많습니다.
첫째, ORB 대신 Deep Feature Matcher를 사용하여 저대비나 반복 패턴에서 Matching Robustness를 높일 수 있습니다. 둘째, 각 Feature의 Confidence를 이용해 단순 평균이 아니라 신뢰도 가중 Depth를 계산할 수 있습니다. 셋째, Temporal 정보를 결합하면 한 프레임의 Depth가 흔들리더라도 여러 프레임을 이용해 안정화할 수 있습니다. 넷째, 객체별 Depth뿐 아니라 Dense Depth Map을 생성하면 Object Pose, Surface Tilt, Warpage까지 측정할 수 있습니다.
다만 산업 시스템에서는 기술의 최신성보다 재현성·속도·설명 가능성·유지보수성이 더 중요할 때가 많습니다. 따라서 전통 Geometry와 Deep Learning을 적절히 혼합하는 것이 오히려 좋은 선택이 될 수 있습니다.
이 논문의 전체 아이디어를 네 단어로 줄이면 Detection, Enhancement, Matching, Geometry라고 할 수 있습니다.
MobileNetV1-YOLOv4가 선박을 찾고, FSRCNN이 작은 선박 영상을 선명하게 만들어 특징을 보강합니다. ORB가 좌우 영상에서 같은 특징점을 찾고, 최종적으로 Stereo Geometry가 Disparity를 실제 거리로 변환합니다.
실험에서는 MobileNetV1-YOLOv4가 mAP 89.25%, 66.23 FPS를 기록했고, 약 300 m 거리의 선박을 3% 이내 오차 수준으로 측정했습니다. 이러한 결과는 두 대의 일반 카메라와 비교적 가벼운 알고리즘 조합만으로도 상당한 수준의 객체 인식과 장거리 Depth Estimation이 가능하다는 것을 보여줍니다.
산업용 비전 관점에서 가장 중요한 교훈은 하나입니다.
좋은 3D 비전 시스템은 AI 하나로 완성되는 것이 아니라, 광학·Calibration·영상처리·AI·기하학이 함께 맞물릴 때 완성된다.
Yuanzhou Zheng et al., “Recognition and Depth Estimation of Ships Based on Binocular Stereo Vision,” Journal of Marine Science and Engineering, 2022, 10, 1153.
#쌍안스테레오비전 #BinocularStereoVision #StereoVision #DepthEstimation #거리측정 #3D비전 #머신비전 #산업용비전 #YOLOv4 #MobileNetV1 #FSRCNN #SuperResolution #ORB #FeatureMatching #Disparity #CameraCalibration #삼각측량 #ObjectDetection #ComputerVision #DeepLearning #로봇비전 #스마트선박 #자율운항 #영상처리 #3DMeasurement
'시스템' 카테고리의 다른 글
| 딥러닝 기반 스테레오 Depth Estimation의 전체 흐름과 산업용 비전 적용 (0) | 2026.09.13 |
|---|---|
| BEVStereo로 이해하는 멀티뷰 3D 깊이 추정과 산업용 비전 응용 (4) | 2026.09.12 |
| 반도체 웨이퍼 표면 결함을 CNN으로 분류하는 방법 (0) | 2026.09.11 |
| 반도체 웨이퍼 미세 결함을 잡는 하이브리드 딥러닝 검사 기술 (0) | 2026.09.11 |
| 천체망원경 연재 1 — 천체망원경은 어떻게 멀리 있는 별을 보여줄까? (0) | 2026.09.06 |