Abstract
학습 기반 방법 → 단일 이미지의 depth estimation에서 매우 유망한 결과
그러나 대부분의 기존 접근 방식은 depth prediction을 supervised regression problem으로 취급
→ 훈련을 위해 training시 ground truth depth data 필요함
⇒ 기존 접근법을 넘어 training 중 depth data을 더 쉽게 얻을 수 있는 binocular stereo footage로 대체
convolutional neural network이 ground truth depth data이 없어도 단일 이미지 depth estimation을 수행할 수 있도록 함
Exploiting epipolar geometry을 활용하여 이미지 reconstruction loss로 네트워크를 training해 disparity(불일치) 이미지를 생성
image reconstruction을 해결하는 것이 낮은 퀄리티의 depth image를 생성
이 문제를 해결하기 위해 left and right image에 대해 생성된 disparity 사이의 일관성을 강제하는 새로운 training loss를 제안
KITTI driving dataset에서 ground truth depth 분야에서 SOTA 달성
1. Introduction
기존 접근 방법은 motion으로부터의 structure, shape-frome-X, binocular, multi-view stereo에 의존했음
→ multiple observations이 가능하는 가정에 의존 이러한 제한을 극복하기 위해, 최근에는 monocular depth estimation을 supervised learning problem로 설정하는 작업들이 급증
위 방법은 ground truth depth data 컬랙션에서 offline으로 훈련된 모델을 사용하여 이미지의 각 pixel의 depth를 직접 예측
이러한 방법들은 큰 성공을 거두었지만, 지금까지는 large image collection과 해당 pixel depth가 있는 장면에 제한되어 왔음
single image로부터 장면의 형태를 그 외관과 독립적으로 이해하는것은 기계 인식에서의 근본적인 문제
인간은 원근법, 친숙한 물체의 알려진 크기에 대한 스케일링, 조명과 음영 그리고 가림 형태의 외관과 같은 단서를 이용하여 단안 깊이 추정에서 뛰어난 성능을 발휘
이러한 both top-down and bottom-up cues의 결합은 전체 장면 이해와 깊이를 정확하게 추정하는 사람의 능력을 연결하는 것
이 대안으로 training 중에 image reconstruction problem로 automatic depth estimation을 처리
fully convolutional model은 어떤 depth data도 요구하지 않으며, 대신 중간 단계로 depth를 합성하도록 훈련
이 모델은 알려진 카메라 baseline을 가진 교정된 stereo 이미지 쌍의 pixel-level에 대응을 예측하는 법을 학습
algorithm의 예시 결과는 그림 1에 GPU에서 512x256 이미지에 대한 dense depth map을 예측하는데 35m/s만 소요
contributions:
- network architecture 내부에서 left-right depth consistency을 강제하는 새로운 training loss로 end-to-end unsupercised monocular depth estimation(비지도 학습 기반의 모노클러 깊이 추정)을 시행
- 여러 training loss 및 이미지 형성 모델의 평가를 통해 우리의 접근 방식의 효과를 강조
- 어려운 driving dataset에서 SOTA 달성한 것 외에도, model이 세 가지 다른 데이터셋에서 일반화됨을 보여주며, 직접 수집한 새로운 야외 도시 데이터셋을 포함하여, 공개적으로 사용할 수 있게함
2. Related Work(일단 생략)
3. Method
single image depth prediction network 설명할 것임
내장된 left-right consistency check를 특징으로 하는 새로운 depth estimation training loss을 도입하여, ground truth depth의 supervision 없이도 이미지 쌍에 대해 training 할 수 있음
3.1 Depth Estimation as Image Reconstruction
test time에서 single image $I$가 주어졌을 때, 우리의 목표는 per-pixel scene depth를 예측할 수 있는 함수 $f$를 학습하는 것. 즉, $\hat{d}=f(I)$.
대부분의 기존 학습 기반 접근 방법은 이를 supervised learning problem로 취급하며, training 시 색상 입력 이미지와 해당하는 목표 dpeth value 값을 가짐
→ 다양한 장면에 대해 이러한 ground truth depth data를 획득하는 것이 실용적이지 않음 (레이저 스캐너와 같은 비싼 하드웨어조차도 움직임과 반사가 특징인 자연 장면에서는 정확하지 않을 수 있음)
대안으로, training 동안 depth estimation을 image reconstruction problem로 설정
여기서의 intuition은 보정된 이중 binocular camera 쌍이 주어졌을 때, 한 이미지에서 다른 이미지를 재구성할 수 있는 함수를 학습할 수 있다면, 이미지화되고 있는 장면의 3D 형태에 대해 무언가를 학습한 것
dpeth estimation algorithm의 loss function을 개략적으로 나타낸 것
이 module은 left-right disparity maps $d^l, d^r$을 출력
loss는 부드러움(smoothness), 재구성(reconstruction), 그리고 좌우 불일치 일관성(left-right disparity consistency) 조건을 결합
이 같은 모듈은 네 가지 다른 output scale마다 반복됨
각 구성 요소
- $C$: 합성곱(Convolution). 입력 데이터에 필터를 적용하여 특징을 추출하는 레이어
- $S$: 양선형 샘플링(Bilinear Sampling). 특정 규칙에 따라 이미지를 샘플링하여 크기를 조정
- $UC$: 업-합성곱(Up-Convolution)은 업샘플링과 합성곱을 결합한 것. 해상도를 높이면서도 특징을 추출
- $SC$: 스킵 연결(Skip Connection). 네트워크의 깊은 레이어와 얕은 레이어를 직접 연결하여, 깊은 네트워크에서 발생할 수 있는 정보의 손실을 줄이고 학습을 안정화시키는 데 도움
$H \times W \times D$와 $2H \times 2W \times D/2$는 네트워크의 다양한 레이어에서의 특징 맵의 차원을 나타냄
각각의 블록은 특징 맵의 높이(H), 너비(W), 그리고 깊이(D)를 의미
이 그림은 네트워크가 어떻게 다양한 스케일에서 깊이 정보를 추론하고, 여러 손실 함수를 통해 이 깊이 추정의 정확도를 향상시키는지 시각적으로 보여줌
구체적으로, trining time에 왼쪽 이미지 $I^l$과 오른쪽 이미지 $I^r$에 접근할 수 있으며, 이는 동시에 촬영된 calibrated stereo 쌍의 왼쪽 및 오른쪽 컬러 이미지에 해당
dpeth를 직접 예측하려고 시도하는 대신, 왼쪽 이미지에 적용했을 때 오른쪽 이미지를 재구성할 수 있게 해주는 dense correspondence field $d^r$을 찾으려고 시도
재구성된 이미지 $\tilde{I^r} = I^l(d^r)$을 참조할 것임
마찬가지로, 오른쪽 이미지가 주어졌을 때 왼쪽 이미지도 추정 가능, $\tilde{I^l} = I^r(d^l)$
이미지가 교정되었다고 가정할 때, $d^l$는 이미지 불일치에 해당하는데, 이는 모델이 예측할 pixel당 scalar 값
카메라 간의 baseline distance $b$=와 카메라 초점거리 $f$가 주어지면, 예측된 disparity로부터 depth $\hat{d} = df/d$를 간단히 회복할 수 있음
3.2. Depth Estimation Network
이 network는 왼쪽 이미지를 오른쪽 이미지와 일치하도록 변형시키는 disparity를 추론함으로써 깊이를 추정
핵심은 “왼쪽 입력 이미지만”을 사용하여 두 가지 불일치(왼쪽에서 오른쪽으로, 오른쪽에서 왼쪽으로)를 동시에 추론할 수 있으며, 이들을 서로 일관되게 유지함으로써 더 나은 depth를 얻을 수 있음
backward mapping을 위한 sampling stratege를 보여줌
각 열은 다른 샘플링 방식을 나타내며, 합성곱 신경망을 통해 생성된 불일치 맵과 그 처리 방식을 비교
- Naïve 방식: CNN이 타겟 오른쪽 이미지 $l^r$에 맞추어 불일치 맵 $d^r$을 생성.
이 경우 출력은 타겟에 맞춰져 있지만 입력 왼쪽 이미지 $I^l$과의 일관성은 고려되지 않음 - No LR 방식: 타겟 이미지 $I^l$을 기준으로 삼아 오른쪽 뷰 $I^r$ 에서 샘플링하여 왼쪽 뷰 $\tilde{I^l}$을 생성.
이는 입력과 출력 간의 일치를 개선하지만, 아티팩트 문제를 야기. - Ours: 위 논문의 접근법. 왼쪽 이미지 $I^l$을 사용하여 두 이미지 모두에 대한 불일치를 생성.
이 방식은 두 불일치 맵 $d^r$과 $d^l$ 이 서로 일치하도록 강제함으로써 상호 일관성을 강화하고 결과의 품질을 향상.
그림의 각 요소는 신경망이 어떻게 입력 이미지를 처리하여 불일치 맵을 생성하고, 이를 바탕으로 새로운 뷰를 합성하는지를 시각적으로 설명.
이러한 과정은 깊이 추정 및 이미지 재구성에 중요한 역할.
이 network는 bilinear sampler를 이용한 backward mapping으로 예측 이미지를 생성하며, 이는 완전히 미분 가능한 이미지 형성 모델을 결과로 함
그림 3에 설명된 것처럼, 단순히 왼쪽 이미지에서 샘플링하여 오른쪽 이미지를 생성하는 Naively learning은 오른쪽 이미지(목표)에 맞춰 정렬된 불일치를 생산
그러나 output disparity map이 input left image와 일치하기를 원함 즉, network가 오른쪽 이미지에서 샘플링 해야함
대신 오른쪽 이미지에서 샘플링하여 왼쪽 뷰를 생성하도록 네트워크를 훈련시킬 수 있으며, 이로써 왼쪽 뷰 정렬 불일치 맵을 생성(No LR)
이 방법만으로 작동하지만, inferred disparities는 그림 5에서 볼 수 있듯이 ‘texture-copy’ artifact와 depth discontinuty에서의 오류를 나타냄
⇒ 반대편 입력 이미지에서 샘플링하여 두 뷰의 disparity map을 예측하도록 네트워크를 훈련시켜 이 문제를 해결할 것임
이것은 여전히 convolutional layer에 입력으로 단일 왼쪽 이미지만을 요구하며, 오른쪽 이미지는 훈련 중에만 사용됨(Ours)
이 새로운 left-right consistency cost을 사용하여 두 disparity map 간의 일관성을 강제하므로써 더 정확한 결과를 얻을 수 있음
위 논문의 fully convolutional architecture는 DispNet에서 영감 받았지만, ground truth depth 없이 training을 가능하게 하는 몇 가지 수정 사항이 있음
- 이 network는 두 주요한 부분으로 구성
encoder(cnv1부터 cnv7b까지)
decoder(from upcnv7) - encoder의 활성화 블록에서 skip connection을 사용하여 더 높은 해상도의 세부 사항을 해결할 수 있음 - 네 가지 다른 스케일(disp4 to disp1)에서 불일치 예측을 출력하는데, 각 후속 스케일에서 공간 해상도가 두배
- 단일 이미지만 입력으로 받지만, 이 네트워크는 각 출력 스케일에서 두 가지 disparity map(left-to-right와 right-to-left)를 예측
3.3. Training Loss
각 출력 스케일 $s$에서 손실 $C_s$를 정의하고, 총 손실을 $C = \sum_{s=1}^{4} C_s$로 정의
손실 모듈(Fig. 2 참조)은 $C_s$를 세 가지 주요 항의 조합으로 계산
여기서 $C_{ap}$은 재구성된 이미지가 해당 훈련 입력과 유사하게 보이도록 권장하며, $C_{ds}$는 smooth disparities를 강제하고, $C_{lr}$은 예측된 left and right disparities가 일관되어 있기를 선호
주요 항들은 각각 왼쪽과 오른쪽 이미지 변형을 포함하지만, 왼쪽 이미지만 convolutional layer를 통해 전달
왼쪽 이미지(예: $C^l_{ap}$)에 대한 loss의 각 구성 요소를 제시
오른쪽 이미지 버전(예: $C^r_{ap}$)은 왼쪽을 오른쪽으로 바꾸고 반대 방향으로 샘플링해야 함
$$ C_s = \alpha_{ap}(C^l_{ap} + C^r_{ap}) + \alpha_{ds}(C^l_{ds} + C^r_{ds}) + \alpha_{lr}(C^l_{lr} + C^r_{lr}), $$
Appearance Matching Loss
training하는 동안, network는 반대 stereo image에서 픽셀을 샘플링하여 이미지를 생성하는 것을 배움
위 논문의 image formation model은 spatial transformer network (STN)의 이미지 샘플러를 사용하여 disparity map을 사용하여 입력 이미지를 샘플링
STN은 출력 픽셀이 네 개의 입력 픽셀의 가중 합인 bilinear sampling을 사용
사용된 bilinear sampler는 지역적으로 완전히 미분 가능하며, fully convolutional architecture에 원활하게 통합됨
이는 cost function을 단순화하거나 근사할 필요가 없음을 의미
L1과 single scale SSIM 항의 조합을 photometric image reconstruction cost $C_{ap}$으로 사용
이는 입력 이미지 $I^l_{ij}$와 그 재구성 $\tilde{I}^l_{ij}$ 비교하며, N은 픽셀 수
여기서, 가우시안 대신 3×3 블록 필터를 사용하는 단순화된 SSIM을 사용하고 $\alpha=0.85$로 설정
$$ C_{l_{ap}} = \frac{1}{N} \sum_{i,j} \alpha \left( \frac{1 - \text{SSIM}(I^l_{ij}, \tilde{I}^l_{ij})}{2} \right) + (1 - \alpha) \left| I^l_{ij} - \tilde{I}^l_{ij} \right|. $$
Disparity Smoothness Loss
disparity가 locally smooth하도록 disparity gradient $\partial d$에 대한 L1 패널티를 권장
이미지 그라디언트에서 종종 depth discontinuity이 발생하기 때문에, 이미지 그라디언트 $\partial d$를 사용하는 edge-aware term으로 이 cost을 가중
$$ C_{l_{ds}} = \frac{1}{N} \sum_{i,j} \left| \partial_x d^l_{ij} \right| e^{-k \left| \partial x I^l_{ij} \right|} + \left| \partial_y d^l_{ij} \right| e^{-k \left| \partial_y I^l_{ij} \right|}. $$
Left-Right Disparity Consistency Loss
더 정확한 disparity map을 생성하기 위해, network가 왼쪽과 오른쪽 이미지 disparity를 모두 예측하도록 훈련시키면서, convolutional part의 입력으로 왼쪽 뷰만 주어짐
일관성을 보장하기 위해, 모델 일부로 L1 left-right disparity consistency penalty를 도입
이 cost는 left-view disparity map과 동일하게 만듦
다른 모든 항과 마찬가지로, 이 cost는 right-ciew disparity map에 대해 반영되며, 모든 출력 스케일에서 평가
$$ C_{l_{lr}} = \frac{1}{N} \sum_{i,j} \left| d^l_{ij} - d^r_{ij} + d^l_{ij} \right|. $$
test time에, netwrok는 입력 이미지와 동일한 해상도를 가진 왼쪽 이미지 $d_l$에 대한 finest scale level에서 disparity를 예측
training set에서 알려진 camera baseline과 focal length를 사용하여, disparity map에서 depth map으로 변환
training 중에 오른쪽 disparity $d_r$도 추정하지만, test time에는 사용하지 않음
'논문 리뷰' 카테고리의 다른 글
[논문 리뷰]You Only Look Once:Unified, Real-Time Object Detection(YOLO v1) (1) | 2024.02.07 |
---|
댓글