[RAL 2022] E2EK: End-to-End Regression Network Based on Keypoint for 6D Pose Estimation

제가 이번에 리뷰 할 논문은 6D Pose Estimation에서 Keypoint를 추출하는 방법에 대한 논문입니다.

Abstract

딥러닝 기반의 6D pose estimation은 바로 pose를 regression으로 예측하거나 2-stage 파이프라인을 따라 pose를 예측합니다. direct regression 방식은 경우 단순하지만 keypoint나 2D-3D correstpondence를 이용하여 object의 형태와 관련된 변수를 중간에 예측하는 2-stage 방식에 비해 정확도가 떨어지고, 2-stage 방식은 손실함수가 미분 불가능하다는 문제가 있습니다. 이러한 두 방식의 한계를 극복할 수 있도록 저자들은 keypoint를 기반으로 하는 end-to-end regression 네트워크를 제안하였습니다. 기하학적 정보를 고려한 keypoint를 구하고 direct regression을 수행하는 방식을 적용하여 미분가능하도록 하였습니다.

Introduction

6D Pose는 로보틱스와 증강 현실 등 다양한 application에 활용이 가능합니다. 정확한 pose를 예측할 수 있어야 안정적인 grasping이 가능하고, 최근 deep learning의 발전으로 상당히 높은 정확도의 pose 예측이 가능해졌습니다. 초기에는 pose를 예측할 때, 공간에 대한 classification 방식으로 대략적인 결과만을 예측하거나 regression을 통해 이미지로부터 pose를 예측할 수 있었습니다. 그러나 direct하게 pose를 예측하는 방식의 경우 빠르지만 이미지로부터 단일 pose 예측 결과만을 도출하므로 정확도가 떨어지는 문제가 있습니다.

이에 2-stage 방식을 이용하여 문제를 해결하려는 연구가 활발히 진행되었고, pose 관련 정보를 얻기 위해 geometric estimator를 이용하여 중간의 feature를 예측하고 이후 PnP/RANSAC과 같은 방식을 활용하여 pose를 예측합니다. 이러한 방식은 정확도가 더 좋지만, 일반적으로 중간의 corresponding 관계를 학습하기 위해 object function을 이용합니다. 그러나 중간의 변수는 pose 추정의 오류를 직접적으로 반영할 수 없다는 문제가 있습니다. 또한, 이러한 방식의 경우 미분 불가능하여 6D Pose에 self-supervise으 방법론을 적용하기 어렵다는 문제가 있습니다. 마지막으로, PnP와 RANSAC이나 voting등에 시간이 많이 소요되어 real-time으로 작동하기 어렵습니다.

direct regression과 2-stage 방식의 장점들을 활용하고자 중간의 변수를 이용하는 direct regression 프레임워크를 제안하는 연구들이 진행되었으나, depth 정보가 부족할 경우 object의 기하학적 구조를 파악하기 어렵거나 조명 조건이 안 좋은 경우, texturel-less object를 사용할 경우에는 성능이 떨어진다는 문제가 있었습니다.

본 논문은 RGBD 정보를 이용하여 E2EK 네트워크를 제안합니다. RGBD 융합에 효과적인 FFB6D(x-review 링크)를 사용하여 object의 보이는 영역에서 point별 keypoint까지 offset을 구합니다. 그 다음, keypoint의 distribution을 통해 outlier를 제거하고, keypoint 기반의 regression head를 이용하여 pose를 예측합니다. 추가로, 전체 이미지의 point cloud가 무작위로 샘플링되어 작거나 가려지는 객체에서 point가 제한되는 문제를 해결하기 위해 새로운 keypoint offset 표현 방식을 제안합니다.

본 논문의 contribution을 정리하면,

  1. keypoint의 geometric 정보를 기반으로하는 end-to-end의 regression 네트워크를 제안하여 미분 가능하고 정확도 높은 pose를 예측할 수 있도록 함.
  2. keypoint offset regression을 위한 단위 벡터와 길이로 구분하여 regression 변수의 분포를 더 균일하게 하고 keypoint estimation을 개선함.
  3. LM, LM-O, YCB-V 데이터 셋에서 좋은 성능을 보임.

Proposed Method

Pose Estimation은 rotation과 translation matrix로 구성된 transformation matrix를 예측하는 것입니다. 이를 위해 texture 정보를 위한 RGB이미지와 기하학적 정보를 위한 depth 이미지를 모두 활용하는 것이 좋습니다.

위의 Fig. 2는 본 논문에서 제안한 방식의 overview로, 먼저 detection 알고리즘(YOLOv3)을 이용하여 object 영역을 먼저 감지하고, PCN(point cloud network)의 입력으로 bounding box 내의 점을 샘플링합니다. FFB6D를 기반으로 semantic segmentation과 3D keypoint localization을 위한 point-wise RGBD feature를 추출하였다고 합니다. 이후 예측된 semantic segmentation 결과와 keypoint offset을 결합하여 keypont 집합을 구하게 됩니다. keypoint 집합을 표준화하고 높은 신뢰도를 갖는 point들에 average pooling을 적용하여 예측된 keypoint를 구합니다. 예측된 keypoint와 model keypoint 간의 correspondence를 통해 direct regression 네트워크를 학습하게 됩니다. 이제 각 모듈에 대해 살펴보겠습니다.

A. Point Sampling Module

RGBD로부터 충분한 point cloud input을 구하기 위해 전체 이미지에서 12800개의 point를 random하게 샘플링하였고, LM-O에 대한 통계적 결과를 Fig. 3에 나타내었습니다. Fig. 3의 그래프를 통해 LM-O(Linemod-Occlusion) 데이터에서 occlusion이 발생할 경우 샘플링 되는 point의 수가 제한적이라는 것을 확인할 수 있습니다. 특히 cat과 같이 작은 object는 전체 object 중 약 25%의 데이터가 20개 이하의 point로 이루어져있습니다. 저자들은 이렇듯 적은 수의 point로는 객체의 geometric한 구조를 나타내기 어렵다고 판단하여 SOTA object detection 프레임워크 이용하여 object가 존재하는 영역에 집중하여 point들을 샘플링합니다. 이때, detection을 통해 object 주변의 point만 샘플링 할 경우 샘플링 point를 크게 줄일 수 있으므로 계산 memory와 시간 소모를 줄일 수 있습니다.

B.Keypoints Learning Module

우선 RGB와 point cloud를 융합하는 SOTA 알고리즘인 FFB6D를 feature extractor로 이용합니다. FFB6D를 이용하여 추출한 dense한 RGBD feature를 semantic segmentation과 keypoint offset learning 모듈에 입력합니다.

1) Semantic Segmentation Module

shared MLP layer로 구성된 semantic segmentation 모듈을 통해 point별 label을 예측합니다. semantic segmenation 모듈의 역할은 object point(배경과 다른 object)와 non-object point를 구분하는 것 으로, keypont voting 모듈에서는 객체로 예측된 영역만을 이용합니다. loss function으로는 Focal Loss[1]를 사용하였고 아래의 식으로 표현됩니다.

**[1]Lin, Tsung-Yi, et al. “Focal loss for dense object detection.” Proceedings of the IEEE international conference on computer vision. 2017.

  • q_i = c_i ∗ l_i
  • c_i: i번째 point가 각 class에 속할 예측 confidence
  • l_i: GT class에 대한 one-hot representation
  • \delta: balance 파라미터
  • \eta: focusiong 파라미터
2) 3D keypoints Offset Detection Module

object의 보이는 영역엣 target keypoint로의 유클리드 translation offset을 예측합니다. 이때 단위 벡터와 offset의 길이를 포함한 4차원 벡터를 예측합니다. 저자들은 균일한 분포의 단위벡터가 network 학습에 도움이 된다 보았지만 균일한 단위벡터를 이용할 경우 length 정보를 잃어 keypoint 예측에 추가적이 오류를 발생할 수 있습니다.

보이는 영역에 대한 seed point 집합 \{ p_i \}^N_{i=1}, object에 포함된 keypoint 집합\{ k_j \}^N_{j=1}가 주어졌을 때, 단위 offset \{ v_i^j \}과 offset의 length\{ l^j_i \}를 예측합니다. 즉, 보이는 point p_i에 대한 j번째 keypoint 후보는 k_j = p_i + v^j_i ∗l^j_i 로 정의됩니다. 이후 L1 Loss를 이용하여 offset과 length를 학습합니다.

이때 v^{j∗}_i는 GT translation 단위 벡터 offset으로 N은 전체 point의 수, M은 keypoint의 수를 나타냅니다. \Gammap_i가 instance I에 속하면 1, 아니면 0이 됩니다.

C. Regression Module

저자들은 클러스터링과 least-squares를 대체하기 위한 keypiont-guided 네트워크를 제안합니다. 이를 통해 end-to-end로 학습이 가능하며, loss는 pose estimation의 정확도와 직접 연관되어 있습니다. 네트워크를 통해 각 객체의 point를 예측하고, keypoint에 대한 offset vector를 사용하여 객체의 keypoint 후보를 구합니다. 이후 keypoint를 표준화하고 confidence가 높은 keypoints에 average pooling을 적용하여 predicted keypoint를 얻습니다. 마지막으로 예측된 keypoint와 대응되는 keypoint를 연결하고 1D convolution 네트워크와 FC layer를 통과하여 object의 pose를 예측합니다.

1) Keypionts Voting

camera 좌표계의 keypoints \{ ^c k_j \}^m_{j=1} 집합에서 후보 집합\{\{ p_j^i \}\}^n_{i=1} 을 얻습니다. 이때 m은 keypoint의 수, n은 semantic segmentation으로 구한 object point의 수입니다. 각 keypoint ^ck_j에 대해 \{ p_j^i \} 를 표준화하여 point별 confidence를 평가하고 voting을 통해 keypoint를 얻게 됩니다. 식으로 표현하면 아래와 같습니다.

이때 c^i_j는 keypoint의 confidence로 아래의 식(4,5)를 이용하여 구할 수 있습니다.

  • mean과 std는 point 집합 \{ p^i_j \}^n_{i=1}의 평균과 표준편차 값
  • \theta는 threshold값으로, 저자들에 따르면 0.6이 최적의 값이었다고 합니다.

정리하자면 위의 keypoint voting모듈을 이용하여 point들 중 confidence에 따른 voting을 통해 keypoint를 얻을 수 있습니다.

2) Pose Regression

keypoints 사이의 correspondence를 더 잘 학습하기 위해 model의 keypoint와 예측된 keypoint를 모아 regression 네트워크에 입력합니다. regression 모듈은 아래의 식으로 표현할 수 있습니다.

  • cat( ): concat함수
  • G: 1D convolution과 FC layer로 구성된 함수.

단순한 구조이지만 voting을 통해 필터링 된 이전 feature에서의 keypoint 정보를 이용하므로, end-to-end로 학습이 가능해집니다. 또한, multi-task 학습을 통해 feature extractor의 성능도 향상시킬 수 있습니다.

또한 GDR-Net[2]과 SO(3)[3]에서 사용한 6D 표현 방식인 R_{6D}를 이용하였다고 합니다. R_{6D}=[R_1 | R_2]로, 2개의 rotation matrix로 구성됩니다. rotation을R_{6D}=[r_1,r_2]로 표현했을 때, 아래의 식(8)을 이용하여 rotation을 구할 수 있고, 이때 r_1,r_2는 단위 벡터입니다.

**[2]G. Wang, et al. “GDR-Net: Geometryguided direct regression network for monocular 6D object pose estimation,” (CVPR 2021)
**[3]Zhou, Yi, et al. “On the continuity of rotation representations in neural networks.” (CVPR 2019)

  • \phi: 외적 연산

loss는 아래의 식 (9)로, rotation과 translation에 대한 오차와 balance 파라미터로 이루어집니다.

  • \mu: balance 파라미터. 본 논문에서는 2로 설정
  • symmetric한 객체의 경우 가능한 GT rotation 값들의 집합 \Omega를 이용하여 min값인 L_{R,sym}=min_{ \bar{R}∈\Omega} L_{R}(\hat{R},\bar{R})를 rotation error로 이용

total loss는 semantic loss와 keypoint module의 loss, 마지막으로 추정된 pose의 loss 3가지 텀을 더하여 구합니다.

Experiment

LM, LM-O, YCB-V에 대한 SOTA 방법론과 비효실험을 수행합니다. 특히, occlusion이 포함되어있는 LM-O를 통해 제안한 방법론의 효과를 입증합니다. 또한 데이터 셋(LM, LM-O, YCB-Video)과 evaluation metrics(ADD, ADD-S)는 이전 6D 논문의 Experiments 부분을 참고해주세요.(x-review 링크)

Evaluation on 3 Benchmark Datasets

LM(Linemod)에 대한 결과는 TableⅠ에서 확인할 수 잇습니다. 모든 object에서 SOTA 성능을 달성하였으며, 평균 99.8의 ADD(S)<0.1d 성능을 달성하였습니다. 다만 object가 occlusion 되는 케이스가 없으므로 다른 방법론들에서도 좋은 성능을 보입니다.

LM-O(Linemod-Occlusion)에 대한 결과는 Table Ⅱ에서 확인할 수 있습니다. 해당 데이터 셋을 통해 occlusion에도 잘 작동하는지를 검증할 수 있습니다. 본 논문은 eggbox를 제외한 모든 obejct에서 최대 성능을 달성하였습니다. 저자들은 eggbox에서 성능이 떨어진 이유에 대하여 eggbox는 texture-less하고 semantic segmentation에서 성능이 떨어지기 때문ㅇ니라고 분석하였습니다. SOTA 방법론인 FFB6D와 본 논문의 LM-O에 대한 정성적 결과는 아래의 Fig. 4로 확인하실 수 있습니다.

YCB 데이터에 대한 실험 결과는 Table Ⅲ에서 확인하실 수 있습니다. 대부분의 object에서 가장 좋은 성능을 보였으며, 최신 방법론들과 비교하였을 때, 평균 ADD(S) AUC는 94.4로 가장 좋은 결과를 보였습니다.

Ablation on our Method

Table Ⅵ에서 본 논문에서 제안한 각 요소에 대한 ablation study 결과를 확인할 수 있습니다. 이때 symmetric한 객체에 대한 keypoint를 선택하는 것이 모호하기 때문에 symmetric한 객체는 제외하고 실험을 진행하였다고 합니다. ape와 같이 작은 객체에 detection을 적용할 경우 object 영역에 더 집중하여 point를 샘플링 할 수 있으므로 성능이 11% 증가하였습니다(objectdetection만 적용한 결과와 비교). 또한, 정규화 된 offset 벡터를 사용함으로써, driller와 can에서 각각 2.7%, 9.3% 성능이 개선되었습니다(unit loss만 사용한 결과와 비교).

Author: 이 승현

4 thoughts on “[RAL 2022] E2EK: End-to-End Regression Network Based on Keypoint for 6D Pose Estimation

  1. 안녕하세요, 좋은 리뷰 감사합니다.

    FFB6D를 feature extractor로 사용했다는 점에서 흥미롭네요.

    간단한 질문이 있습니다. section에서 translation offset을 예측하기 위해 4차원짜리 벡터를 예측하도록 합니다. 해당 4차원 벡터의 구성요소는 unit vector + length인데 여기서 말하는 length는 저희가 소위 생각하는 R^3에서 정의된 v=(A, B, C)의 길이를 구할 때 사용하는 sqrt(A^2+B^2+C^2)으로 구하는 것과 다르게 구하는 것으로 보이는데, offset unit vector는 offset length와 어떤 연관성이 있는지 궁금합니다.

    감사합니다.

    1. 질문 감사합니다.

      우선, 예측하는 4차원 벡터는 point와 keypoint간의 offset입니다. 방향벡터와 length에 대한 loss를 L_unint과 L_length로 나누어 구한 것을 나타내는 것 입니다. 또한 크기 1인 방향을 알 수 있는 unit vector와 이 방향에 대한 length 정보로 이해하였습니다. 따라서 저희가 일반적으로 생각하는 방식으로 값을구하는 것으로 이해하시면 될 것 같습니다.

  2. 안녕하세요 이승현 연구원님!
    object detection 을 통해 물체를 검출한 뒤, 다음 과정들을 수행하는 것이 물체를 구성하는 point cloud가 적다는 점에서 효율적이라는 게 납득이 되는 데요. 그럼 기존에는 그런 연구가 없었는지 궁금합니다. 그림 3 에서 x, y축은 무엇을 의미하나요? 고양이 예시를 들었던 부분과 매핑되는 것 같은데 다시 한번 질문드립니다~!

    1. 질문 감사합니다.

      object detection을 이용하여 object 영역에 집중하도록 하는 연구는 많이 있습니다. (CDPN, Single-Stage 6D Object Pose Estimation 등 ) 아무래도 keypoint를 위한 seed point들을 구하는 관점에서 detection과 같은 방식을 통해 object 영역에 집중해야한다는 내용을 어필하고자 한 것으로 보입니다..

      또한, x축은 point를 샘플링 할 때, object 영역에 포함된 point의 수이고,
      y축은 n개의 포인트가 object 영역에 포함된 이미지의 각 카테고리 별 비율을 의미합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다