SOLOv2 : https://stickypanda.tistory.com/53
https://velog.io/@haejoo/SOLOv2-Dynamic-Faster-and-Stronger-논문-정리
https://do-my-best.tistory.com/entry/SOLOv2-논문-리뷰

SOLO architecture의 경우 $S^2$ channel의 instance mask를 생성한다. 입력 영상에 대해 FPN(feature pyramid network)을 이용하여 $[H \times W \times E]$ dimension의 feature를 추출 후 이를 다시 $S^2$ channel로 변환하는 과정을 거친다.
Pyramid feature중 특정 level에서 추출한 feature가 주어질 때 $F \in \mathbb{R}^{H \times W \times E}$ 위 과정을 수식으로 표현하면 다음과 같다.
$$ M_{i,j}=G_{i,j}*F $$
여기서 $G_{i,j}\in\mathbb{R}^{1\times1\times E}$는 $(i,j)$ grid에 적용되는 convolution kernel를 나타낸다. $m_{i,j}\in \mathbb{R}^{H\times W}$은 최종 mask이며 $(i,j)$ grid에 하나의 Instance의 중심좌표가 포함된 경우를 나타낸다.
SOLO model은 inference/training 과정에서 위 연산 과정을 거치는데, memory를 필요로 하고 특히나 큰 resolution에 대해서는 높은 computation cost가 필요한 문제가 있다.
대부분의 경우에서 영상안의 instance는 분리되어 있기 때문에 mask $M$연산하는 과정에 $S^2$ kernel을 적용하는 것은 효율적이지 않다.
만약 $F$와 $G$를 따로 학습할 수 있다면, dynamic하게 사용함으로 segmentation의 location을 효과적으로 찾을 수 있다.
(1) Mask Kernal Branch ($G$)