안녕하세요 이재찬 연구원입니다. 이번 주에 다뤄 볼 논문도 역시 Self-supervised monocular depth estimation 분야의 논문입니다. “Resolution Adaptive Self-Supervised Monocular Depth Estimation” 일명 RA-Depth라고 불리는 방법론인데요, 논문 제목에서 보면 알 수 있듯이 특정 Resolution Adaptive한 방법론으로 다양한 resolution 환경과 다양한 데이터셋들에 대해서 test 과정에서의 일반화 성능을 가져온 방법론입니다.
저번 FeatDepth 리뷰의 경우에는 Monodepth1,2를 모두 짚고 넘어가느라 서론이 많이 길었었는데요, 한 번 다루고 넘어갔으니 이번엔 기존 depth estimation 방법론의 문제점을 소개하고 RA-Depth를 소개해보도록 하겠습니다. 리뷰 시작하겠습니다.
Introduction
monocular depth estimation은 single 이미지로부터 pixel-wise한 depth map을 추정/예측하는 computer vision 분야에서의 챌린징하지만 필수적인 태스크입니다. 이는 자율주행, 로봇 항법, 3D scene reconstruction, 증강 현실 등 다양한 분야로 이어질 수 있죠. 그런데 이런 각각의 application 시나리오마다 각각 다른 장치를 가지게 된다면, 거기에 input으로 들어갈 이미지의 해상도 또한 각각 달라질 것입니다. 그래서 GT cost와 리소스 사용을 줄이기 위해 제안되었던 기존 self-supervised monocular depth estimation의 single trained 모델은 이미지 해상도 변화에 적응에 있어서는 상당히 취약한 문제가 남아있었습니다.
사실 기존의 self-supervised monocular depth estimation 방법론들은 보통 geometrical constraints를 사용하여 stereo pair 나 monocular sequence를 유일한 supervision으로 사용했고, 성능도 꽤 괜찮았습니다. 하지만 이런 supervision 방식들은 인퍼런스 시에 이미지 해상도 변화에 적응하기 어렵고, 테스트 해상도가 학습 해상도와 불일치하면 그에 따른 성능은 심각하게 떨어졌습니다.
위의 figure를 보시면 이해가 쉬울 것 같습니다. 본 논문의 저자들이 제안한 RA-Depth와 기존의 Monodepth2 방법론의 depth prediction 결과를 비교한 것입니다. (a)를 보면 학습 때와 같은 해상도로 테스트를 시키니 둘 다 괜찮은 depth 표현력을 가집니다. 하지만 (b)를 보면 학습 때와 다른 해상도로 테스트를 시키니 Monodepth2에서는 poor 한 depth map 표현이 생겼습니다. 이렇듯 기존의 방법론들은 각각의 시나리오에 따라 다른 해상도로 테스트를 하려면, 개별적으로 모델을 따로 학습해야 했습니다. 그 결과 학습 오버헤드와 높은 저장 cost가 들 뿐만 아니라, monocular depth estimation model로써의 범용성이 제한되게 됩니다.
그래서 본 논문은 해상도 적응형 self-supervised monocular depth estimation 방법론인 RA-Depth를 제안했습니다. 제안된 내용을 짧게만 설명하고 넘어가도록 하겠습니다.
첫번째로, 본 논문은 같은 scene에 대해 임의의 scale을 가진 이미지를 생성하기 위해 Arbitrary-Scale Data Augmentation 방법론을 제안했습니다. 특히 random resize, crop, stitching을 통해 이미지의 resolution/size를 유지하는 동안, 인풋 이미지의 scale을 변화시켰습니다. 이런 임의의 scale을 가진 이미지들은 다른 이미지 해상도의 scale variation을 모방할 수 있었고, 그렇기 때문에 모델이 scene depth의 scale invariance를 은연 중에 학습하게 되었습니다.
두번째로, 저자들은 multi-scale feature fusion을 가진 효율적인 monocular depth estimation 프레임워크를 제안했습니다. 그들의 프레임워크는 우수한 고해상도 representation network인 HRNet을 인코더로 사용하고, 디코더는 efficient한 multi-scale feature fusion을 넣어 디자인했습니다. 결과적으로 인코더와 디코더는 Dual HRNet 아키텍쳐를 만들었고, 그것은 정확한 depth를 추론하기 위해 multi-scale feature들을 모이게 끔 하고 완전히 이용하게 할 수 있었습니다. 이 덕분에 더 적은 network 오버헤드를 가지고 좋은 depth estimation 퍼포먼스를 이룰 수 있었다고 합니다.
마지막으로, 새로운 loss인 cross-scale depth consistency loss를 제안했습니다. 이는 scene depth 의 scale invariance를 명확히 학습하기 위함이었습니다. 해당 loss 덕분에 monocular depth estimation model은 같은 scene에 대해 일관된 depth map을 예측할 수 있었고, 심지어 인풋 이미지의 scale들이 다를 때도 가능했습니다. KITTI, Make3D(outdoor view), NYU-V2(indoor view) dataset 같은 다양한 데이터셋에 대한 실험은 RA-Depth가 monocular depth estimation 에서 SOTA 성능을 이룸과 동시에, resolution adaptation 측면에서 좋은 성능을 보인단 것을 입증했습니다.
요약하자면, main contribution은 다음과 같습니다.
- RA-Depth 는 self-supervised monocular depth estimation 분야에서 image resolution adaptation을 문제제기한 첫 연구인 것 같다.
- 모델이 각각 다른 scale을 가진 이미지의 depth를 학습하게 하는 arbitrary-scale의 data augmentation 방법론을 제안한다.
- monocular depth estimation에 대한 multi-scale feature fusion을 가진 efficient한 dual high-resolution network 개발.
- 여러 실험을 통해 RA-Depth가 monocular depth estimation 분야에서 sota 찍고, 다양한 해상도들에 대한 좋은 일반화 성능을 가짐을 입증.
Method
먼저 본 논문의 loss는 Monodepth1,2의 로직을 기본적으로 일정부분 따라갑니다. 간단히 설명하고 넘어가겠습니다.
위의 DepthNet은 추후 소개될 HRNet 기반의 모델로 대체되고, PoseNet의 경우 Monodepth2의 ResNet기반 모델을 그대로 따라가게 됩니다.
비디오 시퀀스 인풋에서의 target frame과 source frame으로 만든 reconstruction image 간의 photometric error를 구하기 위해, photometric loss를 L1과 SSIM을 사용해 다음과 같이 사용합니다.
그 다음, 시퀀스 frame 간의 occlusion 차이로 인한 이슈를 손보기 위해, per-pixel minimum reprojection loss를 위의 photometric loss에 적용하여 다음과 같이 사용합니다.
마지막으로는, disparity map의 discontinuity를 다루기 위해, 다음과 같은 edge-aware smoothness loss를 적용합니다. 여기서 mean-normalized inverse depth 가 사용되는데, 이는 추정된 depth의 shirinking을 줄이기 위함입니다.
[Resolution Adaptive Self-Supervised Framework]
RA-Depth의 overview는 위와 같습니다.
기존의 original instance는 {I_t, I_s} (s ∈ {t−1,t+1})(t: target image, s: source image) 이었으나, 저자들은 그들이 제안한 arbitrary-scale data augmentation를 3가지 학습 instance로 확장하기 위해 {I^L_t, I^L_s}, {I^M_t, I^M_s}, {I^H_t, I^H_s}로 사용했습니다. 여기서 L, M, H 는 각각 low, middle, high scale입니다.
해당 사항 중 타겟이미지인 I^L_t, I^M_t, I^H_t 를 위 그림의 (a)에서 나타냅니다.
그러고나서 (a) 그림에서 저자들은 efficient한 Dual HRNet을 target view의 depth map들인 (D^L_t, D^M_t, D^H_t ) 를 각각 예측하기 위해 제안된 걸 사용했다. 그리고 target view에서 source view로의 상대 6D camera pose T_{t{\rightarrow}s} 를 예측하는 Pose Network를 사용했습니다. 그게 바로 아까 언급한 PoseNet 형식입니다.
그렇게 D^L_t 와 T_{t{\rightarrow}s} 와 함께, 저자들은 소스 이미지 I^L_s를 interpolation 함으로써 \tilde{I}^L_{s{\rightarrow}t} 라는 이미지를 합성할 수 있었습니다. 같은 방식으로 M,H 에 관련해서도 \tilde{I}^M_{s{\rightarrow}t}, \tilde{I}^H_{s{\rightarrow}t} 라는 이미지를 합성할 수 있었습니다.
그러고 나서 real image인 (I^L_t, I^M_t, I^H_t,)와 synthesized image 인 (\tilde{I}^L_{s{\rightarrow}t}, \tilde{I}^M_{s{\rightarrow}t}, \tilde{I}^H_{s{\rightarrow}t}) 간의 photometric loss들을 계산했습니다. 여기서 전체 이미지 합성 과정이 I^M_t 에서 I^M_s로 예측된 같은 카메라 포즈 T_{t{\rightarrow}s} 를 사용했음을 기억해둬야 합니다.
마지막으로, 제안된 cross-scale depth consistency loss들인 D^L_t 과 D^M_t 사이의 L^{LM}_{cs}, D^M_t 과 D^H_t 사이의 L^{MH}_{cs} 가 계산됩니다. 그림에서는 깔끔함을 위해, PoseNet과 photometric loss 및 smoothness loss를 개시하지 않았다고 합니다.
[Arbitrary-Scale Data Augmentation]
이제 Arbitrary-Scale Data Augmentation 과정을 살펴보겠습니다. 이는 알고리즘적으로 구현되었습니다.
큰 틀은 다음과 같습니다. 인풋은 single input이고, (c, h_0, w_0) 의 shape을 가집니다. 그 다음 Resize operation을 통해 T^L, T^M, T^H 의 3가지 resolution을 가진 이미지를 얻습니다. 중간 resolution을 가진 이미지 T^M 은 shape이 (h,w)로 고정되고, 나머지 T^L, T^H은 각각 s^L, s^H 라는 scale factor에 따른 연속적인 range로 shape이 달라집니다. 여기서 s^L = [0.7, 0.9] 이고, s^H = [1.1, 2.0]입니다. 각각 T^L의 resolution을 (h,w)보다 작게 만들고, T^H의 resolution을 (h,w)보다 크게 만듭니다. 그러고 나면 T^L로부터 이미지 스티칭 방식으로 I^L인 low scale image를 얻고, T^M으로부터 그대로 I^M을 얻고, T^H로부터 RandomCrop 방식을 사용하여 I^H인 high scale image를 얻습니다. 최종적으로, 3가지 이미지를 동일한 shape인 (c,h,w)를 가지게 하면서도, 각각 다른 scale 을 가진 이미지로 얻고, 그것이 추후 network의 인풋으로 들어가게 됩니다. 본 논문에서 (c, h_0, w_0) = (3, 375, 1242) 이고, (c,h,w)=(3,192,640)입니다.
[Dual HRNet for Monocular Depth Estimation]
저자들은 monocular depth estimation을 위한 multi scale feature fusion을 사용하면서 efficient한 dual high-resolution network(Dual HRNet)으로 더 개선시켰습니다. HREncoder는 HRNet18을 사용했고, 여기서 HRNet의 코어 아이디어는 고해상도 feature representation을 유지하면서 효과적인 multi-scale feature fusion을 수행하는 것으로, semantically richer 하고 spatially precise한 multi-scale feature들을 모두 얻기 위함으로 볼 수 있습니다. 저자들은 이런 HRNet의 영향으로, 효과적인 multi-scale feature fusion을 하는 HRDecoder 또한 설계했습니다. 특히 HRDecoder는 처음엔 인코더의 multi-scale feature 를 받고, 고해상도 feature representation을 유지하면서 저해상도 feature를 점진적으로 뽑아나가게 됩니다. 위 이미지에서 e_i는 i level 에서의 인코더의 feature라고 하고, d_{ji}는 i level과 j stage에서의 디코더의 feature라고 하고, {dm}_{ji}는 i level 과 j stage 에서 multi-scale feature fusion 이후의 feature라고 합니다.
이런 network의 구조를 첫 stage(j=1)에서의 d_{1i} 와 {dm}_{1i}의 예로 식으로 표현하면 아래와 같습니다. 아래 식의 μ(·)는 upsampling 연산자이고, [·] 는 summation 연산자입니다.
이렇게 HRDecoder를 이용함으로써, multi-scale feature들은 저해상도 feature map에서 고해상도 feature map으로 잘 복원될 수 있습니다. 그래서 저자들은 Dual HRNet은 다양한 테스트 해상도에서 정확한 깊이 추정을 위해 다양한 scale의 depth 정보를 효과적으로 학습할 수 있다고 보는 것 같습니다.
[Cross-Scale Depth Consistency Loss]
저자들은 model이 scene depth의 scale invariance를 명확히 학습하게 하기 위해, cross-scale depth consistency loss들인 L^{LM}_{cs}, L^{MH}_{cs}를 계산했습니다.
이 loss에 대한 설명을 돕기 위해 예를 들면, D^L_t, D^M_t, D^H_t 속에 똑같이 보이는 기둥이나 차같은 경우, 위 이미지만 보면 같은 depth를 가짐이 틀림없어 보입니다. 이들간의 depth가 같음을 보장하기 위해 cross-scale depth consistency loss가 사용되는 것입니다. 자 이전의 Arbitrary-Scale Data Augmentation 알고리즘 설명에서 RandomCrop의 cropped position 뿐만이 아니라, scale factor들인 s^L, s^H 에 따라 D^L_t, D^M_t, D^H_t 간의 pixel correspondence를 얻을 수 있었습니다.
D^M_t, D^H_t에 대해선, 먼저 위 그림의 D^M_t에서 검은 점선 부분에 해당하는 D^M_t, D^H_t 간의 corresponding position을 먼저 찾고, 이 부분을 \tilde{D}^M_t 라고 칭합니다. 그 다음 \tilde{D}^H_t를 얻기 위해 D^H_t를 \tilde{D}^M_t과 같은 사이즈로 resize합니다. 마지막으로, 이 틸다표현들 간의 scene depth consistency loss를 계산합니다. 해당 식은 아래와 같습니다.
D^L_t, D^M_t 에 대해서도 유사하게, 아래와 같이 표현됩니다.
이것이 바로 cross-scale depth consistency loss가 됩니다.
위 언급되었었던 loss들을 모두 고려하게 되면 최종 loss는 다음과 같게 됩니다.
여기서 γ, λ, β 는 각각 photometric loss, smoothness loss, scene depth consistency loss의 하이퍼 파라미터입니다. 각각 1.0, 0.001, 1.0이라고 하며, 이전의 α들은 0.85로 설정되었다고 합니다.
Experiments
[Implementation Details]
학습 디테일은 다음과 같습니다.
- Pytorch
- GPU : Titan RTX
- Optimizer : Adam
- epoch : 20
- batch_size = 12
- first 15 epoch -> lr = 1e-4
- last 5 epoch -> lr = 1e-5
- DepthNet : Dual HRNet(인코더 : HRNet18, 디코더 : 효율적 multi-scale feature fusion 수행)
- PoseNet : Monodepth2와 똑같은 아키텍쳐 사용. ResNet18 기반.
- HRNet18 & ResNet18의 pretrained weight : ImageNet
- 학습동안, input resolution은 640*192
- 학습속도를 올리기 위해, DepthNet에서 single-scale depth만을 뽑고, DepthNet의 multi-scale output에 대한 loss를 계산하는 것 대신, single-scale depth에 대해 loss를 계산한다.
[성능 Results]
Basic Results(기본 결과), Table 1
저자들은 KITTI dataset에 대해 single model의 monocular depth estimation 퍼포먼스를 평가했습니다. 데이터분류는 Eigen split으로 했고, static frame들을 지워, train : 39810, validation : 4424, test : 697 의 분포를 가졌습니다. 평가 중, depth는 80m까지 추정했으며, 평가 metric은 기존의 depth estimation 태스크에서의 metric을 그대로 차용했습니다. 학습 중 monocular video를 사용하기 때문에, 평가할 때 예측된 depth에 대해선 median scaling을 수행했습니다. Table 1은, 기본적인 모델의 성능을 보기위한 정량적 결과를 나타냅니다. 이 때 모든 모델은 학습때와 같은 resolution으로 평가합니다. RA-Depth는 모든 self-supervised monocular depth estimation 방법론 중 sota가 되었는데, 특히 SqRel error가 이전 sota인 DIFFNet에 비해 17%나 급격하게 error가 줄어든 것이 보입니다.
Resolution Adaptation Results(해상도 적응성 결과), Table 2, Fig 3, Fig 4
이전의 기본적인 정량적 결과와 동일한 상황에서, 이번엔 resolution adaptive 성능 비교를 하기 위해 추가된 table입니다.
RA-Depth와의 비교 모델들은 Monodepth2, HR-Depth, DIFFNet이고, 비교 resolution은 총 4가지로, 416×128, 512×160, 832×256, 1024×320 였습니다. 저자들은 training process에서 쓰이던 scale augmentation strategy를 test 용 4개의 이미지에는 그 방식을 적용하지 않고 단순 resize해서 만들었다고 합니다.
결과적으로 resolution adaptation 관점에서 기존 모델 3가지는 더 poor한 성능을 보였습니다. 그 말인즉슨, 기존 방법론들은 test 시에 image resolution 변화에 적응하지 못한다는 것을 말한다고 볼 수 있겠습니다. 그에 반해, RA-Depth는 다양한 test resolution 상황에서 모두 높은 성능을 유지했습니다. 역시 기존 self-supervised 방법론들보다 월등하다고 주장합니다.
위 Figure 3은 아까 그 각 비교군 모델들에 대해, error metric인 SqRel 과 RMSE 그리고 accuracy metric δ<1.25 에 관해 resolution adaptation 결과를 그래프로 나타낸 것입니다. 이를 보면, 한번 학습한 single model RA-Depth(빨강선)는 모든 resolution에서 가장 적은 error를 가졌고, 심지어 이건 다른 비교군 모델들이 5가지 resolution 변화에 맞게 각각 따로 5번 학습한 model임에도 그들보다 error가 더 낮았습니다. 게다가 모든 resolution에 대해 가장 높은 accruacy를 보였습니다.
위의 Figure 4는 RA-Depth와 Monodepth2를 resolution adaptation 에 대해 비교한 정성적 결과입니다. single model, 한 데이터셋으로 한 번만 학습한 모델인 경우 Monodepth2를 보시면 초록 점선 상자에 해당하는 부위가, 다양한 resolution에서 depth map 표현이 다 불일치합니다. 하지만 RA-Depth의 경우 single model이어도, 모든 resolution에 대해 adaptation이 가능하여 항상 일정한 depth map 표현을 가지는 것을 볼 수 있습니다. 이로써 RA-Depth가 scene depth의 scale-invariance를 잘 학습할 수 있었음을 증명할 수 있다고 역시 주장합니다.
Generalization Results Across Datasets, Table 3
위 Table 3에서는, 이번엔 다양한 dataset에 따른 일반화 성능을 보여줍니다. 비교군은 Make3D, NYU-V2 데이터셋이고, 모델은 640*192 해상도인 KITTI 데이터셋으로 학습한 모델을 사용했습니다. 공정한 비교를 위해, 평가 criteria와 cropping 방법론과 data 전처리를 모든 모델에 대해 동일하게 가져갔습니다.
자 Table 3 (a)를 보면, test resolution이 train resolution과 같으면(640*192), RA-Depth모델은 outdoor dataset 인 Make3D나 indoor dataset인 NYU-V2에 상관없이 sota 성능을 찍었습니다.
근데 또 Table 3 (b)를 보면, 4가지 다른 resolution(416×128, 512×160, 832×256, 1024×320)에 대해서도 test 해보고, 이들을 모두 평균취해서 데이터셋간의 resolution adaptation 결과로 삼았는데, 이 또한 sota 성능을 찍었습니다. 이는 다른 dataset 환경에서 test해도 좋은 resolution adaptation 성능을 가진다는 것을 입증할 수 있다고 역시 주장합니다.
[ablation study]
RA-Depth 방법론이 resolution adaptation 성능 뿐 아니라 전체 성능에 어떤 요소가 영향을 미치는지 더 잘 이해하기 위해 저자들은 ablation study를 진행했습니다. Table 4에서 보면, 다양한 요소들을 변화시켜 보는 걸 확인할 수 있었습니다. 여기서 모델은 640*192 KITTI dataset으로 학습되었는데, 이는 다시 말해 같은 resolution training 에서 전체 성능에 어떤 것이 영향을 주는 지 확인하는 것으로 볼 수 있습니다. 그리고 4가지 resolution (416×128, 512×160, 832×256, 1024×320) 의 test 결과의 평균을 사용해 resolution adaptation 성능에서의 어떤 요소가 영향을 주는 지 확인해보았던 것입니다.
ablation study는 베이스라인 모델로 HRNet18을 인코더로 사용하고 디코더는 Monodepth2와 같은 걸 사용합니다. 그래서 AS-Aug, D-HRNet, CS-Loss 모두 각각 명확한 성능향상을 가져옴을 보여줍니다. CS-Loss가 AS-Aug에 포함되기 때문에, 실험 속 CS-Loss는 AS-Aug도 같이 넣은 것입니다. 다 결합된 건 RA-Depth로 표현되고 이것은 역시 sota를 찍게됩니다. 번외로 ImageNet pretrained weight를 안쓰고도, RA-Depth는 베이스라인 모델에 비해 성능이 더 높았다는 사실도 확인할 수 있습니다.
Effects of Arbitrary-Scale Data Augmentation, Table 4(a), Table 4(b), Algorithm 1, Table 5(a), Table 5(b)
위의 Table 4(a)를 보면, 저자들이 제안한 AS-Aug는 학습과 동일한 해상도에서 test했을 때 성능이 크게 향상됩니다. 또한 Table 4(b)의 결과도 resolution adaptation 측면에서 AS-Aug가 베이스라인보다 더 큰 성능을 보입니다.
특히 (b)에서 AS-Aug를 베이스라인 모델에 결합했을 땐, AbsRel, SqRel, RMSE 에서 각각 error 감소가 확 늘어나고, δ<1.25 에서도 10% 이상 accuracy 성능이 확 오르는 것을 볼 수 있습니다. 이는 알고리즘에서 설명한 것처럼, 원본 이미지가 주어지면 AS-Aug는 3가지 스케일을 가진 3개의 학습 이미지를 생성하여 모델이 scene depth의 scale invariance를 암시적으로 학습하게 한 것입니다.
Table 5(a)는 원본 이미지에서 하나의 학습 이미지만 만드는 경우로, AS-Aug 방식을 Bian이 제안한 데이터증강법인 Bian-Aug와 비교합니다. Bian-Aug 도 random resize와 crop을 사용해 이미지의 scale을 변경하지만, 두가지 차이점이 있습니다.
첫번째로, Bian-Aug는 먼저 원본 이미지를 downsize한 다음 그 downsize된 이미지를 고해상도로 upsampling하여 crop합니다. 하지만 AS-Aug는 원본 이미지를 직접 자르기 때문에, 이미지의 detail 정보가 그대로 남아있을 수 있다고 합니다.
두번째로, Bian 방식은 네트워크에 one-scale 이미지만 입력으로 받지만, 저자들의 방식은 three-scale 이미지를 네트워크에 입력해 3종류의 camera intrinsic을 시뮬레이션 할 수 있습니다. 이 3가지 스케일 간의 cross-scale depth consistency loss를 부과함으로써, 역시나 서로 다른 이미지 해상도의 scale invariance를 학습할 수 있는 것입니다.
결론은 제안된 AS-Aug는 depth estimation의 resolution adaptation 측면에서 Bian-Aug보다 훨씬 뛰어난 성능을 보임을 알 수 있습니다.
Table 5(b)는 AS-Aug가 scale을 달리 생성하는 이미지의 수(1,2,3개)가 resolution adaptation 성능에 어떤 영향을 미치는 지 보여줍니다. 다양하게 생성할 수록 성능이 더 우수해집니다. 제안된 cross-scale depth consistency loss는 여러 이미지를 기반으로 구현해야 하므로 각 입력에 대해 최종적으로 3개의 학습 이미지를 생성합니다.
Effects of Cross-Scale Depth Consistency Loss, Table 4, Table 5(c)
아까 Table 4의 ablation에선 학습과 동일한 해상도에서 테스트하든 4가지 다른 해상도에서 테스트하든, CS-Loss를 추가하면 상당한 개선 효과를 가져왔었습니다. 또한 Table 5(c)에서 볼 수 있듯이, AS-Aug의 다양한 설정비교 중 CS-Loss를 결합하면 모델의 해상도 적응 성능을 분명하게 향상시킬 수 있었습니다. 이런 실험들은 CS-Loss의 명시적 제약이 모델이 scene depth의 scale invariance를 학습하여 모델의 resolution adaptation 성능을 향상시키는 데 도움이 됨을 보여줍니다.
Effects of Dual HRNet, Table 6
마지막으로, Table 6는 RA-Depth 모델의 파라미터 수와 GFLOPs(계산 복잡성)을 보여줍니다. 결과는 역시나 가장 효율적이었습니다.
multi-scale feature fusion이 가능한 Dual HRNet의 효율적인 설계덕분에 가장 낮은 네트워크 오버헤드로 최고의 성능을 도달할 수 있었다고 합니다.
Conclusion
학습과 테스트 과정에서 이미지의 해상도가 일치하지 않을 때 이미지의 depth map을 효율적으로 예측하기 위해 self-supervised monocular depth estimation 방법론인 RA-Depth에 대한 리뷰였습니다. 특히 본 논문은, AS-Aug(Arbitrary-Scale data Augmentation)을 기반으로 정확한 depth 예측을 위해 multi-scale feature 를 효율적으로 fusion하는 Dual HRNet을 소개하고, 그 결과 RA-Depth가 여러 다양한 공개 데이터 세트에서도 일반화 성능과 동시에 최고 성능을 도달하면서 resolution adaptation 능력이 뛰어남을 입증했습니다. 또한 Dual HRNet의 적용으로 파라미터와 계산 복잡성 측면에서 효율적인 면모를 보였습니다.
개인적으로는 다양한 해상도에 대해 일반화 성능을 가지기 위한 augmentation 과정과, 그것과 연관된 Cross-Scale Depth Consistency Loss가 핵심 contribution이라고 생각하는데, 특이한 건 training 해상도와 test 해상도를 같이 넣어줬을 때(basic results)에서도 기존 방법론들보다 더 발전된 성능을 보여준 것이 신기합니다.
추가로 의문이 든 점도 있는데요. augmentation 과정 중에 I^L_t을 얻는 과정에 있어서, 단순 기존 이미지를 이미지 스티칭 방식으로 붙였다고 하는데, 붙인 부분의 어색함이 모델 학습에 반영되지는 않는지 궁금하긴 합니다. 좀 더 생각을 해봐야될 것 같습니다.
이상 리뷰 마치겠습니다.
안녕하세요. 재찬님
좋은 리뷰 감사합니다.
리뷰를 읽던 중 두 가지 질문이 생겼습니다.
(1) Table 1.에서 HR-Net, DIFFNet과 같은 기존 SoTA들은 일반적으로 Stereo pair에 대한 학습을 추가하면 약간의 성능향상을 하는 패턴을 보이는데요. 저자가 제안한 모델에 대해서는 S+M을 통한 학습 결과 reporting이 없다는 것이 의아하다고 느껴졌습니다. 해당 모델에 대해서 stereo pair를 추가한 학습이 불가능한 것인지 궁금합니다.
(2) Table 2.에서 저자들은 학습 과정에서 scale augmentation 전략을 사용하지 않고, 4가지 resolution image를 만들기 위해 original image를 direct하게 resize시켰다고 합니다. 라고 말씀해주셨는데요.
해당 부분에 대해서 본 논문이 제안한 모델과 대조군들을 저자가 제시한 파이프라인 대로 수행하지 않은 상태로 학습이 진행된 것이라고 이해를 하였는데요. 그렇다면, 해당 테이블을 통해서 저자가 보이고 싶었던 것은 단순히 저자가 제시한 Depth Network가 스케일에 대한 강인성을 갖는다는 것을 말해주고 싶었던 것인가요?
만약 그렇다면 테이블2에 리포팅된 성능이 앞서 테이블1에서 리포팅된 성능과 유사하거나 오히려 832×256해상도에 대해서는 더 좋은 양상을 보입니다. 그러면 다시 저자가 제시한 학습 파이프라인이 성능향상과 관련이 있는 것인지 의문이 듭니다.
감사합니다.
안녕하세요 현석님 리뷰 읽어주셔서 감사합니다.
질문에 답변을 드리자면,
(1) 저도 그 부분에 대해서 의아함을 느끼고 있었는데요, 논문에서 어떠한 언급도 없었으며 코드상으로도 MS를 이용한 코드가 별도로 없는 거로 보아, 자신이 없었던 거로 해석됩니다. 성능이 높았다면 분명 언급했을 텐데 말이죠.
(2) 헉,, 이 부분은 저도 제 워딩이 이상한 것 같아서 다시 읽어보니 논문 해석 중 잘못 해석한 부분인가 봅니다. 해당 워딩으로 해석한 문장이 원문에서는
“Note, we directly resize the original image to generate four resolution images without using the scale augmentation strategy in the training process.”
에 해당하는데요, 맨 뒤의 training process 에서 scale augmentation strategy를 사용한게 아니라고 이해하고 썼었던 것 같습니다.
근데 현석님 말 듣고보니 그렇게 되면 앞뒤가 하나도 안 맞게 되네요. 원 문장의 의도는 training process에서 쓰이던 scale augmentation strategy를 test 용 4개의 이미지에는 그 방식을 적용하지 않고 단순 resize해서 만들었다고 이해하면 될 것 같습니다. 해석을 꼼꼼히 하지 못해 혼선을 주게 되어 죄송합니다. 리뷰 본문의 내용은 수정하였습니다! 결론은 Table 2는 저자들이 제시한 augmentation 파이프라인까지 모두 수행하여 학습한 것이 맞고,
기존의 모델들은 이를 사용하지 않아서 resolution adaptation 적인 성능이 나타나지 못한 것에 반해, RA-depth 방법론은 resolution adaptation 성능이 나타난 것으로 이해하면 되겠습니다.
리뷰 꼼꼼히 읽어주시고 이상한 점을 짚어 일러주셔서 감사합니다!