실시간으로 instance segmentation을 수행하기 위한 YOLACT의 아이디어 알아보기

1. YOLACT

 

1-1) motivation

 

Mask R-CNN은 region proposal을 수행하고 segmentation을 수행하는 two stage 구조로 조금 느려

 

real time instance segmentation을 수행하기 위한 single stage 구조의 모델이 등장

 

 

1-2) 구조

 

feature pyramid network 구조를 사용하여 고해상도 feature map을 뽑는다

 

Mask R-CNN이 비효율적으로 실제 쓰지 않더라도 하나의 bounding box에 대해 모든 class의 마스크를 일단 만들었는데

 

Protonet을 사용하여 mask의 prototype(soft segmentation component)을 일단 만든다는 것이 핵심이다

 

효율적으로 생성하기 위해 protonet에서 object 개수와 무관하게 적당히 적게 생성함

 

feature map을 prediction head에 넣어서 mask prototype합성에 사용할 가중치를 만드는 계수 분포를 생성

 

NMS(non maximum suppression)도 사용했다는 거 보이고

 

계수분포랑 prototype의 weighted sum을 통해 object detection에 적절한 mask response map을 생성

 

bounding box에 crop이나 threshold를 사용하여 적절하게 마지막 변경

 

YOLACT의 기본 구조

 

mask를 적게 생성하고 feature map으로 만든 계수 분포에 의한 합성으로 다양한 mask를 생성하는 것이 기본 포인트

 

detection 1에서는 사람에 집중되어 있고 detection 2에는 라켓에 집중되어 있다

 

 

2. YOLACT Edge

 

2-1) motivation

 

YOLACT가 소형 device에 올리기는 쉽지 않아

 

성능은 YOLACT와 비슷하게 유지하면서 feature map의 계산량을 줄여

 

소형화된 mobile system edge device에서도 동작할 수 있도록 만들고자 했다

 

 

2-2) 구조

 

video instance segmentation에 사용하고자 했다.

 

각 frame에서 mask의 prototype을 생성하고 계수 분포를 생성하여 최종적으로 합성하는 YOLACT의 방법을 사용했다

 

기존에는 이전 frame에서 만든 상위 feature를 모두 transform시켜서 다음 frame으로 넘겼다는데

 

여기서는 partial feature transform 전략으로 이전 key frame의 feature map을 다음 frame에 넘겨

 

계산량을 획기적으로 줄여 빠른 비디오에서도 object detection이 가능하게 만들었다

 

구체적으로 non key frame에서 feature map $C1^{N}$,$C2^{N}$,$C3^{N}$는 계산하지만(기존에는 이 feature들도 계산안했다는거임) $C4^{N}$,$C5^{N}$를 계산하지 않는다.

 

논문에서는 ResNet backbone에서 C4를 계산하는 비용이 전체에서 66%라고 언급해서 이것을 제거하여 계산량을 줄이겠다는 것임

 

C1,C2,C3,C4,C5는 바로 위에 YOLACT에서 Feature backbone에서 만드는 feature map

 

 

 

당연하지만 이에 대응하는 $P4^{N}$,$P5^{N}$도 계산하지 않는다

 

그 다음 이전 key frame의$P4^{K}$,$P5^{K}$를 다음 frame의 $P4^{N}$,$P5^{N}$쪽에 근사시키기 위해 transform 시켜서 만든 W4,W5로 넘겨준다

 

transform은 warping이라고 언급하고 있다. 적절하게 warping방법을 선택해서 transform시키면 되나봄

 

다음 $P3^{N}$=$C3^{N}$+upsampling(W4)로 계산한다

 

YOLACT edge의 구조

 

비디오에서 어떤 변화가 일어날때 시작점을 keyframe이라 하고 그 이후를 non key frame이라고 한다

 

 

2-3) 한계

 

속도는 분명히 개선되었지만 비디오의 frame별 독립 프로세싱 구조라서 mask가 떨린다거나 깜빡이는 한계가 존재한다고함

TAGS.

Comments