image의 landmark를 추정하는 모델의 기본인 Hourglass Network
1. 전체 구조
이미지의 landmark를 추정하는 model
모래시계 모양(hourglass)의 network를 여러개 쌓아 올린 network
이미지를 최대한 작게 만들어 receptive field를 최대로 키워 landmark찾는데 신중하게 결론을 내리도록 함
skip connection 구조를 만들어 low level의 feature를 참고하여 더욱 정확한 landmark 위치를 찾도록 함
근데 단 1번의 network만 사용하지 않고 여러개 쌓아올렸다는 것은 network를 올라가면서 더욱 큰 그림을 그려가며
landmark 정보를 더욱 정교하게 찾아가도록 만들었음
2. hourglass module의 구조
하나의 stack인 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로만 구성돼있다
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을 하는 것이다.
'딥러닝 > Computer Vision' 카테고리의 다른 글
bounding box를 추정하는 방식이 다른 CornerNet과 CenterNet (0) | 2023.06.26 |
---|---|
3d 모델을 추정하는 Denspose와 다양한 task를 한번에 풀어내는 RetinaFace (0) | 2023.06.26 |
landmark localization task 기본개념 배우기 (0) | 2023.06.25 |
VPSNet의 panoptic segmentation 과정 분석 (0) | 2023.06.25 |
CNN visualization6 - grad CAM - (0) | 2023.06.24 |