장점 : Video Recognition에서 좋은 성능
단점 : 많은 계산량, 메모리를 필요. Online Inferece 제공x
현재까지의 상황
본 논문에서 시도한 접근
MobileNetV3을 Base로 사용
3D Video를 입력값으로 다루기 위해 MobileNetV3에 있는 2D block를 확장.
Overview of MoViNet Search Space
- 변수 정의 - T : 프레임 수 - S : Input size - $c^{base}$ : base filter width - L : layer 수 - Each Block in network - Block에서 반복하면서 $c^{base}, L<=10$ 를 찾아나감. - 모든 Block의 Feature Map Channel에 Multiplifier (0.75, 1, 1.25)을 적용하여 8의 배수로 반올림 - Block 수는 5개로 설정하여 4번째 block을 제외한 각각의 block의 첫번째 layer에서 strided spatial downsampling → 마지막 Block이 Spatial resolution $7^2$을 갖게 하기 위함. - 이 Block이 Feature Map Channels을 점차 늘려감. {16,24,48,96,96,192} - 마지막 Convolution layer’s base filter width = 512 ~~~ - SE(squeeze-and-excitation) 대신 SE block을 사용하여 3D average pooling을 통해 시공간적 특징을 합침 → 모든 Bottleneck block에 적용Base search space → MoViNet-A2
compound scaling heuristic 적용 → 뭘까?
본 접근이 갖는 차이점
scaling coefficients를 찾기 위해 random search를 사용
→ 현재까지 언급한 MoViNet Search Space는 input frame의 수에 비례하여 메모리 사용량이 증가 (모바일 디바이스에서 긴 영상을 다루기 어렵게 만듬)
→ 따라서 다음 section에서 메모리 소모량을 linear에서 constant로 줄여주는 Stream Buffer에 대해 소개할 것임.
일반적으로 메모리를 줄여주는 해결책은 multi-clip evalution이 사용된다.
이와 같은 단점을 해결하기 위해 본 논문에서는 Stream Buffer을 제안
먼저 을 현재 i < n 로 단계에서 현재 subclip으로 정하고 time dimension에서 b의 길이를 갖는 Buffer B를 0으로 초기화한 Tensor로 나타낼 것이다.
이후, time dimension에 있는 subclip과 이어진 Buffer의 Feature map 를 계산한다.
→ f : 시공간적 작용을 의미(ex. 3D Convolution)그 다음 clip을 처리할때 Buffer를 업데이트한다.
- [-b:] : Input의 마지막 b개의 프레임 선택 → 결과적으로 메모리 소모량은 $O(b+T^{clip})$에 의존하며, 이는 total video frames T 또는 subclip의 수가 증가함에도 일정하다.→ TSM(Temporal Shift Module)은 Stream Buffer에서 b = 1이고 f가 Buffer (의 Channel 비율을 input 로 바꾸는 Operation인 특별한 case이다.