

연구실에서 개인 연구 및 과제와 관련되어서, 다시 한 번 쭉 읽어보려고 한다. 따라서 블로그에 정리하려고 하고, 개요나 관련된 연구를 설명하는 것보다는, 구체적인 방법만 작성하려고 한다.
관련해서 다룬 주제:
한 줄 평:
" 트랜스포터 (어텐션, 마스크드) 등의 최신 기법을 Occupancy prediction에 접목하여 성능 향상을 보이다. "
1 Method

1.1 Predefined Parameters
일반적으로는 RGB를 'ResNet'에 입력하고, 이미지랑 차원이 같은 특징 벡터로 변환해준다. 이후 정해져 있거나, 추정한 깊이(depth)를 기반으로 3차원 복셀로 뿌리고, 이를 각각 복셀에 인코딩 시키게 된다. VoxFormer도 마찬가지다. 다만, 몇 가지 voxel quries나 mask라고 규정한 부분이 명확하지 않아서, 좀 더 찾아봐야 할 듯 하다.
- Voxel queries: 이미지 크기와 특징 차원과 동일한 $R^{h \times w \times z \times d}$ 목적 복셀보다는 저차원의 복셀을 학습한다고 한다. 이게 학습이 된다고는 하는데, 어떻게 초기화되는 지 알 수 없다.
- Mask token: 아마 몇 개의 복셀을 무시하거나 몇 개의 복셀에 집중할 수 있게끔, 쿼리 크기의 마스크 토큰을 사용한다. 아마 부분적으로 어텐션하기 위한 모듈인데, 사전에 구해지는 지 학습하는 건지 논문 만으론 알 수 없다.
1.2 Stage-1: Class-Agnostic Query Proposal
'VoxFormer'는 크게 두 단계로 나뉘어져 있는데, 첫번째 단계로 아마 2D RGB 이미지를 입력한 뒤, 특징도 뽑고 깊이도 뽑은 다음에, 복셀을 초기화하는 방식을 다룬다. 처음은 (1) Depth estimation: 깊이를 이미지에서 추정한 뒤, 이를 기반으로 3차원 공간에 뿌리고 이를 복셀 공간에 인코딩한다. (2) Depth correction: naive한 3차원 포인트 클라우드 (점유는 1, 비점유는 0)를 입력한 뒤, binary 복셀을 출력하게 된다. (아마 깊이로 추정한 결과를 바로 사용하지 않고, 정제하려고 하는 걸로 생각된다. (3) Query proposal: 가공한 복셀 (네트워크를 통과한)을 query voxel로 변경해준다.
1.3 Stage-2: Class-Specific Segmentation
노테이션으로 이해하는 데는 개인적으로 한계가 좀 있어서, 그림으로 이해하자면, RGB 이미지 입력과 깊이 정보를 기반해 Query 복셀을 만들고, 각 토큰을 취득한 이미지 특징과 비교하여 각 복셀로 초기화 시키는 듯 하다. 그 다음 유사한 그룹끼리 크로스 어텐션을 진행해준 뒤, 마스크를 사용해서 셀프 어텐션을 진행하는 것으로 보인다.
Weighted cross-entropy Loss: 수치는 아래와 같은데, 간단하게, 각각의 복셀을 하나씩 번갈아가면서 G.T. 라벨과의 손실함수를 측정한다. 또한 아예 없는 영역에 대해서는 마스크를 씌워서 결과에 영향을 끼치지 않도록 한다. 그 외로 scene-class affinity loss와 앞선 스테이지에서 binary cross-entropy loss (저차원)도 같이 사용한다고 한다.

2 Experiments
개인적으로 흥미로웠던 실험만 선별적으로 다룬다.



3 Reference
제안 논문 및 관련 코드