Abstract
물체의 6D pose를 추정하는 것은 로봇에게 있어 중요하다. 여기서 6D는 6 degrees fo freedom으로 물체의 자유도를 말한다.
하지만 scene의 어수선함과 겹침과 같은 복잡성 때문에 물체를 추정하는 것은 challenge하다. 해당 논문에서는 CNN을 통한 6D object pose estimation을 제안한다.
PoseCNN은 이미지에서 물체의 중심을 알아내고 카메라까지의 거리를 예측함으로써 3D translation을 추정하고, quaternion representation을 회귀함으로써 3D rotation을 추정한다.
* quaternion : 쿼터니언은 4개의 수로 이루어지며, 하나의 벡터(x,y,z)와 하나의 스칼라를 의미한ㄷ.ㅏ
1. Introduction
물체의 3D 정보를 아는 것은 중요하지만 scene의 clutter와 물체간의 occlusion 때문에 어려운 일이다. 전통적으로 6D pose estimation은 3D model과 이미지의 feature point를 매칭한다. 그러나 이것은 물체의 풍부한 정보가 필요하다. depth camera의 등장으로 RGB-D data를 사용하기도 한다.
- 1. 이미지의 각 픽셀에 대한 물체의 label을 예측한다.
- 2. 각 픽셀의 unit vector를 예측함으로써 물체의 중심을 2D pixel 조정한다. semantic label을 사용함으로써 물체의 중심과 카메라까지의 거리를 예측할 수 있다. 고유의 알고 있는 카메라를 추정함으로써 2D object 중심과 그것의 거리는 3D translation을 알게 해준다.
- 3. bounding box에서 뽑아낸 convolutional feature를 regress함으로써 3D rotation을 추정할 수 있다.
- 물체의 다른 orientation이 identical한 관측을을 만들기 때문에 대칭적인 물체의 pose estimation은 어려운 일이다. 그래서 해당 논문은 ShapeMatch-Loss를 소개했다.
- OccludedLINEMOD dataset과 YCB-Video dataset으로 평가를 했다.
2. Related Work
6D pose estimation은 templete-based method와 feature-based method로 나눌 수 있다.
- templete-based : 강체가 구성되고 이미지의 다른 위치가 스캔된다. 각 위치에서 similarity score를 계산한다. texture-less object detecting할때 유용하지만 유사도를 사용하기에 occlusion은 다루기 힘들다.
- feature-based : 관심 영역이나 모든 픽셀에서 local feature를 추출해서 3D model과 매칭한다. occulsion을 다루기가 가능하지만 물체의 충분한 texture가 필요하다.
해당 논문에서는 두 가지의 강점을 결합한 방법을 제시한다.
3. PoseCNN
- first stage : 13 convolutional layers + 4 max pooling layers -> extract feature map with different resolution
- second stage : embedding step -> first stage에서 뽑아낸 low dimensional feature를 high dimensional 로 embed.
그러면 6D pose estimation -> semantic labeling / 3D translation estimation / 3D rotation regression 다른 문제가 된다.
3.1 Semantic Labeling
물체를 detect하기 위해 semantic label을 이용한다. bounding box보다 occulsion을 다루기 더 좋다.
semantic labeling branch에서 512d 채널 두 개를 사용한다. 이 두 feature map은 원본 이미지의 1/8, 1/16 사이즈이다. 먼저 채널을 64d로 줄여준다. 그러면 resolution이 두 배가 되고 두 feature map을 합하고 deconvolution layer를 통해 원본 이미지 사이즈로 바꿔준다. 이때 채널은 n개인데 semantic class의 개수이다. training에서 softmax cross entropy loss를 사용해 픽셀의 class probability를 계산한다.
3.2 3D Translation Estimation
T 는 물체의 좌표를 말한다. 해당 논문은 2D object center를 loacalizing하고 object distance를 예측함으로써 3D translation을 예측한다. T를 이미지로 projection한 거를 c=(cx,cy)라 하자. 만약 네트워크가 c와 depth Tz를 알 수 있다면 Tx, Ty를 얻을 수 있다.
fx, fy는 카메라의 focal length를 말하고 px,py는 pricipal point를 말한다.
다음과 같이 단위벡터를 만들어 중심을 찾도록 학습한다.
Fig2를 보면 다음과 같이 Hough voting layer를 쌓아 2D object center를 찾는다. 물체의 중심을 찾으면, 물체 중심에 투표하는 픽셀을 inlier로 간주하고 Tz를 구할 수 있다.
마지막으로 Eq1을 사용해 3D translation을 구할 수 있다.
3.3 3D Rotation Regression
Fig2에 가장 밑 부분이 3D rotation regression 부분이다. Hough voting layer에서 예측한 bounding box를 사용해 'crop and pool' 을 위해 RoI pooling layer를 이용한다. 이렇게 pooled 된 feature는 3개의 fully connected layer에 더해지고 마지막 FC layer는 4xn(n은 class의 개수)이다.
quaternion regression을 학습하기 위해, 해당 논문은 2개 loss function을 제안했다.
- PoseLoss(PLoss)
3차원 공간에서 적용을 하고 실제 모델의 point와 예측을 통해 얻은 point의 average squrared distance을 구하기 위해 사용한다. M은 3D model의 point 수이고, R(q~), R(q)는 quaternion으로 계산한 rotation metrics와 ground truth quaternion이다. 이 loss함수는 대칭적인 물체의 경우 제대로 학습이 되지 않아 SLoss를 제안한다.
- ShapeMatch-Loss(SLoss)
SLoss는 특별한 symmetic이 필요하지 않다. SLoss는 대칭적인 물체의 rotation에 패널티를 부여하지 않아 symmetric한 경우에도 학습이 잘 된다.
4. Experiments
4.1 Dataset
YCB-Video 데이터셋과 LINEMOD 데이터셋을 사용했다.
4.2 Evaluation Metrics
평가에는 ADD (Average Distance) metric을 사용했다. ground truth rotation R과 translation T가 주어질때, R~, T~의 ADD를 계산해 평가를 진행했다.
기존의 방법들과 비교했을 때 수치적으로 차이가 많이나고 그림을 눈으로만 봐도 차이가 많이 난다.
댓글