논문 리뷰

[논문리뷰] HITNet (CVPR 2023) : cost volume aggregation 속도 향상

dohyeon2 2024. 5. 31. 14:50

목차

    안녕하세요 윤도현입니다. 오늘 소개해드릴 논문은 Stereo Depth Estimation 분야에서 뜨거운 이슈가 된 논문인 HITNet: Hierarchical Iterative Tile Refinement Network for Real-time Stereo Matching 일명 HITNet입니다. 기존 Deep learning 기반 stereo depth estimation을 진행하던 논문들이 해결하고자 하는 Task와 동일하게 왼쪽-오른쪽 두장의 이미지와 카메라 내부 parameter가 주어지면 3D point까지의 거리를 계산합니다. ETH3D 데이터셋 기준, EPE(end point error)가 SOTA인 R-Stereo와 비슷하면서 추론속도가 40배 가량 빠릅니다.

    이 논문이 크게 주목받았던 가장 큰 이유는 획기적으로 빠른 추론속도(0.02s)입니다.

     

    1. Background

    일반적인 딥러닝 방식으로 disparity map을 획득하는 방법은 다음과 같습니다.

    1. CNN으로 2D convolution을 이미지에 적용하여 각 이미지의 특징을 추출하고, 모든 픽셀의 유사도를 측정
    2. 3D convolution을 적용하여 cost volume 필터링
    3. 다양한 손실함수를 이용하여 disparity 계산
    4. 계산된 disparity를 정제하는 과정은 skip 가능

    최근 딥러닝 기반 stereo depth estimation의 가장 큰 화두는 Cost aggregation 과정에서 진행되는 3D convolution 연산을 어떻게 대체하느냐가 challenging point였습니다. 그래서 시간의 흐름에 따라 어떻게 변화되었는지 살펴보면 아래와 같습니다. 

     

    Cost Aggregation with 3D Convolution

     

    가장 기본적인 딥러닝 기반 stereo depth estimation 논문을 뽑으라고 한다면, 단연코 PSMNet을 뽑을것 입니다. 이 논문에서는 먼저 Cost Matching 부분을 cnn으로 대체하여 왼쪽, 오른쪽 이미지의 특징들을 뽑아내서 유사도를 측정합니다. 추가적으로 Spatial pyramid pooling module을 이용하여 전역적인 특징을 뽑아서 feature map 통합하고 4차원의 Cost volume을 구성합니다. 그 다음 Cost 정합과정을 3D convolution으로 대체하였는데, 4차원 cost volume 3D 커널을 적용하면 인접한 공간의 정보를 이용해 새로운 특징을 뽑아냅니다. 마지막으로 softmax 함수를 사용해서 각 disparity의 확률을 계산하고 최종적으로 disparity 값을 얻습니다. 하지만 이러한 3D convolution 과정은 엄청난 computing power 요구하기 때문에 로봇이나 자율주행과 같이 실시간 추론을 요구하는 작업들에는 적용이 쉽지가 않았습니다.

     

    Cost Aggregation with less 3D Convolution

     

    이러한 한계점을 극복하고자 어떻게하면 3D convolution 연산을 줄일 수 있을까? 라는 고민을 통해 Group-wise correlation stereo network가 발표되었습니다. 이 논문에서는 cost volume 3D convolution적용하는것은 동일하지만 cost volume을 만드는 과정에서 특징맵을 그룹화하고 각 그룹끼리의 상관관계를 계산하여 cost volume을 계산합니다. 이렇게 하면 그냥 cost volume을 만드는 것보다 더 적은 채널을 가지게 되어 3D convolution 과정에서 연산량이 획기적으로 줄어들게 됩니다. 이런식으로 3D convolution연산량을 획기적으로 줄였지만, 여전히 많은 computing power가 필요하고 실시간으로 inference 하는데에 명확한 한계가 존재했습니다.

     

    Cost Aggregation with no 3D Convolution

     

    그래서 아예 3D convolution안하면 방법은 없을까 라는 고민을 통해 GA-Net이 나왔는데요. 어떻게보면 오늘 리뷰할 논문의 baseline이 되는 논문이라고 할 수 있습니다. 이 논문에서는 Cost Aggregation에서 주변 공간의 특징을 뽑아내기 위해서 3D convolution을 적용하는 대신, Semi-Global Guided AggregationLocal Guided Aggregation 일명 SGALGA 적용하였습니다. 먼저 SGA는 그림과 같이 4방향에서 이미지 전역 매칭 비용을 집계하여 전역적인 특징을 반영하고, LGA다운샘플링과 업샘플링 과정에서 잃어버릴 수 있는 객체 경계부분의 특징을 타겟팅하여 복원합니다. 이렇게 3D convolution을 다양한 모듈로 대체하여 속도를 비약적으로 높이게 되었습니다.

     

    2. Method

    fig 1. HITNet network architecture

     

    본 논문의 network architecture는 크게 3단계로 나눌 수 있습니다.

    • Feature Extraction: feature extractor는 작은 U-Net의 구조를 사용하였습니다. 왼쪽, 오른쪽 이미지를 각각 U-Net에 넣어 여러 해상도 조건에서 특징맵을 추출합니다. 
    • Initialization: 각 해상도마다 initial disparity map과 initial feature descriptor를 획득합니다. 
    • Propagation: 각 해상도의 initial disparity map과 tile feature descriptor를 입력받아 tile hypothesis를 업데이트합니다. 결과적으로 업데이트된 tile hypothesis를 가장 낮은 해상도에서 가장 높은 해상도까지 계층적으로 전파하며 disparity map을 반복적으로 정제합니다.

    아래에서 하나씩 세부적으로 살펴보겠습니다.

     

    2.1 Feature Extraction

    fig2. feature extractor

    본 논문에서는 feature extraction을 위해 작은 U-Net 구조를 사용합니다. skip connection과 인코더-디코더 구조를 활용하여 multi-scale의 feature map을 획득합니다. architecture의 나머지 부분에서 사용하는 feature map은 업샘플링(디코더) 부분의 출력을 사용합니다. 논문에서는 이를통해 높은 해상도의 feature에도 공간적 맥락을 담을 수 있다고 설명합니다. feature extraction 과정을 통해 결과적으로 왼쪽과 오른쪽 이미지에서 두개의 multi-scale 표현 입실론_L과 입실론_R을 얻습니다.

    multi-scale representation

    ε: multi-scale feature map

    e: feature map

    0: 초기 해상도

    M: 2^M * 2^M 만큼 다운샘플링된 해상도

    이렇게 획득된 feature map들은 이후 propagation 단계에서 initial matching과 warping에 활용됩니다.

     

    2.2 Initialization

    Initialization 과정의 목표는 initial disparity d_init과 다양한 해상도에 해당하는 각 tile의 feature vector P_init을 얻는 것입니다. 먼저, d_init을 얻는 과정은 다음과 같습니다. 

    • Initial disparity: Initial disparity는 특정 픽셀위치와 해상도 조건에서 매칭비용이 최소화되는 disparity 값을 의미합니다. 먼저 왼쪽 이미지(기준)와 오른쪽 이미지(보조)에서 tile feature를 추출합니다. 본 논문에서는 feature 추출을 위해 4x4 conv를 왼쪽 이미지에서는 4x4 stride로, 오른쪽 이미지에서는 4x1로 stride로 적용하였습니다. 이는 최대 disparity 해상도를 유지하기 위함인데, 이를통해 disparity 정확도를 최대화할 수 있습니다. 이 과정의 출력으로 타일단위 feature map ε^을 얻습니다. 이렇게 얻어진 타일단위 feature map은 scan line을 따라 maching됩니다. 논문에서는 특정 픽셀위치 (x,y)에서 해상도 l, disparity d 일때 matching cost 𝜌를 식 1과 같이 정의합니다. initial disparity는 앞서 얻어진 matching cost를 이용하여 식 2와 같이 계산합니다.

    식 1. tile단위 feature map을 통해 계산되는 matching cost 𝜌
    식 2. Initial disparity d_init

    • Tile feature descriptor: tile feature descriptor는 initialization 단계에서 특정 픽셀위치와 해상도 조건에서 예측된 특징벡터를 말합니다. 쉽게 말하면 각 타일에 대한 학습 가능한 벡터라고 할 수 있습니다. 수식을 통해 살펴보면 식 3과 같은데, 

    식 3. Tile feature descriptor

     

    본 논문에서는 이렇게 얻어진 initial disparity d_init과 tile feature descriptor p_init을 묶어서 타일 가설(tile hypotheses) h_init이라고 합니다.

    fronto-parallel tile hypotheses

     

    2.3 Propagation

    본 논문에서는 propagation 단계에서 기울어진 slanted support windows를 사용하여 Initialization 단계의 출력인 타일 가설을 정제한다고 설명합니다.

    기울어진 지원 창(slanted support windows)? 
    
    :일반적으로 stereo matching 방법은 정수 값 dispariry에서 support window를 일치시킵니다.
    support region 내의 픽셀이 일정한 시차를 갖는다는 암묵적인 가정은 기울어진 표면에는 적용되지 않으며,
    오직 정면으로 평평한 표면을 재구성하는 방법에 편향됩니다. 하지만 실제로 존재하는 많은 object들을 살펴보면
    어느정도 구부러진 표면을 갖고있습니다. slanted support windows는 각 픽셀에서 개별 3D 평면을 추정해서
    이러한 편향을 극복하는 방법을 말합니다.
    
    reference: https://www.microsoft.com/en-us/research/publication/patchmatch-stereo-stereo-matching-with-slanted-support-windows/

     

    propagation 단계에서 타일 가설을 입력받아 공간 전파(spatial propagation)와 정보 융합(fusion)을 통해 정제된 타일 가설을 출력한다고 설명하는데요. 이렇게 말하면 어떻게 타일 가설을 정제한다는 건지 감이 잘 안와서 아래에서 자세히 설명해보겠습니다.

     

    2.3.1 Warping: 이 과정에서 오른쪽 이미지(보조)의 feature map을 왼쪽 이미지(기준)로 warping하여 입력 타일의 매우 정확한 오프셋을 예측합니다. 

    warping 설명

    저자들도 warping을 그림으로 설명하기 어려웠는지 말로써 길게 풀어써줬습니다. 내용을 읽어보면 warping step에서 왼쪽 이미지의 feature map과 오른쪽 이미지의 feature map 사이의 매칭 비용을 계산합니다.

    • 각각의 타일 가설은 4x4크기의 평면 패치로 변환합니다. 이때, 이에 대응되는 4x4 크기의 local dispairy map을 d'이라고 하고 수식 4와 같이 나타냅니다.

    수식 4. local disparity map

    • local disparity map을 사용하여 오른쪽 이미지(보조)의 특징 el_R을 왼쪽 이미지(기준)로 선형보간을 통해 워핑합니다. 결과적으로 오른쪽에서 왼쪽으로 워핑된 특징표현 e'l_R을 얻습니다.
      (이때 local disparity map d'이 정확하다면 e'l_R이 el_L과 매우 유사하겠죠?)
    • 왼쪽 이미지(기준)의 타일 특징과 오른쪽에서 왼쪽으로 워핑된 타일 특징을 비교하여 비용벡터를 계산합니다. 계산과정은 수식 5와 같습니다.

    수식 5. 기준 타일특징과 워핑된 타일특징을 비교한 비용벡터

     

    이 과정은 local disparity map d'이 정확한지 평가하는데 사용되며, 워핑된 특징이 기준 이미지의 특징과 일치하도록 업데이트 됩니다.

     

     

    2.3.2 Tile update prediction: 이 과정에서 n개의 타일 가설을 입력받아 타일 가설의 변화량과 각 타일 가설이 얼마나 정확한지를 나타내는 스칼라값 w를 예측합니다. 본 논문에서는 이 매커니즘을 CNN 모듈 U로 구현했는데요. CNN 모듈을 통해 네트워크가 타일 가설을 공간적인 맥락으로 살펴보고 정보를 공간적으로 전파할 수 있도록 했습니다. 여기서 핵심은 타일 가설에 앞서 워핑 단계에서 얻어진 매칭비용 를 추가하는 겁니다. 이는 다시말하면, disparity 공간에서 주변 영역에 대해 작은 local cost volume을 구축해서 네트워크가 타일 가설을 효과적으로 정제할 수 있도록 했다고 말할 수 있습니다. 

     

    • 가장 낮은 해상도 l=M 에서는 Initialization 단계에서 하나의 타일 가설만 존재하므로 n=1 입니다. 입력 타일 가설과 변화량를 합산하여 타일 업데이트를 적용하고 각 방향(width, height)으로 2배씩 업샘플링합니다. disparity는 타일의 평면 방정식을 사용하여 업샘플링 되며 나머지 타일 가설 구성요소 , dy, p는 최근접 이웃 샘플링을 사용하여 업샘플링됩니다.

    타일의 평면 방정식

    • 다음 해상도 M-1에서는 초기화 단계에서 온 타일 가설과 해상도 M 에서 업샘플링된 타일 가설이 있으므로 n=2입니다. 먼저 각 타일 가설이 얼마나 정확한지 나타내는 w_i를 사용하여 각 위치에서 신뢰도가 가장 높은 업데이트된 타일 가설을 선택합니다. 이 과정을 해상도가 0에 도달할 때 까지 반복합니다. disparity map을 더욱 구체화 하기위해 추가적으로 4x4 tile과 propagation module을 3번 사용하였습니다.
    • 결과적으로 tile size 1x1의 출력이 우리의 최종 예측값입니다.

    2.3.3 Loss function: 본 논문의 네트워크는 총 4가지 손실함수를 sum하여 ground truth disparity를 학습하였습니다.

    4가지 손실함수는 L_init, L_prop, L_slant, L_w로 구성됩니다.

     

    • L_init: 실제 disparity값(ground truth disparities)는 서브픽셀 정밀도로 제공되지만, initialization 단계에서는 정수단위 disparity로 매칭이 이루어집니다. 따라서 서브픽셀 disparity에 대한 매칭 비용을 계산하기 위해 선형보간을 사용하여 수식 6과 같이 계산합니다. 여기서 저자들은 feature ε가 ground truth disparity에 대해 서브픽셀 매칭비용 ψ이 최소가 되고, 다른곳에서는 최대가 되도록 훈련하는 것을 목표로 했다고 설명하는데요. 이를위해 본 논문에서는 L1 contrastive loss를 사용하였습니다.

    수식 6. 서브픽셀 disparity
    L1 contrastive loss

    • L_prop: 이 손실함수는 타일의 기하학적 구성요소 d, dx, dy와 타일의 신뢰도 w에 대한 손실을 평가합니다. 이를 위해서 실제 disparity d_gt와 실제 기울기 d_gt_x, d_gt_y를 사용하였습니다(이 값들은 픽셀을 중심으로하는 9x9 윈도우에 평면을 적합시켜서 계산합니다). 약간 복잡한 내용이지만 최대한 간단하게 설명해보겠습니다. 먼저 타일의 기하학적 손실을 평가하기 위해 평면 방정식(d,dx,dy)를 사용하여 타일의 최대 해상도 disparity d^으로 업샘플링합니다. "A general and adaptive robust loss function" 논문에서 사용한 일반적인 강인한 손실함수 ρ(⋅)을 사용하고 추가적으로 임계값 A를 적용하여 절단(truncation)을 수행합니다. 수식으로 표현하면 다음과 같습니다. 

    • L_slant: 표면 경사에 대한 손실함수 입니다. 최근접 이웃 방식을 사용하여 타일을 최대해상도 disparity d^로 업샘플링합니다. 여기서 는 조건이 충족될 때 1로 평가되는 지시자 함수입니다

    • L_w: 신뢰도 w를 감독하기 위해서 예측된 가설이 실제값과 c1 이하로 가까운 경우 신뢰도 w를 높이고, c2 이상으로 먼 경우 신뢰도 w를 낮추는 방향으로 손실을 부과합니다. 수식은 다음과 같습니다.

     

    위 네개의 손실함수를 sum하여 ground truth disparity를 학습하게 됩니다.

     

    3. Experiments

    HITNet 성능평가를 위해 사용한 Datasets

     

    본 논문에서는 네트워크의 성능평가를 위해 총 4가지 데이터셋을 사용하였습니다.

    • Scene Flow Dataset: 가상의 이미지를 렌더링하고 depth buffer로 ground truth disparity를 생성한 데이터들로 구성된 데이터셋입니다.
    • KITTI 2012, 2015 Dataset: 실제 도로장면을 촬영한 이미지와 Stereo camera로 ground truth disparity map을 생성하고 Lidar 센서로 보정한 disparity map으로 구성된 데이터셋입니다.
    • ETH3D Dataset: 실내 및 실외 장면 이미지와 Multi-view stereo camera로 생성한 ground truth disparity로 구성된 데이터셋입니다.
    • Middle burry 3d v3 Dataset: 복잡한 텍스처 및 조명 조건에서 실내 장면을 촬영한 이미지와 Multi-view stereo camera로 생성한 ground truth disparity로 구성된 데이터셋입니다. 

    3.1 Scene Flow Dataset

    EPE pxstereo depth estimation network에서 주로 쓰이는 평가지표입니다. End Point Error라고해서 픽셀의 예측된 깊이값과 실제 깊이값의 차이를 말합니다. 여기서 주목할점은 End point errorSOTA 모델들 중에서 가장 작으면서 런타임은 가장 빠르다는 점입니다. 본 논문과 비슷하게 multi-scale feature extraction 방법론을 사용하지만 더 정교한 풀링 레이어를 사용하는 PSMNet과 비교해봤을 때 정확도, 런타임이 월등하게 향상된 것을 확인할 수 있습니다.

     

    3.2 KITTI 2012, 2015 Dataset

    nocnon occluded을 말합니다.

    2-nocdisparity error2 이상인 non-occluded 영역의 픽셀 비율을 말합니다.

    2-alldisparity error2 이상인 모든 영역의 픽셀 비율을 말합니다.

    D1-bgdisparity error1 이상인 배경 영역의 픽셀비율

    D1-fgdisparity error1 이상인 전경 영역의 픽셀비율을 말합니다.

    여기서 주목할만한 점은 최신 네트워크들과 비교했을 때 비슷한 정확도를 보이면서 압도적인 run-time을 보인다는 점입니다.

     

    3.3 ETH3D Dataset

    Bad1, bad2disparity error1, 2개 이상인 픽셀의 비율을 말합니다.
    Eth3d
    데이터셋에서 주목할 점은 R-stereo보다 정확도는 약간 낮지만 40배가량 빠른 runtime을 보여준다는 점입니다.

     

    3.4 Middle burry 3d v3 Dataset

     

    여기서도 예측된 disparity 값과 실제 시차값 간의 차이의 절대값 등을 비교하였는데,

    HitNetLEAStereo 보다는 정확도가 비슷하거나 약간 낮지만 20배 가량의 runtime차이를 보여줍니다.

     

    4. Ablation Study

     

    본 논문에서 Multi scale Prediction이 얼만큼 효과가 있는지 실험하였습니다. 정리하자면 다음과 같습니다.

    • Scene Flow와 같이 매우 복잡한 텍스처를 갖고있는 데이터셋에서는 효과적
      (전파과정에서 추가적인 문맥이 필요하지 않기 때문)
    • 텍스처가 거의 없는 장면이 많이 들어가있는 KITTI와 같은 데이터셋에서는 효과 O

    5. Conclusion

    결국 이 논문을 한문장으로 설명하자면 이렇게 말할 수 있을 것 같습니다.

     

    A real-time end-to-end architecture for accurate stereo matching

    SOTA network들과 비슷한 수준의 정확도를 보장하면서 압도적인 runtime을 보여주었습니다.