CNN과 Multi-Layer Transformer Encoder를 적용함
우선 imageNet classification 과제로 사전 학습된 CNN 을 이용해서 feature vector를 추출하고 (차원은 2048) 이걸 transformer가 regression하는 입력 값으로 넣어준다.
고해상도 이미지일 경우 3D 바디 조인트나 메쉬 regression에서 좀 더 이득이 있다.
현존하는 트랜스포머 인코더 구조는 모든 레이어에서 히든 임베딩의 차원이 상수값으로 일정하게 고정되어 있어서 이를 바로 사용할 수는 없었다. 그래서 새로운 구조를 창안했는데, 점진적으로 각 인코딩 레이어를 거치며 히든 임베딩의 차원을 줄이는 것이다. 인코더 레이어를 여러개 추가함으로써 모델은 self-attentions과 차원 축소를 교대로 시행하는 걸로 보여진다.
최종 output vector는 메쉬 vertrices와 조인트의 3차원 좌표이다.
각 입력 시퀀스의 각 쿼리의 위치 정보를 보존하기위해 임시 사람 메쉬를 사용한다. 구체적으로 이미지 feature vecotr를 모든 body zoint i에 대한 3차원 좌표들과 함께 이어 붙인다.(concatenating) 이렇게 하면 feature vector는 본래 2048차원 에서 2051 차원의 조인트 쿼리의 집합을 형성한다.(n개의 조인트만큼) 조인트 쿼리와 유사하게 모든 메쉬 vertex에 대하여 위치 정보를 인코딩하고 이어붙여서 vertex 쿼리 집합을 형성한다. 마찬가지로 2051 차원.
MLM 의 경우 input을 복원하는게 목표인데 우리 과제는 regression이 목표라 바로 적용할 수 없다.
우리 트랜스포머 인코더에서 나타나는 양방향 attention을 최대한 활용하기 위해 MVM을 고안했다. 무작위로 입력 쿼리의 어느정도는 mask를 씌운다. 가려진 입력값을 복원하는 MLM과 달리, 우리는 트랜스포머에게 모든 조인트와 vertices를 regression하도록 한다.
missing 쿼리(마스크된 쿼리)에 대응하는 출력값을 예측하기 위해 모델은 다른 관련된 쿼리에 의지할 수 밖에 없을 것이다. 이건 시뮬레이팅할 때 몸이 부분적으로 보이지 않는 것과 유사하다. 결과적으로 MVM은 트랜스포머로 하여금 거리나 메쉬의 위상과 관계없이, 관련된 다른 vertices나 조인트를 고려하게 함으로써 3차원 좌표를 regress하도록 강제한다. 이는 사람의 몸을 더 잘 모델링하기 위해 조인트와 vertices 사이에 짧고 긴 범위의 상호작용을 모두 촉진 시키는데 용이하다.
트랜스포머 출력값과 실제 레이블 간의 L1 loss를 계산한다는 내용
2D 레이블이 있을 경우 L_proj 도 이용한다. 3D 레이블링만 있으면 Loss는 vertex, Joint, Joint regression Loss의 합으로 구성된다.