일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- requires_grad
- Face Pose Estimation
- L2P
- Continual Learning
- img2pose: Face Alignment and Detection via 6DoF
- CVPR2022
- Class Incremental
- Facial Landmark Localization
- learning to prompt for continual learning
- 베이지안 정리
- VQ-VAE
- DualPrompt
- Discrete diffusion
- prompt learning
- timm
- VQ-diffusion
- mmcv
- Class Incremental Learning
- Img2pose
- PnP algorithm
- CIL
- learning to prompt
- Face Alignment
- Vector Quantized Diffusion Model for Text-to-Image Synthesis
- Energy-based model
- state_dict()
- Mask diffusion
- Mask-and-replace diffusion strategy
- Markov transition matrix
- ENERGY-BASED MODELS FOR CONTINUAL LEARNING
- Today
- Total
Computer Vision , AI
Templates for 3D Object Pose Estimation Revisited: Generalization to New objects and Robustness to Occlusions ,CVPR 2022 본문
Templates for 3D Object Pose Estimation Revisited: Generalization to New objects and Robustness to Occlusions ,CVPR 2022
Elune001 2023. 6. 6. 02:05오늘 리뷰할 논문은 Templates for 3D Object Pose Estimation Revisited: Generalization to New objects and Robustness to Occlusions라는 CVPR 2022년도에 나온 논문입니다.
먼저 들어가기에 앞서 본 논문의 핵심을 말하자면 다음과 같습니다.
1. Template-based object pose estimation model들이 그동안 왜 실패해 왔는지 실험을 통해서 증명하고 positive pair와 negative pair사이의 contrastive learning을 통해 Template-based pose estimation model을 제안합니다.
2. 더 나아가 train data에 없는 new object가 들어올 시 global representation을 기반으로 하는 기존 모델들이 작동하지 않았던 이유에 대해 보이고 template-based의 local representation을 사용함으로써 해결책을 제시합니다.
3. 모델 Architecture에 Pooling layer가 들어가는 경우 New object(unseen object)가 Occlusion이 있을 시 object에 대한 정보를 날릴 수 있다는 것을 실험을 통해서 보이고 Pooling을 제거한 뒤 Test time에 적용 가능한 similarity 기반 Occlusion mask를 이용하여 추가로 Occlusion에도 robust한 모델을 달성하였습니다.
1. Preliminary
들어가기 앞서 본 논문은 Discrete viewpoint-based pose estimation 모델에 관한 논문으로
위와 같이 object로부터 일정거리만큼 떨어진 viewpoint들이 반구형태로 있다고 가정할 때 object와 viewpoint간의 pose를 예측하는 task입니다.
조금더 구체적으로 말하면 이 viewpoint들은 정이십면체의 각 면을 4개의 작은 삼각형으로 나누고 이를 두번 반복한다음 아래쪽 반구를 제거하여 만들게 되고 결과적으로 Fig1의 맨 우측의 그림에서 보듯 각 viewpoint별로 중앙의 object를 바라봤을 때 기대할 수 있는 2D scene (image)와 입력 이미지 사이의 유사도를 통해 Pose를 추정하게 됩니다.
이때 두 viewpoint간의 각도가 5도 미만인 경우를 Similar pose 5도 이상인 경우 Dissimilar pose라고 정의합니다.
그리고 이를 바탕으로 같은 object에 similar pose인 경우 Positive pair 다른 object이거나 같은 object여도 disimilar한 pose를 가진 경우를 negative pair라고 정의합니다.
2. Failure case analysis - previous method (Template-based)
기존 template-based method의 경우 positive pair인 경우 매우 간단한 구조로 object끼리 서로 positive pair 인지 negative pair인지 구분하도록 하는 object loss와 positive pair 끼리의 feature distance를 줄여주는 방식의 pose loss를 통해 Pose estimation을 진행하였습니다.
문제는 기본적인 성능 자체가 template base가 아닌 pose estimation model들에 비해 낮은 편이라는 문제점과
training 시에 주어진 dataset의 모든 object를 사용하여 training을 했기 때문에 사실상 매우 간단한 synthetic object들로
구성된 LineMOD dataset에서 모든 class에 대해 object loss가 굉장히 낮게 나올 수 밖에 없고
따라서 해당 benchmark 상에서는 positive와 negative object pair를 잘 구분하여 pose에 대한 오차만 고려하면 되는 수준이지만 실제 unseen object들이 입력되는 상황에 대해서는 object를 구분하는 부분부터 pose 예측까지 잘 작동하지 않을 수 있다는 문제점이 있었습니다.
이러한 training 과정 중에 볼 수 없었던 unseen object가 입력이 되었을 때 발생할 수 있는 추가적인 문제점으로는 Fig.3의 우측 상단과 같이 배경을 포함하는 이미지 전체를 encoder의 입력으로 주어 embedding feature로 만드는 global representation 방식을 사용하면 이미지가 cluttered background를 가지고 있을 때 모델이 이미지 상에서 background와 object의 경계에 대한 구분을 잘 하지 못해 representation을 잘 추출할 수 없다는 문제점이 있고 이는 Fig3의 T-SNE visualization 결과로 확인 할 수 있습니다.
Fig.3은 image의 background를 포함하는 global representation을 사용하였을 경우와 본 논문에서 제안하는 local representation을 사용한 경우의 T-SNE visualization 결과인데
첫번째 column을 보면 seen object내에서는 representation이 잘 cluster되어있는 것을 확인할 수 있지만 두번째 column의 unseen object들은 각 class별 cluster가 잘 형성되지 않은 것을 확인할 수 있습니다. 마지막으로 세번째 colum처럼 background를 masking 한 경우 어느정도 cluster가 형성되는 것을 확인할 수 있어 unseen object에서 representation 추출에 background가 끼치는 영향을 비교해볼 수 있습니다.
Pose 예측에서도 이와 같은 문제점이 드러나는데 비슷한 각도를 가진 representation 사이의 distance는 적고 각도 차이가 많이 날 수록 representation 간의 distance가 크게 나타나야 하지만 unseen object에 대해서는 이와 같은 관계가 성립되지 않는 것을 확인할 수 있습니다.
Fig.4의 가로축은 angle 차이를 의미하고 세로축은 representation 간의 거리를 의미하는데 global representation을 사용한 경우 첫번째 column에 해당하는 seen object에서는 angle difference가 클수록 representation 사이의 거리가 커지는 것을 확인할 수 있지만 unseen object에서는 이렇다할 관계를 보이지 못하는 것을 확인할 수 있습니다.
심지어 3번 column에서 마스킹을 해주어 배경을 날린 이미지를 넣어준 경우조차도 pose에 따른 representation이 잘 추출되지 않은 것으로 보이는 결과를 내는 것으로 보입니다.
해당 논문에서 저자들은 이를 pooling layer가 feature의 중요한 정보를 날리기 때문이라고 주장을 하고 있고 training object들에 대해서는 pooling layer 이후의 나머지 architecture가 보완을 해주지만 unseen object에 대해서는 그러한 보완이 잘 이루어지지 않아 이런 결과가 나온다고 주장을 합니다.
3-1. Local representation - proposed method
따라서 본 논문에서는 앞선 문제들을 해결하기 위해 우선 background 문제를 해결할 수 있도록 Global representation을 추출하여 사전에 등록된 3D template model을 여러 view point에서 봤을 때 template image 사이의 similarity를 재는 것이 아니라 (Fig.5)
representation을 뽑고 template image를 기준으로 만든 binary template mask를 각 feature map에 적용하여 masking을 해준 다음 그 사이의 similarity를 재는 방식으로 background 문제를 해결하였습니다.(Fig.6)
3-2. Occlusion masking - proposed method
또한 occlusion된 이미지의 feature map에 pooling layer를 적용하여 중요한 정보가 날라가는 것을 방지 하기 위해 pooling layer를 arhcitecture에서 제거하고 similarity 기반의 occlusion threshold를 적용하여 각 픽셀을 기준으로 low similarity를 가진 픽셀을 masking 해 주는 방식으로 문제를 해결하였습니다. (Fig.7)
(Notice: training time에는 training data 확보를 위해 occlusion이 없는 LINEMOD dataset을 활용하여 occlusion mask 없이 training을 진행한 다음 testing time에만 occlusion mask 적용)
4. Loss function
loss같은 경우 상단에 보이는 것과 같은 infoNCE loss를 써서 input image와 template이 simliar pose인 경우 positive pair로 disimilar pose인 경우 negative pair로 분류하여 contrastive learning을 진행하였습니다.
4. Architecture
결과적으로 보면 다음과 같습니다.
우선 pose estimation을 하려는 object의 3D template는 있다고 전제하에
1. 각 3D CAD model들이 각 view point에서 봤을 때 모습을 미리 만들어두고 template feature와 template mask를 만들어 둡니다.
2. 입력 이미지가 들어오면 encoder를 통과시켜 feature map을 추출하고 사전에 뽑아두었던 template mask를 적용하여 template feature와 비교하였을 때 제일 similarity가 높은 feature map을 찾습니다.
3. 해당 feature map의 template index를 통해 template image를 만들기 위해 사용하였던 pose와 3D model을 찾고 이를 pose와 class로 예측합니다.
4. inference time에서는 template mask를 적용하고 난 뒤 pixel별 similarity 기반 occlusion mask를 적용한 뒤 similarity를 구하는 2번 과정을 거칩니다.
4. Metric
Metric은 Acc_15와 Visible surface discrepancy(VSD)를 사용하였습니다.
Acc_15는 예측 개수중에 pose error가 15도 이하이면서 class가 일치하는 경우의 개수를 나타내는 지표로 이전 논문들이 seen object에 대해서만 test를 진행하여 class accuracy가 100%에 가까워 필요하지 않았던 class에 대한 metric을 unseen object에 대해 실험을 하게 되면서 해당 논문에서 제안한 지표입니다.
T-LESS dataset 같은 경우 대부분의 object가 대칭이라 pose를 고려하기 보다 error_VSD를 사용하였는데 10%이상 object visibility가 있는 경우 허용오차 20mm기준으로 VSD 0.3이하인 경우에는 recall을 기준으로 성능을 측정했고 translation의 경우 [6]에서의 방식으로 구하였습니다.
VSD은 예측 pose와 GT pose로 template을 projection시켰을 때 distance image의 차이가 tolerance보다 작은 영역과
실제 distance image를 기준으로 얻은 visiblity mask(보이는 영역)로 예측 pose와 GT pose로 projection된 model의 distance image들을 masking해주었을 때 교집합사이의 xor 연산 결과를 기준으로 구합니다.
4. Quantitative results and Qualitative results
정량, 정성지표는 다음과 같습니다.
5. Conclusion
5. Summary
본 논문에서는 실험을 통해 unseen object들에 대해 contrastive learning을 적용하려고 하면 cluttered background가 있는 경우 모델이 이미지 상에서 object의 representation을 잘 추출하지 못할 수 있다는 사실을 실험을 통해 보였습니다.
또한 이와 같은 상황에서 pooling을 사용하는 경우 occlusion이 많을 때 추출된 feature map에 object에 대한 feature의 값이 크게 나오거나 많이 나왔을 것이라는 보장이 없기 때문에 object에 대한 특징이 추출되는 것이 아닌 쓸모 없는 정보들이 pooling layer의 결과물로 나올 수 있다는 사실을 지적하였습니다.
이에 대한 해결책으로 training time에 background masking과 inference time에 similarity기반 occlusion mask를 제시하여 모델이 구분하지 못한 정보를 template mask나 similarity기반 thresholding으로 제거하고 object에 대한 feature만 남기는 방식을 제시했습니다.
'Paper_review' 카테고리의 다른 글
Deep Equilibrium Models (DEQ) 리뷰 (0) | 2024.09.20 |
---|---|
Object-Centric Learning with Slot Attention (Neurips 2020) (0) | 2024.04.24 |
img2pose: Face Alignment and Detection via 6DoF, Face Pose Estimation, CVPR 2021 논문 리뷰 (0) | 2022.11.08 |
papers (0) | 2022.09.07 |