네이버 부스트캠프 🔗/⭐주간 학습 정리

[네이버 부스트 캠프 AI Tech]Landmark Localization & Detecting objects as keypoints

Dobby98 2023. 4. 3. 14:54

본 글은 네이버 부스트 캠프 AI Tech 기간동안

개인적으로 배운 내용들을 주단위로 정리한 글입니다

 

본 글의 내용은 새롭게 알게 된 내용을 중심으로 정리하였고

복습 중요도를 선정해서 정리하였습니다

 

✅ Week 5

  1. Landmark Localization
    1. Hourglass network
    2. DensePose
    3. RetinaFace
  2. detection object as keypoint
    1. conernet
    2. centernet

 


✅Intro

이번에 살펴볼 내용들은 Instance segmentation과 panoptic segmentation의 추가적인 내용으로

Landmark Localization 과 Detection object as keypoint이다

 

둘의 내용은 조금더 발전된 방법론과 앞에서 살펴본 방법론을 다른 분야에 적용한 방법론에 대한 이야기 이다

그럼 차근차근 살펴보자


✅1. Landmark Localization

Landmark하니까 모두의 마블 landmark가 떠오르는 당신은 정상이다

하지만 오늘 우리가 다룰 landmark는 조금다르다

 

위를 조금 이해하기 쉽게 다르게 표현하자면

'얼굴이나 사람의 몸 등 물체에서 중요하다고 생각되는 부분을 추정 및 추적'하는 것이다

 

즉, 모션 캐쳐와 같은 task라고 할 수 있다

 

이를 위해서 접근할 수 있는 방법은 초기에 크게 2가지가 있었다

 

- Coordinate regrssion : FC layer의 각 node를 x,y 위치를 예측하게 만드는 방법으로

Box regression과 비슷하다

하지만 이러한 방법은 부정확하고 일반화에 한계가 있다

 

Heatmap classification :  Semantic Segmenation처럼 채널별로 각 keypoint 추출

즉, 각 채널별로 keypoint의 여부를 활률로 표현하여 이를 pixel별로 classification하는 방법이다

성능은 좋지만 모든 픽셀을 연산 및 판별해야하기 때문에 계산복잡도가 높다

 

Gaussian Heatmap

x,y의 label을 활용해서 각 위치의 confidence를  heatmap으로 변환하는 방법이다

gaussian 분포를 활용한다


1.1 Hourglass network

대표적인 모델로는 Hourglass가 있다 

이 모델의 경우 Unet과 비슷한 구조를 활용하는데

영상의 receptive field를 키워서 landmark를 찾는다

즉, 영상의 크기를 줄여서 찾는 것이다

중간에 skip connetion 도 있어서 low level - 즉, 사이즈가 클때 - 를 참고해서 결과를 향상시킨다

하지만 Unet처럼 concat을 하는 것이 아니라 sum을 하기 때문에 차원이 증가하지는 않는다

 

1.2 DensePose

조금더 다른 방법론으로  3D모델을 2D로 펼쳐서 이미지 형태인 'UV map'을 만들고

이를 Fast R-CNN 같은 모델을 통과 시킨다음 3D surface regression branch로 

결과를 만드는 방법이다

가장 마지막의 mask branch 부분이 UV map prediction으로 변환해서 DensePose를 예측한

 

1.3 RetinaFace

 

FPN과 Multi task branch를 합친 모델로

Multi-task에는

: classification, bounding box,

5 point regression,

mesh regression(3D face mesh를 출력)

이 포함된다

 

각각의 task마다 조금씩 다른 정보가 학습되기 떄문에 훨씬 좋은 결과를 낼 수 있다

그리고 여러 task에서 gradient가 오는데 여기에는 공통 정보가 있고

조금씩 다른 정보들이 있어서

적은 데이터로도 좋은 성능을 내는 경우가 있다


2. Detecting objects as keypoints

이 부분은 최근에 진행되고 있는 연구 트렌드로

출력 데이터의 형태를 변환시킴으로 모델의 성능을 향상 시키는 것을 목적으로한다

 

차근차근 살펴보자

 

2.1 ConerNet

Top-left와 Bottom-right로 bounding box를 찾는 방식으로 

속도를 향상시켰다

 

 

2.2 CenterNet

앞에서 살펴본 cornernet의 경우 속도면에서는 증가했지만

성능이 비교적 떨어졌다

이를 해결하기 위해서 Center 정보를 추가하는데

이는 객체의 중심을 나타낸다 

 

 

centernet의 또다른 방법으로는 width, height를 top-left, bottom-right 대신에 사용하는 방법으로

좋은 성능과 속도를 보여준다

 

시간이 된다면 논문리뷰로 정리를 다시해보겠다


이번 정리글은 전체적인 흐름을 알아보는 것에 맞추었다

특히 앞에 부분에서는 다른 task의 부분이라도 기존의 방법론에 추가적인 디자인을 합쳐서

모델을 구성하는 것을 확인할 수 있다

 

즉, 완전히 밑바닥부터 시작하는 것이아니라 

어느 정도 쌓여져 있는 구조에 새로운 디자인을 추가하는 방법이 

연구의 트렌드로 파악할 수 있다