팬옵틱에 이어 시맨틱 세그멘테이션 공부가 필요해져 오늘 서베이를 시작했다.
Semantic segmentation은 픽셀단위의 classification이라고 보면 될 것 같다.
semantic segmentation에서 주로 무슨 모델을 쓰고있는지를 몰라서 아래 글을 읽고 있다.
이미지 및 본문 내용 출처는 아래 링크이다.
- 2018년도 글. medium.com/nanonets/how-to-do-image-segmentation-using-deep-learning-c673cc5862ef
- 2020년도 글. medium.com/technovators/everything-you-need-to-know-about-image-segmentation-c684a3a61df7
개인적으로 두번째 글이 많은 연구를 커버한 것 같다.
여기에 추가로, panoptic seg에는 저번 포스트에 언급한 EfficientPS(20), Panoptic Deeplab(19), UPSNet(19)도 있다.
일반적인 semantic segmentation (SS) 접근방식?
"인코더-디코더 구조"
인코더는 주로 Pretrained model을 사용한다. 예를 들면 VGG, ResNet.
이런 CNN모델들로 feature를 뽑은거다보니까 low resolution을 가지는데, 이걸 디코더에서 high resolution으로 맵핑한다.
그래서 discriminative space로 맵핑하는 것 뿐만 아니라, pixel space에서 굉장히 dense하게 보내는 것이 필요하다.
따라서 디코더파트가 어떤지 궁금한데, 디코딩 방식을 크게 두가지로 볼 수 있을 것 같다.
1. Region-based SS.
주로 recognition pipeline을 가진다.
이름은 한번쯤 들어봤을 Mask RCNN이 바로 여기에 해당한다.
예시) SDS, Hypercolumns, Mask R-CNN.
이 방식의 몇가지 문제점
- encoder의 pretrained network로 뽑은 feature는 거의 classification task (ImageNet) 용도였지, 세그멘테이션 용도가 아니었다. 그래서 호환이 될까?에 대한 문제.
- boundary에 대한 정보 부족.
- segment기반의 proposals을 만드는데에 시간이 꽤 걸리는데, 또 이게 최종 성능에도 영향을 많이 미친다는 것.
2.FCN based.
Fully convolutional network (FCN)은 region proposal을 추출하지 않고도 pixel-to-pixel 맵핑을 어떻게 할 것인지 배운다.
여담이지만 난 시맨틱 세그멘테이션을 원래 이렇게만 푸는 줄 알았다.
U-Net도 여기 해당된다.
예시) SegNet, DeepLab-CRF, Dilated Convolutions.
주로 FCN 기반의 방법인 것 같으니, 약간 더 살펴봤다.
- 먼저 classification -> segmentation으로 knowledge transfer 해줘서피쳐를 뽑아준다.
- 그리고 1*1 conv 적용.
- upsampling 해줘야한다. 이건 transposed convolution을 통해 수행한다.
위 글의 예제를 보니까 bilinear interpolation filter 값으로 이니셜라이제이션 했다고 한다.
(추가) Weakly supervised.
아무래도 segmentation은 픽셀 모두에 레이블을 부여해야하니 어노테이션이 많이 들어간다.
그래서 여기에 초점을 둔 연구들도 있는 것으로 보인다.
DeepLab-Based.
두번째 medium 글에서는 딥랩도 소개된다.
해당 글이 2020년 10월말에 작성되었는데, 이때 기준 real-time이 되는 것 중 SOTA라고 한다.
딥랩v1은 기존의 FCN 기반에다가 두가지 업그레이드된 버전이라고 한다.
- atrous convolution (dilated)의 적용
이를 통해 적은 파라미터로도 high resolution이 가능하도록 고려. - fully connected CRFs.
localization 성능 향상을 위해 도입.
딥랩 v2.
앗. panoptic deeplab에서 봤던 ASPP다. 어째 내 공부 순서가 바뀐 것 같은건 기분탓인가.
- ASPP (Atrous Spatial Pyramid Pooling)의 도입
이 블럭에서는 여러개의 dilation parameter를 가진 conv 연산을 다 적용해서 다양한 영역을 커버할 수 있게 한다.
이를 통해서 object를 멀티스케일로 볼 수 있게 된 것.
딥랩 v3.
Atrous convolution이 조금 더 바뀌었다.
연속적으로 적용하기도 하고, 뒷부분에서는 parallel하게 적용하기도 한다.
거기에 ASPP모듈 맨 마지막에 GAP도 추가.
딥랩 v3+.
arxiv.org/pdf/1802.02611v3.pdf
atrous separable convolution을 사용한다.
separable convolution을 쓰는 주된 이유는 연산의 효율성때문이니까, 같은 목적에서 도입된 것으로 보인다.
- Xception backbone을 수정하여 사용했음.
- Max pooling, BN 대신에 atrous separable conv로 대체.
그런데 딥랩v3라고 해봐야 2017년도라, semantic segmentation에 대해서는 더 최근 논문 리뷰가 필요할 것 같다.
아래 언급한 FastFCN이라든가, 어디선가 스쳐본듯한 HRNet같은 것.
그 외.
- DETR: 트랜스포머 덕에 end-to-end가 가능해져 작년에 화제가 되었던 논문. panoptic segmentation에서 잘된다.
- FastFCN: Joint Pyramid Upsampling(JPU) module을 사용하여 low resolution -> high resolution으로 upsampling한다.
- Reverse Attention Network: trains the model to capture the opposite concept
(i.e., features that are not associated with a target class) as well - Pyramid Attention Network: attention mechanisms + spatial pyramid pooling mechanism 두 개념을 합침
- EfficientNet backbone을 요즘에는 세그멘테이션에서도 많이 쓴다고 한다.
Papers With Code 찾아보기
원래 FastFCN, HRNet을 찾아보려고 했는데 여기를 보니까 또 새로운 것들이 나왔다.
Pascal Conetxt
paperswithcode.com/sota/semantic-segmentation-on-pascal-context
Cityscapes
paperswithcode.com/sota/semantic-segmentation-on-cityscapes
여기엔 EfficientPS, Panoptic Deeplab처럼 원래 panoptic segmentation의 논문들도 최상위권에 있다.
- ResNeSt arxiv.org/abs/2004.08955v2
- OCR arxiv.org/pdf/1909.11065v5.pdf "Object-Contextual Representations for Semantic Segmentation"
이 논문을 얘기하면서 HRNet v2 + OCR 이렇게 적혀있는게 좀 있다. - HRNet v2 arxiv.org/abs/1908.07919v2
그리고 Axial Attention 쓴 것도 순위권에 있다. arxiv.org/abs/2101.07434v1
NAS를 활용한 것도 있다. arxiv.org/pdf/2003.11883v1.pdf
그러면 봐야할 논문은 어느정도 추려진 것 같다.
'AIML 분야 > Segmentation' 카테고리의 다른 글
[Semantic Segmentation 조사 1] FastFCN 리뷰 (0) | 2021.02.16 |
---|---|
[2021.02.16. 연구노트] 깨알같은 디버깅 - panoptic deeplab (0) | 2021.02.16 |
panoptic-deeplab 코드 리뷰 (0) | 2021.02.04 |
Panoptic Segmentation COCO dataset 살펴보기 (0) | 2021.02.03 |
A Simple, Strong, and Fast Baseline for Bottom-Up Panoptic Segmentation (Panoptic Deeplab) 리뷰 (0) | 2021.02.02 |
댓글