KalelPark's LAB

[ ComputerVision ] Depth Prediction Without the Sensors: Leveraging Structure for UnsupervisedLearning from Monocular Videos 본문

Data Science/Depth Estimation

[ ComputerVision ] Depth Prediction Without the Sensors: Leveraging Structure for UnsupervisedLearning from Monocular Videos

kalelpark 2023. 5. 5. 16:12

 

Abstract

본 논문에서는 monocular video에 의하여, 제공되는 supervision에서 robot ego-motion과 scene depth를 unsupervised learning으로 다루기 위한 방법을 제시합니다. 높은 퀼리티의 결과를 생성하기 위한 새로운 접근법을 제공하고, 움직이는 객체를 모델링이 가능하다는 것을 보여줍니다. 주된 아이디어는 학습 프로세스에서 장면과 객체들간의 기하학적 구조를 도입하는 것이 가능합니다. 학습과정에서는 ego-motion과 object-mothin을 monocular video에 input으로 활용합니다.  

Introduction

실내, 실외 동일한 환경에서, robot navigation으로부터 장면을 depth하는 것은 중요합니다. 최근 방법론들은 groundtruth가 필요하지만, 이러한 방법은 상당히 제한적입니다. 그리하여 최근에는 Unsupervised 방법론들이 대두가 되고 있습니다. 최근 방법론들은 stereo방식을 활용하거나, learning동안 Optical Method를 활용합니다.

 

본 논문에서는,  움직이는 객체를 3D motion으로 다루기 위한 접근법을 제시합니다. 우리는 카메라 Ego motion과 함께 움직이는 물체의 3D motion을 명시적으로 모델링하고 여러 프레임의 online refinement와 learning함으로써 새로운 환경에서도 적용 가능합니다.

구체적인 learning process는 SE3 transforms으로써 motion을 모델링하고 3D 내 객체의 표현을 학습하는 과정을 활용합니다. 이러한 방식은 unsupervised learning과정에서 domain transfer를 활용한, 최초의 논문입니다.  

Main Method

 본 논문에서는 object motion을 모델링함으로써 dynamic scenes을 얻기 위한, 방법을 제시합니다. online refinement technique로learning strategy를 조정할 수 있는 새로운 방식을 제안합니다. 3가지 image의  sequence를 input으로 사용합니다. depth와 ego-motion은 비선형적인 함수에 의해 예측하는 것이 가능합니다. dense depth map을 생성할 때는, encoder 와 decoder를 거친 단일 이미지를 활용하여 생성합니다. ego-motion은 2개의 image를 input으로 사용하고, frame 사이에서 SE3 transform을 적용합니다. 즉, 6-dimension이 생깁니다. Sequence에서 1개의 이미지를 인접한 이미지로, Warping 함으로써, 다른 관점에서 이미지가 어떻게 보일지 고민하게 됩니다. Depth를 얻기에, next frame으로의 ego-motion은 장면을 next frame으로 변경하는 가능하고, projection에 의해 next image를 얻는 것이 가능합니다. loss 는 sequence에서 하나의 이미지에서 다른 이미지로부터의 변환하였을 때, 변환된 이미지와 next sequence간의 reconstructure loss를 사용합니다. 

 

Algorithm Baseline

Input을 3가지 이미지를 활용하기에, 1번째 이미지에서 2번째 이미지로 갈때의 loss, 2번째 3번째로의 loss 중 mim을 적용

합니다. 이 방법은 occlusion / disocclusion의 영향을 완화하기 위해 사용합니다. 추가로, SSIM을 baseline으로 사용하거나, depth smoothness loss를 사용하거나, training 동안에 depth normalization을 적용하였습니다.

Motion Model

본 논문에서는 ego-motion과 object motion model과 동일한 Architecture를 사용합니다. 우리의 방식은 3D 내 객체의 motion을 예측하는데 특화되어 있습니다. ego-motion model과 유사하게 RGB image를 input으로 사용합니다. Motion model은 3D 공간에서 개체당 변환 벡터를 예측하는 방법을 학습하는 작업을 수행하여, 각 대상 프레임에서 관찰된 개체 모양을 생성합니다. static background는 single wrap에 의하여 생성되는 반면, segmented objects는 이전의 작업으로부터 얻은 이미지에 더하여, motion을 예측합니다. 우리의 접근법은 3D 객체를 즉각적으로 Modeling하는 것이 가능할 뿐만 아니라, 즉각적으로 motion을 학습하는 것이 가능합니다. 

ego-motion을 게산하기 위해서, 우선 이미지의 객체를 모두 masking을 합니다. 구체적으로 말하면, 움직이 있을 수 있는 객체는 모두 Masking을 진행함니다. Object motion을 Modeling하기 위해서, 우리는 wraped sequene를 얻기 위해서 ego-motion을 적용합니다.

depth 및 ego-motion estimates가 올바르다면, 물체에 의해서만 정렬오류가 발생합니다. 물체에 의한 정렬오류는 off-the shelf algorithm을 적용하여 제거합니다. 간단하다. Segment된 이미지의 motion과 image의 변화를 element-wise한 후, motion을 파악하는 것이다. 사실상 이러한 방법은 객체의 초점을 두기보다는 카메라의 초점을 둠으로써, 3D-motion vector를 얻을 수 있습니다. 실제 3D-motion vector는 영역 내 voxel movement의 전후의 정보를 토대로 얻을 수 있습니다. 

 

Imposing Object Size Constraints

이전 연구에서 자주 발생한 문제는 동일한 속도로 객체가 움직이면 무한히 depth하게 됩니다. 이러한 이뉴는 앞에 있는 물체는 뚜렷이 보이지 않고, Network가 무한히 먼 것으로 추정하면 재투사 오차는 정확성보다 0으로 추정하기 때문입니다. 이전 연구에서는 이러한 한계를 지적했지만, training dataset에 Augmentation을 적용하는 것 이외에 해결책은 존재하지 않았습니다. 하지만, Stereo는 단안 비디오만큼 널리 활용할 수 없으므로, method를 활용하는 것에는 제한적입니다. 우리는 이러한 문제를 다른 방식으로 해결합니다.

우리의 핵심 아이디어는 모델이 학습과정에서 객체에 대한 정보를 알려주는 것입니다. 그렇게 된다면, 3D로 객체를 인식하는 것이 가능합니다. (하단의 수식을 참고)

우리가 아는한, 이러한 방법은 3D의 monocular training setup에서 degenerative case를 다루는 방식입니다. modeling formulation의 통합된 부분이 제약되기 때문에 motion model은 초기부터 계속해서 작동됩니다. 

 

Test Time Refinement Model

추론 시 model training와 유사한 성능을 보장하기 위해, 효율적인 optimizer를 활용하여 이러한 문제를 해결합니다. 제시한 방법은 해상도가 제한적일지라도, 깊이 추정을 질적으로나 혹은 양적으로나 상당한 개선을 시키는 것이 가능합니다. 약간의 저해상도를 사용하는 것은 real-time으로 사용 가능하며, single frame에서의 delay가 거의 발생하지 않습니다. 20 epoch만 실시간으로 적용하였을 때, 상당한 성능을 보이고, Overfitting이 발생하는 문제가 없었습니다. 이러한 방법은 다른 곳에서도 널리 활용될 수 있음을 시사합니다.

Experiments

주로 사용하는 데이터셋에 대한 설명입니다. (KITTI Dataset, Cityscapes Dataset, Fetch Indoor Navigation Dataset)x

Conclusion

본 논문에서 주로, 3D 내에서 객체의 motion을 modeling하면서 monocular depth와 ego-motion problem을 다룹니다. 학습과정에서 domain transfer를 사용하면 technique를 사용하고, indoor outdoor 어디서든 활용가능합니다. 추후에는 더 많은 시각적 정보를 다루기 위해 longer sequence에 정제 작업을 적용할 것입니다.

Reference

https://arxiv.org/abs/1811.06152

 

Depth Prediction Without the Sensors: Leveraging Structure for Unsupervised Learning from Monocular Videos

Learning to predict scene depth from RGB inputs is a challenging task both for indoor and outdoor robot navigation. In this work we address unsupervised learning of scene depth and robot ego-motion where supervision is provided by monocular videos, as came

arxiv.org

https://github.com/necroen/simplified_struct2depth

 

GitHub - necroen/simplified_struct2depth: simplified struct2depth in PyTorch

simplified struct2depth in PyTorch. Contribute to necroen/simplified_struct2depth development by creating an account on GitHub.

github.com

 

Comments