Abstract, Introduction
사실 여러방면으로 논문을 이해하기 미숙한 시절에 읽은 논문이라 글이 난잡하다..(물론 지금도 비슷하지만) 다른 사람의 견해나 이 분야를 알기 시작하신 분이라면 https://1ch0.tistory.com/m/83 이 글에서 추천하는 survey를 읽어보면 아주 도움이 될 것이다
전통으로 6D pose estimation은 3D model과 이미지의 feature point를 매칭함
이미지의 각 픽셀에 대한 물체의 label을 예측한다
- 각 픽셀의 unit vector를 예측함으로써 물체의 중심을 2D pixel 조정한다. semantic label을 사용함으로써 물체의 중심과 카메라까지의 거리를 예측할 수 있다. 고유의 알고 있는 카메라를 추정함으로써 2D object 중심과 그것의 거리는 3D translation을 알게 해준다.
- bounding box에서 뽑아낸 convolutional feature를 regress함으로써 3D rotation을 추정할 수 있다.
- 물체의 다른 orientation이 identical한 관측을을 만들기 때문에 대칭적인 물체의 pose estimation은 어려운 일이다. 그래서 해당 논문은 ShapeMatch-Loss를 소개했다.
- OccludedLINEMOD dataset과 YCB-Video dataset으로 평가를 했다.
In summary, our work has the following key contributions:
We propose a novel convolutional neural network for 6D object pose estimation named PoseCNN. Our network achieves end-to-end 6D pose estimation and is very robust
to occlusions between objects. We introduce ShapeMatch-Loss, a new training loss function for pose estimation of symmetric objects.
We contribute a large scale RGB-D video dataset for 6D object pose estimation, where we provide 6D pose annotations for 21 YCB objects.
Related work
6d pose estimation methods : template-based methods 혹은 feature based methods로 나누어져 있다고 볼 수 있다.
6D pose estimation, deep learning based object detectors
- Real-Time Seamless Single Shot 6D Object Pose Prediction
- Render for CNN: Viewpoint Estimation in Images Using CNNs Trained with Rendered 3D Model Views
- BB8: A Scalable, Accurate, Robust to Partial Occlusion Method for Predicting
the 3D Poses of Challenging Objects without Using Depth - SSD-6D: Making RGB-Based 3D Detection and 6D Pose Estimation Great Again
Template-based methods 는 texture-less object 에 유용하다 ,
feature-based methods : 관심영역이나 모든 픽셀에서 local feature를 추출해서 3D model과 매칭한다. → 물체에 충분한 texture가 필요
In this work, we combine the advantages of both template based methods and feature-based methods in a deep learning framework, where the network combines bottom-up pixel-wise labeling with top-down object pose regression.
we propose a convolutional neural network architecture that internally decouples the estimation of R and T.
literature 문헌
Method
object detection with bounding boxes [23, 16, 29]
2 stage
1) 13 conv + 4 max pooling layers → feature extraction , map with different resolution
2) embedding step → first stage after than low dimensional feature → high dimensional embed
→ semantic labeling/ 3D trans / 3D Rotation
Semantic Labeling
FCN으로 semantic labeling 할 수 있게 했고
DA-RNN: Semantic mapping with data associated recurrent neural networks.
- previous work scene labeling
softmax cross entropy loss → class probability 계산 , principal point 주점
3D Translation Estimation
- T는 Camera 로 부터 object 의 좌표
- 2D object center → localizing 한 후 → object distance 예측 → 3D translation 예측
- T에 대한 2D image projection 된 내용이 c 임
물체의 중심 c를 찾는다 중심을 찾는 방법은 단위벡터를 만든다
점들을 기반으로 hough voting layer를 쌓아서 2D object center를 찾는 것이다
물체 중심 c를 찾으면, hough voting layer를 통해 Tz를 구할 수 있다
→ c와 depth Tz를 알 수 있을 때 Tx, Ty를 위와 같은 메트릭스를 통해 얻을 수 있다
→ 여기서 fx, fy는 카메라의 focal length를 말하고 px, py는 principal point임
Tz를 구해서 → 3D trans 를 구한다는데 , 2D에서 3D로 reprojection하는 부분에 대해서는 이해를 하지만 depth를 어떻게 구하는지 허프보팅으로 어떤걸 하는지 잘 모르겠다고 했는데 수식을 잘 안봤어서 그런거 같다
-> 이거 단위벡터인 점들이 여러개 있기 때문에 Center 찾을 수 있고 그에 따라서 2차식을 만들 수 있다는 말인데 당연한 것을 너무 어렵게 생각했던 것 같다
3D Rotation Regression
- 3D quaternion representation
M : denotes the set of 3D model points (?) 점의 집합
m : the number of points 모델 점의 수
R(˜q) and R(q) indicate the rotation matrices computed from the estimated quaternion and the ground truth quaternion, respectively.
As we can see, just like ICP, this loss measures the offset between each point on the estimated model orientation and the closest point on the ground truth model. SLOSS is minimized when the two 3D models match each other. In this way, the SLOSS will not penalize rotations that are equivalent with respect to the 3D shape symmetry of the object.
예측 Rotation과 정답 Rotation 차의 제곱으로 표현 가장 가까운 것에 대한 offset을 측정하기 때문에
→ 대칭인 것을 제대로 파악할 수 없음 loss 값이 같음
--> ground truth 를 어떻게 한거지??
Annotation format
The *-meta.mat file in the YCB-Video dataset contains the following fields:
- center: 2D location of the projection of the 3D model origin in the image
- cls_indexes: class labels of the objects
- factor_depth: divde the depth image by this factor to get the actual depth vaule
- intrinsic_matrix: camera intrinsics
- poses: 6D poses of objects in the image
- rotation_translation_matrix: RT of the camera motion in 3D
- vertmap: coordinates in the 3D model space of each pixel in the image
Experiments
Evoluation Metrics
- ADD : Adopt the average distance metric를 사용했다 ground truth rotation R 과 translation T가 주어질때 ADD 계산 평가함