ABOUT ME

Today
Yesterday
Total
  • Self6D: Self-Supervised Monocular 6D Object Pose Estimation 리뷰
    공부기록/논문리뷰 2022. 9. 26. 21:35

    # Title

    Self-Supervised : lable같은 것 없이 자신의 feature같은걸 이용해서 학습하겠다.

    Monocular : 단안 카메라를 사용했다?

    # Abstract

    CNN이 6D pose estimate에서 성능이 좋긴 한데 데이터에 영향을 너무 많이 받고, 적절한 annotation을 하는데 비용이 너무 많이 든다.

    synthetic RGB데이터로 supervised learning된 우리 네트워크를 사용하면, unannotated된 real RGB-D데이터에 대해 self-supervised learning할 수 있다. 
    visually and geometrically하게 맞게 align된 상태로.

    다른 방법들보다 evaluation이 잘나온다. 우리 방식을 쓰면 원래 있던 모델의 성능을 끌어올릴 수 있다.

    # Figures


    (a) 실제로 6D annotaion하지 않기 위해서, 모델을 synthetic RGB데이터로 먼저 학습시킨다.

    (b) unlabled real RGB-D 데이터를 모델에 많이 집어넣는다

    (c) 성능이 매우 좋아진다!


    사진 위쪽

    모델을 먼저 synthetic RGB데이터로 rotation R, translation(위치) t, object mask $M^p$ 를 학습시킨다.

    그리고 다량의 unlabeled RGB-D image를 사용한 self-supervised learning을 통해 모델을 향상시킨다.

    RGB-D image와 mask를 Render한다.

    사진 아래쪽
    다양한 constraints(제약)을 통해 visually, geometrically하게 6D pose를 align한다.






    # Introduction
    6D pose estimation은 training data가 많이 필요하고 2D vision task(classification, object detection...)와 다르게 annotation이 더 힘들다. 
    그래서 주로 synthetic image를 사용하지만, real inference때는 성능이 별로다. domain adaptation, photorealistic rendering등도 별로다.

    그래서 unsupervised방식을 도입했다. Fig1. 처럼 synthetic data로 학습하고, unannotated RGB-D를 사용해 self-supervised learning하게 했다.

    이를 위해선 2D image에서 3D property를 이해하는 것이 필요하다. Graphics에 사용되는 *rendering* 이란 방식을 써보려고 했는데, rasterization이 미분불가능해서 argmax같은게 불가능하다. 그래서 real gradient는 근사치에 불과하다.

    우리의 contribution은

    1. 6D label 없이 최초로 self-supervised learning함
    2. neural rendering을 사용해 visual, geometric alignment를 계산함
    3. 실험적으로 아주 큰 격차로 sota임을 증명함




    # Conclusion
    self-supervised방식. neural rendering을 통한 constraints 학습. 현 sota보다 성능 많이 좋음. 

    # Appendix
    ## Monocular 6D Pose estimation
    3D CAD 모델을 이용해 2D-3D관계를 만들거나(PnP, CNN 방식) pose embedding을 학습하는 방식(Augmented Auto Encoder 등)이 주로 사용되고, 직접 6D pose를 regress하는 모델들도 있긴하다. 그렇지만 세 모델 모두 annotation이나 overfittng 같은 문제들이 존재함

    ## Neural Rendering
    rasterization은 discrete해서 gradient flow를 막아버림. 테일러 근사, 확률분포등을 이용해 gradient flow를 바꾸는 시도들이 있었음. 그러나 이런건 계산할때 cost가 많이 필요함. DIB-R이 지금 sota라 논문에선 DIB-R을 사용함

    ## Recent trends in Self-Supervised Learning
    ## Domain Adaptation for 6D Pose Estimation
    synthetic이랑 real 차이를 메꾸기 위해서 GAN등을 사용하기도함. 아니면 아예 domain randomization을 하거나.

    # About Model
    neural rendering을 사용하면 real하고 rendered image를 보고 어떤 coherence(일관성)을 self-supervised 학습할 수 있음.

    먼저 synthetic RGB데이터로만 학습한 뒤에 real RGB-D data를 씀.
    synthetic에서는 unseen 영역에도 depth값을 가지고 있는데, 일관성 있는 학습을 위해 unseen영역의 depth를 제거함.

    우리는 DIB-R을 쓰는데, 원래는 RGB랑 object mask만 예측함. 우린 depth map까지 예측하게 확장했음. 

    camera projection을 real perspective projection을 하기 위해 수정함.

    R : 3D rotattion

    t : 3D translation

    M : 3D CAD model render함


    렌더링 말고도 3D rotation이나 transrender함


    렌더링 말고도 3D rotation이나 trans

    K : camera intrinsic matrix

    라고 할 때, $I^R, D^R, M^R$을 render함


    Object mask가 필요한데, annotation이 없어서 ROI-10D가 detection하게 했음.

    우리 모델은 FPN기반의 ResNet50을 쓰는 object detector FCOS를 기반으로함


    # Self Questions
    ## What did authors try to accomplish?
    ## Key elements of the approach?
    ## What can you use yourself?
    ## Other references want to follow?

    # Questions

-