(7강) Instance/Panoptic segmentation
Instance segmentation
Instance Segmentation은 Class와 Object를 구분하는 Task로서, Semantic Segmentation과 Object Detection과 유사한 기능을 수행한다. 각의 Task를 수행하는 것과 유사하므로, 더 난이도가 높고 응용 분야가 넓은 Task로 이해할 수 있다.
Mask R-CNN은 Instance Segmentation Task의 대표적인 모델이다. 기본적인 구조는 Faster R-CNN과 유사하하므로, 추가된 부분만 확인해보자.
이 논문에서는 이처럼 기본 구조에서 Branch를 추가하는 것만으로 새로운 Task를 해결할 수 있음을 소개했다. Mask Branch 외에도, Keypoint Branch를 활용해 Pose Estimation Task에 적용하는 등의 응용을 선보였다.
YOLACT는 Single-stage 구성으로, Instance Segmentation Task를 풀고자 했다.
YolatctEdge는 YOLACT를 경량화 한 모델이다. Video에 대해서도 Instance Segmentation을 할 수 있도록 확장되었으며, 소형 디바이스에서도 동작할 수 있게 되었다.
Panoptic segmentation
Panoptic Segmentation은 Instance Segmentation에서 더 진보한 형태로, 물체가 아닌 배경까지 Segmentation하는 형태의 Task이다. 단계적으로 발전한 Task인 만큼, 앞선 모델을 개량하는 방향으로 발전이 이루어졌다.
UPSNet은 FPN구조를 기본으로 하고 있으며, Panoptic Head를 추가하는 형태로 구현되었다.
VPSNet은 Panoptic Segmentation Task를 Video로 확장한 형태의 모델이다.
Landmark localization
Landmark Localization은 물체의 특정영역을 추정 및 추적하는 형태의 Task이다.
이 Task를 푸는 방법으로 먼저 제시 되었던 것은, 각 Landmark의 좌표 위치를 Regression하는 형태의 모델이었다. 하지만, 결국 정확도와 일반화의 문제로 인해 새로운 모델을 필요로 했다. 새로 제안된 방법은 Heat Map을 활용하는 형태로, 각 Channel이 하나의 Landmark의 위치를 추정하는 형태로 구현되었다.
Hourglass Network는 Landmark Localization Task에 적합한 형태로 제안된 모델이다.
DensePose는 희소한 일부 Landmark를 추정하는 것이 아니라, 신체 전체를 Estimation하고자 한 모델이다.
RetinaFace는 FPN구조에 다양한 Task를 수행할 수 있는 Branch를 얹은 형태이다. 이는 현재 CV 모델링의 경향을 잘 반영한 모델이다. 다향한 Task를 수행할 수 있도록 구성된 Backbone Network는 다양한 Task로부터 생성되는 공통적인 정보를 효율적으로 학습할 수 있게 되며, 모든 Task에 적합한 모델이 된다.
Detecting objects as keypoints
기존의 Object Detecting 방법을 개선한 방법에 대해 알아보자.
CornerNet은 좌상단과 우하단의 위치만을 통해 Unique한 Bounding Box를 구성하고자 한 아이디어이다.
CenterNet은 Object의 중심점을 기준으로 Bounding Box를 구성하고자 한 아이디어이다. Object의 중심점을 찾는 과정에서 Classification의 성능이 향상되는 효과를 얻을 수 있었다. 먼저 제안된 형태는, CornerNet에서 Center의 위치만 포함된 형태였다. 이후, Center를 기준으로 Width와 Height를 통해 표현하는 방식으로 개선되었다.
(8강) Conditional generative model
Conditional generative model
Conditional Generative Model은 주어진 입력으로부터 특정 Output을 생성하는 형태의 모델을 의미한다. 일반 Generative Model은 Random한 Sample을 생성하는 모델로 사용자가 이 과정에 개입하기 어려웠던 것에 반해, 이 모델은 사용자가 Control할 수 있다는 장점이 있다. 사용자의 Input을 특정 조건으로, Output을 조건에 해당하는 확률로 이해할 수 있다.
대표적인 생성모델인 GAN을 살펴보자. Conditional GAN은, 일반 GAN과 달리 사용자의 조건부 입력을 Input으로 받는다.
Conditional GAN을 활용하면 Image-to-Image Translation과 같은 Task를 수행할 수 있다. 특정 Style이나, 높은 Resolution을 통해 학습을 진행한 후 원하는 Input을 통해 생성을 수행하는 것이다.
GAN 이전에는 CNN 구조만을 활용해 이와 같은 문제를 풀고자 했다. 이 때 당시에는 Discriminator 없이, 단순한 Loss를 통해 학습을 진행했다. L1 혹은 L2 Loss를 통해 학습시킨 모델은 일정한 성능을 낼 수는 있었지만, 전체적으로 뿌연 형태의 결과를 생성했다. 왜냐하면, Loss의 형태 상 Sharp한 Image는 높은 Loss를 가지기 쉽기 때문이다.
GAN은 Loss가 Discriminator로부터 발생하기 때문에 더 Sharp한 형태의 Image를 생성하도록 학습되는 것이다.
Image translation GANs
Image Translation은 주어진 Image를 통해 유사하지만 다른 Image를 생성해내는 Task를 의미한다.
Pix2Pix는 이와 같은 Task를 풀고자 등장한 모델로, GAN Loss와 L1 Loss를 모두 활용한다.
Pix2Pix는 좋은 성능을 보이지만, 학습을 위해 Paired Data를 필요로 한다. 즉, 특정 Input에 대해 기대하는 Output의 형태를 쌍으로 하는 Data가 필요한 것이다.
CycleGAN은 Pix2Pix와 달리 Paired Data를 필요로 하지 않도록 구성된 모델이다.
GAN Loss는 Pre-trained Network가 필요하지 않고, Data가 있다면 어떤 형태로든 생성모델을 학습시킬 수 있다는 장점이 있지만, 그만큼 학습이 어렵다는 단점이 있다. 이와 같은 어려움을 해결하고자 Perceptual Loss가 등장했다. Perceptual Loss는 Pre-trained Network를 필요로 하지만, 간단하게 Forward와 Backward의 형태로 학습을 진행시킬 수 있는 장점이 있다.
Various GAN applications
Conditional GAN을 활용한 사례는 무수히 많다. 특히 Deepfake와 같은 기술은 널리 알려져 있는데, 악용을 막기 위한 다양한 기술들이 연구되고 있다. 이외에도 프라이버시를 보호하는데도 활용되기도 하며, 영상 조작과 같은 분야에서도 널리 사용되고 있다.
Reference
'네이버 부스트캠프 AI Tech' 카테고리의 다른 글
| [U] Day 36 - Lightweight I (0) | 2021.03.28 |
|---|---|
| [U] Day 35 - CV V (0) | 2021.03.26 |
| [U] Day 33 - CV III (0) | 2021.03.26 |
| [U] Day 32 - CV II (0) | 2021.03.26 |
| [U] Day 31 - CV I (0) | 2021.03.26 |
Uploaded by Notion2Tistory v1.1.0