image의 landmark를 추정하는 모델의 기본인 Hourglass Network

1. 전체 구조

 

이미지의 landmark를 추정하는 model

 

모래시계 모양(hourglass)의 network를 여러개 쌓아 올린 network

 

이미지를 최대한 작게 만들어 receptive field를 최대로 키워 landmark찾는데 신중하게 결론을 내리도록 함

 

skip connection 구조를 만들어 low level의 feature를 참고하여 더욱 정확한 landmark 위치를 찾도록 함

 

근데 단 1번의 network만 사용하지 않고 여러개 쌓아올렸다는 것은 network를 올라가면서 더욱 큰 그림을 그려가며

 

landmark 정보를 더욱 정교하게 찾아가도록 만들었음

 

Stacked hourglass network의 기본 구조

 

2. hourglass module의 구조

 

하나의 stack인 hourglass module의 전반적인 구조는

 

hourglass module의 기본 구조

 

위 그림의 모든 box 1,2,3,4,....,15들은 기본적으로 다음과 같은 residual bottleneck block을 통과한 뒤 maxpooling을 수행한다

 

 

모든 box들은 위와 같은 residual bottleneck layer로 구성

 

그런데 첫번째 box 1의 layer 구성은 조금 특이하다. 7*7 convolutional layer를 통과하고 bottleneck layer를 통과한다

 

 

첫번째 박스는 7*7 conv를 통과하고 batch normalization , relu를 통과한 뒤에 기본 bottleneck layer와 maxpooling을 통과한다

 

box 2,3,4는 굉장히 simple하게 bottleneck layer를 통과하고 maxpooling을 하는 식으로 진행한다

 

 

box 2,3,4의 진행 방식은 bottleneck layer를 통과하고 maxpooling을 함

 

box 5,6,7은 그냥 bottleneck layer로만 구성돼있다

 

box 5,6,7은 그냥 bottleneck layer만 통과한다

 

7번까지 최대로 작아진 feature map은 다시 upsampling 과정을 거친다

 

그런데 network를 보면 1,2,3,4에서 8,9,10,11로의 skip connection 구조가 그려져있다

 

심지어는 일반적인 skip connection과는 다르게 1,2,3,4 각각에서 bottleneck layer를 통과한 (그러나 max pooling은 하지 않은) feature map이

 

다시 한번 bottleneck layer를 통과하고(역시 이후 max pooling을 하지 않음) 더해준다는 점이 특이하다

 

그런데 그냥 더하는 것은 아니고 아랫단에 5,6,7을 통과한 feature map은 더하기 전에 2배 upsampling을 수행하고 더해준다

 

최종 두 feature를 더한 것이 8,9,10,11 box를 통과한다

 

8,9,10,11 box는 bottleneck layer만 통과하는 것이고 중간에 max pooling은 하지 않고 upsampling을 하는 것이다.

 

 

 

box4의 feature와 box7의 feature가 더해지는 과정

 

box7에서 나온 feature는 2배 upsample을 하고

 

box4에서는 maxpooling 하기 전 feature를 bottleneck layer에 한번 더 통과하고 더해준다는 점

 

최종으로 더한 것이 8번 box인 bottleneck layer로 들어간다

 

 

나머지도 똑같이 반복하면 된다

 

상단 8,9,10,11 box는 bottleneck layer만 통과하는거지 max pooling은 하지 않고 upsampling을 하는 것이다.

TAGS.

Comments